/* typo utility classes */
/* display sizes */
/* display body copy */
.graph-padding {
  margin-top: 130px;
  margin-bottom: 70px; }

.turnover {
  position: relative;
  left: 10%;
  max-width: 150px;
  font-size: 14px;
  padding: 12px 34px;
  color: #ffffff;
  background-color: #366072;
  text-align: center; }

.graph {
  position: relative;
  padding: 0 4px;
  margin: -50px auto 0;
  width: 100%;
  max-width: 1024px;
  overflow-x: auto;
  overflow-y: hidden;
  direction: rtl; }

.graph .container {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -ms-flex-align: stretch;
  align-items: stretch;
  padding: 20px 0;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%;
  height: 500px; }
  @media screen and (max-width: 37.5em) {
    .graph .container {
      padding-top: 120px; } }

.graph .bar {
  direction: ltr;
  width: 45px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  margin: 0 4px;
  -ms-transform-origin: center bottom;
  transform-origin: center bottom;
  -ms-transform: scaleY(0);
  transform: scaleY(0); }

.graph .bar .wrapper {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -ms-flex-positive: 1;
  flex-grow: 1;
  -ms-flex-align: end;
  align-items: flex-end; }

.graph .bar1 {
  background-color: #366072;
  position: relative;
  -ms-flex-positive: 1;
  flex-grow: 1;
  margin: 0 4px; }

.graph .bar2 {
  background-color: #366072;
  position: relative;
  -ms-flex-positive: 1;
  flex-grow: 1;
  margin: 0 4px; }

.graph .label {
  position: absolute;
  top: 0;
  left: 50%;
  -ms-transform: translate(-50%, -100%) rotate(-90deg);
  transform: translate(-50%, -100%) rotate(-90deg);
  font-size: 11px;
  padding-left: 40px; }

