From bc9407d3f516eb6f364b8c4ee5de0b6b3d62ed39 Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 7 Sep 2020 20:16:24 +0200 Subject: [PATCH 1/3] merge prod --- .../figureslibres/css-compiled/theme.css | 38 +++++++++---------- .../figureslibres/css-compiled/theme.min.css | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/user/themes/figureslibres/css-compiled/theme.css b/user/themes/figureslibres/css-compiled/theme.css index 269dfe3..a68c5ed 100644 --- a/user/themes/figureslibres/css-compiled/theme.css +++ b/user/themes/figureslibres/css-compiled/theme.css @@ -163,7 +163,7 @@ a, button { border: none; outline: none !important; } .home #text_figli #item .e-content p em { font-style: italic; } -.home #text_figli #item_list.commanditaires { -ms-flex-direction: column; flex-direction: column; } +.home #text_figli #item_list.commanditaires { flex-direction: column; } .home #text_figli #item_list.commanditaires .card-title { line-height: normal; } @@ -293,27 +293,27 @@ body #start #text_figli #item_list { width: 80vw; margin-top: 0.5rem; position: body #start #text_figli #item_list .card { width: calc((100% / 5) - ( 0.5rem * 2)); min-width: 250px; display: inline-block; vertical-align: top; position: relative; margin: 0 0.5rem 0.5rem 0; height: 100%; } -body #start #text_figli #item_list .card > .card-image.open a img { filter: grayscale(0); transition: filter 0.3s ease; } +body #start #text_figli #item_list .card > .card-image.open a img { -webkit-filter: grayscale(0); filter: grayscale(0); transition: -webkit-filter 0.3s ease; transition: filter 0.3s ease; transition: filter 0.3s ease, -webkit-filter 0.3s ease; } body #start #text_figli #item_list .card a { display: block; border-radius: 5px; overflow: auto; } -body #start #text_figli #item_list .card a img { filter: grayscale(1); transition: filter 0.3s ease; } +body #start #text_figli #item_list .card a img { -webkit-filter: grayscale(1); filter: grayscale(1); transition: -webkit-filter 0.3s ease; transition: filter 0.3s ease; transition: filter 0.3s ease, -webkit-filter 0.3s ease; } -body #start #text_figli #item_list .card .card-header { width: 100%; padding: 0.5rem; -ms-flex-wrap: wrap; flex-wrap: wrap; display: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } +body #start #text_figli #item_list .card .card-header { width: 100%; padding: 0.5rem; flex-wrap: wrap; display: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } body #start #text_figli #item_list .card .card-header > * { font-size: 0.8rem; line-height: 1rem; margin-right: 0.5rem; } body #start #text_figli #item_list .card:hover a { display: block; } -body #start #text_figli #item_list .card:hover a img { filter: grayscale(0); transition: filter 0.3s ease; } +body #start #text_figli #item_list .card:hover a img { -webkit-filter: grayscale(0); filter: grayscale(0); transition: -webkit-filter 0.3s ease; transition: filter 0.3s ease; transition: filter 0.3s ease, -webkit-filter 0.3s ease; } -body #start #text_figli #item_list .card:hover .card-header { display: -ms-inline-flexbox; display: inline-flex; position: absolute; bottom: 0; } +body #start #text_figli #item_list .card:hover .card-header { display: inline-flex; position: absolute; bottom: 0; } body #start #text_figli #item_list .card:last-of-type { vertical-align: baseline !important; } body #start #text_figli #item_list .card #item { width: calc( 80vw - ( 0.5rem * 6)); padding: 2rem 2rem 0.5rem 2rem; margin-top: 0.5rem; border-radius: 5px; position: relative; } -body #start #text_figli #item_list .card #item .content-title { margin: 1rem auto 3rem auto; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-align: baseline; align-items: baseline; } +body #start #text_figli #item_list .card #item .content-title { margin: 1rem auto 3rem auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; } body #start #text_figli #item_list .card #item .content-title a { display: block; } @@ -335,7 +335,7 @@ body #start #text_figli #item_list.sociale .card:hover .card-header { background body #start #text_figli #item_list.culturelle .card:hover .card-header { background: #feff74; } -body #start #text_figli #item_list.commanditaires { columns: 4 150px; column-gap: 2em; display: block; margin: 1rem auto; } +body #start #text_figli #item_list.commanditaires { -moz-columns: 4 150px; columns: 4 150px; -moz-column-gap: 2em; column-gap: 2em; display: block; margin: 1rem auto; } body #start #text_figli #item_list.commanditaires p { font-size: 1rem; line-height: 1.2rem; margin: 0.5rem auto; } @@ -363,11 +363,11 @@ body:not(.home) #start { margin-top: calc( 2rem + 3rem); } #icone_list .hamburger.hamburger--slider.is-active .hamburger-inner::after { transform: translate3d(0, -10px, 0) rotate(-90deg); } -body.sticky-footer { height: 100%; min-height: 100vh; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; } +body.sticky-footer { height: 100%; min-height: 100vh; display: flex; flex-direction: column; } -body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } +body.sticky-footer #page-wrapper { flex: 1 0 auto; } -.home footer { color: #acb3c2; display: -ms-inline-flexbox; display: inline-flex; position: fixed; bottom: 20px; right: 20px; } +.home footer { color: #acb3c2; display: inline-flex; position: fixed; bottom: 20px; right: 20px; } .home footer p { font-size: 1rem !important; line-height: 1rem !important; } @@ -385,7 +385,7 @@ body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } .sidebar-right .list-projets .title-menu::after { content: " "; width: 0; height: 1px; display: block; margin-top: 0.5rem; } -.sidebar-right .list-projets .container-wrap { display: -ms-inline-flexbox; display: inline-flex; } +.sidebar-right .list-projets .container-wrap { display: inline-flex; } .sidebar-right .list-projets .container { width: 85%; opacity: 0; position: relative; overflow: auto; padding: 1rem 2rem 2rem 0.5rem; margin-top: 20px; } @@ -395,7 +395,7 @@ body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } .sidebar-right .list-projets .container ul span.cat { display: block; line-height: 3rem; } -.sidebar-right .list-projets .container ul li { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-align: end; align-items: flex-end; width: auto; position: relative; } +.sidebar-right .list-projets .container ul li { display: inline-flex; align-items: flex-end; width: auto; position: relative; } .sidebar-right .list-projets .container ul li a { z-index: 0; display: block; background: #f9f9f9fe; transition: 0.6s background; margin-right: 0px; padding: 0 7px; } @@ -429,13 +429,13 @@ body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } .sidebar-right.is-active .container::after { background: black; height: 100%; transition: 1s 0.9s height ease; } -#item_list { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-wrap: wrap; flex-wrap: wrap; width: 100%; } +#item_list { display: inline-flex; flex-wrap: wrap; width: 100%; } #item_list .card { width: calc(( 100% / 2 ) - (1rem / 2)); height: 100%; } #item_list .card:nth-child(odd) { margin-right: 1rem; } -#item_list .card .card-header { z-index: 999; display: -ms-inline-flexbox; display: inline-flex; width: 100%; } +#item_list .card .card-header { z-index: 999; display: inline-flex; width: 100%; } #item_list .card .card-header > * { margin-right: 0.5rem; } @@ -443,7 +443,7 @@ body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } #item .card-image img:not(:last-of-type) { margin-bottom: 1.5rem; } -.other_projets { border-top: 1px solid black; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: 1rem; margin-bottom: 1rem; } +.other_projets { border-top: 1px solid black; display: flex; flex-wrap: wrap; margin-top: 1rem; margin-bottom: 1rem; } .other_projets h3 { margin: 1rem 0 0.5rem 0; width: 100%; } @@ -451,7 +451,7 @@ body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } .other_projets .card:nth-child(-1n+3) { margin-right: 0.5rem; } -.other_projets .card .card-header { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } +.other_projets .card .card-header { display: flex; flex-wrap: wrap; } .other_projets .card .card-header > * { margin-right: 0.5rem; } @@ -492,7 +492,7 @@ body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; } body .sidebar-right .list-projets .container-wrap .container::after { height: 1px; width: 0; bottom: 0; top: auto !important; left: 0 !important; } body .sidebar-right.is-active .container::after { width: 100% !important; transition: 1s width 1s ease; } body .sidebar-right .informations h3 { font-size: 1.1rem; } - footer { z-index: 999; -ms-flex-pack: center; justify-content: center; width: 100%; bottom: 0 !important; left: 0 !important; padding: 0.5rem; background-color: #f9f9f9fe; } + footer { z-index: 999; justify-content: center; width: 100%; bottom: 0 !important; left: 0 !important; padding: 0.5rem; background-color: #f9f9f9fe; } .circle_hover.open { width: 100px !important; height: 100px !important; } } -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX2Zvb3Rlci5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9zdGFydCc7XG5AaW1wb3J0ICd0aGVtZS9mb290ZXInO1xuQGltcG9ydCAndGhlbWUvc2lkZWJhcic7XG5AaW1wb3J0ICd0aGVtZS9ibG9nJztcbkBpbXBvcnQgJ3RoZW1lL2l0ZW0nO1xuQGltcG9ydCAndGhlbWUvbW9iaWxlJztcbiIsIi8vIEZvbnQgRmFtaWx5XG4kZm9udC1mYW1pbHktZGVmYXVsdDogIFx0XHRcdFwiUmFsZXdheVwiLCBcIkhlbHZldGljYVwiLCBcIlRhaG9tYVwiLCBcIkdlbmV2YVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGVyOiAgXHRcdFx0XCJNb250c2VycmF0XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1tb25vOiBcdFx0XHRcdFwiSW5jb25zb2xhdGFcIiwgbW9ub3NwYWNlO1xuJGZvbnQtZmFtaWx5LXNlcmlmOlx0XHRcdFx0XCJHZW9yZ2lhXCIsIFwiVGltZXNcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLyBAZm9udC1mYWNlXG5cbiRsYXRvOiBcImxhdG9cIjtcbiRmYW1pbHk6IFwibGF0b1wiO1xuJGZpbGUtcmVndWxhcjogXCJMYXRvLVJlZ3VsYXJcIjtcbiRjYXRlZ29yeTogXCJzYW5zLXNlcmlmXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseSArIFwiL1wiICsgJGZpbGUtcmVndWxhcjtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRsYXRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbGF0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRsYXRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRzeW5lOiBcInN5bmVcIjtcbiRmYW1pbHktYm9sZDogXCJzeW5lXCI7XG4kZmlsZS1ib2xkOiBcIlN5bmUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1ib2xkICsgXCIvXCIgKyAkZmlsZS1ib2xkO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRzeW5lfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB9XG5cbiAgICAlI3skc3luZX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRzeW5lfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRhdmFyYTogXCJBdmFyYVwiO1xuJGZhbWlseS1ib2xkLWl0YWxpYzogXCJhdmFyYVwiO1xuJGZpbGUtYm9sZC1pdGFsaWM6IFwiQXZhcmEtQm9sZF9JdGFsaWNfd2ViXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQtaXRhbGljICsgXCIvXCIgKyAkZmlsZS1ib2xkLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skYXZhcmF9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkYXZhcmEgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRhdmFyYX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIiwgI3skY2F0ZWdvcnl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHBsYXlmYWlyOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG4kZmFtaWx5LWl0YWxpYzogXCJwbGF5ZmFpclwiO1xuJGZpbGUtaXRhbGljOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHBsYXlmYWlyLCAkZmlsZS1pdGFsaWMsICRmYW1pbHktaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktaXRhbGljICsgXCIvXCIgKyAkZmlsZS1pdGFsaWM7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHBsYXlmYWlyICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcGxheWZhaXJ9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kbW9jaGU6IFwiTW9jaGUtQm9sZFwiO1xuJGZhbWlseS1yZWd1bGFyMjogXCJtb2NoZVwiO1xuJGZpbGUtcmVndWxhcjI6IFwiTW9jaGUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRtb2NoZSwgJGZpbGUtcmVndWxhcjIsICRmYW1pbHktcmVndWxhcjIsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyMiArIFwiL1wiICsgJGZpbGUtcmVndWxhcjI7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJG1vY2hlICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbW9jaGV9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcmFtbWV0dG86IFwicmFtbWV0dG8tcmVndWxhclwiO1xuJGZhbWlseS1yZWd1bGFyMzogXCJyYW1tZXR0b1wiO1xuJGZpbGUtcmVndWxhcjM6IFwicmFtbWV0dG9vbmUtcmVndWxhci13ZWJmb250XCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHJhbW1ldHRvLCAkZmlsZS1yZWd1bGFyMywgJGZhbWlseS1yZWd1bGFyMywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LXJlZ3VsYXIzICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyMztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcmFtbWV0dG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRyYW1tZXR0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRydW1ldXI6IFwicnVtZXVyLXJlZ3VsYXJcIjtcbiRmYW1pbHktcmVndWxhcjQ6IFwicnVtZXVyXCI7XG4kZmlsZS1yZWd1bGFyNDogXCJydW1ldXItd2ViZm9udFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyNCArIFwiL1wiICsgJGZpbGUtcmVndWxhcjQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHJhbW1ldHRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcmFtbWV0dG99IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZm9udC1mYWNlKCRsYXRvLCAkZmlsZS1yZWd1bGFyLCAkZmFtaWx5LCAkY2F0ZWdvcnkpOy8vMVxuQGluY2x1ZGUgZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeSk7Ly8yXG5cbkBpbmNsdWRlIGZvbnQtZmFjZSgkbW9jaGUsICRmaWxlLXJlZ3VsYXIyLCAkZmFtaWx5LXJlZ3VsYXIyLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjMsICRmYW1pbHktcmVndWxhcjMsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJHJ1bWV1ciwgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeSk7Ly8yXG5cbi8vIGZvbnQtc2l6ZVxuJHR4dC1maWdsaTogMi41cmVtO1xuXG4vLyBsaW5lLWhlaWdodFxuJEZsaG9tZTogM3JlbTtcblxuJG1hcmc6IDAuNXJlbTtcbiRtYXJnSTogMXJlbTtcbiRXaTogODAlO1xuXG4kV2k1MDogY2FsYygoIDEwMCUgLyAyICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpODA6IGNhbGMoKCAxMDAlIC8gMS41ICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpMzM6IGNhbGMoKCAxMDAlIC8gMyApIC0gKCN7JG1hcmdJfSAvIDMpKTtcblxuLy8gbW9iaWxlXG4kdHh0LWZpZ2xpLW06IDEuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtbTogMnJlbTtcbiRXaS1tOiBjYWxjKCAxMDAlIC0gMXJlbSk7XG4kV2k4MC1tOiA4MCU7XG4kV2kzMy1tOiBjYWxjKCggMTAwJSAvIDMgKSAtIDAuNXJlbSk7XG5cbi8vIHRhYmxldHRlXG4kdHh0LWZpZ2xpLXQ6IDIuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtdDogM3JlbTtcblxuLy8gY29sb3JcbiRjb2xvcl9wdWJsaXF1ZTogI2ZmYWVhYjtcbiRjb2xvcl9zb2NpYWxlOiAjN2VmZjcxO1xuJGNvbG9yX2N1bHR1cmVsbGU6ICNmZWZmNzQ7XG4kY29sb3JfY29tbWFuZGl0YWlyZTogI2ZhYmJkZTtcbiRjb2xvcl9maWd1cmVzbGlicmVzOiAjODJmOGVlO1xuIiwiIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogYXV0bztcbiAgbWFyZ2luOjA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbnB7XG4gbWFyZ2luOiAwO1xufVxuXG51bHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbnVsLGxpe1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsImgxLCBoMiwgaDMsIHAsIHVsLCBsaSwgYSwgc3BhbntcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuaGVhZGVye1xuICBhe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogJEZsaG9tZTtcbiAgfVxufVxuXG5hLCBidXR0b257XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi50aXRsZS1tZW51e1xuICBoMntcbiAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICB9XG59XG4uaG9tZXtcbiAgaDIsIHB7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICB9XG4gICN0ZXh0X2ZpZ2xpe1xuICAgIHN0cm9uZ3tcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGF7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmI3B1YmxpcXVle1xuICAgICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICAgfVxuICAgICAgJiNzb2NpYWxle1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmI2N1bHR1cmVsbGV7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICB9XG4gICAgICAmI2NvbW1hbmRpdGFpcmVze1xuICAgICAgICBmb250LWZhbWlseTogJG1vY2hlO1xuICAgICAgfVxuICAgICAgJiNmaWd1cmVzbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgfVxuICAgICAgJiNsb2dpY2llbHMtbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJ1bWV1cjtcbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW17XG4gICAgICAuZS1jb250ZW50e1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbXtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW1fbGlzdHtcbiAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5jYXJkLXRpdGxle1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI2l0ZW17XG4gIGgye1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiA0cmVtIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDRyZW0haW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwhaW1wb3J0YW50O1xuICB9XG4gIHNwYW57XG4gICAgZm9udC1zaXplOiAxcmVtO1xuIH1cbiAmLnB1YmxpcXVle1xuICAgaDJ7XG4gICAgIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG4gICB9XG4gICBzcGFue1xuICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgfVxuIH1cbiAmLnNvY2lhbGV7XG4gICBoMntcbiAgICAgZm9udC1mYW1pbHk6ICRzeW5lO1xuICAgfVxuICAgc3BhbntcbiAgICAgZm9udC1mYW1pbHk6ICRzeW5lO1xuICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgfVxuIH1cbiAgJi5jdWx0dXJlbGxle1xuICAgIGgye1xuICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICB9XG4gICAgc3BhbntcbiAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cbiAgfVxufVxuXG5hLnB1YmxpcXVlLCBzcGFuLnB1YmxpcXVle1xuICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xufVxuXG5hLnNvY2lhbGUsIHNwYW4uc29jaWFsZXtcbiAgZm9udC1mYW1pbHk6ICRzeW5lO1xufVxuXG5hLmN1bHR1cmVsbGUsIHNwYW4uY3VsdHVyZWxsZXtcbiAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbn1cblxuLnNpZGViYXItcmlnaHR7XG4gIGgye1xuICAgIG1hcmdpbjogLjVyZW0gMHJlbSAwcmVtIDByZW07XG4gIH1cbiAgdWwgPiBzcGFue1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgdWwgPiBsaXtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICBhe1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgfVxuICB9XG4gIC5pbmZvcm1hdGlvbnN7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICAmPiBkaXZ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiJGFuaW1hdGU6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4jdGV4dF9maWdsaXtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAxO1xuICBwe1xuICAgICYgPiBhe1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRlO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC41cyBtYXJnaW4tbGVmdCwwLjhzIDAuM3Mgb3BhY2l0eTtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4ycyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5vcGVue1xuICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzIG1hcmdpbi1sZWZ0LCAwLjVzIG9wYWNpdHk7XG4gICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICYuaGFtYnVyZ2VyLS1zbGlkZXJ7XG4gICAgICAgICAgICAgIC5oYW1idXJnZXItaW5uZXJ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuOHMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgJjphZnRlcntcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMXMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmI2ZpZ3VyZXNsaWJyZXN7XG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXJ7XG4gICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5oaWRkZW57XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgZWFzZTtcbiAgfVxufVxuXG4uY2lyY2xlX2hvdmVye1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC4ycywgd2lkdGggLjJzO1xuICAmLm9wZW57XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IC41cywgd2lkdGggLjVzO1xuICB9XG4gICYuZmlndXJlc2xpYnJlc3tcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9maWd1cmVzX2xpYnJlcy5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5wdWJsaXF1ZXtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvcHVibGlxdWUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5zb2NpYWxle1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL3NvY2lhbGUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYuY3VsdHVyZWxsZXtcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9jdWx0dXJlbGxlLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLmNvbW1hbmRpdGFpcmVze1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2NvbW1hbmRpdGFpcmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvbG9naWNpZWxzX2xpYnJlcy5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbn1cbiIsIi5ob21le1xuICBoZWFkZXJ7XG4gIH1cbn1cbiIsIip7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5sb2FkZXJ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZicpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbn1cblxuLmNhcmR7XG4gIC5sb2FkZXJ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5odG1sLCBib2R5e1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gICYuaGlkZGVue1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbmltZy5sYXp5e1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHl7XG4gICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2k4MDtcbiAgICAgIG1hcmdpbjogMXJlbSBhdXRvIGF1dG8gMXJlbTtcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICBwIHtcbiAgICAgICAgICBhe1xuICAgICAgICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWFyZ3tcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub3BlbntcbiAgICAgICAgICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgbWFyZ2luLWxlZnQsIDAuNXMgb3BhY2l0eTtcbiAgICAgICAgICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgJi5oYW1idXJnZXItLXNsaWRlcntcbiAgICAgICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsNXB4LDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC44cyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAjaXRlbV9saXN0e1xuICAgICAgICAgIHdpZHRoOiA4MHZ3O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5jYXJke1xuICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gNSkgLSAoICN7JG1hcmd9ICogMikgKTtcbiAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJG1hcmcgJG1hcmcgMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgJiA+IC5jYXJkLWltYWdle1xuICAgICAgICAgICAgJi5vcGVue1xuICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuM3MgZWFzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAmID4gKntcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAjaXRlbXtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCA4MHZ3IC0gKCAjeyRtYXJnfSAqIDYpICk7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDJyZW0gMC41cmVtIDJyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gYXV0byAzcmVtIGF1dG87XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5lLWNvbnRlbnR7XG4gICAgICAgICAgICAgIC8vIG1hcmdpbjogMXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICAgICAgICAgcHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5wdWJsaXF1ZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zb2NpYWxlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jb21tYW5kaXRhaXJlc3tcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2NvbW1hbmRpdGFpcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jdWx0dXJlbGxle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgICAgY29sdW1uczogNCAxNTBweDtcbiAgICAgICAgICAtd2Via2l0LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAyZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjdG9we1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpub3QoLmhvbWUpe1xuICAgICNzdGFydHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoIDJyZW0gKyAgI3skRmxob21lfSk7XG4gICAgfVxuICB9XG59XG5cbiNpY29uZV9saXN0e1xuICAuaGFtYnVyZ2Vye1xuICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAuaGFtYnVyZ2VyLWJveHtcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVye1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmV7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgJjo6YWZ0ZXIgIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKSByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gU3RpY2t5IEZvb3RlciBzb2x1dGlvblxuYm9keS5zdGlja3ktZm9vdGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAjcGFnZS13cmFwcGVyIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxufVxuXG4uaG9tZXtcbiAgZm9vdGVye1xuICAgIGNvbG9yOiAjYWNiM2MyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgcHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbSFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMXJlbSFpbXBvcnRhbnQ7XG4gICAgICBhe1xuICAgICAgaW1ne1xuICAgICAgICAgIHdpZHRoOiAyMHB4IWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItcmlnaHR7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLy8gcmlnaHQ6IGNhbGMoIC0yMCUgKyAwLjVyZW0pO1xuICBsZWZ0OiAtMTAwdnc7XG4gIHRvcDogMDtcbiAgdHJhbnNpdGlvbjogMC4zcyByaWdodCBlYXNlO1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHVse1xuICAgIHNwYW57XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICB9XG4gICAgJiA+ICo6bm90KHNwYW4pIHtcbiAgICAgIC8vIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICAgICAgLy8gYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICB9XG4gIH1cblxuICAjaWNvbmVfbGlzdHtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLmxpc3QtcHJvamV0c3tcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgLnRpdGxlLW1lbnV7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29udGFpbmVyLXdyYXB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG4gICAgLmNvbnRhaW5lcntcbiAgICAgIHdpZHRoOiA4NSU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAxcmVtIDJyZW0gMnJlbSAwLjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICByaWdodDowO1xuICAgICAgfVxuICAgIHVse1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIHNwYW4uY2F0e1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICB9XG4gICAgICBsaXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYXtcbiAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmOWY5ZjlmZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjZzIGJhY2tncm91bmQ7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgcGFkZGluZzogMCA3cHg7XG4gICAgICAgICAgLmltZ3tcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgLmltZ3tcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICYuY3VsdHVyZWxsZXtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjZzIGJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYuc29jaWFsZXtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zb2NpYWxlO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjZzIGJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYucHVibGlxdWV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHVibGlxdWU7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNnMgYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmJlZm9yZXt9XG4gICAgICAgICAgfVxuICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3MgYmFja2dyb3VuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAmLmFjdGl2ZXtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgfVxuICAgIC5pbmZvcm1hdGlvbnN7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgfVxuICB9XG4gICYuaXMtYWN0aXZle1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNpdGlvbjogMC41cyAwLjNzIGxlZnQgZWFzZTtcbiAgICAudGl0bGUtbWVudXtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgIHRyYW5zaXRpb246IDFzIDAuOXMgd2lkdGggZWFzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmluZm9ybWF0aW9uc3tcbiAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uOiAxcyBvcGFjaXR5IDFzIGVhc2U7XG5cbiAgICB9XG4gICAgLmNvbnRhaW5lcntcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSAxcyBlYXNlO1xuICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246IDFzIDAuOXMgaGVpZ2h0IGVhc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjaXRlbV9saXN0e1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB3aWR0aDogMTAwJTtcbiAgLmNhcmR7XG4gICAgd2lkdGg6ICRXaTUwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAmOm50aC1jaGlsZChvZGQpe1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ0k7XG4gICAgfVxuICAgIC5jYXJkLWhlYWRlcntcbiAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjaXRlbXtcbiAgLmUtY29udGVudHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgbWFyZ2luOiAwIDAgMnJlbSAwO1xuICAgIH1cbiAgLmNhcmQtaW1hZ2V7XG4gICAgaW1nOm5vdCg6bGFzdC1vZi10eXBlKXtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLm90aGVyX3Byb2pldHN7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tdG9wOiAkbWFyZ0k7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnSTtcbiAgaDN7XG4gICAgbWFyZ2luOiAxcmVtIDAgJG1hcmcgMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY2FyZHtcbiAgICB3aWR0aDogJFdpMzM7XG4gICAgJjpudGgtY2hpbGQoLTFuKzMpe1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICB9XG4gICAgLmNhcmQtaGVhZGVye1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICYgPiAqe1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KXtcbiAgYm9keXtcbiAgICAjc3RhcnR7XG4gICAgICB3aWR0aDogJFdpODAtbTtcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICAjaXRlbV9saXN0e1xuICAgICAgICAgICYuZmlndXJlc2xpYnJlcywgJi5sb2dpY2llbHMtbGlicmVze1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgd2lkdGg6ICRXaTMzLW07XG4gICAgICAgICAgICAjaXRlbXtcbiAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzAwJSArICguNXJlbSAqIDIpKTtcbiAgICAgICAgICAgICAgLmNvbnRlbnQtdGl0bGV7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG8gMXJlbSBhdXRvO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5lLWNvbnRlbnR7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpe1xuICAuc2lkZWJhci1yaWdodHtcbiAgICAubGlzdC1wcm9qZXRzIHtcbiAgICAgIC5jb250YWluZXJ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG4gICAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAjaXRlbV9saXN0e1xuICAgIHdpZHRoOiA5MHZ3IWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5ICNzdGFydCAjdGV4dF9maWdsaSAjaXRlbV9saXN0IC5jYXJke1xuICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gMikgLSAuNXJlbSk7XG4gICAgI2l0ZW17XG4gICAgICB3aWR0aDogY2FsYyg5MHZ3IC0gMC41cmVtKTtcbiAgICB9XG4gIH1cblxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MTBweCkge1xuICBib2R5e1xuICAgICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2ktbTtcbiAgICAgIG1hcmdpbjogMC41cmVtIGF1dG8gMnJlbSBhdXRvO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgIHB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuM3JlbTtcbiAgICAgICAgfVxuICAgICAgICAjaXRlbV9saXN0e1xuICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAuNXJlbSAwO1xuICAgICAgICAgICAgI2l0ZW17XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAuZS1jb250ZW50e1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDJyZW0gMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuY29udGVudC10aXRsZXtcbiAgICAgICAgICAgICAgICBoMntcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmID4gZGl2e1xuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnNpZGViYXItcmlnaHR7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgICNpY29uZV9saXN0e1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAvLyB3aWR0aDogYXV0byU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAubGlzdC1wcm9qZXRze1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIC50aXRsZS1tZW51e1xuICAgICAgICAgIGgye1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi4zcmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bHtcbiAgICAgICAgICBsaXtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGluaXRpYWwhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwcmVtIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY+IHNwYW57XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhaW5lci13cmFwe1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIC5jb250YWluZXJ7XG4gICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgIHRvcDogYXV0byFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGxlZnQ6IDAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy1hY3RpdmV7XG4gICAgICAgIC5jb250YWluZXJ7XG4gICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAxcyB3aWR0aCAxcyBlYXNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmluZm9ybWF0aW9uc3tcbiAgICAgICAgaDN7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb290ZXJ7XG4gICAgei1pbmRleDogOTk5O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogMCFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5ZjlmZTtcbiAgfVxuXG4gIC5jaXJjbGVfaG92ZXIub3BlbntcbiAgICB3aWR0aDogMTAwcHghaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwcHghaW1wb3J0YW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFDb0xJLFVBQVUsR0FDTixXQUFXLEVBQUUsTUFBYyxFQUMzQixHQUFHLEVBQUUscUNBQXVCLEVBQzVCLEdBQUcsRUFBRSw0Q0FBOEIsQ0FBQywyQkFBMkIsRUFDekQsc0NBQXdCLENBQUMsY0FBYyxFQUN2QyxxQ0FBdUIsQ0FBRSxrQkFBa0IsRUFDM0MsMENBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSxNQUFjLEVBQzNCLEdBQUcsRUFBRSxrQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLHlDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxtQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLGtDQUF1QixDQUFFLGtCQUFrQixFQUMzQyx1Q0FBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLE9BQWMsRUFDM0IsR0FBRyxFQUFFLCtDQUF1QixFQUM1QixHQUFHLEVBQUUsc0RBQThCLENBQUMsMkJBQTJCLEVBQ3pELGdEQUF3QixDQUFDLGNBQWMsRUFDdkMsK0NBQXVCLENBQUUsa0JBQWtCLEVBQzNDLHFEQUF5QyxDQUFDLGFBQWE7O0FBTmpFLFVBQVUsR0FDTixXQUFXLEVBQUUsK0JBQWMsRUFDM0IsR0FBRyxFQUFFLDBEQUF1QixFQUM1QixHQUFHLEVBQUUsaUVBQThCLENBQUMsMkJBQTJCLEVBQ3pELDJEQUF3QixDQUFDLGNBQWMsRUFDdkMsMERBQXVCLENB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 */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX2Zvb3Rlci5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9zdGFydCc7XG5AaW1wb3J0ICd0aGVtZS9mb290ZXInO1xuQGltcG9ydCAndGhlbWUvc2lkZWJhcic7XG5AaW1wb3J0ICd0aGVtZS9ibG9nJztcbkBpbXBvcnQgJ3RoZW1lL2l0ZW0nO1xuQGltcG9ydCAndGhlbWUvbW9iaWxlJztcbiIsIi8vIEZvbnQgRmFtaWx5XG4kZm9udC1mYW1pbHktZGVmYXVsdDogIFx0XHRcdFwiUmFsZXdheVwiLCBcIkhlbHZldGljYVwiLCBcIlRhaG9tYVwiLCBcIkdlbmV2YVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGVyOiAgXHRcdFx0XCJNb250c2VycmF0XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1tb25vOiBcdFx0XHRcdFwiSW5jb25zb2xhdGFcIiwgbW9ub3NwYWNlO1xuJGZvbnQtZmFtaWx5LXNlcmlmOlx0XHRcdFx0XCJHZW9yZ2lhXCIsIFwiVGltZXNcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLyBAZm9udC1mYWNlXG5cbiRsYXRvOiBcImxhdG9cIjtcbiRmYW1pbHk6IFwibGF0b1wiO1xuJGZpbGUtcmVndWxhcjogXCJMYXRvLVJlZ3VsYXJcIjtcbiRjYXRlZ29yeTogXCJzYW5zLXNlcmlmXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseSArIFwiL1wiICsgJGZpbGUtcmVndWxhcjtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRsYXRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbGF0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRsYXRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRzeW5lOiBcInN5bmVcIjtcbiRmYW1pbHktYm9sZDogXCJzeW5lXCI7XG4kZmlsZS1ib2xkOiBcIlN5bmUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1ib2xkICsgXCIvXCIgKyAkZmlsZS1ib2xkO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRzeW5lfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB9XG5cbiAgICAlI3skc3luZX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRzeW5lfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRhdmFyYTogXCJBdmFyYVwiO1xuJGZhbWlseS1ib2xkLWl0YWxpYzogXCJhdmFyYVwiO1xuJGZpbGUtYm9sZC1pdGFsaWM6IFwiQXZhcmEtQm9sZF9JdGFsaWNfd2ViXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQtaXRhbGljICsgXCIvXCIgKyAkZmlsZS1ib2xkLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skYXZhcmF9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkYXZhcmEgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRhdmFyYX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIiwgI3skY2F0ZWdvcnl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHBsYXlmYWlyOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG4kZmFtaWx5LWl0YWxpYzogXCJwbGF5ZmFpclwiO1xuJGZpbGUtaXRhbGljOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHBsYXlmYWlyLCAkZmlsZS1pdGFsaWMsICRmYW1pbHktaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktaXRhbGljICsgXCIvXCIgKyAkZmlsZS1pdGFsaWM7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHBsYXlmYWlyICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcGxheWZhaXJ9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kbW9jaGU6IFwiTW9jaGUtQm9sZFwiO1xuJGZhbWlseS1yZWd1bGFyMjogXCJtb2NoZVwiO1xuJGZpbGUtcmVndWxhcjI6IFwiTW9jaGUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRtb2NoZSwgJGZpbGUtcmVndWxhcjIsICRmYW1pbHktcmVndWxhcjIsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyMiArIFwiL1wiICsgJGZpbGUtcmVndWxhcjI7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJG1vY2hlICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbW9jaGV9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcmFtbWV0dG86IFwicmFtbWV0dG8tcmVndWxhclwiO1xuJGZhbWlseS1yZWd1bGFyMzogXCJyYW1tZXR0b1wiO1xuJGZpbGUtcmVndWxhcjM6IFwicmFtbWV0dG9vbmUtcmVndWxhci13ZWJmb250XCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHJhbW1ldHRvLCAkZmlsZS1yZWd1bGFyMywgJGZhbWlseS1yZWd1bGFyMywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LXJlZ3VsYXIzICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyMztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcmFtbWV0dG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRyYW1tZXR0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRydW1ldXI6IFwicnVtZXVyLXJlZ3VsYXJcIjtcbiRmYW1pbHktcmVndWxhcjQ6IFwicnVtZXVyXCI7XG4kZmlsZS1yZWd1bGFyNDogXCJydW1ldXItd2ViZm9udFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyNCArIFwiL1wiICsgJGZpbGUtcmVndWxhcjQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHJhbW1ldHRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcmFtbWV0dG99IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZm9udC1mYWNlKCRsYXRvLCAkZmlsZS1yZWd1bGFyLCAkZmFtaWx5LCAkY2F0ZWdvcnkpOy8vMVxuQGluY2x1ZGUgZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeSk7Ly8yXG5cbkBpbmNsdWRlIGZvbnQtZmFjZSgkbW9jaGUsICRmaWxlLXJlZ3VsYXIyLCAkZmFtaWx5LXJlZ3VsYXIyLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjMsICRmYW1pbHktcmVndWxhcjMsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJHJ1bWV1ciwgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeSk7Ly8yXG5cbi8vIGZvbnQtc2l6ZVxuJHR4dC1maWdsaTogMi41cmVtO1xuXG4vLyBsaW5lLWhlaWdodFxuJEZsaG9tZTogM3JlbTtcblxuJG1hcmc6IDAuNXJlbTtcbiRtYXJnSTogMXJlbTtcbiRXaTogODAlO1xuXG4kV2k1MDogY2FsYygoIDEwMCUgLyAyICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpODA6IGNhbGMoKCAxMDAlIC8gMS41ICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpMzM6IGNhbGMoKCAxMDAlIC8gMyApIC0gKCN7JG1hcmdJfSAvIDMpKTtcblxuLy8gbW9iaWxlXG4kdHh0LWZpZ2xpLW06IDEuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtbTogMnJlbTtcbiRXaS1tOiBjYWxjKCAxMDAlIC0gMXJlbSk7XG4kV2k4MC1tOiA4MCU7XG4kV2kzMy1tOiBjYWxjKCggMTAwJSAvIDMgKSAtIDAuNXJlbSk7XG5cbi8vIHRhYmxldHRlXG4kdHh0LWZpZ2xpLXQ6IDIuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtdDogM3JlbTtcblxuLy8gY29sb3JcbiRjb2xvcl9wdWJsaXF1ZTogI2ZmYWVhYjtcbiRjb2xvcl9zb2NpYWxlOiAjN2VmZjcxO1xuJGNvbG9yX2N1bHR1cmVsbGU6ICNmZWZmNzQ7XG4kY29sb3JfY29tbWFuZGl0YWlyZTogI2ZhYmJkZTtcbiRjb2xvcl9maWd1cmVzbGlicmVzOiAjODJmOGVlO1xuIiwiIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogYXV0bztcbiAgbWFyZ2luOjA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbnB7XG4gbWFyZ2luOiAwO1xufVxuXG51bHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbnVsLGxpe1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsImgxLCBoMiwgaDMsIHAsIHVsLCBsaSwgYSwgc3BhbntcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuaGVhZGVye1xuICBhe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogJEZsaG9tZTtcbiAgfVxufVxuXG5hLCBidXR0b257XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi50aXRsZS1tZW51e1xuICBoMntcbiAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICB9XG59XG4uaG9tZXtcbiAgaDIsIHB7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICB9XG4gICN0ZXh0X2ZpZ2xpe1xuICAgIHN0cm9uZ3tcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGF7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmI3B1YmxpcXVle1xuICAgICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICAgfVxuICAgICAgJiNzb2NpYWxle1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmI2N1bHR1cmVsbGV7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICB9XG4gICAgICAmI2NvbW1hbmRpdGFpcmVze1xuICAgICAgICBmb250LWZhbWlseTogJG1vY2hlO1xuICAgICAgfVxuICAgICAgJiNmaWd1cmVzbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgfVxuICAgICAgJiNsb2dpY2llbHMtbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJ1bWV1cjtcbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW17XG4gICAgICAuZS1jb250ZW50e1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbXtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW1fbGlzdHtcbiAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5jYXJkLXRpdGxle1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI2l0ZW17XG4gIGgye1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiA0cmVtIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDRyZW0haW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwhaW1wb3J0YW50O1xuICB9XG4gIHNwYW57XG4gICAgZm9udC1zaXplOiAxcmVtO1xuIH1cbiAmLnB1YmxpcXVle1xuICAgaDJ7XG4gICAgIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG4gICB9XG4gICBzcGFue1xuICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgfVxuIH1cbiAmLnNvY2lhbGV7XG4gICBoMntcbiAgICAgZm9udC1mYW1pbHk6ICRzeW5lO1xuICAgfVxuICAgc3BhbntcbiAgICAgZm9udC1mYW1pbHk6ICRzeW5lO1xuICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgfVxuIH1cbiAgJi5jdWx0dXJlbGxle1xuICAgIGgye1xuICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICB9XG4gICAgc3BhbntcbiAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cbiAgfVxufVxuXG5hLnB1YmxpcXVlLCBzcGFuLnB1YmxpcXVle1xuICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xufVxuXG5hLnNvY2lhbGUsIHNwYW4uc29jaWFsZXtcbiAgZm9udC1mYW1pbHk6ICRzeW5lO1xufVxuXG5hLmN1bHR1cmVsbGUsIHNwYW4uY3VsdHVyZWxsZXtcbiAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbn1cblxuLnNpZGViYXItcmlnaHR7XG4gIGgye1xuICAgIG1hcmdpbjogLjVyZW0gMHJlbSAwcmVtIDByZW07XG4gIH1cbiAgdWwgPiBzcGFue1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgdWwgPiBsaXtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICBhe1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgfVxuICB9XG4gIC5pbmZvcm1hdGlvbnN7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICAmPiBkaXZ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiJGFuaW1hdGU6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4jdGV4dF9maWdsaXtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAxO1xuICBwe1xuICAgICYgPiBhe1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRlO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC41cyBtYXJnaW4tbGVmdCwwLjhzIDAuM3Mgb3BhY2l0eTtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4ycyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5vcGVue1xuICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzIG1hcmdpbi1sZWZ0LCAwLjVzIG9wYWNpdHk7XG4gICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICYuaGFtYnVyZ2VyLS1zbGlkZXJ7XG4gICAgICAgICAgICAgIC5oYW1idXJnZXItaW5uZXJ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuOHMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgJjphZnRlcntcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMXMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmI2ZpZ3VyZXNsaWJyZXN7XG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXJ7XG4gICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5oaWRkZW57XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgZWFzZTtcbiAgfVxufVxuXG4uY2lyY2xlX2hvdmVye1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC4ycywgd2lkdGggLjJzO1xuICAmLm9wZW57XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IC41cywgd2lkdGggLjVzO1xuICB9XG4gICYuZmlndXJlc2xpYnJlc3tcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9maWd1cmVzX2xpYnJlcy5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5wdWJsaXF1ZXtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvcHVibGlxdWUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5zb2NpYWxle1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL3NvY2lhbGUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYuY3VsdHVyZWxsZXtcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9jdWx0dXJlbGxlLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLmNvbW1hbmRpdGFpcmVze1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2NvbW1hbmRpdGFpcmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvbG9naWNpZWxzX2xpYnJlcy5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbn1cbiIsIi5ob21le1xuICBoZWFkZXJ7XG4gIH1cbn1cbiIsIip7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5sb2FkZXJ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZicpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbn1cblxuLmNhcmR7XG4gIC5sb2FkZXJ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5odG1sLCBib2R5e1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gICYuaGlkZGVue1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbmltZy5sYXp5e1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHl7XG4gICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2k4MDtcbiAgICAgIG1hcmdpbjogMXJlbSBhdXRvIGF1dG8gMXJlbTtcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICBwIHtcbiAgICAgICAgICBhe1xuICAgICAgICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWFyZ3tcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub3BlbntcbiAgICAgICAgICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgbWFyZ2luLWxlZnQsIDAuNXMgb3BhY2l0eTtcbiAgICAgICAgICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgJi5oYW1idXJnZXItLXNsaWRlcntcbiAgICAgICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsNXB4LDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC44cyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAjaXRlbV9saXN0e1xuICAgICAgICAgIHdpZHRoOiA4MHZ3O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5jYXJke1xuICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gNSkgLSAoICN7JG1hcmd9ICogMikgKTtcbiAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJG1hcmcgJG1hcmcgMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgJiA+IC5jYXJkLWltYWdle1xuICAgICAgICAgICAgJi5vcGVue1xuICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuM3MgZWFzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAmID4gKntcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAjaXRlbXtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCA4MHZ3IC0gKCAjeyRtYXJnfSAqIDYpICk7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDJyZW0gMC41cmVtIDJyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gYXV0byAzcmVtIGF1dG87XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5lLWNvbnRlbnR7XG4gICAgICAgICAgICAgIC8vIG1hcmdpbjogMXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICAgICAgICAgcHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5wdWJsaXF1ZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zb2NpYWxlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jb21tYW5kaXRhaXJlc3tcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2NvbW1hbmRpdGFpcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jdWx0dXJlbGxle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgICAgY29sdW1uczogNCAxNTBweDtcbiAgICAgICAgICAtd2Via2l0LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAyZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjdG9we1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpub3QoLmhvbWUpe1xuICAgICNzdGFydHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoIDJyZW0gKyAgI3skRmxob21lfSk7XG4gICAgfVxuICB9XG59XG5cbiNpY29uZV9saXN0e1xuICAuaGFtYnVyZ2Vye1xuICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAuaGFtYnVyZ2VyLWJveHtcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVye1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmV7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgJjo6YWZ0ZXIgIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKSByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gU3RpY2t5IEZvb3RlciBzb2x1dGlvblxuYm9keS5zdGlja3ktZm9vdGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAjcGFnZS13cmFwcGVyIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxufVxuXG4uaG9tZXtcbiAgZm9vdGVye1xuICAgIGNvbG9yOiAjYWNiM2MyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgcHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbSFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMXJlbSFpbXBvcnRhbnQ7XG4gICAgICBhe1xuICAgICAgaW1ne1xuICAgICAgICAgIHdpZHRoOiAyMHB4IWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItcmlnaHR7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogLTEwMHZ3O1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IDAuM3MgcmlnaHQgZWFzZTtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOWZlO1xuICB6LWluZGV4OiAxMDAwO1xuICB1bHtcbiAgICBzcGFue1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgI2ljb25lX2xpc3R7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5saXN0LXByb2pldHN7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC50aXRsZS1tZW51e1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRhaW5lci13cmFwe1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuICAgIC5jb250YWluZXJ7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtIDJyZW0gMC41cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgcmlnaHQ6MDtcbiAgICAgIH1cbiAgICB1bHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBzcGFuLmNhdHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgfVxuICAgICAgbGl7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGF7XG4gICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgN3B4O1xuICAgICAgICAgIC5pbWd7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgICAgIC5pbWd7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc29jaWFsZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjZzIGJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjpiZWZvcmV7fVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGJhY2tncm91bmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIH1cbiAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgbWluLXdpZHRoOiAyNTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgIH1cbiAgfVxuICAmLmlzLWFjdGl2ZXtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IDAuNXMgMC4zcyBsZWZ0IGVhc2U7XG4gICAgLnRpdGxlLW1lbnV7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjlzIHdpZHRoIGVhc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC5pbmZvcm1hdGlvbnN7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSAxcyBlYXNlO1xuXG4gICAgfVxuICAgIC5jb250YWluZXJ7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IDFzIG9wYWNpdHkgMXMgZWFzZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjlzIGhlaWdodCBlYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI2l0ZW1fbGlzdHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIC5jYXJke1xuICAgIHdpZHRoOiAkV2k1MDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgJjpudGgtY2hpbGQob2RkKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdJO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgJiA+ICoge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI2l0ZW17XG4gIC5lLWNvbnRlbnR7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIG1hcmdpbjogMCAwIDJyZW0gMDtcbiAgICB9XG4gIC5jYXJkLWltYWdle1xuICAgIGltZzpub3QoOmxhc3Qtb2YtdHlwZSl7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5vdGhlcl9wcm9qZXRze1xuICBib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogJG1hcmdJO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ0k7XG4gIGgze1xuICAgIG1hcmdpbjogMXJlbSAwICRtYXJnIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNhcmR7XG4gICAgd2lkdGg6ICRXaTMzO1xuICAgICY6bnRoLWNoaWxkKC0xbiszKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgfVxuICAgIC5jYXJkLWhlYWRlcntcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAmID4gKntcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCl7XG4gIGJvZHl7XG4gICAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaTgwLW07XG4gICAgICAjdGV4dF9maWdsaXtcbiAgICAgICAgI2l0ZW1fbGlzdHtcbiAgICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgIHdpZHRoOiAkV2kzMy1tO1xuICAgICAgICAgICAgI2l0ZW17XG4gICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDMwMCUgKyAoLjVyZW0gKiAyKSk7XG4gICAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDFyZW0gYXV0bztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuZS1jb250ZW50e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KXtcbiAgLnNpZGViYXItcmlnaHR7XG4gICAgLmxpc3QtcHJvamV0cyB7XG4gICAgICAuY29udGFpbmVye1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgICAgLmluZm9ybWF0aW9uc3tcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI2l0ZW1fbGlzdHtcbiAgICB3aWR0aDogOTB2dyFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAjc3RhcnQgI3RleHRfZmlnbGkgI2l0ZW1fbGlzdCAuY2FyZHtcbiAgICB3aWR0aDogY2FsYygoMTAwJSAvIDIpIC0gLjVyZW0pO1xuICAgICNpdGVte1xuICAgICAgd2lkdGg6IGNhbGMoOTB2dyAtIDAuNXJlbSk7XG4gICAgfVxuICB9XG5cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTEwcHgpIHtcbiAgYm9keXtcbiAgICAjc3RhcnR7XG4gICAgICB3aWR0aDogJFdpLW07XG4gICAgICBtYXJnaW46IDAuNXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgIH1cbiAgICAgICAgI2l0ZW1fbGlzdHtcbiAgICAgICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgICAgJi5maWd1cmVzbGlicmVzLCAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwLjVyZW0gMDtcbiAgICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgLmUtY29udGVudHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmNvbnRlbnQtdGl0bGV7XG4gICAgICAgICAgICAgICAgaDJ7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJiA+IGRpdntcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5zaWRlYmFyLXJpZ2h0e1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICByaWdodDogLTEwMCU7XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5saXN0LXByb2pldHN7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgLnRpdGxlLW1lbnV7XG4gICAgICAgICAgaDJ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVse1xuICAgICAgICAgIGxpe1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbml0aWFsIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDByZW0haW1wb3J0YW50O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJj4gc3BhbntcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyLXdyYXB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgdG9wOiBhdXRvIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLWFjdGl2ZXtcbiAgICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDFzIHdpZHRoIDFzIGVhc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgICBoM3tcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvb3RlcntcbiAgICB6LWluZGV4OiA5OTk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAwIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOWZlO1xuICB9XG5cbiAgLmNpcmNsZV9ob3Zlci5vcGVue1xuICAgIHdpZHRoOiAxMDBweCFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDBweCFpbXBvcnRhbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNvTEksVUFBVSxHQUNOLFdBQVcsRUFBRSxNQUFjLEVBQzNCLEdBQUcsRUFBRSxxQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLDRDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxzQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLHFDQUF1QixDQUFFLGtCQUFrQixFQUMzQywwQ0FBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLE1BQWMsRUFDM0IsR0FBRyxFQUFFLGtDQUF1QixFQUM1QixHQUFHLEVBQUUseUNBQThCLENBQUMsMkJBQTJCLEVBQ3pELG1DQUF3QixDQUFDLGNBQWMsRUFDdkMsa0NBQXVCLENBQUUsa0JBQWtCLEVBQzNDLHVDQUF5QyxDQUFDLGFBQWE7O0FBTmpFLFVBQVUsR0FDTixXQUFXLEVBQUUsT0FBYyxFQUMzQixHQUFHLEVBQUUsK0NBQXVCLEVBQzVCLEdBQUcsRUFBRSxzREFBOEIsQ0FBQywyQkFBMkIsRUFDekQsZ0RBQXdCLENBQUMsY0FBYyxFQUN2QywrQ0FBdUIsQ0FBRSxrQkFBa0IsRUFDM0MscURBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSwrQkFBYyxFQUMzQixHQUFHLEVBQUUsMERBQXVCLEVBQzVCLEdBQUcsRUFBRSxpRUFBOEIsQ0FBQywyQkFBMkIsRUFDekQsMkRBQXdCLENBQUMsY0FBYyxFQUN2QywwREFBdUIsQ0FBRSxrQkFBa0IsRUFDM0Msd0ZBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSxZQUFjLEVBQzNCLEdBQUcsRUFBRSxvQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLDJDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxxQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLG9DQUF1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 */ diff --git a/user/themes/figureslibres/css-compiled/theme.min.css b/user/themes/figureslibres/css-compiled/theme.min.css index 8ba8185..4298509 100644 --- a/user/themes/figureslibres/css-compiled/theme.min.css +++ b/user/themes/figureslibres/css-compiled/theme.min.css @@ -1 +1 @@ -@font-face{font-family:lato;src:url(../fonts/lato/Lato-Regular.eot);src:url(../fonts/lato/Lato-Regular.eot?#iefix) format('embedded-opentype'),url(../fonts/lato/Lato-Regular.woff) format('woff'),url(../fonts/lato/Lato-Regular.ttf) format('truetype'),url(../fonts/lato/Lato-Regular.svg#lato) format('svg')}@font-face{font-family:syne;src:url(../fonts/syne/Syne-Bold.eot);src:url(../fonts/syne/Syne-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/syne/Syne-Bold.woff) format('woff'),url(../fonts/syne/Syne-Bold.ttf) format('truetype'),url(../fonts/syne/Syne-Bold.svg#syne) format('svg')}@font-face{font-family:Avara;src:url(../fonts/avara/Avara-Bold_Italic_web.eot);src:url(../fonts/avara/Avara-Bold_Italic_web.eot?#iefix) format('embedded-opentype'),url(../fonts/avara/Avara-Bold_Italic_web.woff) format('woff'),url(../fonts/avara/Avara-Bold_Italic_web.ttf) format('truetype'),url(../fonts/avara/Avara-Bold_Italic_web.svg#Avara) format('svg')}@font-face{font-family:playfairdisplay-regularitalic;src:url(../fonts/playfair/playfairdisplay-regularitalic.eot);src:url(../fonts/playfair/playfairdisplay-regularitalic.eot?#iefix) format('embedded-opentype'),url(../fonts/playfair/playfairdisplay-regularitalic.woff) format('woff'),url(../fonts/playfair/playfairdisplay-regularitalic.ttf) format('truetype'),url(../fonts/playfair/playfairdisplay-regularitalic.svg#playfairdisplay-regularitalic) format('svg')}@font-face{font-family:Moche-Bold;src:url(../fonts/moche/Moche-Bold.eot);src:url(../fonts/moche/Moche-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/moche/Moche-Bold.woff) format('woff'),url(../fonts/moche/Moche-Bold.ttf) format('truetype'),url(../fonts/moche/Moche-Bold.svg#Moche-Bold) format('svg')}@font-face{font-family:rammetto-regular;src:url(../fonts/rammetto/rammettoone-regular-webfont.eot);src:url(../fonts/rammetto/rammettoone-regular-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rammetto/rammettoone-regular-webfont.woff) format('woff'),url(../fonts/rammetto/rammettoone-regular-webfont.ttf) format('truetype'),url(../fonts/rammetto/rammettoone-regular-webfont.svg#rammetto-regular) format('svg')}@font-face{font-family:rumeur-regular;src:url(../fonts/rumeur/rumeur-webfont.eot);src:url(../fonts/rumeur/rumeur-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rumeur/rumeur-webfont.woff) format('woff'),url(../fonts/rumeur/rumeur-webfont.ttf) format('truetype'),url(../fonts/rumeur/rumeur-webfont.svg#rumeur-regular) format('svg')}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;line-height:1.15;margin:0;padding:0;-webkit-text-size-adjust:100%}body{margin:0;padding:0}main{display:block}h1{font-size:auto;margin:0}hr{overflow:visible;box-sizing:content-box;height:0}pre{font-family:monospace,monospace;font-size:1em}p{margin:0}ul{list-style:none}li,ul{margin:0;padding:0}a{text-decoration:none;color:#000;background-color:transparent}abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:none;-webkit-text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{width:100%;height:100%;vertical-align:bottom;border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;box-sizing:border-box;max-width:100%;padding:0;white-space:normal;color:inherit}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}a,h1,h2,h3,li,p,span,ul{font-family:lato;font-weight:lighter}header a{font-size:2.5rem;line-height:3rem}a,button{border:none;outline:0!important}.title-menu h2{font-family:rammetto-regular}.home h2,.home p{font-size:2.5rem;line-height:3rem}.home #text_figli strong{position:relative}.home #text_figli strong::after{position:absolute;bottom:0;display:block;width:100%;height:1px;content:'';background:#000}.home #text_figli a{position:relative}.home #text_figli a#publique{font-family:playfairdisplay-regularitalic}.home #text_figli a#sociale{font-family:syne}.home #text_figli a#culturelle{font-family:Avara}.home #text_figli a#commanditaires{font-family:Moche-Bold}.home #text_figli a#figureslibres{font-family:rammetto-regular}.home #text_figli a#logiciels-libres{font-family:rumeur-regular}.home #text_figli #item .e-content p{font-size:1.5rem;line-height:3rem}.home #text_figli #item .e-content p strong{font-weight:700!important}.home #text_figli #item .e-content p a{text-decoration:underline}.home #text_figli #item .e-content p em{font-style:italic}.home #text_figli #item_list.commanditaires{flex-direction:column;-ms-flex-direction:column}.home #text_figli #item_list.commanditaires .card-title{line-height:normal}#item h2{font-size:4rem!important;font-weight:400!important;line-height:4rem!important;width:auto}#item span{font-size:1rem}#item.publique h2{font-family:playfairdisplay-regularitalic}#item.publique span{font-family:playfairdisplay-regularitalic;font-weight:400}#item.sociale h2{font-family:syne}#item.sociale span{font-family:syne;font-weight:400}#item.culturelle h2{font-family:Avara}#item.culturelle span{font-family:Avara;font-weight:400}a.publique,span.publique{font-family:playfairdisplay-regularitalic}a.sociale,span.sociale{font-family:syne}a.culturelle,span.culturelle{font-family:Avara}.sidebar-right h2{margin:.5rem 0 0 0}.sidebar-right ul>span{font-size:.8rem;line-height:1rem!important;margin-bottom:.5rem;text-decoration:underline}.sidebar-right ul>li{font-size:1.7rem;line-height:2.5rem}.sidebar-right ul>li a{font-size:1.7rem;line-height:2rem;border-radius:50px}.sidebar-right .informations{padding:1rem}.sidebar-right .informations>div{margin-bottom:1rem}.sidebar-right .informations h3{font-size:1.5rem;line-height:2rem;margin:0}.sidebar-right .informations p{font-size:1rem;line-height:1.5rem}.other_projets h3{font-size:2.5rem;margin:0}.card h2{font-size:1rem;margin:0}#text_figli{z-index:999;opacity:1}#text_figli p>a{z-index:999}#text_figli p>a:after,#text_figli p>a:before{position:absolute;bottom:-1px;width:0;height:1px;margin:1px 0 0;content:'';transition:all .2s ease-in-out;transition-duration:.3s;opacity:0;background-color:#000}#text_figli p>a::before{left:50%}#text_figli p>a:after{right:50%}#text_figli p>a:hover{cursor:pointer}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:100%;opacity:1}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:50%}#text_figli p>a #icone_list{transition:1s .5s margin-left,.8s .3s opacity}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:0s .2s transform;transform:translate3d(0,5px,0) rotate(0)}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:.2s .2s transform;transform:translate3d(0,-10px,0) rotate(0)}#text_figli p>a.open #icone_list{transition:.5s margin-left,.5s opacity}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}#text_figli p>a#figureslibres::after,#text_figli p>a#figureslibres::before{bottom:5px}#text_figli.hidden{transition:.3s opacity ease;opacity:0}.circle_hover{position:absolute;z-index:0;width:0;height:0;transition:height .2s,width .2s;transform:translate(-50%,-50%)}.circle_hover.open{width:200px;height:200px;transition:height .5s,width .5s}.circle_hover.figureslibres{background:url(/user/themes/figureslibres/images/figures_libres.svg) center no-repeat;background-size:contain}.circle_hover.publique{background:url(/user/themes/figureslibres/images/publique.svg) center no-repeat;background-size:contain}.circle_hover.sociale{background:url(/user/themes/figureslibres/images/sociale.svg) center no-repeat;background-size:contain}.circle_hover.culturelle{background:url(/user/themes/figureslibres/images/culturelle.svg) center no-repeat;background-size:contain}.circle_hover.commanditaires{background:url(/user/themes/figureslibres/images/commanditaires.svg) center no-repeat;background-size:contain}.circle_hover.logiciels-libres{background:url(/user/themes/figureslibres/images/logiciels_libres.svg) center no-repeat;background-size:contain}*{box-sizing:border-box}.loader{display:none;width:10px;height:10px;margin-left:10px;vertical-align:middle;background-image:url(/user/themes/figureslibres/images/ajax-loader.gif);background-repeat:no-repeat;background-position:center;background-size:10px 10px}.card .loader{position:absolute;z-index:999;top:50%;left:50%;margin-left:0;transform:translate(-50%,50%)}body,html{background:#f9f9f9fe}body.hidden,html.hidden{overflow:hidden}img.lazy{display:block}body #start{width:calc((100% / 1.5) - (1rem / 2));margin:1rem auto auto 1rem}body #start #text_figli p a #icone_list{position:relative;z-index:999;display:inline-block;margin-left:-30px;opacity:0}body #start #text_figli p a #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli p a.marg{margin-right:.5rem}body #start #text_figli p a.open #icone_list{position:relative;z-index:999;display:inline-block;margin-left:0;transition:.5s margin-left,.5s opacity;opacity:1}body #start #text_figli p a.open #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}body #start #text_figli p a.open #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli #item_list{position:relative;width:80vw;margin-top:.5rem}body #start #text_figli #item_list .card{position:relative;display:inline-block;width:calc((100% / 5) - (.5rem * 2));min-width:250px;height:100%;margin:0 .5rem .5rem 0;vertical-align:top}body #start #text_figli #item_list .card>.card-image.open a img{transition:filter .3s ease;filter:grayscale(0)}body #start #text_figli #item_list .card a{display:block;overflow:auto;border-radius:5px}body #start #text_figli #item_list .card a img{transition:filter .3s ease;filter:grayscale(1)}body #start #text_figli #item_list .card .card-header{display:none;width:100%;padding:.5rem;border-bottom-right-radius:5px;border-bottom-left-radius:5px;-ms-flex-wrap:wrap;flex-wrap:wrap}body #start #text_figli #item_list .card .card-header>*{font-size:.8rem;line-height:1rem;margin-right:.5rem}body #start #text_figli #item_list .card:hover a{display:block}body #start #text_figli #item_list .card:hover a img{transition:filter .3s ease;filter:grayscale(0)}body #start #text_figli #item_list .card:hover .card-header{position:absolute;bottom:0;display:-ms-inline-flexbox;display:inline-flex}body #start #text_figli #item_list .card:last-of-type{vertical-align:baseline!important}body #start #text_figli #item_list .card #item{position:relative;width:calc(80vw - (.5rem * 6));margin-top:.5rem;padding:2rem 2rem .5rem 2rem;border-radius:5px}body #start #text_figli #item_list .card #item .content-title{display:-ms-flexbox;display:flex;margin:1rem auto 3rem auto;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:baseline;align-items:baseline}body #start #text_figli #item_list .card #item .content-title a{display:block}body #start #text_figli #item_list .card #item .e-content p{font-size:1rem;line-height:1.2rem}body #start #text_figli #item_list .card #item.publique{background:#ffaeab}body #start #text_figli #item_list .card #item.sociale{background:#7eff71}body #start #text_figli #item_list .card #item.culturelle{background:#feff74}body #start #text_figli #item_list .card #item.commanditaires{background:#fabbde}body #start #text_figli #item_list .card #item #icone_list{line-height:0;position:absolute;top:0;right:0}body #start #text_figli #item_list.publique .card:hover .card-header{background:#ffaeab}body #start #text_figli #item_list.sociale .card:hover .card-header{background:#7eff71}body #start #text_figli #item_list.culturelle .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.commanditaires{display:block;margin:1rem auto;columns:4 150px;column-gap:2em}body #start #text_figli #item_list.commanditaires p{font-size:1rem;line-height:1.2rem;margin:.5rem auto}body #start #text_figli #item_list.commanditaires .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{display:block;width:70%;min-width:500px;margin:1rem 0}body #start #text_figli #item_list.figureslibres p,body #start #text_figli #item_list.logiciels-libres p{font-size:1rem;line-height:1.5rem}body #start #text_figli #top{position:relative;width:100%;cursor:pointer;text-align:center}body:not(.home) #start{margin-top:calc(2rem + 3rem)}#icone_list .hamburger{padding:.8rem}#icone_list .hamburger .hamburger-box{width:18px;height:12px}#icone_list .hamburger .hamburger-box .hamburger-inner{width:18px;height:2px}#icone_list .hamburger .hamburger-box .hamburger-inner::before{top:5px;width:15px;height:inherit}#icone_list .hamburger .hamburger-box .hamburger-inner::after{top:10px;width:inherit;height:inherit}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner{transform:translate3d(0,5px,0) rotate(45deg)}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner::after{transform:translate3d(0,-10px,0) rotate(-90deg)}body.sticky-footer{display:-ms-flexbox;display:flex;flex-direction:column;height:100%;min-height:100vh;-ms-flex-direction:column}body.sticky-footer #page-wrapper{-ms-flex:1 0 auto;flex:1 0 auto}.home footer{position:fixed;right:20px;bottom:20px;display:-ms-inline-flexbox;display:inline-flex;color:#acb3c2}.home footer p{font-size:1rem!important;line-height:1rem!important}.home footer p a img{width:20px!important}.sidebar-right{position:fixed;z-index:1000;top:0;left:-100vw;width:100%;height:100%;transition:.3s right ease;background:#f9f9f9fe}.sidebar-right ul span{line-height:2rem}.sidebar-right #icone_list{position:fixed;z-index:1000;top:10px;right:0}.sidebar-right .list-projets{overflow:auto;height:100%}.sidebar-right .list-projets .title-menu{padding-left:.5rem}.sidebar-right .list-projets .title-menu::after{display:block;width:0;height:1px;margin-top:.5rem;content:' '}.sidebar-right .list-projets .container-wrap{display:-ms-inline-flexbox;display:inline-flex}.sidebar-right .list-projets .container{position:relative;overflow:auto;width:85%;margin-top:20px;padding:1rem 2rem 2rem .5rem;opacity:0}.sidebar-right .list-projets .container::after{position:absolute;top:0;right:0;display:block;width:1px;height:0;margin-right:1rem;content:' '}.sidebar-right .list-projets .container ul{margin-bottom:20px}.sidebar-right .list-projets .container ul span.cat{line-height:3rem;display:block}.sidebar-right .list-projets .container ul li{position:relative;display:-ms-inline-flexbox;display:inline-flex;width:auto;-ms-flex-align:end;align-items:flex-end}.sidebar-right .list-projets .container ul li a{z-index:0;display:block;margin-right:0;padding:0 7px;transition:.6s background;background:#f9f9f9fe}.sidebar-right .list-projets .container ul li a .img{position:fixed;z-index:999;display:none;overflow:hidden;width:300px;height:auto;transform:rotate(0);transform-origin:center center;pointer-events:none;border-radius:10px}.sidebar-right .list-projets .container ul li a:hover{z-index:999}.sidebar-right .list-projets .container ul li a:hover .img{display:block;transition:all 1s ease}.sidebar-right .list-projets .container ul li:hover.culturelle a{transition:.6s background;background:#feff74}.sidebar-right .list-projets .container ul li:hover.sociale a{transition:.6s background;background:#7eff71}.sidebar-right .list-projets .container ul li:hover.publique a{transition:.6s background;background:#ffaeab}.sidebar-right .list-projets .container ul li:hover::before{min-width:100%;transition:.3s background}.sidebar-right .list-projets .container ul a{z-index:999;color:#000}.sidebar-right .list-projets .container ul a.active{color:#000}.sidebar-right .list-projets .informations{position:relative;min-width:250px;height:100%;padding-left:40px;opacity:0}.sidebar-right.is-active{left:0;transition:.5s .3s left ease}.sidebar-right.is-active .title-menu::after{width:100%;transition:1s .9s width ease;background:#000}.sidebar-right.is-active .informations{padding-left:25px;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container{margin-top:0;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container::after{height:100%;transition:1s .9s height ease;background:#000}#item_list{display:-ms-inline-flexbox;display:inline-flex;width:100%;-ms-flex-wrap:wrap;flex-wrap:wrap}#item_list .card{width:calc((100% / 2) - (1rem / 2));height:100%}#item_list .card:nth-child(odd){margin-right:1rem}#item_list .card .card-header{z-index:999;display:-ms-inline-flexbox;display:inline-flex;width:100%}#item_list .card .card-header>*{margin-right:.5rem}#item .e-content{width:50%;min-width:500px;margin:0 0 2rem 0}#item .card-image img:not(:last-of-type){margin-bottom:1.5rem}.other_projets{display:-ms-flexbox;display:flex;margin-top:1rem;margin-bottom:1rem;border-top:1px solid #000;-ms-flex-wrap:wrap;flex-wrap:wrap}.other_projets h3{width:100%;margin:1rem 0 .5rem 0}.other_projets .card{width:calc((100% / 3) - (1rem / 3))}.other_projets .card:nth-child(-1n+3){margin-right:.5rem}.other_projets .card .card-header{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.other_projets .card .card-header>*{margin-right:.5rem}@media screen and (max-width:1024px){body #start{width:80%}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{width:100%}body #start #text_figli #item_list .card{width:calc((100% / 3) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(300% + (.5rem * 2))}body #start #text_figli #item_list .card #item .content-title{margin:1rem auto 1rem auto}body #start #text_figli #item_list .card #item .e-content{width:100%}}@media screen and (max-width:1000px){.sidebar-right .list-projets .container{float:none;width:100%;padding-bottom:0}.sidebar-right .list-projets .informations{float:none;margin-left:10px;padding-left:.5rem}#item_list{width:90vw!important}}@media screen and (max-width:768px){body #start #text_figli #item_list .card{width:calc((100% / 2) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(90vw - .5rem)}}@media screen and (max-width:510px){body #start{width:calc(100% - 1rem);margin:.5rem auto 2rem auto}body #start #text_figli p{font-size:1.7rem;line-height:2.3rem}body #start #text_figli #item_list{width:100%!important}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{min-width:100%}body #start #text_figli #item_list .card{width:calc(100%);margin:0 0 .5rem 0}body #start #text_figli #item_list .card #item{width:100%;padding:1rem}body #start #text_figli #item_list .card #item .e-content{min-width:100%;margin:2rem 0}body #start #text_figli #item_list .card #item .content-title h2{font-size:2rem!important;line-height:2.5rem!important}body #start #text_figli #item_list .card #item .content-title>div{line-height:1rem}body .sidebar-right{right:-100%;width:100%}body .sidebar-right #icone_list{z-index:0;top:0}body .sidebar-right #icone_list .hamburger{z-index:999;float:right}body .sidebar-right .list-projets{z-index:999}body .sidebar-right .list-projets .title-menu h2{font-size:1.7rem;line-height:2.3rem}body .sidebar-right .list-projets ul li{font-size:1rem;line-height:1.5rem;display:initial!important;margin-top:0!important}body .sidebar-right .list-projets ul li::before{width:100%}body .sidebar-right .list-projets ul li a{font-size:1rem;line-height:1.5rem;display:initial!important;padding:0!important}body .sidebar-right .list-projets ul li a img{display:none!important}body .sidebar-right .list-projets ul li>span{font-size:1rem;line-height:1.5rem}body .sidebar-right .list-projets .container-wrap{display:block}body .sidebar-right .list-projets .container-wrap .container::after{top:auto!important;bottom:0;left:0!important;width:0;height:1px}body .sidebar-right.is-active .container::after{width:100%!important;transition:1s width 1s ease}body .sidebar-right .informations h3{font-size:1.1rem}footer{z-index:999;bottom:0!important;left:0!important;width:100%;padding:.5rem;background-color:#f9f9f9fe;-ms-flex-pack:center;justify-content:center}.circle_hover.open{width:100px!important;height:100px!important}} \ No newline at end of file +@font-face{font-family:lato;src:url(../fonts/lato/Lato-Regular.eot);src:url(../fonts/lato/Lato-Regular.eot?#iefix) format('embedded-opentype'),url(../fonts/lato/Lato-Regular.woff) format('woff'),url(../fonts/lato/Lato-Regular.ttf) format('truetype'),url(../fonts/lato/Lato-Regular.svg#lato) format('svg')}@font-face{font-family:syne;src:url(../fonts/syne/Syne-Bold.eot);src:url(../fonts/syne/Syne-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/syne/Syne-Bold.woff) format('woff'),url(../fonts/syne/Syne-Bold.ttf) format('truetype'),url(../fonts/syne/Syne-Bold.svg#syne) format('svg')}@font-face{font-family:Avara;src:url(../fonts/avara/Avara-Bold_Italic_web.eot);src:url(../fonts/avara/Avara-Bold_Italic_web.eot?#iefix) format('embedded-opentype'),url(../fonts/avara/Avara-Bold_Italic_web.woff) format('woff'),url(../fonts/avara/Avara-Bold_Italic_web.ttf) format('truetype'),url(../fonts/avara/Avara-Bold_Italic_web.svg#Avara) format('svg')}@font-face{font-family:playfairdisplay-regularitalic;src:url(../fonts/playfair/playfairdisplay-regularitalic.eot);src:url(../fonts/playfair/playfairdisplay-regularitalic.eot?#iefix) format('embedded-opentype'),url(../fonts/playfair/playfairdisplay-regularitalic.woff) format('woff'),url(../fonts/playfair/playfairdisplay-regularitalic.ttf) format('truetype'),url(../fonts/playfair/playfairdisplay-regularitalic.svg#playfairdisplay-regularitalic) format('svg')}@font-face{font-family:Moche-Bold;src:url(../fonts/moche/Moche-Bold.eot);src:url(../fonts/moche/Moche-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/moche/Moche-Bold.woff) format('woff'),url(../fonts/moche/Moche-Bold.ttf) format('truetype'),url(../fonts/moche/Moche-Bold.svg#Moche-Bold) format('svg')}@font-face{font-family:rammetto-regular;src:url(../fonts/rammetto/rammettoone-regular-webfont.eot);src:url(../fonts/rammetto/rammettoone-regular-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rammetto/rammettoone-regular-webfont.woff) format('woff'),url(../fonts/rammetto/rammettoone-regular-webfont.ttf) format('truetype'),url(../fonts/rammetto/rammettoone-regular-webfont.svg#rammetto-regular) format('svg')}@font-face{font-family:rumeur-regular;src:url(../fonts/rumeur/rumeur-webfont.eot);src:url(../fonts/rumeur/rumeur-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rumeur/rumeur-webfont.woff) format('woff'),url(../fonts/rumeur/rumeur-webfont.ttf) format('truetype'),url(../fonts/rumeur/rumeur-webfont.svg#rumeur-regular) format('svg')}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;line-height:1.15;margin:0;padding:0;-webkit-text-size-adjust:100%}body{margin:0;padding:0}main{display:block}h1{font-size:auto;margin:0}hr{overflow:visible;box-sizing:content-box;height:0}pre{font-family:monospace,monospace;font-size:1em}p{margin:0}ul{list-style:none}li,ul{margin:0;padding:0}a{text-decoration:none;color:#000;background-color:transparent}abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:none;-webkit-text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{width:100%;height:100%;vertical-align:bottom;border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;box-sizing:border-box;max-width:100%;padding:0;white-space:normal;color:inherit}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}a,h1,h2,h3,li,p,span,ul{font-family:lato;font-weight:lighter}header a{font-size:2.5rem;line-height:3rem}a,button{border:none;outline:0!important}.title-menu h2{font-family:rammetto-regular}.home h2,.home p{font-size:2.5rem;line-height:3rem}.home #text_figli strong{position:relative}.home #text_figli strong::after{position:absolute;bottom:0;display:block;width:100%;height:1px;content:'';background:#000}.home #text_figli a{position:relative}.home #text_figli a#publique{font-family:playfairdisplay-regularitalic}.home #text_figli a#sociale{font-family:syne}.home #text_figli a#culturelle{font-family:Avara}.home #text_figli a#commanditaires{font-family:Moche-Bold}.home #text_figli a#figureslibres{font-family:rammetto-regular}.home #text_figli a#logiciels-libres{font-family:rumeur-regular}.home #text_figli #item .e-content p{font-size:1.5rem;line-height:3rem}.home #text_figli #item .e-content p strong{font-weight:700!important}.home #text_figli #item .e-content p a{text-decoration:underline}.home #text_figli #item .e-content p em{font-style:italic}.home #text_figli #item_list.commanditaires{flex-direction:column}.home #text_figli #item_list.commanditaires .card-title{line-height:normal}#item h2{font-size:4rem!important;font-weight:400!important;line-height:4rem!important;width:auto}#item span{font-size:1rem}#item.publique h2{font-family:playfairdisplay-regularitalic}#item.publique span{font-family:playfairdisplay-regularitalic;font-weight:400}#item.sociale h2{font-family:syne}#item.sociale span{font-family:syne;font-weight:400}#item.culturelle h2{font-family:Avara}#item.culturelle span{font-family:Avara;font-weight:400}a.publique,span.publique{font-family:playfairdisplay-regularitalic}a.sociale,span.sociale{font-family:syne}a.culturelle,span.culturelle{font-family:Avara}.sidebar-right h2{margin:.5rem 0 0 0}.sidebar-right ul>span{font-size:.8rem;line-height:1rem!important;margin-bottom:.5rem;text-decoration:underline}.sidebar-right ul>li{font-size:1.7rem;line-height:2.5rem}.sidebar-right ul>li a{font-size:1.7rem;line-height:2rem;border-radius:50px}.sidebar-right .informations{padding:1rem}.sidebar-right .informations>div{margin-bottom:1rem}.sidebar-right .informations h3{font-size:1.5rem;line-height:2rem;margin:0}.sidebar-right .informations p{font-size:1rem;line-height:1.5rem}.other_projets h3{font-size:2.5rem;margin:0}.card h2{font-size:1rem;margin:0}#text_figli{z-index:999;opacity:1}#text_figli p>a{z-index:999}#text_figli p>a:after,#text_figli p>a:before{position:absolute;bottom:-1px;width:0;height:1px;margin:1px 0 0;content:'';transition:all .2s ease-in-out;transition-duration:.3s;opacity:0;background-color:#000}#text_figli p>a::before{left:50%}#text_figli p>a:after{right:50%}#text_figli p>a:hover{cursor:pointer}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:100%;opacity:1}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:50%}#text_figli p>a #icone_list{transition:1s .5s margin-left,.8s .3s opacity}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:0s .2s transform;transform:translate3d(0,5px,0) rotate(0)}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:.2s .2s transform;transform:translate3d(0,-10px,0) rotate(0)}#text_figli p>a.open #icone_list{transition:.5s margin-left,.5s opacity}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}#text_figli p>a#figureslibres::after,#text_figli p>a#figureslibres::before{bottom:5px}#text_figli.hidden{transition:.3s opacity ease;opacity:0}.circle_hover{position:absolute;z-index:0;width:0;height:0;transition:height .2s,width .2s;transform:translate(-50%,-50%)}.circle_hover.open{width:200px;height:200px;transition:height .5s,width .5s}.circle_hover.figureslibres{background:url(/user/themes/figureslibres/images/figures_libres.svg) center no-repeat;background-size:contain}.circle_hover.publique{background:url(/user/themes/figureslibres/images/publique.svg) center no-repeat;background-size:contain}.circle_hover.sociale{background:url(/user/themes/figureslibres/images/sociale.svg) center no-repeat;background-size:contain}.circle_hover.culturelle{background:url(/user/themes/figureslibres/images/culturelle.svg) center no-repeat;background-size:contain}.circle_hover.commanditaires{background:url(/user/themes/figureslibres/images/commanditaires.svg) center no-repeat;background-size:contain}.circle_hover.logiciels-libres{background:url(/user/themes/figureslibres/images/logiciels_libres.svg) center no-repeat;background-size:contain}*{box-sizing:border-box}.loader{display:none;width:10px;height:10px;margin-left:10px;vertical-align:middle;background-image:url(/user/themes/figureslibres/images/ajax-loader.gif);background-repeat:no-repeat;background-position:center;background-size:10px 10px}.card .loader{position:absolute;z-index:999;top:50%;left:50%;margin-left:0;transform:translate(-50%,50%)}body,html{background:#f9f9f9fe}body.hidden,html.hidden{overflow:hidden}img.lazy{display:block}body #start{width:calc((100% / 1.5) - (1rem / 2));margin:1rem auto auto 1rem}body #start #text_figli p a #icone_list{position:relative;z-index:999;display:inline-block;margin-left:-30px;opacity:0}body #start #text_figli p a #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli p a.marg{margin-right:.5rem}body #start #text_figli p a.open #icone_list{position:relative;z-index:999;display:inline-block;margin-left:0;transition:.5s margin-left,.5s opacity;opacity:1}body #start #text_figli p a.open #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}body #start #text_figli p a.open #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli #item_list{position:relative;width:80vw;margin-top:.5rem}body #start #text_figli #item_list .card{position:relative;display:inline-block;width:calc((100% / 5) - (.5rem * 2));min-width:250px;height:100%;margin:0 .5rem .5rem 0;vertical-align:top}body #start #text_figli #item_list .card>.card-image.open a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card a{display:block;overflow:auto;border-radius:5px}body #start #text_figli #item_list .card a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(1);filter:grayscale(1)}body #start #text_figli #item_list .card .card-header{display:none;width:100%;padding:.5rem;border-bottom-right-radius:5px;border-bottom-left-radius:5px;flex-wrap:wrap}body #start #text_figli #item_list .card .card-header>*{font-size:.8rem;line-height:1rem;margin-right:.5rem}body #start #text_figli #item_list .card:hover a{display:block}body #start #text_figli #item_list .card:hover a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card:hover .card-header{position:absolute;bottom:0;display:inline-flex}body #start #text_figli #item_list .card:last-of-type{vertical-align:baseline!important}body #start #text_figli #item_list .card #item{position:relative;width:calc(80vw - (.5rem * 6));margin-top:.5rem;padding:2rem 2rem .5rem 2rem;border-radius:5px}body #start #text_figli #item_list .card #item .content-title{display:flex;margin:1rem auto 3rem auto;flex-wrap:wrap;justify-content:space-between;align-items:baseline}body #start #text_figli #item_list .card #item .content-title a{display:block}body #start #text_figli #item_list .card #item .e-content p{font-size:1rem;line-height:1.2rem}body #start #text_figli #item_list .card #item.publique{background:#ffaeab}body #start #text_figli #item_list .card #item.sociale{background:#7eff71}body #start #text_figli #item_list .card #item.culturelle{background:#feff74}body #start #text_figli #item_list .card #item.commanditaires{background:#fabbde}body #start #text_figli #item_list .card #item #icone_list{line-height:0;position:absolute;top:0;right:0}body #start #text_figli #item_list.publique .card:hover .card-header{background:#ffaeab}body #start #text_figli #item_list.sociale .card:hover .card-header{background:#7eff71}body #start #text_figli #item_list.culturelle .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.commanditaires{display:block;margin:1rem auto;-moz-columns:4 150px;columns:4 150px;-moz-column-gap:2em;column-gap:2em}body #start #text_figli #item_list.commanditaires p{font-size:1rem;line-height:1.2rem;margin:.5rem auto}body #start #text_figli #item_list.commanditaires .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{display:block;width:70%;min-width:500px;margin:1rem 0}body #start #text_figli #item_list.figureslibres p,body #start #text_figli #item_list.logiciels-libres p{font-size:1rem;line-height:1.5rem}body #start #text_figli #top{position:relative;width:100%;cursor:pointer;text-align:center}body:not(.home) #start{margin-top:calc(2rem + 3rem)}#icone_list .hamburger{padding:.8rem}#icone_list .hamburger .hamburger-box{width:18px;height:12px}#icone_list .hamburger .hamburger-box .hamburger-inner{width:18px;height:2px}#icone_list .hamburger .hamburger-box .hamburger-inner::before{top:5px;width:15px;height:inherit}#icone_list .hamburger .hamburger-box .hamburger-inner::after{top:10px;width:inherit;height:inherit}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner{transform:translate3d(0,5px,0) rotate(45deg)}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner::after{transform:translate3d(0,-10px,0) rotate(-90deg)}body.sticky-footer{display:flex;flex-direction:column;height:100%;min-height:100vh}body.sticky-footer #page-wrapper{flex:1 0 auto}.home footer{position:fixed;right:20px;bottom:20px;display:inline-flex;color:#acb3c2}.home footer p{font-size:1rem!important;line-height:1rem!important}.home footer p a img{width:20px!important}.sidebar-right{position:fixed;z-index:1000;top:0;left:-100vw;width:100%;height:100%;transition:.3s right ease;background:#f9f9f9fe}.sidebar-right ul span{line-height:2rem}.sidebar-right #icone_list{position:fixed;z-index:1000;top:10px;right:0}.sidebar-right .list-projets{overflow:auto;height:100%}.sidebar-right .list-projets .title-menu{padding-left:.5rem}.sidebar-right .list-projets .title-menu::after{display:block;width:0;height:1px;margin-top:.5rem;content:' '}.sidebar-right .list-projets .container-wrap{display:inline-flex}.sidebar-right .list-projets .container{position:relative;overflow:auto;width:85%;margin-top:20px;padding:1rem 2rem 2rem .5rem;opacity:0}.sidebar-right .list-projets .container::after{position:absolute;top:0;right:0;display:block;width:1px;height:0;margin-right:1rem;content:' '}.sidebar-right .list-projets .container ul{margin-bottom:20px}.sidebar-right .list-projets .container ul span.cat{line-height:3rem;display:block}.sidebar-right .list-projets .container ul li{position:relative;display:inline-flex;width:auto;align-items:flex-end}.sidebar-right .list-projets .container ul li a{z-index:0;display:block;margin-right:0;padding:0 7px;transition:.6s background;background:#f9f9f9fe}.sidebar-right .list-projets .container ul li a .img{position:fixed;z-index:999;display:none;overflow:hidden;width:300px;height:auto;transform:rotate(0);transform-origin:center center;pointer-events:none;border-radius:10px}.sidebar-right .list-projets .container ul li a:hover{z-index:999}.sidebar-right .list-projets .container ul li a:hover .img{display:block;transition:all 1s ease}.sidebar-right .list-projets .container ul li:hover.culturelle a{transition:.6s background;background:#feff74}.sidebar-right .list-projets .container ul li:hover.sociale a{transition:.6s background;background:#7eff71}.sidebar-right .list-projets .container ul li:hover.publique a{transition:.6s background;background:#ffaeab}.sidebar-right .list-projets .container ul li:hover::before{min-width:100%;transition:.3s background}.sidebar-right .list-projets .container ul a{z-index:999;color:#000}.sidebar-right .list-projets .container ul a.active{color:#000}.sidebar-right .list-projets .informations{position:relative;min-width:250px;height:100%;padding-left:40px;opacity:0}.sidebar-right.is-active{left:0;transition:.5s .3s left ease}.sidebar-right.is-active .title-menu::after{width:100%;transition:1s .9s width ease;background:#000}.sidebar-right.is-active .informations{padding-left:25px;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container{margin-top:0;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container::after{height:100%;transition:1s .9s height ease;background:#000}#item_list{display:inline-flex;width:100%;flex-wrap:wrap}#item_list .card{width:calc((100% / 2) - (1rem / 2));height:100%}#item_list .card:nth-child(odd){margin-right:1rem}#item_list .card .card-header{z-index:999;display:inline-flex;width:100%}#item_list .card .card-header>*{margin-right:.5rem}#item .e-content{width:50%;min-width:500px;margin:0 0 2rem 0}#item .card-image img:not(:last-of-type){margin-bottom:1.5rem}.other_projets{display:flex;margin-top:1rem;margin-bottom:1rem;border-top:1px solid #000;flex-wrap:wrap}.other_projets h3{width:100%;margin:1rem 0 .5rem 0}.other_projets .card{width:calc((100% / 3) - (1rem / 3))}.other_projets .card:nth-child(-1n+3){margin-right:.5rem}.other_projets .card .card-header{display:flex;flex-wrap:wrap}.other_projets .card .card-header>*{margin-right:.5rem}@media screen and (max-width:1024px){body #start{width:80%}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{width:100%}body #start #text_figli #item_list .card{width:calc((100% / 3) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(300% + (.5rem * 2))}body #start #text_figli #item_list .card #item .content-title{margin:1rem auto 1rem auto}body #start #text_figli #item_list .card #item .e-content{width:100%}}@media screen and (max-width:1000px){.sidebar-right .list-projets .container{float:none;width:100%;padding-bottom:0}.sidebar-right .list-projets .informations{float:none;margin-left:10px;padding-left:.5rem}#item_list{width:90vw!important}}@media screen and (max-width:768px){body #start #text_figli #item_list .card{width:calc((100% / 2) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(90vw - .5rem)}}@media screen and (max-width:510px){body #start{width:calc(100% - 1rem);margin:.5rem auto 2rem auto}body #start #text_figli p{font-size:1.7rem;line-height:2.3rem}body #start #text_figli #item_list{width:100%!important}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{min-width:100%}body #start #text_figli #item_list .card{width:calc(100%);margin:0 0 .5rem 0}body #start #text_figli #item_list .card #item{width:100%;padding:1rem}body #start #text_figli #item_list .card #item .e-content{min-width:100%;margin:2rem 0}body #start #text_figli #item_list .card #item .content-title h2{font-size:2rem!important;line-height:2.5rem!important}body #start #text_figli #item_list .card #item .content-title>div{line-height:1rem}body .sidebar-right{right:-100%;width:100%}body .sidebar-right #icone_list{z-index:0;top:0}body .sidebar-right #icone_list .hamburger{z-index:999;float:right}body .sidebar-right .list-projets{z-index:999}body .sidebar-right .list-projets .title-menu h2{font-size:1.7rem;line-height:2.3rem}body .sidebar-right .list-projets ul li{font-size:1rem;line-height:1.5rem;display:initial!important;margin-top:0!important}body .sidebar-right .list-projets ul li::before{width:100%}body .sidebar-right .list-projets ul li a{font-size:1rem;line-height:1.5rem;display:initial!important;padding:0!important}body .sidebar-right .list-projets ul li a img{display:none!important}body .sidebar-right .list-projets ul li>span{font-size:1rem;line-height:1.5rem}body .sidebar-right .list-projets .container-wrap{display:block}body .sidebar-right .list-projets .container-wrap .container::after{top:auto!important;bottom:0;left:0!important;width:0;height:1px}body .sidebar-right.is-active .container::after{width:100%!important;transition:1s width 1s ease}body .sidebar-right .informations h3{font-size:1.1rem}footer{z-index:999;bottom:0!important;left:0!important;width:100%;padding:.5rem;background-color:#f9f9f9fe;justify-content:center}.circle_hover.open{width:100px!important;height:100px!important}} \ No newline at end of file From 7435174adc7b8bb4c4912b12f2e8c41e65a1dd60 Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 7 Sep 2020 20:29:11 +0200 Subject: [PATCH 2/3] modif croix --- user/themes/figureslibres/css-compiled/theme.css | 12 ++++-------- user/themes/figureslibres/css-compiled/theme.min.css | 6 +----- user/themes/figureslibres/scss/theme/_sidebar.scss | 2 +- user/themes/figureslibres/scss/theme/_start.scss | 4 ++-- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/user/themes/figureslibres/css-compiled/theme.css b/user/themes/figureslibres/css-compiled/theme.css index 5b54e2b..8d588fc 100644 --- a/user/themes/figureslibres/css-compiled/theme.css +++ b/user/themes/figureslibres/css-compiled/theme.css @@ -307,7 +307,7 @@ body #start #text_figli p a.open #icone_list .hamburger { padding: 0; margin-lef body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner { transform: translate3d(0, 5px, 0) rotate(45deg); transition: 0.8s 0.2s transform; } -body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after { transform: translate3d(0, -10px, 0) rotate(90deg); transition: 1s 0.2s transform; } +body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after { transform: translate3d(0, -20px, 0) rotate(90deg); transition: 1s 0.2s transform; } body #start #text_figli p a.open #icone_list .hamburger .hamburger-box { vertical-align: middle; } @@ -349,7 +349,7 @@ body #start #text_figli #item_list .card #item.culturelle { background: #feff74; body #start #text_figli #item_list .card #item.commanditaires { background: #fabbde; } -body #start #text_figli #item_list .card #item #icone_list { position: absolute; top: 0px; right: 0; line-height: 0; } +body #start #text_figli #item_list .card #item #icone_list { position: absolute; top: 10px; right: 0; line-height: 0; } body #start #text_figli #item_list.publique .card:hover .card-header { background: #ffaeab; } @@ -397,7 +397,7 @@ body.sticky-footer #page-wrapper { flex: 1 0 auto; } .sidebar-right ul span { line-height: 2rem; } -.sidebar-right #icone_list { z-index: 1000; position: fixed; top: 27px; right: 20px; } +.sidebar-right #icone_list { z-index: 1000; position: fixed; top: 20px; right: 20px; } .sidebar-right .list-projets { height: 100%; overflow: auto; margin: 1rem auto auto 1rem; } @@ -513,8 +513,4 @@ body.sticky-footer #page-wrapper { flex: 1 0 auto; } footer { z-index: 999; justify-content: center; width: 100%; bottom: 0 !important; left: 0 !important; padding: 0.5rem; background-color: #f9f9f9fe; } .circle_hover.open { width: 100px !important; height: 100px !important; } } -<<<<<<< HEAD -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX2Zvb3Rlci5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9zdGFydCc7XG5AaW1wb3J0ICd0aGVtZS9mb290ZXInO1xuQGltcG9ydCAndGhlbWUvc2lkZWJhcic7XG5AaW1wb3J0ICd0aGVtZS9ibG9nJztcbkBpbXBvcnQgJ3RoZW1lL2l0ZW0nO1xuQGltcG9ydCAndGhlbWUvbW9iaWxlJztcbiIsIi8vIEZvbnQgRmFtaWx5XG4kZm9udC1mYW1pbHktZGVmYXVsdDogIFx0XHRcdFwiUmFsZXdheVwiLCBcIkhlbHZldGljYVwiLCBcIlRhaG9tYVwiLCBcIkdlbmV2YVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGVyOiAgXHRcdFx0XCJNb250c2VycmF0XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1tb25vOiBcdFx0XHRcdFwiSW5jb25zb2xhdGFcIiwgbW9ub3NwYWNlO1xuJGZvbnQtZmFtaWx5LXNlcmlmOlx0XHRcdFx0XCJHZW9yZ2lhXCIsIFwiVGltZXNcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLyBAZm9udC1mYWNlXG5cbiRsYXRvOiBcImxhdG9cIjtcbiRmYW1pbHk6IFwibGF0b1wiO1xuJGZpbGUtcmVndWxhcjogXCJMYXRvLVJlZ3VsYXJcIjtcbiRjYXRlZ29yeTogXCJzYW5zLXNlcmlmXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseSArIFwiL1wiICsgJGZpbGUtcmVndWxhcjtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRsYXRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbGF0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRsYXRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRzeW5lOiBcInN5bmVcIjtcbiRmYW1pbHktYm9sZDogXCJzeW5lXCI7XG4kZmlsZS1ib2xkOiBcIlN5bmUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1ib2xkICsgXCIvXCIgKyAkZmlsZS1ib2xkO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRzeW5lfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB9XG5cbiAgICAlI3skc3luZX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRzeW5lfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRhdmFyYTogXCJBdmFyYVwiO1xuJGZhbWlseS1ib2xkLWl0YWxpYzogXCJhdmFyYVwiO1xuJGZpbGUtYm9sZC1pdGFsaWM6IFwiQXZhcmEtQm9sZF9JdGFsaWNfd2ViXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQtaXRhbGljICsgXCIvXCIgKyAkZmlsZS1ib2xkLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skYXZhcmF9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkYXZhcmEgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRhdmFyYX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIiwgI3skY2F0ZWdvcnl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHBsYXlmYWlyOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG4kZmFtaWx5LWl0YWxpYzogXCJwbGF5ZmFpclwiO1xuJGZpbGUtaXRhbGljOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHBsYXlmYWlyLCAkZmlsZS1pdGFsaWMsICRmYW1pbHktaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktaXRhbGljICsgXCIvXCIgKyAkZmlsZS1pdGFsaWM7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHBsYXlmYWlyICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcGxheWZhaXJ9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kbW9jaGU6IFwiTW9jaGUtQm9sZFwiO1xuJGZhbWlseS1yZWd1bGFyMjogXCJtb2NoZVwiO1xuJGZpbGUtcmVndWxhcjI6IFwiTW9jaGUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRtb2NoZSwgJGZpbGUtcmVndWxhcjIsICRmYW1pbHktcmVndWxhcjIsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyMiArIFwiL1wiICsgJGZpbGUtcmVndWxhcjI7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJG1vY2hlICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbW9jaGV9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcmFtbWV0dG86IFwicmFtbWV0dG8tcmVndWxhclwiO1xuJGZhbWlseS1yZWd1bGFyMzogXCJyYW1tZXR0b1wiO1xuJGZpbGUtcmVndWxhcjM6IFwicmFtbWV0dG9vbmUtcmVndWxhci13ZWJmb250XCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHJhbW1ldHRvLCAkZmlsZS1yZWd1bGFyMywgJGZhbWlseS1yZWd1bGFyMywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LXJlZ3VsYXIzICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyMztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcmFtbWV0dG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRyYW1tZXR0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRydW1ldXI6IFwicnVtZXVyLXJlZ3VsYXJcIjtcbiRmYW1pbHktcmVndWxhcjQ6IFwicnVtZXVyXCI7XG4kZmlsZS1yZWd1bGFyNDogXCJydW1ldXItd2ViZm9udFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyNCArIFwiL1wiICsgJGZpbGUtcmVndWxhcjQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHJhbW1ldHRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcmFtbWV0dG99IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZm9udC1mYWNlKCRsYXRvLCAkZmlsZS1yZWd1bGFyLCAkZmFtaWx5LCAkY2F0ZWdvcnkpOy8vMVxuQGluY2x1ZGUgZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeSk7Ly8yXG5cbkBpbmNsdWRlIGZvbnQtZmFjZSgkbW9jaGUsICRmaWxlLXJlZ3VsYXIyLCAkZmFtaWx5LXJlZ3VsYXIyLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjMsICRmYW1pbHktcmVndWxhcjMsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJHJ1bWV1ciwgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeSk7Ly8yXG5cbi8vIGZvbnQtc2l6ZVxuJHR4dC1maWdsaTogMi41cmVtO1xuXG4vLyBsaW5lLWhlaWdodFxuJEZsaG9tZTogM3JlbTtcblxuJG1hcmc6IDAuNXJlbTtcbiRtYXJnSTogMXJlbTtcbiRXaTogODAlO1xuXG4kV2k1MDogY2FsYygoIDEwMCUgLyAyICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpODA6IGNhbGMoKCAxMDAlIC8gMS41ICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpMzM6IGNhbGMoKCAxMDAlIC8gMyApIC0gKCN7JG1hcmdJfSAvIDMpKTtcblxuLy8gbW9iaWxlXG4kdHh0LWZpZ2xpLW06IDEuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtbTogMnJlbTtcbiRXaS1tOiBjYWxjKCAxMDAlIC0gMXJlbSk7XG4kV2k4MC1tOiA4MCU7XG4kV2kzMy1tOiBjYWxjKCggMTAwJSAvIDMgKSAtIDAuNXJlbSk7XG5cbi8vIHRhYmxldHRlXG4kdHh0LWZpZ2xpLXQ6IDIuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtdDogM3JlbTtcblxuLy8gY29sb3JcbiRjb2xvcl9wdWJsaXF1ZTogI2ZmYWVhYjtcbiRjb2xvcl9zb2NpYWxlOiAjN2VmZjcxO1xuJGNvbG9yX2N1bHR1cmVsbGU6ICNmZWZmNzQ7XG4kY29sb3JfY29tbWFuZGl0YWlyZTogI2ZhYmJkZTtcbiRjb2xvcl9maWd1cmVzbGlicmVzOiAjODJmOGVlO1xuIiwiIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogYXV0bztcbiAgbWFyZ2luOjA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbnB7XG4gbWFyZ2luOiAwO1xufVxuXG51bHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbnVsLGxpe1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsImgxLCBoMiwgaDMsIHAsIHVsLCBsaSwgYSwgc3BhbntcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuaGVhZGVye1xuICBhe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogJEZsaG9tZTtcbiAgfVxufVxuXG5hLCBidXR0b257XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi50aXRsZS1tZW51e1xuICBoMntcbiAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICB9XG59XG4uaG9tZXtcbiAgaDIsIHB7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICB9XG4gICN0ZXh0X2ZpZ2xpe1xuICAgIHN0cm9uZ3tcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGF7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmI3B1YmxpcXVle1xuICAgICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICAgfVxuICAgICAgJiNzb2NpYWxle1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmI2N1bHR1cmVsbGV7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICB9XG4gICAgICAmI2NvbW1hbmRpdGFpcmVze1xuICAgICAgICBmb250LWZhbWlseTogJG1vY2hlO1xuICAgICAgfVxuICAgICAgJiNmaWd1cmVzbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgfVxuICAgICAgJiNsb2dpY2llbHMtbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJ1bWV1cjtcbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW17XG4gICAgICAuZS1jb250ZW50e1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbXtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW1fbGlzdHtcbiAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5jYXJkLXRpdGxle1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI2l0ZW17XG4gIGgye1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiA0cmVtIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDRyZW0haW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwhaW1wb3J0YW50O1xuICB9XG4gIHNwYW57XG4gICAgZm9udC1zaXplOiAxcmVtO1xuIH1cbiAmLnB1YmxpcXVle1xuICAgaDJ7XG4gICAgIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG4gICB9XG4gICBzcGFue1xuICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgfVxuIH1cbiAmLnNvY2lhbGV7XG4gICBoMntcbiAgICAgZm9udC1mYW1pbHk6ICRzeW5lO1xuICAgfVxuICAgc3BhbntcbiAgICAgZm9udC1mYW1pbHk6ICRzeW5lO1xuICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgfVxuIH1cbiAgJi5jdWx0dXJlbGxle1xuICAgIGgye1xuICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICB9XG4gICAgc3BhbntcbiAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cbiAgfVxufVxuXG5hLnB1YmxpcXVlLCBzcGFuLnB1YmxpcXVle1xuICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xufVxuXG5hLnNvY2lhbGUsIHNwYW4uc29jaWFsZXtcbiAgZm9udC1mYW1pbHk6ICRzeW5lO1xufVxuXG5hLmN1bHR1cmVsbGUsIHNwYW4uY3VsdHVyZWxsZXtcbiAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbn1cblxuLnNpZGViYXItcmlnaHR7XG4gIGgye1xuICAgIG1hcmdpbjogLjVyZW0gMHJlbSAwcmVtIDByZW07XG4gIH1cbiAgdWwgPiBzcGFue1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgdWwgPiBsaXtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICBhe1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgfVxuICB9XG4gIC5pbmZvcm1hdGlvbnN7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICAmPiBkaXZ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiJGFuaW1hdGU6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4jdGV4dF9maWdsaXtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAxO1xuICBwe1xuICAgICYgPiBhe1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRlO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC41cyBtYXJnaW4tbGVmdCwwLjhzIDAuM3Mgb3BhY2l0eTtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4ycyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5vcGVue1xuICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzIG1hcmdpbi1sZWZ0LCAwLjVzIG9wYWNpdHk7XG4gICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICYuaGFtYnVyZ2VyLS1zbGlkZXJ7XG4gICAgICAgICAgICAgIC5oYW1idXJnZXItaW5uZXJ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuOHMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgJjphZnRlcntcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMXMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmI2ZpZ3VyZXNsaWJyZXN7XG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXJ7XG4gICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5oaWRkZW57XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgZWFzZTtcbiAgfVxufVxuXG4uY2lyY2xlX2hvdmVye1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC4ycywgd2lkdGggLjJzO1xuICAmLm9wZW57XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IC41cywgd2lkdGggLjVzO1xuICB9XG4gICYuZmlndXJlc2xpYnJlc3tcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9maWd1cmVzX2xpYnJlcy5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5wdWJsaXF1ZXtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvcHVibGlxdWUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5zb2NpYWxle1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL3NvY2lhbGUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYuY3VsdHVyZWxsZXtcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9jdWx0dXJlbGxlLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLmNvbW1hbmRpdGFpcmVze1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2NvbW1hbmRpdGFpcmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvbG9naWNpZWxzX2xpYnJlcy5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbn1cbiIsIi5ob21le1xuICBoZWFkZXJ7XG4gIH1cbn1cbiIsIip7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5sb2FkZXJ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZicpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbn1cblxuLmNhcmR7XG4gIC5sb2FkZXJ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5odG1sLCBib2R5e1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gICYuaGlkZGVue1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbmltZy5sYXp5e1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHl7XG4gICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2k4MDtcbiAgICAgIG1hcmdpbjogMXJlbSBhdXRvIGF1dG8gMXJlbTtcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICBwIHtcbiAgICAgICAgICBhe1xuICAgICAgICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWFyZ3tcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub3BlbntcbiAgICAgICAgICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgbWFyZ2luLWxlZnQsIDAuNXMgb3BhY2l0eTtcbiAgICAgICAgICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgJi5oYW1idXJnZXItLXNsaWRlcntcbiAgICAgICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsNXB4LDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC44cyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAjaXRlbV9saXN0e1xuICAgICAgICAgIHdpZHRoOiA4MHZ3O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5jYXJke1xuICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC8gNSkgLSAoICN7JG1hcmd9ICogMikgKTtcbiAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJG1hcmcgJG1hcmcgMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgJiA+IC5jYXJkLWltYWdle1xuICAgICAgICAgICAgJi5vcGVue1xuICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuM3MgZWFzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAmID4gKntcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LW9mLXR5cGV7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAjaXRlbXtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCA4MHZ3IC0gKCAjeyRtYXJnfSAqIDYpICk7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDJyZW0gMC41cmVtIDJyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gYXV0byAzcmVtIGF1dG87XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5lLWNvbnRlbnR7XG4gICAgICAgICAgICAgIC8vIG1hcmdpbjogMXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICAgICAgICAgcHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5wdWJsaXF1ZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zb2NpYWxlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jb21tYW5kaXRhaXJlc3tcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2NvbW1hbmRpdGFpcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jdWx0dXJlbGxle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgICAgY29sdW1uczogNCAxNTBweDtcbiAgICAgICAgICAtd2Via2l0LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAyZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjdG9we1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpub3QoLmhvbWUpe1xuICAgICNzdGFydHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoIDJyZW0gKyAgI3skRmxob21lfSk7XG4gICAgfVxuICB9XG59XG5cbiNpY29uZV9saXN0e1xuICAuaGFtYnVyZ2Vye1xuICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAuaGFtYnVyZ2VyLWJveHtcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVye1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmV7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgJjo6YWZ0ZXIgIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKSByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gU3RpY2t5IEZvb3RlciBzb2x1dGlvblxuYm9keS5zdGlja3ktZm9vdGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAjcGFnZS13cmFwcGVyIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxufVxuXG4uaG9tZXtcbiAgZm9vdGVye1xuICAgIGNvbG9yOiAjYWNiM2MyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgcHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbSFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMXJlbSFpbXBvcnRhbnQ7XG4gICAgICBhe1xuICAgICAgaW1ne1xuICAgICAgICAgIHdpZHRoOiAyMHB4IWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItcmlnaHR7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogLTEwMHZ3O1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IDAuM3MgcmlnaHQgZWFzZTtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOWZlO1xuICB6LWluZGV4OiAxMDAwO1xuICB1bHtcbiAgICBzcGFue1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgI2ljb25lX2xpc3R7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5saXN0LXByb2pldHN7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC50aXRsZS1tZW51e1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRhaW5lci13cmFwe1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuICAgIC5jb250YWluZXJ7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtIDJyZW0gMC41cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgcmlnaHQ6MDtcbiAgICAgIH1cbiAgICB1bHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBzcGFuLmNhdHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgfVxuICAgICAgbGl7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGF7XG4gICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgN3B4O1xuICAgICAgICAgIC5pbWd7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgICAgIC5pbWd7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc29jaWFsZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjZzIGJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjpiZWZvcmV7fVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGJhY2tncm91bmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIH1cbiAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgbWluLXdpZHRoOiAyNTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgIH1cbiAgfVxuICAmLmlzLWFjdGl2ZXtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IDAuNXMgMC4zcyBsZWZ0IGVhc2U7XG4gICAgLnRpdGxlLW1lbnV7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjlzIHdpZHRoIGVhc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC5pbmZvcm1hdGlvbnN7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSAxcyBlYXNlO1xuXG4gICAgfVxuICAgIC5jb250YWluZXJ7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IDFzIG9wYWNpdHkgMXMgZWFzZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjlzIGhlaWdodCBlYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI2l0ZW1fbGlzdHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIC5jYXJke1xuICAgIHdpZHRoOiAkV2k1MDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgJjpudGgtY2hpbGQob2RkKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdJO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgJiA+ICoge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI2l0ZW17XG4gIC5lLWNvbnRlbnR7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIG1hcmdpbjogMCAwIDJyZW0gMDtcbiAgICB9XG4gIC5jYXJkLWltYWdle1xuICAgIGltZzpub3QoOmxhc3Qtb2YtdHlwZSl7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5vdGhlcl9wcm9qZXRze1xuICBib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogJG1hcmdJO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ0k7XG4gIGgze1xuICAgIG1hcmdpbjogMXJlbSAwICRtYXJnIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNhcmR7XG4gICAgd2lkdGg6ICRXaTMzO1xuICAgICY6bnRoLWNoaWxkKC0xbiszKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgfVxuICAgIC5jYXJkLWhlYWRlcntcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAmID4gKntcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCl7XG4gIGJvZHl7XG4gICAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaTgwLW07XG4gICAgICAjdGV4dF9maWdsaXtcbiAgICAgICAgI2l0ZW1fbGlzdHtcbiAgICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgIHdpZHRoOiAkV2kzMy1tO1xuICAgICAgICAgICAgI2l0ZW17XG4gICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDMwMCUgKyAoLjVyZW0gKiAyKSk7XG4gICAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDFyZW0gYXV0bztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuZS1jb250ZW50e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KXtcbiAgLnNpZGViYXItcmlnaHR7XG4gICAgLmxpc3QtcHJvamV0cyB7XG4gICAgICAuY29udGFpbmVye1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgICAgLmluZm9ybWF0aW9uc3tcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI2l0ZW1fbGlzdHtcbiAgICB3aWR0aDogOTB2dyFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAjc3RhcnQgI3RleHRfZmlnbGkgI2l0ZW1fbGlzdCAuY2FyZHtcbiAgICB3aWR0aDogY2FsYygoMTAwJSAvIDIpIC0gLjVyZW0pO1xuICAgICNpdGVte1xuICAgICAgd2lkdGg6IGNhbGMoOTB2dyAtIDAuNXJlbSk7XG4gICAgfVxuICB9XG5cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTEwcHgpIHtcbiAgYm9keXtcbiAgICAjc3RhcnR7XG4gICAgICB3aWR0aDogJFdpLW07XG4gICAgICBtYXJnaW46IDAuNXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgIH1cbiAgICAgICAgI2l0ZW1fbGlzdHtcbiAgICAgICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgICAgJi5maWd1cmVzbGlicmVzLCAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwLjVyZW0gMDtcbiAgICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgLmUtY29udGVudHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmNvbnRlbnQtdGl0bGV7XG4gICAgICAgICAgICAgICAgaDJ7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJiA+IGRpdntcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5zaWRlYmFyLXJpZ2h0e1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICByaWdodDogLTEwMCU7XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5saXN0LXByb2pldHN7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgLnRpdGxlLW1lbnV7XG4gICAgICAgICAgaDJ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVse1xuICAgICAgICAgIGxpe1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbml0aWFsIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDByZW0haW1wb3J0YW50O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJj4gc3BhbntcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyLXdyYXB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgdG9wOiBhdXRvIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLWFjdGl2ZXtcbiAgICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDFzIHdpZHRoIDFzIGVhc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgICBoM3tcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvb3RlcntcbiAgICB6LWluZGV4OiA5OTk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAwIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOWZlO1xuICB9XG5cbiAgLmNpcmNsZV9ob3Zlci5vcGVue1xuICAgIHdpZHRoOiAxMDBweCFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDBweCFpbXBvcnRhbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNvTEksVUFBVSxHQUNOLFdBQVcsRUFBRSxNQUFjLEVBQzNCLEdBQUcsRUFBRSxxQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLDRDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxzQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLHFDQUF1QixDQUFFLGtCQUFrQixFQUMzQywwQ0FBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLE1BQWMsRUFDM0IsR0FBRyxFQUFFLGtDQUF1QixFQUM1QixHQUFHLEVBQUUseUNBQThCLENBQUMsMkJBQTJCLEVBQ3pELG1DQUF3QixDQUFDLGNBQWMsRUFDdkMsa0NBQXVCLENBQUUsa0JBQWtCLEVBQzNDLHVDQUF5QyxDQUFDLGFBQWE7O0FBTmpFLFVBQVUsR0FDTixXQUFXLEVBQUUsT0FBYyxFQUMzQixHQUFHLEVBQUUsK0NBQXVCLEVBQzVCLEdBQUcsRUFBRSxzREFBOEIsQ0FBQywyQkFBMkIsRUFDekQsZ0RBQXdCLENBQUMsY0FBYyxFQUN2QywrQ0FBdUIsQ0FBRSxrQkFBa0IsRUFDM0MscURBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSwrQkFBYyxFQUMzQixHQUFHLEVBQUUsMERBQXVCLEVBQzVCLEdBQUcsRUFBRSxpRUFBOEIsQ0FBQywyQkFBMkIsRUFDekQsMkRBQXdCLENBQUMsY0FBYyxFQUN2QywwREFBdUIsQ0FBRSxrQkFBa0IsRUFDM0Msd0ZBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSxZQUFjLEVBQzNCLEdBQUcsRUFBRSxvQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLDJDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxxQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLG9DQUF1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 */ -======= -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX2Zvb3Rlci5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9zdGFydCc7XG5AaW1wb3J0ICd0aGVtZS9mb290ZXInO1xuQGltcG9ydCAndGhlbWUvc2lkZWJhcic7XG5AaW1wb3J0ICd0aGVtZS9ibG9nJztcbkBpbXBvcnQgJ3RoZW1lL2l0ZW0nO1xuQGltcG9ydCAndGhlbWUvbW9iaWxlJztcbiIsIi8vIEZvbnQgRmFtaWx5XG4kZm9udC1mYW1pbHktZGVmYXVsdDogIFx0XHRcdFwiUmFsZXdheVwiLCBcIkhlbHZldGljYVwiLCBcIlRhaG9tYVwiLCBcIkdlbmV2YVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGVyOiAgXHRcdFx0XCJNb250c2VycmF0XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1tb25vOiBcdFx0XHRcdFwiSW5jb25zb2xhdGFcIiwgbW9ub3NwYWNlO1xuJGZvbnQtZmFtaWx5LXNlcmlmOlx0XHRcdFx0XCJHZW9yZ2lhXCIsIFwiVGltZXNcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLyBAZm9udC1mYWNlXG5cbiRsYXRvOiBcImxhdG9cIjtcbiRmYW1pbHk6IFwibGF0b1wiO1xuJGZpbGUtcmVndWxhcjogXCJMYXRvLVJlZ3VsYXJcIjtcbiRjYXRlZ29yeTogXCJzYW5zLXNlcmlmXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseSArIFwiL1wiICsgJGZpbGUtcmVndWxhcjtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRsYXRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbGF0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRsYXRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRzeW5lOiBcInN5bmVcIjtcbiRmYW1pbHktYm9sZDogXCJzeW5lXCI7XG4kZmlsZS1ib2xkOiBcIlN5bmUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1ib2xkICsgXCIvXCIgKyAkZmlsZS1ib2xkO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRzeW5lfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB9XG5cbiAgICAlI3skc3luZX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRzeW5lfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRhdmFyYTogXCJBdmFyYVwiO1xuJGZhbWlseS1ib2xkLWl0YWxpYzogXCJhdmFyYVwiO1xuJGZpbGUtYm9sZC1pdGFsaWM6IFwiQXZhcmEtQm9sZF9JdGFsaWNfd2ViXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQtaXRhbGljICsgXCIvXCIgKyAkZmlsZS1ib2xkLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skYXZhcmF9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkYXZhcmEgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRhdmFyYX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIiwgI3skY2F0ZWdvcnl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHBsYXlmYWlyOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG4kZmFtaWx5LWl0YWxpYzogXCJwbGF5ZmFpclwiO1xuJGZpbGUtaXRhbGljOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHBsYXlmYWlyLCAkZmlsZS1pdGFsaWMsICRmYW1pbHktaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktaXRhbGljICsgXCIvXCIgKyAkZmlsZS1pdGFsaWM7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHBsYXlmYWlyICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcGxheWZhaXJ9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kbW9jaGU6IFwiTW9jaGUtQm9sZFwiO1xuJGZhbWlseS1yZWd1bGFyMjogXCJtb2NoZVwiO1xuJGZpbGUtcmVndWxhcjI6IFwiTW9jaGUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRtb2NoZSwgJGZpbGUtcmVndWxhcjIsICRmYW1pbHktcmVndWxhcjIsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyMiArIFwiL1wiICsgJGZpbGUtcmVndWxhcjI7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJG1vY2hlICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbW9jaGV9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcmFtbWV0dG86IFwicmFtbWV0dG8tcmVndWxhclwiO1xuJGZhbWlseS1yZWd1bGFyMzogXCJyYW1tZXR0b1wiO1xuJGZpbGUtcmVndWxhcjM6IFwicmFtbWV0dG9vbmUtcmVndWxhci13ZWJmb250XCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHJhbW1ldHRvLCAkZmlsZS1yZWd1bGFyMywgJGZhbWlseS1yZWd1bGFyMywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LXJlZ3VsYXIzICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyMztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcmFtbWV0dG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRyYW1tZXR0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRydW1ldXI6IFwicnVtZXVyLXJlZ3VsYXJcIjtcbiRmYW1pbHktcmVndWxhcjQ6IFwicnVtZXVyXCI7XG4kZmlsZS1yZWd1bGFyNDogXCJydW1ldXItd2ViZm9udFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyNCArIFwiL1wiICsgJGZpbGUtcmVndWxhcjQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHJhbW1ldHRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcmFtbWV0dG99IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZm9udC1mYWNlKCRsYXRvLCAkZmlsZS1yZWd1bGFyLCAkZmFtaWx5LCAkY2F0ZWdvcnkpOy8vMVxuQGluY2x1ZGUgZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeSk7Ly8yXG5cbkBpbmNsdWRlIGZvbnQtZmFjZSgkbW9jaGUsICRmaWxlLXJlZ3VsYXIyLCAkZmFtaWx5LXJlZ3VsYXIyLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjMsICRmYW1pbHktcmVndWxhcjMsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJHJ1bWV1ciwgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeSk7Ly8yXG5cbi8vIGZvbnQtc2l6ZVxuJHR4dC1maWdsaTogMi41cmVtO1xuXG4vLyBsaW5lLWhlaWdodFxuJEZsaG9tZTogM3JlbTtcblxuJG1hcmc6IDAuNXJlbTtcbiRtYXJnSTogMXJlbTtcbiRXaTogODAlO1xuXG4kV2k1MDogY2FsYygoIDEwMCUgLyAyICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpODA6IGNhbGMoKCAxMDAlIC8gMS41ICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpMzM6IGNhbGMoKCAxMDAlIC8gMyApIC0gKCN7JG1hcmdJfSAvIDMpKTtcblxuLy8gbW9iaWxlXG4kdHh0LWZpZ2xpLW06IDEuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtbTogMnJlbTtcbiRXaS1tOiBjYWxjKCAxMDAlIC0gMXJlbSk7XG4kV2k4MC1tOiA4MCU7XG4kV2kzMy1tOiBjYWxjKCggMTAwJSAvIDMgKSAtIDAuNXJlbSk7XG5cbi8vIHRhYmxldHRlXG4kdHh0LWZpZ2xpLXQ6IDIuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtdDogM3JlbTtcblxuLy8gY29sb3JcbiRjb2xvcl9wdWJsaXF1ZTogI2ZmYWVhYjtcbiRjb2xvcl9zb2NpYWxlOiAjN2VmZjcxO1xuJGNvbG9yX2N1bHR1cmVsbGU6ICNmZWZmNzQ7XG4kY29sb3JfY29tbWFuZGl0YWlyZTogI2ZhYmJkZTtcbiRjb2xvcl9maWd1cmVzbGlicmVzOiAjODJmOGVlO1xuIiwiIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogYXV0bztcbiAgbWFyZ2luOjA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbnB7XG4gbWFyZ2luOiAwO1xufVxuXG51bHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbnVsLGxpe1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsImgxLCBoMiwgaDMsIHAsIHVsLCBsaSwgYSwgc3BhbntcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuaGVhZGVye1xuICBhe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogJEZsaG9tZTtcbiAgfVxufVxuXG5hLCBidXR0b257XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi50aXRsZS1tZW51e1xuICBoMntcbiAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICB9XG59XG4uaG9tZXtcbiAgaDIsIHB7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICB9XG4gICN0ZXh0X2ZpZ2xpe1xuICAgIHN0cm9uZ3tcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGF7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmI3B1YmxpcXVle1xuICAgICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICAgfVxuICAgICAgJiNzb2NpYWxle1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmI2N1bHR1cmVsbGV7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICB9XG4gICAgICAmI2NvbW1hbmRpdGFpcmVze1xuICAgICAgICBmb250LWZhbWlseTogJG1vY2hlO1xuICAgICAgfVxuICAgICAgJiNmaWd1cmVzbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgfVxuICAgICAgJiNsb2dpY2llbHMtbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJ1bWV1cjtcbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW17XG4gICAgICAuZS1jb250ZW50e1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbXtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW1fbGlzdHtcbiAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5jYXJkLXRpdGxle1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuZmlndXJlc2xpYnJlc3tcbiAgICAgICAgaDN7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcmFtbWV0dG87XG4gICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwe1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgaDN7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5maWd1cmVzbGlicmVze1xuICAgICAgICBwe1xuICAgICAgICAgIC8vIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgc3Ryb25ne1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4jaXRlbXtcbiAgaDJ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IDRyZW0haW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogNHJlbSFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbCFpbXBvcnRhbnQ7XG4gIH1cbiAgc3BhbntcbiAgICBmb250LXNpemU6IDFyZW07XG4gfVxuICYucHVibGlxdWV7XG4gICBoMntcbiAgICAgZm9udC1mYW1pbHk6ICRwbGF5ZmFpcjtcbiAgIH1cbiAgIHNwYW57XG4gICAgIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG4gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICB9XG4gfVxuICYuc29jaWFsZXtcbiAgIGgye1xuICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICB9XG4gICBzcGFue1xuICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICB9XG4gfVxuICAmLmN1bHR1cmVsbGV7XG4gICAgaDJ7XG4gICAgICBmb250LWZhbWlseTogJGF2YXJhO1xuICAgIH1cbiAgICBzcGFue1xuICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuICB9XG59XG5cbmEucHVibGlxdWUsIHNwYW4ucHVibGlxdWV7XG4gIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG59XG5cbmEuc29jaWFsZSwgc3Bhbi5zb2NpYWxle1xuICBmb250LWZhbWlseTogJHN5bmU7XG59XG5cbmEuY3VsdHVyZWxsZSwgc3Bhbi5jdWx0dXJlbGxle1xuICBmb250LWZhbWlseTogJGF2YXJhO1xufVxuXG4uc2lkZWJhci1yaWdodHtcbiAgaDJ7XG4gICAgbWFyZ2luOjByZW07XG4gIH1cbiAgdWwgPiBzcGFue1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgdWwgPiBsaXtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICBhe1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgfVxuICB9XG4gIC5pbmZvcm1hdGlvbnN7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICAmPiBkaXZ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiJGFuaW1hdGU6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4jdGV4dF9maWdsaXtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAxO1xuICBwe1xuICAgICYgPiBhe1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRlO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC41cyBtYXJnaW4tbGVmdCwwLjhzIDAuM3Mgb3BhY2l0eTtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4ycyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5vcGVue1xuICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzIG1hcmdpbi1sZWZ0LCAwLjVzIG9wYWNpdHk7XG4gICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICYuaGFtYnVyZ2VyLS1zbGlkZXJ7XG4gICAgICAgICAgICAgIC5oYW1idXJnZXItaW5uZXJ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuOHMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgJjphZnRlcntcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMXMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmI2ZpZ3VyZXNsaWJyZXN7XG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXJ7XG4gICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5oaWRkZW57XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgZWFzZTtcbiAgfVxuXG4gICNpdGVtX2xpc3R7XG4gICAgcHtcbiAgICAgICYgPiAgYSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jaXJjbGVfaG92ZXJ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjJzLCB3aWR0aCAuMnM7XG4gICYub3BlbntcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgLjVzLCB3aWR0aCAuNXM7XG4gIH1cbiAgJi5maWd1cmVzbGlicmVze1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2ZpZ3VyZXNfbGlicmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLnB1YmxpcXVle1xuICAgICAgYmFja2dyb3VuZDpcbiAgICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9wdWJsaXF1ZS5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLnNvY2lhbGV7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvc29jaWFsZS5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5jdWx0dXJlbGxle1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2N1bHR1cmVsbGUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYuY29tbWFuZGl0YWlyZXN7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvY29tbWFuZGl0YWlyZXMuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9sb2dpY2llbHNfbGlicmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxufVxuIiwiIiwiKntcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmxvYWRlcntcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTBweCAxMHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG4uY2FyZHtcbiAgLmxvYWRlcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7XG4gICAgei1pbmRleDogOTk5O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbmh0bWwsIGJvZHl7XG4gIGJhY2tncm91bmQ6ICNmOWY5ZjlmZTtcbiAgJi5oaWRkZW57XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuaW1nLmxhenl7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYm9keXtcbiAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaTgwO1xuICAgICAgbWFyZ2luOiAxcmVtIGF1dG8gYXV0byAxcmVtO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgIHAge1xuICAgICAgICAgIGF7XG4gICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1ib3h7XG4gICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5tYXJne1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5vcGVue1xuICAgICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC41cyBtYXJnaW4tbGVmdCwgMC41cyBvcGFjaXR5O1xuICAgICAgICAgICAgICAgIC5oYW1idXJnZXJ7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgICAgICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCw1cHgsMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjhzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTEwcHgsMCkgcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDFzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1ib3h7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICNpdGVtX2xpc3R7XG4gICAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmNhcmR7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLyA1KSAtICggI3skbWFyZ30gKiAyKSApO1xuICAgICAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCAkbWFyZyAkbWFyZyAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAmID4gLmNhcmQtaW1hZ2V7XG4gICAgICAgICAgICAmLm9wZW57XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMCk7XG4gICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhe1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmc7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICYgPiAqe1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoIDgwdncgLSAoICN7JG1hcmd9ICogNikgKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMnJlbSAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgLmNvbnRlbnQtdGl0bGV7XG4gICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDNyZW0gYXV0bztcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmUtY29udGVudHtcbiAgICAgICAgICAgICAgLy8gbWFyZ2luOiAxcmVtIGF1dG8gMnJlbSBhdXRvO1xuICAgICAgICAgICAgICBwe1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHVibGlxdWU7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuc29jaWFsZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuY3VsdHVyZWxsZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2N1bHR1cmVsbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmNvbW1hbmRpdGFpcmVze1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY29tbWFuZGl0YWlyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICNpY29uZV9saXN0e1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYucHVibGlxdWV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuc29jaWFsZXtcbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc29jaWFsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2N1bHR1cmVsbGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jb21tYW5kaXRhaXJlc3tcbiAgICAgICAgICBjb2x1bW5zOiA0IDE1MHB4O1xuICAgICAgICAgIC13ZWJraXQtY29sdW1uLWdhcDogMmVtO1xuICAgICAgICAgIC1tb3otY29sdW1uLWdhcDogMmVtO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICAgICAgICBwe1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIGF1dG87XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuZmlndXJlc2xpYnJlcywgJi5sb2dpY2llbHMtbGlicmVze1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgICAgbWluLXdpZHRoOiA1MDBweDtcbiAgICAgICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICAgICAgICBwe1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICN0b3B7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmOm5vdCguaG9tZSl7XG4gICAgI3N0YXJ0e1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyggMnJlbSArICAjeyRGbGhvbWV9KTtcbiAgICB9XG4gIH1cbn1cblxuI2ljb25lX2xpc3R7XG4gIC5oYW1idXJnZXJ7XG4gICAgLy8gcGFkZGluZzogMC44cmVtO1xuICAgIC5oYW1idXJnZXItYm94e1xuICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAvLyBoZWlnaHQ6IDEycHg7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVye1xuICAgICAgICAgIHRvcDogMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmV7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICY6OmFmdGVyICB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCkgcm90YXRlKC05MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFN0aWNreSBGb290ZXIgc29sdXRpb25cbmJvZHkuc3RpY2t5LWZvb3RlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgI3BhZ2Utd3JhcHBlciB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbn1cblxuLmhvbWV7XG4gIGZvb3RlcntcbiAgICBjb2xvcjogI2FjYjNjMjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHB7XG4gICAgICBmb250LXNpemU6IDFyZW0haW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDFyZW0haW1wb3J0YW50O1xuICAgICAgYXtcbiAgICAgIGltZ3tcbiAgICAgICAgICB3aWR0aDogMjBweCFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zaWRlYmFyLXJpZ2h0e1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IC0xMDB2dztcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiAwLjNzIHJpZ2h0IGVhc2U7XG4gIGJhY2tncm91bmQ6ICNmOWY5ZjlmZTtcbiAgei1pbmRleDogMTAwMDtcbiAgdWx7XG4gICAgc3BhbntcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxuXG4gICNpY29uZV9saXN0e1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMjdweDtcbiAgICByaWdodDogMjBweDtcbiAgfVxuICAubGlzdC1wcm9qZXRze1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXJnaW46IDFyZW0gYXV0byBhdXRvIDFyZW07XG4gICAgLnRpdGxlLW1lbnV7XG4gICAgICAvLyBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29udGFpbmVyLXdyYXB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG4gICAgLmNvbnRhaW5lcntcbiAgICAgIHdpZHRoOiA4NSU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAxcmVtIDJyZW0gMnJlbSAwcmVtO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgcmlnaHQ6MDtcbiAgICAgIH1cbiAgICB1bHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBzcGFuLmNhdHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgfVxuICAgICAgbGl7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGF7XG4gICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgN3B4O1xuICAgICAgICAgIC5pbWd7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgICAgIC5pbWd7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc29jaWFsZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjZzIGJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjpiZWZvcmV7fVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGJhY2tncm91bmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIH1cbiAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgbWluLXdpZHRoOiAyNTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgIH1cbiAgfVxuICAmLmlzLWFjdGl2ZXtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IDAuNXMgMC4zcyBsZWZ0IGVhc2U7XG4gICAgLnRpdGxlLW1lbnV7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjlzIHdpZHRoIGVhc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC5pbmZvcm1hdGlvbnN7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSAxcyBlYXNlO1xuXG4gICAgfVxuICAgIC5jb250YWluZXJ7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IDFzIG9wYWNpdHkgMXMgZWFzZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiAxcyAwLjlzIGhlaWdodCBlYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI2l0ZW1fbGlzdHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIC5jYXJke1xuICAgIHdpZHRoOiAkV2k1MDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgJjpudGgtY2hpbGQob2RkKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdJO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgJiA+ICoge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiI2l0ZW17XG4gIC5lLWNvbnRlbnR7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIG1hcmdpbjogMCAwIDJyZW0gMDtcbiAgICB9XG4gIC5jYXJkLWltYWdle1xuICAgIGltZzpub3QoOmxhc3Qtb2YtdHlwZSl7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5vdGhlcl9wcm9qZXRze1xuICBib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogJG1hcmdJO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ0k7XG4gIGgze1xuICAgIG1hcmdpbjogMXJlbSAwICRtYXJnIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNhcmR7XG4gICAgd2lkdGg6ICRXaTMzO1xuICAgICY6bnRoLWNoaWxkKC0xbiszKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgfVxuICAgIC5jYXJkLWhlYWRlcntcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAmID4gKntcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCl7XG4gIGJvZHl7XG4gICAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaTgwLW07XG4gICAgICAjdGV4dF9maWdsaXtcbiAgICAgICAgI2l0ZW1fbGlzdHtcbiAgICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgIHdpZHRoOiAkV2kzMy1tO1xuICAgICAgICAgICAgI2l0ZW17XG4gICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDMwMCUgKyAoLjVyZW0gKiAyKSk7XG4gICAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDFyZW0gYXV0bztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAuZS1jb250ZW50e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KXtcbiAgLnNpZGViYXItcmlnaHR7XG4gICAgLmxpc3QtcHJvamV0cyB7XG4gICAgICAuY29udGFpbmVye1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgICAgLmluZm9ybWF0aW9uc3tcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI2l0ZW1fbGlzdHtcbiAgICB3aWR0aDogOTB2dyFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAjc3RhcnQgI3RleHRfZmlnbGkgI2l0ZW1fbGlzdCAuY2FyZHtcbiAgICB3aWR0aDogY2FsYygoMTAwJSAvIDIpIC0gLjVyZW0pO1xuICAgICNpdGVte1xuICAgICAgd2lkdGg6IGNhbGMoOTB2dyAtIDAuNXJlbSk7XG4gICAgfVxuICB9XG5cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTEwcHgpIHtcbiAgYm9keXtcbiAgICAjc3RhcnR7XG4gICAgICB3aWR0aDogJFdpLW07XG4gICAgICBtYXJnaW46IDAuNXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICN0ZXh0X2ZpZ2xpe1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgIH1cbiAgICAgICAgI2l0ZW1fbGlzdHtcbiAgICAgICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgICAgJi5maWd1cmVzbGlicmVzLCAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwLjVyZW0gMDtcbiAgICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgLmUtY29udGVudHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmNvbnRlbnQtdGl0bGV7XG4gICAgICAgICAgICAgICAgaDJ7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJiA+IGRpdntcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5zaWRlYmFyLXJpZ2h0e1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICByaWdodDogLTEwMCU7XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5saXN0LXByb2pldHN7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgLnRpdGxlLW1lbnV7XG4gICAgICAgICAgaDJ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVse1xuICAgICAgICAgIGxpe1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbml0aWFsIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDByZW0haW1wb3J0YW50O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJj4gc3BhbntcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyLXdyYXB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgdG9wOiBhdXRvIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLWFjdGl2ZXtcbiAgICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDFzIHdpZHRoIDFzIGVhc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgICBoM3tcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvb3RlcntcbiAgICB6LWluZGV4OiA5OTk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAwIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOWZlO1xuICB9XG5cbiAgLmNpcmNsZV9ob3Zlci5vcGVue1xuICAgIHdpZHRoOiAxMDBweCFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDBweCFpbXBvcnRhbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNvTEksVUFBVSxHQUNOLFdBQVcsRUFBRSxNQUFjLEVBQzNCLEdBQUcsRUFBRSxxQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLDRDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxzQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLHFDQUF1QixDQUFFLGtCQUFrQixFQUMzQywwQ0FBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLE1BQWMsRUFDM0IsR0FBRyxFQUFFLGtDQUF1QixFQUM1QixHQUFHLEVBQUUseUNBQThCLENBQUMsMkJBQTJCLEVBQ3pELG1DQUF3QixDQUFDLGNBQWMsRUFDdkMsa0NBQXVCLENBQUUsa0JBQWtCLEVBQzNDLHVDQUF5QyxDQUFDLGFBQWE7O0FBTmpFLFVBQVUsR0FDTixXQUFXLEVBQUUsT0FBYyxFQUMzQixHQUFHLEVBQUUsK0NBQXVCLEVBQzVCLEdBQUcsRUFBRSxzREFBOEIsQ0FBQywyQkFBMkIsRUFDekQsZ0RB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 */ ->>>>>>> prod +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX2Zvb3Rlci5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9zdGFydCc7XG5AaW1wb3J0ICd0aGVtZS9mb290ZXInO1xuQGltcG9ydCAndGhlbWUvc2lkZWJhcic7XG5AaW1wb3J0ICd0aGVtZS9ibG9nJztcbkBpbXBvcnQgJ3RoZW1lL2l0ZW0nO1xuQGltcG9ydCAndGhlbWUvbW9iaWxlJztcbiIsIi8vIEZvbnQgRmFtaWx5XG4kZm9udC1mYW1pbHktZGVmYXVsdDogIFx0XHRcdFwiUmFsZXdheVwiLCBcIkhlbHZldGljYVwiLCBcIlRhaG9tYVwiLCBcIkdlbmV2YVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGVyOiAgXHRcdFx0XCJNb250c2VycmF0XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1tb25vOiBcdFx0XHRcdFwiSW5jb25zb2xhdGFcIiwgbW9ub3NwYWNlO1xuJGZvbnQtZmFtaWx5LXNlcmlmOlx0XHRcdFx0XCJHZW9yZ2lhXCIsIFwiVGltZXNcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLyBAZm9udC1mYWNlXG5cbiRsYXRvOiBcImxhdG9cIjtcbiRmYW1pbHk6IFwibGF0b1wiO1xuJGZpbGUtcmVndWxhcjogXCJMYXRvLVJlZ3VsYXJcIjtcbiRjYXRlZ29yeTogXCJzYW5zLXNlcmlmXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseSArIFwiL1wiICsgJGZpbGUtcmVndWxhcjtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRsYXRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbGF0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRsYXRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRzeW5lOiBcInN5bmVcIjtcbiRmYW1pbHktYm9sZDogXCJzeW5lXCI7XG4kZmlsZS1ib2xkOiBcIlN5bmUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1ib2xkICsgXCIvXCIgKyAkZmlsZS1ib2xkO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRzeW5lfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB9XG5cbiAgICAlI3skc3luZX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRzeW5lfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRhdmFyYTogXCJBdmFyYVwiO1xuJGZhbWlseS1ib2xkLWl0YWxpYzogXCJhdmFyYVwiO1xuJGZpbGUtYm9sZC1pdGFsaWM6IFwiQXZhcmEtQm9sZF9JdGFsaWNfd2ViXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQtaXRhbGljICsgXCIvXCIgKyAkZmlsZS1ib2xkLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skYXZhcmF9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkYXZhcmEgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRhdmFyYX0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIiwgI3skY2F0ZWdvcnl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHBsYXlmYWlyOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG4kZmFtaWx5LWl0YWxpYzogXCJwbGF5ZmFpclwiO1xuJGZpbGUtaXRhbGljOiBcInBsYXlmYWlyZGlzcGxheS1yZWd1bGFyaXRhbGljXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHBsYXlmYWlyLCAkZmlsZS1pdGFsaWMsICRmYW1pbHktaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktaXRhbGljICsgXCIvXCIgKyAkZmlsZS1pdGFsaWM7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHBsYXlmYWlyICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcGxheWZhaXJ9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHBsYXlmYWlyfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kbW9jaGU6IFwiTW9jaGUtQm9sZFwiO1xuJGZhbWlseS1yZWd1bGFyMjogXCJtb2NoZVwiO1xuJGZpbGUtcmVndWxhcjI6IFwiTW9jaGUtQm9sZFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRtb2NoZSwgJGZpbGUtcmVndWxhcjIsICRmYW1pbHktcmVndWxhcjIsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyMiArIFwiL1wiICsgJGZpbGUtcmVndWxhcjI7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJG1vY2hlICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skbW9jaGV9IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JG1vY2hlfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcmFtbWV0dG86IFwicmFtbWV0dG8tcmVndWxhclwiO1xuJGZhbWlseS1yZWd1bGFyMzogXCJyYW1tZXR0b1wiO1xuJGZpbGUtcmVndWxhcjM6IFwicmFtbWV0dG9vbmUtcmVndWxhci13ZWJmb250XCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHJhbW1ldHRvLCAkZmlsZS1yZWd1bGFyMywgJGZhbWlseS1yZWd1bGFyMywgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LXJlZ3VsYXIzICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyMztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcmFtbWV0dG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRyYW1tZXR0b30ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcmFtbWV0dG99XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRydW1ldXI6IFwicnVtZXVyLXJlZ3VsYXJcIjtcbiRmYW1pbHktcmVndWxhcjQ6IFwicnVtZXVyXCI7XG4kZmlsZS1yZWd1bGFyNDogXCJydW1ldXItd2ViZm9udFwiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1yZWd1bGFyNCArIFwiL1wiICsgJGZpbGUtcmVndWxhcjQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJHJhbW1ldHRvICsgXCJcIikgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG5cbiAgICAlI3skcmFtbWV0dG99IHtcbiAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgQGlmICRjYXRlZ29yeSAhPSBcIlwiIHtcbiAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHJhbW1ldHRvfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZm9udC1mYWNlKCRsYXRvLCAkZmlsZS1yZWd1bGFyLCAkZmFtaWx5LCAkY2F0ZWdvcnkpOy8vMVxuQGluY2x1ZGUgZm9udC1mYWNlKCRzeW5lLCAkZmlsZS1ib2xkLCAkZmFtaWx5LWJvbGQsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJGF2YXJhLCAkZmlsZS1ib2xkLWl0YWxpYywgJGZhbWlseS1ib2xkLWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeSk7Ly8yXG5cbkBpbmNsdWRlIGZvbnQtZmFjZSgkbW9jaGUsICRmaWxlLXJlZ3VsYXIyLCAkZmFtaWx5LXJlZ3VsYXIyLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRyYW1tZXR0bywgJGZpbGUtcmVndWxhcjMsICRmYW1pbHktcmVndWxhcjMsICRjYXRlZ29yeSk7Ly8yXG5AaW5jbHVkZSBmb250LWZhY2UoJHJ1bWV1ciwgJGZpbGUtcmVndWxhcjQsICRmYW1pbHktcmVndWxhcjQsICRjYXRlZ29yeSk7Ly8yXG5cbi8vIGZvbnQtc2l6ZVxuJHR4dC1maWdsaTogMi41cmVtO1xuXG4vLyBsaW5lLWhlaWdodFxuJEZsaG9tZTogM3JlbTtcblxuJG1hcmc6IDAuNXJlbTtcbiRtYXJnSTogMXJlbTtcbiRXaTogODAlO1xuXG4kV2k1MDogY2FsYygoIDEwMCUgLyAyICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpODA6IGNhbGMoKCAxMDAlIC8gMS41ICkgLSAoI3skbWFyZ0l9IC8gMikpO1xuJFdpMzM6IGNhbGMoKCAxMDAlIC8gMyApIC0gKCN7JG1hcmdJfSAvIDMpKTtcblxuLy8gbW9iaWxlXG4kdHh0LWZpZ2xpLW06IDEuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtbTogMnJlbTtcbiRXaS1tOiBjYWxjKCAxMDAlIC0gMXJlbSk7XG4kV2k4MC1tOiA4MCU7XG4kV2kzMy1tOiBjYWxjKCggMTAwJSAvIDMgKSAtIDAuNXJlbSk7XG5cbi8vIHRhYmxldHRlXG4kdHh0LWZpZ2xpLXQ6IDIuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtdDogM3JlbTtcblxuLy8gY29sb3JcbiRjb2xvcl9wdWJsaXF1ZTogI2ZmYWVhYjtcbiRjb2xvcl9zb2NpYWxlOiAjN2VmZjcxO1xuJGNvbG9yX2N1bHR1cmVsbGU6ICNmZWZmNzQ7XG4kY29sb3JfY29tbWFuZGl0YWlyZTogI2ZhYmJkZTtcbiRjb2xvcl9maWd1cmVzbGlicmVzOiAjODJmOGVlO1xuIiwiIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogYXV0bztcbiAgbWFyZ2luOjA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbnB7XG4gbWFyZ2luOiAwO1xufVxuXG51bHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbnVsLGxpe1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsImgxLCBoMiwgaDMsIHAsIHVsLCBsaSwgYSwgc3BhbntcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuaGVhZGVye1xuICBhe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogJEZsaG9tZTtcbiAgfVxufVxuXG5hLCBidXR0b257XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi50aXRsZS1tZW51e1xuICBoMntcbiAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICB9XG59XG4uaG9tZXtcbiAgaDIsIHB7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICB9XG4gICN0ZXh0X2ZpZ2xpe1xuICAgIHN0cm9uZ3tcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGF7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmI3B1YmxpcXVle1xuICAgICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICAgfVxuICAgICAgJiNzb2NpYWxle1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmI2N1bHR1cmVsbGV7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICB9XG4gICAgICAmI2NvbW1hbmRpdGFpcmVze1xuICAgICAgICBmb250LWZhbWlseTogJG1vY2hlO1xuICAgICAgfVxuICAgICAgJiNmaWd1cmVzbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgfVxuICAgICAgJiNsb2dpY2llbHMtbGlicmVze1xuICAgICAgICBmb250LWZhbWlseTogJHJ1bWV1cjtcbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW17XG4gICAgICAuZS1jb250ZW50e1xuICAgICAgICBwe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbXtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI2l0ZW1fbGlzdHtcbiAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5jYXJkLXRpdGxle1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuZmlndXJlc2xpYnJlc3tcbiAgICAgICAgaDN7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcmFtbWV0dG87XG4gICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwe1xuICAgICAgICAgIHN0cm9uZ3tcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJhbW1ldHRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgaDN7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5maWd1cmVzbGlicmVze1xuICAgICAgICBwe1xuICAgICAgICAgIC8vIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgc3Ryb25ne1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4jaXRlbXtcbiAgaDJ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IDRyZW0haW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogNHJlbSFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbCFpbXBvcnRhbnQ7XG4gIH1cbiAgc3BhbntcbiAgICBmb250LXNpemU6IDFyZW07XG4gfVxuICYucHVibGlxdWV7XG4gICBoMntcbiAgICAgZm9udC1mYW1pbHk6ICRwbGF5ZmFpcjtcbiAgIH1cbiAgIHNwYW57XG4gICAgIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG4gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICB9XG4gfVxuICYuc29jaWFsZXtcbiAgIGgye1xuICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICB9XG4gICBzcGFue1xuICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICB9XG4gfVxuICAmLmN1bHR1cmVsbGV7XG4gICAgaDJ7XG4gICAgICBmb250LWZhbWlseTogJGF2YXJhO1xuICAgIH1cbiAgICBzcGFue1xuICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuICB9XG59XG5cbmEucHVibGlxdWUsIHNwYW4ucHVibGlxdWV7XG4gIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG59XG5cbmEuc29jaWFsZSwgc3Bhbi5zb2NpYWxle1xuICBmb250LWZhbWlseTogJHN5bmU7XG59XG5cbmEuY3VsdHVyZWxsZSwgc3Bhbi5jdWx0dXJlbGxle1xuICBmb250LWZhbWlseTogJGF2YXJhO1xufVxuXG4uc2lkZWJhci1yaWdodHtcbiAgaDJ7XG4gICAgbWFyZ2luOjByZW07XG4gIH1cbiAgdWwgPiBzcGFue1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgdWwgPiBsaXtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICBhe1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgfVxuICB9XG4gIC5pbmZvcm1hdGlvbnN7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICAmPiBkaXZ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiJGFuaW1hdGU6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4jdGV4dF9maWdsaXtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAxO1xuICBwe1xuICAgICYgPiBhe1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRlO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC41cyBtYXJnaW4tbGVmdCwwLjhzIDAuM3Mgb3BhY2l0eTtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4ycyAwLjJzIHRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5vcGVue1xuICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzIG1hcmdpbi1sZWZ0LCAwLjVzIG9wYWNpdHk7XG4gICAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICAgICYuaGFtYnVyZ2VyLS1zbGlkZXJ7XG4gICAgICAgICAgICAgIC5oYW1idXJnZXItaW5uZXJ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDVweCwwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuOHMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgJjphZnRlcntcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtMTBweCwwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMXMgMC4ycyB0cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmI2ZpZ3VyZXNsaWJyZXN7XG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXJ7XG4gICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5oaWRkZW57XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgZWFzZTtcbiAgfVxuXG4gICNpdGVtX2xpc3R7XG4gICAgcHtcbiAgICAgICYgPiAgYSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jaXJjbGVfaG92ZXJ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjJzLCB3aWR0aCAuMnM7XG4gICYub3BlbntcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgLjVzLCB3aWR0aCAuNXM7XG4gIH1cbiAgJi5maWd1cmVzbGlicmVze1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2ZpZ3VyZXNfbGlicmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLnB1YmxpcXVle1xuICAgICAgYmFja2dyb3VuZDpcbiAgICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9wdWJsaXF1ZS5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuICAmLnNvY2lhbGV7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvc29jaWFsZS5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbiAgJi5jdWx0dXJlbGxle1xuICAgIGJhY2tncm91bmQ6XG4gICAgdXJsKFwiL3VzZXIvdGhlbWVzL2ZpZ3VyZXNsaWJyZXMvaW1hZ2VzL2N1bHR1cmVsbGUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYuY29tbWFuZGl0YWlyZXN7XG4gICAgYmFja2dyb3VuZDpcbiAgICB1cmwoXCIvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvY29tbWFuZGl0YWlyZXMuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG4gICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICBiYWNrZ3JvdW5kOlxuICAgIHVybChcIi91c2VyL3RoZW1lcy9maWd1cmVzbGlicmVzL2ltYWdlcy9sb2dpY2llbHNfbGlicmVzLnN2Z1wiKSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxufVxuIiwiIiwiKntcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmxvYWRlcntcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTBweCAxMHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG4uY2FyZHtcbiAgLmxvYWRlcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7XG4gICAgei1pbmRleDogOTk5O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbmh0bWwsIGJvZHl7XG4gIGJhY2tncm91bmQ6ICNmOWY5ZjlmZTtcbiAgJi5oaWRkZW57XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuaW1nLmxhenl7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYm9keXtcbiAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaTgwO1xuICAgICAgbWFyZ2luOiAxcmVtIGF1dG8gYXV0byAxcmVtO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgIHAge1xuICAgICAgICAgIGF7XG4gICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAuaGFtYnVyZ2Vye1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1ib3h7XG4gICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5tYXJne1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5vcGVue1xuICAgICAgICAgICAgICAjaWNvbmVfbGlzdHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC41cyBtYXJnaW4tbGVmdCwgMC41cyBvcGFjaXR5O1xuICAgICAgICAgICAgICAgIC5oYW1idXJnZXJ7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAmLmhhbWJ1cmdlci0tc2xpZGVye1xuICAgICAgICAgICAgICAgICAgICAuaGFtYnVyZ2VyLWlubmVye1xuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCw1cHgsMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjhzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTIwcHgsMCkgcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDFzIDAuMnMgdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLmhhbWJ1cmdlci1ib3h7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICNpdGVtX2xpc3R7XG4gICAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmNhcmR7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLyA1KSAtICggI3skbWFyZ30gKiAyKSApO1xuICAgICAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCAkbWFyZyAkbWFyZyAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAmID4gLmNhcmQtaW1hZ2V7XG4gICAgICAgICAgICAmLm9wZW57XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMCk7XG4gICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhe1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmc7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICYgPiAqe1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoIDgwdncgLSAoICN7JG1hcmd9ICogNikgKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMnJlbSAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgLmNvbnRlbnQtdGl0bGV7XG4gICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDNyZW0gYXV0bztcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmUtY29udGVudHtcbiAgICAgICAgICAgICAgLy8gbWFyZ2luOiAxcmVtIGF1dG8gMnJlbSBhdXRvO1xuICAgICAgICAgICAgICBwe1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHVibGlxdWU7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuc29jaWFsZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuY3VsdHVyZWxsZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2N1bHR1cmVsbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmNvbW1hbmRpdGFpcmVze1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY29tbWFuZGl0YWlyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICNpY29uZV9saXN0e1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jdWx0dXJlbGxle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY29tbWFuZGl0YWlyZXN7XG4gICAgICAgICAgY29sdW1uczogNCAxNTBweDtcbiAgICAgICAgICAtd2Via2l0LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDJlbTtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAyZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZXNsaWJyZXMsICYubG9naWNpZWxzLWxpYnJlc3tcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgICAgcHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjdG9we1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpub3QoLmhvbWUpe1xuICAgICNzdGFydHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoIDJyZW0gKyAgI3skRmxob21lfSk7XG4gICAgfVxuICB9XG59XG5cbiNpY29uZV9saXN0e1xuICAuaGFtYnVyZ2Vye1xuICAgIC8vIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAuaGFtYnVyZ2VyLWJveHtcbiAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgLy8gaGVpZ2h0OiAxMnB4O1xuICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuaGFtYnVyZ2VyLS1zbGlkZXIuaXMtYWN0aXZle1xuICAgICAgLmhhbWJ1cmdlci1pbm5lcntcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAmOjphZnRlciAge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApIHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBTdGlja3kgRm9vdGVyIHNvbHV0aW9uXG5ib2R5LnN0aWNreS1mb290ZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICNwYWdlLXdyYXBwZXIge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG59XG5cbi5ob21le1xuICBmb290ZXJ7XG4gICAgY29sb3I6ICNhY2IzYzI7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICByaWdodDogMjBweDtcbiAgICBwe1xuICAgICAgZm9udC1zaXplOiAxcmVtIWltcG9ydGFudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcbiAgICAgIGF7XG4gICAgICBpbWd7XG4gICAgICAgICAgd2lkdGg6IDIwcHghaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuc2lkZWJhci1yaWdodHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAtMTAwdnc7XG4gIHRvcDogMDtcbiAgdHJhbnNpdGlvbjogMC4zcyByaWdodCBlYXNlO1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHVse1xuICAgIHNwYW57XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAjaWNvbmVfbGlzdHtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gIH1cbiAgLmxpc3QtcHJvamV0c3tcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbWFyZ2luOiAxcmVtIGF1dG8gYXV0byAxcmVtO1xuICAgIC50aXRsZS1tZW51e1xuICAgICAgLy8gcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRhaW5lci13cmFwe1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuICAgIC5jb250YWluZXJ7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtIDJyZW0gMHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIHJpZ2h0OjA7XG4gICAgICB9XG4gICAgdWx7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgc3Bhbi5jYXR7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICAgIH1cbiAgICAgIGxpe1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBhe1xuICAgICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2Y5ZjlmOWZlO1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuNnMgYmFja2dyb3VuZDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDdweDtcbiAgICAgICAgICAuaW1ne1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICAuaW1ne1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgJi5jdWx0dXJlbGxle1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2N1bHR1cmVsbGU7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNnMgYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5zb2NpYWxle1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNnMgYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5wdWJsaXF1ZXtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC42cyBiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YmVmb3Jle31cbiAgICAgICAgICB9XG4gICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBiYWNrZ3JvdW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICYuYWN0aXZle1xuICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB9XG4gICAgLmluZm9ybWF0aW9uc3tcbiAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICB9XG4gIH1cbiAgJi5pcy1hY3RpdmV7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjVzIDAuM3MgbGVmdCBlYXNlO1xuICAgIC50aXRsZS1tZW51e1xuICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC45cyB3aWR0aCBlYXNlO1xuICAgICAgfVxuICAgIH1cbiAgICAuaW5mb3JtYXRpb25ze1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IDFzIG9wYWNpdHkgMXMgZWFzZTtcblxuICAgIH1cbiAgICAuY29udGFpbmVye1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uOiAxcyBvcGFjaXR5IDFzIGVhc2U7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgMC45cyBoZWlnaHQgZWFzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiNpdGVtX2xpc3R7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAuY2FyZHtcbiAgICB3aWR0aDogJFdpNTA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgICY6bnRoLWNoaWxkKG9kZCl7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnSTtcbiAgICB9XG4gICAgLmNhcmQtaGVhZGVye1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiNpdGVte1xuICAuZS1jb250ZW50e1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWluLXdpZHRoOiA1MDBweDtcbiAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgfVxuICAuY2FyZC1pbWFnZXtcbiAgICBpbWc6bm90KDpsYXN0LW9mLXR5cGUpe1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6ICRtYXJnSTtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdJO1xuICBoM3tcbiAgICBtYXJnaW46IDFyZW0gMCAkbWFyZyAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jYXJke1xuICAgIHdpZHRoOiAkV2kzMztcbiAgICAmOm50aC1jaGlsZCgtMW4rMyl7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgJiA+ICp7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpe1xuICBib2R5e1xuICAgICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2k4MC1tO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgICNpdGVtX2xpc3R7XG4gICAgICAgICAgJi5maWd1cmVzbGlicmVzLCAmLmxvZ2ljaWVscy1saWJyZXN7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICB3aWR0aDogJFdpMzMtbTtcbiAgICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMDAlICsgKC41cmVtICogMikpO1xuICAgICAgICAgICAgICAuY29udGVudC10aXRsZXtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gYXV0byAxcmVtIGF1dG87XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLmUtY29udGVudHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMDBweCl7XG4gIC5zaWRlYmFyLXJpZ2h0e1xuICAgIC5saXN0LXByb2pldHMge1xuICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIC5pbmZvcm1hdGlvbnN7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICNpdGVtX2xpc3R7XG4gICAgd2lkdGg6IDkwdnchaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGJvZHkgI3N0YXJ0ICN0ZXh0X2ZpZ2xpICNpdGVtX2xpc3QgLmNhcmR7XG4gICAgd2lkdGg6IGNhbGMoKDEwMCUgLyAyKSAtIC41cmVtKTtcbiAgICAjaXRlbXtcbiAgICAgIHdpZHRoOiBjYWxjKDkwdncgLSAwLjVyZW0pO1xuICAgIH1cbiAgfVxuXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUxMHB4KSB7XG4gIGJvZHl7XG4gICAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaS1tO1xuICAgICAgbWFyZ2luOiAwLjVyZW0gYXV0byAycmVtIGF1dG87XG4gICAgICAjdGV4dF9maWdsaXtcbiAgICAgICAgcHtcbiAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi4zcmVtO1xuICAgICAgICB9XG4gICAgICAgICNpdGVtX2xpc3R7XG4gICAgICAgICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgICAgICAgICYuZmlndXJlc2xpYnJlcywgJi5sb2dpY2llbHMtbGlicmVze1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC41cmVtIDA7XG4gICAgICAgICAgICAjaXRlbXtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgIC5lLWNvbnRlbnR7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICAgIGgye1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYgPiBkaXZ7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuc2lkZWJhci1yaWdodHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcmlnaHQ6IC0xMDAlO1xuICAgICAgI2ljb25lX2xpc3R7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgLmhhbWJ1cmdlcntcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAubGlzdC1wcm9qZXRze1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIC50aXRsZS1tZW51e1xuICAgICAgICAgIGgye1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi4zcmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bHtcbiAgICAgICAgICBsaXtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGluaXRpYWwhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwcmVtIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY+IHNwYW57XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhaW5lci13cmFwe1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIC5jb250YWluZXJ7XG4gICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgIHRvcDogYXV0byFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGxlZnQ6IDAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy1hY3RpdmV7XG4gICAgICAgIC5jb250YWluZXJ7XG4gICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAxcyB3aWR0aCAxcyBlYXNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmluZm9ybWF0aW9uc3tcbiAgICAgICAgaDN7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb290ZXJ7XG4gICAgei1pbmRleDogOTk5O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogMCFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5ZjlmZTtcbiAgfVxuXG4gIC5jaXJjbGVfaG92ZXIub3BlbntcbiAgICB3aWR0aDogMTAwcHghaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwcHghaW1wb3J0YW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFDb0xJLFVBQVUsR0FDTixXQUFXLEVBQUUsTUFBYyxFQUMzQixHQUFHLEVBQUUscUNBQXVCLEVBQzVCLEdBQUcsRUFBRSw0Q0FBOEIsQ0FBQywyQkFBMkIsRUFDekQsc0NBQXdCLENBQUMsY0FBYyxFQUN2QyxxQ0FBdUIsQ0FBRSxrQkFBa0IsRUFDM0MsMENBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSxNQUFjLEVBQzNCLEdBQUcsRUFBRSxrQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLHlDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxtQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLGtDQUF1QixDQUFFLGtCQUFrQixFQUMzQyx1Q0FBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLE9BQWMsRUFDM0IsR0FBRyxFQUFFLCtDQUF1QixFQUM1QixHQUFHLEVBQUUsc0RBQThCLENBQUMsMkJBQTJCLEVBQ3pELGdE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 */ diff --git a/user/themes/figureslibres/css-compiled/theme.min.css b/user/themes/figureslibres/css-compiled/theme.min.css index 48d105d..112e780 100644 --- a/user/themes/figureslibres/css-compiled/theme.min.css +++ b/user/themes/figureslibres/css-compiled/theme.min.css @@ -1,5 +1 @@ -<<<<<<< HEAD -@font-face{font-family:lato;src:url(../fonts/lato/Lato-Regular.eot);src:url(../fonts/lato/Lato-Regular.eot?#iefix) format('embedded-opentype'),url(../fonts/lato/Lato-Regular.woff) format('woff'),url(../fonts/lato/Lato-Regular.ttf) format('truetype'),url(../fonts/lato/Lato-Regular.svg#lato) format('svg')}@font-face{font-family:syne;src:url(../fonts/syne/Syne-Bold.eot);src:url(../fonts/syne/Syne-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/syne/Syne-Bold.woff) format('woff'),url(../fonts/syne/Syne-Bold.ttf) format('truetype'),url(../fonts/syne/Syne-Bold.svg#syne) format('svg')}@font-face{font-family:Avara;src:url(../fonts/avara/Avara-Bold_Italic_web.eot);src:url(../fonts/avara/Avara-Bold_Italic_web.eot?#iefix) format('embedded-opentype'),url(../fonts/avara/Avara-Bold_Italic_web.woff) format('woff'),url(../fonts/avara/Avara-Bold_Italic_web.ttf) format('truetype'),url(../fonts/avara/Avara-Bold_Italic_web.svg#Avara) format('svg')}@font-face{font-family:playfairdisplay-regularitalic;src:url(../fonts/playfair/playfairdisplay-regularitalic.eot);src:url(../fonts/playfair/playfairdisplay-regularitalic.eot?#iefix) format('embedded-opentype'),url(../fonts/playfair/playfairdisplay-regularitalic.woff) format('woff'),url(../fonts/playfair/playfairdisplay-regularitalic.ttf) format('truetype'),url(../fonts/playfair/playfairdisplay-regularitalic.svg#playfairdisplay-regularitalic) format('svg')}@font-face{font-family:Moche-Bold;src:url(../fonts/moche/Moche-Bold.eot);src:url(../fonts/moche/Moche-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/moche/Moche-Bold.woff) format('woff'),url(../fonts/moche/Moche-Bold.ttf) format('truetype'),url(../fonts/moche/Moche-Bold.svg#Moche-Bold) format('svg')}@font-face{font-family:rammetto-regular;src:url(../fonts/rammetto/rammettoone-regular-webfont.eot);src:url(../fonts/rammetto/rammettoone-regular-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rammetto/rammettoone-regular-webfont.woff) format('woff'),url(../fonts/rammetto/rammettoone-regular-webfont.ttf) format('truetype'),url(../fonts/rammetto/rammettoone-regular-webfont.svg#rammetto-regular) format('svg')}@font-face{font-family:rumeur-regular;src:url(../fonts/rumeur/rumeur-webfont.eot);src:url(../fonts/rumeur/rumeur-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rumeur/rumeur-webfont.woff) format('woff'),url(../fonts/rumeur/rumeur-webfont.ttf) format('truetype'),url(../fonts/rumeur/rumeur-webfont.svg#rumeur-regular) format('svg')}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;line-height:1.15;margin:0;padding:0;-webkit-text-size-adjust:100%}body{margin:0;padding:0}main{display:block}h1{font-size:auto;margin:0}hr{overflow:visible;box-sizing:content-box;height:0}pre{font-family:monospace,monospace;font-size:1em}p{margin:0}ul{list-style:none}li,ul{margin:0;padding:0}a{text-decoration:none;color:#000;background-color:transparent}abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:none;-webkit-text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{width:100%;height:100%;vertical-align:bottom;border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;box-sizing:border-box;max-width:100%;padding:0;white-space:normal;color:inherit}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}a,h1,h2,h3,li,p,span,ul{font-family:lato;font-weight:lighter}header a{font-size:2.5rem;line-height:3rem}a,button{border:none;outline:0!important}.title-menu h2{font-family:rammetto-regular}.home h2,.home p{font-size:2.5rem;line-height:3rem}.home #text_figli strong{position:relative}.home #text_figli strong::after{position:absolute;bottom:0;display:block;width:100%;height:1px;content:'';background:#000}.home #text_figli a{position:relative}.home #text_figli a#publique{font-family:playfairdisplay-regularitalic}.home #text_figli a#sociale{font-family:syne}.home #text_figli a#culturelle{font-family:Avara}.home #text_figli a#commanditaires{font-family:Moche-Bold}.home #text_figli a#figureslibres{font-family:rammetto-regular}.home #text_figli a#logiciels-libres{font-family:rumeur-regular}.home #text_figli #item .e-content p{font-size:1.5rem;line-height:3rem}.home #text_figli #item .e-content p strong{font-weight:700!important}.home #text_figli #item .e-content p a{text-decoration:underline}.home #text_figli #item .e-content p em{font-style:italic}.home #text_figli #item_list.commanditaires{flex-direction:column}.home #text_figli #item_list.commanditaires .card-title{line-height:normal}#item h2{font-size:4rem!important;font-weight:400!important;line-height:4rem!important;width:auto}#item span{font-size:1rem}#item.publique h2{font-family:playfairdisplay-regularitalic}#item.publique span{font-family:playfairdisplay-regularitalic;font-weight:400}#item.sociale h2{font-family:syne}#item.sociale span{font-family:syne;font-weight:400}#item.culturelle h2{font-family:Avara}#item.culturelle span{font-family:Avara;font-weight:400}a.publique,span.publique{font-family:playfairdisplay-regularitalic}a.sociale,span.sociale{font-family:syne}a.culturelle,span.culturelle{font-family:Avara}.sidebar-right h2{margin:.5rem 0 0 0}.sidebar-right ul>span{font-size:.8rem;line-height:1rem!important;margin-bottom:.5rem;text-decoration:underline}.sidebar-right ul>li{font-size:1.7rem;line-height:2.5rem}.sidebar-right ul>li a{font-size:1.7rem;line-height:2rem;border-radius:50px}.sidebar-right .informations{padding:1rem}.sidebar-right .informations>div{margin-bottom:1rem}.sidebar-right .informations h3{font-size:1.5rem;line-height:2rem;margin:0}.sidebar-right .informations p{font-size:1rem;line-height:1.5rem}.other_projets h3{font-size:2.5rem;margin:0}.card h2{font-size:1rem;margin:0}#text_figli{z-index:999;opacity:1}#text_figli p>a{z-index:999}#text_figli p>a:after,#text_figli p>a:before{position:absolute;bottom:-1px;width:0;height:1px;margin:1px 0 0;content:'';transition:all .2s ease-in-out;transition-duration:.3s;opacity:0;background-color:#000}#text_figli p>a::before{left:50%}#text_figli p>a:after{right:50%}#text_figli p>a:hover{cursor:pointer}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:100%;opacity:1}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:50%}#text_figli p>a #icone_list{transition:1s .5s margin-left,.8s .3s opacity}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:0s .2s transform;transform:translate3d(0,5px,0) rotate(0)}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:.2s .2s transform;transform:translate3d(0,-10px,0) rotate(0)}#text_figli p>a.open #icone_list{transition:.5s margin-left,.5s opacity}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}#text_figli p>a#figureslibres::after,#text_figli p>a#figureslibres::before{bottom:5px}#text_figli.hidden{transition:.3s opacity ease;opacity:0}.circle_hover{position:absolute;z-index:0;width:0;height:0;transition:height .2s,width .2s;transform:translate(-50%,-50%)}.circle_hover.open{width:200px;height:200px;transition:height .5s,width .5s}.circle_hover.figureslibres{background:url(/user/themes/figureslibres/images/figures_libres.svg) center no-repeat;background-size:contain}.circle_hover.publique{background:url(/user/themes/figureslibres/images/publique.svg) center no-repeat;background-size:contain}.circle_hover.sociale{background:url(/user/themes/figureslibres/images/sociale.svg) center no-repeat;background-size:contain}.circle_hover.culturelle{background:url(/user/themes/figureslibres/images/culturelle.svg) center no-repeat;background-size:contain}.circle_hover.commanditaires{background:url(/user/themes/figureslibres/images/commanditaires.svg) center no-repeat;background-size:contain}.circle_hover.logiciels-libres{background:url(/user/themes/figureslibres/images/logiciels_libres.svg) center no-repeat;background-size:contain}*{box-sizing:border-box}.loader{display:none;width:10px;height:10px;margin-left:10px;vertical-align:middle;background-image:url(/user/themes/figureslibres/images/ajax-loader.gif);background-repeat:no-repeat;background-position:center;background-size:10px 10px}.card .loader{position:absolute;z-index:999;top:50%;left:50%;margin-left:0;transform:translate(-50%,50%)}body,html{background:#f9f9f9fe}body.hidden,html.hidden{overflow:hidden}img.lazy{display:block}body #start{width:calc((100% / 1.5) - (1rem / 2));margin:1rem auto auto 1rem}body #start #text_figli p a #icone_list{position:relative;z-index:999;display:inline-block;margin-left:-30px;opacity:0}body #start #text_figli p a #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli p a.marg{margin-right:.5rem}body #start #text_figli p a.open #icone_list{position:relative;z-index:999;display:inline-block;margin-left:0;transition:.5s margin-left,.5s opacity;opacity:1}body #start #text_figli p a.open #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}body #start #text_figli p a.open #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli #item_list{position:relative;width:80vw;margin-top:.5rem}body #start #text_figli #item_list .card{position:relative;display:inline-block;width:calc((100% / 5) - (.5rem * 2));min-width:250px;height:100%;margin:0 .5rem .5rem 0;vertical-align:top}body #start #text_figli #item_list .card>.card-image.open a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card a{display:block;overflow:auto;border-radius:5px}body #start #text_figli #item_list .card a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(1);filter:grayscale(1)}body #start #text_figli #item_list .card .card-header{display:none;width:100%;padding:.5rem;border-bottom-right-radius:5px;border-bottom-left-radius:5px;flex-wrap:wrap}body #start #text_figli #item_list .card .card-header>*{font-size:.8rem;line-height:1rem;margin-right:.5rem}body #start #text_figli #item_list .card:hover a{display:block}body #start #text_figli #item_list .card:hover a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card:hover .card-header{position:absolute;bottom:0;display:inline-flex}body #start #text_figli #item_list .card:last-of-type{vertical-align:baseline!important}body #start #text_figli #item_list .card #item{position:relative;width:calc(80vw - (.5rem * 6));margin-top:.5rem;padding:2rem 2rem .5rem 2rem;border-radius:5px}body #start #text_figli #item_list .card #item .content-title{display:flex;margin:1rem auto 3rem auto;flex-wrap:wrap;justify-content:space-between;align-items:baseline}body #start #text_figli #item_list .card #item .content-title a{display:block}body #start #text_figli #item_list .card #item .e-content p{font-size:1rem;line-height:1.2rem}body #start #text_figli #item_list .card #item.publique{background:#ffaeab}body #start #text_figli #item_list .card #item.sociale{background:#7eff71}body #start #text_figli #item_list .card #item.culturelle{background:#feff74}body #start #text_figli #item_list .card #item.commanditaires{background:#fabbde}body #start #text_figli #item_list .card #item #icone_list{line-height:0;position:absolute;top:0;right:0}body #start #text_figli #item_list.publique .card:hover .card-header{background:#ffaeab}body #start #text_figli #item_list.sociale .card:hover .card-header{background:#7eff71}body #start #text_figli #item_list.culturelle .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.commanditaires{display:block;margin:1rem auto;-moz-columns:4 150px;columns:4 150px;-moz-column-gap:2em;column-gap:2em}body #start #text_figli #item_list.commanditaires p{font-size:1rem;line-height:1.2rem;margin:.5rem auto}body #start #text_figli #item_list.commanditaires .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{display:block;width:70%;min-width:500px;margin:1rem 0}body #start #text_figli #item_list.figureslibres p,body #start #text_figli #item_list.logiciels-libres p{font-size:1rem;line-height:1.5rem}body #start #text_figli #top{position:relative;width:100%;cursor:pointer;text-align:center}body:not(.home) #start{margin-top:calc(2rem + 3rem)}#icone_list .hamburger{padding:.8rem}#icone_list .hamburger .hamburger-box{width:18px;height:12px}#icone_list .hamburger .hamburger-box .hamburger-inner{width:18px;height:2px}#icone_list .hamburger .hamburger-box .hamburger-inner::before{top:5px;width:15px;height:inherit}#icone_list .hamburger .hamburger-box .hamburger-inner::after{top:10px;width:inherit;height:inherit}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner{transform:translate3d(0,5px,0) rotate(45deg)}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner::after{transform:translate3d(0,-10px,0) rotate(-90deg)}body.sticky-footer{display:flex;flex-direction:column;height:100%;min-height:100vh}body.sticky-footer #page-wrapper{flex:1 0 auto}.home footer{position:fixed;right:20px;bottom:20px;display:inline-flex;color:#acb3c2}.home footer p{font-size:1rem!important;line-height:1rem!important}.home footer p a img{width:20px!important}.sidebar-right{position:fixed;z-index:1000;top:0;left:-100vw;width:100%;height:100%;transition:.3s right ease;background:#f9f9f9fe}.sidebar-right ul span{line-height:2rem}.sidebar-right #icone_list{position:fixed;z-index:1000;top:10px;right:0}.sidebar-right .list-projets{overflow:auto;height:100%}.sidebar-right .list-projets .title-menu{padding-left:.5rem}.sidebar-right .list-projets .title-menu::after{display:block;width:0;height:1px;margin-top:.5rem;content:' '}.sidebar-right .list-projets .container-wrap{display:inline-flex}.sidebar-right .list-projets .container{position:relative;overflow:auto;width:85%;margin-top:20px;padding:1rem 2rem 2rem .5rem;opacity:0}.sidebar-right .list-projets .container::after{position:absolute;top:0;right:0;display:block;width:1px;height:0;margin-right:1rem;content:' '}.sidebar-right .list-projets .container ul{margin-bottom:20px}.sidebar-right .list-projets .container ul span.cat{line-height:3rem;display:block}.sidebar-right .list-projets .container ul li{position:relative;display:inline-flex;width:auto;align-items:flex-end}.sidebar-right .list-projets .container ul li a{z-index:0;display:block;margin-right:0;padding:0 7px;transition:.6s background;background:#f9f9f9fe}.sidebar-right .list-projets .container ul li a .img{position:fixed;z-index:999;display:none;overflow:hidden;width:300px;height:auto;transform:rotate(0);transform-origin:center center;pointer-events:none;border-radius:10px}.sidebar-right .list-projets .container ul li a:hover{z-index:999}.sidebar-right .list-projets .container ul li a:hover .img{display:block;transition:all 1s ease}.sidebar-right .list-projets .container ul li:hover.culturelle a{transition:.6s background;background:#feff74}.sidebar-right .list-projets .container ul li:hover.sociale a{transition:.6s background;background:#7eff71}.sidebar-right .list-projets .container ul li:hover.publique a{transition:.6s background;background:#ffaeab}.sidebar-right .list-projets .container ul li:hover::before{min-width:100%;transition:.3s background}.sidebar-right .list-projets .container ul a{z-index:999;color:#000}.sidebar-right .list-projets .container ul a.active{color:#000}.sidebar-right .list-projets .informations{position:relative;min-width:250px;height:100%;padding-left:40px;opacity:0}.sidebar-right.is-active{left:0;transition:.5s .3s left ease}.sidebar-right.is-active .title-menu::after{width:100%;transition:1s .9s width ease;background:#000}.sidebar-right.is-active .informations{padding-left:25px;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container{margin-top:0;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container::after{height:100%;transition:1s .9s height ease;background:#000}#item_list{display:inline-flex;width:100%;flex-wrap:wrap}#item_list .card{width:calc((100% / 2) - (1rem / 2));height:100%}#item_list .card:nth-child(odd){margin-right:1rem}#item_list .card .card-header{z-index:999;display:inline-flex;width:100%}#item_list .card .card-header>*{margin-right:.5rem}#item .e-content{width:50%;min-width:500px;margin:0 0 2rem 0}#item .card-image img:not(:last-of-type){margin-bottom:1.5rem}.other_projets{display:flex;margin-top:1rem;margin-bottom:1rem;border-top:1px solid #000;flex-wrap:wrap}.other_projets h3{width:100%;margin:1rem 0 .5rem 0}.other_projets .card{width:calc((100% / 3) - (1rem / 3))}.other_projets .card:nth-child(-1n+3){margin-right:.5rem}.other_projets .card .card-header{display:flex;flex-wrap:wrap}.other_projets .card .card-header>*{margin-right:.5rem}@media screen and (max-width:1024px){body #start{width:80%}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{width:100%}body #start #text_figli #item_list .card{width:calc((100% / 3) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(300% + (.5rem * 2))}body #start #text_figli #item_list .card #item .content-title{margin:1rem auto 1rem auto}body #start #text_figli #item_list .card #item .e-content{width:100%}}@media screen and (max-width:1000px){.sidebar-right .list-projets .container{float:none;width:100%;padding-bottom:0}.sidebar-right .list-projets .informations{float:none;margin-left:10px;padding-left:.5rem}#item_list{width:90vw!important}}@media screen and (max-width:768px){body #start #text_figli #item_list .card{width:calc((100% / 2) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(90vw - .5rem)}}@media screen and (max-width:510px){body #start{width:calc(100% - 1rem);margin:.5rem auto 2rem auto}body #start #text_figli p{font-size:1.7rem;line-height:2.3rem}body #start #text_figli #item_list{width:100%!important}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{min-width:100%}body #start #text_figli #item_list .card{width:calc(100%);margin:0 0 .5rem 0}body #start #text_figli #item_list .card #item{width:100%;padding:1rem}body #start #text_figli #item_list .card #item .e-content{min-width:100%;margin:2rem 0}body #start #text_figli #item_list .card #item .content-title h2{font-size:2rem!important;line-height:2.5rem!important}body #start #text_figli #item_list .card #item .content-title>div{line-height:1rem}body .sidebar-right{right:-100%;width:100%}body .sidebar-right #icone_list{z-index:0;top:0}body .sidebar-right #icone_list .hamburger{z-index:999;float:right}body .sidebar-right .list-projets{z-index:999}body .sidebar-right .list-projets .title-menu h2{font-size:1.7rem;line-height:2.3rem}body .sidebar-right .list-projets ul li{font-size:1rem;line-height:1.5rem;display:initial!important;margin-top:0!important}body .sidebar-right .list-projets ul li::before{width:100%}body .sidebar-right .list-projets ul li a{font-size:1rem;line-height:1.5rem;display:initial!important;padding:0!important}body .sidebar-right .list-projets ul li a img{display:none!important}body .sidebar-right .list-projets ul li>span{font-size:1rem;line-height:1.5rem}body .sidebar-right .list-projets .container-wrap{display:block}body .sidebar-right .list-projets .container-wrap .container::after{top:auto!important;bottom:0;left:0!important;width:0;height:1px}body .sidebar-right.is-active .container::after{width:100%!important;transition:1s width 1s ease}body .sidebar-right .informations h3{font-size:1.1rem}footer{z-index:999;bottom:0!important;left:0!important;width:100%;padding:.5rem;background-color:#f9f9f9fe;justify-content:center}.circle_hover.open{width:100px!important;height:100px!important}} -======= -@font-face{font-family:lato;src:url(../fonts/lato/Lato-Regular.eot);src:url(../fonts/lato/Lato-Regular.eot?#iefix) format('embedded-opentype'),url(../fonts/lato/Lato-Regular.woff) format('woff'),url(../fonts/lato/Lato-Regular.ttf) format('truetype'),url(../fonts/lato/Lato-Regular.svg#lato) format('svg')}@font-face{font-family:syne;src:url(../fonts/syne/Syne-Bold.eot);src:url(../fonts/syne/Syne-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/syne/Syne-Bold.woff) format('woff'),url(../fonts/syne/Syne-Bold.ttf) format('truetype'),url(../fonts/syne/Syne-Bold.svg#syne) format('svg')}@font-face{font-family:Avara;src:url(../fonts/avara/Avara-Bold_Italic_web.eot);src:url(../fonts/avara/Avara-Bold_Italic_web.eot?#iefix) format('embedded-opentype'),url(../fonts/avara/Avara-Bold_Italic_web.woff) format('woff'),url(../fonts/avara/Avara-Bold_Italic_web.ttf) format('truetype'),url(../fonts/avara/Avara-Bold_Italic_web.svg#Avara) format('svg')}@font-face{font-family:playfairdisplay-regularitalic;src:url(../fonts/playfair/playfairdisplay-regularitalic.eot);src:url(../fonts/playfair/playfairdisplay-regularitalic.eot?#iefix) format('embedded-opentype'),url(../fonts/playfair/playfairdisplay-regularitalic.woff) format('woff'),url(../fonts/playfair/playfairdisplay-regularitalic.ttf) format('truetype'),url(../fonts/playfair/playfairdisplay-regularitalic.svg#playfairdisplay-regularitalic) format('svg')}@font-face{font-family:Moche-Bold;src:url(../fonts/moche/Moche-Bold.eot);src:url(../fonts/moche/Moche-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/moche/Moche-Bold.woff) format('woff'),url(../fonts/moche/Moche-Bold.ttf) format('truetype'),url(../fonts/moche/Moche-Bold.svg#Moche-Bold) format('svg')}@font-face{font-family:rammetto-regular;src:url(../fonts/rammetto/rammettoone-regular-webfont.eot);src:url(../fonts/rammetto/rammettoone-regular-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rammetto/rammettoone-regular-webfont.woff) format('woff'),url(../fonts/rammetto/rammettoone-regular-webfont.ttf) format('truetype'),url(../fonts/rammetto/rammettoone-regular-webfont.svg#rammetto-regular) format('svg')}@font-face{font-family:rumeur-regular;src:url(../fonts/rumeur/rumeur-webfont.eot);src:url(../fonts/rumeur/rumeur-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rumeur/rumeur-webfont.woff) format('woff'),url(../fonts/rumeur/rumeur-webfont.ttf) format('truetype'),url(../fonts/rumeur/rumeur-webfont.svg#rumeur-regular) format('svg')}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;line-height:1.15;margin:0;padding:0;-webkit-text-size-adjust:100%}body{margin:0;padding:0}main{display:block}h1{font-size:auto;margin:0}hr{overflow:visible;box-sizing:content-box;height:0}pre{font-family:monospace,monospace;font-size:1em}p{margin:0}ul{list-style:none}li,ul{margin:0;padding:0}a{text-decoration:none;color:#000;background-color:transparent}abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:none;-webkit-text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{width:100%;height:100%;vertical-align:bottom;border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;box-sizing:border-box;max-width:100%;padding:0;white-space:normal;color:inherit}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}a,h1,h2,h3,li,p,span,ul{font-family:lato;font-weight:lighter}header a{font-size:2.5rem;line-height:3rem}a,button{border:none;outline:0!important}.title-menu h2{font-family:rammetto-regular}.home h2,.home p{font-size:2.5rem;line-height:3rem}.home #text_figli strong{position:relative}.home #text_figli strong::after{position:absolute;bottom:0;display:block;width:100%;height:1px;content:'';background:#000}.home #text_figli a{position:relative}.home #text_figli a#publique{font-family:playfairdisplay-regularitalic}.home #text_figli a#sociale{font-family:syne}.home #text_figli a#culturelle{font-family:Avara}.home #text_figli a#commanditaires{font-family:Moche-Bold}.home #text_figli a#figureslibres{font-family:rammetto-regular}.home #text_figli a#logiciels-libres{font-family:rumeur-regular}.home #text_figli #item .e-content p{font-size:1.5rem;line-height:3rem}.home #text_figli #item .e-content p strong{font-weight:700!important}.home #text_figli #item .e-content p a{text-decoration:underline}.home #text_figli #item .e-content p em{font-style:italic}.home #text_figli #item_list.commanditaires{flex-direction:column}.home #text_figli #item_list.commanditaires .card-title{line-height:normal}.home #text_figli #item_list.figureslibres h3{font-family:rammetto-regular;font-size:1rem;font-weight:700;line-height:1.5rem;margin:10px 0 0 0}.home #text_figli #item_list.figureslibres h3::after{display:none}.home #text_figli #item_list.figureslibres p strong{font-family:rammetto-regular;display:block;margin-top:10px}.home #text_figli #item_list.figureslibres p strong::after{display:none}.home #text_figli #item_list.logiciels-libres h3{font-size:1.2rem;font-weight:700;line-height:1.5rem;margin:10px 0 0 0}.home #text_figli #item_list.logiciels-libres h3::after{display:none}.home #text_figli #item_list.figureslibres p strong{font-weight:700;display:block}.home #text_figli #item_list.figureslibres p strong::after{display:none}#item h2{font-size:4rem!important;font-weight:400!important;line-height:4rem!important;width:auto}#item span{font-size:1rem}#item.publique h2{font-family:playfairdisplay-regularitalic}#item.publique span{font-family:playfairdisplay-regularitalic;font-weight:400}#item.sociale h2{font-family:syne}#item.sociale span{font-family:syne;font-weight:400}#item.culturelle h2{font-family:Avara}#item.culturelle span{font-family:Avara;font-weight:400}a.publique,span.publique{font-family:playfairdisplay-regularitalic}a.sociale,span.sociale{font-family:syne}a.culturelle,span.culturelle{font-family:Avara}.sidebar-right h2{margin:0}.sidebar-right ul>span{font-size:.8rem;line-height:1rem!important;margin-bottom:.5rem;text-decoration:underline}.sidebar-right ul>li{font-size:1.7rem;line-height:2.5rem}.sidebar-right ul>li a{font-size:1.7rem;line-height:2rem;border-radius:50px}.sidebar-right .informations{padding:1rem}.sidebar-right .informations>div{margin-bottom:1rem}.sidebar-right .informations h3{font-size:1.5rem;line-height:2rem;margin:0}.sidebar-right .informations p{font-size:1rem;line-height:1.5rem}.other_projets h3{font-size:2.5rem;margin:0}.card h2{font-size:1rem;margin:0}#text_figli{z-index:999;opacity:1}#text_figli p>a{z-index:999}#text_figli p>a:after,#text_figli p>a:before{position:absolute;bottom:-1px;width:50%;height:1px;margin:1px 0 0;content:'';transition:all .2s ease-in-out;transition-duration:.3s;opacity:1;background-color:#000}#text_figli p>a::before{left:50%}#text_figli p>a:after{right:50%}#text_figli p>a:hover{cursor:pointer}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:100%;opacity:1}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:50%}#text_figli p>a #icone_list{transition:1s .5s margin-left,.8s .3s opacity}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:0s .2s transform;transform:translate3d(0,5px,0) rotate(0)}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:.2s .2s transform;transform:translate3d(0,-10px,0) rotate(0)}#text_figli p>a.open #icone_list{transition:.5s margin-left,.5s opacity}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}#text_figli p>a#figureslibres::after,#text_figli p>a#figureslibres::before{bottom:5px}#text_figli.hidden{transition:.3s opacity ease;opacity:0}#text_figli #item_list p>a{cursor:pointer}#text_figli #item_list p>a:after,#text_figli #item_list p>a:before{width:100%;opacity:1}#text_figli #item_list p>a:after,#text_figli #item_list p>a:before{width:50%}.circle_hover{position:absolute;z-index:0;width:0;height:0;transition:height .2s,width .2s;transform:translate(-50%,-50%)}.circle_hover.open{width:200px;height:200px;transition:height .5s,width .5s}.circle_hover.figureslibres{background:url(/user/themes/figureslibres/images/figures_libres.svg) center no-repeat;background-size:contain}.circle_hover.publique{background:url(/user/themes/figureslibres/images/publique.svg) center no-repeat;background-size:contain}.circle_hover.sociale{background:url(/user/themes/figureslibres/images/sociale.svg) center no-repeat;background-size:contain}.circle_hover.culturelle{background:url(/user/themes/figureslibres/images/culturelle.svg) center no-repeat;background-size:contain}.circle_hover.commanditaires{background:url(/user/themes/figureslibres/images/commanditaires.svg) center no-repeat;background-size:contain}.circle_hover.logiciels-libres{background:url(/user/themes/figureslibres/images/logiciels_libres.svg) center no-repeat;background-size:contain}*{box-sizing:border-box}.loader{display:none;width:10px;height:10px;margin-left:10px;vertical-align:middle;background-image:url(/user/themes/figureslibres/images/ajax-loader.gif);background-repeat:no-repeat;background-position:center;background-size:10px 10px}.card .loader{position:absolute;z-index:999;top:50%;left:50%;margin-left:0;transform:translate(-50%,50%)}body,html{background:#f9f9f9fe}body.hidden,html.hidden{overflow:hidden}img.lazy{display:block}body #start{width:calc((100% / 1.5) - (1rem / 2));margin:1rem auto auto 1rem}body #start #text_figli p a #icone_list{position:relative;z-index:999;display:inline-block;margin-left:-30px;opacity:0}body #start #text_figli p a #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli p a.marg{margin-right:.5rem}body #start #text_figli p a.open #icone_list{position:relative;z-index:999;display:inline-block;margin-left:0;transition:.5s margin-left,.5s opacity;opacity:1}body #start #text_figli p a.open #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}body #start #text_figli p a.open #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli #item_list{position:relative;width:80vw;margin-top:.5rem}body #start #text_figli #item_list .card{position:relative;display:inline-block;width:calc((100% / 5) - (.5rem * 2));min-width:250px;height:100%;margin:0 .5rem .5rem 0;vertical-align:top}body #start #text_figli #item_list .card>.card-image.open a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card a{display:block;overflow:auto;border-radius:5px}body #start #text_figli #item_list .card a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(1);filter:grayscale(1)}body #start #text_figli #item_list .card .card-header{display:none;width:100%;padding:.5rem;border-bottom-right-radius:5px;border-bottom-left-radius:5px;flex-wrap:wrap}body #start #text_figli #item_list .card .card-header>*{font-size:.8rem;line-height:1rem;margin-right:.5rem}body #start #text_figli #item_list .card:hover a{display:block}body #start #text_figli #item_list .card:hover a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card:hover .card-header{position:absolute;bottom:0;display:inline-flex}body #start #text_figli #item_list .card:last-of-type{vertical-align:baseline!important}body #start #text_figli #item_list .card #item{position:relative;width:calc(80vw - (.5rem * 6));margin-top:.5rem;padding:2rem 2rem .5rem 2rem;border-radius:5px}body #start #text_figli #item_list .card #item .content-title{display:flex;margin:1rem auto 3rem auto;flex-wrap:wrap;justify-content:space-between;align-items:baseline}body #start #text_figli #item_list .card #item .content-title a{display:block}body #start #text_figli #item_list .card #item .e-content p{font-size:1rem;line-height:1.2rem}body #start #text_figli #item_list .card #item.publique{background:#ffaeab}body #start #text_figli #item_list .card #item.sociale{background:#7eff71}body #start #text_figli #item_list .card #item.culturelle{background:#feff74}body #start #text_figli #item_list .card #item.commanditaires{background:#fabbde}body #start #text_figli #item_list .card #item #icone_list{line-height:0;position:absolute;top:0;right:0}body #start #text_figli #item_list.publique .card:hover .card-header{background:#ffaeab}body #start #text_figli #item_list.sociale .card:hover .card-header{background:#7eff71}body #start #text_figli #item_list.culturelle .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.commanditaires{display:block;margin:1rem auto;-moz-columns:4 150px;columns:4 150px;-moz-column-gap:2em;column-gap:2em}body #start #text_figli #item_list.commanditaires p{font-size:1rem;line-height:1.2rem;margin:.5rem auto}body #start #text_figli #item_list.commanditaires .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{display:block;width:70%;min-width:500px;margin:1rem 0}body #start #text_figli #item_list.figureslibres p,body #start #text_figli #item_list.logiciels-libres p{font-size:1rem;line-height:1.5rem}body #start #text_figli #top{position:relative;width:100%;cursor:pointer;text-align:center}body:not(.home) #start{margin-top:calc(2rem + 3rem)}#icone_list .hamburger .hamburger-box{width:35px}#icone_list .hamburger .hamburger-box .hamburger-inner{width:35px;height:2px}#icone_list .hamburger .hamburger-box .hamburger-inner::before{top:10px;width:35px;height:inherit}#icone_list .hamburger .hamburger-box .hamburger-inner::after{top:20px;width:inherit;height:inherit}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner{transform:translate3d(0,10px,0) rotate(45deg)}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner::after{transform:translate3d(0,-20px,0) rotate(-90deg)}body.sticky-footer{display:flex;flex-direction:column;height:100%;min-height:100vh}body.sticky-footer #page-wrapper{flex:1 0 auto}.home footer{position:fixed;right:20px;bottom:20px;display:inline-flex;color:#acb3c2}.home footer p{font-size:1rem!important;line-height:1rem!important}.home footer p a img{width:20px!important}.sidebar-right{position:fixed;z-index:1000;top:0;left:-100vw;width:100%;height:100%;transition:.3s right ease;background:#f9f9f9fe}.sidebar-right ul span{line-height:2rem}.sidebar-right #icone_list{position:fixed;z-index:1000;top:27px;right:20px}.sidebar-right .list-projets{overflow:auto;height:100%;margin:1rem auto auto 1rem}.sidebar-right .list-projets .title-menu::after{display:block;width:0;height:1px;margin-top:.5rem;content:' '}.sidebar-right .list-projets .container-wrap{display:inline-flex}.sidebar-right .list-projets .container{position:relative;overflow:auto;width:85%;margin-top:20px;padding:1rem 2rem 2rem 0;opacity:0}.sidebar-right .list-projets .container::after{position:absolute;top:0;right:0;display:block;width:1px;height:0;margin-right:1rem;content:' '}.sidebar-right .list-projets .container ul{margin-bottom:20px}.sidebar-right .list-projets .container ul span.cat{line-height:3rem;display:block}.sidebar-right .list-projets .container ul li{position:relative;display:inline-flex;width:auto;align-items:flex-end}.sidebar-right .list-projets .container ul li a{z-index:0;display:block;margin-right:0;padding:0 7px;transition:.6s background;background:#f9f9f9fe}.sidebar-right .list-projets .container ul li a .img{position:fixed;z-index:999;display:none;overflow:hidden;width:300px;height:auto;transform:rotate(0);transform-origin:center center;pointer-events:none;border-radius:10px}.sidebar-right .list-projets .container ul li a:hover{z-index:999}.sidebar-right .list-projets .container ul li a:hover .img{display:block;transition:all 1s ease}.sidebar-right .list-projets .container ul li:hover.culturelle a{transition:.6s background;background:#feff74}.sidebar-right .list-projets .container ul li:hover.sociale a{transition:.6s background;background:#7eff71}.sidebar-right .list-projets .container ul li:hover.publique a{transition:.6s background;background:#ffaeab}.sidebar-right .list-projets .container ul li:hover::before{min-width:100%;transition:.3s background}.sidebar-right .list-projets .container ul a{z-index:999;color:#000}.sidebar-right .list-projets .container ul a.active{color:#000}.sidebar-right .list-projets .informations{position:relative;min-width:250px;height:100%;padding-left:40px;opacity:0}.sidebar-right.is-active{left:0;transition:.5s .3s left ease}.sidebar-right.is-active .title-menu::after{width:100%;transition:1s .9s width ease;background:#000}.sidebar-right.is-active .informations{padding-left:25px;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container{margin-top:0;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container::after{height:100%;transition:1s .9s height ease;background:#000}#item_list{display:inline-flex;width:100%;flex-wrap:wrap}#item_list .card{width:calc((100% / 2) - (1rem / 2));height:100%}#item_list .card:nth-child(odd){margin-right:1rem}#item_list .card .card-header{z-index:999;display:inline-flex;width:100%}#item_list .card .card-header>*{margin-right:.5rem}#item .e-content{width:50%;min-width:500px;margin:0 0 2rem 0}#item .card-image img:not(:last-of-type){margin-bottom:1.5rem}.other_projets{display:flex;margin-top:1rem;margin-bottom:1rem;border-top:1px solid #000;flex-wrap:wrap}.other_projets h3{width:100%;margin:1rem 0 .5rem 0}.other_projets .card{width:calc((100% / 3) - (1rem / 3))}.other_projets .card:nth-child(-1n+3){margin-right:.5rem}.other_projets .card .card-header{display:flex;flex-wrap:wrap}.other_projets .card .card-header>*{margin-right:.5rem}@media screen and (max-width:1024px){body #start{width:80%}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{width:100%}body #start #text_figli #item_list .card{width:calc((100% / 3) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(300% + (.5rem * 2))}body #start #text_figli #item_list .card #item .content-title{margin:1rem auto 1rem auto}body #start #text_figli #item_list .card #item .e-content{width:100%}}@media screen and (max-width:1000px){.sidebar-right .list-projets .container{float:none;width:100%;padding-bottom:0}.sidebar-right .list-projets .informations{float:none;margin-left:10px;padding-left:.5rem}#item_list{width:90vw!important}}@media screen and (max-width:768px){body #start #text_figli #item_list .card{width:calc((100% / 2) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(90vw - .5rem)}}@media screen and (max-width:510px){body #start{width:calc(100% - 1rem);margin:.5rem auto 2rem auto}body #start #text_figli p{font-size:1.7rem;line-height:2.3rem}body #start #text_figli #item_list{width:100%!important}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{min-width:100%}body #start #text_figli #item_list .card{width:calc(100%);margin:0 0 .5rem 0}body #start #text_figli #item_list .card #item{width:100%;padding:1rem}body #start #text_figli #item_list .card #item .e-content{min-width:100%;margin:2rem 0}body #start #text_figli #item_list .card #item .content-title h2{font-size:2rem!important;line-height:2.5rem!important}body #start #text_figli #item_list .card #item .content-title>div{line-height:1rem}body .sidebar-right{right:-100%;width:100%}body .sidebar-right #icone_list{z-index:0;top:0}body .sidebar-right #icone_list .hamburger{z-index:999;float:right}body .sidebar-right .list-projets{z-index:999}body .sidebar-right .list-projets .title-menu h2{font-size:1.7rem;line-height:2.3rem}body .sidebar-right .list-projets ul li{font-size:1rem;line-height:1.5rem;display:initial!important;margin-top:0!important}body .sidebar-right .list-projets ul li::before{width:100%}body .sidebar-right .list-projets ul li a{font-size:1rem;line-height:1.5rem;display:initial!important;padding:0!important}body .sidebar-right .list-projets ul li a img{display:none!important}body .sidebar-right .list-projets ul li>span{font-size:1rem;line-height:1.5rem}body .sidebar-right .list-projets .container-wrap{display:block}body .sidebar-right .list-projets .container-wrap .container::after{top:auto!important;bottom:0;left:0!important;width:0;height:1px}body .sidebar-right.is-active .container::after{width:100%!important;transition:1s width 1s ease}body .sidebar-right .informations h3{font-size:1.1rem}footer{z-index:999;bottom:0!important;left:0!important;width:100%;padding:.5rem;background-color:#f9f9f9fe;justify-content:center}.circle_hover.open{width:100px!important;height:100px!important}} ->>>>>>> prod +@font-face{font-family:lato;src:url(../fonts/lato/Lato-Regular.eot);src:url(../fonts/lato/Lato-Regular.eot?#iefix) format('embedded-opentype'),url(../fonts/lato/Lato-Regular.woff) format('woff'),url(../fonts/lato/Lato-Regular.ttf) format('truetype'),url(../fonts/lato/Lato-Regular.svg#lato) format('svg')}@font-face{font-family:syne;src:url(../fonts/syne/Syne-Bold.eot);src:url(../fonts/syne/Syne-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/syne/Syne-Bold.woff) format('woff'),url(../fonts/syne/Syne-Bold.ttf) format('truetype'),url(../fonts/syne/Syne-Bold.svg#syne) format('svg')}@font-face{font-family:Avara;src:url(../fonts/avara/Avara-Bold_Italic_web.eot);src:url(../fonts/avara/Avara-Bold_Italic_web.eot?#iefix) format('embedded-opentype'),url(../fonts/avara/Avara-Bold_Italic_web.woff) format('woff'),url(../fonts/avara/Avara-Bold_Italic_web.ttf) format('truetype'),url(../fonts/avara/Avara-Bold_Italic_web.svg#Avara) format('svg')}@font-face{font-family:playfairdisplay-regularitalic;src:url(../fonts/playfair/playfairdisplay-regularitalic.eot);src:url(../fonts/playfair/playfairdisplay-regularitalic.eot?#iefix) format('embedded-opentype'),url(../fonts/playfair/playfairdisplay-regularitalic.woff) format('woff'),url(../fonts/playfair/playfairdisplay-regularitalic.ttf) format('truetype'),url(../fonts/playfair/playfairdisplay-regularitalic.svg#playfairdisplay-regularitalic) format('svg')}@font-face{font-family:Moche-Bold;src:url(../fonts/moche/Moche-Bold.eot);src:url(../fonts/moche/Moche-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/moche/Moche-Bold.woff) format('woff'),url(../fonts/moche/Moche-Bold.ttf) format('truetype'),url(../fonts/moche/Moche-Bold.svg#Moche-Bold) format('svg')}@font-face{font-family:rammetto-regular;src:url(../fonts/rammetto/rammettoone-regular-webfont.eot);src:url(../fonts/rammetto/rammettoone-regular-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rammetto/rammettoone-regular-webfont.woff) format('woff'),url(../fonts/rammetto/rammettoone-regular-webfont.ttf) format('truetype'),url(../fonts/rammetto/rammettoone-regular-webfont.svg#rammetto-regular) format('svg')}@font-face{font-family:rumeur-regular;src:url(../fonts/rumeur/rumeur-webfont.eot);src:url(../fonts/rumeur/rumeur-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/rumeur/rumeur-webfont.woff) format('woff'),url(../fonts/rumeur/rumeur-webfont.ttf) format('truetype'),url(../fonts/rumeur/rumeur-webfont.svg#rumeur-regular) format('svg')}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;line-height:1.15;margin:0;padding:0;-webkit-text-size-adjust:100%}body{margin:0;padding:0}main{display:block}h1{font-size:auto;margin:0}hr{overflow:visible;box-sizing:content-box;height:0}pre{font-family:monospace,monospace;font-size:1em}p{margin:0}ul{list-style:none}li,ul{margin:0;padding:0}a{text-decoration:none;color:#000;background-color:transparent}abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:none;-webkit-text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{width:100%;height:100%;vertical-align:bottom;border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;box-sizing:border-box;max-width:100%;padding:0;white-space:normal;color:inherit}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}a,h1,h2,h3,li,p,span,ul{font-family:lato;font-weight:lighter}header a{font-size:2.5rem;line-height:3rem}a,button{border:none;outline:0!important}.title-menu h2{font-family:rammetto-regular}.home h2,.home p{font-size:2.5rem;line-height:3rem}.home #text_figli strong{position:relative}.home #text_figli strong::after{position:absolute;bottom:0;display:block;width:100%;height:1px;content:'';background:#000}.home #text_figli a{position:relative}.home #text_figli a#publique{font-family:playfairdisplay-regularitalic}.home #text_figli a#sociale{font-family:syne}.home #text_figli a#culturelle{font-family:Avara}.home #text_figli a#commanditaires{font-family:Moche-Bold}.home #text_figli a#figureslibres{font-family:rammetto-regular}.home #text_figli a#logiciels-libres{font-family:rumeur-regular}.home #text_figli #item .e-content p{font-size:1.5rem;line-height:3rem}.home #text_figli #item .e-content p strong{font-weight:700!important}.home #text_figli #item .e-content p a{text-decoration:underline}.home #text_figli #item .e-content p em{font-style:italic}.home #text_figli #item_list.commanditaires{flex-direction:column}.home #text_figli #item_list.commanditaires .card-title{line-height:normal}.home #text_figli #item_list.figureslibres h3{font-family:rammetto-regular;font-size:1rem;font-weight:700;line-height:1.5rem;margin:10px 0 0 0}.home #text_figli #item_list.figureslibres h3::after{display:none}.home #text_figli #item_list.figureslibres p strong{font-family:rammetto-regular;display:block;margin-top:10px}.home #text_figli #item_list.figureslibres p strong::after{display:none}.home #text_figli #item_list.logiciels-libres h3{font-size:1.2rem;font-weight:700;line-height:1.5rem;margin:10px 0 0 0}.home #text_figli #item_list.logiciels-libres h3::after{display:none}.home #text_figli #item_list.figureslibres p strong{font-weight:700;display:block}.home #text_figli #item_list.figureslibres p strong::after{display:none}#item h2{font-size:4rem!important;font-weight:400!important;line-height:4rem!important;width:auto}#item span{font-size:1rem}#item.publique h2{font-family:playfairdisplay-regularitalic}#item.publique span{font-family:playfairdisplay-regularitalic;font-weight:400}#item.sociale h2{font-family:syne}#item.sociale span{font-family:syne;font-weight:400}#item.culturelle h2{font-family:Avara}#item.culturelle span{font-family:Avara;font-weight:400}a.publique,span.publique{font-family:playfairdisplay-regularitalic}a.sociale,span.sociale{font-family:syne}a.culturelle,span.culturelle{font-family:Avara}.sidebar-right h2{margin:0}.sidebar-right ul>span{font-size:.8rem;line-height:1rem!important;margin-bottom:.5rem;text-decoration:underline}.sidebar-right ul>li{font-size:1.7rem;line-height:2.5rem}.sidebar-right ul>li a{font-size:1.7rem;line-height:2rem;border-radius:50px}.sidebar-right .informations{padding:1rem}.sidebar-right .informations>div{margin-bottom:1rem}.sidebar-right .informations h3{font-size:1.5rem;line-height:2rem;margin:0}.sidebar-right .informations p{font-size:1rem;line-height:1.5rem}.other_projets h3{font-size:2.5rem;margin:0}.card h2{font-size:1rem;margin:0}#text_figli{z-index:999;opacity:1}#text_figli p>a{z-index:999}#text_figli p>a:after,#text_figli p>a:before{position:absolute;bottom:-1px;width:50%;height:1px;margin:1px 0 0;content:'';transition:all .2s ease-in-out;transition-duration:.3s;opacity:1;background-color:#000}#text_figli p>a::before{left:50%}#text_figli p>a:after{right:50%}#text_figli p>a:hover{cursor:pointer}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:100%;opacity:1}#text_figli p>a:hover:after,#text_figli p>a:hover:before{width:50%}#text_figli p>a #icone_list{transition:1s .5s margin-left,.8s .3s opacity}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:0s .2s transform;transform:translate3d(0,5px,0) rotate(0)}#text_figli p>a #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:.2s .2s transform;transform:translate3d(0,-10px,0) rotate(0)}#text_figli p>a.open #icone_list{transition:.5s margin-left,.5s opacity}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}#text_figli p>a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-10px,0) rotate(90deg)}#text_figli p>a#figureslibres::after,#text_figli p>a#figureslibres::before{bottom:5px}#text_figli.hidden{transition:.3s opacity ease;opacity:0}#text_figli #item_list p>a{cursor:pointer}#text_figli #item_list p>a:after,#text_figli #item_list p>a:before{width:100%;opacity:1}#text_figli #item_list p>a:after,#text_figli #item_list p>a:before{width:50%}.circle_hover{position:absolute;z-index:0;width:0;height:0;transition:height .2s,width .2s;transform:translate(-50%,-50%)}.circle_hover.open{width:200px;height:200px;transition:height .5s,width .5s}.circle_hover.figureslibres{background:url(/user/themes/figureslibres/images/figures_libres.svg) center no-repeat;background-size:contain}.circle_hover.publique{background:url(/user/themes/figureslibres/images/publique.svg) center no-repeat;background-size:contain}.circle_hover.sociale{background:url(/user/themes/figureslibres/images/sociale.svg) center no-repeat;background-size:contain}.circle_hover.culturelle{background:url(/user/themes/figureslibres/images/culturelle.svg) center no-repeat;background-size:contain}.circle_hover.commanditaires{background:url(/user/themes/figureslibres/images/commanditaires.svg) center no-repeat;background-size:contain}.circle_hover.logiciels-libres{background:url(/user/themes/figureslibres/images/logiciels_libres.svg) center no-repeat;background-size:contain}*{box-sizing:border-box}.loader{display:none;width:10px;height:10px;margin-left:10px;vertical-align:middle;background-image:url(/user/themes/figureslibres/images/ajax-loader.gif);background-repeat:no-repeat;background-position:center;background-size:10px 10px}.card .loader{position:absolute;z-index:999;top:50%;left:50%;margin-left:0;transform:translate(-50%,50%)}body,html{background:#f9f9f9fe}body.hidden,html.hidden{overflow:hidden}img.lazy{display:block}body #start{width:calc((100% / 1.5) - (1rem / 2));margin:1rem auto auto 1rem}body #start #text_figli p a #icone_list{position:relative;z-index:999;display:inline-block;margin-left:-30px;opacity:0}body #start #text_figli p a #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli p a.marg{margin-right:.5rem}body #start #text_figli p a.open #icone_list{position:relative;z-index:999;display:inline-block;margin-left:0;transition:.5s margin-left,.5s opacity;opacity:1}body #start #text_figli p a.open #icone_list .hamburger{margin-left:10px;padding:0}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner{transition:.8s .2s transform;transform:translate3d(0,5px,0) rotate(45deg)}body #start #text_figli p a.open #icone_list .hamburger.hamburger--slider .hamburger-inner:after{transition:1s .2s transform;transform:translate3d(0,-20px,0) rotate(90deg)}body #start #text_figli p a.open #icone_list .hamburger .hamburger-box{vertical-align:middle}body #start #text_figli #item_list{position:relative;width:80vw;margin-top:.5rem}body #start #text_figli #item_list .card{position:relative;display:inline-block;width:calc((100% / 5) - (.5rem * 2));min-width:250px;height:100%;margin:0 .5rem .5rem 0;vertical-align:top}body #start #text_figli #item_list .card>.card-image.open a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card a{display:block;overflow:auto;border-radius:5px}body #start #text_figli #item_list .card a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(1);filter:grayscale(1)}body #start #text_figli #item_list .card .card-header{display:none;width:100%;padding:.5rem;border-bottom-right-radius:5px;border-bottom-left-radius:5px;flex-wrap:wrap}body #start #text_figli #item_list .card .card-header>*{font-size:.8rem;line-height:1rem;margin-right:.5rem}body #start #text_figli #item_list .card:hover a{display:block}body #start #text_figli #item_list .card:hover a img{transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease;-webkit-filter:grayscale(0);filter:grayscale(0)}body #start #text_figli #item_list .card:hover .card-header{position:absolute;bottom:0;display:inline-flex}body #start #text_figli #item_list .card:last-of-type{vertical-align:baseline!important}body #start #text_figli #item_list .card #item{position:relative;width:calc(80vw - (.5rem * 6));margin-top:.5rem;padding:2rem 2rem .5rem 2rem;border-radius:5px}body #start #text_figli #item_list .card #item .content-title{display:flex;margin:1rem auto 3rem auto;flex-wrap:wrap;justify-content:space-between;align-items:baseline}body #start #text_figli #item_list .card #item .content-title a{display:block}body #start #text_figli #item_list .card #item .e-content p{font-size:1rem;line-height:1.2rem}body #start #text_figli #item_list .card #item.publique{background:#ffaeab}body #start #text_figli #item_list .card #item.sociale{background:#7eff71}body #start #text_figli #item_list .card #item.culturelle{background:#feff74}body #start #text_figli #item_list .card #item.commanditaires{background:#fabbde}body #start #text_figli #item_list .card #item #icone_list{line-height:0;position:absolute;top:10px;right:0}body #start #text_figli #item_list.publique .card:hover .card-header{background:#ffaeab}body #start #text_figli #item_list.sociale .card:hover .card-header{background:#7eff71}body #start #text_figli #item_list.culturelle .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.commanditaires{display:block;margin:1rem auto;-moz-columns:4 150px;columns:4 150px;-moz-column-gap:2em;column-gap:2em}body #start #text_figli #item_list.commanditaires p{font-size:1rem;line-height:1.2rem;margin:.5rem auto}body #start #text_figli #item_list.commanditaires .card:hover .card-header{background:#feff74}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{display:block;width:70%;min-width:500px;margin:1rem 0}body #start #text_figli #item_list.figureslibres p,body #start #text_figli #item_list.logiciels-libres p{font-size:1rem;line-height:1.5rem}body #start #text_figli #top{position:relative;width:100%;cursor:pointer;text-align:center}body:not(.home) #start{margin-top:calc(2rem + 3rem)}#icone_list .hamburger .hamburger-box{width:35px}#icone_list .hamburger .hamburger-box .hamburger-inner{width:35px;height:2px}#icone_list .hamburger .hamburger-box .hamburger-inner::before{top:10px;width:35px;height:inherit}#icone_list .hamburger .hamburger-box .hamburger-inner::after{top:20px;width:inherit;height:inherit}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner{transform:translate3d(0,10px,0) rotate(45deg)}#icone_list .hamburger.hamburger--slider.is-active .hamburger-inner::after{transform:translate3d(0,-20px,0) rotate(-90deg)}body.sticky-footer{display:flex;flex-direction:column;height:100%;min-height:100vh}body.sticky-footer #page-wrapper{flex:1 0 auto}.home footer{position:fixed;right:20px;bottom:20px;display:inline-flex;color:#acb3c2}.home footer p{font-size:1rem!important;line-height:1rem!important}.home footer p a img{width:20px!important}.sidebar-right{position:fixed;z-index:1000;top:0;left:-100vw;width:100%;height:100%;transition:.3s right ease;background:#f9f9f9fe}.sidebar-right ul span{line-height:2rem}.sidebar-right #icone_list{position:fixed;z-index:1000;top:20px;right:20px}.sidebar-right .list-projets{overflow:auto;height:100%;margin:1rem auto auto 1rem}.sidebar-right .list-projets .title-menu::after{display:block;width:0;height:1px;margin-top:.5rem;content:' '}.sidebar-right .list-projets .container-wrap{display:inline-flex}.sidebar-right .list-projets .container{position:relative;overflow:auto;width:85%;margin-top:20px;padding:1rem 2rem 2rem 0;opacity:0}.sidebar-right .list-projets .container::after{position:absolute;top:0;right:0;display:block;width:1px;height:0;margin-right:1rem;content:' '}.sidebar-right .list-projets .container ul{margin-bottom:20px}.sidebar-right .list-projets .container ul span.cat{line-height:3rem;display:block}.sidebar-right .list-projets .container ul li{position:relative;display:inline-flex;width:auto;align-items:flex-end}.sidebar-right .list-projets .container ul li a{z-index:0;display:block;margin-right:0;padding:0 7px;transition:.6s background;background:#f9f9f9fe}.sidebar-right .list-projets .container ul li a .img{position:fixed;z-index:999;display:none;overflow:hidden;width:300px;height:auto;transform:rotate(0);transform-origin:center center;pointer-events:none;border-radius:10px}.sidebar-right .list-projets .container ul li a:hover{z-index:999}.sidebar-right .list-projets .container ul li a:hover .img{display:block;transition:all 1s ease}.sidebar-right .list-projets .container ul li:hover.culturelle a{transition:.6s background;background:#feff74}.sidebar-right .list-projets .container ul li:hover.sociale a{transition:.6s background;background:#7eff71}.sidebar-right .list-projets .container ul li:hover.publique a{transition:.6s background;background:#ffaeab}.sidebar-right .list-projets .container ul li:hover::before{min-width:100%;transition:.3s background}.sidebar-right .list-projets .container ul a{z-index:999;color:#000}.sidebar-right .list-projets .container ul a.active{color:#000}.sidebar-right .list-projets .informations{position:relative;min-width:250px;height:100%;padding-left:40px;opacity:0}.sidebar-right.is-active{left:0;transition:.5s .3s left ease}.sidebar-right.is-active .title-menu::after{width:100%;transition:1s .9s width ease;background:#000}.sidebar-right.is-active .informations{padding-left:25px;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container{margin-top:0;transition:1s opacity 1s ease;opacity:1}.sidebar-right.is-active .container::after{height:100%;transition:1s .9s height ease;background:#000}#item_list{display:inline-flex;width:100%;flex-wrap:wrap}#item_list .card{width:calc((100% / 2) - (1rem / 2));height:100%}#item_list .card:nth-child(odd){margin-right:1rem}#item_list .card .card-header{z-index:999;display:inline-flex;width:100%}#item_list .card .card-header>*{margin-right:.5rem}#item .e-content{width:50%;min-width:500px;margin:0 0 2rem 0}#item .card-image img:not(:last-of-type){margin-bottom:1.5rem}.other_projets{display:flex;margin-top:1rem;margin-bottom:1rem;border-top:1px solid #000;flex-wrap:wrap}.other_projets h3{width:100%;margin:1rem 0 .5rem 0}.other_projets .card{width:calc((100% / 3) - (1rem / 3))}.other_projets .card:nth-child(-1n+3){margin-right:.5rem}.other_projets .card .card-header{display:flex;flex-wrap:wrap}.other_projets .card .card-header>*{margin-right:.5rem}@media screen and (max-width:1024px){body #start{width:80%}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{width:100%}body #start #text_figli #item_list .card{width:calc((100% / 3) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(300% + (.5rem * 2))}body #start #text_figli #item_list .card #item .content-title{margin:1rem auto 1rem auto}body #start #text_figli #item_list .card #item .e-content{width:100%}}@media screen and (max-width:1000px){.sidebar-right .list-projets .container{float:none;width:100%;padding-bottom:0}.sidebar-right .list-projets .informations{float:none;margin-left:10px;padding-left:.5rem}#item_list{width:90vw!important}}@media screen and (max-width:768px){body #start #text_figli #item_list .card{width:calc((100% / 2) - .5rem)}body #start #text_figli #item_list .card #item{width:calc(90vw - .5rem)}}@media screen and (max-width:510px){body #start{width:calc(100% - 1rem);margin:.5rem auto 2rem auto}body #start #text_figli p{font-size:1.7rem;line-height:2.3rem}body #start #text_figli #item_list{width:100%!important}body #start #text_figli #item_list.figureslibres,body #start #text_figli #item_list.logiciels-libres{min-width:100%}body #start #text_figli #item_list .card{width:calc(100%);margin:0 0 .5rem 0}body #start #text_figli #item_list .card #item{width:100%;padding:1rem}body #start #text_figli #item_list .card #item .e-content{min-width:100%;margin:2rem 0}body #start #text_figli #item_list .card #item .content-title h2{font-size:2rem!important;line-height:2.5rem!important}body #start #text_figli #item_list .card #item .content-title>div{line-height:1rem}body .sidebar-right{right:-100%;width:100%}body .sidebar-right #icone_list{z-index:0;top:0}body .sidebar-right #icone_list .hamburger{z-index:999;float:right}body .sidebar-right .list-projets{z-index:999}body .sidebar-right .list-projets .title-menu h2{font-size:1.7rem;line-height:2.3rem}body .sidebar-right .list-projets ul li{font-size:1rem;line-height:1.5rem;display:initial!important;margin-top:0!important}body .sidebar-right .list-projets ul li::before{width:100%}body .sidebar-right .list-projets ul li a{font-size:1rem;line-height:1.5rem;display:initial!important;padding:0!important}body .sidebar-right .list-projets ul li a img{display:none!important}body .sidebar-right .list-projets ul li>span{font-size:1rem;line-height:1.5rem}body .sidebar-right .list-projets .container-wrap{display:block}body .sidebar-right .list-projets .container-wrap .container::after{top:auto!important;bottom:0;left:0!important;width:0;height:1px}body .sidebar-right.is-active .container::after{width:100%!important;transition:1s width 1s ease}body .sidebar-right .informations h3{font-size:1.1rem}footer{z-index:999;bottom:0!important;left:0!important;width:100%;padding:.5rem;background-color:#f9f9f9fe;justify-content:center}.circle_hover.open{width:100px!important;height:100px!important}} \ No newline at end of file diff --git a/user/themes/figureslibres/scss/theme/_sidebar.scss b/user/themes/figureslibres/scss/theme/_sidebar.scss index d1d565f..4fad932 100644 --- a/user/themes/figureslibres/scss/theme/_sidebar.scss +++ b/user/themes/figureslibres/scss/theme/_sidebar.scss @@ -16,7 +16,7 @@ #icone_list{ z-index: 1000; position: fixed; - top: 27px; + top: 20px; right: 20px; } .list-projets{ diff --git a/user/themes/figureslibres/scss/theme/_start.scss b/user/themes/figureslibres/scss/theme/_start.scss index 8e4fca2..bc53108 100644 --- a/user/themes/figureslibres/scss/theme/_start.scss +++ b/user/themes/figureslibres/scss/theme/_start.scss @@ -74,7 +74,7 @@ body{ transform: translate3d(0,5px,0) rotate(45deg); transition: 0.8s 0.2s transform; &:after{ - transform: translate3d(0,-10px,0) rotate(90deg); + transform: translate3d(0,-20px,0) rotate(90deg); transition: 1s 0.2s transform; } } @@ -188,7 +188,7 @@ body{ } #icone_list{ position: absolute; - top: 0px; + top: 10px; right: 0; line-height: 0; } From 72aae1eb2d368e23ab584dbec62e67377b5a4b98 Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 8 Sep 2020 11:32:48 +0200 Subject: [PATCH 3/3] update grav et plugin --- CHANGELOG.md | 130 +- bin/gpm | 9 +- bin/grav | 15 +- bin/plugin | 14 +- composer.json | 31 +- composer.lock | 1029 ++- fixperms.sh | 2 +- index.php | 19 +- system/aliases.php | 5 + system/assets/jquery/jquery-3.x.min.js | 4 +- system/blueprints/config/system.yaml | 71 +- system/config/system.yaml | 11 + system/defines.php | 2 +- .../Assets/Traits/LegacyAssetsTrait.php | 6 +- system/src/Grav/Common/Browser.php | 2 + .../src/Grav/Common/Data/BlueprintSchema.php | 8 +- system/src/Grav/Common/Data/Data.php | 32 +- system/src/Grav/Common/Data/Validation.php | 11 +- system/src/Grav/Common/Debugger.php | 2 +- system/src/Grav/Common/Filesystem/Folder.php | 38 +- system/src/Grav/Common/GPM/Local/Package.php | 3 +- system/src/Grav/Common/GPM/Response.php | 2 +- system/src/Grav/Common/Grav.php | 51 +- system/src/Grav/Common/Inflector.php | 2 + system/src/Grav/Common/Markdown/Parsedown.php | 3 +- .../Grav/Common/Markdown/ParsedownExtra.php | 3 +- .../Grav/Common/Media/Traits/MediaTrait.php | 2 +- .../Grav/Common/Page/Markdown/Excerpts.php | 3 +- .../Grav/Common/Page/Medium/ImageMedium.php | 13 +- system/src/Grav/Common/Page/Page.php | 24 +- system/src/Grav/Common/Page/Pages.php | 64 +- system/src/Grav/Common/Plugin.php | 2 +- .../Common/Processors/InitializeProcessor.php | 48 + system/src/Grav/Common/Scheduler/Cron.php | 4 +- .../Common/Service/PagesServiceProvider.php | 13 + system/src/Grav/Common/Twig/TwigExtension.php | 2 +- system/src/Grav/Common/Uri.php | 39 +- system/src/Grav/Console/ConsoleCommand.php | 141 +- .../Grav/Console/Gpm/SelfupgradeCommand.php | 2 +- .../Framework/File/Formatter/CsvFormatter.php | 22 +- .../Framework/Flex/Traits/FlexMediaTrait.php | 2 +- .../Grav/Framework/Parsedown/Parsedown.php | 1554 +++++ .../Framework/Parsedown/ParsedownExtra.php | 532 ++ system/src/Grav/Framework/Route/Route.php | 7 +- system/src/Grav/Framework/Session/Session.php | 54 +- user/plugins/admin/.gitignore | 1 + user/plugins/admin/CHANGELOG.md | 80 +- user/plugins/admin/admin.yaml | 1 + user/plugins/admin/blueprints.yaml | 18 +- user/plugins/admin/classes/admin.php | 5 +- .../admin/classes/adminbasecontroller.php | 6 +- .../plugins/admin/classes/admincontroller.php | 16 +- user/plugins/admin/composer.lock | 858 ++- user/plugins/admin/languages/en.yaml | 6 + user/plugins/admin/languages/pt.yaml | 2 + .../themes/grav/css-compiled/preset.css.map | 2 +- .../themes/grav/css-compiled/template.css | 4 +- .../themes/grav/css-compiled/template.css.map | 2 +- .../plugins/admin/themes/grav/scss/fonts.scss | 2 +- .../themes/grav/scss/template/_admin.scss | 3 +- .../themes/grav/scss/template/_login.scss | 1 + .../grav/scss/template/modules/_buttons.scss | 5 +- .../grav/templates/forms/field.html.twig | 4 +- .../forms/fields/editor/editor.html.twig | 5 +- .../forms/fields/fieldset/fieldset.html.twig | 9 +- .../themes/grav/templates/pages.html.twig | 25 +- .../templates/partials/base-root.html.twig | 4 + .../partials/nav-quick-tray.html.twig | 2 +- .../partials/nav-user-avatar.html.twig | 2 +- .../templates/partials/noscript.html.twig | 42 + .../templates/partials/plugins-list.html.twig | 2 +- .../admin/vendor/composer/ClassLoader.php | 4 +- .../admin/vendor/composer/installed.json | 18 +- .../admin/vendor/composer/semver/CHANGELOG.md | 12 + .../vendor/composer/semver/composer.json | 3 +- .../src/Constraint/AbstractConstraint.php | 2 +- .../semver/src/Constraint/Constraint.php | 10 +- .../semver/src/Constraint/EmptyConstraint.php | 2 +- .../semver/src/Constraint/MultiConstraint.php | 2 +- .../vendor/composer/semver/src/Semver.php | 4 +- .../composer/semver/src/VersionParser.php | 47 +- user/plugins/email/CHANGELOG.md | 41 + user/plugins/email/README.md | 19 + user/plugins/email/blueprints.yaml | 9 +- user/plugins/email/classes/Email.php | 5 +- .../email/cli/ClearQueueFailuresCommand.php | 5 + user/plugins/email/cli/FlushQueueCommand.php | 5 + user/plugins/email/cli/TestEmailCommand.php | 9 +- user/plugins/email/composer.lock | 186 +- user/plugins/email/email.php | 24 + .../email/vendor/composer/ClassLoader.php | 4 +- .../email/vendor/composer/autoload_files.php | 2 +- .../vendor/composer/autoload_namespaces.php | 1 - .../email/vendor/composer/autoload_psr4.php | 1 + .../email/vendor/composer/autoload_real.php | 3 + .../email/vendor/composer/autoload_static.php | 17 +- .../email/vendor/composer/installed.json | 197 +- .../email/vendor/doctrine/lexer/LICENSE | 2 +- .../email/vendor/doctrine/lexer/README.md | 4 + .../email/vendor/doctrine/lexer/composer.json | 29 +- .../Doctrine/Common/Lexer/AbstractLexer.php | 127 +- .../EmailValidator/EmailLexer.php | 70 +- .../EmailValidator/EmailParser.php | 39 +- .../EmailValidator/EmailValidator.php | 10 +- .../Exception/ExpectingQPair.php | 2 +- .../EmailValidator/Exception/NoDNSRecord.php | 2 - .../EmailValidator/Parser/DomainPart.php | 86 +- .../EmailValidator/Parser/LocalPart.php | 25 +- .../EmailValidator/Parser/Parser.php | 40 +- .../Validation/DNSCheckValidation.php | 11 +- .../Exception/EmptyValidationList.php | 3 + .../Validation/MultipleErrors.php | 8 +- .../Validation/MultipleValidationWithAnd.php | 19 +- .../Validation/NoRFCWarningsValidation.php | 2 +- .../Validation/RFCValidation.php | 4 +- .../Validation/SpoofCheckValidation.php | 8 +- .../EmailValidator/Warning/QuotedPart.php | 4 + .../EmailValidator/Warning/QuotedString.php | 4 + .../EmailValidator/Warning/Warning.php | 21 +- .../vendor/egulias/email-validator/README.md | 4 +- .../egulias/email-validator/composer.json | 24 +- .../egulias/email-validator/phpunit.xml.dist | 7 +- .../email-validator/psalm.baseline.xml | 19 + .../vendor/egulias/email-validator/psalm.xml | 19 + .../vendor/swiftmailer/swiftmailer/CHANGES | 16 + .../vendor/swiftmailer/swiftmailer/README | 15 - .../vendor/swiftmailer/swiftmailer/README.md | 19 + .../swiftmailer/swiftmailer/doc/messages.rst | 15 +- .../swiftmailer/lib/classes/Swift.php | 2 +- .../CharacterStream/ArrayCharacterStream.php | 2 - .../Swift/CharacterStream/CharacterStream.php | 227 - .../CharacterStream/NgCharacterStream.php | 248 +- .../classes/Swift/Transport/StreamBuffer.php | 15 +- .../lib/dependency_maps/mime_deps.php | 2 +- .../lib/swiftmailer_generate_mimes_config.php | 2 +- .../Swift/Encoder/QpEncoderAcceptanceTest.php | 2 +- .../Encoder/Rfc2231EncoderAcceptanceTest.php | 2 +- .../Swift/Mime/AttachmentAcceptanceTest.php | 4 +- .../QpContentEncoderAcceptanceTest.php | 2 +- .../Swift/Mime/EmbeddedFileAcceptanceTest.php | 4 +- .../Swift/Mime/MimePartAcceptanceTest.php | 6 +- .../tests/bug/Swift/Bug206Test.php | 4 +- .../tests/bug/Swift/Bug650Test.php | 2 +- .../ArrayCharacterStreamTest.php | 3 - .../unit/Swift/Encoder/QpEncoderTest.php | 2 +- .../ContentEncoder/QpContentEncoderTest.php | 2 +- .../unit/Swift/Signers/DKIMSignerTest.php | 8 +- .../vendor/symfony/polyfill-iconv/LICENSE | 2 +- .../vendor/symfony/polyfill-iconv/README.md | 4 +- .../Resources/charset/translit.php | 129 + .../symfony/polyfill-iconv/bootstrap.php | 4 +- .../symfony/polyfill-iconv/composer.json | 2 +- .../vendor/symfony/polyfill-intl-idn/Idn.php | 13 +- .../vendor/symfony/polyfill-intl-idn/LICENSE | 2 +- .../symfony/polyfill-intl-idn/README.md | 2 +- .../symfony/polyfill-intl-idn/bootstrap.php | 4 +- .../symfony/polyfill-intl-idn/composer.json | 4 +- .../vendor/symfony/polyfill-mbstring/LICENSE | 2 +- .../symfony/polyfill-mbstring/Mbstring.php | 51 +- .../symfony/polyfill-mbstring/README.md | 2 +- .../symfony/polyfill-mbstring/bootstrap.php | 8 +- .../symfony/polyfill-mbstring/composer.json | 2 +- .../vendor/symfony/polyfill-php72/LICENSE | 2 +- .../vendor/symfony/polyfill-php72/README.md | 2 +- .../symfony/polyfill-php72/composer.json | 2 +- user/plugins/form/CHANGELOG.md | 123 +- user/plugins/form/README.md | 10 +- user/plugins/form/app/fields/file.js | 4 +- user/plugins/form/assets/form.min.js | 18 +- user/plugins/form/assets/form.vendor.js | 26 +- user/plugins/form/blueprints.yaml | 4 +- user/plugins/form/classes/Form.php | 74 +- user/plugins/form/form.php | 61 +- user/plugins/form/gulpfile.js | 66 +- user/plugins/form/languages.yaml | 63 + user/plugins/form/package.json | 41 +- .../templates/forms/default/data.html.twig | 85 +- .../templates/forms/default/data.txt.twig | 16 +- .../templates/forms/default/field.html.twig | 214 +- .../templates/forms/default/fields.html.twig | 4 +- .../templates/forms/default/form.html.twig | 188 +- .../forms/fields/avatar/avatar.html.twig | 6 +- .../forms/fields/captcha/captcha.html.twig | 12 +- .../forms/fields/checkbox/checkbox.html.twig | 7 +- .../fields/checkboxes/checkboxes.html.twig | 2 +- .../templates/forms/fields/key/key.html.twig | 5 +- .../forms/fields/password/password.html.twig | 2 + .../forms/fields/radio/radio.html.twig | 1 + .../forms/fields/select/select.html.twig | 18 +- .../select_optgroup/select_optgroup.html.twig | 44 +- .../forms/fields/tabs/tabs.html.twig | 8 +- .../forms/fields/text/text.html.twig | 12 +- .../forms/fields/textarea/textarea.html.twig | 1 + .../forms/fields/toggle/toggle.html.twig | 10 +- .../forms/fields/url/edit_list.html.twig | 2 +- .../templates/forms/layouts/button.html.twig | 12 + .../forms/layouts/field-variables.html.twig | 1 + .../templates/forms/layouts/field.html.twig | 52 + .../templates/forms/layouts/form.html.twig | 7 + .../form/vendor/composer/ClassLoader.php | 4 +- user/plugins/form/webpack.conf.js | 10 +- user/plugins/form/yarn.lock | 5779 ++++++++++------- user/plugins/login/CHANGELOG.md | 106 +- user/plugins/login/README.md | 31 +- user/plugins/login/blueprints.yaml | 209 +- user/plugins/login/classes/Controller.php | 193 +- .../login/classes/Events/UserLoginEvent.php | 111 +- user/plugins/login/classes/Login.php | 86 +- user/plugins/login/composer.json | 8 +- user/plugins/login/composer.lock | 22 +- user/plugins/login/languages/de.yaml | 13 +- user/plugins/login/languages/en.yaml | 34 +- user/plugins/login/languages/es.yaml | 13 +- user/plugins/login/languages/fr.yaml | 12 +- user/plugins/login/languages/hr.yaml | 15 +- user/plugins/login/languages/hu.yaml | 13 + user/plugins/login/languages/no.yaml | 13 +- user/plugins/login/languages/ro.yaml | 15 +- user/plugins/login/languages/ru.yaml | 13 +- user/plugins/login/languages/uk.yaml | 13 +- user/plugins/login/login.php | 212 +- user/plugins/login/login.yaml | 13 +- user/plugins/login/pages/login.md | 9 +- user/plugins/login/pages/profile.md | 26 +- user/plugins/login/pages/register.md | 10 +- user/plugins/login/pages/reset.md | 5 +- .../templates/partials/login-status.html.twig | 2 +- .../templates/partials/reset-form.html.twig | 4 +- .../plugins/login/templates/profile.html.twig | 2 +- .../vendor/composer/autoload_classmap.php | 1 + .../login/vendor/composer/autoload_psr4.php | 1 + .../login/vendor/composer/autoload_static.php | 10 + .../login/vendor/composer/installed.json | 14 +- .../vendor/robthree/twofactorauth/.travis.yml | 17 +- .../vendor/robthree/twofactorauth/README.md | 34 +- .../twofactorauth/TwoFactorAuth.phpproj | 5 +- .../robthree/twofactorauth/composer.json | 4 +- ...ider.php => ImageChartsQRCodeProvider.php} | 8 +- .../lib/Providers/Rng/HashRNGProvider.php | 2 +- .../lib/Providers/Rng/MCryptRNGProvider.php | 2 +- .../ConvertUnixTimeDotComTimeProvider.php | 15 - .../lib/Providers/Time/NTPTimeProvider.php | 54 + .../twofactorauth/lib/TwoFactorAuth.php | 23 +- .../vendor/robthree/twofactorauth/phpunit.xml | 20 + .../twofactorauth/phpunit.xml.tmppica | 0 .../twofactorauth/tests/TwoFactorAuthTest.php | 42 +- user/plugins/sitemap/CHANGELOG.md | 44 + user/plugins/sitemap/README.md | 40 +- user/plugins/sitemap/blueprints.yaml | 98 +- user/plugins/sitemap/blueprints/sitemap.yaml | 12 + user/plugins/sitemap/classes/SitemapEntry.php | 29 + user/plugins/sitemap/classes/sitemapentry.php | 11 - user/plugins/sitemap/composer.json | 30 + user/plugins/sitemap/composer.lock | 23 + user/plugins/sitemap/languages.yaml | 55 +- user/plugins/sitemap/sitemap.php | 83 +- user/plugins/sitemap/sitemap.yaml | 4 + .../sitemap/templates/sitemap.xml.twig | 2 + user/plugins/sitemap/vendor/autoload.php | 7 + .../sitemap/vendor/composer/ClassLoader.php | 445 ++ user/plugins/sitemap/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 10 + .../vendor/composer/autoload_namespaces.php | 9 + .../sitemap/vendor/composer/autoload_psr4.php | 10 + .../sitemap/vendor/composer/autoload_real.php | 55 + .../vendor/composer/autoload_static.php | 36 + .../sitemap/vendor/composer/installed.json | 1 + user/plugins/taxonomylist/CHANGELOG.md | 10 + user/plugins/taxonomylist/README.md | 2 +- user/plugins/taxonomylist/blueprints.yaml | 6 +- .../taxonomylist/classes/taxonomylist.php | 2 +- .../figureslibres/scss/theme/_sidebar.scss | 1 - webserver-configs/lighttpd.conf | 2 +- webserver-configs/nginx-ddev-site.conf | 140 +- 274 files changed, 11935 insertions(+), 4906 deletions(-) create mode 100644 system/aliases.php create mode 100644 system/src/Grav/Framework/Parsedown/Parsedown.php create mode 100644 system/src/Grav/Framework/Parsedown/ParsedownExtra.php create mode 100644 user/plugins/admin/themes/grav/templates/partials/noscript.html.twig create mode 100644 user/plugins/email/vendor/egulias/email-validator/psalm.baseline.xml create mode 100644 user/plugins/email/vendor/egulias/email-validator/psalm.xml delete mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/README create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/README.md delete mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/CharacterStream.php create mode 100644 user/plugins/form/templates/forms/layouts/button.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/field-variables.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/field.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/form.html.twig rename user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/{GoogleQRCodeProvider.php => ImageChartsQRCodeProvider.php} (78%) delete mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/ConvertUnixTimeDotComTimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/phpunit.xml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/phpunit.xml.tmppica create mode 100644 user/plugins/sitemap/classes/SitemapEntry.php delete mode 100644 user/plugins/sitemap/classes/sitemapentry.php create mode 100644 user/plugins/sitemap/composer.json create mode 100644 user/plugins/sitemap/composer.lock create mode 100644 user/plugins/sitemap/vendor/autoload.php create mode 100644 user/plugins/sitemap/vendor/composer/ClassLoader.php create mode 100644 user/plugins/sitemap/vendor/composer/LICENSE create mode 100644 user/plugins/sitemap/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/sitemap/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/sitemap/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/sitemap/vendor/composer/autoload_real.php create mode 100644 user/plugins/sitemap/vendor/composer/autoload_static.php create mode 100644 user/plugins/sitemap/vendor/composer/installed.json diff --git a/CHANGELOG.md b/CHANGELOG.md index ea3d604..bf61192 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,127 @@ +# v1.6.27 +## 09/01/2020 + +1. [](#improved) + * Right trim route for safety + * Use the proper ellipsis for summary [#2939](https://github.com/getgrav/grav/pull/2939) + * Left pad schedule times with zeros [#2921](https://github.com/getgrav/grav/pull/2921) + +# v1.6.26 +## 06/08/2020 + +1. [](#improved) + * Added new configuration option to control the supported attributes in markdown links [#2882](https://github.com/getgrav/grav/issues/2882) +1. [](#bugfix) + * Fixed blueprint for `system.pages.hide_empty_folders` [#1925](https://github.com/getgrav/grav/issues/2925) + * JSON Route of homepage with no ‘route’ set is valid + * Fix case-insensitive search of location header [form#425](https://github.com/getgrav/grav-plugin-form/issues/425) + +# v1.6.25 +## 05/14/2020 + +1. [](#improved) + * Added system configuration support for `HTTP_X_Forwarded` headers (host disabled by default) + * Updated `PHPUserAgentParser` to 1.0.0 + * Bump `Go` to version 1.13 in `travis.yaml` + +# v1.6.24 +## 04/27/2020 + +1. [](#improved) + * Added support for `X-Forwarded-Host` [#2891](https://github.com/getgrav/grav/pull/2891) + * Disable XDebug in Travis builds + +# v1.6.23 +## 03/19/2020 + +1. [](#new) + * Moved `Parsedown` 1.6 and `ParsedownExtra` 0.7 into `Grav\Framework\Parsedown` to allow fixes + * Added `aliases.php` with references to direct `\Parsedown` and `\ParsedownExtra` references +1. [](#improved) + * Upgraded `jQuery` to latest 3.4.1 version [#2859](https://github.com/getgrav/grav/issues/2859) +1. [](#bugfix) + * Fixed PHP 7.4 issue in ParsedownExtra [#2832](https://github.com/getgrav/grav/issues/2832) + * Fix for [user reported](https://twitter.com/OriginalSicksec) CVE path-based open redirect + * Fix for `stream_set_option` error with PHP 7.4 via Toolbox#28 [#2850](https://github.com/getgrav/grav/issues/2850) + +# v1.6.22 +## 03/05/2020 + +1. [](#new) + * Added `Pages::reset()` method +1. [](#improved) + * Updated Negotiation library to address issues [#2513](https://github.com/getgrav/grav/issues/2513) +1. [](#bugfix) + * Fixed issue with search plugins not being able to switch between page translations + * Fixed issues with `Pages::baseRoute()` not picking up active language reliably + * Reverted `validation: strict` fix as it breaks sites, see [#1273](https://github.com/getgrav/grav/issues/1273) + +# v1.6.21 +## 02/11/2020 + +1. [](#new) + * Added `ConsoleCommand::setLanguage()` method to set language to be used from CLI + * Added `ConsoleCommand::initializeGrav()` method to properly set up Grav instance to be used from CLI + * Added `ConsoleCommand::initializePlugins()`method to properly set up all plugins to be used from CLI + * Added `ConsoleCommand::initializeThemes()`method to properly set up current theme to be used from CLI + * Added `ConsoleCommand::initializePages()` method to properly set up pages to be used from CLI +1. [](#improved) + * Vendor updates +1. [](#bugfix) + * Fixed `bin/plugin` CLI calling `$themes->init()` way too early (removed it, use above methods instead) + * Fixed call to `$grav['page']` crashing CLI + * Fixed encoding problems when PHP INI setting `default_charset` is not `utf-8` [#2154](https://github.com/getgrav/grav/issues/2154) + +# v1.6.20 +## 02/03/2020 + +1. [](#bugfix) + * Fixed incorrect routing caused by `str_replace()` in `Uri::init()` [#2754](https://github.com/getgrav/grav/issues/2754) + * Fixed session cookie is being set twice in the HTTP header [#2745](https://github.com/getgrav/grav/issues/2745) + * Fixed session not restarting if user was invalid (downgrading from Grav 1.7) + * Fixed filesystem iterator calls with non-existing folders + * Fixed `checkbox` field not being saved, requires also Form v4.0.2 [#1225](https://github.com/getgrav/grav/issues/1225) + * Fixed `validation: strict` not working in blueprints [#1273](https://github.com/getgrav/grav/issues/1273) + * Fixed `Data::filter()` removing empty fields (such as empty list) by default [#2805](https://github.com/getgrav/grav/issues/2805) + * Fixed fatal error with non-integer page param value [#2803](https://github.com/getgrav/grav/issues/2803) + * Fixed `Assets::addInlineJs()` parameter type mismatch between v1.5 and v1.6 [#2659](https://github.com/getgrav/grav/issues/2659) + * Fixed `site.metadata` saving issues [#2615](https://github.com/getgrav/grav/issues/2615) + +# v1.6.19 +## 12/04/2019 + +1. [](#new) + * Catch PHP 7.4 deprecation messages and report them in debugbar instead of throwing fatal error +1. [](#bugfix) + * Fixed fatal error when calling `{{ grav.undefined }}` + * Fixed multiple issues when there are no pages in the site + * PHP 7.4 fix for [#2750](https://github.com/getgrav/grav/issues/2750) + +# v1.6.18 +## 12/02/2019 + +1. [](#bugfix) + * PHP 7.4 fix in `Pages::buildSort()` + * Updated vendor libraries for PHP 7.4 fixes in Twig and other libraries + * Fixed fatal error when `$page->id()` is null [#2731](https://github.com/getgrav/grav/pull/2731) + * Fixed cache conflicts on pages with no set id + * Fix rewrite rule for for `lighttpd` default config [#721](https://github.com/getgrav/grav/pull/2721) + +# v1.6.17 +## 11/06/2019 + +1. [](#new) + * Added working ETag (304 Not Modified) support based on the final rendered HTML +1. [](#improved) + * Safer file handling + customizable null char replacement in `CsvFormatter::decode()` + * Change of Behavior: `Inflector::hyphenize` will now automatically trim dashes at beginning and end of a string. + * Change in Behavior for `Folder::all()` so no longer fails if trying to copy non-existent dot file [#2581](https://github.com/getgrav/grav/pull/2581) + * renamed composer `test-plugins` script to `phpstan-plugins` to be more explicit [#2637](https://github.com/getgrav/grav/pull/2637) +1. [](#bugfix) + * Fixed PHP 7.1 bug in FlexMedia + * Fix cache image generation when using cropResize [#2639](https://github.com/getgrav/grav/pull/2639) + * Fix `array_merge()` exception with non-array page header metadata [#2701](https://github.com/getgrav/grav/pull/2701) + # v1.6.16 ## 09/19/2019 @@ -35,7 +159,7 @@ * Support new GRAV_BASEDIR environment variable [#2541](https://github.com/getgrav/grav/pull/2541) * Allow users to override plugin handler priorities [#2165](https://github.com/getgrav/grav/pull/2165) 1. [](#improved) - * Use new `Utils::getSupportedPageTypes()` to enforce `html,htm` at the front of the list [#2531](https://github.com/getgrav/grav/issues/2531) + * Use new `Utils::getSupportedPageTypes()` to enforce `html,htm` at the front of the list [#2531](https://github.com/getgrav/grav/issues/2531) * Updated vendor libraries * Markdown filter is now page-aware so that it works with modular references [admin#1731](https://github.com/getgrav/grav-plugin-admin/issues/1731) * Check of `GRAV_USER_INSTANCE` constant is already defined [#2621](https://github.com/getgrav/grav/pull/2621) @@ -54,7 +178,7 @@ * Fixed `FlexObject::exists()` failing sometimes just after the object has been saved * Fixed CSV formatter not encoding strings with `"` and `,` properly * Fixed var order in `Validation.php` [#2610](https://github.com/getgrav/grav/issues/2610) - + # v1.6.11 ## 06/21/2019 @@ -85,7 +209,7 @@ * Fixed regression with `bin/plugin` not listing the plugins available (1c725c0) * Fixed bitwise operator in `TwigExtension::exifFunc()` [#2518](https://github.com/getgrav/grav/issues/2518) * Fixed issue with lang prefix incorrectly identifying as admin [#2511](https://github.com/getgrav/grav/issues/2511) - * Fixed issue with `U0ils::pathPrefixedBYLanguageCode()` and trailing slash [#2510](https://github.com/getgrav/grav/issues/2511) + * Fixed issue with `U0ils::pathPrefixedBYLanguageCode()` and trailing slash [#2510](https://github.com/getgrav/grav/issues/2511) * Fixed regresssion issue of `Utils::Url()` not returning `false` on failure. Added new optional `fail_gracefully` 3rd attribute to return string that caused failure [#2524](https://github.com/getgrav/grav/issues/2524) # v1.6.9 diff --git a/bin/gpm b/bin/gpm index 7ad1e4a..592bb83 100755 --- a/bin/gpm +++ b/bin/gpm @@ -28,6 +28,13 @@ if (!ini_get('date.timezone')) { date_default_timezone_set('UTC'); } +// Set internal encoding. +if (!\extension_loaded('mbstring')) { + die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); +} +@ini_set('default_charset', 'UTF-8'); +mb_internal_encoding('UTF-8'); + if (!file_exists(GRAV_ROOT . '/index.php')) { exit('FATAL: Must be run from ROOT directory of Grav!'); } @@ -55,7 +62,7 @@ $grav->setup($environment); $grav['config']->init(); $grav['uri']->init(); -$grav['users']; +$grav['accounts']; $app = new Application('Grav Package Manager', GRAV_VERSION); $app->addCommands(array( diff --git a/bin/grav b/bin/grav index 7120218..b1e4c90 100755 --- a/bin/grav +++ b/bin/grav @@ -25,6 +25,17 @@ if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) { exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req)); } +if (!ini_get('date.timezone')) { + date_default_timezone_set('UTC'); +} + +// Set internal encoding. +if (!\extension_loaded('mbstring')) { + die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); +} +@ini_set('default_charset', 'UTF-8'); +mb_internal_encoding('UTF-8'); + $climate = new League\CLImate\CLImate; $climate->arguments->add([ 'environment' => [ @@ -42,10 +53,6 @@ $environment = $climate->arguments->get('environment'); $grav = Grav::instance(array('loader' => $autoload)); $grav->setup($environment); -if (!ini_get('date.timezone')) { - date_default_timezone_set('UTC'); -} - if (!file_exists(GRAV_ROOT . '/index.php')) { exit('FATAL: Must be run from ROOT directory of Grav!'); } diff --git a/bin/plugin b/bin/plugin index 3c431e3..737eb91 100755 --- a/bin/plugin +++ b/bin/plugin @@ -32,6 +32,13 @@ if (!ini_get('date.timezone')) { date_default_timezone_set('UTC'); } +// Set internal encoding. +if (!\extension_loaded('mbstring')) { + die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); +} +@ini_set('default_charset', 'UTF-8'); +mb_internal_encoding('UTF-8'); + if (!file_exists(GRAV_ROOT . '/index.php')) { exit('FATAL: Must be run from ROOT directory of Grav!'); } @@ -51,12 +58,7 @@ $environment = $climate->arguments->get('environment'); $grav = Grav::instance(array('loader' => $autoload)); $grav->setup($environment); - -$grav['config']->init(); -$grav['uri']->init(); -$grav['users']; -$grav['plugins']->init(); -$grav['themes']->init(); +$grav->initializeCli(); $app = new Application('Grav Plugins Commands', GRAV_VERSION); $pattern = '([A-Z]\w+Command\.php)'; diff --git a/composer.json b/composer.json index 60ca21a..e6aa022 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,13 @@ "name": "getgrav/grav", "type": "project", "description": "Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS", - "keywords": ["cms","flat-file cms","flat cms","flatfile cms","php"], + "keywords": [ + "cms", + "flat-file cms", + "flat cms", + "flatfile cms", + "php" + ], "homepage": "https://getgrav.org", "license": "MIT", "require": { @@ -16,17 +22,12 @@ "symfony/polyfill-iconv": "^1.9", "symfony/polyfill-php72": "^1.9", "symfony/polyfill-php73": "^1.9", - "psr/simple-cache": "^1.0", "psr/http-message": "^1.0", "psr/http-server-middleware": "^1.0", - "kodus/psr7-server": "*", "nyholm/psr7": "^1.0", - "twig/twig": "~1.40", - "erusev/parsedown": "1.6.4", - "erusev/parsedown-extra": "~0.7", "symfony/yaml": "~4.2.0", "symfony/console": "~4.2.0", "symfony/event-dispatcher": "~4.2.0", @@ -36,13 +37,12 @@ "doctrine/collections": "^1.5", "guzzlehttp/psr7": "^1.4", "filp/whoops": "~2.2", - "matthiasmullie/minify": "^1.3", "monolog/monolog": "~1.0", "gregwar/image": "2.*", - "donatj/phpuseragentparser": "~0.10", + "donatj/phpuseragentparser": "~1.0", "pimple/pimple": "~3.2", - "rockettheme/toolbox": "~1.4", + "rockettheme/toolbox": "~1.4.0", "maximebf/debugbar": "~1.15", "league/climate": "^3.4", "antoligy/dom-string-iterators": "^1.0", @@ -50,7 +50,7 @@ "composer/ca-bundle": "^1.0", "dragonmantank/cron-expression": "^1.2", "phive/twig-extensions-deferred": "^1.0", - "willdurand/negotiation": "^2.3" + "willdurand/negotiation": "2.x-dev" }, "require-dev": { "codeception/codeception": "^2.4", @@ -83,10 +83,15 @@ "psr-4": { "Grav\\": "system/src/Grav" }, - "files": ["system/defines.php"] + "files": [ + "system/defines.php", + "system/aliases.php" + ] }, "archive": { - "exclude": ["VERSION"] + "exclude": [ + "VERSION" + ] }, "scripts": { "api-16": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.16.md", @@ -94,7 +99,7 @@ "post-create-project-cmd": "bin/grav install", "phpstan": "vendor/bin/phpstan analyse -l 2 -c ./tests/phpstan/phpstan.neon system/src --memory-limit=256M", "phpstan-framework": "vendor/bin/phpstan analyse -l 5 -c ./tests/phpstan/phpstan.neon system/src/Grav/Framework --memory-limit=256M", - "test-plugins": "vendor/bin/phpstan analyse -l 0 -c ./tests/phpstan/plugins.neon user/plugins --memory-limit=256M", + "phpstan-plugins": "vendor/bin/phpstan analyse -l 0 -c ./tests/phpstan/plugins.neon user/plugins --memory-limit=256M", "test": "vendor/bin/codecept run unit", "test-windows": "vendor\\bin\\codecept run unit" }, diff --git a/composer.lock b/composer.lock index 647b081..10f35c0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "171fc8a6af028b50024e0f5f8c3eca82", + "content-hash": "40dbb242443086c99aa47ea8ca366d67", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -52,16 +52,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.3", + "version": "1.2.6", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5" + "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/f26a67e397be0e5c00d7c52ec7b5010098e15ce5", - "reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/47fe531de31fca4a1b997f87308e7d7804348f7e", + "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e", "shasum": "" }, "require": { @@ -72,7 +72,7 @@ "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", "psr/log": "^1.0", - "symfony/process": "^2.5 || ^3.0 || ^4.0" + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", "extra": { @@ -104,20 +104,20 @@ "ssl", "tls" ], - "time": "2019-08-02T09:05:43+00:00" + "time": "2020-01-13T10:02:55+00:00" }, { "name": "doctrine/cache", - "version": "v1.8.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57" + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57", - "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57", + "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", "shasum": "" }, "require": { @@ -128,7 +128,7 @@ }, "require-dev": { "alcaeus/mongo-php-adapter": "^1.1", - "doctrine/coding-standard": "^4.0", + "doctrine/coding-standard": "^6.0", "mongodb/mongodb": "^1.1", "phpunit/phpunit": "^7.0", "predis/predis": "~1.0" @@ -139,7 +139,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.9.x-dev" } }, "autoload": { @@ -152,6 +152,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -160,10 +164,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -173,26 +173,33 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "https://www.doctrine-project.org", + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", "keywords": [ + "abstraction", + "apcu", "cache", - "caching" + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" ], - "time": "2018-08-21T18:01:43+00:00" + "time": "2019-11-29T15:36:20+00:00" }, { "name": "doctrine/collections", - "version": "v1.6.2", + "version": "1.6.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be" + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/c5e0bc17b1620e97c968ac409acbff28b8b850be", - "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "shasum": "" }, "require": { @@ -220,6 +227,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -228,10 +239,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -249,27 +256,27 @@ "iterators", "php" ], - "time": "2019-06-09T13:48:14+00:00" + "time": "2019-11-13T13:07:11+00:00" }, { "name": "donatj/phpuseragentparser", - "version": "v0.13.0", + "version": "v1.0.0", "source": { "type": "git", "url": "https://github.com/donatj/PhpUserAgent.git", - "reference": "5f2da266d2a386f9b231d4344ae37baf7a467c2d" + "reference": "1431382850017ac017d194f2a6f6cacb35212888" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/5f2da266d2a386f9b231d4344ae37baf7a467c2d", - "reference": "5f2da266d2a386f9b231d4344ae37baf7a467c2d", + "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/1431382850017ac017d194f2a6f6cacb35212888", + "reference": "1431382850017ac017d194f2a6f6cacb35212888", "shasum": "" }, "require": { "php": ">=5.3.0" }, "require-dev": { - "camspiers/json-pretty": "0.1.*", + "camspiers/json-pretty": "~1.0", "donatj/drop": "*", "phpunit/phpunit": "~4.8" }, @@ -277,7 +284,10 @@ "autoload": { "files": [ "src/UserAgentParser.php" - ] + ], + "psr-4": { + "donatj\\UserAgent\\": "src/UserAgent" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -286,9 +296,9 @@ "authors": [ { "name": "Jesse G. Donat", - "role": "Developer", "email": "donatj@gmail.com", - "homepage": "http://donatstudios.com" + "homepage": "https://donatstudios.com", + "role": "Developer" } ], "description": "Lightning fast, minimalist PHP UserAgent string parser.", @@ -300,7 +310,17 @@ "user agent", "useragent" ], - "time": "2019-03-08T20:52:23+00:00" + "funding": [ + { + "url": "https://www.paypal.me/donatj/15", + "type": "custom" + }, + { + "url": "https://github.com/donatj", + "type": "github" + } + ], + "time": "2020-04-24T18:07:07+00:00" }, { "name": "dragonmantank/cron-expression", @@ -346,107 +366,18 @@ ], "time": "2017-01-23T04:29:33+00:00" }, - { - "name": "erusev/parsedown", - "version": "1.6.4", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/fbe3fe878f4fe69048bb8a52783a09802004f548", - "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "type": "library", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "time": "2017-11-14T20:44:03+00:00" - }, - { - "name": "erusev/parsedown-extra", - "version": "0.7.1", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown-extra.git", - "reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c", - "reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c", - "shasum": "" - }, - "require": { - "erusev/parsedown": "~1.4" - }, - "type": "library", - "autoload": { - "psr-0": { - "ParsedownExtra": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "An extension of Parsedown that adds support for Markdown Extra.", - "homepage": "https://github.com/erusev/parsedown-extra", - "keywords": [ - "markdown", - "markdown extra", - "parsedown", - "parser" - ], - "time": "2015-11-01T10:19:22+00:00" - }, { "name": "filp/whoops", - "version": "2.5.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96" + "reference": "fff6f1e4f36be0e0d0b84d66b413d9dcb0c49130" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/cde50e6720a39fdacb240159d3eea6865d51fd96", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96", + "url": "https://api.github.com/repos/filp/whoops/zipball/fff6f1e4f36be0e0d0b84d66b413d9dcb0c49130", + "reference": "fff6f1e4f36be0e0d0b84d66b413d9dcb0c49130", "shasum": "" }, "require": { @@ -455,8 +386,8 @@ }, "require-dev": { "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -465,7 +396,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.6-dev" } }, "autoload": { @@ -480,8 +411,8 @@ "authors": [ { "name": "Filipe Dobreira", - "role": "Developer", - "homepage": "https://github.com/filp" + "homepage": "https://github.com/filp", + "role": "Developer" } ], "description": "php error handling for cool kids", @@ -494,7 +425,7 @@ "throwable", "whoops" ], - "time": "2019-08-07T09:00:00+00:00" + "time": "2020-01-15T10:00:00+00:00" }, { "name": "gregwar/cache", @@ -719,16 +650,16 @@ }, { "name": "league/climate", - "version": "3.5.0", + "version": "3.5.2", "source": { "type": "git", "url": "https://github.com/thephpleague/climate.git", - "reference": "0d2fdbf8829f60f6ba6433df68d6f3fe1271b8e6" + "reference": "6b53a28a58ad9f5f63042e291eb870cf0d02a9c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/climate/zipball/0d2fdbf8829f60f6ba6433df68d6f3fe1271b8e6", - "reference": "0d2fdbf8829f60f6ba6433df68d6f3fe1271b8e6", + "url": "https://api.github.com/repos/thephpleague/climate/zipball/6b53a28a58ad9f5f63042e291eb870cf0d02a9c9", + "reference": "6b53a28a58ad9f5f63042e291eb870cf0d02a9c9", "shasum": "" }, "require": { @@ -756,16 +687,16 @@ ], "authors": [ { - "name": "Craig Duncan", - "role": "Developer", - "email": "git@duncanc.co.uk", - "homepage": "https://github.com/duncan3dc" + "name": "Joe Tannenbaum", + "email": "hey@joe.codes", + "homepage": "http://joe.codes/", + "role": "Developer" }, { - "name": "Joe Tannenbaum", - "role": "Developer", - "email": "hey@joe.codes", - "homepage": "http://joe.codes/" + "name": "Craig Duncan", + "email": "git@duncanc.co.uk", + "homepage": "https://github.com/duncan3dc", + "role": "Developer" } ], "description": "PHP's best friend for the terminal. CLImate allows you to easily output colored text, special formats, and more.", @@ -776,20 +707,20 @@ "php", "terminal" ], - "time": "2019-02-10T18:25:19+00:00" + "time": "2019-12-01T15:25:43+00:00" }, { "name": "matthiasmullie/minify", - "version": "1.3.61", + "version": "1.3.63", "source": { "type": "git", "url": "https://github.com/matthiasmullie/minify.git", - "reference": "d5acb8ce5b6acb7d11bafe97cecc533f6e4fd751" + "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/d5acb8ce5b6acb7d11bafe97cecc533f6e4fd751", - "reference": "d5acb8ce5b6acb7d11bafe97cecc533f6e4fd751", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117", + "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117", "shasum": "" }, "require": { @@ -822,9 +753,9 @@ "authors": [ { "name": "Matthias Mullie", - "role": "Developer", "email": "minify@mullie.eu", - "homepage": "http://www.mullie.eu" + "homepage": "http://www.mullie.eu", + "role": "Developer" } ], "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", @@ -836,20 +767,20 @@ "minifier", "minify" ], - "time": "2018-11-26T23:10:39+00:00" + "time": "2020-01-21T20:21:08+00:00" }, { "name": "matthiasmullie/path-converter", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/matthiasmullie/path-converter.git", - "reference": "5e4b121c8b9f97c80835c1d878b0812ba1d607c9" + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/5e4b121c8b9f97c80835c1d878b0812ba1d607c9", - "reference": "5e4b121c8b9f97c80835c1d878b0812ba1d607c9", + "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9", "shasum": "" }, "require": { @@ -872,9 +803,9 @@ "authors": [ { "name": "Matthias Mullie", - "role": "Developer", "email": "pathconverter@mullie.eu", - "homepage": "http://www.mullie.eu" + "homepage": "http://www.mullie.eu", + "role": "Developer" } ], "description": "Relative path converter", @@ -885,29 +816,29 @@ "paths", "relative" ], - "time": "2018-10-25T15:19:41+00:00" + "time": "2019-02-05T23:41:09+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.15.0", + "version": "v1.16.1", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07" + "reference": "58998b818c6567fac01e35b8a4b70c1a64530556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/30e7d60937ee5f1320975ca9bc7bcdd44d500f07", - "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/58998b818c6567fac01e35b8a4b70c1a64530556", + "reference": "58998b818c6567fac01e35b8a4b70c1a64530556", "shasum": "" }, "require": { - "php": ">=5.3.0", + "php": "^7.1", "psr/log": "^1.0", - "symfony/var-dumper": "^2.6|^3.0|^4.0" + "symfony/var-dumper": "^2.6|^3|^4|^5" }, "require-dev": { - "phpunit/phpunit": "^4.0|^5.0" + "phpunit/phpunit": "^5" }, "suggest": { "kriswallsmith/assetic": "The best way to manage assets", @@ -917,7 +848,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -946,7 +877,7 @@ "debug", "debugbar" ], - "time": "2017-12-15T11:13:46+00:00" + "time": "2019-11-24T09:46:11+00:00" }, { "name": "miljar/php-exif", @@ -990,8 +921,8 @@ "authors": [ { "name": "Tom Van Herreweghe", - "role": "Developer", - "homepage": "http://theanalogguy.be" + "homepage": "http://theanalogguy.be", + "role": "Developer" } ], "description": "Object-Oriented EXIF parsing", @@ -1006,16 +937,16 @@ }, { "name": "monolog/monolog", - "version": "1.24.0", + "version": "1.25.3", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", "shasum": "" }, "require": { @@ -1080,20 +1011,20 @@ "logging", "psr-3" ], - "time": "2018-11-05T09:00:11+00:00" + "time": "2019-12-20T14:15:16+00:00" }, { "name": "nyholm/psr7", - "version": "1.1.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7.git", - "reference": "701fe7ea8c12c07b985b156d589134d328160cf7" + "reference": "55ff6b76573f5b242554c9775792bd59fb52e11c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/701fe7ea8c12c07b985b156d589134d328160cf7", - "reference": "701fe7ea8c12c07b985b156d589134d328160cf7", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/55ff6b76573f5b242554c9775792bd59fb52e11c", + "reference": "55ff6b76573f5b242554c9775792bd59fb52e11c", "shasum": "" }, "require": { @@ -1142,7 +1073,7 @@ "psr-17", "psr-7" ], - "time": "2019-02-16T17:20:43+00:00" + "time": "2019-09-05T13:24:16+00:00" }, { "name": "phive/twig-extensions-deferred", @@ -1592,16 +1523,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "shasum": "" }, "require": { @@ -1610,7 +1541,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -1635,7 +1566,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "psr/simple-cache", @@ -1727,16 +1658,16 @@ }, { "name": "rockettheme/toolbox", - "version": "1.4.6", + "version": "1.4.7", "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "e7010c2a956aff241dfa100ab8aef5b6cf83892a" + "reference": "6a86bc0607884d2194260b6b72d67333e0141585" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/e7010c2a956aff241dfa100ab8aef5b6cf83892a", - "reference": "e7010c2a956aff241dfa100ab8aef5b6cf83892a", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/6a86bc0607884d2194260b6b72d67333e0141585", + "reference": "6a86bc0607884d2194260b6b72d67333e0141585", "shasum": "" }, "require": { @@ -1773,7 +1704,7 @@ "php", "rockettheme" ], - "time": "2019-03-20T19:59:17+00:00" + "time": "2020-03-19T18:24:40+00:00" }, { "name": "seld/cli-prompt", @@ -1825,7 +1756,7 @@ }, { "name": "symfony/console", - "version": "v4.2.11", + "version": "v4.2.12", "source": { "type": "git", "url": "https://github.com/symfony/console.git", @@ -1897,16 +1828,16 @@ }, { "name": "symfony/contracts", - "version": "v1.1.5", + "version": "v1.1.8", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "3f3f796d5f24a098a9da62828b8daa1b11494c1b" + "reference": "f51bca9de06b7a25b19a4155da7bebad099a5def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/3f3f796d5f24a098a9da62828b8daa1b11494c1b", - "reference": "3f3f796d5f24a098a9da62828b8daa1b11494c1b", + "url": "https://api.github.com/repos/symfony/contracts/zipball/f51bca9de06b7a25b19a4155da7bebad099a5def", + "reference": "f51bca9de06b7a25b19a4155da7bebad099a5def", "shasum": "" }, "require": { @@ -1970,11 +1901,11 @@ "interoperability", "standards" ], - "time": "2019-06-20T06:46:26+00:00" + "time": "2019-11-07T12:44:51+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.2.11", + "version": "v4.2.12", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -2038,16 +1969,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.12.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", "shasum": "" }, "require": { @@ -2059,7 +1990,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -2092,20 +2023,20 @@ "polyfill", "portable" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.12.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "685968b11e61a347c18bf25db32effa478be610f" + "reference": "926832ce51059bb58211b7b2080a88e0c3b5328e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/685968b11e61a347c18bf25db32effa478be610f", - "reference": "685968b11e61a347c18bf25db32effa478be610f", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/926832ce51059bb58211b7b2080a88e0c3b5328e", + "reference": "926832ce51059bb58211b7b2080a88e0c3b5328e", "shasum": "" }, "require": { @@ -2117,7 +2048,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -2151,20 +2082,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.12.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", "shasum": "" }, "require": { @@ -2176,7 +2107,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -2210,20 +2141,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.12.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "04ce3335667451138df4307d6a9b61565560199e" + "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", - "reference": "04ce3335667451138df4307d6a9b61565560199e", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", + "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", "shasum": "" }, "require": { @@ -2232,7 +2163,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -2265,20 +2196,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.12.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", - "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", "shasum": "" }, "require": { @@ -2287,7 +2218,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -2323,11 +2254,11 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/process", - "version": "v4.2.11", + "version": "v4.2.12", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -2376,7 +2307,7 @@ }, { "name": "symfony/var-dumper", - "version": "v4.2.11", + "version": "v4.2.12", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", @@ -2452,7 +2383,7 @@ }, { "name": "symfony/yaml", - "version": "v4.2.11", + "version": "v4.2.12", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", @@ -2511,26 +2442,25 @@ }, { "name": "twig/twig", - "version": "v1.42.2", + "version": "v1.42.5", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4" + "reference": "87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/21707d6ebd05476854805e4f91b836531941bcd4", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e", + "reference": "87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e", "shasum": "" }, "require": { - "php": ">=5.4.0", + "php": ">=5.5.0", "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "psr/container": "^1.0", - "symfony/debug": "^2.7", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0" + "symfony/phpunit-bridge": "^4.4|^5.0" }, "type": "library", "extra": { @@ -2553,19 +2483,18 @@ "authors": [ { "name": "Fabien Potencier", - "role": "Lead Developer", "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org" - }, - { - "name": "Armin Ronacher", - "role": "Project Founder", - "email": "armin.ronacher@active-4.com" + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" }, { "name": "Twig Team", - "role": "Contributors", - "homepage": "https://twig.symfony.com/contributors" + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" } ], "description": "Twig, the flexible, fast, and secure template language for PHP", @@ -2573,20 +2502,20 @@ "keywords": [ "templating" ], - "time": "2019-06-18T15:35:16+00:00" + "time": "2020-02-11T05:59:23+00:00" }, { "name": "willdurand/negotiation", - "version": "v2.3.1", + "version": "2.x-dev", "source": { "type": "git", "url": "https://github.com/willdurand/Negotiation.git", - "reference": "03436ededa67c6e83b9b12defac15384cb399dc9" + "reference": "cf78c9ac47e8e1e141bf609c71e9e2c3a7780dcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/03436ededa67c6e83b9b12defac15384cb399dc9", - "reference": "03436ededa67c6e83b9b12defac15384cb399dc9", + "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/cf78c9ac47e8e1e141bf609c71e9e2c3a7780dcf", + "reference": "cf78c9ac47e8e1e141bf609c71e9e2c3a7780dcf", "shasum": "" }, "require": { @@ -2625,22 +2554,22 @@ "header", "negotiation" ], - "time": "2017-05-14T17:21:12+00:00" + "time": "2017-08-04T15:54:30+00:00" } ], "packages-dev": [ { "name": "behat/gherkin", - "version": "v4.6.0", + "version": "v4.6.2", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" + "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", + "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", "shasum": "" }, "require": { @@ -2686,7 +2615,7 @@ "gherkin", "parser" ], - "time": "2019-01-16T14:22:17+00:00" + "time": "2020-03-17T14:03:26+00:00" }, { "name": "codeception/codeception", @@ -2782,16 +2711,16 @@ }, { "name": "codeception/phpunit-wrapper", - "version": "7.7.1", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "ab04a956264291505ea84998f43cf91639b4575d" + "reference": "bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/ab04a956264291505ea84998f43cf91639b4575d", - "reference": "ab04a956264291505ea84998f43cf91639b4575d", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a", + "reference": "bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a", "shasum": "" }, "require": { @@ -2821,7 +2750,7 @@ } ], "description": "PHPUnit classes used by Codeception", - "time": "2019-02-26T20:35:32+00:00" + "time": "2019-12-23T06:55:58+00:00" }, { "name": "codeception/stub", @@ -2855,24 +2784,24 @@ }, { "name": "composer/xdebug-handler", - "version": "1.3.3", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", - "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" }, "type": "library", "autoload": { @@ -2890,25 +2819,31 @@ "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Restarts a process without xdebug.", + "description": "Restarts a process without Xdebug.", "keywords": [ "Xdebug", "performance" ], - "time": "2019-05-27T17:52:04+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + } + ], + "time": "2020-03-01T12:26:26+00:00" }, { "name": "doctrine/instantiator", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { @@ -2951,19 +2886,19 @@ "constructor", "instantiate" ], - "time": "2019-03-17T17:37:11+00:00" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "facebook/webdriver", "version": "1.7.1", "source": { "type": "git", - "url": "https://github.com/facebook/php-webdriver.git", + "url": "https://github.com/php-webdriver/php-webdriver-archive.git", "reference": "e43de70f3c7166169d0f14a374505392734160e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/e43de70f3c7166169d0f14a374505392734160e5", + "url": "https://api.github.com/repos/php-webdriver/php-webdriver-archive/zipball/e43de70f3c7166169d0f14a374505392734160e5", "reference": "e43de70f3c7166169d0f14a374505392734160e5", "shasum": "" }, @@ -3011,20 +2946,21 @@ "selenium", "webdriver" ], + "abandoned": "php-webdriver/webdriver", "time": "2019-06-13T08:02:18+00:00" }, { "name": "fzaninotto/faker", - "version": "v1.8.0", + "version": "v1.9.1", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de" + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", "shasum": "" }, "require": { @@ -3033,12 +2969,12 @@ "require-dev": { "ext-intl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^1.5" + "squizlabs/php_codesniffer": "^2.9.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -3061,48 +2997,50 @@ "faker", "fixtures" ], - "time": "2018-07-12T10:23:15+00:00" + "time": "2019-12-12T13:22:17+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "version": "6.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", + "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", "shasum": "" }, "require": { + "ext-json": "*", "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", + "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5" }, "require-dev": { "ext-curl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" + "psr/log": "^1.1" }, "suggest": { + "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.3-dev" + "dev-master": "6.5-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3126,7 +3064,7 @@ "rest", "web service" ], - "time": "2018-04-22T15:46:56+00:00" + "time": "2019-12-23T11:57:10+00:00" }, { "name": "guzzlehttp/promises", @@ -3232,16 +3170,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.9.3", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { @@ -3276,20 +3214,20 @@ "object", "object graph" ], - "time": "2019-08-09T12:45:53+00:00" + "time": "2020-01-17T21:11:47+00:00" }, { "name": "nette/bootstrap", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/nette/bootstrap.git", - "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3" + "reference": "b45a1e33b6a44beb307756522396551e5a9ff249" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/bootstrap/zipball/e1075af05c211915e03e0c86542f3ba5433df4a3", - "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/b45a1e33b6a44beb307756522396551e5a9ff249", + "reference": "b45a1e33b6a44beb307756522396551e5a9ff249", "shasum": "" }, "require": { @@ -3297,6 +3235,9 @@ "nette/utils": "^3.0", "php": ">=7.1" }, + "conflict": { + "tracy/tracy": "<2.6" + }, "require-dev": { "latte/latte": "^2.2", "nette/application": "^3.0", @@ -3349,29 +3290,29 @@ "configurator", "nette" ], - "time": "2019-03-26T12:59:07+00:00" + "time": "2019-09-30T08:19:38+00:00" }, { "name": "nette/di", - "version": "v3.0.1", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d" + "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/4aff517a1c6bb5c36fa09733d4cea089f529de6d", - "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d", + "url": "https://api.github.com/repos/nette/di/zipball/77d69061cbf8f9cfb7363dd983136f51213d3e41", + "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41", "shasum": "" }, "require": { "ext-tokenizer": "*", "nette/neon": "^3.0", - "nette/php-generator": "^3.2.2", + "nette/php-generator": "^3.3.3", "nette/robot-loader": "^3.2", "nette/schema": "^1.0", - "nette/utils": "^3.0", + "nette/utils": "^3.1", "php": ">=7.1" }, "conflict": { @@ -3379,6 +3320,7 @@ }, "require-dev": { "nette/tester": "^2.2", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", @@ -3390,16 +3332,13 @@ "autoload": { "classmap": [ "src/" - ], - "files": [ - "src/compatibility.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -3422,24 +3361,24 @@ "nette", "static" ], - "time": "2019-08-07T12:11:33+00:00" + "time": "2020-01-20T12:14:54+00:00" }, { "name": "nette/finder", - "version": "v2.5.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/nette/finder.git", - "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2" + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/6be1b83ea68ac558aff189d640abe242e0306fe2", - "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2", + "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ~3.0.0", + "nette/utils": "^2.4 || ^3.0", "php": ">=7.1" }, "conflict": { @@ -3447,6 +3386,7 @@ }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", @@ -3476,7 +3416,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "? Nette Finder: find files and directories with an intuitive API.", + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", "homepage": "https://nette.org", "keywords": [ "filesystem", @@ -3484,35 +3424,36 @@ "iterator", "nette" ], - "time": "2019-02-28T18:13:25+00:00" + "time": "2020-01-03T20:35:40+00:00" }, { "name": "nette/neon", - "version": "v3.0.0", + "version": "v3.1.2", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb" + "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb", - "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "url": "https://api.github.com/repos/nette/neon/zipball/3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e", + "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e", "shasum": "" }, "require": { "ext-iconv": "*", "ext-json": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -3523,8 +3464,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -3536,8 +3477,8 @@ "homepage": "https://nette.org/contributors" } ], - "description": "? Nette NEON: encodes and decodes NEON file format.", - "homepage": "http://ne-on.org", + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "https://ne-on.org", "keywords": [ "export", "import", @@ -3545,34 +3486,35 @@ "nette", "yaml" ], - "time": "2019-02-05T21:30:40+00:00" + "time": "2020-03-04T11:47:04+00:00" }, { "name": "nette/php-generator", - "version": "v3.2.3", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "aea6e81437bb238e5f0e5b5ce06337433908e63b" + "reference": "8fe7e699dca7db186f56d75800cb1ec32e39c856" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/aea6e81437bb238e5f0e5b5ce06337433908e63b", - "reference": "aea6e81437bb238e5f0e5b5ce06337433908e63b", + "url": "https://api.github.com/repos/nette/php-generator/zipball/8fe7e699dca7db186f56d75800cb1ec32e39c856", + "reference": "8fe7e699dca7db186f56d75800cb1ec32e39c856", "shasum": "" }, "require": { - "nette/utils": "^2.4.2 || ~3.0.0", + "nette/utils": "^2.4.2 || ^3.0", "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3583,8 +3525,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -3596,7 +3538,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.4 features.", "homepage": "https://nette.org", "keywords": [ "code", @@ -3604,30 +3546,31 @@ "php", "scaffolding" ], - "time": "2019-07-05T13:01:56+00:00" + "time": "2020-02-09T14:39:09+00:00" }, { "name": "nette/robot-loader", - "version": "v3.2.0", + "version": "v3.2.3", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c" + "reference": "726c462e73e739e965ec654a667407074cfe83c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", - "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/726c462e73e739e965ec654a667407074cfe83c0", + "reference": "726c462e73e739e965ec654a667407074cfe83c0", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/finder": "^2.5", + "nette/finder": "^2.5 || ^3.0", "nette/utils": "^3.0", "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", @@ -3644,8 +3587,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -3657,7 +3600,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", "homepage": "https://nette.org", "keywords": [ "autoload", @@ -3666,35 +3609,34 @@ "nette", "trait" ], - "time": "2019-03-08T21:57:24+00:00" + "time": "2020-02-28T13:10:07+00:00" }, { "name": "nette/schema", - "version": "v1.0.0", + "version": "v1.0.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d" + "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d", - "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d", + "url": "https://api.github.com/repos/nette/schema/zipball/febf71fb4052c824046f5a33f4f769a6e7fa0cb4", + "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4", "shasum": "" }, "require": { - "nette/utils": "^3.0.1", + "nette/utils": "^3.1", "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.2", + "phpstan/phpstan-nette": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "branch-alias": [] }, "autoload": { "classmap": [ @@ -3723,20 +3665,20 @@ "config", "nette" ], - "time": "2019-04-03T15:53:25+00:00" + "time": "2020-01-06T22:52:48+00:00" }, { "name": "nette/utils", - "version": "v3.0.1", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "bd961f49b211997202bda1d0fbc410905be370d4" + "reference": "2c17d16d8887579ae1c0898ff94a3668997fd3eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/bd961f49b211997202bda1d0fbc410905be370d4", - "reference": "bd961f49b211997202bda1d0fbc410905be370d4", + "url": "https://api.github.com/repos/nette/utils/zipball/2c17d16d8887579ae1c0898ff94a3668997fd3eb", + "reference": "2c17d16d8887579ae1c0898ff94a3668997fd3eb", "shasum": "" }, "require": { @@ -3744,6 +3686,7 @@ }, "require-dev": { "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "suggest": { @@ -3752,12 +3695,13 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -3768,8 +3712,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -3799,20 +3743,20 @@ "utility", "validation" ], - "time": "2019-03-22T01:00:30+00:00" + "time": "2020-02-09T14:10:55+00:00" }, { "name": "nikic/php-parser", - "version": "v4.2.3", + "version": "v4.3.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "e612609022e935f3d0337c1295176505b41188c8" + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e612609022e935f3d0337c1295176505b41188c8", - "reference": "e612609022e935f3d0337c1295176505b41188c8", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "shasum": "" }, "require": { @@ -3820,6 +3764,7 @@ "php": ">=7.0" }, "require-dev": { + "ircmaxell/php-yacc": "0.0.5", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ @@ -3828,7 +3773,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -3850,20 +3795,20 @@ "parser", "php" ], - "time": "2019-08-12T20:17:41+00:00" + "time": "2019-11-08T13:50:10+00:00" }, { "name": "ocramius/package-versions", - "version": "1.4.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/Ocramius/PackageVersions.git", - "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb" + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", - "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", "shasum": "" }, "require": { @@ -3875,7 +3820,7 @@ "doctrine/coding-standard": "^5.0.1", "ext-zip": "*", "infection/infection": "^0.7.1", - "phpunit/phpunit": "^7.0.0" + "phpunit/phpunit": "^7.5.17" }, "type": "composer-plugin", "extra": { @@ -3900,7 +3845,7 @@ } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "time": "2019-02-21T12:16:21+00:00" + "time": "2019-11-15T16:17:10+00:00" }, { "name": "phar-io/manifest", @@ -3940,18 +3885,18 @@ "authors": [ { "name": "Arne Blankerts", - "role": "Developer", - "email": "arne@blankerts.de" + "email": "arne@blankerts.de", + "role": "Developer" }, { "name": "Sebastian Heuer", - "role": "Developer", - "email": "sebastian@phpeople.de" + "email": "sebastian@phpeople.de", + "role": "Developer" }, { "name": "Sebastian Bergmann", - "role": "Developer", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "Developer" } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", @@ -3987,18 +3932,18 @@ "authors": [ { "name": "Arne Blankerts", - "role": "Developer", - "email": "arne@blankerts.de" + "email": "arne@blankerts.de", + "role": "Developer" }, { "name": "Sebastian Heuer", - "role": "Developer", - "email": "sebastian@phpeople.de" + "email": "sebastian@phpeople.de", + "role": "Developer" }, { "name": "Sebastian Bergmann", - "role": "Developer", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "Developer" } ], "description": "Library for handling version information and constraints", @@ -4006,35 +3951,33 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", "shasum": "" }, "require": { - "php": ">=5.5" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "~6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4056,31 +3999,32 @@ "reflection", "static analysis" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2018-08-07T13:53:10+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.1", + "version": "4.3.4", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", "shasum": "" }, "require": { "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", "webmozart/assert": "^1.0" }, "require-dev": { - "doctrine/instantiator": "~1.0.5", + "doctrine/instantiator": "^1.0.5", "mockery/mockery": "^1.0", + "phpdocumentor/type-resolver": "0.4.*", "phpunit/phpunit": "^6.4" }, "type": "library", @@ -4107,41 +4051,40 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-04-30T17:48:53+00:00" + "time": "2019-12-28T18:55:12+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^7.1", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4154,37 +4097,38 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2019-08-22T18:11:29+00:00" }, { "name": "phpspec/prophecy", - "version": "1.8.1", + "version": "v1.10.3", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", + "phpspec/phpspec": "^2.5 || ^3.2", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { @@ -4217,7 +4161,7 @@ "spy", "stub" ], - "time": "2019-06-13T12:50:23+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -4268,16 +4212,16 @@ }, { "name": "phpstan/phpstan", - "version": "0.11.15", + "version": "0.11.19", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "1be5b3a706db16ac472a4c40ec03cf4c810b118d" + "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1be5b3a706db16ac472a4c40ec03cf4c810b118d", - "reference": "1be5b3a706db16ac472a4c40ec03cf4c810b118d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/63cc502f6957b7f74efbac444b4cf219dcadffd7", + "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7", "shasum": "" }, "require": { @@ -4285,6 +4229,7 @@ "jean85/pretty-package-versions": "^1.0.3", "nette/bootstrap": "^2.4 || ^3.0", "nette/di": "^2.4.7 || ^3.0", + "nette/neon": "^2.4.3 || ^3.0", "nette/robot-loader": "^3.0.1", "nette/schema": "^1.0", "nette/utils": "^2.4.5 || ^3.0", @@ -4329,8 +4274,7 @@ "autoload": { "psr-4": { "PHPStan\\": [ - "src/", - "build/PHPStan" + "src/" ] } }, @@ -4339,7 +4283,7 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", - "time": "2019-08-18T20:51:53+00:00" + "time": "2019-10-22T20:20:22+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -4442,8 +4386,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", @@ -4493,8 +4437,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "FilterIterator implementation that filters files based on a list of suffixes.", @@ -4535,8 +4479,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Simple template engine.", @@ -4584,8 +4528,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Utility class for timing", @@ -4597,16 +4541,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", "shasum": "" }, "require": { @@ -4642,20 +4586,20 @@ "keywords": [ "tokenizer" ], - "time": "2019-07-25T05:29:42+00:00" + "time": "2019-09-17T06:23:10+00:00" }, { "name": "phpunit/phpunit", - "version": "7.5.14", + "version": "7.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff" + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2834789aeb9ac182ad69bfdf9ae91856a59945ff", - "reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", "shasum": "" }, "require": { @@ -4715,8 +4659,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "The PHP Unit Testing framework.", @@ -4726,7 +4670,7 @@ "testing", "xunit" ], - "time": "2019-07-15T06:24:08+00:00" + "time": "2020-01-08T08:45:45+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4895,16 +4839,16 @@ }, { "name": "sebastian/environment", - "version": "4.2.2", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", "shasum": "" }, "require": { @@ -4944,20 +4888,20 @@ "environment", "hhvm" ], - "time": "2019-05-05T09:05:15+00:00" + "time": "2019-11-20T08:46:58+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "06a9a5947f47b3029d76118eb5c22802e5869687" + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687", - "reference": "06a9a5947f47b3029d76118eb5c22802e5869687", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "shasum": "" }, "require": { @@ -5011,7 +4955,7 @@ "export", "exporter" ], - "time": "2019-08-11T12:43:14+00:00" + "time": "2019-09-14T09:02:43+00:00" }, { "name": "sebastian/global-state", @@ -5286,8 +5230,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", @@ -5296,27 +5240,27 @@ }, { "name": "symfony/browser-kit", - "version": "v4.3.3", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "a29dd02a1f3f81b9a15c7730cc3226718ddb55ca" + "reference": "090ce406505149d6852a7c03b0346dec3b8cf612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/a29dd02a1f3f81b9a15c7730cc3226718ddb55ca", - "reference": "a29dd02a1f3f81b9a15c7730cc3226718ddb55ca", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/090ce406505149d6852a7c03b0346dec3b8cf612", + "reference": "090ce406505149d6852a7c03b0346dec3b8cf612", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/dom-crawler": "~3.4|~4.0" + "symfony/dom-crawler": "^3.4|^4.0|^5.0" }, "require-dev": { - "symfony/css-selector": "~3.4|~4.0", - "symfony/http-client": "^4.3", - "symfony/mime": "^4.3", - "symfony/process": "~3.4|~4.0" + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/process": "" @@ -5324,7 +5268,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5351,20 +5295,20 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2019-06-11T15:41:59+00:00" + "time": "2020-02-23T10:00:59+00:00" }, { "name": "symfony/css-selector", - "version": "v4.3.3", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d" + "reference": "d0a6dd288fa8848dcc3d1f58b94de6a7cc5d2d22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/105c98bb0c5d8635bea056135304bd8edcc42b4d", - "reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/d0a6dd288fa8848dcc3d1f58b94de6a7cc5d2d22", + "reference": "d0a6dd288fa8848dcc3d1f58b94de6a7cc5d2d22", "shasum": "" }, "require": { @@ -5373,7 +5317,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5404,20 +5348,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-01-16T21:53:39+00:00" + "time": "2020-02-04T09:01:01+00:00" }, { "name": "symfony/dom-crawler", - "version": "v4.3.3", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "291397232a2eefb3347eaab9170409981eaad0e2" + "reference": "11dcf08f12f29981bf770f097a5d64d65bce5929" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/291397232a2eefb3347eaab9170409981eaad0e2", - "reference": "291397232a2eefb3347eaab9170409981eaad0e2", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/11dcf08f12f29981bf770f097a5d64d65bce5929", + "reference": "11dcf08f12f29981bf770f097a5d64d65bce5929", "shasum": "" }, "require": { @@ -5430,7 +5374,7 @@ }, "require-dev": { "masterminds/html5": "^2.6", - "symfony/css-selector": "~3.4|~4.0" + "symfony/css-selector": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/css-selector": "" @@ -5438,7 +5382,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5465,20 +5409,34 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2019-06-13T11:03:18+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-29T10:05:28+00:00" }, { "name": "symfony/finder", - "version": "v4.3.3", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2" + "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9638d41e3729459860bb96f6247ccb61faaa45f2", - "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2", + "url": "https://api.github.com/repos/symfony/finder/zipball/ea69c129aed9fdeca781d4b77eb20b62cf5d5357", + "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357", "shasum": "" }, "require": { @@ -5487,7 +5445,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5514,7 +5472,21 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-06-28T13:16:30+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-14T07:42:58+00:00" }, { "name": "theseer/tokenizer", @@ -5549,8 +5521,8 @@ "authors": [ { "name": "Arne Blankerts", - "role": "Developer", - "email": "arne@blankerts.de" + "email": "arne@blankerts.de", + "role": "Developer" } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", @@ -5604,32 +5576,29 @@ }, { "name": "webmozart/assert", - "version": "1.4.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", "shasum": "" }, "require": { "php": "^5.3.3 || ^7.0", "symfony/polyfill-ctype": "^1.8" }, + "conflict": { + "vimeo/psalm": "<3.6.0" + }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -5651,12 +5620,13 @@ "check", "validate" ], - "time": "2018-12-25T11:19:39+00:00" + "time": "2020-02-14T12:15:55+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { + "willdurand/negotiation": 20, "victorjonsson/markdowndocs": 20 }, "prefer-stable": false, @@ -5673,5 +5643,6 @@ "platform-dev": [], "platform-overrides": { "php": "7.1.3" - } + }, + "plugin-api-version": "1.1.0" } diff --git a/fixperms.sh b/fixperms.sh index 7214c09..f61c353 100644 --- a/fixperms.sh +++ b/fixperms.sh @@ -1,5 +1,5 @@ #!/bin/sh -chown -R 1000:www-data . +chown -R 1000:http . find . -type f -exec chmod 664 {} \; find ./bin -type f -exec chmod 775 {} \; find . -type d -exec chmod 775 {} \; diff --git a/index.php b/index.php index 64154df..7be4df1 100644 --- a/index.php +++ b/index.php @@ -20,6 +20,16 @@ if (PHP_SAPI === 'cli-server' && !isset($_SERVER['PHP_CLI_ROUTER'])) { die("PHP webserver requires a router to run Grav, please use:
php -S {$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']} system/router.php
"); } +// Set timezone to default, falls back to system if php.ini not set +date_default_timezone_set(@date_default_timezone_get()); + +// Set internal encoding. +if (!\extension_loaded('mbstring')) { + die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); +} +@ini_set('default_charset', 'UTF-8'); +mb_internal_encoding('UTF-8'); + // Ensure vendor libraries exist $autoload = __DIR__ . '/vendor/autoload.php'; if (!is_file($autoload)) { @@ -32,15 +42,6 @@ $loader = require $autoload; use Grav\Common\Grav; use RocketTheme\Toolbox\Event\Event; -// Set timezone to default, falls back to system if php.ini not set -date_default_timezone_set(@date_default_timezone_get()); - -// Set internal encoding if mbstring loaded -if (!\extension_loaded('mbstring')) { - die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); -} -mb_internal_encoding('UTF-8'); - // Get the Grav instance $grav = Grav::instance( array( diff --git a/system/aliases.php b/system/aliases.php new file mode 100644 index 0000000..387f3a4 --- /dev/null +++ b/system/aliases.php @@ -0,0 +1,5 @@ +=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" {% endblock %} diff --git a/user/plugins/admin/themes/grav/templates/partials/base-root.html.twig b/user/plugins/admin/themes/grav/templates/partials/base-root.html.twig index d48362c..1180cd4 100644 --- a/user/plugins/admin/themes/grav/templates/partials/base-root.html.twig +++ b/user/plugins/admin/themes/grav/templates/partials/base-root.html.twig @@ -40,6 +40,10 @@ {% include 'partials/messages.html.twig' %} {% else %} + {% block noscript %} + {% include 'partials/noscript.html.twig' %} + {% endblock noscript %} + {% block page %}
diff --git a/user/plugins/admin/themes/grav/templates/partials/nav-quick-tray.html.twig b/user/plugins/admin/themes/grav/templates/partials/nav-quick-tray.html.twig index 13f4e95..bbc2d76 100644 --- a/user/plugins/admin/themes/grav/templates/partials/nav-quick-tray.html.twig +++ b/user/plugins/admin/themes/grav/templates/partials/nav-quick-tray.html.twig @@ -18,7 +18,7 @@ {% endif %}
  • {% if item.route %} - + {% else %} diff --git a/user/plugins/admin/themes/grav/templates/partials/nav-user-avatar.html.twig b/user/plugins/admin/themes/grav/templates/partials/nav-user-avatar.html.twig index 27c61dc..245d4c1 100644 --- a/user/plugins/admin/themes/grav/templates/partials/nav-user-avatar.html.twig +++ b/user/plugins/admin/themes/grav/templates/partials/nav-user-avatar.html.twig @@ -1,2 +1,2 @@ {% set user_avatar = admin.user.getAvatarUrl() %} - + diff --git a/user/plugins/admin/themes/grav/templates/partials/noscript.html.twig b/user/plugins/admin/themes/grav/templates/partials/noscript.html.twig new file mode 100644 index 0000000..8f2e2ed --- /dev/null +++ b/user/plugins/admin/themes/grav/templates/partials/noscript.html.twig @@ -0,0 +1,42 @@ + + +
    +
    +
    +

    {{ "PLUGIN_ADMIN.ERROR"|tu }}

    +
    +
    +
    + {{ "PLUGIN_ADMIN.ADMIN_NOSCRIPT_MSG"|tu }} +
    +
    +
    +
    + + diff --git a/user/plugins/admin/themes/grav/templates/partials/plugins-list.html.twig b/user/plugins/admin/themes/grav/templates/partials/plugins-list.html.twig index e960780..b46b4ab 100644 --- a/user/plugins/admin/themes/grav/templates/partials/plugins-list.html.twig +++ b/user/plugins/admin/themes/grav/templates/partials/plugins-list.html.twig @@ -42,7 +42,7 @@ {% if isTestingRelease %}test release{% endif %} - {% if (not installing and (plugin.form.fields.enabled.type != 'hidden' and plugin.form.fields.tabs.fields.login.fields.enabled.type != 'hidden')) %} + {% if (not installing and (plugin.form.fields.enabled.type != 'hidden' and plugin.form.fields.tabs.fields.options.fields.enabled.type != 'hidden')) %} diff --git a/user/plugins/admin/vendor/composer/ClassLoader.php b/user/plugins/admin/vendor/composer/ClassLoader.php index dc02dfb..fce8549 100644 --- a/user/plugins/admin/vendor/composer/ClassLoader.php +++ b/user/plugins/admin/vendor/composer/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; } /** @@ -377,7 +377,7 @@ class ClassLoader $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; + $search = $subPath . '\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { diff --git a/user/plugins/admin/vendor/composer/installed.json b/user/plugins/admin/vendor/composer/installed.json index 039ff9b..e18b692 100644 --- a/user/plugins/admin/vendor/composer/installed.json +++ b/user/plugins/admin/vendor/composer/installed.json @@ -1,27 +1,26 @@ [ { "name": "composer/semver", - "version": "1.4.2", - "version_normalized": "1.4.2.0", + "version": "1.5.1", + "version_normalized": "1.5.1.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573" + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c7cb9a2095a074d131b65a8a0cd294479d785573", - "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573", + "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5", - "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, - "time": "2016-08-30T16:08:34+00:00", + "time": "2020-01-13T12:06:48+00:00", "type": "library", "extra": { "branch-alias": { @@ -164,6 +163,7 @@ "security", "xml", "zf" - ] + ], + "abandoned": "laminas/laminas-xml" } ] diff --git a/user/plugins/admin/vendor/composer/semver/CHANGELOG.md b/user/plugins/admin/vendor/composer/semver/CHANGELOG.md index febedc9..ee0c2ef 100644 --- a/user/plugins/admin/vendor/composer/semver/CHANGELOG.md +++ b/user/plugins/admin/vendor/composer/semver/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +### [1.5.1] 2020-01-13 + + * Fixed: Parsing of aliased version was not validating the alias to be a valid version + +### [1.5.0] 2019-03-19 + + * Added: some support for date versions (e.g. 201903) in `~` operator + * Fixed: support for stabilities in `~` operator was inconsistent + ### [1.4.2] 2016-08-30 * Fixed: collapsing of complex constraints lead to buggy constraints @@ -57,6 +66,9 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint` * Changed: code style using php-cs-fixer. +[1.5.1]: https://github.com/composer/semver/compare/1.5.0...1.5.1 +[1.5.0]: https://github.com/composer/semver/compare/1.4.2...1.5.0 +[1.4.2]: https://github.com/composer/semver/compare/1.4.1...1.4.2 [1.4.1]: https://github.com/composer/semver/compare/1.4.0...1.4.1 [1.4.0]: https://github.com/composer/semver/compare/1.3.0...1.4.0 [1.3.0]: https://github.com/composer/semver/compare/1.2.0...1.3.0 diff --git a/user/plugins/admin/vendor/composer/semver/composer.json b/user/plugins/admin/vendor/composer/semver/composer.json index b0400cd..981e7d1 100644 --- a/user/plugins/admin/vendor/composer/semver/composer.json +++ b/user/plugins/admin/vendor/composer/semver/composer.json @@ -34,8 +34,7 @@ "php": "^5.3.2 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5", - "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, "autoload": { "psr-4": { diff --git a/user/plugins/admin/vendor/composer/semver/src/Constraint/AbstractConstraint.php b/user/plugins/admin/vendor/composer/semver/src/Constraint/AbstractConstraint.php index be83f75..7b5270f 100644 --- a/user/plugins/admin/vendor/composer/semver/src/Constraint/AbstractConstraint.php +++ b/user/plugins/admin/vendor/composer/semver/src/Constraint/AbstractConstraint.php @@ -11,7 +11,7 @@ namespace Composer\Semver\Constraint; -trigger_error('The ' . __CLASS__ . ' abstract class is deprecated, there is no replacement for it, it will be removed in the next major version.', E_USER_DEPRECATED); +trigger_error('The ' . __NAMESPACE__ . '\AbstractConstraint abstract class is deprecated, there is no replacement for it, it will be removed in the next major version.', E_USER_DEPRECATED); /** * Base constraint class. diff --git a/user/plugins/admin/vendor/composer/semver/src/Constraint/Constraint.php b/user/plugins/admin/vendor/composer/semver/src/Constraint/Constraint.php index 7a21eb4..c8c90f0 100644 --- a/user/plugins/admin/vendor/composer/semver/src/Constraint/Constraint.php +++ b/user/plugins/admin/vendor/composer/semver/src/Constraint/Constraint.php @@ -184,7 +184,7 @@ class Constraint implements ConstraintInterface // '!=' operator is match when other operator is not '==' operator or version is not match // these kinds of comparisons always have a solution if ($isNonEqualOp || $isProviderNonEqualOp) { - return !$isEqualOp && !$isProviderEqualOp + return (!$isEqualOp && !$isProviderEqualOp) || $this->versionCompare($provider->version, $this->version, '!=', $compareBranches); } @@ -197,13 +197,9 @@ class Constraint implements ConstraintInterface if ($this->versionCompare($provider->version, $this->version, self::$transOpInt[$this->operator], $compareBranches)) { // special case, e.g. require >= 1.0 and provide < 1.0 // 1.0 >= 1.0 but 1.0 is outside of the provided interval - if ($provider->version === $this->version + return !($provider->version === $this->version && self::$transOpInt[$provider->operator] === $providerNoEqualOp - && self::$transOpInt[$this->operator] !== $noEqualOp) { - return false; - } - - return true; + && self::$transOpInt[$this->operator] !== $noEqualOp); } return false; diff --git a/user/plugins/admin/vendor/composer/semver/src/Constraint/EmptyConstraint.php b/user/plugins/admin/vendor/composer/semver/src/Constraint/EmptyConstraint.php index faba56b..cb89cd2 100644 --- a/user/plugins/admin/vendor/composer/semver/src/Constraint/EmptyConstraint.php +++ b/user/plugins/admin/vendor/composer/semver/src/Constraint/EmptyConstraint.php @@ -46,7 +46,7 @@ class EmptyConstraint implements ConstraintInterface return $this->prettyString; } - return $this->__toString(); + return (string) $this; } /** diff --git a/user/plugins/admin/vendor/composer/semver/src/Constraint/MultiConstraint.php b/user/plugins/admin/vendor/composer/semver/src/Constraint/MultiConstraint.php index 0c547af..f8a60e4 100644 --- a/user/plugins/admin/vendor/composer/semver/src/Constraint/MultiConstraint.php +++ b/user/plugins/admin/vendor/composer/semver/src/Constraint/MultiConstraint.php @@ -102,7 +102,7 @@ class MultiConstraint implements ConstraintInterface return $this->prettyString; } - return $this->__toString(); + return (string) $this; } /** diff --git a/user/plugins/admin/vendor/composer/semver/src/Semver.php b/user/plugins/admin/vendor/composer/semver/src/Semver.php index 0225bb5..3ab2b68 100644 --- a/user/plugins/admin/vendor/composer/semver/src/Semver.php +++ b/user/plugins/admin/vendor/composer/semver/src/Semver.php @@ -37,9 +37,9 @@ class Semver $versionParser = self::$versionParser; $provider = new Constraint('==', $versionParser->normalize($version)); - $constraints = $versionParser->parseConstraints($constraints); + $parsedConstraints = $versionParser->parseConstraints($constraints); - return $constraints->matches($provider); + return $parsedConstraints->matches($provider); } /** diff --git a/user/plugins/admin/vendor/composer/semver/src/VersionParser.php b/user/plugins/admin/vendor/composer/semver/src/VersionParser.php index 359c18c..9a7d0db 100644 --- a/user/plugins/admin/vendor/composer/semver/src/VersionParser.php +++ b/user/plugins/admin/vendor/composer/semver/src/VersionParser.php @@ -52,11 +52,12 @@ class VersionParser { $version = preg_replace('{#.+$}i', '', $version); - if ('dev-' === substr($version, 0, 4) || '-dev' === substr($version, -4)) { + if (strpos($version, 'dev-') === 0 || '-dev' === substr($version, -4)) { return 'dev'; } preg_match('{' . self::$modifierRegex . '(?:\+.*)?$}i', strtolower($version), $match); + if (!empty($match[3])) { return 'dev'; } @@ -107,6 +108,9 @@ class VersionParser // strip off aliasing if (preg_match('{^([^,\s]++) ++as ++([^,\s]++)$}', $version, $match)) { + // verify that the alias is a version without constraint + $this->normalize($match[2]); + $version = $match[1]; } @@ -116,7 +120,7 @@ class VersionParser } // if requirement is branch-like, use full name - if ('dev-' === strtolower(substr($version, 0, 4))) { + if (stripos($version, 'dev-') === 0) { return 'dev-' . substr($version, 4); } @@ -236,6 +240,7 @@ class VersionParser $orConstraints = preg_split('{\s*\|\|?\s*}', trim($constraints)); $orGroups = array(); + foreach ($orConstraints as $constraints) { $andConstraints = preg_split('{(?< ,]) *(? 1) { @@ -268,9 +273,9 @@ class VersionParser && 2 === count($orGroups[0]->getConstraints()) && 2 === count($orGroups[1]->getConstraints()) && ($a = (string) $orGroups[0]) - && substr($a, 0, 3) === '[>=' && (false !== ($posA = strpos($a, '<', 4))) + && strpos($a, '[>=') === 0 && (false !== ($posA = strpos($a, '<', 4))) && ($b = (string) $orGroups[1]) - && substr($b, 0, 3) === '[>=' && (false !== ($posB = strpos($b, '<', 4))) + && strpos($b, '[>=') === 0 && (false !== ($posB = strpos($b, '<', 4))) && substr($a, $posA + 2, -1) === substr($b, 4, $posB - 5) ) { $constraint = new MultiConstraint(array( @@ -314,7 +319,7 @@ class VersionParser // version, to ensure that unstable instances of the current version are allowed. However, if a stability // suffix is added to the constraint, then a >= match on the current version is used instead. if (preg_match('{^~>?' . $versionRegex . '$}i', $constraint, $matches)) { - if (substr($constraint, 0, 2) === '~>') { + if (strpos($constraint, '~>') === 0) { throw new \UnexpectedValueException( 'Could not parse version constraint ' . $constraint . ': ' . 'Invalid operator "~>", you probably meant to use the "~" operator' @@ -322,11 +327,11 @@ class VersionParser } // Work out which position in the version we are operating at - if (isset($matches[4]) && '' !== $matches[4]) { + if (isset($matches[4]) && '' !== $matches[4] && null !== $matches[4]) { $position = 4; - } elseif (isset($matches[3]) && '' !== $matches[3]) { + } elseif (isset($matches[3]) && '' !== $matches[3] && null !== $matches[3]) { $position = 3; - } elseif (isset($matches[2]) && '' !== $matches[2]) { + } elseif (isset($matches[2]) && '' !== $matches[2] && null !== $matches[2]) { $position = 2; } else { $position = 1; @@ -334,19 +339,11 @@ class VersionParser // Calculate the stability suffix $stabilitySuffix = ''; - if (!empty($matches[5])) { - $stabilitySuffix .= '-' . $this->expandStability($matches[5]) . (!empty($matches[6]) ? $matches[6] : ''); - } - - if (!empty($matches[7])) { + if (empty($matches[5]) && empty($matches[7])) { $stabilitySuffix .= '-dev'; } - if (!$stabilitySuffix) { - $stabilitySuffix = '-dev'; - } - - $lowVersion = $this->manipulateVersionString($matches, $position, 0) . $stabilitySuffix; + $lowVersion = $this->normalize(substr($constraint . $stabilitySuffix, 1)); $lowerBound = new Constraint('>=', $lowVersion); // For upper bound, we increment the position of one more significance, @@ -368,9 +365,9 @@ class VersionParser // versions 0.X >=0.1.0, and no updates for versions 0.0.X if (preg_match('{^\^' . $versionRegex . '($)}i', $constraint, $matches)) { // Work out which position in the version we are operating at - if ('0' !== $matches[1] || '' === $matches[2]) { + if ('0' !== $matches[1] || '' === $matches[2] || null === $matches[2]) { $position = 1; - } elseif ('0' !== $matches[2] || '' === $matches[3]) { + } elseif ('0' !== $matches[2] || '' === $matches[3] || null === $matches[3]) { $position = 2; } else { $position = 3; @@ -401,9 +398,9 @@ class VersionParser // Any of X, x, or * may be used to "stand in" for one of the numeric values in the [major, minor, patch] tuple. // A partial version range is treated as an X-Range, so the special character is in fact optional. if (preg_match('{^v?(\d++)(?:\.(\d++))?(?:\.(\d++))?(?:\.[xX*])++$}', $constraint, $matches)) { - if (isset($matches[3]) && '' !== $matches[3]) { + if (isset($matches[3]) && '' !== $matches[3] && null !== $matches[3]) { $position = 3; - } elseif (isset($matches[2]) && '' !== $matches[2]) { + } elseif (isset($matches[2]) && '' !== $matches[2] && null !== $matches[2]) { $position = 2; } else { $position = 1; @@ -462,11 +459,11 @@ class VersionParser try { $version = $this->normalize($matches[2]); - if (!empty($stabilityModifier) && $this->parseStability($version) === 'stable') { + if (!empty($stabilityModifier) && self::parseStability($version) === 'stable') { $version .= '-' . $stabilityModifier; } elseif ('<' === $matches[1] || '>=' === $matches[1]) { if (!preg_match('/-' . self::$modifierRegex . '$/', strtolower($matches[2]))) { - if (substr($matches[2], 0, 4) !== 'dev-') { + if (strpos($matches[2], 'dev-') !== 0) { $version .= '-dev'; } } @@ -511,7 +508,7 @@ class VersionParser // Return null on a carry overflow if ($i === 1) { - return; + return null; } } } diff --git a/user/plugins/email/CHANGELOG.md b/user/plugins/email/CHANGELOG.md index 6c3d940..faf0d7d 100644 --- a/user/plugins/email/CHANGELOG.md +++ b/user/plugins/email/CHANGELOG.md @@ -1,3 +1,44 @@ +# v3.0.9 +## 06/08/2020 + +1. [](#improved) + * Disable password autocomplete in password field + * Don't save empty string in password field [#134](https://github.com/getgrav/grav-plugin-email/issues/134) + +# v3.0.8 +## 04/27/2020 + +1. [](#improved) + * Updated vendor library files + * Use Grav's Parsedown class + +# v3.0.7 +## 03/05/2020 + +1. [](#improved) + * Updated email validator library +1. [](#bugfix) + * Fixed `Invalid resource theme://` on CLI command `test-email` on Grav 1.6.21 and later versions [#128](https://github.com/getgrav/grav-plugin-email/issues/128) + +# v3.0.6 +## 02/11/2020 + +1. [](#improved) + * Updated email validator library + +# v3.0.5 +## 02/03/2020 + +1. [](#bugfix) + * Fixed a date in changelog (no other changes) + +# v3.0.4 +## 01/17/2020 + +1. [](#improved) + * Added ZOHO configuration example + * Updated SwiftMailer library for PHP 7.4 support + # v3.0.3 ## 08/16/2019 diff --git a/user/plugins/email/README.md b/user/plugins/email/README.md index 7881a48..823b1ef 100644 --- a/user/plugins/email/README.md +++ b/user/plugins/email/README.md @@ -159,6 +159,25 @@ mailer: It's that easy! +#### ZOHO + +ZOHO is a popular solution for hosted email due to it's great 'FREE' tier. It's paid options are also very reasonable and combined with the latest UI updates and outstanding security features, it's a solid email option. + +In order to get ZOHO working with Grav, you need to send email via a user account. You can either use your users' password or generate an **App Password** via your ZOHO account (clicking on your avatar once logged in), then navigating to `Two Factor Authentication -> App Passwords -> Generate`. Just enter a unique app name (i.e. `Grav Website`). + +NOTE: The SMTP host required can be found in `Settings -> Mail - > Mail Accounts -> POP/IMAP -> SMTP`. This will provide the SMTP server for this account (it may not be `imap.zoho.com` depending on what region you are in) + +``` +mailer: + engine: smtp + smtp: + server: smtp.zoho.com + port: 587 + encryption: tls + user: 'ZOHO_EMAIL_ADDRESS' + password: 'ZOHO_EMAIL_PASSWORD' +``` + #### Sendmail Although not as reliable as SMTP not providing as much debug information, sendmail is a simple option as long as your hosting provider is not blocking the default SMTP port `25`: diff --git a/user/plugins/email/blueprints.yaml b/user/plugins/email/blueprints.yaml index 6a9d74a..f5b7979 100644 --- a/user/plugins/email/blueprints.yaml +++ b/user/plugins/email/blueprints.yaml @@ -1,5 +1,7 @@ name: Email -version: 3.0.3 +slug: email +type: plugin +version: 3.0.9 testing: false description: Enables the emailing system for Grav icon: envelope @@ -18,6 +20,7 @@ dependencies: form: validation: loose + fields: enabled: type: hidden @@ -168,13 +171,13 @@ form: mailer.smtp.user: type: text size: medium - autocomplete: nope + autocomplete: 'off' label: PLUGIN_EMAIL.SMTP_LOGIN_NAME mailer.smtp.password: type: password size: medium - autocomplete: nope + autocomplete: 'new-password' label: PLUGIN_EMAIL.SMTP_PASSWORD sendmail_config: diff --git a/user/plugins/email/classes/Email.php b/user/plugins/email/classes/Email.php index 4626053..fb90d0c 100644 --- a/user/plugins/email/classes/Email.php +++ b/user/plugins/email/classes/Email.php @@ -4,6 +4,7 @@ namespace Grav\Plugin\Email; use Grav\Common\Config\Config; use Grav\Common\Grav; use Grav\Common\Language\Language; +use Grav\Common\Markdown\Parsedown; use Grav\Common\Twig\Twig; use Grav\Framework\Form\Interfaces\FormInterface; use \Monolog\Logger; @@ -178,7 +179,7 @@ class Email $body = $twig->processString($value, $vars); if ($params['process_markdown']) { - $parsedown = new \Parsedown(); + $parsedown = new Parsedown(); $body = $parsedown->text($body); } @@ -202,7 +203,7 @@ class Email $body = !empty($body_part['body']) ? $twig->processString($body_part['body'], $vars) : null; if ($params['process_markdown']) { - $parsedown = new \Parsedown(); + $parsedown = new Parsedown(); $body = $parsedown->text($body); } diff --git a/user/plugins/email/cli/ClearQueueFailuresCommand.php b/user/plugins/email/cli/ClearQueueFailuresCommand.php index 13fe9f2..d430cfe 100644 --- a/user/plugins/email/cli/ClearQueueFailuresCommand.php +++ b/user/plugins/email/cli/ClearQueueFailuresCommand.php @@ -40,6 +40,11 @@ class ClearQueueFailuresCommand extends ConsoleCommand */ protected function serve() { + // TODO: remove when requiring Grav 1.7+ + if (method_exists($this, 'initializeGrav')) { + $this->initializeGrav(); + } + $grav = Grav::instance(); $this->output->writeln(''); diff --git a/user/plugins/email/cli/FlushQueueCommand.php b/user/plugins/email/cli/FlushQueueCommand.php index 166ec8a..e0f2d0e 100644 --- a/user/plugins/email/cli/FlushQueueCommand.php +++ b/user/plugins/email/cli/FlushQueueCommand.php @@ -40,6 +40,11 @@ class FlushQueueCommand extends ConsoleCommand */ protected function serve() { + // TODO: remove when requiring Grav 1.7+ + if (method_exists($this, 'initializeGrav')) { + $this->initializeGrav(); + } + $grav = Grav::instance(); $this->output->writeln(''); diff --git a/user/plugins/email/cli/TestEmailCommand.php b/user/plugins/email/cli/TestEmailCommand.php index f18e9ed..974fb72 100644 --- a/user/plugins/email/cli/TestEmailCommand.php +++ b/user/plugins/email/cli/TestEmailCommand.php @@ -59,6 +59,11 @@ class TestEmailCommand extends ConsoleCommand */ protected function serve() { + // TODO: remove when requiring Grav 1.7+ + if (method_exists($this, 'initializeGrav')) { + $this->initializeThemes(); + } + $grav = Grav::instance(); $this->output->writeln(''); @@ -69,8 +74,6 @@ class TestEmailCommand extends ConsoleCommand $this->output->writeln(''); - require_once __DIR__ . '/../vendor/autoload.php'; - $grav['Email'] = new Email(); $to = $this->input->getOption('to') ?: $grav['config']->get('plugins.email.to'); @@ -86,8 +89,6 @@ class TestEmailCommand extends ConsoleCommand $body = $grav['language']->translate(['PLUGIN_EMAIL.TEST_EMAIL_BODY', $configuration]); } - // This is the old way.... - // $sent = EmailUtils::sendEmail($subject, $body, $email_to); $sent = EmailUtils::sendEmail(['subject'=>$subject, 'body'=>$body, 'to'=>$to]); if ($sent) { diff --git a/user/plugins/email/composer.lock b/user/plugins/email/composer.lock index 54c2bad..662cb34 100644 --- a/user/plugins/email/composer.lock +++ b/user/plugins/email/composer.lock @@ -8,30 +8,35 @@ "packages": [ { "name": "doctrine/lexer", - "version": "v1.0.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -39,48 +44,52 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" ], - "time": "2014-09-09T13:34:57+00:00" + "time": "2019-10-30T14:39:59+00:00" }, { "name": "egulias/email-validator", - "version": "2.1.7", + "version": "2.1.17", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e" + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/709f21f92707308cdf8f9bcfa1af4cb26586521e", - "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", "shasum": "" }, "require": { "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", "satooshi/php-coveralls": "^1.0.1" }, "suggest": { @@ -89,7 +98,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { @@ -115,20 +124,20 @@ "validation", "validator" ], - "time": "2018-12-04T22:38:24+00:00" + "time": "2020-02-13T22:36:52+00:00" }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.0", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707" + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707", - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", "shasum": "" }, "require": { @@ -177,20 +186,20 @@ "mail", "mailer" ], - "time": "2019-03-10T07:52:41+00:00" + "time": "2019-11-12T09:31:26+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.10.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "97001cfc283484c9691769f51cdf25259037eba2" + "reference": "ad6d62792bfbcfc385dd34b424d4fcf9712a32c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/97001cfc283484c9691769f51cdf25259037eba2", - "reference": "97001cfc283484c9691769f51cdf25259037eba2", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/ad6d62792bfbcfc385dd34b424d4fcf9712a32c8", + "reference": "ad6d62792bfbcfc385dd34b424d4fcf9712a32c8", "shasum": "" }, "require": { @@ -202,7 +211,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -236,26 +245,40 @@ "portable", "shim" ], - "time": "2018-09-21T06:26:08+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.10.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "89de1d44f2c059b266f22c9cc9124ddc4cd0987a" + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/89de1d44f2c059b266f22c9cc9124ddc4cd0987a", - "reference": "89de1d44f2c059b266f22c9cc9124ddc4cd0987a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", "shasum": "" }, "require": { "php": ">=5.3.3", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" + "symfony/polyfill-php72": "^1.10" }, "suggest": { "ext-intl": "For best performance" @@ -263,7 +286,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -279,13 +302,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, { "name": "Laurent Bassin", "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", @@ -298,20 +321,34 @@ "portable", "shim" ], - "time": "2018-09-30T16:36:12+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.10.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", "shasum": "" }, "require": { @@ -323,7 +360,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -357,20 +394,34 @@ "portable", "shim" ], - "time": "2018-09-21T13:07:52+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.10.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631" + "reference": "37b0976c78b94856543260ce09b460a7bc852747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9050816e2ca34a8e916c3a0ae8b9c2fccf68b631", - "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", "shasum": "" }, "require": { @@ -379,7 +430,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -412,7 +463,21 @@ "portable", "shim" ], - "time": "2018-09-21T13:07:52+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" } ], "packages-dev": [], @@ -424,5 +489,6 @@ "platform": { "php": ">=7.1.3" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "1.1.0" } diff --git a/user/plugins/email/email.php b/user/plugins/email/email.php index ec82f3b..8879aed 100644 --- a/user/plugins/email/email.php +++ b/user/plugins/email/email.php @@ -1,6 +1,7 @@ ['onFormProcessed', 0], 'onTwigTemplatePaths' => ['onTwigTemplatePaths', 0], 'onSchedulerInitialized' => ['onSchedulerInitialized', 0], + 'onAdminSave' => ['onAdminSave', 0], ]; } @@ -48,6 +50,28 @@ class EmailPlugin extends Plugin $twig->twig_paths[] = __DIR__ . '/templates'; } + /** + * Force compile during save if admin plugin save + * + * @param Event $event + */ + public function onAdminSave(Event $event) + { + /** @var Data $obj */ + $obj = $event['object']; + + + + if ($obj instanceof Data && $obj->blueprints()->getFilename() === 'email/blueprints') { + $current_pw = $this->grav['config']->get('plugins.email.mailer.smtp.password'); + $new_pw = $obj->get('mailer.smtp.password'); + if (!empty($current_pw) && empty($new_pw)) { + $obj->set('mailer.smtp.password', $current_pw); + } + + } + } + /** * Send email when processing the form data. * diff --git a/user/plugins/email/vendor/composer/ClassLoader.php b/user/plugins/email/vendor/composer/ClassLoader.php index dc02dfb..fce8549 100644 --- a/user/plugins/email/vendor/composer/ClassLoader.php +++ b/user/plugins/email/vendor/composer/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; } /** @@ -377,7 +377,7 @@ class ClassLoader $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; + $search = $subPath . '\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { diff --git a/user/plugins/email/vendor/composer/autoload_files.php b/user/plugins/email/vendor/composer/autoload_files.php index de081a8..e5ea67d 100644 --- a/user/plugins/email/vendor/composer/autoload_files.php +++ b/user/plugins/email/vendor/composer/autoload_files.php @@ -8,7 +8,7 @@ $baseDir = dirname($vendorDir); return array( '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', - 'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php', 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', + 'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php', '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', ); diff --git a/user/plugins/email/vendor/composer/autoload_namespaces.php b/user/plugins/email/vendor/composer/autoload_namespaces.php index 4a6f5de..b7fc012 100644 --- a/user/plugins/email/vendor/composer/autoload_namespaces.php +++ b/user/plugins/email/vendor/composer/autoload_namespaces.php @@ -6,5 +6,4 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'), ); diff --git a/user/plugins/email/vendor/composer/autoload_psr4.php b/user/plugins/email/vendor/composer/autoload_psr4.php index a57e1d7..fc16de3 100644 --- a/user/plugins/email/vendor/composer/autoload_psr4.php +++ b/user/plugins/email/vendor/composer/autoload_psr4.php @@ -13,4 +13,5 @@ return array( 'Grav\\Plugin\\Email\\' => array($baseDir . '/classes'), 'Grav\\Plugin\\Console\\' => array($baseDir . '/cli'), 'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/EmailValidator'), + 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer'), ); diff --git a/user/plugins/email/vendor/composer/autoload_real.php b/user/plugins/email/vendor/composer/autoload_real.php index 909cb26..28cad00 100644 --- a/user/plugins/email/vendor/composer/autoload_real.php +++ b/user/plugins/email/vendor/composer/autoload_real.php @@ -13,6 +13,9 @@ class ComposerAutoloaderInitdec5d78def1384d1f20996ded9d7efbf } } + /** + * @return \Composer\Autoload\ClassLoader + */ public static function getLoader() { if (null !== self::$loader) { diff --git a/user/plugins/email/vendor/composer/autoload_static.php b/user/plugins/email/vendor/composer/autoload_static.php index a61cec6..bc5ecc5 100644 --- a/user/plugins/email/vendor/composer/autoload_static.php +++ b/user/plugins/email/vendor/composer/autoload_static.php @@ -9,8 +9,8 @@ class ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf public static $files = array ( '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', - 'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php', 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', + 'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php', '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', ); @@ -31,6 +31,10 @@ class ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf array ( 'Egulias\\EmailValidator\\' => 23, ), + 'D' => + array ( + 'Doctrine\\Common\\Lexer\\' => 22, + ), ); public static $prefixDirsPsr4 = array ( @@ -62,15 +66,9 @@ class ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf array ( 0 => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator', ), - ); - - public static $prefixesPsr0 = array ( - 'D' => + 'Doctrine\\Common\\Lexer\\' => array ( - 'Doctrine\\Common\\Lexer\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/lexer/lib', - ), + 0 => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer', ), ); @@ -83,7 +81,6 @@ class ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf return \Closure::bind(function () use ($loader) { $loader->prefixLengthsPsr4 = ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf::$prefixLengthsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf::$prefixesPsr0; $loader->classMap = ComposerStaticInitdec5d78def1384d1f20996ded9d7efbf::$classMap; }, null, ClassLoader::class); diff --git a/user/plugins/email/vendor/composer/installed.json b/user/plugins/email/vendor/composer/installed.json index 67ebd75..485a035 100644 --- a/user/plugins/email/vendor/composer/installed.json +++ b/user/plugins/email/vendor/composer/installed.json @@ -1,33 +1,38 @@ [ { "name": "doctrine/lexer", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", + "version": "1.2.0", + "version_normalized": "1.2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" }, - "time": "2014-09-09T13:34:57+00:00", + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" + }, + "time": "2019-10-30T14:39:59+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "installation-source": "dist", "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -35,58 +40,62 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" ] }, { "name": "egulias/email-validator", - "version": "2.1.7", - "version_normalized": "2.1.7.0", + "version": "2.1.17", + "version_normalized": "2.1.17.0", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e" + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/709f21f92707308cdf8f9bcfa1af4cb26586521e", - "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", "shasum": "" }, "require": { "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", "satooshi/php-coveralls": "^1.0.1" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" }, - "time": "2018-12-04T22:38:24+00:00", + "time": "2020-02-13T22:36:52+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, "installation-source": "dist", @@ -116,17 +125,17 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.0", - "version_normalized": "6.2.0.0", + "version": "v6.2.3", + "version_normalized": "6.2.3.0", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707" + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707", - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", "shasum": "" }, "require": { @@ -144,7 +153,7 @@ "ext-intl": "Needed to support internationalized email addresses", "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" }, - "time": "2019-03-10T07:52:41+00:00", + "time": "2019-11-12T09:31:26+00:00", "type": "library", "extra": { "branch-alias": { @@ -180,17 +189,17 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "97001cfc283484c9691769f51cdf25259037eba2" + "reference": "ad6d62792bfbcfc385dd34b424d4fcf9712a32c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/97001cfc283484c9691769f51cdf25259037eba2", - "reference": "97001cfc283484c9691769f51cdf25259037eba2", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/ad6d62792bfbcfc385dd34b424d4fcf9712a32c8", + "reference": "ad6d62792bfbcfc385dd34b424d4fcf9712a32c8", "shasum": "" }, "require": { @@ -199,11 +208,11 @@ "suggest": { "ext-iconv": "For best performance" }, - "time": "2018-09-21T06:26:08+00:00", + "time": "2020-03-09T19:04:49+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -237,36 +246,50 @@ "polyfill", "portable", "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ] }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "89de1d44f2c059b266f22c9cc9124ddc4cd0987a" + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/89de1d44f2c059b266f22c9cc9124ddc4cd0987a", - "reference": "89de1d44f2c059b266f22c9cc9124ddc4cd0987a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", "shasum": "" }, "require": { "php": ">=5.3.3", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" + "symfony/polyfill-php72": "^1.10" }, "suggest": { "ext-intl": "For best performance" }, - "time": "2018-09-30T16:36:12+00:00", + "time": "2020-03-09T19:04:49+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -283,13 +306,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, { "name": "Laurent Bassin", "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", @@ -301,21 +324,35 @@ "polyfill", "portable", "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ] }, { "name": "symfony/polyfill-mbstring", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", "shasum": "" }, "require": { @@ -324,11 +361,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2018-09-21T13:07:52+00:00", + "time": "2020-03-09T19:04:49+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -362,31 +399,45 @@ "polyfill", "portable", "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ] }, { "name": "symfony/polyfill-php72", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631" + "reference": "37b0976c78b94856543260ce09b460a7bc852747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9050816e2ca34a8e916c3a0ae8b9c2fccf68b631", - "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", "shasum": "" }, "require": { "php": ">=5.3.3" }, - "time": "2018-09-21T13:07:52+00:00", + "time": "2020-02-27T09:26:54+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -419,6 +470,20 @@ "polyfill", "portable", "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ] } ] diff --git a/user/plugins/email/vendor/doctrine/lexer/LICENSE b/user/plugins/email/vendor/doctrine/lexer/LICENSE index 5e781fc..e8fdec4 100644 --- a/user/plugins/email/vendor/doctrine/lexer/LICENSE +++ b/user/plugins/email/vendor/doctrine/lexer/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2013 Doctrine Project +Copyright (c) 2006-2018 Doctrine Project Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/user/plugins/email/vendor/doctrine/lexer/README.md b/user/plugins/email/vendor/doctrine/lexer/README.md index 66f4430..e1b419a 100644 --- a/user/plugins/email/vendor/doctrine/lexer/README.md +++ b/user/plugins/email/vendor/doctrine/lexer/README.md @@ -1,5 +1,9 @@ # Doctrine Lexer +Build Status: [![Build Status](https://travis-ci.org/doctrine/lexer.svg?branch=master)](https://travis-ci.org/doctrine/lexer) + Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). + +https://www.doctrine-project.org/projects/lexer.html diff --git a/user/plugins/email/vendor/doctrine/lexer/composer.json b/user/plugins/email/vendor/doctrine/lexer/composer.json index 8cd694c..0d8e5ad 100644 --- a/user/plugins/email/vendor/doctrine/lexer/composer.json +++ b/user/plugins/email/vendor/doctrine/lexer/composer.json @@ -1,9 +1,15 @@ { "name": "doctrine/lexer", "type": "library", - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "keywords": ["lexer", "parser"], - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "keywords": [ + "php", + "parser", + "lexer", + "annotations", + "docblock" + ], + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "license": "MIT", "authors": [ {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, @@ -11,14 +17,25 @@ {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} ], "require": { - "php": ">=5.3.2" + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "autoload": { - "psr-0": { "Doctrine\\Common\\Lexer\\": "lib/" } + "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } + }, + "autoload-dev": { + "psr-4": { "Doctrine\\Tests\\": "tests/Doctrine" } }, "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } + }, + "config": { + "sort-packages": true } } diff --git a/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php index 399a552..385643a 100644 --- a/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php +++ b/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php @@ -1,31 +1,21 @@ . - */ + +declare(strict_types=1); namespace Doctrine\Common\Lexer; +use ReflectionClass; +use const PREG_SPLIT_DELIM_CAPTURE; +use const PREG_SPLIT_NO_EMPTY; +use const PREG_SPLIT_OFFSET_CAPTURE; +use function implode; +use function in_array; +use function preg_split; +use function sprintf; +use function substr; + /** * Base class for writing simple lexers, i.e. for creating small DSLs. - * - * @since 2.0 - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel */ abstract class AbstractLexer { @@ -47,36 +37,43 @@ abstract class AbstractLexer * * @var array */ - private $tokens = array(); + private $tokens = []; /** * Current lexer position in input string. * - * @var integer + * @var int */ private $position = 0; /** * Current peek of current lexer position. * - * @var integer + * @var int */ private $peek = 0; /** * The next token in the input. * - * @var array + * @var array|null */ public $lookahead; /** * The last matched/seen token. * - * @var array + * @var array|null */ public $token; + /** + * Composed regex for input parsing. + * + * @var string + */ + private $regex; + /** * Sets the input data to be tokenized. * @@ -90,7 +87,7 @@ abstract class AbstractLexer public function setInput($input) { $this->input = $input; - $this->tokens = array(); + $this->tokens = []; $this->reset(); $this->scan($input); @@ -104,9 +101,9 @@ abstract class AbstractLexer public function reset() { $this->lookahead = null; - $this->token = null; - $this->peek = 0; - $this->position = 0; + $this->token = null; + $this->peek = 0; + $this->position = 0; } /** @@ -122,7 +119,7 @@ abstract class AbstractLexer /** * Resets the lexer position on the input to the given position. * - * @param integer $position Position to place the lexical scanner. + * @param int $position Position to place the lexical scanner. * * @return void */ @@ -132,9 +129,9 @@ abstract class AbstractLexer } /** - * Retrieve the original lexer's input until a given position. + * Retrieve the original lexer's input until a given position. * - * @param integer $position + * @param int $position * * @return string */ @@ -146,13 +143,13 @@ abstract class AbstractLexer /** * Checks whether a given token matches the current lookahead. * - * @param integer|string $token + * @param int|string $token * - * @return boolean + * @return bool */ public function isNextToken($token) { - return null !== $this->lookahead && $this->lookahead['type'] === $token; + return $this->lookahead !== null && $this->lookahead['type'] === $token; } /** @@ -160,23 +157,23 @@ abstract class AbstractLexer * * @param array $tokens * - * @return boolean + * @return bool */ public function isNextTokenAny(array $tokens) { - return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true); + return $this->lookahead !== null && in_array($this->lookahead['type'], $tokens, true); } /** * Moves to the next token in the input string. * - * @return boolean + * @return bool */ public function moveNext() { - $this->peek = 0; - $this->token = $this->lookahead; - $this->lookahead = (isset($this->tokens[$this->position])) + $this->peek = 0; + $this->token = $this->lookahead; + $this->lookahead = isset($this->tokens[$this->position]) ? $this->tokens[$this->position++] : null; return $this->lookahead !== null; @@ -199,10 +196,10 @@ abstract class AbstractLexer /** * Checks if given value is identical to the given token. * - * @param mixed $value - * @param integer $token + * @param mixed $value + * @param int|string $token * - * @return boolean + * @return bool */ public function isA($value, $token) { @@ -218,9 +215,9 @@ abstract class AbstractLexer { if (isset($this->tokens[$this->position + $this->peek])) { return $this->tokens[$this->position + $this->peek++]; - } else { - return null; } + + return null; } /** @@ -230,8 +227,9 @@ abstract class AbstractLexer */ public function glimpse() { - $peek = $this->peek(); + $peek = $this->peek(); $this->peek = 0; + return $peek; } @@ -244,10 +242,8 @@ abstract class AbstractLexer */ protected function scan($input) { - static $regex; - - if ( ! isset($regex)) { - $regex = sprintf( + if (! isset($this->regex)) { + $this->regex = sprintf( '/(%s)|%s/%s', implode(')|(', $this->getCatchablePatterns()), implode('|', $this->getNonCatchablePatterns()), @@ -255,32 +251,37 @@ abstract class AbstractLexer ); } - $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; - $matches = preg_split($regex, $input, -1, $flags); + $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; + $matches = preg_split($this->regex, $input, -1, $flags); + + if ($matches === false) { + // Work around https://bugs.php.net/78122 + $matches = [[$input, 0]]; + } foreach ($matches as $match) { // Must remain before 'value' assignment since it can change content $type = $this->getType($match[0]); - $this->tokens[] = array( + $this->tokens[] = [ 'value' => $match[0], 'type' => $type, 'position' => $match[1], - ); + ]; } } /** * Gets the literal for a given token. * - * @param integer $token + * @param int|string $token * - * @return string + * @return int|string */ public function getLiteral($token) { - $className = get_class($this); - $reflClass = new \ReflectionClass($className); + $className = static::class; + $reflClass = new ReflectionClass($className); $constants = $reflClass->getConstants(); foreach ($constants as $name => $value) { @@ -299,7 +300,7 @@ abstract class AbstractLexer */ protected function getModifiers() { - return 'i'; + return 'iu'; } /** @@ -321,7 +322,7 @@ abstract class AbstractLexer * * @param string $value * - * @return integer + * @return int|string|null */ abstract protected function getType(&$value); } diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailLexer.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailLexer.php index 882c968..cb47c01 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailLexer.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailLexer.php @@ -73,25 +73,73 @@ class EmailLexer extends AbstractLexer '\0' => self::C_NUL, ); + /** + * @var bool + */ protected $hasInvalidTokens = false; - protected $previous; + /** + * @var array + * + * @psalm-var array{value:string, type:null|int, position:int}|array + */ + protected $previous = []; + /** + * The last matched/seen token. + * + * @var array + * + * @psalm-var array{value:string, type:null|int, position:int} + */ + public $token; + + /** + * The next token in the input. + * + * @var array|null + */ + public $lookahead; + + /** + * @psalm-var array{value:'', type:null, position:0} + */ + private static $nullToken = [ + 'value' => '', + 'type' => null, + 'position' => 0, + ]; + + public function __construct() + { + $this->previous = $this->token = self::$nullToken; + $this->lookahead = null; + } + + /** + * @return void + */ public function reset() { $this->hasInvalidTokens = false; parent::reset(); + $this->previous = $this->token = self::$nullToken; } + /** + * @return bool + */ public function hasInvalidTokens() { return $this->hasInvalidTokens; } /** - * @param $type + * @param int $type * @throws \UnexpectedValueException * @return boolean + * + * @psalm-suppress InvalidScalarArgument */ public function find($type) { @@ -107,7 +155,7 @@ class EmailLexer extends AbstractLexer /** * getPrevious * - * @return array token + * @return array */ public function getPrevious() { @@ -122,8 +170,10 @@ class EmailLexer extends AbstractLexer public function moveNext() { $this->previous = $this->token; + $hasNext = parent::moveNext(); + $this->token = $this->token ?: self::$nullToken; - return parent::moveNext(); + return $hasNext; } /** @@ -179,6 +229,11 @@ class EmailLexer extends AbstractLexer return self::GENERIC; } + /** + * @param string $value + * + * @return bool + */ protected function isValid($value) { if (isset($this->charValue[$value])) { @@ -189,7 +244,7 @@ class EmailLexer extends AbstractLexer } /** - * @param $value + * @param string $value * @return bool */ protected function isNullType($value) @@ -202,7 +257,7 @@ class EmailLexer extends AbstractLexer } /** - * @param $value + * @param string $value * @return bool */ protected function isUTF8Invalid($value) @@ -214,6 +269,9 @@ class EmailLexer extends AbstractLexer return false; } + /** + * @return string + */ protected function getModifiers() { return 'iu'; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailParser.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailParser.php index d0627d8..6b7bad6 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailParser.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailParser.php @@ -17,11 +17,33 @@ class EmailParser { const EMAIL_MAX_LENGTH = 254; - protected $warnings; + /** + * @var array + */ + protected $warnings = []; + + /** + * @var string + */ protected $domainPart = ''; + + /** + * @var string + */ protected $localPart = ''; + /** + * @var EmailLexer + */ protected $lexer; + + /** + * @var LocalPart + */ protected $localPartParser; + + /** + * @var DomainPart + */ protected $domainPartParser; public function __construct(EmailLexer $lexer) @@ -29,11 +51,10 @@ class EmailParser $this->lexer = $lexer; $this->localPartParser = new LocalPart($this->lexer); $this->domainPartParser = new DomainPart($this->lexer); - $this->warnings = new \SplObjectStorage(); } /** - * @param $str + * @param string $str * @return array */ public function parse($str) @@ -57,6 +78,9 @@ class EmailParser return array('local' => $this->localPart, 'domain' => $this->domainPart); } + /** + * @return Warning\Warning[] + */ public function getWarnings() { $localPartWarnings = $this->localPartParser->getWarnings(); @@ -68,11 +92,17 @@ class EmailParser return $this->warnings; } + /** + * @return string + */ public function getParsedDomainPart() { return $this->domainPart; } + /** + * @param string $email + */ protected function setParts($email) { $parts = explode('@', $email); @@ -80,6 +110,9 @@ class EmailParser $this->localPart = $parts[0]; } + /** + * @return bool + */ protected function hasAtToken() { $this->lexer->moveNext(); diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailValidator.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailValidator.php index 44b4b93..a30f21d 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailValidator.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/EmailValidator.php @@ -13,12 +13,12 @@ class EmailValidator private $lexer; /** - * @var array + * @var Warning\Warning[] */ - protected $warnings; + protected $warnings = []; /** - * @var InvalidEmail + * @var InvalidEmail|null */ protected $error; @@ -28,7 +28,7 @@ class EmailValidator } /** - * @param $email + * @param string $email * @param EmailValidation $emailValidation * @return bool */ @@ -58,7 +58,7 @@ class EmailValidator } /** - * @return InvalidEmail + * @return InvalidEmail|null */ public function getError() { diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php index 2502811..a738eeb 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php @@ -2,7 +2,7 @@ namespace Egulias\EmailValidator\Exception; -class ExpectedQPair extends InvalidEmail +class ExpectingQPair extends InvalidEmail { const CODE = 136; const REASON = "Expecting QPAIR"; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php index 86ca21d..0aa5fa7 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php @@ -2,8 +2,6 @@ namespace Egulias\EmailValidator\Exception; -use Egulias\EmailValidator\Exception\InvalidEmail; - class NoDNSRecord extends InvalidEmail { const CODE = 5; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php index 51769de..0613e31 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php @@ -35,27 +35,17 @@ use Egulias\EmailValidator\Warning\TLD; class DomainPart extends Parser { const DOMAIN_MAX_LENGTH = 254; + + /** + * @var string + */ protected $domainPart = ''; public function parse($domainPart) { $this->lexer->moveNext(); - if ($this->lexer->token['type'] === EmailLexer::S_DOT) { - throw new DotAtStart(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_EMPTY) { - throw new NoDomainPart(); - } - if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { - throw new DomainHyphened(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment(); - $this->parseDomainComments(); - } + $this->performDomainStartChecks(); $domain = $this->doParseDomainPart(); @@ -77,11 +67,50 @@ class DomainPart extends Parser $this->domainPart = $domain; } + private function performDomainStartChecks() + { + $this->checkInvalidTokensAfterAT(); + $this->checkEmptyDomain(); + + if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { + $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment(); + $this->parseDomainComments(); + } + } + + private function checkEmptyDomain() + { + $thereIsNoDomain = $this->lexer->token['type'] === EmailLexer::S_EMPTY || + ($this->lexer->token['type'] === EmailLexer::S_SP && + !$this->lexer->isNextToken(EmailLexer::GENERIC)); + + if ($thereIsNoDomain) { + throw new NoDomainPart(); + } + } + + private function checkInvalidTokensAfterAT() + { + if ($this->lexer->token['type'] === EmailLexer::S_DOT) { + throw new DotAtStart(); + } + if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { + throw new DomainHyphened(); + } + } + + /** + * @return string + */ public function getDomainPart() { return $this->domainPart; } + /** + * @param string $addressLiteral + * @param int $maxGroups + */ public function checkIPV6Tag($addressLiteral, $maxGroups = 8) { $prev = $this->lexer->getPrevious(); @@ -125,6 +154,9 @@ class DomainPart extends Parser } } + /** + * @return string + */ protected function doParseDomainPart() { $domain = ''; @@ -166,12 +198,12 @@ class DomainPart extends Parser $domain .= $this->lexer->token['value']; $this->lexer->moveNext(); - } while ($this->lexer->token); + } while (null !== $this->lexer->token['type']); return $domain; } - private function checkNotAllowedChars($token) + private function checkNotAllowedChars(array $token) { $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true]; if (isset($notAllowed[$token['type']])) { @@ -179,6 +211,9 @@ class DomainPart extends Parser } } + /** + * @return string|false + */ protected function parseDomainLiteral() { if ($this->lexer->isNextToken(EmailLexer::S_COLON)) { @@ -195,6 +230,9 @@ class DomainPart extends Parser return $this->doParseDomainLiteral(); } + /** + * @return string|false + */ protected function doParseDomainLiteral() { $IPv6TAG = false; @@ -262,6 +300,11 @@ class DomainPart extends Parser return $addressLiteral; } + /** + * @param string $addressLiteral + * + * @return string|false + */ protected function checkIPV4Tag($addressLiteral) { $matchesIP = array(); @@ -279,13 +322,13 @@ class DomainPart extends Parser return false; } // Convert IPv4 part to IPv6 format for further testing - $addressLiteral = substr($addressLiteral, 0, $index) . '0:0'; + $addressLiteral = substr($addressLiteral, 0, (int) $index) . '0:0'; } return $addressLiteral; } - protected function checkDomainPartExceptions($prev) + protected function checkDomainPartExceptions(array $prev) { $invalidDomainTokens = array( EmailLexer::S_DQUOTE => true, @@ -320,6 +363,9 @@ class DomainPart extends Parser } } + /** + * @return bool + */ protected function hasBrackets() { if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) { @@ -335,7 +381,7 @@ class DomainPart extends Parser return true; } - protected function checkLabelLength($prev) + protected function checkLabelLength(array $prev) { if ($this->lexer->token['type'] === EmailLexer::S_DOT && $prev['type'] === EmailLexer::GENERIC && diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php index 8ab16ab..3c21f34 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php @@ -5,7 +5,6 @@ namespace Egulias\EmailValidator\Parser; use Egulias\EmailValidator\Exception\DotAtEnd; use Egulias\EmailValidator\Exception\DotAtStart; use Egulias\EmailValidator\EmailLexer; -use Egulias\EmailValidator\EmailValidator; use Egulias\EmailValidator\Exception\ExpectingAT; use Egulias\EmailValidator\Exception\ExpectingATEXT; use Egulias\EmailValidator\Exception\UnclosedQuotedString; @@ -20,9 +19,10 @@ class LocalPart extends Parser $parseDQuote = true; $closingQuote = false; $openedParenthesis = 0; + $totalLength = 0; - while ($this->lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) { + while ($this->lexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) { + if ($this->lexer->token['type'] === EmailLexer::S_DOT && null === $this->lexer->getPrevious()['type']) { throw new DotAtStart(); } @@ -35,12 +35,13 @@ class LocalPart extends Parser $this->parseComments(); $openedParenthesis += $this->getOpenedParenthesis(); } + if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { if ($openedParenthesis === 0) { throw new UnopenedComment(); - } else { - $openedParenthesis--; } + + $openedParenthesis--; } $this->checkConsecutiveDots(); @@ -58,15 +59,18 @@ class LocalPart extends Parser $this->parseFWS(); } + $totalLength += strlen($this->lexer->token['value']); $this->lexer->moveNext(); } - $prev = $this->lexer->getPrevious(); - if (strlen($prev['value']) > LocalTooLong::LOCAL_PART_LENGTH) { + if ($totalLength > LocalTooLong::LOCAL_PART_LENGTH) { $this->warnings[LocalTooLong::CODE] = new LocalTooLong(); } } + /** + * @return bool + */ protected function parseDoubleQuote() { $parseAgain = true; @@ -86,7 +90,7 @@ class LocalPart extends Parser $this->lexer->moveNext(); - while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && $this->lexer->token) { + while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && null !== $this->lexer->token['type']) { $parseAgain = false; if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) { $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); @@ -118,7 +122,10 @@ class LocalPart extends Parser return $parseAgain; } - protected function isInvalidToken($token, $closingQuote) + /** + * @param bool $closingQuote + */ + protected function isInvalidToken(array $token, $closingQuote) { $forbidden = array( EmailLexer::S_COMMA, diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php index e5042e1..d0673b9 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php @@ -8,7 +8,7 @@ use Egulias\EmailValidator\Exception\ConsecutiveDot; use Egulias\EmailValidator\Exception\CRLFAtTheEnd; use Egulias\EmailValidator\Exception\CRLFX2; use Egulias\EmailValidator\Exception\CRNoLF; -use Egulias\EmailValidator\Exception\ExpectedQPair; +use Egulias\EmailValidator\Exception\ExpectingQPair; use Egulias\EmailValidator\Exception\ExpectingATEXT; use Egulias\EmailValidator\Exception\ExpectingCTEXT; use Egulias\EmailValidator\Exception\UnclosedComment; @@ -21,8 +21,19 @@ use Egulias\EmailValidator\Warning\QuotedString; abstract class Parser { + /** + * @var \Egulias\EmailValidator\Warning\Warning[] + */ protected $warnings = []; + + /** + * @var EmailLexer + */ protected $lexer; + + /** + * @var int + */ protected $openedParenthesis = 0; public function __construct(EmailLexer $lexer) @@ -30,11 +41,17 @@ abstract class Parser $this->lexer = $lexer; } + /** + * @return \Egulias\EmailValidator\Warning\Warning[] + */ public function getWarnings() { return $this->warnings; } + /** + * @param string $str + */ abstract public function parse($str); /** @return int */ @@ -50,7 +67,7 @@ abstract class Parser { if (!($this->lexer->token['type'] === EmailLexer::INVALID || $this->lexer->token['type'] === EmailLexer::C_DEL)) { - throw new ExpectedQPair(); + throw new ExpectingQPair(); } $this->warnings[QuotedPart::CODE] = @@ -80,6 +97,9 @@ abstract class Parser } } + /** + * @return bool + */ protected function isUnclosedComment() { try { @@ -122,6 +142,9 @@ abstract class Parser } } + /** + * @return bool + */ protected function isFWS() { if ($this->escaped()) { @@ -140,11 +163,14 @@ abstract class Parser return false; } + /** + * @return bool + */ protected function escaped() { $previous = $this->lexer->getPrevious(); - if ($previous['type'] === EmailLexer::S_BACKSLASH + if ($previous && $previous['type'] === EmailLexer::S_BACKSLASH && $this->lexer->token['type'] !== EmailLexer::GENERIC ) { @@ -154,6 +180,9 @@ abstract class Parser return false; } + /** + * @return bool + */ protected function warnEscaping() { if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { @@ -174,6 +203,11 @@ abstract class Parser } + /** + * @param bool $hasClosingQuote + * + * @return bool + */ protected function checkDQUOTE($hasClosingQuote) { if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) { diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php index e5c3e5d..da13253 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php @@ -15,13 +15,13 @@ class DNSCheckValidation implements EmailValidation private $warnings = []; /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; - + public function __construct() { - if (!extension_loaded('intl')) { + if (!function_exists('idn_to_ascii')) { throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__)); } } @@ -49,6 +49,11 @@ class DNSCheckValidation implements EmailValidation return $this->warnings; } + /** + * @param string $host + * + * @return bool + */ protected function checkDNS($host) { $variant = INTL_IDNA_VARIANT_2003; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php index 775ad16..ee7c41a 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php @@ -6,6 +6,9 @@ use Exception; class EmptyValidationList extends \InvalidArgumentException { + /** + * @param int $code + */ public function __construct($code = 0, Exception $previous = null) { parent::__construct("Empty validation list is not allowed", $code, $previous); diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php index d5e87d8..3be5973 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php @@ -9,16 +9,22 @@ class MultipleErrors extends InvalidEmail const CODE = 999; const REASON = "Accumulated errors for multiple validations"; /** - * @var array + * @var InvalidEmail[] */ private $errors = []; + /** + * @param InvalidEmail[] $errors + */ public function __construct(array $errors) { $this->errors = $errors; parent::__construct(); } + /** + * @return InvalidEmail[] + */ public function getErrors() { return $this->errors; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php index ce161ac..feb2240 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php @@ -30,12 +30,12 @@ class MultipleValidationWithAnd implements EmailValidation private $warnings = []; /** - * @var MultipleErrors + * @var MultipleErrors|null */ private $error; /** - * @var bool + * @var int */ private $mode; @@ -79,6 +79,12 @@ class MultipleValidationWithAnd implements EmailValidation return $result; } + /** + * @param \Egulias\EmailValidator\Exception\InvalidEmail|null $possibleError + * @param \Egulias\EmailValidator\Exception\InvalidEmail[] $errors + * + * @return \Egulias\EmailValidator\Exception\InvalidEmail[] + */ private function addNewError($possibleError, array $errors) { if (null !== $possibleError) { @@ -88,13 +94,20 @@ class MultipleValidationWithAnd implements EmailValidation return $errors; } + /** + * @param bool $result + * + * @return bool + */ private function shouldStop($result) { return !$result && $this->mode === self::STOP_ON_ERROR; } /** - * {@inheritdoc} + * Returns the validation errors. + * + * @return MultipleErrors|null */ public function getError() { diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php index e4bf0cc..6b31e54 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php @@ -9,7 +9,7 @@ use Egulias\EmailValidator\Validation\Error\RFCWarnings; class NoRFCWarningsValidation extends RFCValidation { /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php index c4ffe35..8781e0b 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php @@ -9,7 +9,7 @@ use Egulias\EmailValidator\Exception\InvalidEmail; class RFCValidation implements EmailValidation { /** - * @var EmailParser + * @var EmailParser|null */ private $parser; @@ -19,7 +19,7 @@ class RFCValidation implements EmailValidation private $warnings = []; /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php index 4721f0d..e10bfab 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php @@ -10,7 +10,7 @@ use \Spoofchecker; class SpoofCheckValidation implements EmailValidation { /** - * @var InvalidEmail + * @var InvalidEmail|null */ private $error; @@ -21,6 +21,9 @@ class SpoofCheckValidation implements EmailValidation } } + /** + * @psalm-suppress InvalidArgument + */ public function isValid($email, EmailLexer $emailLexer) { $checker = new Spoofchecker(); @@ -33,6 +36,9 @@ class SpoofCheckValidation implements EmailValidation return $this->error === null; } + /** + * @return InvalidEmail|null + */ public function getError() { return $this->error; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php index 7be9e6a..36a4265 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php @@ -6,6 +6,10 @@ class QuotedPart extends Warning { const CODE = 36; + /** + * @param scalar $prevToken + * @param scalar $postToken + */ public function __construct($prevToken, $postToken) { $this->message = "Deprecated Quoted String found between $prevToken and $postToken"; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php index e9d56e1..817e4e8 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php @@ -6,6 +6,10 @@ class QuotedString extends Warning { const CODE = 11; + /** + * @param scalar $prevToken + * @param scalar $postToken + */ public function __construct($prevToken, $postToken) { $this->message = "Quoted String found between $prevToken and $postToken"; diff --git a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php index ec6a365..bce7e7a 100644 --- a/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php +++ b/user/plugins/email/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php @@ -5,19 +5,36 @@ namespace Egulias\EmailValidator\Warning; abstract class Warning { const CODE = 0; - protected $message; - protected $rfcNumber; + /** + * @var string + */ + protected $message = ''; + + /** + * @var int + */ + protected $rfcNumber = 0; + + /** + * @return string + */ public function message() { return $this->message; } + /** + * @return int + */ public function code() { return self::CODE; } + /** + * @return int + */ public function RFCNumber() { return $this->rfcNumber; diff --git a/user/plugins/email/vendor/egulias/email-validator/README.md b/user/plugins/email/vendor/egulias/email-validator/README.md index 008669c..b5b0d85 100644 --- a/user/plugins/email/vendor/egulias/email-validator/README.md +++ b/user/plugins/email/vendor/egulias/email-validator/README.md @@ -1,5 +1,5 @@ # EmailValidator -[![Build Status](https://travis-ci.org/egulias/EmailValidator.png?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.png?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) +[![Build Status](https://travis-ci.org/egulias/EmailValidator.svg?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.svg?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) ============================= ## Suported RFCs ## This library aims to support: @@ -16,7 +16,7 @@ RFC 5321, 5322, 6530, 6531, 6532. Run the command below to install via Composer ```shell -composer require egulias/email-validator "~2.1" +composer require egulias/email-validator ``` ## Getting Started ## diff --git a/user/plugins/email/vendor/egulias/email-validator/composer.json b/user/plugins/email/vendor/egulias/email-validator/composer.json index 5423e9f..595caff 100644 --- a/user/plugins/email/vendor/egulias/email-validator/composer.json +++ b/user/plugins/email/vendor/egulias/email-validator/composer.json @@ -2,7 +2,6 @@ "name": "egulias/email-validator", "description": "A library for validating emails against several RFCs", "homepage": "https://github.com/egulias/EmailValidator", - "type": "Library", "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], "license": "MIT", "authors": [ @@ -10,23 +9,18 @@ ], "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, - "repositories": [ - { - "type": "git", - "url": "https://github.com/dominicsayers/isemail" - } - ], - "require": { - "php": ">= 5.5", - "doctrine/lexer": "^1.0.1" + "require": { + "php": ">=5.5", + "doctrine/lexer": "^1.0.1", + "symfony/polyfill-intl-idn": "^1.10" }, - "require-dev" : { + "require-dev": { "satooshi/php-coveralls": "^1.0.1", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "dominicsayers/isemail": "dev-master" + "phpunit/phpunit": "^4.8.36|^7.5.15", + "dominicsayers/isemail": "^3.0.7" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -38,7 +32,7 @@ }, "autoload-dev": { "psr-4": { - "Egulias\\Tests\\": "test" + "Egulias\\Tests\\": "Tests" } } } diff --git a/user/plugins/email/vendor/egulias/email-validator/phpunit.xml.dist b/user/plugins/email/vendor/egulias/email-validator/phpunit.xml.dist index b0812f9..1122406 100644 --- a/user/plugins/email/vendor/egulias/email-validator/phpunit.xml.dist +++ b/user/plugins/email/vendor/egulias/email-validator/phpunit.xml.dist @@ -8,7 +8,6 @@ convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" - syntaxCheck="false" bootstrap="vendor/autoload.php" > @@ -19,8 +18,8 @@ - - ./vendor - + + ./EmailValidator/ + diff --git a/user/plugins/email/vendor/egulias/email-validator/psalm.baseline.xml b/user/plugins/email/vendor/egulias/email-validator/psalm.baseline.xml new file mode 100644 index 0000000..f81df72 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/psalm.baseline.xml @@ -0,0 +1,19 @@ + + + + + self::$nullToken + + + + + parse + + + + + Spoofchecker + Spoofchecker + + + diff --git a/user/plugins/email/vendor/egulias/email-validator/psalm.xml b/user/plugins/email/vendor/egulias/email-validator/psalm.xml new file mode 100644 index 0000000..fb17dc8 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/psalm.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES b/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES index 95a6df6..ad0c815 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES @@ -1,6 +1,22 @@ Changelog ========= +6.2.2 (2019-11-12) +------------------ + + * no changes + +6.2.2 (2019-11-12) +------------------ + + * fixed cmopat with PHP 7.4 + * fixed error message when connecting to a stream raises an error before connect() + +6.2.1 (2019-04-21) +------------------ + + * reverted "deprecated Swift_CharacterStream_ArrayCharacterStream and Swift_CharacterStream_NgCharacterStream in favor of Swift_CharacterStream_CharacterStream" + 6.2.0 (2019-03-10) ------------------ diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/README b/user/plugins/email/vendor/swiftmailer/swiftmailer/README deleted file mode 100644 index a41b660..0000000 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/README +++ /dev/null @@ -1,15 +0,0 @@ -Swift Mailer ------------- - -Swift Mailer is a component based mailing solution for PHP 7. -It is released under the MIT license. - -Homepage: https://swiftmailer.symfony.com/ -Documentation: https://swiftmailer.symfony.com/docs/introduction.html -Bugs: https://github.com/swiftmailer/swiftmailer/issues -Repository: https://github.com/swiftmailer/swiftmailer - -Swift Mailer is highly object-oriented by design and lends itself -to use in complex web application with a great deal of flexibility. - -For full details on usage, see the documentation. diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/README.md b/user/plugins/email/vendor/swiftmailer/swiftmailer/README.md new file mode 100644 index 0000000..e718bc6 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/README.md @@ -0,0 +1,19 @@ +Swift Mailer +------------ + +Swift Mailer is a component based mailing solution for PHP 7. +It is released under the MIT license. + +Swift Mailer is highly object-oriented by design and lends itself +to use in complex web application with a great deal of flexibility. + +For full details on usage, read the [documentation](https://swiftmailer.symfony.com/docs/introduction.html). + +Sponsors +-------- + + diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst index fac402c..a3431a4 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst @@ -520,9 +520,8 @@ Setting ``To:`` Recipients or ``addTo()`` methods of the message. To set ``To:`` recipients, create the message object using either ``new -Swift_Message( ... )`` or ``new Swift_Message( ... )``, then call the -``setTo()`` method with a complete array of addresses, or use the ``addTo()`` -method to iteratively add recipients. +Swift_Message( ... )``, then call the ``setTo()`` method with a complete array +of addresses, or use the ``addTo()`` method to iteratively add recipients. The ``setTo()`` method accepts input in various formats as described earlier in this chapter. The ``addTo()`` method takes either one or two parameters. The @@ -558,9 +557,8 @@ Setting ``Cc:`` Recipients message. To set ``Cc:`` recipients, create the message object using either ``new -Swift_Message( ... )`` or ``new Swift_Message( ... )``, then call the -``setCc()`` method with a complete array of addresses, or use the ``addCc()`` -method to iteratively add recipients. +Swift_Message( ... )``, then call the ``setCc()`` method with a complete array +of addresses, or use the ``addCc()`` method to iteratively add recipients. The ``setCc()`` method accepts input in various formats as described earlier in this chapter. The ``addCc()`` method takes either one or two parameters. The @@ -596,9 +594,8 @@ Setting ``Bcc:`` Recipients it, and are set with the ``setBcc()`` or ``addBcc()`` methods of the message. To set ``Bcc:`` recipients, create the message object using either ``new -Swift_Message( ... )`` or ``new Swift_Message( ... )``, then call the -``setBcc()`` method with a complete array of addresses, or use the ``addBcc()`` -method to iteratively add recipients. +Swift_Message( ... )``, then call the ``setBcc()`` method with a complete array +of addresses, or use the ``addBcc()`` method to iteratively add recipients. The ``setBcc()`` method accepts input in various formats as described earlier in this chapter. The ``addBcc()`` method takes either one or two parameters. diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php index 7eb7634..daf75fb 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php @@ -15,7 +15,7 @@ */ abstract class Swift { - const VERSION = '6.2.0'; + const VERSION = '6.2.3'; public static $initialized = false; public static $inits = []; diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php index c2fb1d5..887658c 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php @@ -8,8 +8,6 @@ * file that was distributed with this source code. */ -@trigger_error(sprintf('The "%s" class is deprecated since Swiftmailer 6.2; use "%s" instead.', Swift_CharacterStream_ArrayCharacterStream::class, Swift_CharacterStream_CharacterStream::class), E_USER_DEPRECATED); - /** * A CharacterStream implementation which stores characters in an internal array. * diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/CharacterStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/CharacterStream.php deleted file mode 100644 index 7ce97ae..0000000 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/CharacterStream.php +++ /dev/null @@ -1,227 +0,0 @@ - - */ -class Swift_CharacterStream_CharacterStream implements Swift_CharacterStream -{ - /** - * The char reader (lazy-loaded) for the current charset. - * - * @var Swift_CharacterReader - */ - private $charReader; - - /** - * A factory for creating CharacterReader instances. - * - * @var Swift_CharacterReaderFactory - */ - private $charReaderFactory; - - /** - * The character set this stream is using. - * - * @var string - */ - private $charset; - - /** - * The data's stored as-is. - * - * @var string - */ - private $datas = ''; - - /** - * Number of bytes in the stream. - * - * @var int - */ - private $datasSize = 0; - - /** - * Map. - * - * @var mixed - */ - private $map; - - /** - * Map Type. - * - * @var int - */ - private $mapType = 0; - - /** - * Number of characters in the stream. - * - * @var int - */ - private $charCount = 0; - - /** - * Position in the stream. - * - * @var int - */ - private $currentPos = 0; - - /** - * Constructor. - * - * @param string $charset - */ - public function __construct(Swift_CharacterReaderFactory $factory, $charset) - { - $this->setCharacterReaderFactory($factory); - $this->setCharacterSet($charset); - } - - /* -- Changing parameters of the stream -- */ - - /** - * Set the character set used in this CharacterStream. - * - * @param string $charset - */ - public function setCharacterSet($charset) - { - $this->charset = $charset; - $this->charReader = null; - $this->mapType = 0; - } - - /** - * Set the CharacterReaderFactory for multi charset support. - */ - public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) - { - $this->charReaderFactory = $factory; - } - - public function flushContents() - { - $this->datas = null; - $this->map = null; - $this->charCount = 0; - $this->currentPos = 0; - $this->datasSize = 0; - } - - public function importByteStream(Swift_OutputByteStream $os) - { - $this->flushContents(); - $blocks = 512; - $os->setReadPointer(0); - while (false !== ($read = $os->read($blocks))) { - $this->write($read); - } - } - - public function importString($string) - { - $this->flushContents(); - $this->write($string); - } - - public function read($length) - { - if ($this->currentPos >= $this->charCount) { - return false; - } - $ret = false; - $length = ($this->currentPos + $length > $this->charCount) ? $this->charCount - $this->currentPos : $length; - switch ($this->mapType) { - case Swift_CharacterReader::MAP_TYPE_FIXED_LEN: - $len = $length * $this->map; - $ret = substr($this->datas, - $this->currentPos * $this->map, - $len); - $this->currentPos += $length; - break; - - case Swift_CharacterReader::MAP_TYPE_INVALID: - $ret = ''; - for (; $this->currentPos < $length; ++$this->currentPos) { - if (isset($this->map[$this->currentPos])) { - $ret .= '?'; - } else { - $ret .= $this->datas[$this->currentPos]; - } - } - break; - - case Swift_CharacterReader::MAP_TYPE_POSITIONS: - $end = $this->currentPos + $length; - $end = $end > $this->charCount ? $this->charCount : $end; - $ret = ''; - $start = 0; - if ($this->currentPos > 0) { - $start = $this->map['p'][$this->currentPos - 1]; - } - $to = $start; - for (; $this->currentPos < $end; ++$this->currentPos) { - if (isset($this->map['i'][$this->currentPos])) { - $ret .= substr($this->datas, $start, $to - $start).'?'; - $start = $this->map['p'][$this->currentPos]; - } else { - $to = $this->map['p'][$this->currentPos]; - } - } - $ret .= substr($this->datas, $start, $to - $start); - break; - } - - return $ret; - } - - public function readBytes($length) - { - $read = $this->read($length); - if (false !== $read) { - $ret = array_map('ord', str_split($read, 1)); - - return $ret; - } - - return false; - } - - public function setPointer($charOffset) - { - if ($this->charCount < $charOffset) { - $charOffset = $this->charCount; - } - $this->currentPos = $charOffset; - } - - public function write($chars) - { - if (!isset($this->charReader)) { - $this->charReader = $this->charReaderFactory->getReaderFor( - $this->charset); - $this->map = []; - $this->mapType = $this->charReader->getMapType(); - } - $ignored = ''; - $this->datas .= $chars; - $this->charCount += $this->charReader->getCharPositions(substr($this->datas, $this->datasSize), $this->datasSize, $this->map, $ignored); - if (false !== $ignored) { - $this->datasSize = strlen($this->datas) - strlen($ignored); - } else { - $this->datasSize = strlen($this->datas); - } - } -} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php index d606776..a733063 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php @@ -8,13 +8,255 @@ * file that was distributed with this source code. */ -@trigger_error(sprintf('The "%s" class is deprecated since Swiftmailer 6.2; use "%s" instead.', Swift_CharacterStream_NgCharacterStream::class, Swift_CharacterStream_CharacterStream::class), E_USER_DEPRECATED); - /** * A CharacterStream implementation which stores characters in an internal array. * * @author Xavier De Cock */ -class Swift_CharacterStream_NgCharacterStream extends Swift_CharacterStream_CharacterStream +class Swift_CharacterStream_NgCharacterStream implements Swift_CharacterStream { + /** + * The char reader (lazy-loaded) for the current charset. + * + * @var Swift_CharacterReader + */ + private $charReader; + + /** + * A factory for creating CharacterReader instances. + * + * @var Swift_CharacterReaderFactory + */ + private $charReaderFactory; + + /** + * The character set this stream is using. + * + * @var string + */ + private $charset; + + /** + * The data's stored as-is. + * + * @var string + */ + private $datas = ''; + + /** + * Number of bytes in the stream. + * + * @var int + */ + private $datasSize = 0; + + /** + * Map. + * + * @var mixed + */ + private $map; + + /** + * Map Type. + * + * @var int + */ + private $mapType = 0; + + /** + * Number of characters in the stream. + * + * @var int + */ + private $charCount = 0; + + /** + * Position in the stream. + * + * @var int + */ + private $currentPos = 0; + + /** + * Constructor. + * + * @param string $charset + */ + public function __construct(Swift_CharacterReaderFactory $factory, $charset) + { + $this->setCharacterReaderFactory($factory); + $this->setCharacterSet($charset); + } + + /* -- Changing parameters of the stream -- */ + + /** + * Set the character set used in this CharacterStream. + * + * @param string $charset + */ + public function setCharacterSet($charset) + { + $this->charset = $charset; + $this->charReader = null; + $this->mapType = 0; + } + + /** + * Set the CharacterReaderFactory for multi charset support. + */ + public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) + { + $this->charReaderFactory = $factory; + } + + /** + * @see Swift_CharacterStream::flushContents() + */ + public function flushContents() + { + $this->datas = null; + $this->map = null; + $this->charCount = 0; + $this->currentPos = 0; + $this->datasSize = 0; + } + + /** + * @see Swift_CharacterStream::importByteStream() + */ + public function importByteStream(Swift_OutputByteStream $os) + { + $this->flushContents(); + $blocks = 512; + $os->setReadPointer(0); + while (false !== ($read = $os->read($blocks))) { + $this->write($read); + } + } + + /** + * @see Swift_CharacterStream::importString() + * + * @param string $string + */ + public function importString($string) + { + $this->flushContents(); + $this->write($string); + } + + /** + * @see Swift_CharacterStream::read() + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->currentPos >= $this->charCount) { + return false; + } + $ret = false; + $length = ($this->currentPos + $length > $this->charCount) ? $this->charCount - $this->currentPos : $length; + switch ($this->mapType) { + case Swift_CharacterReader::MAP_TYPE_FIXED_LEN: + $len = $length * $this->map; + $ret = substr($this->datas, + $this->currentPos * $this->map, + $len); + $this->currentPos += $length; + break; + + case Swift_CharacterReader::MAP_TYPE_INVALID: + $ret = ''; + for (; $this->currentPos < $length; ++$this->currentPos) { + if (isset($this->map[$this->currentPos])) { + $ret .= '?'; + } else { + $ret .= $this->datas[$this->currentPos]; + } + } + break; + + case Swift_CharacterReader::MAP_TYPE_POSITIONS: + $end = $this->currentPos + $length; + $end = $end > $this->charCount ? $this->charCount : $end; + $ret = ''; + $start = 0; + if ($this->currentPos > 0) { + $start = $this->map['p'][$this->currentPos - 1]; + } + $to = $start; + for (; $this->currentPos < $end; ++$this->currentPos) { + if (isset($this->map['i'][$this->currentPos])) { + $ret .= substr($this->datas, $start, $to - $start).'?'; + $start = $this->map['p'][$this->currentPos]; + } else { + $to = $this->map['p'][$this->currentPos]; + } + } + $ret .= substr($this->datas, $start, $to - $start); + break; + } + + return $ret; + } + + /** + * @see Swift_CharacterStream::readBytes() + * + * @param int $length + * + * @return int[] + */ + public function readBytes($length) + { + $read = $this->read($length); + if (false !== $read) { + $ret = array_map('ord', str_split($read, 1)); + + return $ret; + } + + return false; + } + + /** + * @see Swift_CharacterStream::setPointer() + * + * @param int $charOffset + */ + public function setPointer($charOffset) + { + if ($this->charCount < $charOffset) { + $charOffset = $this->charCount; + } + $this->currentPos = $charOffset; + } + + /** + * @see Swift_CharacterStream::write() + * + * @param string $chars + */ + public function write($chars) + { + if (!isset($this->charReader)) { + $this->charReader = $this->charReaderFactory->getReaderFor( + $this->charset); + $this->map = []; + $this->mapType = $this->charReader->getMapType(); + } + $ignored = ''; + $this->datas .= $chars; + $this->charCount += $this->charReader->getCharPositions(substr($this->datas, $this->datasSize), $this->datasSize, $this->map, $ignored); + if (false !== $ignored) { + $this->datasSize = strlen($this->datas) - strlen($ignored); + } else { + $this->datasSize = strlen($this->datas); + } + } } diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php index ab17f5c..5f7b8ac 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php @@ -264,13 +264,16 @@ class Swift_Transport_StreamBuffer extends Swift_ByteStream_AbstractFilterableIn $options = array_merge($options, $this->params['stream_context_options']); } $streamContext = stream_context_create($options); - $this->stream = @stream_socket_client($host.':'.$this->params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext); - if (false === $this->stream) { - throw new Swift_TransportException( - 'Connection could not be established with host '.$this->params['host']. - ' ['.$errstr.' #'.$errno.']' - ); + + set_error_handler(function ($type, $msg) { + throw new Swift_TransportException('Connection could not be established with host '.$this->params['host'].' :'.$msg); + }); + try { + $this->stream = stream_socket_client($host.':'.$this->params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext); + } finally { + restore_error_handler(); } + if (!empty($this->params['blocking'])) { stream_set_blocking($this->stream, 1); } else { diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php index 975945b..307756c 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php @@ -84,7 +84,7 @@ Swift_DependencyContainer::getInstance() ->withDependencies(['mime.charstream']) ->register('mime.charstream') - ->asNewInstanceOf('Swift_CharacterStream_CharacterStream') + ->asNewInstanceOf('Swift_CharacterStream_NgCharacterStream') ->withDependencies(['mime.characterreaderfactory', 'properties.charset']) ->register('mime.bytecanonicalizer') diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php index 7120db1..3b940b7 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php @@ -173,7 +173,7 @@ function generateUpToDateMimeArray() ksort($valid_mime_types); // combine mime types and extensions array - $output = "$preamble\$swift_mime_types = array(\n ".implode($valid_mime_types, ",\n ")."\n);"; + $output = "$preamble\$swift_mime_types = array(\n ".implode(",\n ", $valid_mime_types)."\n);"; // write mime_types.php config file @file_put_contents('./mime_types.php', $output); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php index deea362..5bbf067 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php @@ -20,7 +20,7 @@ class Swift_Encoder_QpEncoderAcceptanceTest extends \PHPUnit\Framework\TestCase } $encoding = $encodingDir; - $charStream = new Swift_CharacterStream_CharacterStream( + $charStream = new Swift_CharacterStream_ArrayCharacterStream( $this->factory, $encoding); $encoder = new Swift_Encoder_QpEncoder($charStream); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php index e28cc93..20c68d5 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php @@ -20,7 +20,7 @@ class Swift_Encoder_Rfc2231EncoderAcceptanceTest extends \PHPUnit\Framework\Test } $encoding = $encodingDir; - $charStream = new Swift_CharacterStream_CharacterStream( + $charStream = new Swift_CharacterStream_ArrayCharacterStream( $this->factory, $encoding); $encoder = new Swift_Encoder_Rfc2231Encoder($charStream); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php index e931dda..920faed 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php @@ -18,10 +18,10 @@ class Swift_Mime_AttachmentAcceptanceTest extends \PHPUnit\Framework\TestCase $this->contentEncoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $paramEncoder = new Swift_Encoder_Rfc2231Encoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $this->emailValidator = new EmailValidator(); $this->idGenerator = new Swift_Mime_IdGenerator('example.com'); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php index a4a6395..26d1a9b 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php @@ -25,7 +25,7 @@ class Swift_Mime_ContentEncoder_QpContentEncoderAcceptanceTest extends \PHPUnit\ } $encoding = $encodingDir; - $charStream = new Swift_CharacterStream_CharacterStream( + $charStream = new Swift_CharacterStream_NgCharacterStream( $this->factory, $encoding); $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php index dbe5592..5603a67 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php @@ -18,10 +18,10 @@ class Swift_Mime_EmbeddedFileAcceptanceTest extends \PHPUnit\Framework\TestCase $this->contentEncoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $paramEncoder = new Swift_Encoder_Rfc2231Encoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $this->emailValidator = new EmailValidator(); $this->idGenerator = new Swift_Mime_IdGenerator('example.com'); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php index ec3ad72..5a12daa 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php @@ -16,7 +16,7 @@ class Swift_Mime_MimePartAcceptanceTest extends \PHPUnit\Framework\TestCase ); $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); $this->contentEncoder = new Swift_Mime_ContentEncoder_QpContentEncoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8'), + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'), new Swift_StreamFilters_ByteArrayReplacementFilter( [[0x0D, 0x0A], [0x0D], [0x0A]], [[0x0A], [0x0A], [0x0D, 0x0A]] @@ -24,10 +24,10 @@ class Swift_Mime_MimePartAcceptanceTest extends \PHPUnit\Framework\TestCase ); $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $paramEncoder = new Swift_Encoder_Rfc2231Encoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $this->emailValidator = new EmailValidator(); $this->idGenerator = new Swift_Mime_IdGenerator('example.com'); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php index da75d59..67c9551 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php @@ -10,10 +10,10 @@ class Swift_Bug206Test extends \PHPUnit\Framework\TestCase { $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $paramEncoder = new Swift_Encoder_Rfc2231Encoder( - new Swift_CharacterStream_CharacterStream($factory, 'utf-8') + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') ); $emailValidator = new EmailValidator(); $this->factory = new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $emailValidator); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug650Test.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug650Test.php index 60da76d..31036c6 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug650Test.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug650Test.php @@ -13,7 +13,7 @@ class Swift_Bug650Test extends \PHPUnit\Framework\TestCase public function testMailboxHeaderEncoding($name, $expectedEncodedName) { $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); - $charStream = new Swift_CharacterStream_CharacterStream($factory, 'utf-8'); + $charStream = new Swift_CharacterStream_NgCharacterStream($factory, 'utf-8'); $encoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder($charStream); $header = new Swift_Mime_Headers_MailboxHeader('To', $encoder, new EmailValidator()); $header->setCharset('utf-8'); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php index 3500f9f..d0158a2 100644 --- a/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php @@ -1,8 +1,5 @@ getMockery('Swift_Mime_SimpleHeaderSet'); diff --git a/user/plugins/email/vendor/symfony/polyfill-iconv/LICENSE b/user/plugins/email/vendor/symfony/polyfill-iconv/LICENSE index 24fa32c..4cd8bdd 100644 --- a/user/plugins/email/vendor/symfony/polyfill-iconv/LICENSE +++ b/user/plugins/email/vendor/symfony/polyfill-iconv/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/user/plugins/email/vendor/symfony/polyfill-iconv/README.md b/user/plugins/email/vendor/symfony/polyfill-iconv/README.md index 2421831..b0c8984 100644 --- a/user/plugins/email/vendor/symfony/polyfill-iconv/README.md +++ b/user/plugins/email/vendor/symfony/polyfill-iconv/README.md @@ -2,8 +2,8 @@ Symfony Polyfill / Iconv ======================== This component provides a native PHP implementation of the -[php.net/iconv](http://php.net/iconv) functions -(short of [`ob_iconv_handler`](http://php.net/manual/en/function.ob-iconv-handler.php)). +[php.net/iconv](https://php.net/iconv) functions +(short of [`ob_iconv_handler`](https://php.net/ob-iconv-handler)). More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/user/plugins/email/vendor/symfony/polyfill-iconv/Resources/charset/translit.php b/user/plugins/email/vendor/symfony/polyfill-iconv/Resources/charset/translit.php index 829ea12..ed59858 100644 --- a/user/plugins/email/vendor/symfony/polyfill-iconv/Resources/charset/translit.php +++ b/user/plugins/email/vendor/symfony/polyfill-iconv/Resources/charset/translit.php @@ -866,6 +866,7 @@ static $data = array ( '㋼' => '(ヰ)', '㋽' => '(ヱ)', '㋾' => '(ヲ)', + '㋿' => '令和', '㌀' => 'アパート', '㌁' => 'アルファ', '㌂' => 'アンペア', @@ -3133,6 +3134,7 @@ static $data = array ( '🈸' => '申', '🈹' => '割', '🈺' => '営', + '🈻' => '配', '🉀' => '〔本〕', '🉁' => '〔三〕', '🉂' => '〔二〕', @@ -3878,6 +3880,104 @@ static $data = array ( 'ỽ' => 'v', 'Ỿ' => 'Y', 'ỿ' => 'y', + 'Ⱡ' => 'L', + 'ⱡ' => 'l', + 'Ɫ' => 'L', + 'Ᵽ' => 'P', + 'Ɽ' => 'R', + 'ⱥ' => 'a', + 'ⱦ' => 't', + 'Ⱨ' => 'H', + 'ⱨ' => 'h', + 'Ⱪ' => 'K', + 'ⱪ' => 'k', + 'Ⱬ' => 'Z', + 'ⱬ' => 'z', + 'Ɱ' => 'M', + 'ⱱ' => 'v', + 'Ⱳ' => 'W', + 'ⱳ' => 'w', + 'ⱴ' => 'v', + 'ⱸ' => 'e', + 'ⱺ' => 'o', + 'Ȿ' => 'S', + 'Ɀ' => 'Z', + 'ꜰ' => 'F', + 'ꜱ' => 'S', + 'Ꜳ' => 'AA', + 'ꜳ' => 'aa', + 'Ꜵ' => 'AO', + 'ꜵ' => 'ao', + 'Ꜷ' => 'AU', + 'ꜷ' => 'au', + 'Ꜹ' => 'AV', + 'ꜹ' => 'av', + 'Ꜻ' => 'AV', + 'ꜻ' => 'av', + 'Ꜽ' => 'AY', + 'ꜽ' => 'ay', + 'Ꝁ' => 'K', + 'ꝁ' => 'k', + 'Ꝃ' => 'K', + 'ꝃ' => 'k', + 'Ꝅ' => 'K', + 'ꝅ' => 'k', + 'Ꝇ' => 'L', + 'ꝇ' => 'l', + 'Ꝉ' => 'L', + 'ꝉ' => 'l', + 'Ꝋ' => 'O', + 'ꝋ' => 'o', + 'Ꝍ' => 'O', + 'ꝍ' => 'o', + 'Ꝏ' => 'OO', + 'ꝏ' => 'oo', + 'Ꝑ' => 'P', + 'ꝑ' => 'p', + 'Ꝓ' => 'P', + 'ꝓ' => 'p', + 'Ꝕ' => 'P', + 'ꝕ' => 'p', + 'Ꝗ' => 'Q', + 'ꝗ' => 'q', + 'Ꝙ' => 'Q', + 'ꝙ' => 'q', + 'Ꝟ' => 'V', + 'ꝟ' => 'v', + 'Ꝡ' => 'VY', + 'ꝡ' => 'vy', + 'Ꝥ' => 'TH', + 'ꝥ' => 'th', + 'Ꝧ' => 'TH', + 'ꝧ' => 'th', + 'ꝱ' => 'd', + 'ꝲ' => 'l', + 'ꝳ' => 'm', + 'ꝴ' => 'n', + 'ꝵ' => 'r', + 'ꝶ' => 'R', + 'ꝷ' => 't', + 'Ꝺ' => 'D', + 'ꝺ' => 'd', + 'Ꝼ' => 'F', + 'ꝼ' => 'f', + 'Ꞇ' => 'T', + 'ꞇ' => 't', + 'Ꞑ' => 'N', + 'ꞑ' => 'n', + 'Ꞓ' => 'C', + 'ꞓ' => 'c', + 'Ꞡ' => 'G', + 'ꞡ' => 'g', + 'Ꞣ' => 'K', + 'ꞣ' => 'k', + 'Ꞥ' => 'N', + 'ꞥ' => 'n', + 'Ꞧ' => 'R', + 'ꞧ' => 'r', + 'Ꞩ' => 'S', + 'ꞩ' => 's', + 'Ɦ' => 'H', '©' => '(C)', '®' => '(R)', '₠' => 'CE', @@ -3887,8 +3987,28 @@ static $data = array ( '₧' => 'Pts', '₺' => 'TL', '₹' => 'Rs', + '℗' => '(P)', + '℘' => 'P', '℞' => 'Rx', '〇' => '0', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + 'ʹ' => '\'', + 'ʺ' => '"', + 'ʻ' => '\'', + 'ʼ' => '\'', + 'ʽ' => '\'', + 'ˈ' => '\'', + 'ˋ' => '`', '‘' => '\'', '’' => '\'', '‚' => ',', @@ -3904,6 +4024,7 @@ static $data = array ( '»' => '>>', '‹' => '<', '›' => '>', + '­' => '-', '‐' => '-', '‑' => '-', '‒' => '-', @@ -3912,6 +4033,12 @@ static $data = array ( '―' => '-', '︱' => '-', '︲' => '-', + '˂' => '<', + '˃' => '>', + '˄' => '^', + 'ˆ' => '^', + 'ː' => ':', + '˜' => '~', '‖' => '||', '⁄' => '/', '⁅' => '[', @@ -3952,6 +4079,8 @@ static $data = array ( '﹈' => ']', '×' => '*', '÷' => '/', + '˖' => '+', + '˗' => '-', '−' => '-', '∕' => '/', '∖' => '\\', diff --git a/user/plugins/email/vendor/symfony/polyfill-iconv/bootstrap.php b/user/plugins/email/vendor/symfony/polyfill-iconv/bootstrap.php index 5274732..e59d196 100644 --- a/user/plugins/email/vendor/symfony/polyfill-iconv/bootstrap.php +++ b/user/plugins/email/vendor/symfony/polyfill-iconv/bootstrap.php @@ -11,12 +11,14 @@ use Symfony\Polyfill\Iconv as p; -if (!function_exists('iconv')) { +if (!defined('ICONV_IMPL')) { define('ICONV_IMPL', 'Symfony'); define('ICONV_VERSION', '1.0'); define('ICONV_MIME_DECODE_STRICT', 1); define('ICONV_MIME_DECODE_CONTINUE_ON_ERROR', 2); +} +if (!function_exists('iconv')) { function iconv($from, $to, $s) { return p\Iconv::iconv($from, $to, $s); } function iconv_get_encoding($type = 'all') { return p\Iconv::iconv_get_encoding($type); } function iconv_set_encoding($type, $charset) { return p\Iconv::iconv_set_encoding($type, $charset); } diff --git a/user/plugins/email/vendor/symfony/polyfill-iconv/composer.json b/user/plugins/email/vendor/symfony/polyfill-iconv/composer.json index 816e6bd..6c940ac 100644 --- a/user/plugins/email/vendor/symfony/polyfill-iconv/composer.json +++ b/user/plugins/email/vendor/symfony/polyfill-iconv/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } } } diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php index f205f39..adb718d 100644 --- a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php @@ -43,6 +43,9 @@ namespace Symfony\Polyfill\Intl\Idn; */ final class Idn { + const INTL_IDNA_VARIANT_2003 = 0; + const INTL_IDNA_VARIANT_UTS46 = 1; + private static $encodeTable = array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', @@ -60,18 +63,18 @@ final class Idn public static function idn_to_ascii($domain, $options, $variant, &$idna_info = array()) { - if (\PHP_VERSION_ID >= 70200 && INTL_IDNA_VARIANT_2003 === $variant) { + if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { @trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED); } - if (INTL_IDNA_VARIANT_UTS46 === $variant) { + if (self::INTL_IDNA_VARIANT_UTS46 === $variant) { $domain = mb_strtolower($domain, 'utf-8'); } $parts = explode('.', $domain); - foreach ($parts as &$part) { - if ('' === $part) { + foreach ($parts as $i => &$part) { + if ('' === $part && \count($parts) > 1 + $i) { return false; } if (false === $part = self::encodePart($part)) { @@ -92,7 +95,7 @@ final class Idn public static function idn_to_utf8($domain, $options, $variant, &$idna_info = array()) { - if (\PHP_VERSION_ID >= 70200 && INTL_IDNA_VARIANT_2003 === $variant) { + if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { @trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED); } diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE b/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE index ad399a7..3f853aa 100644 --- a/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018 Fabien Potencier +Copyright (c) 2018-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md b/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md index 5fd8c6e..2e75f2e 100644 --- a/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md @@ -1,7 +1,7 @@ Symfony Polyfill / Intl: Idn ============================ -This component provides `idn_to_ascii` and `idn_to_utf8` functions to users who run php versions without the intl extension. +This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension. More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php index c6e3921..b29d4e5 100644 --- a/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php @@ -11,7 +11,7 @@ use Symfony\Polyfill\Intl\Idn as p; -if (!function_exists('idn_to_ascii')) { +if (!defined('IDNA_DEFAULT')) { define('U_IDNA_PROHIBITED_ERROR', 66560); define('U_IDNA_ERROR_START', 66560); define('U_IDNA_UNASSIGNED_ERROR', 66561); @@ -48,7 +48,9 @@ if (!function_exists('idn_to_ascii')) { define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); define('IDNA_ERROR_BIDI', 2048); define('IDNA_ERROR_CONTEXTJ', 4096); +} +if (!function_exists('idn_to_ascii')) { if (PHP_VERSION_ID < 70400) { function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); } function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); } diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json b/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json index 8f46fbd..ef2c006 100644 --- a/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=5.3.3", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" + "symfony/polyfill-php72": "^1.10" }, "autoload": { "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" }, @@ -30,7 +30,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } } } diff --git a/user/plugins/email/vendor/symfony/polyfill-mbstring/LICENSE b/user/plugins/email/vendor/symfony/polyfill-mbstring/LICENSE index 24fa32c..4cd8bdd 100644 --- a/user/plugins/email/vendor/symfony/polyfill-mbstring/LICENSE +++ b/user/plugins/email/vendor/symfony/polyfill-mbstring/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/user/plugins/email/vendor/symfony/polyfill-mbstring/Mbstring.php b/user/plugins/email/vendor/symfony/polyfill-mbstring/Mbstring.php index a5e4a8f..15503bc 100644 --- a/user/plugins/email/vendor/symfony/polyfill-mbstring/Mbstring.php +++ b/user/plugins/email/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -35,6 +35,7 @@ namespace Symfony\Polyfill\Mbstring; * - mb_strlen - Get string length * - mb_strpos - Find position of first occurrence of string in a string * - mb_strrpos - Find position of last occurrence of a string in a string + * - mb_str_split - Convert a string to an array * - mb_strtolower - Make a string lowercase * - mb_strtoupper - Make a string uppercase * - mb_substitute_character - Set/Get substitution character @@ -511,7 +512,9 @@ final class Mbstring $offset = 0; } elseif ($offset = (int) $offset) { if ($offset < 0) { - $haystack = self::mb_substr($haystack, 0, $offset, $encoding); + if (0 > $offset += self::mb_strlen($needle)) { + $haystack = self::mb_substr($haystack, 0, $offset, $encoding); + } $offset = 0; } else { $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding); @@ -523,6 +526,45 @@ final class Mbstring return false !== $pos ? $offset + $pos : false; } + public static function mb_str_split($string, $split_length = 1, $encoding = null) + { + if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) { + trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING); + + return null; + } + + if (1 > $split_length = (int) $split_length) { + trigger_error('The length of each segment must be greater than zero', E_USER_WARNING); + + return false; + } + + if (null === $encoding) { + $encoding = mb_internal_encoding(); + } + + if ('UTF-8' === $encoding = self::getEncoding($encoding)) { + $rx = '/('; + while (65535 < $split_length) { + $rx .= '.{65535}'; + $split_length -= 65535; + } + $rx .= '.{'.$split_length.'})/us'; + + return preg_split($rx, $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); + } + + $result = array(); + $length = mb_strlen($string, $encoding); + + for ($i = 0; $i < $length; $i += $split_length) { + $result[] = mb_substr($string, $i, $split_length, $encoding); + } + + return $result; + } + public static function mb_strtolower($s, $encoding = null) { return self::mb_convert_case($s, MB_CASE_LOWER, $encoding); @@ -546,7 +588,7 @@ final class Mbstring { $encoding = self::getEncoding($encoding); if ('CP850' === $encoding || 'ASCII' === $encoding) { - return substr($s, $start, null === $length ? 2147483647 : $length); + return (string) substr($s, $start, null === $length ? 2147483647 : $length); } if ($start < 0) { @@ -786,11 +828,16 @@ final class Mbstring return self::$internalEncoding; } + if ('UTF-8' === $encoding) { + return 'UTF-8'; + } + $encoding = strtoupper($encoding); if ('8BIT' === $encoding || 'BINARY' === $encoding) { return 'CP850'; } + if ('UTF8' === $encoding) { return 'UTF-8'; } diff --git a/user/plugins/email/vendor/symfony/polyfill-mbstring/README.md b/user/plugins/email/vendor/symfony/polyfill-mbstring/README.md index 342e828..4efb599 100644 --- a/user/plugins/email/vendor/symfony/polyfill-mbstring/README.md +++ b/user/plugins/email/vendor/symfony/polyfill-mbstring/README.md @@ -2,7 +2,7 @@ Symfony Polyfill / Mbstring =========================== This component provides a partial, native PHP implementation for the -[Mbstring](http://php.net/mbstring) extension. +[Mbstring](https://php.net/mbstring) extension. More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/user/plugins/email/vendor/symfony/polyfill-mbstring/bootstrap.php b/user/plugins/email/vendor/symfony/polyfill-mbstring/bootstrap.php index 2fdcc5a..8c8225c 100644 --- a/user/plugins/email/vendor/symfony/polyfill-mbstring/bootstrap.php +++ b/user/plugins/email/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -11,11 +11,13 @@ use Symfony\Polyfill\Mbstring as p; -if (!function_exists('mb_strlen')) { +if (!defined('MB_CASE_UPPER')) { define('MB_CASE_UPPER', 0); define('MB_CASE_LOWER', 1); define('MB_CASE_TITLE', 2); +} +if (!function_exists('mb_strlen')) { function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); } function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); } function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); } @@ -56,3 +58,7 @@ if (!function_exists('mb_chr')) { function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); } function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); } } + +if (!function_exists('mb_str_split')) { + function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-mbstring/composer.json b/user/plugins/email/vendor/symfony/polyfill-mbstring/composer.json index 50ea12f..02b8896 100644 --- a/user/plugins/email/vendor/symfony/polyfill-mbstring/composer.json +++ b/user/plugins/email/vendor/symfony/polyfill-mbstring/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } } } diff --git a/user/plugins/email/vendor/symfony/polyfill-php72/LICENSE b/user/plugins/email/vendor/symfony/polyfill-php72/LICENSE index 24fa32c..4cd8bdd 100644 --- a/user/plugins/email/vendor/symfony/polyfill-php72/LICENSE +++ b/user/plugins/email/vendor/symfony/polyfill-php72/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/user/plugins/email/vendor/symfony/polyfill-php72/README.md b/user/plugins/email/vendor/symfony/polyfill-php72/README.md index 82c45f7..8ac181e 100644 --- a/user/plugins/email/vendor/symfony/polyfill-php72/README.md +++ b/user/plugins/email/vendor/symfony/polyfill-php72/README.md @@ -16,7 +16,7 @@ Moved to core since 7.2 (was in the optional XML extension earlier): - [`utf8_decode`](https://php.net/utf8_decode) Also, it provides a constant added to PHP 7.2: -- [`PHP_OS_FAMILY`](http://php.net/manual/en/reserved.constants.php#constant.php-os-family) +- [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family) More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/user/plugins/email/vendor/symfony/polyfill-php72/composer.json b/user/plugins/email/vendor/symfony/polyfill-php72/composer.json index 5d66ef7..27901f2 100644 --- a/user/plugins/email/vendor/symfony/polyfill-php72/composer.json +++ b/user/plugins/email/vendor/symfony/polyfill-php72/composer.json @@ -25,7 +25,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.15-dev" } } } diff --git a/user/plugins/form/CHANGELOG.md b/user/plugins/form/CHANGELOG.md index fd0e7e5..7a741a6 100644 --- a/user/plugins/form/CHANGELOG.md +++ b/user/plugins/form/CHANGELOG.md @@ -1,3 +1,124 @@ +# v4.1.1 +## 09/01/2020 + +1. [](#bugfix) + * Key field should not escape the value + +# v4.1.0 +## 07/29/2020 + +1. [](#new) + * Support JSON based form submissions +1. [](#improved) + * Improved handling of error messages with more details + translation [#428](https://github.com/getgrav/grav-plugin-form/pull/428) [#429](https://github.com/getgrav/grav-plugin-form/pull/429) + * Various improvements for nested form data in `data.html.twig` and `data.txt.twig` + * Use `|length` rather than `|count` twig filter + * Various language updates +1. [](#bugfix) + * Disabled the EXIF library for Dropzone for fixing the orientation as it was getting applied twice [#1923](https://github.com/getgrav/grav-plugin-admin/issues/1923) + * Forked Dropzone fo fix issue with Resize + EXIF orientation [#1923](https://github.com/getgrav/grav-plugin-admin/issues/1923) + +# v4.0.10 +## 06/08/2020 + +1. [](#improved) + * Updated languages +1. [](#bugfix) + * Fixed redirect causing empty form on homepage forms with no action set + +# v4.0.9 +## 06/03/2020 + +1. [](#bugfix) + * Fixed bad `id` attribute on `checkbox` field [#421](https://github.com/getgrav/grav-plugin-form/issues/421) + * Show the `description` span even for an empty description [#313](https://github.com/getgrav/grav-plugin-form/pull/313) + +# v4.0.8 +## 04/30/2020 + +1. [](#bugfix) + * Fixed issue with `force_bool` in `toggle` field to be more robust + +# v4.0.7 +## 04/27/2020 + +1. [](#new) + * Added ability to hide form fields in `data.html.twig` and `data.txt.twig` with `field.store: false` +1. [](#improved) + * Updated node dependencies + * Added new `force_bool: true|false` option to `toggle` field to cast strings for use in BC situations +1. [](#bugfix) + * Fix markdown links in changelog [#415](https://github.com/getgrav/grav-plugin-form/pull/415) + +# v4.0.6 +## 03/19/2020 +1. [](#new) + * CHANGE: Form labels are now displayed in `raw` format so you can use HTML in them + * Added support for `name` attribute on buttons [#411](https://github.com/getgrav/grav-plugin-form/issues/411) +1. [](#improved) + * Added support for `classes` option in `avatar` field + * Recompiled JS with latest NPM libraries +1. [](#bugfix) + * Fixed password field outputting the contents to HTML (will now always be empty when loading the page) + * Escape default output in `formdata.html.twig` [#384](https://github.com/getgrav/grav-plugin-form/issues/384) + * Better JS rendering of captcha field scripts for VueJS template compatibility + +# v4.0.5 +## 03/05/2020 + +1. [](#bugfix) + * Fixed form actions that post to page anchors should not have current base_url added (e.g. `#contact-us`) + * Fixed toggleable buttons no longer holding false state [#406](https://github.com/getgrav/grav-plugin-form/issues/406) + +# v4.0.4 +## 02/25/2020 + +1. [](#bugfix) + * Fix for `enctype` in multipart forms [#408](https://github.com/getgrav/grav-plugin-form/issues/408) + +# v4.0.3 +## 02/11/2020 + +1. [](#new) + * Pass phpstan level 1 tests + +# v4.0.2 +## 02/03/2020 + +1. [](#improved) + * Allow checkbox field to have custom value, default to 1 +1. [](#bugfix) + * Fixed `toggle` field not working with `toggleable: true` + * Fixed fatal error when form type is disabled + +# v4.0.1 +## 01/02/2020 + +1. [](#improved) + * Improve Grav 1.7 support by not using deprecated `$page->modular()` call + * Use form scope if it is defined +1. [](#bugfix) + * Fixed bad HTML in select, radio, key, toggle, checkbox ad textarea when using tabindex attribute + * Fixed bad looking `tabs` field with a single tab in admin + +# v4.0.0 +## 11/06/2019 + +1. [](#new) + * Added `tabindex` to global attributes of default field + * Add ability to Sanitize SVGs on upload (Grav 1.7+ required) +1. [](#improved) + * Deprecate `select_optgroup` as `select` can handle optgroups now + * Added missing tabindex checks + * Refactored field inheritance to make things more reliable + * Removed jQuery dependency for the reCaptcha field and VanillaJS-ified it instead + * Removed a stray `dump()` command + * Refactored the base `templates/forms/default` twig templates to make things more extensible + * Added a new `templates/forms/layouts` set of twit templates to allow for easier customization +1. [](#bugfix) + * Fixed `Badly encoded JSON data` warning when uploading files [grav#2663](https://github.com/getgrav/grav/issues/2663) + * Fixed a number of escaping issues [#368](https://github.com/getgrav/grav-plugin-form/issues/368) + # v3.0.9 ## 09/19/2019 @@ -14,7 +135,7 @@ * Change form save action location to `user-data://` stream [#353](https://github.com/getgrav/grav-plugin-form/issues/353) * Updated `eu`, `fr` and `pl` language * Make `Form::initialize()` chainable - * Added `folder` option to `save:` action with fallback + * Added `folder` option to `save:` action with fallback 1. [](#bugfix) * Fixed Submit & Redirect not working as expected [#355](https://github.com/getgrav/grav-plugin-form/issues/355) * Fixed oversensitive refresh prevention [#354](https://github.com/getgrav/grav-plugin-form/issues/354) diff --git a/user/plugins/form/README.md b/user/plugins/form/README.md index fb9e682..d171e9e 100644 --- a/user/plugins/form/README.md +++ b/user/plugins/form/README.md @@ -26,4 +26,12 @@ The Learn site has two pages describing how to use the Form Plugin: # Using email -Note: when using email functionality in your forms, make sure you have configured the Email plugin correctly. In particular, make sure you configured the "Email from" and "Email to" email addresses in the Email plugin with your email address +Note: when using email functionality in your forms, make sure you have configured the Email plugin correctly. In particular, make sure you configured the "Email from" and "Email to" email addresses in the Email plugin with your email address. + +# NOTES: + +As of version **Form version 4.0.6**, form labels are now being output with the `|raw` filter. If you wish to show HTML in your form label, ie `Root Folder `, then you need to escape that in your form definition: + +```yaml +label: Root Folder <root> +``` diff --git a/user/plugins/form/app/fields/file.js b/user/plugins/form/app/fields/file.js index fd546f1..cd8e34c 100644 --- a/user/plugins/form/app/fields/file.js +++ b/user/plugins/form/app/fields/file.js @@ -1,6 +1,6 @@ import $ from 'jquery'; import Dropzone from 'dropzone'; -import EXIF from 'exif-js'; +// import EXIF from 'exif-js'; import {config, translations} from 'grav-form'; // translations @@ -28,7 +28,7 @@ const DropzoneMediaConfig = { previewTemplate: '' }; -window.EXIF = EXIF; +// window.EXIF = EXIF; export default class FilesField { constructor({container = '.dropzone.files-upload', options = {}} = {}) { diff --git a/user/plugins/form/assets/form.min.js b/user/plugins/form/assets/form.min.js index a5183f8..89ff0af 100644 --- a/user/plugins/form/assets/form.min.js +++ b/user/plugins/form/assets/form.min.js @@ -1,36 +1,36 @@ -!function(e){function a(a){for(var n,i,s=a[0],l=a[1],d=a[2],c=0,f=[];c':"';return this.isValueOnly()?e+='\n
    \n \n '+a+"\n ":e+='\n
    \n \n \n '+a+"\n ",e+='\n \n \n
    '}}]),e}(),u=function(){function e(){var a=this;s(this,e),l.on("input",'[data-grav-array-type="key"], [data-grav-array-type="value"]',function(e){return a.actionInput(e)}),l.on("click touch",'[data-grav-array-action]:not([data-grav-array-action="sort"])',function(e){return a.actionEvent(e)}),this.arrays=(0,r.default)(),(0,r.default)('[data-grav-field="array"]').each(function(e,t){return a.addArray(t)}),(0,r.default)("body").on("mutation._grav",this._onAddedNodes.bind(this))}return n(e,[{key:"addArray",value:function(e){(e=(0,r.default)(e)).find('[data-grav-array-type="container"]').each(function(e,a){(a=(0,r.default)(a)).data("array-sort")||a[0].hasAttribute("data-array-nosort")||a.data("array-sort",new o.default(a.get(0),{handle:".fa-bars",animation:150}))})}},{key:"actionInput",value:function(e){var a=(0,r.default)(e.target),t=a.data("grav-array-type");this._setTemplate(a);var n=a.data("array-template"),o="key"===t?a:a.siblings('[data-grav-array-type="key"]:first'),i="value"===t?a:a.siblings('[data-grav-array-type="value"]:first'),s=n.isValueOnly()?this.getIndexFor(a):o.val();s=s.toString().replace(/\[/g,"%5B").replace(/]/g,"%5D");var l=n.getName()+"["+s+"]";i.attr("name",i.val()?l:n.getName()),this.refreshNames(n)}},{key:"actionEvent",value:function(e){e&&e.preventDefault();var a=(0,r.default)(e.target),t=a.data("grav-array-action"),n=a.parents('[data-grav-array-type="container"]');this._setTemplate(a),this[t+"Action"](a),n[n.find("> div").length>1?"removeClass":"addClass"]("one-child")}},{key:"addAction",value:function(e){var a=e.data("array-template");e.closest('[data-grav-array-type="row"]').after(a.getNewRow())}},{key:"remAction",value:function(e){var a=e.data("array-template"),t=e.closest('[data-grav-array-type="row"]');if(!t.siblings().length){var n=(0,r.default)(a.getNewRow());t.after(n),n.find('[data-grav-array-type="value"]:last').attr("name",a.getName())}t.remove(),this.refreshNames(a)}},{key:"refreshNames",value:function(e){if(e.isValueOnly()){var a=e.container.find('> div > [data-grav-array-type="row"]'),t=a.find('[name]:not([name=""])');t.each(function(e,a){var t=(a=(0,r.default)(a)).attr("name");t=t.replace(/\[\d+\]$/,"["+e+"]"),a.attr("name",t)}),t.length||a.find('[data-grav-array-type="value"]').attr("name",e.getName())}}},{key:"getIndexFor",value:function(e){var a=e.data("array-template"),t=e.closest('[data-grav-array-type="row"]');return a.container.find((a.isValueOnly()?"> div ":"")+' > [data-grav-array-type="row"]').index(t)}},{key:"_setTemplate",value:function(e){e.data("array-template")||e.data("array-template",new d(e.closest("[data-grav-array-name]")))}},{key:"_onAddedNodes",value:function(e,a){var t=this,n=(0,r.default)(a).find('[data-grav-field="array"]');n.length&&n.each(function(e,a){a=(0,r.default)(a),~t.arrays.index(a)||t.addArray(a)})}}]),e}();a.default=u;a.Instance=new u},"./app/fields/file.js": +/*! exports provided: default, Instance */function(e,a,t){"use strict";t.r(a),t.d(a,"default",function(){return u}),t.d(a,"Instance",function(){return p});var n=t(/*! jquery */"jquery"),c=t.n(n),r=t(/*! sortablejs */"./node_modules/sortablejs/modular/sortable.esm.js");function o(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}function i(e,a){for(var t=0;t'):"');return this.isValueOnly()?e+='\n
    \n \n '.concat(a,"\n "):e+='\n
    \n \n \n ').concat(a,"\n "),e+='\n \n \n
    '}}]),a}(),u=function(){function e(){var t=this;o(this,e),l.on("input",'[data-grav-array-type="key"], [data-grav-array-type="value"]',function(e){return t.actionInput(e)}),l.on("click touch",'[data-grav-array-action]:not([data-grav-array-action="sort"])',function(e){return t.actionEvent(e)}),this.arrays=c()(),c()('[data-grav-field="array"]').each(function(e,a){return t.addArray(a)}),c()("body").on("mutation._grav",this._onAddedNodes.bind(this))}return s(e,[{key:"addArray",value:function(e){(e=c()(e)).find('[data-grav-array-type="container"]').each(function(e,a){(a=c()(a)).data("array-sort")||a[0].hasAttribute("data-array-nosort")||a.data("array-sort",new r.default(a.get(0),{handle:".fa-bars",animation:150}))})}},{key:"actionInput",value:function(e){var a=c()(e.target),t=a.data("grav-array-type");this._setTemplate(a);var n=a.data("array-template"),r="key"===t?a:a.siblings('[data-grav-array-type="key"]:first'),o="value"===t?a:a.siblings('[data-grav-array-type="value"]:first'),i=n.isValueOnly()?this.getIndexFor(a):r.val();i=i.toString().replace(/\[/g,"%5B").replace(/]/g,"%5D");var s="".concat(n.getName(),"[").concat(i,"]");o.attr("name",o.val()?s:n.getName()),this.refreshNames(n)}},{key:"actionEvent",value:function(e){e&&e.preventDefault();var a=c()(e.target),t=a.data("grav-array-action"),n=a.parents('[data-grav-array-type="container"]');this._setTemplate(a),this["".concat(t,"Action")](a);var r=n.find("> div");n[1 div > [data-grav-array-type="row"]'),t=a.find('[name]:not([name=""])');t.each(function(e,a){var t=(a=c()(a)).attr("name");t=t.replace(/\[\d+\]$/,"[".concat(e,"]")),a.attr("name",t)}),t.length||a.find('[data-grav-array-type="value"]').attr("name",e.getName())}}},{key:"getIndexFor",value:function(e){var a=e.data("array-template"),t=e.closest('[data-grav-array-type="row"]');return a.container.find("".concat(a.isValueOnly()?"> div ":"",' > [data-grav-array-type="row"]')).index(t)}},{key:"_setTemplate",value:function(e){e.data("array-template")||e.data("array-template",new d(e.closest("[data-grav-array-name]")))}},{key:"_onAddedNodes",value:function(e,a){var t=this,n=c()(a).find('[data-grav-field="array"]');n.length&&n.each(function(e,a){a=c()(a),~t.arrays.index(a)||t.addArray(a)})}}]),e}(),p=new u},"./app/fields/file.js": /*!****************************!*\ !*** ./app/fields/file.js ***! \****************************/ -/*! no static exports found */function(e,a,t){"use strict";(function(e){Object.defineProperty(a,"__esModule",{value:!0}),a.Instances=void 0;var n=function(){function e(e,a){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.container,n=void 0===t?".dropzone.files-upload":t,i=e.options,l=void 0===i?{}:i;!function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}(this,a),this.container=(0,r.default)(n),this.container.length&&(this.urls={},u.previewTemplate=(0,r.default)("#dropzone-template").html(),this.options=Object.assign({},d,u,{klass:this,url:this.container.data("file-url-add")||s.config.current_url,acceptedFiles:this.container.data("media-types"),init:this.initDropzone},this.container.data("dropzone-options"),l),this.dropzone=new o.default(n,this.options),this.dropzone.on("complete",this.onDropzoneComplete.bind(this)),this.dropzone.on("success",this.onDropzoneSuccess.bind(this)),this.dropzone.on("removedfile",this.onDropzoneRemovedFile.bind(this)),this.dropzone.on("sending",this.onDropzoneSending.bind(this)),this.dropzone.on("error",this.onDropzoneError.bind(this)))}return n(a,[{key:"initDropzone",value:function(){var e=this,a=this.options.klass.container.find("[data-file]"),t=this;a.length&&a.each(function(a,n){var i=(n=(0,r.default)(n)).data("file"),s={name:i.name,size:i.size,type:i.type,status:o.default.ADDED,accepted:!0,url:e.options.url,removeUrl:i.remove,data:i};t.files.push(s),t.options.addedfile.call(t,s),s.type.match(/^image\//)&&t.options.thumbnail.call(t,s,i.path),n.remove()})}},{key:"getURI",value:function(){return this.container.data("mediaUri")||""}},{key:"onDropzoneSending",value:function(e,a,t){var n=this.container.closest("form"),r=n.find('[name="__unique_form_id__"]');t.append("__form-name__",n.find('[name="__form-name__"]').val()),r.length&&t.append("__unique_form_id__",r.val()),t.append("__form-file-uploader__",1),t.append("name",this.options.dotNotation),t.append("form-nonce",s.config.form_nonce),t.append("task","filesupload"),t.append("uri",this.getURI())}},{key:"onDropzoneSuccess",value:function(a,t,n){if(this.options.reloadPage&&e.location.reload(),t.session){a.sessionParams=t.session,a.removeUrl=this.options.url;var r=this.container.find('[name][type="hidden"]'),o=r.val();r.val(o+" ")}return this.handleError({file:a,data:t,mode:"removeFile",msg:"

    "+s.translations.PLUGIN_FORM.FILE_ERROR_UPLOAD+" "+a.name+"

    \n
    "+t.message+"
    "})}},{key:"onDropzoneComplete",value:function(a){if(!a.accepted&&!a.rejected){var t={status:"error",message:s.translations.PLUGIN_FORM.FILE_UNSUPPORTED+": "+a.name.match(/\..+/).join("")};return this.handleError({file:a,data:t,mode:"removeFile",msg:"

    "+s.translations.PLUGIN_FORM.FILE_ERROR_ADD+" "+a.name+"

    \n
    "+t.message+"
    "})}this.options.reloadPage&&e.location.reload()}},{key:"onDropzoneRemovedFile",value:function(a){var t=this;if(a.accepted&&!a.rejected){var n=this.container.closest("form"),o=n.find('[name="__unique_form_id__"]'),i=a.removeUrl||this.urls.delete||location.href+".json",l=(i||"").match(/path:(.*)\//),d=new FormData;d.append("filename",a.name),d.append("__form-name__",n.find('[name="__form-name__"]').val()),d.append("name",this.options.dotNotation),d.append("form-nonce",s.config.form_nonce),d.append("uri",this.getURI()),a.sessionParams&&(d.append("__form-file-remover__","1"),d.append("session",a.sessionParams)),o.length&&d.append("__unique_form_id__",o.val()),r.default.ajax({url:i,data:d,method:"POST",contentType:!1,processData:!1,success:function(){if(l){l=e.atob(l[1]);var a=t.container.find('[name][type="hidden"]'),n=JSON.parse(a.val()||"{}");delete n[l],a.val(JSON.stringify(n))}}})}}},{key:"onDropzoneError",value:function(e,a,t){var n=t&&a.error?a.error.message:a;return(0,r.default)(e.previewElement).find("[data-dz-errormessage]").html(n),this.handleError({file:e,data:{status:"error"},msg:"
    "+n+"
    "})}},{key:"handleError",value:function(e){return!0}}]),a}();a.default=c;var f=[],p=(0,r.default)(),v=function(e,a){var t=(0,r.default)(a).find(".dropzone.files-upload");t.length&&t.each(function(e,a){a=(0,r.default)(a),~p.index(a)||m(a)})},m=function(e){var a=(e=(0,r.default)(e)).find('input[type="file"]'),t=e.data("grav-file-settings")||{};t.accept&&~t.accept.indexOf("*")&&(t.accept=[""]);var n={url:e.data("file-url-add")||(e.closest("form").attr("action")||s.config.current_url)+".json",paramName:t.paramName||"file",dotNotation:t.name||"file",acceptedFiles:t.accept?t.accept.join(","):a.attr("accept")||e.data("media-types"),maxFilesize:t.filesize||256,maxFiles:t.limit||null,resizeWidth:t.resizeWidth||null,resizeHeight:t.resizeHeight||null,resizeQuality:t.resizeQuality||null,accept:function(e,a){var n=t.resolution,r="";if(!n)return a();if(null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles)return a(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e);var o=new FileReader;if(!n.min&&(t.resizeWidth||t.resizeHeight||!n.max))return a(r);o.onload=function(e){var o=new Image;o.src=e.target.result,o.onload=function(){var e=this;n.min&&Object.keys(n.min).forEach(function(a){e[a]n.max[a]&&(r+=s.translations.PLUGIN_FORM.RESOLUTION_MAX.replace(/{{attr}}/g,a).replace(/{{max}}/g,n.max[a]))}),a(r)}},o.readAsDataURL(e)}};p=p.add(e),e=e[0],f.push(new c({container:e,options:n}))};a.Instances=((0,r.default)(document).ready(function(){(0,r.default)(".dropzone.files-upload").each(function(e,a){return m(a)}),(0,r.default)("body").on("mutation._grav",v)}),f)}).call(this,t(/*! ./../../node_modules/webpack/buildin/global.js */"./node_modules/webpack/buildin/global.js"))},"./app/fields/form.js": +/*! exports provided: default, Instances */function(e,v,h){"use strict";h.r(v),function(s){h.d(v,"default",function(){return r}),h.d(v,"Instances",function(){return m});var e=h(/*! jquery */"jquery"),c=h.n(e),a=h(/*! dropzone */"./node_modules/dropzone/dist/dropzone.js"),i=h.n(a),l=h(/*! grav-form */"grav-form");function n(e,a){for(var t=0;t".concat(l.translations.PLUGIN_FORM.FILE_ERROR_UPLOAD," ").concat(e.name,"

    \n
    ").concat(a.message,"
    ")})}},{key:"onDropzoneComplete",value:function(e){if(!e.accepted&&!e.rejected){var a={status:"error",message:"".concat(l.translations.PLUGIN_FORM.FILE_UNSUPPORTED,": ").concat(e.name.match(/\..+/).join(""))};return this.handleError({file:e,data:a,mode:"removeFile",msg:"

    ".concat(l.translations.PLUGIN_FORM.FILE_ERROR_ADD," ").concat(e.name,"

    \n
    ").concat(a.message,"
    ")})}this.options.reloadPage&&s.location.reload()}},{key:"onDropzoneRemovedFile",value:function(e){var t=this;if(e.accepted&&!e.rejected){var a=this.container.closest("form"),n=a.find('[name="__unique_form_id__"]'),r=e.removeUrl||this.urls.delete||"".concat(location.href,".json"),o=(r||"").match(/path:(.*)\//),i=new FormData;i.append("filename",e.name),i.append("__form-name__",a.find('[name="__form-name__"]').val()),i.append("name",this.options.dotNotation),i.append("form-nonce",l.config.form_nonce),i.append("uri",this.getURI()),e.sessionParams&&(i.append("__form-file-remover__","1"),i.append("session",e.sessionParams)),n.length&&i.append("__unique_form_id__",n.val()),c.a.ajax({url:r,data:i,method:"POST",contentType:!1,processData:!1,success:function(){if(o){o=s.atob(o[1]);var e=t.container.find('[name][type="hidden"]'),a=JSON.parse(e.val()||"{}");delete a[o],e.val(JSON.stringify(a))}}})}}},{key:"onDropzoneError",value:function(e,a,t){var n=t&&a.error?a.error.message:a;return c()(e.previewElement).find("[data-dz-errormessage]").html(n),this.handleError({file:e,data:{status:"error"},msg:"
    ".concat(n,"
    ")})}},{key:"handleError",value:function(){return!0}}])&&n(e.prototype,a),t&&n(e,t),o}(),p=[],f=c()(),o=function(e){var a=(e=c()(e)).find('input[type="file"]'),o=e.data("grav-file-settings")||{};o.accept&&~o.accept.indexOf("*")&&(o.accept=[""]);var t={url:e.data("file-url-add")||(e.closest("form").attr("action")||l.config.current_url)+".json",paramName:o.paramName||"file",dotNotation:o.name||"file",acceptedFiles:o.accept?o.accept.join(","):a.attr("accept")||e.data("media-types"),maxFilesize:o.filesize||256,maxFiles:o.limit||null,resizeWidth:o.resizeWidth||null,resizeHeight:o.resizeHeight||null,resizeQuality:o.resizeQuality||null,accept:function(e,t){var n=o.resolution,r="";if(!n)return t();if(null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles)return t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e);var a=new FileReader;if(!n.min&&(o.resizeWidth||o.resizeHeight||!n.max))return t(r);a.onload=function(e){var a=new Image;a.src=e.target.result,a.onload=function(){var a=this;n.min&&Object.keys(n.min).forEach(function(e){a[e]n.max[e]&&(r+=l.translations.PLUGIN_FORM.RESOLUTION_MAX.replace(/{{attr}}/g,e).replace(/{{max}}/g,n.max[e]))}),t(r)}},a.readAsDataURL(e)}};f=f.add(e),e=e[0],p.push(new r({container:e,options:t}))},m=(c()(document).ready(function(){c()(".dropzone.files-upload").each(function(e,a){return o(a)}),c()("body").on("mutation._grav",t)}),p)}.call(this,h(/*! ./../../node_modules/webpack/buildin/global.js */"./node_modules/webpack/buildin/global.js"))},"./app/fields/form.js": /*!****************************!*\ !*** ./app/fields/form.js ***! \****************************/ -/*! no static exports found */function(e,a,t){"use strict";var n,r=t(/*! jquery */"jquery"),o=(n=r)&&n.__esModule?n:{default:n};(0,o.default)(document).ready(function(){var e=(0,o.default)("form").filter(function(e){return(0,o.default)(e).find('[name="__form-name__"]')});e.length&&e.each(function(e,a){!function(e){var a='[data-grav-field="toggleable"] input[type="checkbox"]';(e=(0,o.default)(e)).on("change",a,function(e){var a=(0,o.default)(e.target),t=a.is(":checked"),n=a.closest(".form-field"),r=n.find("label.toggleable"),i=n.find(".form-data"),s=i.find("input, select, textarea, button");r.add(i).css("opacity",t?"":.7),s.map(function(e,a){var n=a.selectize;a=(0,o.default)(a),n?n[t?"enable":"disable"]():a.prop("disabled",!t)})}),e.find(a).trigger("change")}(a),function(e){e=(0,o.default)(e);var a=[];["input","select","label[for]","textarea",".selectize-control"].forEach(function(e){a.push(".form-field-toggleable .form-data "+e)}),e.on("mousedown",a.join(", "),function(e){var a=(0,o.default)(e.target),t=a.prop("for"),n=(a.hasClass("selectize-control")||a.parents(".selectize-control")).length;if(t&&(a=(0,o.default)('[id="'+t+'"]')),n&&(a=a.closest(".selectize-control").siblings("select[name]")),!a.prop("disabled"))return!0;a.closest(".form-field").find('[data-grav-field="toggleable"] input[type="checkbox"]').trigger("click")})}(a)})})},"./app/fields/index.js": +/*! no exports provided */function(e,a,t){"use strict";t.r(a);var n=t(/*! jquery */"jquery"),s=t.n(n);s()(document).ready(function(){var e=s()("form").filter(function(e){return s()(e).find('[name="__form-name__"]')});e.length&&e.each(function(e,a){var t,n;t=a,n='[data-grav-field="toggleable"] input[type="checkbox"]',(t=s()(t)).on("change",n,function(e){var a=s()(e.target),n=a.is(":checked"),t=a.closest(".form-field"),r=t.find("label.toggleable"),o=t.find(".form-data"),i=o.find("input, select, textarea, button");r.add(o).css("opacity",n?"":.7),i.map(function(e,a){var t=a.selectize;a=s()(a),t?t[n?"enable":"disable"]():a.prop("disabled",!n)})}),t.find(n).trigger("change"),function(e){e=s()(e);var a=[];["input","select","label[for]","textarea",".selectize-control"].forEach(function(e){a.push("".concat(".form-field-toggleable .form-data"," ").concat(e))}),e.on("mousedown",a.join(", "),function(e){var a=s()(e.target),t=a.prop("for"),n=(a.hasClass("selectize-control")||a.parents(".selectize-control")).length;if(t&&(a=s()('[id="'.concat(t,'"]'))),n&&(a=a.closest(".selectize-control").siblings("select[name]")),!a.prop("disabled"))return!0;a.closest(".form-field").find('[data-grav-field="toggleable"] input[type="checkbox"]').trigger("click")})}(a)})})},"./app/fields/index.js": /*!*****************************!*\ !*** ./app/fields/index.js ***! \*****************************/ -/*! no static exports found */function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),t(/*! ./form */"./app/fields/form.js");var n=s(t(/*! ./file */"./app/fields/file.js")),r=s(t(/*! ./array */"./app/fields/array.js")),o=t(/*! ./media */"./app/fields/media.js"),i=s(o);function s(e){return e&&e.__esModule?e:{default:e}}t(/*! ./tabs */"./app/fields/tabs.js"),a.default={FileInstances:n.default,ArrayInstances:r.default,Media:{PageMedia:i.default,PageMediaInstances:o.Instance}}},"./app/fields/media.js": +/*! exports provided: default */function(e,a,t){"use strict";t.r(a);t(/*! ./form */"./app/fields/form.js");var n=t(/*! ./file */"./app/fields/file.js"),r=t(/*! ./array */"./app/fields/array.js"),o=t(/*! ./media */"./app/fields/media.js");t(/*! ./tabs */"./app/fields/tabs.js");a.default={FileInstances:n.default,ArrayInstances:r.default,Media:{PageMedia:o.default,PageMediaInstances:o.Instance}}},"./app/fields/media.js": /*!*****************************!*\ !*** ./app/fields/media.js ***! \*****************************/ -/*! no static exports found */function(e,a,t){"use strict";(function(e){Object.defineProperty(a,"__esModule",{value:!0}),a.Instance=void 0;var n=function(){function e(e,a){for(var t=0;t\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n '+s.translations.PLUGIN_FORM.DELETE+"\n
    ").trim(),f=function(a){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.container,n=void 0===a?"#grav-dropzone":a,r=e.options,i=void 0===r?{}:r;!function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}(this,t);var d=(0,o.default)("#dropzone-media-template").html()||c;i=Object.assign(i,{previewTemplate:d});var f=u(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,{container:n,options:i}));if(!f.container.length)return u(f);f.urls={fetch:f.container.data("media-url")+"/task"+s.config.param_sep+"listmedia",add:f.container.data("media-url")+"/task"+s.config.param_sep+"addmedia",delete:f.container.data("media-url")+"/task"+s.config.param_sep+"delmedia"},f.dropzone.options.url=f.urls.add,(void 0===f.options.fetchMedia||f.options.fetchMedia)&&f.fetchMedia();var p=(0,o.default)('[name="'+f.container.data("dropzone-field")+'"]');return p.length&&(f.sortable=new l.default(f.container.get(0),{animation:150,setData:function(e,a){a=(0,o.default)(a),f.dropzone.disable(),a.addClass("hide-backface"),e.effectAllowed="copy"},onSort:function(){var e=[];f.container.find("[data-dz-name]").each(function(a,t){var n=(t=(0,o.default)(t)).text().trim();e.push(n)}),p.val(e.join(","))}})),f}return function(e,a){if("function"!=typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function, not "+typeof a);e.prototype=Object.create(a&&a.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(e,a):e.__proto__=a)}(t,i.default),n(t,[{key:"onDropzoneRemovedFile",value:function(a){var t=this;if(a.accepted&&!a.rejected){var n=this.container.closest("form"),r=n.find('[name="__unique_form_id__"]'),i=a.removeUrl||this.urls.delete||location.href+".json",l=(i||"").match(/path:(.*)\//),d=new FormData;d.append("filename",a.name),d.append("__form-name__",n.find('[name="__form-name__"]').val()),r.length&&d.append("__unique_form_id__",r.val()),d.append("name",this.options.dotNotation),d.append("form-nonce",s.config.form_nonce),a.sessionParams&&(d.append("__form-file-remover__","1"),d.append("session",a.sessionParams)),o.default.ajax({url:i,data:d,method:"POST",contentType:!1,processData:!1,success:function(){if(l){l=e.atob(l[1]);var a=t.container.find('[name][type="hidden"]'),n=JSON.parse(a.val()||"{}");delete n[l],a.val(JSON.stringify(n))}}})}}},{key:"fetchMedia",value:function(){var e=this,a={order:this.container.closest(".form-field").find('[name="data[header][media_order]"]').val()},t=this.urls.fetch;o.default.ajax({url:t,method:"POST",data:a,success:function(a){if("string"==typeof a||a instanceof String)return!1;a=a.results,Object.keys(a).forEach(function(t){var n=a[t],r={name:t,size:n.size,accepted:!0,extras:n};e.dropzone.files.push(r),e.dropzone.options.addedfile.call(e.dropzone,r),e.dropzone.options.thumbnail.call(e.dropzone,r,n.url)}),e.container.find(".dz-preview").prop("draggable","true")}})}},{key:"onDropzoneSending",value:function(e,a,t){t.append("name",this.options.dotNotation),t.append("admin-nonce",s.config.admin_nonce)}},{key:"onDropzoneComplete",value:function(e){r(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"onDropzoneComplete",this).call(this,e),this.sortable.options.onSort(),(0,o.default)(".dz-preview").prop("draggable","true")}},{key:"onDropzoneRemovedFile",value:function(e){for(var a,n=arguments.length,o=Array(n>1?n-1:0),i=1;i').concat(u.translations.PLUGIN_FORM.DELETE,"\n
    ").trim(),a=function(){!function(e,a){if("function"!=typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(a&&a.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),a&&v(e,a)}(l,n["default"]);var e,a,t,c=i(l);function l(){var t,e=01?n-1:0),r=1;r=a.length)break;a[o++].apply(this,i)}}return this}},{key:"off",value:function(e,t){if(!this._callbacks||0===arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1===arguments.length)return delete this._callbacks[e],this;for(var i=0;i=n.length)break;var i=n[t++];if(/(^| )dz-message($| )/.test(i.className)){e=i,i.className="dz-message";break}}e||(e=o.createElement('
    '),this.element.appendChild(e));var r=e.getElementsByTagName("span")[0];return r&&(null!=r.textContent?r.textContent=this.options.dictFallbackMessage:null!=r.innerText&&(r.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(e,t,n,i){var r={srcX:0,srcY:0,srcWidth:e.width,srcHeight:e.height},o=e.width/e.height;null==t&&null==n?(t=r.srcWidth,n=r.srcHeight):null==t?t=n*o:null==n&&(n=t/o);var a=(t=Math.min(t,r.srcWidth))/(n=Math.min(n,r.srcHeight));if(r.srcWidth>t||r.srcHeight>n)if("crop"===i)o>a?(r.srcHeight=e.height,r.srcWidth=r.srcHeight*a):(r.srcWidth=e.width,r.srcHeight=r.srcWidth/a);else{if("contain"!==i)throw new Error("Unknown resizeMethod '"+i+"'");o>a?n=t/o:t=n*o}return r.srcX=(e.width-r.srcWidth)/2,r.srcY=(e.height-r.srcHeight)/2,r.trgWidth=t,r.trgHeight=n,r},transformFile:function(e,t){return(this.options.resizeWidth||this.options.resizeHeight)&&e.type.match(/image.*/)?this.resizeImage(e,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,t):t(e)},previewTemplate:'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Check\n \n \n \n \n \n
    \n
    \n \n Error\n \n \n \n \n \n \n \n
    \n
    ',drop:function(e){return this.element.classList.remove("dz-drag-hover")},dragstart:function(e){},dragend:function(e){return this.element.classList.remove("dz-drag-hover")},dragenter:function(e){return this.element.classList.add("dz-drag-hover")},dragover:function(e){return this.element.classList.add("dz-drag-hover")},dragleave:function(e){return this.element.classList.remove("dz-drag-hover")},paste:function(e){},reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(e){var t=this;if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer){e.previewElement=o.createElement(this.options.previewTemplate.trim()),e.previewTemplate=e.previewElement,this.previewsContainer.appendChild(e.previewElement);for(var n=0,i=i=e.previewElement.querySelectorAll("[data-dz-name]");;){if(n>=i.length)break;var r=i[n++];r.textContent=e.name}for(var a=0,s=s=e.previewElement.querySelectorAll("[data-dz-size]");!(a>=s.length);)(r=s[a++]).innerHTML=this.filesize(e.size);this.options.addRemoveLinks&&(e._removeLink=o.createElement(''+this.options.dictRemoveFile+""),e.previewElement.appendChild(e._removeLink));for(var l=function(n){return n.preventDefault(),n.stopPropagation(),e.status===o.UPLOADING?o.confirm(t.options.dictCancelUploadConfirmation,function(){return t.removeFile(e)}):t.options.dictRemoveFileConfirmation?o.confirm(t.options.dictRemoveFileConfirmation,function(){return t.removeFile(e)}):t.removeFile(e)},u=0,d=d=e.previewElement.querySelectorAll("[data-dz-remove]");;){if(u>=d.length)break;d[u++].addEventListener("click",l)}}},removedfile:function(e){return null!=e.previewElement&&null!=e.previewElement.parentNode&&e.previewElement.parentNode.removeChild(e.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(e,t){if(e.previewElement){e.previewElement.classList.remove("dz-file-preview");for(var n=0,i=i=e.previewElement.querySelectorAll("[data-dz-thumbnail]");;){if(n>=i.length)break;var r=i[n++];r.alt=e.name,r.src=t}return setTimeout(function(){return e.previewElement.classList.add("dz-image-preview")},1)}},error:function(e,t){if(e.previewElement){e.previewElement.classList.add("dz-error"),"String"!=typeof t&&t.error&&(t=t.error);for(var n=0,i=i=e.previewElement.querySelectorAll("[data-dz-errormessage]");;){if(n>=i.length)break;i[n++].textContent=t}}},errormultiple:function(){},processing:function(e){if(e.previewElement&&(e.previewElement.classList.add("dz-processing"),e._removeLink))return e._removeLink.innerHTML=this.options.dictCancelUpload},processingmultiple:function(){},uploadprogress:function(e,t,n){if(e.previewElement)for(var i=0,r=r=e.previewElement.querySelectorAll("[data-dz-uploadprogress]");;){if(i>=r.length)break;var o=r[i++];"PROGRESS"===o.nodeName?o.value=t:o.style.width=t+"%"}},totaluploadprogress:function(){},sending:function(){},sendingmultiple:function(){},success:function(e){if(e.previewElement)return e.previewElement.classList.add("dz-success")},successmultiple:function(){},canceled:function(e){return this.emit("error",e,this.options.dictUploadCanceled)},canceledmultiple:function(){},complete:function(e){if(e._removeLink&&(e._removeLink.innerHTML=this.options.dictRemoveFile),e.previewElement)return e.previewElement.classList.add("dz-complete")},completemultiple:function(){},maxfilesexceeded:function(){},maxfilesreached:function(){},queuecomplete:function(){},addedfiles:function(){}},this.prototype._thumbnailQueue=[],this.prototype._processingThumbnail=!1}},{key:"extend",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i=o.length)break;var a=o[r++];for(var s in a){var l=a[s];e[s]=l}}return e}}]),t(o,[{key:"getAcceptedFiles",value:function(){return this.files.filter(function(e){return e.accepted}).map(function(e){return e})}},{key:"getRejectedFiles",value:function(){return this.files.filter(function(e){return!e.accepted}).map(function(e){return e})}},{key:"getFilesWithStatus",value:function(e){return this.files.filter(function(t){return t.status===e}).map(function(e){return e})}},{key:"getQueuedFiles",value:function(){return this.getFilesWithStatus(o.QUEUED)}},{key:"getUploadingFiles",value:function(){return this.getFilesWithStatus(o.UPLOADING)}},{key:"getAddedFiles",value:function(){return this.getFilesWithStatus(o.ADDED)}},{key:"getActiveFiles",value:function(){return this.files.filter(function(e){return e.status===o.UPLOADING||e.status===o.QUEUED}).map(function(e){return e})}},{key:"init",value:function(){var e=this;if("form"===this.element.tagName&&this.element.setAttribute("enctype","multipart/form-data"),this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")&&this.element.appendChild(o.createElement('
    '+this.options.dictDefaultMessage+"
    ")),this.clickableElements.length){!function t(){return e.hiddenFileInput&&e.hiddenFileInput.parentNode.removeChild(e.hiddenFileInput),e.hiddenFileInput=document.createElement("input"),e.hiddenFileInput.setAttribute("type","file"),(null===e.options.maxFiles||e.options.maxFiles>1)&&e.hiddenFileInput.setAttribute("multiple","multiple"),e.hiddenFileInput.className="dz-hidden-input",null!==e.options.acceptedFiles&&e.hiddenFileInput.setAttribute("accept",e.options.acceptedFiles),null!==e.options.capture&&e.hiddenFileInput.setAttribute("capture",e.options.capture),e.hiddenFileInput.style.visibility="hidden",e.hiddenFileInput.style.position="absolute",e.hiddenFileInput.style.top="0",e.hiddenFileInput.style.left="0",e.hiddenFileInput.style.height="0",e.hiddenFileInput.style.width="0",o.getElement(e.options.hiddenInputContainer,"hiddenInputContainer").appendChild(e.hiddenFileInput),e.hiddenFileInput.addEventListener("change",function(){var n=e.hiddenFileInput.files;if(n.length)for(var i=0,r=r=n;!(i>=r.length);){var o=r[i++];e.addFile(o)}return e.emit("addedfiles",n),t()})}()}this.URL=null!==window.URL?window.URL:window.webkitURL;for(var t=0,n=n=this.events;;){if(t>=n.length)break;var i=n[t++];this.on(i,this.options[i])}this.on("uploadprogress",function(){return e.updateTotalUploadProgress()}),this.on("removedfile",function(){return e.updateTotalUploadProgress()}),this.on("canceled",function(t){return e.emit("complete",t)}),this.on("complete",function(t){if(0===e.getAddedFiles().length&&0===e.getUploadingFiles().length&&0===e.getQueuedFiles().length)return setTimeout(function(){return e.emit("queuecomplete")},0)});var r=function(e){return e.stopPropagation(),e.preventDefault?e.preventDefault():e.returnValue=!1};return this.listeners=[{element:this.element,events:{dragstart:function(t){return e.emit("dragstart",t)},dragenter:function(t){return r(t),e.emit("dragenter",t)},dragover:function(t){var n=void 0;try{n=t.dataTransfer.effectAllowed}catch(e){}return t.dataTransfer.dropEffect="move"===n||"linkMove"===n?"move":"copy",r(t),e.emit("dragover",t)},dragleave:function(t){return e.emit("dragleave",t)},drop:function(t){return r(t),e.drop(t)},dragend:function(t){return e.emit("dragend",t)}}}],this.clickableElements.forEach(function(t){return e.listeners.push({element:t,events:{click:function(n){return(t!==e.element||n.target===e.element||o.elementInside(n.target,e.element.querySelector(".dz-message")))&&e.hiddenFileInput.click(),!0}}})}),this.enable(),this.options.init.call(this)}},{key:"destroy",value:function(){return this.disable(),this.removeAllFiles(!0),(null!=this.hiddenFileInput?this.hiddenFileInput.parentNode:void 0)&&(this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput),this.hiddenFileInput=null),delete this.element.dropzone,o.instances.splice(o.instances.indexOf(this),1)}},{key:"updateTotalUploadProgress",value:function(){var e=void 0,t=0,n=0;if(this.getActiveFiles().length){for(var i=0,r=r=this.getActiveFiles();;){if(i>=r.length)break;var o=r[i++];t+=o.upload.bytesSent,n+=o.upload.total}e=100*t/n}else e=100;return this.emit("totaluploadprogress",e,n,t)}},{key:"_getParamName",value:function(e){return"function"==typeof this.options.paramName?this.options.paramName(e):this.options.paramName+(this.options.uploadMultiple?"["+e+"]":"")}},{key:"_renameFile",value:function(e){return"function"!=typeof this.options.renameFile?e.name:this.options.renameFile(e)}},{key:"getFallbackForm",value:function(){var e,t=void 0;if(e=this.getExistingFallback())return e;var n='
    ';this.options.dictFallbackText&&(n+="

    "+this.options.dictFallbackText+"

    "),n+='
    ';var i=o.createElement(n);return"FORM"!==this.element.tagName?(t=o.createElement('
    ')).appendChild(i):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=t?t:i}},{key:"getExistingFallback",value:function(){for(var e=function(e){for(var t=0,n=n=e;;){if(t>=n.length)break;var i=n[t++];if(/(^| )fallback($| )/.test(i.className))return i}},t=["div","form"],n=0;n0){for(var i=["tb","gb","mb","kb","b"],r=0;r=Math.pow(this.options.filesizeBase,4-r)/10){t=e/Math.pow(this.options.filesizeBase,4-r),n=o;break}}t=Math.round(10*t)/10}return""+t+" "+this.options.dictFileSizeUnits[n]}},{key:"_updateMaxFilesReachedClass",value:function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")}},{key:"drop",value:function(e){if(e.dataTransfer){this.emit("drop",e);for(var t=[],n=0;n=n.length)break;var i=n[t++];this.addFile(i)}}},{key:"_addFilesFromItems",value:function(e){var t=this;return function(){for(var n=[],i=0,r=r=e;;){if(i>=r.length)break;var o,a=r[i++];null!=a.webkitGetAsEntry&&(o=a.webkitGetAsEntry())?o.isFile?n.push(t.addFile(a.getAsFile())):o.isDirectory?n.push(t._addFilesFromDirectory(o,o.name)):n.push(void 0):null!=a.getAsFile&&(null==a.kind||"file"===a.kind)?n.push(t.addFile(a.getAsFile())):n.push(void 0)}return n}()}},{key:"_addFilesFromDirectory",value:function(e,t){var n=this,i=e.createReader(),r=function(e){return t=console,n="log",i=function(t){return t.log(e)},void 0!==t&&null!==t&&"function"==typeof t[n]?i(t,n):void 0;var t,n,i};return function e(){return i.readEntries(function(i){if(i.length>0){for(var r=0,o=o=i;!(r>=o.length);){var a=o[r++];a.isFile?a.file(function(e){if(!n.options.ignoreHiddenFiles||"."!==e.name.substring(0,1))return e.fullPath=t+"/"+e.name,n.addFile(e)}):a.isDirectory&&n._addFilesFromDirectory(a,t+"/"+a.name)}e()}return null},r)}()}},{key:"accept",value:function(e,t){return this.options.maxFilesize&&e.size>1024*this.options.maxFilesize*1024?t(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(e.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):o.isValidFile(e,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e)):this.options.accept.call(this,e,t):t(this.options.dictInvalidFileType)}},{key:"addFile",value:function(e){var t=this;return e.upload={uuid:o.uuidv4(),progress:0,total:e.size,bytesSent:0,filename:this._renameFile(e),chunked:this.options.chunking&&(this.options.forceChunking||e.size>this.options.chunkSize),totalChunkCount:Math.ceil(e.size/this.options.chunkSize)},this.files.push(e),e.status=o.ADDED,this.emit("addedfile",e),this._enqueueThumbnail(e),this.accept(e,function(n){return n?(e.accepted=!1,t._errorProcessing([e],n)):(e.accepted=!0,t.options.autoQueue&&t.enqueueFile(e)),t._updateMaxFilesReachedClass()})}},{key:"enqueueFiles",value:function(e){for(var t=0,n=n=e;;){if(t>=n.length)break;var i=n[t++];this.enqueueFile(i)}return null}},{key:"enqueueFile",value:function(e){var t=this;if(e.status!==o.ADDED||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");if(e.status=o.QUEUED,this.options.autoProcessQueue)return setTimeout(function(){return t.processQueue()},0)}},{key:"_enqueueThumbnail",value:function(e){var t=this;if(this.options.createImageThumbnails&&e.type.match(/image.*/)&&e.size<=1024*this.options.maxThumbnailFilesize*1024)return this._thumbnailQueue.push(e),setTimeout(function(){return t._processThumbnailQueue()},0)}},{key:"_processThumbnailQueue",value:function(){var e=this;if(!this._processingThumbnail&&0!==this._thumbnailQueue.length){this._processingThumbnail=!0;var t=this._thumbnailQueue.shift();return this.createThumbnail(t,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,!0,function(n){return e.emit("thumbnail",t,n),e._processingThumbnail=!1,e._processThumbnailQueue()})}}},{key:"removeFile",value:function(e){if(e.status===o.UPLOADING&&this.cancelUpload(e),this.files=a(this.files,e),this.emit("removedfile",e),0===this.files.length)return this.emit("reset")}},{key:"removeAllFiles",value:function(e){null==e&&(e=!1);for(var t=0,n=n=this.files.slice();;){if(t>=n.length)break;var i=n[t++];(i.status!==o.UPLOADING||e)&&this.removeFile(i)}return null}},{key:"resizeImage",value:function(e,t,n,i,r){var a=this;return this.createThumbnail(e,t,n,i,!0,function(t,n){if(null==n)return r(e);var i=a.options.resizeMimeType;null==i&&(i=e.type);var s=n.toDataURL(i,a.options.resizeQuality);return"image/jpeg"!==i&&"image/jpg"!==i||(s=u.restore(e.dataURL,s)),r(o.dataURItoBlob(s))})}},{key:"createThumbnail",value:function(e,t,n,i,r,o){var a=this,s=new FileReader;return s.onload=function(){if(e.dataURL=s.result,"image/svg+xml"!==e.type)return a.createThumbnailFromUrl(e,t,n,i,r,o);null!=o&&o(s.result)},s.readAsDataURL(e)}},{key:"createThumbnailFromUrl",value:function(e,t,n,i,r,o,a){var s=this,u=document.createElement("img");return a&&(u.crossOrigin=a),u.onload=function(){var a=function(e){return e(1)};return"undefined"!=typeof EXIF&&null!==EXIF&&r&&(a=function(e){return EXIF.getData(u,function(){return e(EXIF.getTag(this,"Orientation"))})}),a(function(r){e.width=u.width,e.height=u.height;var a=s.options.resize.call(s,e,t,n,i),d=document.createElement("canvas"),c=d.getContext("2d");switch(d.width=a.trgWidth,d.height=a.trgHeight,r>4&&(d.width=a.trgHeight,d.height=a.trgWidth),r){case 2:c.translate(d.width,0),c.scale(-1,1);break;case 3:c.translate(d.width,d.height),c.rotate(Math.PI);break;case 4:c.translate(0,d.height),c.scale(1,-1);break;case 5:c.rotate(.5*Math.PI),c.scale(1,-1);break;case 6:c.rotate(.5*Math.PI),c.translate(0,-d.width);break;case 7:c.rotate(.5*Math.PI),c.translate(d.height,-d.width),c.scale(-1,1);break;case 8:c.rotate(-.5*Math.PI),c.translate(-d.height,0)}l(c,u,null!=a.srcX?a.srcX:0,null!=a.srcY?a.srcY:0,a.srcWidth,a.srcHeight,null!=a.trgX?a.trgX:0,null!=a.trgY?a.trgY:0,a.trgWidth,a.trgHeight);var h=d.toDataURL("image/png");if(null!=o)return o(h,d)})},null!=o&&(u.onerror=o),u.src=e.dataURL}},{key:"processQueue",value:function(){var e=this.options.parallelUploads,t=this.getUploadingFiles().length,n=t;if(!(t>=e)){var i=this.getQueuedFiles();if(i.length>0){if(this.options.uploadMultiple)return this.processFiles(i.slice(0,e-t));for(;n=n.length)break;var i=n[t++];i.processing=!0,i.status=o.UPLOADING,this.emit("processing",i)}return this.options.uploadMultiple&&this.emit("processingmultiple",e),this.uploadFiles(e)}},{key:"_getFilesWithXhr",value:function(e){return this.files.filter(function(t){return t.xhr===e}).map(function(e){return e})}},{key:"cancelUpload",value:function(e){if(e.status===o.UPLOADING){for(var t=this._getFilesWithXhr(e.xhr),n=0,i=i=t;;){if(n>=i.length)break;i[n++].status=o.CANCELED}void 0!==e.xhr&&e.xhr.abort();for(var r=0,a=a=t;;){if(r>=a.length)break;var s=a[r++];this.emit("canceled",s)}this.options.uploadMultiple&&this.emit("canceledmultiple",t)}else e.status!==o.ADDED&&e.status!==o.QUEUED||(e.status=o.CANCELED,this.emit("canceled",e),this.options.uploadMultiple&&this.emit("canceledmultiple",[e]));if(this.options.autoProcessQueue)return this.processQueue()}},{key:"resolveOption",value:function(e){if("function"==typeof e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i=i.upload.totalChunkCount)){0;var a=n*t.options.chunkSize,s=Math.min(a+t.options.chunkSize,i.size),l={name:t._getParamName(0),data:r.webkitSlice?r.webkitSlice(a,s):r.slice(a,s),filename:i.upload.filename,chunkIndex:n};i.upload.chunks[n]={file:i,index:n,dataBlock:l,status:o.UPLOADING,progress:0,retries:0},t._uploadData(e,[l])}};if(i.upload.finishedChunkUpload=function(n){var r=!0;n.status=o.SUCCESS,n.dataBlock=null,n.xhr=null;for(var s=0;s=a.length)break;a[r++].xhr=i}e[0].upload.chunked&&(e[0].upload.chunks[t[0].chunkIndex].xhr=i);var s=this.resolveOption(this.options.method,e),l=this.resolveOption(this.options.url,e);i.open(s,l,!0),i.timeout=this.resolveOption(this.options.timeout,e),i.withCredentials=!!this.options.withCredentials,i.onload=function(t){n._finishedUploading(e,i,t)},i.onerror=function(){n._handleUploadError(e,i)},(null!=i.upload?i.upload:i).onprogress=function(t){return n._updateFilesUploadProgress(e,i,t)};var u={Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"};for(var d in this.options.headers&&o.extend(u,this.options.headers),u){var c=u[d];c&&i.setRequestHeader(d,c)}var h=new FormData;if(this.options.params){var p=this.options.params;for(var f in"function"==typeof p&&(p=p.call(this,e,i,e[0].upload.chunked?this._getChunk(e[0],i):null)),p){var m=p[f];h.append(f,m)}}for(var g=0,v=v=e;;){if(g>=v.length)break;var b=v[g++];this.emit("sending",b,i,h)}this.options.uploadMultiple&&this.emit("sendingmultiple",e,i,h),this._addFormElementData(h);for(var y=0;y=n.length)break;var i=n[t++],r=i.getAttribute("name"),o=i.getAttribute("type");if(o&&(o=o.toLowerCase()),void 0!==r&&null!==r)if("SELECT"===i.tagName&&i.hasAttribute("multiple"))for(var a=0,s=s=i.options;;){if(a>=s.length)break;var l=s[a++];l.selected&&e.append(r,l.value)}else(!o||"checkbox"!==o&&"radio"!==o||i.checked)&&e.append(r,i.value)}}},{key:"_updateFilesUploadProgress",value:function(e,t,n){var i=void 0;if(void 0!==n){if(i=100*n.loaded/n.total,e[0].upload.chunked){var r=e[0],o=this._getChunk(r,t);o.progress=i,o.total=n.total,o.bytesSent=n.loaded;r.upload.progress=0,r.upload.total=0,r.upload.bytesSent=0;for(var a=0;a=l.length)break;var u=l[s++];u.upload.progress=i,u.upload.total=n.total,u.upload.bytesSent=n.loaded}for(var d=0,c=c=e;;){if(d>=c.length)break;var h=c[d++];this.emit("uploadprogress",h,h.upload.progress,h.upload.bytesSent)}}else{var p=!0;i=100;for(var f=0,m=m=e;;){if(f>=m.length)break;var g=m[f++];100===g.upload.progress&&g.upload.bytesSent===g.upload.total||(p=!1),g.upload.progress=i,g.upload.bytesSent=g.upload.total}if(p)return;for(var v=0,b=b=e;;){if(v>=b.length)break;var y=b[v++];this.emit("uploadprogress",y,i,y.upload.bytesSent)}}}},{key:"_finishedUploading",value:function(e,t,n){var i=void 0;if(e[0].status!==o.CANCELED&&4===t.readyState){if("arraybuffer"!==t.responseType&&"blob"!==t.responseType&&(i=t.responseText,t.getResponseHeader("content-type")&&~t.getResponseHeader("content-type").indexOf("application/json")))try{i=JSON.parse(i)}catch(e){n=e,i="Invalid JSON response from server."}this._updateFilesUploadProgress(e),200<=t.status&&t.status<300?e[0].upload.chunked?e[0].upload.finishedChunkUpload(this._getChunk(e[0],t)):this._finished(e,i,n):this._handleUploadError(e,t,i)}}},{key:"_handleUploadError",value:function(e,t,n){if(e[0].status!==o.CANCELED){if(e[0].upload.chunked&&this.options.retryChunks){var i=this._getChunk(e[0],t);if(i.retries++=a.length)break;a[r++];this._errorProcessing(e,n||this.options.dictResponseError.replace("{{statusCode}}",t.status),t)}}}},{key:"submitRequest",value:function(e,t,n){e.send(t)}},{key:"_finished",value:function(e,t,n){for(var i=0,r=r=e;;){if(i>=r.length)break;var a=r[i++];a.status=o.SUCCESS,this.emit("success",a,t,n),this.emit("complete",a)}if(this.options.uploadMultiple&&(this.emit("successmultiple",e,t,n),this.emit("completemultiple",e)),this.options.autoProcessQueue)return this.processQueue()}},{key:"_errorProcessing",value:function(e,t,n){for(var i=0,r=r=e;;){if(i>=r.length)break;var a=r[i++];a.status=o.ERROR,this.emit("error",a,t,n),this.emit("complete",a)}if(this.options.uploadMultiple&&(this.emit("errormultiple",e,t,n),this.emit("completemultiple",e)),this.options.autoProcessQueue)return this.processQueue()}}],[{key:"uuidv4",value:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}}]),o}();o.initClass(),o.version="5.5.1",o.options={},o.optionsForElement=function(e){return e.getAttribute("id")?o.options[s(e.getAttribute("id"))]:void 0},o.instances=[],o.forElement=function(e){if("string"==typeof e&&(e=document.querySelector(e)),null==(null!=e?e.dropzone:void 0))throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");return e.dropzone},o.autoDiscover=!0,o.discover=function(){var e=void 0;if(document.querySelectorAll)e=document.querySelectorAll(".dropzone");else{e=[];var t=function(t){return function(){for(var n=[],i=0,r=r=t;;){if(i>=r.length)break;var o=r[i++];/(^| )dropzone($| )/.test(o.className)?n.push(e.push(o)):n.push(void 0)}return n}()};t(document.getElementsByTagName("div")),t(document.getElementsByTagName("form"))}return function(){for(var t=[],n=0,i=i=e;;){if(n>=i.length)break;var r=i[n++];!1!==o.optionsForElement(r)?t.push(new o(r)):t.push(void 0)}return t}()},o.blacklistedBrowsers=[/opera.*(Macintosh|Windows Phone).*version\/12/i],o.isBrowserSupported=function(){var e=!0;if(window.File&&window.FileReader&&window.FileList&&window.Blob&&window.FormData&&document.querySelector)if("classList"in document.createElement("a"))for(var t=0,n=n=o.blacklistedBrowsers;;){if(t>=n.length)break;n[t++].test(navigator.userAgent)&&(e=!1)}else e=!1;else e=!1;return e},o.dataURItoBlob=function(e){for(var t=atob(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0],i=new ArrayBuffer(t.length),r=new Uint8Array(i),o=0,a=t.length,s=0<=a;s?o<=a:o>=a;s?o++:o--)r[o]=t.charCodeAt(o);return new Blob([i],{type:n})};var a=function(e,t){return e.filter(function(e){return e!==t}).map(function(e){return e})},s=function(e){return e.replace(/[\-_](\w)/g,function(e){return e.charAt(1).toUpperCase()})};o.createElement=function(e){var t=document.createElement("div");return t.innerHTML=e,t.childNodes[0]},o.elementInside=function(e,t){if(e===t)return!0;for(;e=e.parentNode;)if(e===t)return!0;return!1},o.getElement=function(e,t){var n=void 0;if("string"==typeof e?n=document.querySelector(e):null!=e.nodeType&&(n=e),null==n)throw new Error("Invalid `"+t+"` option provided. Please provide a CSS selector or a plain HTML element.");return n},o.getElements=function(e,t){var n=void 0,i=void 0;if(e instanceof Array){i=[];try{for(var r=0,o=o=e;!(r>=o.length);)n=o[r++],i.push(this.getElement(n,t))}catch(e){i=null}}else if("string"==typeof e){i=[];for(var a=0,s=s=document.querySelectorAll(e);!(a>=s.length);)n=s[a++],i.push(n)}else null!=e.nodeType&&(i=[e]);if(null==i||!i.length)throw new Error("Invalid `"+t+"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.");return i},o.confirm=function(e,t,n){return window.confirm(e)?t():null!=n?n():void 0},o.isValidFile=function(e,t){if(!t)return!0;t=t.split(",");for(var n=e.type,i=n.replace(/\/.*$/,""),r=0,o=o=t;;){if(r>=o.length)break;var a=o[r++];if("."===(a=a.trim()).charAt(0)){if(-1!==e.name.toLowerCase().indexOf(a.toLowerCase(),e.name.length-a.length))return!0}else if(/\/\*$/.test(a)){if(i===a.replace(/\/.*$/,""))return!0}else if(n===a)return!0}return!1},"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.fn.dropzone=function(e){return this.each(function(){return new o(this,e)})}),void 0!==e&&null!==e?e.exports=o:window.Dropzone=o,o.ADDED="added",o.QUEUED="queued",o.ACCEPTED=o.QUEUED,o.UPLOADING="uploading",o.PROCESSING=o.UPLOADING,o.CANCELED="canceled",o.ERROR="error",o.SUCCESS="success";var l=function(e,t,n,i,r,o,a,s,l,u){var d=function(e){e.naturalWidth;var t=e.naturalHeight,n=document.createElement("canvas");n.width=1,n.height=t;var i=n.getContext("2d");i.drawImage(e,0,0);for(var r=i.getImageData(1,0,1,t).data,o=0,a=t,s=t;s>o;)0===r[4*(s-1)+3]?a=s:o=s,s=a+o>>1;var l=s/t;return 0===l?1:l}(t);return e.drawImage(t,n,i,r,o,a,s,l,u/d)},u=function(){function e(){i(this,e)}return t(e,null,[{key:"initClass",value:function(){this.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}},{key:"encode64",value:function(e){for(var t="",n=void 0,i=void 0,r="",o=void 0,a=void 0,s=void 0,l="",u=0;o=(n=e[u++])>>2,a=(3&n)<<4|(i=e[u++])>>4,s=(15&i)<<2|(r=e[u++])>>6,l=63&r,isNaN(i)?s=l=64:isNaN(r)&&(l=64),t=t+this.KEY_STR.charAt(o)+this.KEY_STR.charAt(a)+this.KEY_STR.charAt(s)+this.KEY_STR.charAt(l),n=i=r="",o=a=s=l="",ue.length)break}return n}},{key:"decode64",value:function(e){var t=void 0,n=void 0,i="",r=void 0,o=void 0,a="",s=0,l=[];for(/[^A-Za-z0-9\+\/\=]/g.exec(e),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");t=this.KEY_STR.indexOf(e.charAt(s++))<<2|(r=this.KEY_STR.indexOf(e.charAt(s++)))>>4,n=(15&r)<<4|(o=this.KEY_STR.indexOf(e.charAt(s++)))>>2,i=(3&o)<<6|(a=this.KEY_STR.indexOf(e.charAt(s++))),l.push(t),64!==o&&l.push(n),64!==a&&l.push(i),t=n=i="",r=o=a="",s")+8,u=(s=s.substring(s.indexOf("4?p:t+8,a=[],l=0;l4?p:t+8,h-1);case 3:if(1==h)return e.getUint16(t+8,!r);for(o=h>2?p:t+8,a=[],l=0;le.byteLength)return{};var o=m(e,t,t+r,l,i);if(o.Compression)switch(o.Compression){case 6:if(o.JpegIFOffset&&o.JpegIFByteCount){var a=t+o.JpegIFOffset,s=o.JpegIFByteCount;o.blob=new Blob([new Uint8Array(e.buffer,a,s)],{type:"image/jpeg"})}}else o.PhotometricInterpretation;return o}(e,h,p,n),i}function y(e){var t={};if(1==e.nodeType){if(e.attributes.length>0){t["@attributes"]={};for(var n=0;n0)for(var n=0;n
  • '),this.element.appendChild(e));var l=e.getElementsByTagName("span")[0];return l&&(null!=l.textContent?l.textContent=this.options.dictFallbackMessage:null!=l.innerText&&(l.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(e,t,n,i){var o={srcX:0,srcY:0,srcWidth:e.width,srcHeight:e.height},r=e.width/e.height;null==t&&null==n?(t=o.srcWidth,n=o.srcHeight):null==t?t=n*r:null==n&&(n=t/r);var a=(t=Math.min(t,o.srcWidth))/(n=Math.min(n,o.srcHeight));if(o.srcWidth>t||o.srcHeight>n)if("crop"===i)a\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Check\n \n \n \n \n
    \n
    \n \n Error\n \n \n \n \n \n \n
    \n',drop:function(){return this.element.classList.remove("dz-drag-hover")},dragstart:function(){},dragend:function(){return this.element.classList.remove("dz-drag-hover")},dragenter:function(){return this.element.classList.add("dz-drag-hover")},dragover:function(){return this.element.classList.add("dz-drag-hover")},dragleave:function(){return this.element.classList.remove("dz-drag-hover")},paste:function(){},reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(t){var n=this;if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer){t.previewElement=D.createElement(this.options.previewTemplate.trim()),t.previewTemplate=t.previewElement,this.previewsContainer.appendChild(t.previewElement);var e=!0,i=!1,o=void 0;try{for(var r,a=t.previewElement.querySelectorAll("[data-dz-name]")[Symbol.iterator]();!(e=(r=a.next()).done);e=!0){var l=r.value;l.textContent=t.name}}catch(e){i=!0,o=e}finally{try{e||null==a.return||a.return()}finally{if(i)throw o}}var s=!0,u=!1,c=void 0;try{for(var d,h=t.previewElement.querySelectorAll("[data-dz-size]")[Symbol.iterator]();!(s=(d=h.next()).done);s=!0)(l=d.value).innerHTML=this.filesize(t.size)}catch(e){u=!0,c=e}finally{try{s||null==h.return||h.return()}finally{if(u)throw c}}this.options.addRemoveLinks&&(t._removeLink=D.createElement(''.concat(this.options.dictRemoveFile,"")),t.previewElement.appendChild(t._removeLink));var p=function(e){return e.preventDefault(),e.stopPropagation(),t.status===D.UPLOADING?D.confirm(n.options.dictCancelUploadConfirmation,function(){return n.removeFile(t)}):n.options.dictRemoveFileConfirmation?D.confirm(n.options.dictRemoveFileConfirmation,function(){return n.removeFile(t)}):n.removeFile(t)},f=!0,v=!1,m=void 0;try{for(var g,y=t.previewElement.querySelectorAll("[data-dz-remove]")[Symbol.iterator]();!(f=(g=y.next()).done);f=!0){g.value.addEventListener("click",p)}}catch(e){v=!0,m=e}finally{try{f||null==y.return||y.return()}finally{if(v)throw m}}}},removedfile:function(e){return null!=e.previewElement&&null!=e.previewElement.parentNode&&e.previewElement.parentNode.removeChild(e.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(e,t){if(e.previewElement){e.previewElement.classList.remove("dz-file-preview");var n=!0,i=!1,o=void 0;try{for(var r,a=e.previewElement.querySelectorAll("[data-dz-thumbnail]")[Symbol.iterator]();!(n=(r=a.next()).done);n=!0){var l=r.value;l.alt=e.name,l.src=t}}catch(e){i=!0,o=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw o}}return setTimeout(function(){return e.previewElement.classList.add("dz-image-preview")},1)}},error:function(e,t){if(e.previewElement){e.previewElement.classList.add("dz-error"),"String"!=typeof t&&t.error&&(t=t.error);var n=!0,i=!1,o=void 0;try{for(var r,a=e.previewElement.querySelectorAll("[data-dz-errormessage]")[Symbol.iterator]();!(n=(r=a.next()).done);n=!0){r.value.textContent=t}}catch(e){i=!0,o=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw o}}}},errormultiple:function(){},processing:function(e){if(e.previewElement&&(e.previewElement.classList.add("dz-processing"),e._removeLink))return e._removeLink.innerHTML=this.options.dictCancelUpload},processingmultiple:function(){},uploadprogress:function(e,t){if(e.previewElement){var n=!0,i=!1,o=void 0;try{for(var r,a=e.previewElement.querySelectorAll("[data-dz-uploadprogress]")[Symbol.iterator]();!(n=(r=a.next()).done);n=!0){var l=r.value;"PROGRESS"===l.nodeName?l.value=t:l.style.width="".concat(t,"%")}}catch(e){i=!0,o=e}finally{try{n||null==a.return||a.return()}finally{if(i)throw o}}}},totaluploadprogress:function(){},sending:function(){},sendingmultiple:function(){},success:function(e){if(e.previewElement)return e.previewElement.classList.add("dz-success")},successmultiple:function(){},canceled:function(e){return this.emit("error",e,this.options.dictUploadCanceled)},canceledmultiple:function(){},complete:function(e){if(e._removeLink&&(e._removeLink.innerHTML=this.options.dictRemoveFile),e.previewElement)return e.previewElement.classList.add("dz-complete")},completemultiple:function(){},maxfilesexceeded:function(){},maxfilesreached:function(){},queuecomplete:function(){},addedfiles:function(){}},this.prototype._thumbnailQueue=[],this.prototype._processingThumbnail=!1}},{key:"extend",value:function(e){for(var t=arguments.length,n=new Array(1"))),this.clickableElements.length){!function l(){return s.hiddenFileInput&&s.hiddenFileInput.parentNode.removeChild(s.hiddenFileInput),s.hiddenFileInput=document.createElement("input"),s.hiddenFileInput.setAttribute("type","file"),(null===s.options.maxFiles||1")),n+='');var i=D.createElement(n);return"FORM"!==this.element.tagName?(t=D.createElement('
    '))).appendChild(i):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=t?t:i}},{key:"getExistingFallback",value:function(){for(var e=function(e){var t=!0,n=!1,i=void 0;try{for(var o,r=e[Symbol.iterator]();!(t=(o=r.next()).done);t=!0){var a=o.value;if(/(^| )fallback($| )/.test(a.className))return a}}catch(e){n=!0,i=e}finally{try{t||null==r.return||r.return()}finally{if(n)throw i}}},t=0,n=["div","form"];t".concat(t," ").concat(this.options.dictFileSizeUnits[n])}},{key:"_updateMaxFilesReachedClass",value:function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")}},{key:"drop",value:function(e){if(e.dataTransfer){this.emit("drop",e);for(var t=[],n=0;n1024*this.options.maxFilesize*1024?t(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(e.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):D.isValidFile(e,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e)):this.options.accept.call(this,e,t):t(this.options.dictInvalidFileType)}},{key:"addFile",value:function(t){var n=this;t.upload={uuid:D.uuidv4(),progress:0,total:t.size,bytesSent:0,filename:this._renameFile(t)},this.files.push(t),t.status=D.ADDED,this.emit("addedfile",t),this._enqueueThumbnail(t),this.accept(t,function(e){e?(t.accepted=!1,n._errorProcessing([t],e)):(t.accepted=!0,n.options.autoQueue&&n.enqueueFile(t)),n._updateMaxFilesReachedClass()})}},{key:"enqueueFiles",value:function(e){var t=!0,n=!1,i=void 0;try{for(var o,r=e[Symbol.iterator]();!(t=(o=r.next()).done);t=!0){var a=o.value;this.enqueueFile(a)}}catch(e){n=!0,i=e}finally{try{t||null==r.return||r.return()}finally{if(n)throw i}}return null}},{key:"enqueueFile",value:function(e){var t=this;if(e.status!==D.ADDED||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");if(e.status=D.QUEUED,this.options.autoProcessQueue)return setTimeout(function(){return t.processQueue()},0)}},{key:"_enqueueThumbnail",value:function(e){var t=this;if(this.options.createImageThumbnails&&e.type.match(/image.*/)&&e.size<=1024*this.options.maxThumbnailFilesize*1024)return this._thumbnailQueue.push(e),setTimeout(function(){return t._processThumbnailQueue()},0)}},{key:"_processThumbnailQueue",value:function(){var t=this;if(!this._processingThumbnail&&0!==this._thumbnailQueue.length){this._processingThumbnail=!0;var n=this._thumbnailQueue.shift();return this.createThumbnail(n,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,!0,function(e){return t.emit("thumbnail",n,e),t._processingThumbnail=!1,t._processThumbnailQueue()})}}},{key:"removeFile",value:function(e){if(e.status===D.UPLOADING&&this.cancelUpload(e),this.files=d(this.files,e),this.emit("removedfile",e),0===this.files.length)return this.emit("reset")}},{key:"removeAllFiles",value:function(e){null==e&&(e=!1);var t=!0,n=!1,i=void 0;try{for(var o,r=this.files.slice()[Symbol.iterator]();!(t=(o=r.next()).done);t=!0){var a=o.value;a.status===D.UPLOADING&&!e||this.removeFile(a)}}catch(e){n=!0,i=e}finally{try{t||null==r.return||r.return()}finally{if(n)throw i}}return null}},{key:"resizeImage",value:function(o,e,t,n,r){var a=this;return this.createThumbnail(o,e,t,n,!0,function(e,t){if(null==t)return r(o);var n=a.options.resizeMimeType;null==n&&(n=o.type);var i=t.toDataURL(n,a.options.resizeQuality);return r(D.dataURItoBlob(i))})}},{key:"createThumbnail",value:function(e,t,n,i,o,r){var a=this,l=new FileReader;l.onload=function(){e.dataURL=l.result,"image/svg+xml"!==e.type?a.createThumbnailFromUrl(e,t,n,i,o,r):null!=r&&r(l.result)},l.readAsDataURL(e)}},{key:"displayExistingFile",value:function(t,e,n,i,o){var r=this,a=!(4u.options.chunkSize),s[0].upload.totalChunkCount=Math.ceil(t.size/u.options.chunkSize)}if(s[0].upload.chunked){var o=s[0],r=e[0];o.upload.chunks=[];var i=function(){for(var e=0;void 0!==o.upload.chunks[e];)e++;if(!(e>=o.upload.totalChunkCount)){0;var t=e*u.options.chunkSize,n=Math.min(t+u.options.chunkSize,o.size),i={name:u._getParamName(0),data:r.webkitSlice?r.webkitSlice(t,n):r.slice(t,n),filename:o.upload.filename,chunkIndex:e};o.upload.chunks[e]={file:o,index:e,dataBlock:i,status:D.UPLOADING,progress:0,retries:0},u._uploadData(s,[i])}};if(o.upload.finishedChunkUpload=function(e){var t=!0;e.status=D.SUCCESS,e.dataBlock=null,e.xhr=null;for(var n=0;n>1}var s=l/t;return 0==s?1:s}(t);return e.drawImage(t,n,i,o,r,a,l,s,u/c)};(function(){function e(){u(this,e)}return t(e,null,[{key:"initClass",value:function(){this.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}},{key:"encode64",value:function(e){for(var t="",n=void 0,i=void 0,o="",r=void 0,a=void 0,l=void 0,s="",u=0;r=(n=e[u++])>>2,a=(3&n)<<4|(i=e[u++])>>4,l=(15&i)<<2|(o=e[u++])>>6,s=63&o,isNaN(i)?l=s=64:isNaN(o)&&(s=64),t=t+this.KEY_STR.charAt(r)+this.KEY_STR.charAt(a)+this.KEY_STR.charAt(l)+this.KEY_STR.charAt(s),n=i=o="",r=a=l=s="",ue.length)break}return n}},{key:"decode64",value:function(e){var t=void 0,n=void 0,i="",o=void 0,r=void 0,a="",l=0,s=[];for(/[^A-Za-z0-9\+\/\=]/g.exec(e),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");t=this.KEY_STR.indexOf(e.charAt(l++))<<2|(o=this.KEY_STR.indexOf(e.charAt(l++)))>>4,n=(15&o)<<4|(r=this.KEY_STR.indexOf(e.charAt(l++)))>>2,i=(3&r)<<6|(a=this.KEY_STR.indexOf(e.charAt(l++))),s.push(t),64!==r&&s.push(n),64!==a&&s.push(i),t=n=i="",o=r=a="",l + * @author owenm * @license MIT */ -/**! - * Sortable - * @author RubaXa - * @license MIT - */ -!function(o){"use strict";void 0===(r="function"==typeof(i=o)?i.call(t,n,t,e):i)||(e.exports=r)}(function(){"use strict";if("undefined"==typeof window||!window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var e,t,n,i,r,o,a,s,l,u,d,c,h,p,f,m,g,v,b,y,k,w={},F=/\s+/g,C=/left|right|inline/,S="Sortable"+(new Date).getTime(),x=window,E=x.document,D=x.parseInt,_=x.setTimeout,T=x.jQuery||x.Zepto,P=x.Polymer,I=!1,U="draggable"in E.createElement("div"),z=!navigator.userAgent.match(/(?:Trident.*rv[ :]?11\.|msie)/i)&&((k=E.createElement("x")).style.cssText="pointer-events:auto","auto"===k.style.pointerEvents),L=!1,A=Math.abs,M=Math.min,R=[],N=[],O=ie(function(e,t,n){if(n&&t.scroll){var i,r,o,a,d,c,h=n[S],p=t.scrollSensitivity,f=t.scrollSpeed,m=e.clientX,g=e.clientY,v=window.innerWidth,b=window.innerHeight;if(l!==n&&(s=t.scroll,l=n,u=t.scrollFn,!0===s)){s=n;do{if(s.offsetWidth-1:r==e)}}var n={},i=e.group;i&&"object"==typeof i||(i={name:i}),n.name=i.name,n.checkPull=t(i.pull,!0),n.checkPut=t(i.put),n.revertClone=i.revertClone,e.group=n};try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){I={capture:!1,passive:!1}}}))}catch(e){}function G(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(e);this.el=e,this.options=t=re({},t),e[S]=this;var n={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(e.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==G.supportPointer};for(var i in n)!(i in t)&&(t[i]=n[i]);for(var r in B(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&U,W(e,"mousedown",this._onTapStart),W(e,"touchstart",this._onTapStart),t.supportPointer&&W(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(W(e,"dragover",this),W(e,"dragenter",this)),N.push(this._onDragOver),t.store&&this.sort(t.store.get(this))}function Y(t,n){"clone"!==t.lastPullMode&&(n=!0),i&&i.state!==n&&(Q(i,"display",n?"none":""),n||i.state&&(t.options.group.revertClone?(r.insertBefore(i,o),t._animate(e,i)):r.insertBefore(i,e)),i.state=n)}function H(e,t,n){if(e){n=n||E;do{if(">*"===t&&e.parentNode===n||ne(e,t))return e}while(e=X(e))}return null}function X(e){var t=e.host;return t&&t.nodeType?t:e.parentNode}function W(e,t,n){e.addEventListener(t,n,I)}function j(e,t,n){e.removeEventListener(t,n,I)}function q(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(F," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(F," ")}}function Q(e,t,n){var i=e&&e.style;if(i){if(void 0===n)return E.defaultView&&E.defaultView.getComputedStyle?n=E.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in i||(t="-webkit-"+t),i[t]=n+("string"==typeof n?"":"px")}}function V(e,t,n){if(e){var i=e.getElementsByTagName(t),r=0,o=i.length;if(n)for(;r*"!==t&&!ne(e,t)||n++;return n}function ne(e,t){if(e){var n=(t=t.split(".")).shift().toUpperCase(),i=new RegExp("\\s("+t.join("|")+")(?=\\s)","g");return!(""!==n&&e.nodeName.toUpperCase()!=n||t.length&&((" "+e.className+" ").match(i)||[]).length!=t.length)}return!1}function ie(e,t){var n,i;return function(){void 0===n&&(n=arguments,i=this,_(function(){1===n.length?e.call(i,n[0]):e.apply(i,n),n=void 0},t))}}function re(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function oe(e){return P&&P.dom?P.dom(e).cloneNode(!0):T?T(e).clone(!0)[0]:e.cloneNode(!0)}function ae(e){return _(e,0)}function se(e){return clearTimeout(e)}return G.prototype={constructor:G,_onTapStart:function(t){var n,i=this,r=this.el,o=this.options,s=o.preventOnFilter,l=t.type,u=t.touches&&t.touches[0],d=(u||t).target,c=t.target.shadowRoot&&t.path&&t.path[0]||d,h=o.filter;if(function(e){var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var i=t[n];i.checked&&R.push(i)}}(r),!e&&!(/mousedown|pointerdown/.test(l)&&0!==t.button||o.disabled)&&!c.isContentEditable&&(d=H(d,o.draggable,r))&&a!==d){if(n=te(d,o.draggable),"function"==typeof h){if(h.call(this,t,d,this))return K(i,c,"filter",d,r,r,n),void(s&&t.preventDefault())}else if(h&&(h=h.split(",").some(function(e){if(e=H(c,e.trim(),r))return K(i,e,"filter",d,r,r,n),!0})))return void(s&&t.preventDefault());o.handle&&!H(c,o.handle,r)||this._prepareDragStart(t,u,d,n)}},_prepareDragStart:function(n,i,s,l){var u,d=this,c=d.el,h=d.options,f=c.ownerDocument;s&&!e&&s.parentNode===c&&(v=n,r=c,t=(e=s).parentNode,o=e.nextSibling,a=s,m=h.group,p=l,this._lastX=(i||n).clientX,this._lastY=(i||n).clientY,e.style["will-change"]="all",u=function(){d._disableDelayedDrag(),e.draggable=d.nativeDraggable,q(e,h.chosenClass,!0),d._triggerDragStart(n,i),K(d,r,"choose",e,r,r,p)},h.ignore.split(",").forEach(function(t){V(e,t.trim(),Z)}),W(f,"mouseup",d._onDrop),W(f,"touchend",d._onDrop),W(f,"touchcancel",d._onDrop),W(f,"selectstart",d),h.supportPointer&&W(f,"pointercancel",d._onDrop),h.delay?(W(f,"mouseup",d._disableDelayedDrag),W(f,"touchend",d._disableDelayedDrag),W(f,"touchcancel",d._disableDelayedDrag),W(f,"mousemove",d._disableDelayedDrag),W(f,"touchmove",d._disableDelayedDrag),h.supportPointer&&W(f,"pointermove",d._disableDelayedDrag),d._dragStartTimer=_(u,h.delay)):u())},_disableDelayedDrag:function(){var e=this.el.ownerDocument;clearTimeout(this._dragStartTimer),j(e,"mouseup",this._disableDelayedDrag),j(e,"touchend",this._disableDelayedDrag),j(e,"touchcancel",this._disableDelayedDrag),j(e,"mousemove",this._disableDelayedDrag),j(e,"touchmove",this._disableDelayedDrag),j(e,"pointermove",this._disableDelayedDrag)},_triggerDragStart:function(t,n){(n=n||("touch"==t.pointerType?t:null))?(v={target:e,clientX:n.clientX,clientY:n.clientY},this._onDragStart(v,"touch")):this.nativeDraggable?(W(e,"dragend",this),W(r,"dragstart",this._onDragStart)):this._onDragStart(v,!0);try{E.selection?ae(function(){E.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(){if(r&&e){var t=this.options;q(e,t.ghostClass,!0),q(e,t.dragClass,!1),G.active=this,K(this,r,"start",e,r,r,p)}else this._nulling()},_emulateDragOver:function(){if(b){if(this._lastX===b.clientX&&this._lastY===b.clientY)return;this._lastX=b.clientX,this._lastY=b.clientY,z||Q(n,"display","none");var e=E.elementFromPoint(b.clientX,b.clientY),t=e,i=N.length;if(e&&e.shadowRoot&&(t=e=e.shadowRoot.elementFromPoint(b.clientX,b.clientY)),t)do{if(t[S]){for(;i--;)N[i]({clientX:b.clientX,clientY:b.clientY,target:e,rootEl:t});break}e=t}while(t=t.parentNode);z||Q(n,"display","")}},_onTouchMove:function(e){if(v){var t=this.options,i=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=o.clientX-v.clientX+r.x,s=o.clientY-v.clientY+r.y,l=e.touches?"translate3d("+a+"px,"+s+"px,0)":"translate("+a+"px,"+s+"px)";if(!G.active){if(i&&M(A(o.clientX-this._lastX),A(o.clientY-this._lastY))5||t.clientX-(n.left+n.width)>5}(f,a)){if(0!==f.children.length&&f.children[0]!==n&&f===a.target&&(s=f.lastElementChild),s){if(s.animated)return;u=s.getBoundingClientRect()}Y(k,w),!1!==J(r,f,e,l,s,u,a)&&(e.contains(f)||(f.appendChild(e),t=f),this._animate(l,e),s&&this._animate(u,s))}else if(s&&!s.animated&&s!==e&&void 0!==s.parentNode[S]){d!==s&&(d=s,c=Q(s),h=Q(s.parentNode));var E=(u=s.getBoundingClientRect()).right-u.left,D=u.bottom-u.top,T=C.test(c.cssFloat+c.display)||"flex"==h.display&&0===h["flex-direction"].indexOf("row"),P=s.offsetWidth>e.offsetWidth,I=s.offsetHeight>e.offsetHeight,U=(T?(a.clientX-u.left)/E:(a.clientY-u.top)/D)>.5,z=s.nextElementSibling,A=!1;if(T){var M=e.offsetTop,R=s.offsetTop;A=M===R?s.previousElementSibling===e&&!P||U&&P:s.previousElementSibling===e||e.previousElementSibling===s?(a.clientY-u.top)/D>.5:R>M}else F||(A=z!==e&&!I||U&&I);var N=J(r,f,e,l,s,u,a,A);!1!==N&&(1!==N&&-1!==N||(A=1===N),L=!0,_($,30),Y(k,w),e.contains(f)||(A&&!z?f.appendChild(e):s.parentNode.insertBefore(e,A?z:s)),t=e.parentNode,this._animate(l,e),this._animate(u,s))}}},_animate:function(e,t){var n=this.options.animation;if(n){var i=t.getBoundingClientRect();1===e.nodeType&&(e=e.getBoundingClientRect()),Q(t,"transition","none"),Q(t,"transform","translate3d("+(e.left-i.left)+"px,"+(e.top-i.top)+"px,0)"),t.offsetWidth,Q(t,"transition","all "+n+"ms"),Q(t,"transform","translate3d(0,0,0)"),clearTimeout(t.animated),t.animated=_(function(){Q(t,"transition",""),Q(t,"transform",""),t.animated=!1},n)}},_offUpEvents:function(){var e=this.el.ownerDocument;j(E,"touchmove",this._onTouchMove),j(E,"pointermove",this._onTouchMove),j(e,"mouseup",this._onDrop),j(e,"touchend",this._onDrop),j(e,"pointerup",this._onDrop),j(e,"touchcancel",this._onDrop),j(e,"pointercancel",this._onDrop),j(e,"selectstart",this)},_onDrop:function(a){var s=this.el,l=this.options;clearInterval(this._loopId),clearInterval(w.pid),clearTimeout(this._dragStartTimer),se(this._cloneId),se(this._dragStartId),j(E,"mouseover",this),j(E,"mousemove",this._onTouchMove),this.nativeDraggable&&(j(E,"drop",this),j(s,"dragstart",this._onDragStart)),this._offUpEvents(),a&&(y&&(a.preventDefault(),!l.dropBubble&&a.stopPropagation()),n&&n.parentNode&&n.parentNode.removeChild(n),r!==t&&"clone"===G.active.lastPullMode||i&&i.parentNode&&i.parentNode.removeChild(i),e&&(this.nativeDraggable&&j(e,"dragend",this),Z(e),e.style["will-change"]="",q(e,this.options.ghostClass,!1),q(e,this.options.chosenClass,!1),K(this,r,"unchoose",e,t,r,p),r!==t?(f=te(e,l.draggable))>=0&&(K(null,t,"add",e,t,r,p,f),K(this,r,"remove",e,t,r,p,f),K(null,t,"sort",e,t,r,p,f),K(this,r,"sort",e,t,r,p,f)):e.nextSibling!==o&&(f=te(e,l.draggable))>=0&&(K(this,r,"update",e,t,r,p,f),K(this,r,"sort",e,t,r,p,f)),G.active&&(null!=f&&-1!==f||(f=p),K(this,r,"end",e,t,r,p,f),this.save()))),this._nulling()},_nulling:function(){r=e=t=n=o=i=a=s=l=v=b=y=f=d=c=g=m=G.active=null,R.forEach(function(e){e.checked=!0}),R.length=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragover":case"dragenter":e&&(this._onDragOver(t),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.preventDefault()}(t));break;case"mouseover":this._onDrop(t);break;case"selectstart":t.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,i=0,r=n.length,o=this.options;i"===t[0]&&(t=t.substring(1)),e))try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return}}function q(e,t,n,i){if(e){n=n||document;do{if(null!=t&&(">"!==t[0]||e.parentNode===n)&&v(e,t)||i&&e===n)return e;if(e===n)break}while(e=(o=e).host&&o!==document&&o.host.nodeType?o.host:o.parentNode)}var o;return null}var m,g=/\s+/g;function Q(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(g," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(g," ")}}function G(e,t,n){var i=e&&e.style;if(i){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in i||-1!==t.indexOf("webkit")||(t="-webkit-"+t),i[t]=n+("string"==typeof n?"":"px")}}function y(e,t){var n="";if("string"==typeof e)n=e;else do{var i=G(e,"transform");i&&"none"!==i&&(n=i+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function b(e,t,n){if(e){var i=e.getElementsByTagName(t),o=0,r=i.length;if(n)for(;o=t.left-n&&r<=t.right+n,o=a>=t.top-n&&a<=t.bottom+n;return n&&i&&o?l=e:void 0}}),l);if(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[ee]._onDragOver(n)}}var r,a,l}function Pe(e){ie&&ie.parentNode[ee]._isOutsideThisEl(e.target)}function Re(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=a({},t),e[ee]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return ze(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Re.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var i in N.initializePlugins(this,e,n),n)i in t||(t[i]=n[i]);for(var o in Ie(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&Ae,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?p(e,"pointerdown",this._onTapStart):(p(e,"mousedown",this._onTapStart),p(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(p(e,"dragover",this),p(e,"dragenter",this)),Ee.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),a(this,T())}function Ue(e,t,n,i,o,r,a,l){var s,u,c=e[ee],d=c.options.onMove;return!window.CustomEvent||w||E?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=i,s.related=o||t,s.relatedRect=r||K(t),s.willInsertAfter=l,s.originalEvent=a,e.dispatchEvent(s),d&&(u=d.call(c,s,a)),u}function Be(e){e.draggable=!1}function He(){xe=!1}function Ye(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,i=0;n--;)i+=t.charCodeAt(n);return i.toString(36)}function Xe(e){return setTimeout(e,0)}function je(e){return clearTimeout(e)}Re.prototype={constructor:Re,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(ve=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,ie):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,i=this.el,e=this.options,o=e.preventOnFilter,r=t.type,a=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,l=(a||t).target,s=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,u=e.filter;if(!function(e){De.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var i=t[n];i.checked&&De.push(i)}}(i),!ie&&!(/mousedown|pointerdown/.test(r)&&0!==t.button||e.disabled||s.isContentEditable||(l=q(l,e.draggable,i,!1))&&l.animated||L===l)){if(U=$(l),B=$(l,e.draggable),"function"==typeof u){if(u.call(this,t,l,this))return ne({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:i,fromEl:i}),te("filter",n,{evt:t}),void(o&&t.cancelable&&t.preventDefault())}else if(u=u&&u.split(",").some(function(e){if(e=q(s,e.trim(),i,!1))return ne({sortable:n,rootEl:e,name:"filter",targetEl:l,fromEl:i,toEl:i}),te("filter",n,{evt:t}),!0}))return void(o&&t.cancelable&&t.preventDefault());e.handle&&!q(s,e.handle,i,!1)||this._prepareDragStart(t,a,l)}}},_prepareDragStart:function(e,t,n){var i,o=this,r=o.el,a=o.options,l=r.ownerDocument;if(n&&!ie&&n.parentNode===r){var s=K(n);if(ae=r,oe=(ie=n).parentNode,le=ie.nextSibling,L=n,ce=a.group,H={target:Re.dragged=ie,clientX:(t||e).clientX,clientY:(t||e).clientY},he=H.clientX-s.left,pe=H.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,ie.style["will-change"]="all",i=function(){te("delayEnded",o,{evt:e}),Re.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!u&&o.nativeDraggable&&(ie.draggable=!0),o._triggerDragStart(e,t),ne({sortable:o,name:"choose",originalEvent:e}),Q(ie,a.chosenClass,!0))},a.ignore.split(",").forEach(function(e){b(ie,e.trim(),Be)}),p(l,"dragover",Le),p(l,"mousemove",Le),p(l,"touchmove",Le),p(l,"mouseup",o._onDrop),p(l,"touchend",o._onDrop),p(l,"touchcancel",o._onDrop),u&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ie.draggable=!0),te("delayStart",this,{evt:e}),!a.delay||a.delayOnTouchOnly&&!t||this.nativeDraggable&&(E||w))i();else{if(Re.eventCanceled)return void this._onDrop();p(l,"mouseup",o._disableDelayedDrag),p(l,"touchend",o._disableDelayedDrag),p(l,"touchcancel",o._disableDelayedDrag),p(l,"mousemove",o._delayedDragTouchMoveHandler),p(l,"touchmove",o._delayedDragTouchMoveHandler),a.supportPointer&&p(l,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(i,a.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ie&&Be(ie),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;f(e,"mouseup",this._disableDelayedDrag),f(e,"touchend",this._disableDelayedDrag),f(e,"touchcancel",this._disableDelayedDrag),f(e,"mousemove",this._delayedDragTouchMoveHandler),f(e,"touchmove",this._delayedDragTouchMoveHandler),f(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?p(document,"pointermove",this._onTouchMove):p(document,t?"touchmove":"mousemove",this._onTouchMove):(p(ie,"dragend",this),p(ae,"dragstart",this._onDragStart));try{document.selection?Xe(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(be=!1,ae&&ie){te("dragStarted",this,{evt:t}),this.nativeDraggable&&p(document,"dragover",Pe);var n=this.options;e||Q(ie,n.dragClass,!1),Q(ie,n.ghostClass,!0),Re.active=this,e&&this._appendGhost(),ne({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Y){this._lastX=Y.clientX,this._lastY=Y.clientY,Ne();for(var e=document.elementFromPoint(Y.clientX,Y.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Y.clientX,Y.clientY))!==t;)t=e;if(ie.parentNode[ee]._isOutsideThisEl(e),t)do{if(t[ee]){if(t[ee]._onDragOver({clientX:Y.clientX,clientY:Y.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Oe()}},_onTouchMove:function(e){if(H){var t=this.options,n=t.fallbackTolerance,i=t.fallbackOffset,o=e.touches?e.touches[0]:e,r=re&&y(re,!0),a=re&&r&&r.a,l=re&&r&&r.d,s=Fe&&ye&&S(ye),u=(o.clientX-H.clientX+i.x)/(a||1)+(s?s[0]-Ce[0]:0)/(a||1),c=(o.clientY-H.clientY+i.y)/(l||1)+(s?s[1]-Ce[1]:0)/(l||1);if(!Re.active&&!be){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))B.right+10||P.clientX<=B.right&&P.clientY>B.bottom&&P.clientX>=B.left:P.clientX>B.right&&P.clientY>B.top||P.clientX<=B.right&&P.clientY>B.bottom+10)||v.animated)){if(s.parentNode===l){o=K(s);var m,g,y,b=ie.parentNode!==l,w=(F=ie.animated&&ie.toRect||i,T=s.animated&&s.toRect||o,M=(A=a)?F.left:F.top,z=A?F.right:F.bottom,I=A?F.width:F.height,N=A?T.left:T.top,O=A?T.right:T.bottom,L=A?T.width:T.height,!(M===N||z===O||M+I/2===N+L/2)),E=a?"top":"left",k=V(s,"top","top")||V(ie,"top","top"),S=k?k.scrollTop:void 0;if(ve!==s&&(g=o[E],ke=!1,Se=!w&&t.invertSwap||b),0!==(m=function(e,t,n,i,o,r,a,l){var s=i?e.clientY:e.clientX,u=i?n.height:n.width,c=i?n.top:n.left,d=i?n.bottom:n.right,h=!1;if(!a)if(l&&gemodular()) { + while ($page && $page->modularTwig()) { $header = $page->header(); $header->never_cache_twig = true; $page = $page->parent(); @@ -546,7 +547,11 @@ class Form implements FormInterface, \ArrayAccess // json_response return [ 'status' => 'error', - 'message' => sprintf($language->translate('PLUGIN_FORM.FILEUPLOAD_UNABLE_TO_UPLOAD', null, true), $filename, $this->upload_errors[$upload['file']['error']]) + 'message' => sprintf( + $language->translate('PLUGIN_FORM.FILEUPLOAD_UNABLE_TO_UPLOAD', null, true), + $filename, + $this->getFileUploadError($upload['file']['error'], $language) + ) ]; } @@ -652,6 +657,11 @@ class Form implements FormInterface, \ArrayAccess $upload['file']['name'] = $filename; $upload['file']['path'] = $path; + // Special Sanitization for SVG + if (method_exists('Grav\Common\Security', 'sanitizeSVG') && Utils::contains($mime, 'svg', false)) { + Security::sanitizeSVG($upload['file']['tmp_name']); + } + // We need to store the file into flash object or it will not be available upon save later on. $flash = $this->getFlash(); $flash->setUrl($url)->setUser($grav['user'] ?? null); @@ -693,6 +703,54 @@ class Form implements FormInterface, \ArrayAccess exit; } + /** + * Return an error message for a PHP file upload error code + * https://www.php.net/manual/en/features.file-upload.errors.php + * + * @param int $error PHP file upload error code + * @param Language|null $language + * @return string File upload error message + */ + public function getFileUploadError(int $error, Language $language = null): string + { + if (!$language) { + $grav = Grav::instance(); + + /** @var Language $language */ + $language = $grav['language']; + } + + switch ($error) { + case UPLOAD_ERR_OK: + $item = 'FILEUPLOAD_ERR_OK'; + break; + case UPLOAD_ERR_INI_SIZE: + $item = 'FILEUPLOAD_ERR_INI_SIZE'; + break; + case UPLOAD_ERR_FORM_SIZE: + $item = 'FILEUPLOAD_ERR_FORM_SIZE'; + break; + case UPLOAD_ERR_PARTIAL: + $item = 'FILEUPLOAD_ERR_PARTIAL'; + break; + case UPLOAD_ERR_NO_FILE: + $item = 'FILEUPLOAD_ERR_NO_FILE'; + break; + case UPLOAD_ERR_NO_TMP_DIR: + $item = 'FILEUPLOAD_ERR_NO_TMP_DIR'; + break; + case UPLOAD_ERR_CANT_WRITE: + $item = 'FILEUPLOAD_ERR_CANT_WRITE'; + break; + case UPLOAD_ERR_EXTENSION: + $item = 'FILEUPLOAD_ERR_EXTENSION'; + break; + default: + $item = 'FILEUPLOAD_ERR_UNKNOWN'; + } + return $language->translate('PLUGIN_FORM.'.$item); + } + /** * Removes a file from the flash object session, before it gets saved. */ @@ -854,7 +912,7 @@ class Form implements FormInterface, \ArrayAccess /** * @return string - * @deprecated 3.0 Use $this->getName() instead + * @deprecated 3.0 Use $form->getName() instead */ public function name(): string { @@ -863,7 +921,7 @@ class Form implements FormInterface, \ArrayAccess /** * @return array - * @deprecated 3.0 Use $this->getFields() instead + * @deprecated 3.0 Use $form->getFields() instead */ public function fields(): array { @@ -872,7 +930,7 @@ class Form implements FormInterface, \ArrayAccess /** * @return PageInterface - * @deprecated 3.0 Use $this->getPage() instead + * @deprecated 3.0 Use $form->getPage() instead */ public function page(): PageInterface { @@ -882,7 +940,7 @@ class Form implements FormInterface, \ArrayAccess /** * Backwards compatibility * - * @deprecated 3.0 + * @deprecated 3.0 Calling $form->filter() is not needed anymore (does nothing) */ public function filter(): void { @@ -995,7 +1053,7 @@ class Form implements FormInterface, \ArrayAccess public function getPagePathFromToken($path) { - return Utils::getPagePathFromToken($path, $this->page()); + return Utils::getPagePathFromToken($path, $this->getPage()); } /** diff --git a/user/plugins/form/form.php b/user/plugins/form/form.php index 8efa9a0..29f073f 100644 --- a/user/plugins/form/form.php +++ b/user/plugins/form/form.php @@ -1,4 +1,5 @@ grav['forms'] = function () { $forms = new Forms(); @@ -156,7 +158,7 @@ class FormPlugin extends Plugin // Force never_cache_twig if modular form (recursively up) $current = $page; - while ($current && $current->modular()) { + while ($current && $current->modularTwig()) { $header = $current->header(); $header->never_cache_twig = true; @@ -218,9 +220,9 @@ class FormPlugin extends Plugin // Enable form events if there's a POST if ($this->shouldProcessForm()) { $this->enable([ - 'onFormProcessed' => ['onFormProcessed', 0], + 'onFormProcessed' => ['onFormProcessed', 0], 'onFormValidationError' => ['onFormValidationError', 0], - 'onFormFieldTypes' => ['onFormFieldTypes', 0], + 'onFormFieldTypes' => ['onFormFieldTypes', 0], ]); /** @var Uri $uri */ @@ -233,8 +235,9 @@ class FormPlugin extends Plugin if ($form instanceof Form) { // Post the form $isJson = $uri->extension() === 'json'; + $task = $uri->post('task') ?? $uri->param('task'); + if ($isJson) { - $task = $uri->post('task') ?? $uri->param('task'); if ($task === 'store-state') { $this->json_response = $form->storeState(); } elseif ($task === 'clear-state') { @@ -244,8 +247,9 @@ class FormPlugin extends Plugin } elseif ($task === 'file-upload' || $uri->post('__form-file-uploader__')) { $this->json_response = $form->uploadFiles(); } - } else { - $task = $uri->post('task'); + } + + if (empty($this->json_response)) { if ($task === 'clear-state') { $form->getFlash()->delete(); $redirect = $form->getBlueprint()->get('form/clear_redirect_url') ?? $page->route(); @@ -329,9 +333,9 @@ class FormPlugin extends Plugin new \Twig_SimpleFunction('forms', [$this, 'getForm']) ); - $this->grav['twig']->twig()->getExtension('Twig_Extension_Core')->setEscaper('yaml', function($twig, $string, $charset) { + $this->grav['twig']->twig()->getExtension('Twig_Extension_Core')->setEscaper('yaml', function ($twig, $string, $charset) { return Yaml::dump($string); - } + } ); } @@ -399,6 +403,9 @@ class FormPlugin extends Plugin $ip = Uri::ip(); $recaptcha = new ReCaptcha($secret); + if (extension_loaded('curl')) { + $recaptcha = new ReCaptcha($secret, new CurlPost()); + } // get captcha version $captcha_version = $captcha_config['version'] ?? 2; @@ -427,13 +434,13 @@ class FormPlugin extends Plugin $type = $field['type'] ?? 'text'; $field_message = $field['recaptcha_not_validated'] ?? null; if ($type === 'captcha' && $field_message) { - $message = $field_message; + $message = $field_message; break; } } $this->grav->fireEvent('onFormValidationError', new Event([ - 'form' => $form, + 'form' => $form, 'message' => $message ])); @@ -448,16 +455,16 @@ class FormPlugin extends Plugin $label = $params['label'] ?? 'Timestamp'; $format = $params['format'] ?? 'Y-m-d H:i:s'; $blueprint = $form->value()->blueprints(); - $blueprint->set('form/fields/timestamp', ['name'=>'timestamp', 'label'=> $label, 'type'=>'hidden']); + $blueprint->set('form/fields/timestamp', ['name' => 'timestamp', 'label' => $label, 'type' => 'hidden']); $now = new \DateTime('now'); $date_string = $now->format($format); $form->setFields($blueprint->fields()); - $form->setData('timestamp',$date_string); + $form->setData('timestamp', $date_string); break; case 'ip': $label = $params['label'] ?? 'User IP'; $blueprint = $form->value()->blueprints(); - $blueprint->set('form/fields/ip', ['name'=>'ip', 'label'=> $label, 'type'=>'hidden']); + $blueprint->set('form/fields/ip', ['name' => 'ip', 'label' => $label, 'type' => 'hidden']); $form->setFields($blueprint->fields()); $form->setData('ip', Uri::ip()); break; @@ -503,7 +510,7 @@ class FormPlugin extends Plugin if (!$route || $route[0] !== '/') { /** @var Uri $uri */ $uri = $this->grav['uri']; - $route = rtrim($uri->route(), '/'). '/' . ($route ?: ''); + $route = rtrim($uri->route(), '/') . '/' . ($route ?: ''); } /** @var Twig $twig */ @@ -523,8 +530,8 @@ class FormPlugin extends Plugin break; case 'remember': foreach ($params as $remember_field) { - $field_cookie = 'forms-'.$form['name'].'-'.$remember_field; - setcookie($field_cookie, $form->value($remember_field), time()+60*60*24*60); + $field_cookie = 'forms-' . $form['name'] . '-' . $remember_field; + setcookie($field_cookie, $form->value($remember_field), time() + 60 * 60 * 24 * 60); } break; case 'upload': @@ -547,7 +554,7 @@ class FormPlugin extends Plugin throw new \RuntimeException('Form save: \'operation: add\' is only supported with a static filename'); } - $filename = $prefix . $this->udate($format, $raw_format) . $postfix. $ext; + $filename = $prefix . $this->udate($format, $raw_format) . $postfix . $ext; } /** @var Twig $twig */ @@ -562,7 +569,7 @@ class FormPlugin extends Plugin $locator = $this->grav['locator']; $path = $locator->findResource('user-data://', true); $dir = $path . DS . $folder; - $fullFileName = $dir. DS . $filename; + $fullFileName = $dir . DS . $filename; if (!empty($params['raw']) || !empty($params['template'])) { // Save data as it comes from the form. @@ -673,7 +680,7 @@ class FormPlugin extends Plugin /** * Handle form validation error * - * @param Event $event An event object + * @param Event $event An event object * @throws \Exception */ public function onFormValidationError(Event $event) @@ -708,10 +715,14 @@ class FormPlugin extends Plugin * Add a form to the forms plugin * * @param string|null $page_route - * @param FormInterface $form + * @param FormInterface|null $form */ - public function addForm(?string $page_route, FormInterface $form) + public function addForm(?string $page_route, ?FormInterface $form) { + if (null === $form) { + return; + } + $name = $form->getName(); if (!isset($this->forms[$page_route][$name])) { @@ -813,7 +824,7 @@ class FormPlugin extends Plugin 'key' => [ 'input@' => false ], - 'section' => [ + 'section' => [ 'input@' => false ], 'spacer' => [ @@ -915,7 +926,7 @@ class FormPlugin extends Plugin } if (isset($form->refresh_prevention)) { - $refresh_prevention = (bool) $form->refresh_prevention; + $refresh_prevention = (bool)$form->refresh_prevention; } else { $refresh_prevention = $this->config->get('plugins.form.refresh_prevention', false); } @@ -1072,7 +1083,7 @@ class FormPlugin extends Plugin * Create unix timestamp for storing the data into the filesystem. * * @param string $format - * @param bool $raw + * @param bool $raw * * @return string */ diff --git a/user/plugins/form/gulpfile.js b/user/plugins/form/gulpfile.js index 60f7191..d0c2770 100644 --- a/user/plugins/form/gulpfile.js +++ b/user/plugins/form/gulpfile.js @@ -1,19 +1,19 @@ 'use strict'; -var gulp = require('gulp'), - util = require('util'), - path = require('path'), - immutable = require('immutable'), - gulpWebpack = require('gulp-webpack'), - webpack = require('webpack'), - sourcemaps = require('gulp-sourcemaps'), - exec = require('child_process').execSync, - sass = require('gulp-sass'), - cleancss = require('gulp-clean-css'), - csscomb = require('gulp-csscomb'), - rename = require('gulp-rename'), - autoprefixer = require('gulp-autoprefixer'), - pwd = exec('pwd').toString(); +var gulp = require('gulp'); +var util = require('util'); +var path = require('path'); +var immutable = require('immutable'); +var gulpWebpack = require('gulp-webpack'); +var webpack = require('webpack'); +var sourcemaps = require('gulp-sourcemaps'); +var exec = require('child_process').execSync; +var sass = require('gulp-sass'); +var cleancss = require('gulp-clean-css'); +var csscomb = require('gulp-csscomb'); +var rename = require('gulp-rename'); +var autoprefixer = require('gulp-autoprefixer'); +var pwd = exec('pwd').toString(); // configure the paths var watch_dir = './scss/**/*.scss'; @@ -24,23 +24,23 @@ var paths = { source: src_dir }; -var plugins = {}, - base = immutable.fromJS(require('./webpack.conf.js')), - options = { - prod: base.mergeDeep({ - devtool: 'source-map', - optimization: {minimize: true}, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': { NODE_ENV: '"production"' } - }), - new webpack.ProvidePlugin(plugins) - ], - output: { - filename: 'form.min.js' - } - }) - }; +var plugins = {}; +var base = immutable.fromJS(require('./webpack.conf.js')); +var options = { + prod: base.mergeDeep({ + devtool: 'source-map', + optimization: {minimize: true}, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { NODE_ENV: '"production"' } + }), + new webpack.ProvidePlugin(plugins) + ], + output: { + filename: 'form.min.js' + } + }) +}; // var compileJS = function(watch) { // var prodOpts = options.prod.set('watch', watch); @@ -65,7 +65,7 @@ var compileCSS = function() { suffix: '.min' })) .pipe(gulp.dest(dest_dir)); -} +}; // gulp.task('js', function() { // compileJS(false); @@ -81,4 +81,4 @@ gulp.task('watch', function() { }); gulp.task('all', ['css']); -gulp.task('default', ['all']); \ No newline at end of file +gulp.task('default', ['all']); diff --git a/user/plugins/form/languages.yaml b/user/plugins/form/languages.yaml index 797be03..ca2e4b7 100644 --- a/user/plugins/form/languages.yaml +++ b/user/plugins/form/languages.yaml @@ -31,6 +31,15 @@ en: FILEUPLOAD_PREVENT_SELF: 'Cannot use "%s" outside of pages.' FILEUPLOAD_UNABLE_TO_UPLOAD: 'Unable to upload file %s: %s' FILEUPLOAD_UNABLE_TO_MOVE: 'Unable to move file %s to "%s"' + FILEUPLOAD_ERR_OK: 'There is no error, the file uploaded with success' + FILEUPLOAD_ERR_INI_SIZE: 'The uploaded file exceeds the max upload size' + FILEUPLOAD_ERR_FORM_SIZE: 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML' + FILEUPLOAD_ERR_PARTIAL: 'The uploaded file was only partially uploaded' + FILEUPLOAD_ERR_NO_FILE: 'No file was uploaded' + FILEUPLOAD_ERR_NO_TMP_DIR: 'Missing a temporary folder' + FILEUPLOAD_ERR_CANT_WRITE: 'Failed to write file to disk' + FILEUPLOAD_ERR_EXTENSION: 'A PHP extension stopped the file upload' + FILEUPLOAD_ERR_UNKNOWN: 'Unknown file upload error' DROPZONE_CANCEL_UPLOAD: 'Cancel upload' DROPZONE_CANCEL_UPLOAD_CONFIRMATION: 'Are you sure you want to cancel this upload?' DROPZONE_DEFAULT_MESSAGE: 'Drop your files here or click in this area' @@ -241,6 +250,7 @@ fr: NOT_VALIDATED: "Formulaire non validé. Un ou plusieurs champs obligatoires sont manquants." NONCE_NOT_VALIDATED: "Oups, un problème est survenu. Veuillez vérifier votre saisie et soumettre à nouveau le formulaire." FILES: "Fichiers chargés" + FORM_ALREADY_SUBMITTED: "Le formulaire a déjà été envoyé." ALLOW_MULTIPLE: "Autoriser plus d'un fichier" ALLOW_MULTIPLE_HELP: "Permet la sélection de plusieurs fichiers pour chargement." DESTINATION: "Destination" @@ -436,6 +446,7 @@ hu: NOT_VALIDATED: "Érvénytelen az űrlap. Egy vagy több kötelező mező nincs kitöltve." NONCE_NOT_VALIDATED: "Upsz, van egy kis probléma, kérlek nézd át az űrlapot, majd küldd el újra." FILES: "Fájlok Feltöltése" + FORM_ALREADY_SUBMITTED: "Ez az űrlap már el lett küldve." ALLOW_MULTIPLE: "Több fájl feltöltése" ALLOW_MULTIPLE_HELP: "Engedélyezi egyszerre több állomány feltöltését." DESTINATION: "Feltöltés Helye" @@ -443,6 +454,58 @@ hu: ACCEPT: "Engedélyezett MIME-típusok" ACCEPT_HELP: "A feltölthető állományok MIME-típusainak listája" ERROR_VALIDATING_CAPTCHA: "Hiba lépett fel a Captcha validálása során" + DATA_SUMMARY: "Üzenet összesítő:" + NO_FORM_DATA: "Űrlap adatok nem elérhetőek." + RECAPTCHA: "reCAPTCHA" + RECAPTCHA_VERSION: "Verzió" + RECAPTCHA_VERSION_V2_CHECKBOX: "v2 - Kijelölőnégyzet" + RECAPTCHA_VERSION_V2_INVISIBLE: "v2 - Láthatatlan" + RECAPTCHA_VERSION_V3_LATEST: "v3 - Legutolsó" + RECAPTCHA_THEME: "Téma" + RECAPTCHA_THEME_LIGHT: "Világos téma" + RECAPTCHA_THEME_DARK: "Sötét téma" + RECAPTCHA_SITE_KEY: "Site kulcs" + RECAPTCHA_SITE_KEY_HELP: "További információért látogass el ide a https://developers.google.com/recaptcha webhelyre." + RECAPTCHA_SECRET_KEY: "Secret kulcs" + RECAPTCHA_SECRET_KEY_HELP: "További információért látogass el ide a https://developers.google.com/recaptcha webhelyre." + GENERAL: "Általános" + USE_BUILT_IN_CSS: "Alapértelmezett CSS használata" + USE_INLINE_CSS: "Beágyazott CSS használata" + FILEUPLOAD_PREVENT_SELF: '"%s" nem használható oldalakon kívül.' + FILEUPLOAD_UNABLE_TO_UPLOAD: 'Sikertelen fájlfeltöltés %s: %s' + FILEUPLOAD_UNABLE_TO_MOVE: '%s áthelyezése sikertelen ide: "%s"' + DROPZONE_CANCEL_UPLOAD: 'Feltöltés megszakítása' + DROPZONE_CANCEL_UPLOAD_CONFIRMATION: 'Biztos megszakítsuk a feltöltést?' + DROPZONE_DEFAULT_MESSAGE: 'Húzza a fájlokat ide vagy kattintson a területre' + DROPZONE_FALLBACK_MESSAGE: 'A böngésző nem támogatja a drag and drop fájlfeltöltéseket.' + DROPZONE_FALLBACK_TEXT: 'Kérjük használja a kompatibilitási űrlapot vagy a hagyományos fájfeltöltést.' + DROPZONE_FILE_TOO_BIG: 'Túl nagy állomány ({{filesize}}MiB). Maximum fájlméret: {{maxFilesize}}MiB.' + DROPZONE_INVALID_FILE_TYPE: "Ilyen típusú fájlok feltöltése nem megengedett." + DROPZONE_MAX_FILES_EXCEEDED: "További fájlok feltöltése nem megengedett, elérte a maximumot." + DROPZONE_REMOVE_FILE: "Fájl eltávolítása" + DROPZONE_REMOVE_FILE_CONFIRMATION: 'Biztos az eltávolításban?' + DROPZONE_RESPONSE_ERROR: "Szerver hiba, kód: {{statusCode}}." + YES: "Igen" + NO: "Nem" + REFRESH_PREVENTION: "Újratöltési védelem" + REFRESH_PREVENTION_HELP: "Az űrlap egyedi azonosítójának használata annak érdekében hogy az űrlap ne legyen újrafeldolgozva oldalfrissítés esetén." + LIMIT: "Limit" + LIMIT_HELP: "Az egy mezőben megadható fájlok maximális száma. (multiple required)" + FILESIZE: "Maximum fájlméret" + FILESIZE_HELP: "Maximum engedélyezett fájlméret (MB-ban), 0 = Rendszer alapértelmezés használata." + AVOID_OVERWRITING: "Felülírás elkerülése" + AVOID_OVERWRITING_HELP: "A már létező fájlok felülírásának elkerülése, dátum előtag hozzáadásával a fájlnévhez." + RANDOM_NAME: "Véletlenszerű név" + RANDOM_NAME_HELP: "Generáljon egy 15 karakter hosszú véletlenszerű nevet a feltöltött fájloknak." + CLIENT_SIDE_VALIDATION: "Kliens oldali validáció" + CLIENT_SIDE_VALIDATION_HELP: "Az űrlapok HTML5 kliens oldali validációt használnak alapértelmezésként, mint első védelmi vonal." + INLINE_ERRORS: "Beágyazott hibaüzenetek" + INLINE_ERRORS_HELP: "Beágyazott kontextuális űrlaphibák megjelenítése, hasznos ha a 'Kliens oldali validáció' ki van kapcsolva." + RESOLUTION_MIN: "A(z) {{attr}} érték kisebb mint a minimum {{min}}px
    " + RESOLUTION_MAX: "A(z) {{attr}} érték nagyobb mint a maximum {{max}}px
    " + DESTINATION_NOT_SPECIFIED: "A feltöltés helye nincs megadva." + INVALID_MIME_TYPE: "MIME-típus %s nem engedélyezett. Állomány: %s." + INVALID_FILE_EXTENSION: "A(z) %s állomány kiterjesztése nem engedélyezett." it: PLUGIN_FORM: diff --git a/user/plugins/form/package.json b/user/plugins/form/package.json index d0ffada..241a1b5 100644 --- a/user/plugins/form/package.json +++ b/user/plugins/form/package.json @@ -12,35 +12,34 @@ "author": "Team Grav", "license": "MIT", "dependencies": { - "dropzone": "^5.5.1", + "dropzone": "getgrav/dropzone#master", "exif-js": "^2.3.0", - "sortablejs": "^1.7.0" + "sortablejs": "^1.10.2" }, "devDependencies": { - "babel-core": "^6.26.3", - "babel-eslint": "^8.2.6", - "babel-loader": "^7.1.5", + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.1.0", "babel-polyfill": "^6.26.0", - "babel-preset-es2015": "^6.24.1", - "babel-preset-stage-3": "^6.24.1", - "css-loader": "^1.0.0", - "eslint": "^5.6.0", - "eslint-loader": "^2.1.1", + "css-loader": "^3.4.2", + "eslint": "^6.8.0", + "eslint-loader": "^3.0.4", "exports-loader": "^0.7.0", - "gulp": "latest", - "gulp-autoprefixer": "latest", - "gulp-clean-css": "^3.10.0", - "gulp-csscomb": "^3.0.8", - "gulp-rename": "^1.4.0", - "gulp-sass": "^4.0.1", - "gulp-sourcemaps": "^2.6.4", + "gulp": "^4.0.2", + "gulp-autoprefixer": "^7.0.1", + "gulp-clean-css": "^4.3.0", + "gulp-csscomb": "^3.1.0", + "gulp-rename": "^2.0.0", + "gulp-sass": "^4.0.2", + "gulp-sourcemaps": "^2.6.5", "gulp-webpack": "^1.5.0", "immutable": "^4.0.0-rc.12", "imports-loader": "^0.8.0", "json-loader": "^0.5.7", - "style-loader": "^0.23.0", - "uglifyjs-webpack-plugin": "^2.0.1", - "webpack": "^4.19.1", - "webpack-cli": "^3.1.0" + "style-loader": "^1.1.3", + "uglifyjs-webpack-plugin": "^2.2.0", + "webpack": "^4.42.1", + "webpack-cli": "^3.3.11" } } diff --git a/user/plugins/form/templates/forms/default/data.html.twig b/user/plugins/form/templates/forms/default/data.html.twig index 0b394c7..5b00ec8 100644 --- a/user/plugins/form/templates/forms/default/data.html.twig +++ b/user/plugins/form/templates/forms/default/data.html.twig @@ -2,41 +2,57 @@ {% import _self as self %} {% for index, field in fields %} - {% set input = attribute(field, "input@") %} - - {% if input is null or input == true %} - - {% if form.value(scope ~ field.name) %} - {% block field %} -
    - {% block field_label %} - {{ field.label|t|e }}: - {% endblock %} - - {% block field_value %} - {% if field.type == 'checkboxes' %} -
      - {% set use_keys = field.use is defined and field.use == 'keys' %} - {% for key,value in form.value(scope ~ field.name) %} - {% set index = (use_keys ? key : value) %} -
    • {{ field.options[index]|e }}
    • - {% endfor %} -
    - {% elseif field.type == 'checkbox' %} - {{ (form.value(scope ~ field.name) == 1) ? "GRAV.YES"|t|e : "GRAV.NO"|t|e }} - {% elseif field.type == 'select' %} - {{ field.options[form.value(scope ~ field.name)]|e }} - {% else %} - {{ string(form.value(scope ~ field.name))|nl2br }} - {% endif %} - {% endblock %} -
    - {% endblock %} - {% endif %} + {%- set show_field = attribute(field, "input@") ?? field.store ?? true %} + {% if field.fields %} + {%- set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope -%} + {{- self.render_field(form, field.fields, new_scope) }} {% else %} - {% if field.fields %} - {% set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope %} - {{ self.render_field(form, field.fields, new_scope) }} + {% if show_field %} + {%- set value = form.value(scope ~ (field.name ?? index)) -%} + {% if value %} + {% block field %} +
    + {% block field_label %} + {{ field.label|t|e }}: + {% endblock %} + + {% block field_value %} + {% if field.type == 'checkboxes' %} +
      + {% set use_keys = field.use is defined and field.use == 'keys' %} + {% for key,value in form.value(scope ~ field.name) %} + {% set index = (use_keys ? key : value) %} +
    • {{ field.options[index]|e }}
    • + {% endfor %} +
    + {% elseif field.type == 'checkbox' %} + {{ (form.value(scope ~ field.name) == 1) ? "GRAV.YES"|t|e : "GRAV.NO"|t|e }} + {% elseif field.type == 'select' %} + {{ field.options[form.value(scope ~ field.name)]|e }} + {% else %} + {% set value = form.value(scope ~ field.name) %} + {% if value is iterable %} +
      + {% for val in value %} + {% if val is iterable %} +
        + {% for v in val %} +
      • {{ string(v)|e }}
      • + {% endfor %} +
      + {% else %} +
    • {{ string(val)|e }}
    • + {% endif %} + {% endfor %} +
    + {% else %} + {{ string(value)|e|nl2br }} + {% endif %} + {% endif %} + {% endblock %} +
    + {% endblock %} + {% endif %} {% endif %} {% endif %} {% endfor %} @@ -45,4 +61,3 @@ {% import _self as macro %} {{ macro.render_field(form, form.fields, '') }} - diff --git a/user/plugins/form/templates/forms/default/data.txt.twig b/user/plugins/form/templates/forms/default/data.txt.twig index 20fe474..c34fdf4 100644 --- a/user/plugins/form/templates/forms/default/data.txt.twig +++ b/user/plugins/form/templates/forms/default/data.txt.twig @@ -1,14 +1,16 @@ {%- macro render_field(form, fields, scope) %} {%- import _self as self %} {%- for index, field in fields %} - {%- set input = attribute(field, "input@") %} - {%- if input is null or input == true %} - {%- set value = form.value(scope ~ (field.name ?? index)) %} - {{- scope ~ (field.name ?? index) }}: {{ string(value is iterable ? value|json_encode : value|escape('yaml')) ~ "\r\n" }} - {%- else %} - {%- if field.fields %} + {%- set show_field = attribute(field, "input@") ?? field.store ?? true %} + {%- if field.fields %} {%- set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope -%} {{- self.render_field(form, field.fields, new_scope) }} + {%- else %} + {%- if show_field %} + {%- set value = form.value(scope ~ (field.name ?? index)) -%} + {%- if value -%} + {{- field.label }}: {{ string(value is iterable ? value|json_encode : value|e) ~ "\r\n" }} + {%- endif -%} {%- endif %} {%- endif %} {%- endfor %} @@ -16,4 +18,4 @@ {%- import _self as macro %} {%- autoescape false %} {{- macro.render_field(form, form.fields, '') ~ "\r\n" }} -{%- endautoescape %} \ No newline at end of file +{%- endautoescape %} diff --git a/user/plugins/form/templates/forms/default/field.html.twig b/user/plugins/form/templates/forms/default/field.html.twig index 68a87e7..e47b2c9 100644 --- a/user/plugins/form/templates/forms/default/field.html.twig +++ b/user/plugins/form/templates/forms/default/field.html.twig @@ -1,4 +1,7 @@ -{% if not field.validate.ignore %} +{% if not field.validate.ignore %} + +{% use 'forms/layouts/field-variables.html.twig' %} +{% block field_override_variables_before %}{% endblock %} {% set field_name = (scope ~ field.name)|fieldName %} {% set vertical = field.style == 'vertical' %} @@ -7,11 +10,11 @@ {% set toggleable = field.toggleable ?? false %} {% if toggleable %} {% set originalValue = originalValue is defined ? originalValue : value %} - {% set toggleableChecked = originalValue is not null and originalValue is not empty %} + {% set toggleableChecked = originalValue is not null %} {% elseif field.overridable %} {% set toggleable = true %} {% set default = form.getDefaultValue(field.name) ?? field.default %} - {% set toggleableChecked = value != default %} + {% set toggleableChecked = value is not null and value != default %} {% endif %} {% set cookie_name = 'forms-' ~ form.name ~ '-' ~ field.name %} @@ -27,6 +30,12 @@ {# DEPRECATED: Needed by old form fields; remove when backwards compatibility breaks are allowed #} {% set isDisabledToggleable = toggleable and not toggleableChecked %} +{% if toggleable %} + {% set form_field_toggleable %} + {% include 'forms/default/toggleable.html.twig' with {checked: toggleableChecked} %} + {% endset %} +{% endif %} + {% set errors = attribute(form.messages, field.name) %} {% set required = client_side_validation and field.validate.required in ['on', 'true', 1] %} {% set autofocus = (inline_errors == false) and field.autofocus in ['on', 'true', 1] %} @@ -35,105 +44,112 @@ {% set autofocus = true %} {% endif %} -{% block field %} -
    - {% block contents %} - {% if field.label is not same as(false) and field.display_label is not same as(false) %} -
    - {% if toggleable %} - {% include 'forms/default/toggleable.html.twig' with {field_name: field_name, field: field, checked: toggleableChecked} %} - {% endif %} - -
    - {% endif %} -
    - {% block group %} - {% block input %} -
    - {% block prepend %}{% endblock prepend %} - - {% block append %}{% endblock append %} - {% if inline_errors and errors %} -
    -

    {{ errors|first }}

    -
    - {% endif %} -
    - {% endblock %} - {% endblock %} - {% if field.description %} -
    - - {% if field.markdown %} - {{ field.description|t|markdown(false)|raw }} - {% else %} - {{ field.description|t|raw }} - {% endif %} - -
    - {% endif %} +{% set layout_form_field_outer_classes = field.outerclasses %} +{% set layout_form_field_outer_classes = layout_form_field_outer_classes|trim ~ ' ' ~ form_field_outer_classes %} +{% set layout_form_field_outer_classes = layout_form_field_outer_classes|trim ~ ' ' ~ embed_outer_field_classes %} -
    - {% endblock %} -
    +{# Show Label logic #} +{% set show_label = field.label is not same as(false) and field.display_label is not same as(false )%} + +{# Label Classes #} +{% set layout_form_field_outer_label_classes = ((form_field_outer_label_classes ?: 'form-label') ~ ' ' ~ field.labelclasses)|trim %} +{% set layout_form_field_label_classes = (form_field_label_classes ?: 'inline')|trim %} +{% set form_field_label_trim = toggleable ? 'toggleable' %} + +{# Field Outer Data classes #} +{% set layout_form_field_outer_data_classes = ((form_field_outer_data_classes ?: ' form-data') ~ ' ' ~ field.dataclasses)|trim %} + +{# Field Wrapper classes #} +{% set layout_form_field_wrapper_classes = ((form_field_wrapper_classes ?: ' form-input-wrapper') ~ ' ' ~ field.wrapper_classes)|trim %} + +{# Field input classes #} +{% if field|of_type('array') %} + {% if field.classes %} + {% set field = field|merge({'classes': field.classes ~ ' ' ~ block('field_input_classes')|trim }) %} + {% else %} + {% set field = field|merge({'classes': block('field_input_classes') }) %} + {% endif %} +{% endif %} +{% set layout_form_field_input_classes = (form_field_input_classes ~ ' ' ~ field.classes)|trim %} + +{# Inline error classes #} +{% set form_field_inline_error_classes = form_field_inline_error_classes ?: ' form-errors' %} + +{# Field extra classes #} +{% set form_field_extra_wrapper_classes = 'form-extra-wrapper ' ~ field.wrapper_classes %} + +{# Field For #} +{% set form_field_for = toggleable ? 'toggleable_' ~ field.name : field.id|e %} + +{# Field Label #} +{% set form_field_label = field.markdown ? field.label|markdown(false) : field.label %} +{% set form_field_label = form_field_label|default(field.name|capitalize)|t %} + +{# Field Help #} +{% if field.help %} + {% set form_field_help = field.markdown ? field.help|t|markdown(false)|e : field.help|t|e %} +{% endif %} + +{# Field Requied #} +{% set form_field_required = field.validate.required in ['on', 'true', 1] ? true : false %} + +{# Field Description #} +{% set form_field_description = field.markdown ? field.description|t|markdown(false)|raw : field.description|t|raw %} + +{% extends 'forms/layouts/field.html.twig' %} + +{% block global_attributes %} + data-grav-field="{{ field.type }}" + data-grav-disabled="{{ toggleable and toggleableChecked }}" + data-grav-default="{{ field.default|json_encode()|e('html_attr') }}" {% endblock %} +{% block input_attributes %} + class="{{ layout_form_field_input_classes|trim }} {{ field.size }}" + {% if field.id is defined %}id="{{ field.id|e }}" {% endif %} + {% if field.style is defined %}style="{{ field.style|e }}" {% endif %} + {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %} + {% if field.placeholder %}placeholder="{{ field.placeholder|t|e('html_attr') }}"{% endif %} + {% if autofocus %}autofocus="autofocus"{% endif %} + {% if field.novalidate in ['on', 'true', 1] %}novalidate="novalidate"{% endif %} + {% if field.readonly in ['on', 'true', 1] %}readonly="readonly"{% endif %} + {% if field.autocomplete is defined %}autocomplete="{{ field.autocomplete }}"{% endif %} + {% if field.autocapitalize in ['off', 'characters', 'words', 'sentences'] %}autocapitalize="{{ field.autocapitalize }}"{% endif %} + {% if field.inputmode in ['none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url'] %}inputmode="{{ field.inputmode }}"{% endif %} + {% if field.tabindex %}tabindex="{{ field.tabindex }}"{% endif %} + {% if field.spellcheck in ['true', 'false'] %}spellcheck="{{ field.spellcheck }}"{% endif %} + {% if required %}required="required"{% endif %} + {% if field.validate.pattern %}pattern="{{ field.validate.pattern|e }}"{% endif %} + {% if field.validate.message %}title="{{ field.validate.message|t|e }}" + {% elseif field.title is defined %}title="{{ field.title|t|e }}" {% endif %} + + {# Support key/value and .name/.value styles #} + {% if field.attributes is defined %} + {% for key,attribute in field.attributes %} + {% if attribute|of_type('array') %} + {{ attribute.name }}="{{ attribute.value|e('html_attr') }}" + {% else %} + {{ key }}="{{ attribute|e('html_attr') }}" + {% endif %} + {% endfor %} + {% endif %} + + {# Support for Custom data attributes#} + {% if field.datasets %} + {% for key, attribute in field.datasets %} + data-{{ key }}="{{ attribute|e('html_attr') }}" + {% endfor %} + {% endif %} +{% endblock %} + + + {% endif %} diff --git a/user/plugins/form/templates/forms/default/fields.html.twig b/user/plugins/form/templates/forms/default/fields.html.twig index 2baf312..8e88096 100644 --- a/user/plugins/form/templates/forms/default/fields.html.twig +++ b/user/plugins/form/templates/forms/default/fields.html.twig @@ -6,10 +6,10 @@ {% endif %} {% set value = form ? form.value(field_name) : data.value(field_name) %} - {% block field_open %}{% endblock %} + {% block inner_markup_field_open %}{% endblock %} {% block field %} {% include ["forms/fields/#{field.type}/#{field.type}.html.twig", 'forms/fields/text/text.html.twig'] %} {% endblock %} - {% block field_close %}{% endblock %} + {% block inner_markup_field_close %}{% endblock %} {% endif %} {% endfor %} diff --git a/user/plugins/form/templates/forms/default/form.html.twig b/user/plugins/form/templates/forms/default/form.html.twig index f44d5f0..8174dd1 100644 --- a/user/plugins/form/templates/forms/default/form.html.twig +++ b/user/plugins/form/templates/forms/default/form.html.twig @@ -4,13 +4,16 @@ {% include 'partials/form-messages.html.twig' %} -{% set scope = scope ?: 'data.' %} +{% set scope = scope ?: form.scope is defined ? form.scope : 'data.' %} {% set multipart = '' %} {% set blueprints = blueprints ?? form.blueprint() %} {% set method = form.method|upper|default('POST') %} {% set client_side_validation = form.client_side_validation is not null ? form.client_side_validation : config.plugins.form.client_side_validation|default(true) %} {% set inline_errors = form.inline_errors is not null ? form.inline_errors : config.plugins.form.inline_errors(false) %} +{% set data = data ?? form.data %} +{% set context = context ?? data %} + {% for field in form.fields %} {% if (method == 'POST' and field.type == 'file') %} {% set multipart = ' enctype="multipart/form-data"' %} @@ -18,10 +21,10 @@ {% endfor %} {% set action = form.action ?: page.route ~ uri.params %} -{% set action = action starts with 'http' ? action : base_url ~ action %} - +{% set action = (action starts with 'http') or (action starts with '#') ? action : base_url ~ action %} +{% set action = action|trim('/', 'right') %} {% if (action == base_url_relative) %} - {% set action = base_url_relative ~ '/' ~ page.slug %} + {% set action = base_url_relative ~ '/' %} {% endif %} {% if form.keep_alive %} @@ -44,88 +47,129 @@ window.GravForm.translations = Object.assign({}, window.GravForm.translations || {}, { PLUGIN_FORM: {} }); ", {'group': 'bottom', 'position': 'before'}) %} -
    +{# Backwards Compatibility for block overrides #} +{% set override_form_classes %} + {% block form_classes -%} + {{ form_outer_classes }} {{ form.classes }} + {%- endblock %} +{% endset %} +{% set override_inner_markup_fields_start %} {% block inner_markup_fields_start %}{% endblock %} +{% endset %} - {% set data = data ?? form.data %} - {% set context = context ?? data %} - - {% block inner_markup_fields %} - {% for field_name, field in form.fields %} - {% set field_name = field.name ?? field_name %} - {% if field_name and not field.validate.ignore %} - {%- if field_name starts with '.' -%} - {% set field_name = field_name[1:] %} - {% set field = field|merge({ name: field_name }) %} - {% endif %} - - {% set value = form ? form.value(field_name) : data.value(field_name) %} - {% block inner_markup_field_open %}{% endblock %} - {% block process_field %} - {% include "forms/fields/#{field.type}/#{field.type}.html.twig" ignore missing %} - {% endblock %} - {% block inner_markup_field_close %}{% endblock %} - {% endif %} - {% endfor %} - {% endblock %} - - {% include "forms/fields/formname/formname.html.twig" %} - {% include "forms/fields/formtask/formtask.html.twig" %} - +{% set override_inner_markup_fields_end %} {% block inner_markup_fields_end %}{% endblock %} +{% endset %} +{% set override_inner_markup_fields %} + {% block inner_markup_fields %} + {% for field_name, field in form.fields %} + {% set field_name = field.name ?? field_name %} + {% if field_name and not field.validate.ignore %} + {%- if field_name starts with '.' -%} + {% set field_name = field_name[1:] %} + {% set field = field|merge({ name: field_name }) %} + {% endif %} + + {% set value = form ? form.value(field_name) : data.value(field_name) %} + {% block inner_markup_field_open %}{% endblock %} + {% block field %} + {% include "forms/fields/#{field.type}/#{field.type}.html.twig" ignore missing %} + {% endblock %} + {% block inner_markup_field_close %}{% endblock %} + {% endif %} + {% endfor %} + {% endblock %} +{% endset %} + +{% set override_inner_markup_buttons_start %} {% block inner_markup_buttons_start %}
    {% endblock %} +{% endset %} - {% for button in form.buttons %} - {% if button.outerclasses is defined %}{% endif %} - {% endfor %} - +{% set override_inner_markup_buttons_end %} {% block inner_markup_buttons_end %}
    {% endblock %} +{% endset %} - {% include 'forms/fields/uniqueid/uniqueid.html.twig' %} +{# Embed for HTML layout #} +{% embed 'forms/layouts/form.html.twig' %} + + {% block embed_form_core %} + name="{{ form.name }}" + action="{{ action }}" + method="{{ method }}"{{ multipart|raw }} + {% if form.id %}id="{{ form.id }}"{% endif %} + {% if form.novalidate %}novalidate{% endif %} + {% if form.keep_alive %}data-grav-keepalive="true"{% endif %} + {% endblock %} + + {% block embed_form_classes -%} + class="{{ parent() }} {{ override_form_classes|trim }}" + {%- endblock %} + + {% block embed_fields %} + {{ override_inner_markup_fields_start|raw }} + {{ override_inner_markup_fields|raw }} + + {% include "forms/fields/formname/formname.html.twig" %} + {% include "forms/fields/formtask/formtask.html.twig" %} + {% include 'forms/fields/uniqueid/uniqueid.html.twig' %} + {{ nonce_field(form.getNonceAction() ?? 'form', form.getNonceName() ?? 'form-nonce')|raw }} + + {{ override_inner_markup_fields_end|raw }} + {% endblock %} + + {% block embed_buttons %} + {{ override_inner_markup_buttons_start|raw }} + + {% for button in form.buttons %} + {% if button.outerclasses is defined %}
    {% endif %} + + {% if button.url %} + {% set button_url = button.url starts with 'http' ? button.url : base_url ~ button.url %} + {% endif %} + + {% embed 'forms/layouts/button.html.twig' %} + {% block embed_button_core %} + {% if button.id %}id="{{ button.id }}"{% endif %} + {% if button.disabled %}disabled="disabled"{% endif %} + {% if button.name %} + name="{{ button.name }}" + {% else %} + {% if button.task %}name="task" value="{{ button.task }}"{% endif %} + {% endif %} + type="{{ button.type|default('submit') }}" + {% endblock %} + + {% block embed_button_classes %} + {% block button_classes %} + class="{{ form_button_classes ?: 'button' }} {{ button.classes }}" + {% endblock %} + {% endblock %} + + {% block embed_button_content -%} + {%- set button_value = button.value|t|default('Submit') -%} + {%- if button.html -%} + {{- button_value|trim|raw -}} + {%- else -%} + {{- button_value|trim|e -}} + {%- endif -%} + {%- endblock %} + + {% endembed %} + + {% if button.outerclasses is defined %}
    {% endif %} + {% endfor %} + + {{ override_inner_markup_buttons_end }} + {% endblock %} + +{% endembed %} - {{ nonce_field(form.getNonceAction() ?? 'form', form.getNonceName() ?? 'form-nonce')|raw }} -
    {% if config.forms.dropzone.enabled %}