.graph .year {
  text-align: center;
  font-weight: 550;
  color: #366072;
  font-size: 12px;
  padding-top: 8px; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2NvcmUvdHlwby5zY3NzIiwiZ3JhcGguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQWUxQixtQkFBbUI7QUF5Rm5CLHVCQUF1QjtBQ3RHdkI7RUFDRSxrQkFBaUI7RUFDakIsb0JBQW1CLEVBQ3BCOztBQUVEO0VBQ0UsbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxpQkFBZ0I7RUFDaEIsZ0JBQWU7RUFDZixtQkFBa0I7RUFDbEIsZUFBYztFQUNkLDBCQUF5QjtFQUN6QixtQkFBa0IsRUFDbkI7O0FBRUQ7RUFDRSxtQkFBa0I7RUFDbEIsZUFBYztFQUNkLHFCQUFvQjtFQUNwQixZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixtQkFBa0I7RUFDbEIsZUFBYyxFQUNmOztBQUNEO0VBQ0UscUJBQWE7RUFBYixjQUFhO0VBQ2Isc0JBQWlCO0VBQWpCLGtCQUFpQjtFQUNqQix3QkFBb0I7RUFBcEIscUJBQW9CO0VBQ3BCLGdCQUFlO0VBQ2YsdUJBQThCO0VBQTlCLCtCQUE4QjtFQUM5QixZQUFXO0VBQ1gsY0FBYSxFQUtkO0VDMkdHO0lEdkhKO01BVUcsbUJBQWtCLEVBRXBCLEVBQUE7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsWUFBVztFQUNYLHFCQUFhO0VBQWIsY0FBYTtFQUNiLDJCQUFzQjtFQUF0Qix1QkFBc0I7RUFDdEIscUJBQWM7RUFBZCxlQUFjO0VBQ2QsY0FBYTtFQUNiLG9DQUErQjtFQUEvQixnQ0FBK0I7RUFDL0IseUJBQW9CO0VBQXBCLHFCQUFvQixFQUNyQjs7QUFDRDtFQUNFLHFCQUFhO0VBQWIsY0FBYTtFQUNiLHNCQUFpQjtFQUFqQixrQkFBaUI7RUFDakIscUJBQVk7RUFBWixhQUFZO0VBQ1osb0JBQXFCO0VBQXJCLHNCQUFxQixFQUN0Qjs7QUFDRDtFQUNFLDBCQUF5QjtFQUN6QixtQkFBa0I7RUFDbEIscUJBQVk7RUFBWixhQUFZO0VBQ1osY0FDRixFQUFDOztBQUNEO0VBQ0UsMEJBQXlCO0VBQ3pCLG1CQUFrQjtFQUNsQixxQkFBWTtFQUFaLGFBQVk7RUFDWixjQUNGLEVBQUM7O0FBQ0Q7RUFDRSxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFVBQVM7RUFDVCxxREFBZ0Q7RUFBaEQsaURBQWdEO0VBQ2hELGdCQUFlO0VBQ2YsbUJBQ0YsRUFBQzs7QUFDRDtFQUNFLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGdCQUFlO0VBQ2YsaUJBQ0YsRUFBQyIsImZpbGUiOiJncmFwaC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0eXBvIHV0aWxpdHkgY2xhc3NlcyAqL1xuXG4vLyB0aGlzIHdpbGwgZ2VuZXJhdGUgLnR5cG8tZG0gY2xhc3Nlc1xuQG1peGluIHR5cG9TZXRVdGlsaXR5Q2xhc3NlcygkZm9udC1zaXplczogKGRtIGQxIGQyIGQzIGQ0IGQ1IGQ2IGQ3IGIxIGIyIGIzIGI0IGI1IGI2KSkge1xuXHRAZWFjaCAkZnNOYW1lIGluICRmb250LXNpemVzIHtcblx0XHQudHlwby0jeyRmc05hbWV9IHtcblx0XHRcdEBpZiAoc3RyLWluZGV4KCRmc05hbWUsICdkJykgPT0gMSkge1xuXHRcdFx0XHRAaW5jbHVkZSB0eXBvRGlzcGxheSgkZnNOYW1lLCAkZmZIZWFkaW5nKTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRAaW5jbHVkZSB0eXBvQm9keWNvcHkoJGZzTmFtZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIGRpc3BsYXkgc2l6ZXMgKi9cblxuLy8gZGlzcGxheSBtZWdhXG4ldHlwby1kbSB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzBweCk7XG5cdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRsaW5lLWhlaWdodDogMS4xNTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoNDVweCk7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDU1cHgpO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LWxhbmRzY2FwZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoNjBweCk7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYyg4MHB4KTtcblx0fVxufVxuLy9oMSB0aXRsZSBzaXplXG4ldHlwby1kMSB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjJweCk7XG5cdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRsaW5lLWhlaWdodDogMS4wNjtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoNDBweCk7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDQ1cHgpO1xuXHR9XG59XG4vL2gyIHRpdGxlIHNpemVcbiV0eXBvLWQyIHtcblx0Zm9udC13ZWlnaHQ6ICRmd0JvbGQ7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjBweCk7XG5cdGxpbmUtaGVpZ2h0OiAxLjI1O1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHBob25lKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygzNnB4KTtcblx0fVxufVxuLy9oMyB0aXRsZSBzaXplXG4ldHlwby1kMyB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMThweCk7XG5cdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRsaW5lLWhlaWdodDogMS4zNTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzBweCk7XG5cdH1cbn1cblxuJXR5cG8tZDQge1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDE0cHgpO1xuXHRmb250LXdlaWdodDogJGZ3UmVndWxhcjtcblx0bGluZS1oZWlnaHQ6IDEuMjtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjBweCk7XG5cdH1cbn1cblxuJXR5cG8tZDUge1xuXHRmb250LWZhbWlseTogJGZmSGVhZGluZztcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcblx0Zm9udC13ZWlnaHQ6ICRmd1JlZ3VsYXI7XG5cdGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG5cdG9wYWNpdHk6IDAuOTtcbn1cblxuLy8gQnV0dG9uIGZvbnQgc3R5bGVcbiV0eXBvLWQ2IHtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuXHRmb250LXdlaWdodDogJGZ3U2VtaUJvbGQ7XG59XG5cbi8vIE51bWJlcnNcbiV0eXBvLWQ3IHtcblx0Zm9udC1zaXplOiA0MHB4O1xuXHRmb250LXdlaWdodDogJGZ3TGlnaHQ7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQocGhvbmUpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDUwcHgpO1xuXHR9XG59XG5cbkBtaXhpbiB0eXBvRGlzcGxheSgkZm9udC1zaXplOiBkMSwgJGZvbnQtZmFtaWx5OiAkZmZIZWFkaW5nKSB7XG5cdEBleHRlbmQgJXR5cG8tI3skZm9udC1zaXplfTtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbn1cblxuLyogZGlzcGxheSBib2R5IGNvcHkgKi9cblxuLy8gUGVyZXhcbiV0eXBvLWIxIHtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxM3B4KTtcblx0bGluZS1oZWlnaHQ6IDI7XG5cdGZvbnQtd2VpZ2h0OiAkZndSZWd1bGFyO1xufVxuLy8gTGFiZWxzIGZvbnRcbiV0eXBvLWIyIHtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxMnB4KTtcblx0Zm9udC13ZWlnaHQ6ICRmd1JlZ3VsYXI7XG59XG5cbi8vIFNpZGUgVGV4dFxuJXR5cG8tYjMge1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuXHRmb250LXdlaWdodDogJGZ3UmVndWxhcjtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMzApO1xufVxuXG5cbi8vIHBlcmV4IGxpZ2h0XG4ldHlwby1iNCB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTNweCk7XG5cdGZvbnQtd2VpZ2h0OiAkZndMaWdodDtcblx0bGluZS1oZWlnaHQ6IDI7XG59XG5cbiV0eXBvLWI1IHtcblx0Zm9udC13ZWlnaHQ6ICRmd1JlZ3VsYXI7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjBweCk7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDM1KTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzBweCk7XG5cdH1cbn1cblxuLy9yZWZlcmVuY2UgcXVvdGVcbiV0eXBvLWI2IHtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcblx0bGluZS1oZWlnaHQ6IDEuNDtcblx0Zm9udC1mYW1pbHk6ICRmZkhlYWRpbmc7XG5cdGZvbnQtd2VpZ2h0OiAkZndMaWdodDtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjZweCk7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYyg0MHB4KTtcblx0fVxufVxuXG5cbkBtaXhpbiB0eXBvQm9keWNvcHkoJGZvbnQtc2l6ZTogYjEpIHtcblx0Zm9udC1mYW1pbHk6ICRmZkJvZHljb3B5O1xuXHRAZXh0ZW5kICV0eXBvLSN7JGZvbnQtc2l6ZX07XG59XG5cbkBtaXhpbiB0eXBvQW5jaG9ycygpIHtcblx0Y29sb3I6IGluaGVyaXQ7XG5cblx0Jjpob3Zlcixcblx0JjphY3RpdmUge1xuXHRcdC8vIC4uLlxuXHR9XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi5ncmFwaC1wYWRkaW5nIHtcbiAgbWFyZ2luLXRvcDogMTMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDcwcHg7XG59XG5cbi50dXJub3ZlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMTAlO1xuICBtYXgtd2lkdGg6IDE1MHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDEycHggMzRweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjYwNzI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmdyYXBoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgbWFyZ2luOiAtNTBweCBhdXRvIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMjRweDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5ncmFwaCAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTAwcHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChwaG9uZSBkb3duKSB7XG4gICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIH1cbn1cbi5ncmFwaCAuYmFye1xuICBkaXJlY3Rpb246IGx0cjtcbiAgd2lkdGg6IDQ1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW46IDAgNHB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbn1cbi5ncmFwaCAuYmFyIC53cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLmdyYXBoIC5iYXIxe1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY2MDcyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAwIDRweFxufVxuLmdyYXBoIC5iYXIye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY2MDcyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAwIDRweFxufVxuLmdyYXBoIC5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKSByb3RhdGUoLTkwZGVnKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDQwcHhcbn1cbi5ncmFwaCAueWVhciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDU1MDtcbiAgY29sb3I6ICAjMzY2MDcyO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmctdG9wOiA4cHhcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAuIElmIHRoZSBjb25maWcgbWFwIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC4gSWYgdGhlIGNvbmZpZyBtYXAgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIElucHV0IGNvbmZpZyBtYXAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8gTGVnYWN5IGJyZWFrcG9pbnQgdmFyaWFibGVzXG4vLyBUaGVzZSB3aWxsIGJlIHJlbW92ZWQgaW4gNi4zXG4kc21hbGwtdXA6IG51bGw7XG4kc21hbGwtb25seTogbnVsbDtcbiRtZWRpdW0tdXA6IG51bGw7XG4kbWVkaXVtLW9ubHk6IG51bGw7XG4kbGFyZ2UtdXA6IG51bGw7XG4kbGFyZ2Utb25seTogbnVsbDtcbiR4bGFyZ2UtdXA6IG51bGw7XG4keGxhcmdlLW9ubHk6IG51bGw7XG4keHhsYXJnZS11cDogbnVsbDtcbiR4eGxhcmdlLW9ubHk6IG51bGw7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
