├── .babelrc ├── .editorconfig ├── .gitignore ├── .stylelintrc ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── examples ├── buttons.html ├── code.html ├── forms.html ├── grid.html ├── index.html ├── labels.html ├── lists.html ├── modal.html ├── panels.html └── typography.html ├── gulpfile.babel.js ├── js ├── potato.js ├── potato.min.js └── potato.min.js.map ├── logo.png ├── package-lock.json ├── package.json └── stylesheets ├── css ├── potato.css └── potato.min.css ├── less ├── core │ ├── _mixins.less │ └── _variables.less ├── modules │ ├── _button.less │ ├── _code.less │ ├── _form.less │ ├── _global.less │ ├── _grid.less │ ├── _helpers.less │ ├── _label.less │ ├── _list.less │ ├── _modal.less │ ├── _panel.less │ ├── _table.less │ └── _typography.less └── potato.less └── sass ├── core ├── _mixins.scss └── _variables.scss ├── modules ├── _button.scss ├── _code.scss ├── _form.scss ├── _global.scss ├── _grid.scss ├── _helpers.scss ├── _label.scss ├── _list.scss ├── _modal.scss ├── _panel.scss ├── _table.scss └── _typography.scss └── potato.scss /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": "es2015" 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs 2 | ; See editorconfig.org 3 | 4 | ; top-most EditorConfig file 5 | root = true 6 | 7 | [*] 8 | indent_style = tab 9 | indent_size = 2 10 | charset = utf-8 11 | end_of_line = lf 12 | trim_trailing_whitespace = true 13 | insert_final_newline = true 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore these files ## 2 | 3 | # System files 4 | .dat 5 | .thumbs 6 | .DS_Store 7 | 8 | # Sublime Text # 9 | .sublime 10 | .sublime-project 11 | .sublime-build 12 | .sublime-syntax 13 | .sublime-workspace 14 | 15 | # IntelliJ IDEA # 16 | .idea 17 | 18 | ## Ignore any unwanted directories ## 19 | 20 | # Cloud 9 # 21 | .c9/ 22 | /.c9 23 | /.c9/ 24 | 25 | # Node 26 | node_modules/ 27 | 28 | # Test folders 29 | test/ 30 | -------------------------------------------------------------------------------- /.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "plugins": [ 4 | "stylelint-csstree-validator" 5 | ], 6 | "rules": { 7 | "indentation": "tab", 8 | "string-quotes": "double", 9 | "no-duplicate-selectors": true, 10 | "color-hex-case": "lower", 11 | "color-hex-length": "short", 12 | "color-named": "never", 13 | "selector-combinator-space-after": "always", 14 | "selector-attribute-quotes": "always", 15 | "selector-attribute-operator-space-before": "never", 16 | "selector-attribute-operator-space-after": "never", 17 | "selector-attribute-brackets-space-inside": "never", 18 | "declaration-block-trailing-semicolon": "always", 19 | "declaration-colon-space-before": "never", 20 | "declaration-colon-space-after": "always", 21 | "number-leading-zero": "never", 22 | "function-url-quotes": "always", 23 | "font-weight-notation": "named-where-possible", 24 | "comment-empty-line-before": null, 25 | "comment-whitespace-inside": "always", 26 | "selector-pseudo-element-colon-notation": "double", 27 | "selector-pseudo-class-parentheses-space-inside": "never", 28 | "media-feature-range-operator-space-before": "never", 29 | "media-feature-range-operator-space-after": "never", 30 | "media-feature-parentheses-space-inside": "never", 31 | "media-feature-colon-space-before": "never", 32 | "media-feature-colon-space-after": "always", 33 | "csstree/validator": true 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | When contributing to this repository, please first discuss the change you wish to make via an issue. 3 | 4 | ## Fork it! 5 | 6 | * via HTTPS: `git clone https://github.com/ummahusla/PotatoCSS.git` 7 | * via SSH: `git clone git@github.com:ummahusla/PotatoCSS.git` 8 | 9 | ## Add new feature 10 | You can request a new feature by submitting it in the `feature` branch. 11 | 12 | 1. [Fork it](#fork-it)! 13 | 2. Create your feature branch: `git checkout -b feature/NEW_FEATURE` 14 | 3. Commit your changes: `git commit -am 'Added feature/NEW_FEATURE'` 15 | 4. Push to the branch: `git push origin feature/NEW_FEATURE` 16 | 5. Submit a pull request! 17 | 18 | ## Bug report 19 | Found a critical bug in the source code or a mistake in the documentation? Please consider submitting a [**new issue**](https://github.com/PotatoCSS/PotatoCSS/issues) and with a description what went wrong. Moreover, if you know how to fix it, please don't hesitate and send me a `Pull Request`. 20 | 21 | 1. [Fork it](#fork-it)! 22 | 2. Create your hotfix branch: `git checkout -b hotfix/POTATO_BUG` 23 | 3. Commit your changes: `git commit -am 'Fixed hotfix/POTATO_BUG'` 24 | 4. Push to the branch: `git push origin hotfix/POTATO_BUG` 25 | 5. Submit a pull request! 26 | 27 | ## Issues 28 | All current issues are listed [**here**](https://github.com/PotatoCSS/PotatoCSS/issues). 29 | 30 | ## Notes 31 | Please reference issues by issue id (e.g. `#1337`) and write a detailed `Pull Request` description. 32 | 33 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Edvins Antonovs 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

PotatoCSS

2 |

PotatoCSS

3 |

Simple CSS framework for hackers. Simple as potato.

4 | 5 | [![npm version](https://badge.fury.io/js/potato-css.svg)](https://badge.fury.io/js/potato-css) 6 | 7 | ___ 8 | 9 | 🥔 PotatoCSS is a beautiful CSS framework for hackers: boasting a responsive 12 column grid, ready to use built-in forms and buttons, it's clean, simple and easy-to-use. 10 | 11 | 12 | ## Installation 13 | 14 | [**PotatoCSS**](https://potatocss.github.io/) can be installed via the methods below, 15 | 16 | * Manual: [Download](https://github.com/ummahusla/PotatoCSS/archive/master.zip) 17 | * via NPM: `npm install potato-css` 18 | * via git: `git clone https://github.com/ummahusla/PotatoCSS.git` 19 | 20 | ## How to use 21 | 22 | Just grab `potato.css` or `potato.min.css` from the `/stylesheets/css` folder and shove it where you store the CSS files for your project. 23 | 24 | Demo can be found at [**https://potatocss.github.io/**](https://potatocss.github.io/). 25 | 26 | Alternately, you can find examples and snippets to use with PotatoCSS in the [example folder](https://github.com/ummahusla/PotatoCSS/examples). 27 | 28 | 📢 **SASS / LESS versions are still in development** 29 | 30 | ## Browser Support 31 | 32 | The following details are estimates, assume [evergreen browser](http://stackoverflow.com/a/19060334) support for now. 33 | 34 | * **Chrome** : ALL 35 | * **Firefox** : 3.5+ 36 | * **Safari** : 3.2+ 37 | * **Opera** : 11+ 38 | * **Opera Mini** : ALL 39 | * **Edge** : ALL 40 | * **Internet Explorer** : 9+ 41 | 42 | ## Building The Code 43 | 44 | To build the code, follow these steps. 45 | 46 | 1. Ensure that [NodeJS](http://nodejs.org/) is installed. This provides the platform on which the build tooling runs. 47 | 2. From the project folder, execute the following command: 48 | 49 | ```shell 50 | npm install 51 | ``` 52 | 3. To build the code from SCSS version, you can now run: 53 | 54 | ```shell 55 | gulp build-sass 56 | ``` 57 | 4. To build the code from LESS version, you can now run: 58 | 59 | ```shell 60 | gulp build-less 61 | ``` 62 | 5. You will find the compiled code in the `stylesheets` and `js` folders. 63 | 6. To watch changes while develop, you can now run: 64 | 65 | ```shell 66 | gulp default 67 | 68 | # It will start watching process and local server with livereloading 69 | ``` 70 | 7. To test changes in compiled stylesheets, you can now run: 71 | 72 | ```shell 73 | gulp test-css 74 | # or 75 | npm test 76 | ``` 77 | 78 | ## Contributing 79 | 80 | Please read the repository's 🗒 [**contributing guide**](CONTRIBUTING.md) for more information on how you can help. 81 | 82 | ## License 83 | 84 | [**PotatoCSS**](https://potatocss.github.io/) is licensed under the [**MIT License**](LICENSE.md). 85 | 86 | ## Credits 87 | 88 | [**PotatoCSS**](https://potatocss.github.io/) was created for [**Hacktoberfest**](https://hacktoberfest.digitalocean.com/) by [**Edvins Antonovs**](https://twitter.com/edvinsantonovs). You can find more details in [**this blog post**](http://edvinsantonovs.co.uk/potatocss-and-hacktoberfest2016/). 89 | 90 | 🎉 Big thanks to all the [**contributors**](https://github.com/ummahusla/PotatoCSS/graphs/contributors). 91 | -------------------------------------------------------------------------------- /examples/buttons.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Buttons

5 |

Default button classes

6 | Default 7 | Primary 8 | Success 9 | Warning 10 | Danger 11 |
12 |
13 | Default 14 | Primary 15 | Success 16 | Warning 17 | Danger 18 |
19 |
20 |
21 |
22 |

Button sizing

23 |
24 | Small 25 | Default 26 | Large 27 |
28 |
29 | Large 30 | Default 31 | Small 32 |
33 |
34 |
35 |

Button expanded

36 | Expanded 37 | Expanded 38 |
39 |
40 |
41 | -------------------------------------------------------------------------------- /examples/code.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Code

5 | 6 |

Inline code

7 |

Here is a simple example of inline code - var myLatlng = {lat: -25.363, lng: 131.044};.

8 | 9 |

Code block

10 |
11 | 
12 | {
13 |   "id": 1,
14 |   "name": "A green door",
15 |   "price": 12.50,
16 |   "tags": ["home", "green"]
17 | }
18 | 			
19 | 20 |

Keyboard input

21 |

In order to undo the last operation Ctrl + Z. In case you want to redo the last operation Ctrl + Y.

22 | 23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /examples/forms.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

Forms

6 | 9 |
10 |
11 |
12 |
13 | 16 |
17 |
18 | 21 |
22 |
23 | 26 |
27 |
28 |
29 |
30 | 38 |
39 |
40 | 48 |
49 |
50 |
51 |
52 | 53 | 54 | 55 | 56 | 57 |
58 |
59 | 60 | 61 | 62 |
63 |
64 |
65 |
66 | 69 |
70 |
71 |
72 |
73 | 74 | 75 |
76 |
77 |
78 |
79 | -------------------------------------------------------------------------------- /examples/grid.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

twelve large potatoes

5 |
6 |
7 |
8 |
9 |

one

10 |
11 |
12 |

eleven

13 |
14 |
15 |
16 |
17 |

two

18 |
19 |
20 |

ten

21 |
22 |
23 |
24 |
25 |

three

26 |
27 |
28 |

nine

29 |
30 |
31 |
32 |
33 |

four

34 |
35 |
36 |

eight

37 |
38 |
39 |
40 |
41 |

five

42 |
43 |
44 |

seven

45 |
46 |
47 |
48 |
49 |

six

50 |
51 |
52 |

six

53 |
54 |
55 |
56 |
57 |

seven

58 |
59 |
60 |

five

61 |
62 |
63 |
64 |
65 |

eight

66 |
67 |
68 |

four

69 |
70 |
71 |
72 |
73 |

nine

74 |
75 |
76 |

three

77 |
78 |
79 |
80 |
81 |

ten

82 |
83 |
84 |

two

85 |
86 |
87 |
88 |
89 |

eleven

90 |
91 |
92 |

one

93 |
94 |
95 |
96 |
97 |

twelve

98 |
99 |
100 |
101 | -------------------------------------------------------------------------------- /examples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | PotatoCSS 9 | 10 | 11 | 12 | 13 | 50 | 51 | 52 | 53 |
54 | 55 | 64 | 65 |
66 |
67 |
68 |

Description

69 |

PotatoCSS is a beautiful CSS framework for hackers. It's clean, simple and easy-to-use. It has a responsive 12 column grid, ready to use built-in forms and buttons.

70 | Download 71 | View on GitHub 72 | Report a bug 73 |
74 |
75 |

Features

76 | 86 |
87 |
88 |
89 | 90 |
91 | 92 |
93 | 94 |
95 |
96 |

Grid

97 |
98 |
99 | 100 |
101 |
102 |

twelve

103 |
104 |
105 | 106 |
107 |
108 |

one

109 |
110 |
111 |

eleven

112 |
113 |
114 | 115 |
116 |
117 |

two

118 |
119 |
120 |

ten

121 |
122 |
123 | 124 |
125 |
126 |

three

127 |
128 |
129 |

nine

130 |
131 |
132 | 133 |
134 |
135 |

four

136 |
137 |
138 |

eight

139 |
140 |
141 | 142 |
143 |
144 |

five

145 |
146 |
147 |

seven

148 |
149 |
150 | 151 |
152 |
153 |

six

154 |
155 |
156 |

six

157 |
158 |
159 | 160 |
161 |
162 |

seven

163 |
164 |
165 |

five

166 |
167 |
168 | 169 |
170 |
171 |

eight

172 |
173 |
174 |

four

175 |
176 |
177 | 178 |
179 |
180 |

nine

181 |
182 |
183 |

three

184 |
185 |
186 | 187 |
188 |
189 |

ten

190 |
191 |
192 |

two

193 |
194 |
195 | 196 |
197 |
198 |

eleven

199 |
200 |
201 |

one

202 |
203 |
204 | 205 |
206 |
207 |

twelve

208 |
209 |
210 | 211 |
212 | 213 |
214 | 215 |
216 | 217 |
218 |
219 |

Buttons

220 |

Default button classes

221 | Default 222 | Primary 223 | Success 224 | Warning 225 | Danger 226 |
227 |
228 | Default 229 | Primary 230 | Success 231 | Warning 232 | Danger 233 |
234 |
235 |
236 |
237 |

Button sizing

238 |
239 | Small 240 | Default 241 | Large 242 |
243 |
244 | Large 245 | Default 246 | Small 247 |
248 |
249 |
250 |

Button expanded

251 | Expanded 252 | Expanded 253 |
254 |
255 | 256 |
257 | 258 |
259 | 260 |
261 | 262 |
263 |
264 | 265 |

Typography

266 | 267 |

Headers

268 | 269 |

h1. All their equipment and instruments are alive.

270 |

h2. A red flair silhouetted the jagged edge of a wing.

271 |

h3. I watched the storm, so beautiful yet terrific.

272 |

h4. Almost before we knew it, we had left the ground.

273 |
h5. A shining crescent far beneath the flying vessel.
274 |
h6. She stared through the window at the stars.
275 | 276 |
277 |
278 | 279 |
280 |
281 | 282 |

Paragraph

283 |

284 | Vivamus facilisis justo sit amet ligula ornare, nec tempus ante tincidunt. Pellentesque id quam eleifend, molestie velit in, porta tellus. Ut erat tellus, efficitur eget sem nec, sagittis semper felis. Nullam suscipit suscipit justo eget pretium. In mi erat, dictum non suscipit et, malesuada quis lorem. Aliquam molestie ac arcu porttitor sollicitudin. Phasellus dignissim ut velit non mattis. Sed posuere ligula ut augue mollis, ut sodales est aliquam. Fusce nec augue et velit dapibus tincidunt nec ac quam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed feugiat nibh in purus aliquam, in fringilla justo venenatis. Nulla velit erat, imperdiet sed risus in, mattis aliquam mi. Etiam sed nunc ornare, congue libero ut, pellentesque libero. 285 |

286 |
287 |
288 | 289 |
290 |
291 | 292 |

Blockquote

293 | 294 |
295 |

296 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 297 |

298 |
299 |
300 |
301 | 302 |
303 | 304 |
305 | 306 |
307 |
308 | 309 |
310 |
311 | 312 |

Forms

313 | 314 | 317 |
318 |
319 | 320 |
321 |
322 | 325 |
326 |
327 | 330 |
331 |
332 | 335 |
336 |
337 | 338 |
339 |
340 | 348 |
349 |
350 | 358 |
359 |
360 | 361 |
362 |
363 | 364 | 365 | 366 | 367 | 368 | 369 |
370 |
371 | 372 | 373 | 374 | 375 | 376 | 377 |
378 |
379 | 380 |
381 |
382 | 385 |
386 |
387 | 388 |
389 |
390 | 391 | 392 |
393 |
394 | 395 |
396 |
397 | 398 |
399 | 400 |
401 | 402 |
403 |
404 |

Lists

405 |
406 |
407 | 408 |
409 |
410 |
    411 |
  1. Pumpkin Spice Latte
  2. 412 |
  3. Green Tea Latte
  4. 413 |
  5. Youthberry Tea
  6. 414 |
  7. Citrus Mint Green Tea Latte
  8. 415 |
  9. Pumpkin Spice Frappuccino
  10. 416 |
  11. Jasmine Pearls
  12. 417 |
  13. Berry Smoothie
  14. 418 |
419 |
420 |
421 |
    422 |
  • Pumpkin Spice Latte
  • 423 |
  • Green Tea Latte
  • 424 |
  • Youthberry Tea
  • 425 |
  • Citrus Mint Green Tea Latte
  • 426 |
  • Pumpkin Spice Frappuccino
  • 427 |
  • Jasmine Pearls
  • 428 |
  • Berry Smoothie
  • 429 |
430 |
431 |
432 |
    433 |
  1. Pumpkin Spice Latte
  2. 434 |
  3. Green Tea Latte
  4. 435 |
  5. Youthberry Tea
  6. 436 |
  7. Citrus Mint Green Tea Latte
  8. 437 |
  9. Pumpkin Spice Frappuccino
  10. 438 |
  11. Jasmine Pearls
  12. 439 |
  13. Berry Smoothie
  14. 440 |
441 |
442 |
443 | 444 |
445 |
446 |
    447 |
  • Pumpkin Spice Latte
  • 448 |
  • Green Tea Latte
  • 449 |
  • Youthberry Tea
  • 450 |
  • Citrus Mint Green Tea Latte
  • 451 |
  • Pumpkin Spice Frappuccino
  • 452 |
  • Jasmine Pearls
  • 453 |
  • Berry Smoothie
  • 454 |
455 |
456 |
457 |
    458 |
  1. Pumpkin Spice Latte
  2. 459 |
  3. Green Tea Latte
  4. 460 |
  5. Youthberry Tea
  6. 461 |
  7. Citrus Mint Green Tea Latte
  8. 462 |
  9. Pumpkin Spice Frappuccino
  10. 463 |
  11. Jasmine Pearls
  12. 464 |
  13. Berry Smoothie
  14. 465 |
466 |
467 |
468 |
    469 |
  • Pumpkin Spice Latte
  • 470 |
  • Green Tea Latte
  • 471 |
  • Youthberry Tea
  • 472 |
  • Citrus Mint Green Tea Latte
  • 473 |
  • Pumpkin Spice Frappuccino
  • 474 |
  • Jasmine Pearls
  • 475 |
  • Berry Smoothie
  • 476 |
477 |
478 |
479 | 480 |
481 | 482 |
483 | 484 |
485 |
486 |
487 |

Code

488 | 489 |

Inline code

490 |

Here is a simple example of inline code - var myLatlng = {lat: -25.363, lng: 131.044};.

491 | 492 |

Code block

493 |
494 | 
495 | {
496 |     "id": 1,
497 |     "name": "A green door",
498 |     "price": 12.50,
499 |     "tags": ["home", "green"]
500 | }
501 |         
502 | 503 |

Keyboard input

504 |

In order to undo the last operation Ctrl + Z. In case you want to redo the last operation Ctrl + Y.

505 | 506 |
507 |
508 |
509 | 510 |
511 | 512 |
513 | 514 |
515 |
516 |

Labels

517 |
518 |
519 |
    520 |
  • 521 | Default 522 |
  • 523 |
  • 524 | Primary 525 |
  • 526 |
  • 527 | Success 528 |
  • 529 |
  • 530 | Warning 531 |
  • 532 |
  • 533 | Danger 534 |
  • 535 |
536 |
537 |
538 | 539 |
540 | 541 |
542 | 543 |
544 | 545 |
546 |
547 |

Panels

548 |
549 |
550 |
551 |

Default panel

552 |
553 |

Panel Default

554 |

555 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 556 |

557 |
558 |
559 |
560 |

Rounded warning panel

561 |
562 |

Panel Warning

563 |

564 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 565 |

566 |
567 |
568 |
569 |
570 | 571 | 579 | 580 |
581 |
582 | 583 | 584 | -------------------------------------------------------------------------------- /examples/labels.html: -------------------------------------------------------------------------------- 1 |
2 | 19 |
20 | -------------------------------------------------------------------------------- /examples/lists.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Lists

5 |
6 |
7 |
8 |
9 |
    10 |
  1. Pumpkin Spice Latte
  2. 11 |
  3. Green Tea Latte
  4. 12 |
  5. Youthberry Tea
  6. 13 |
  7. Citrus Mint Green Tea Latte
  8. 14 |
  9. Pumpkin Spice Frappuccino
  10. 15 |
  11. Jasmine Pearls
  12. 16 |
  13. Berry Smoothie
  14. 17 |
18 |
19 |
20 |
    21 |
  • Pumpkin Spice Latte
  • 22 |
  • Green Tea Latte
  • 23 |
  • Youthberry Tea
  • 24 |
  • Citrus Mint Green Tea Latte
  • 25 |
  • Pumpkin Spice Frappuccino
  • 26 |
  • Jasmine Pearls
  • 27 |
  • Berry Smoothie
  • 28 |
29 |
30 |
31 |
    32 |
  1. Pumpkin Spice Latte
  2. 33 |
  3. Green Tea Latte
  4. 34 |
  5. Youthberry Tea
  6. 35 |
  7. Citrus Mint Green Tea Latte
  8. 36 |
  9. Pumpkin Spice Frappuccino
  10. 37 |
  11. Jasmine Pearls
  12. 38 |
  13. Berry Smoothie
  14. 39 |
40 |
41 |
42 |
43 |
44 |
    45 |
  • Pumpkin Spice Latte
  • 46 |
  • Green Tea Latte
  • 47 |
  • Youthberry Tea
  • 48 |
  • Citrus Mint Green Tea Latte
  • 49 |
  • Pumpkin Spice Frappuccino
  • 50 |
  • Jasmine Pearls
  • 51 |
  • Berry Smoothie
  • 52 |
53 |
54 |
55 |
    56 |
  1. Pumpkin Spice Latte
  2. 57 |
  3. Green Tea Latte
  4. 58 |
  5. Youthberry Tea
  6. 59 |
  7. Citrus Mint Green Tea Latte
  8. 60 |
  9. Pumpkin Spice Frappuccino
  10. 61 |
  11. Jasmine Pearls
  12. 62 |
  13. Berry Smoothie
  14. 63 |
64 |
65 |
66 |
    67 |
  • Pumpkin Spice Latte
  • 68 |
  • Green Tea Latte
  • 69 |
  • Youthberry Tea
  • 70 |
  • Citrus Mint Green Tea Latte
  • 71 |
  • Pumpkin Spice Frappuccino
  • 72 |
  • Jasmine Pearls
  • 73 |
  • Berry Smoothie
  • 74 |
75 |
76 |
77 |
78 | -------------------------------------------------------------------------------- /examples/modal.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Potato modal 6 | 7 | 8 | 9 | 28 | 29 | Open Modal 1 30 | Open Modal 2 31 | Open Large Modal 32 | Open Small Modal 33 | 34 | 53 | 54 | 76 | 77 | 99 | 100 | 121 |

122 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 123 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 124 |

125 |

126 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 127 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 128 |

129 |

130 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 131 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 132 |

133 |

134 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 135 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 136 |

137 |

138 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 139 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 140 |

141 |

142 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 143 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 144 |

145 |

146 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 147 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 148 |

149 |

150 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 151 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 152 |

153 |

154 | Book now taco gatlinburg book now magic kingdom, vegas taco magic kingdom vegas magic kingdom. Alex potato magic kingdom alex burrito alex alex magic kingdom. Alex taco taco magic kingdom book now, gatlinburg gatlinburg greek taco potato taco vegas gatlinburg. 155 | Alex taco taco potato burrito greek, taco gatlinburg alex magic kingdom. Alex magic kingdom greek gatlinburg book now, potato potato greek vegas vegas. Alex potato gatlinburg magic kingdom book now potato taco magic kingdom burrito, magic kingdom magic kingdom gatlinburg burrito book now. Greek vegas vegas vegas potato vegas magic kingdom book now. Book now book now taco magic kingdom burrito greek, book now alex magic kingdom greek greek book now magic kingdom. Alex taco magic kingdom greek magic kingdom magic kingdom vegas potato taco , vegas alex book now burrito gatlinburg. Potato taco taco burrito potato gatlinburg taco magic kingdom, gatlinburg taco greek greek magic kingdom alex. Potato taco taco , magic kingdom book now alex book now gatlinburg book now burrito taco vegas alex. Burrito gatlinburg burrito burrito burrito magic kingdom, vegas alex gatlinburg gatlinburg. Book now gatlinburg potato gatlinburg vegas taco greek burrito greek, book now alex book now alex. Gatlinburg potato vegas gatlinburg, burrito magic kingdom alex gatlinburg gatlinburg burrito burrito book now alex greek. Greek alex greek gatlinburg potato , greek alex potato magic kingdom vegas book now taco vegas. Vegas magic kingdom book now potato vegas burrito gatlinburg magic kingdom, book now greek alex magic kingdom. Taco burrito greek, greek taco gatlinburg potato taco book now potato gatlinburg burrito gatlinburg. Gatlinburg vegas vegas taco vegas, book now magic kingdom magic kingdom alex greek burrito gatlinburg burrito taco . Magic kingdom vegas book now gatlinburg burrito, book now vegas alex gatlinburg burrito potato taco . Book now alex vegas burrito greek magic kingdom vegas. Gatlinburg burrito taco burrito book now burrito potato potato vegas. Burrito potato greek potato alex, gatlinburg magic kingdom greek vegas book now greek taco . Book now taco potato taco book now alex alex vegas potato . Magic kingdom potato burrito potato alex alex magic kingdom. Book now vegas magic kingdom alex gatlinburg potato magic kingdom book now, burrito vegas potato vegas greek. Magic kingdom greek vegas taco greek alex magic kingdom. Magic kingdom vegas book now vegas book now burrito taco taco , vegas potato alex vegas book now burrito. Magic kingdom alex taco magic kingdom alex gatlinburg magic kingdom. Burrito magic kingdom taco book now burrito greek, greek greek magic kingdom gatlinburg book now. 156 |

157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /examples/panels.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Panel Default

4 |

5 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 6 |

7 |
8 |
9 |

Panel Primary

10 |

11 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 12 |

13 |
14 |
15 |

Panel Success

16 |

17 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 18 |

19 |
20 |
21 |

Panel Warning

22 |

23 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 24 |

25 |
26 |
27 |

Panel Danger

28 |

29 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 30 |

31 |
32 |
33 | -------------------------------------------------------------------------------- /examples/typography.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Typography

5 |

Headers

6 |

h1. All their equipment and instruments are alive.

7 |

h2. A red flair silhouetted the jagged edge of a wing.

8 |

h3. I watched the storm, so beautiful yet terrific.

9 |

h4. Almost before we knew it, we had left the ground.

10 |
h5. A shining crescent far beneath the flying vessel.
11 |
h6. She stared through the window at the stars.
12 |
13 |
14 |
15 |
16 |

Paragraph

17 |

18 | Vivamus facilisis justo sit amet ligula ornare, nec tempus ante tincidunt. Pellentesque id quam eleifend, molestie velit in, porta tellus. Ut erat tellus, efficitur eget sem nec, sagittis semper felis. Nullam suscipit suscipit justo eget pretium. In mi erat, dictum non suscipit et, malesuada quis lorem. Aliquam molestie ac arcu porttitor sollicitudin. Phasellus dignissim ut velit non mattis. Sed posuere ligula ut augue mollis, ut sodales est aliquam. Fusce nec augue et velit dapibus tincidunt nec ac quam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed feugiat nibh in purus aliquam, in fringilla justo venenatis. Nulla velit erat, imperdiet sed risus in, mattis aliquam mi. Etiam sed nunc ornare, congue libero ut, pellentesque libero. 19 |

20 |
21 |
22 |
23 |
24 |

Blockquote

25 |
26 |

27 | Aliquam erat volutpat. Duis euismod aliquam mi at faucibus. Donec interdum pulvinar eros. Morbi vitae maximus urna, vel faucibus leo. Vivamus vitae leo porttitor, tincidunt lectus ac, tempor lectus. Ut. 28 |

29 |
30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /gulpfile.babel.js: -------------------------------------------------------------------------------- 1 | import gulp from 'gulp'; 2 | import sourcemaps from 'gulp-sourcemaps'; 3 | import concat from 'gulp-concat'; 4 | import notifier from 'node-notifier'; 5 | import gutil from 'gulp-util'; 6 | import babel from 'gulp-babel'; 7 | import rename from 'gulp-rename'; 8 | import runSequence from 'run-sequence'; 9 | import stylelint from 'stylelint'; 10 | import stylefmt from 'gulp-stylefmt'; 11 | import reporter from 'postcss-reporter'; 12 | 13 | import sass from 'gulp-sass'; 14 | import less from 'gulp-less'; 15 | import postcss from 'gulp-postcss'; 16 | import autoprefixer from 'autoprefixer'; 17 | import mqpacker from 'css-mqpacker'; 18 | 19 | import csso from 'gulp-csso'; 20 | 21 | const browserSync = require('browser-sync').create(); 22 | 23 | gulp.task('js', () => { 24 | return gulp.src([ 25 | './js/**/*.js', 26 | '!./js/**/*.min.js' 27 | ]) 28 | .pipe(sourcemaps.init({loadMaps: true})) 29 | .pipe(concat('potato.min.js')) 30 | .pipe(babel({presets: ['es2015'], compact: false, minified: true}).on('error', function (err) { 31 | gutil.log(gutil.colors.bold.red('Babel compile error'), err.message); 32 | notifier.notify({title: 'Babel compile error', message: err.message}); 33 | this.emit('end'); 34 | })) 35 | .pipe(sourcemaps.write('./')) 36 | .pipe(gulp.dest('./js/')) 37 | .pipe(browserSync.reload({stream: true})); 38 | }); 39 | 40 | 41 | gulp.task('sass', () => { 42 | return gulp.src([ 43 | './stylesheets/sass/*.scss' 44 | ]) 45 | .pipe(sourcemaps.init()) 46 | .pipe(sass({ 47 | outputStyle: 'expanded', 48 | precision: 8 49 | }).on('error', function (err) { 50 | gutil.log(gutil.colors.bold.red('Sass compile error'), err.message); 51 | notifier.notify({title: 'Sass compile error', message: err.message}); 52 | this.emit('end'); 53 | })) 54 | .pipe(sourcemaps.write()) 55 | .pipe(gulp.dest('./stylesheets/css/')) 56 | .pipe(browserSync.reload({stream: true})); 57 | }); 58 | 59 | gulp.task('less', () => { 60 | return gulp.src([ 61 | './stylesheets/less/*.less' 62 | ]) 63 | .pipe(sourcemaps.init()) 64 | .pipe(less().on('error', function (err) { 65 | gutil.log(gutil.colors.bold.red('Less compile error'), err.message); 66 | notifier.notify({title: 'Less compile error', message: err.message}); 67 | this.emit('end'); 68 | })) 69 | .pipe(sourcemaps.write()) 70 | .pipe(gulp.dest('./stylesheets/css/')) 71 | .pipe(browserSync.reload({stream: true})); 72 | }); 73 | 74 | gulp.task('postprocess', () => { 75 | return gulp.src([ 76 | './stylesheets/css/*.css', 77 | '!./stylesheets/css/*.min.css' 78 | ]) 79 | .pipe(sourcemaps.init({loadMaps: true})) 80 | .pipe(postcss([ 81 | autoprefixer(), 82 | mqpacker() 83 | ])) 84 | .pipe(stylefmt()) 85 | .pipe(sourcemaps.write()) 86 | .pipe(gulp.dest('./stylesheets/css/')) 87 | .pipe(csso()) 88 | .pipe(rename({suffix: '.min'})) 89 | .pipe(gulp.dest('./stylesheets/css/')) 90 | .pipe(browserSync.stream()); 91 | }); 92 | 93 | gulp.task('test-css', () => { 94 | return gulp.src([ 95 | './stylesheets/css/*.css', 96 | '!./stylesheets/css/*.min.css' 97 | ]) 98 | .pipe(postcss([ 99 | stylelint(), 100 | reporter({ clearReportedMessages: true }) 101 | ])); 102 | }); 103 | 104 | gulp.task('watch', () => { 105 | gulp.watch(['./stylesheets/sass/**/*.scss'], ['sass']); 106 | gulp.watch(['./stylesheets/less/**/*.less'], ['less']); 107 | gulp.watch(['./js/**/*.js'], ['js']); 108 | gulp.watch(['./examples/*.html']).on('change', browserSync.reload); 109 | }); 110 | 111 | gulp.task('browserSync', () => { 112 | browserSync.init({ 113 | server: { 114 | baseDir: "./", 115 | index: "/examples/index.html" 116 | } 117 | }); 118 | }); 119 | 120 | gulp.task('build-sass', function () { 121 | runSequence('sass', ['postprocess', 'js'], 'test-css'); 122 | }); 123 | 124 | gulp.task('build-less', function () { 125 | runSequence('less', ['postprocess', 'js'], 'test-css'); 126 | }); 127 | 128 | gulp.task('default', ['browserSync', 'watch']); 129 | -------------------------------------------------------------------------------- /js/potato.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | var modalToggles = document.querySelectorAll('[data-toggle="modal"]'); 4 | 5 | modalToggles.forEach(function (item) { 6 | var target = document.querySelector(item.getAttribute('data-target')); 7 | if (target !== null || target !== undefined) { 8 | item.addEventListener('click', function (e) { 9 | e.preventDefault(); 10 | toggleModal(target); 11 | }, false); 12 | 13 | var closeButtons = target.querySelectorAll('[data-action="close"]'); 14 | closeButtons.forEach(function (item) { 15 | item.addEventListener('click', function (e) { 16 | e.preventDefault(); 17 | toggleModal(target); 18 | }, false); 19 | }); 20 | 21 | target.addEventListener('click', function (e) { 22 | e.preventDefault(); 23 | if (e.target === target) { 24 | toggleModal(target); 25 | } 26 | }); 27 | 28 | document.addEventListener('keydown', function (e) { 29 | if (target.className.split(' ').indexOf('open') >= 0) { 30 | if (e.keyCode === 27 || e.which === 27) { 31 | e.preventDefault(); 32 | toggleModal(target); 33 | } 34 | } 35 | }, false); 36 | } 37 | }); 38 | 39 | var toggleModal = function (target) { 40 | var classList = target.className.split(' '); 41 | if (classList.indexOf('open') >= 0) { 42 | target.classList.remove('open'); 43 | setTimeout(function () { 44 | document.querySelector('body').classList.remove('hide-overflow'); 45 | document.body.removeAttribute('style'); 46 | }, 300) 47 | } 48 | else { 49 | target.classList.add('open'); 50 | document.querySelector('body').classList.add('hide-overflow'); 51 | document.querySelector('body').style.paddingRight = getScrollbarWidth() + 'px'; 52 | } 53 | }; 54 | 55 | var getScrollbarWidth = function () { 56 | var se = document.createElement('div'); 57 | se.style.position = 'absolute'; 58 | se.style.top = '-99999px'; 59 | se.style.width = '100px'; 60 | se.style.height = '100px'; 61 | se.style.overflow = 'scroll'; 62 | se.style.opacity = '0'; 63 | document.body.appendChild(se); 64 | var sw = se.offsetWidth - se.clientWidth; 65 | document.body.removeChild(se); 66 | return sw; 67 | }; 68 | 69 | }()); 70 | -------------------------------------------------------------------------------- /js/potato.min.js: -------------------------------------------------------------------------------- 1 | 'use strict';(function(){'use strict';var modalToggles=document.querySelectorAll('[data-toggle="modal"]');modalToggles.forEach(function(item){var target=document.querySelector(item.getAttribute('data-target'));if(target!==null||target!==undefined){item.addEventListener('click',function(e){e.preventDefault();toggleModal(target)},false);var closeButtons=target.querySelectorAll('[data-action="close"]');closeButtons.forEach(function(item){item.addEventListener('click',function(e){e.preventDefault();toggleModal(target)},false)});target.addEventListener('click',function(e){e.preventDefault();if(e.target===target){toggleModal(target)}});document.addEventListener('keydown',function(e){if(target.className.split(' ').indexOf('open')>=0){if(e.keyCode===27||e.which===27){e.preventDefault();toggleModal(target)}}},false)}});var toggleModal=function toggleModal(target){var classList=target.className.split(' ');if(classList.indexOf('open')>=0){target.classList.remove('open');setTimeout(function(){document.querySelector('body').classList.remove('hide-overflow');document.body.removeAttribute('style')},300)}else{target.classList.add('open');document.querySelector('body').classList.add('hide-overflow');document.querySelector('body').style.paddingRight=getScrollbarWidth()+'px'}};var getScrollbarWidth=function getScrollbarWidth(){var se=document.createElement('div');se.style.position='absolute';se.style.top='-99999px';se.style.width='100px';se.style.height='100px';se.style.overflow='scroll';se.style.opacity='0';document.body.appendChild(se);var sw=se.offsetWidth-se.clientWidth;document.body.removeChild(se);return sw}})(); 2 | //# sourceMappingURL=potato.min.js.map 3 | -------------------------------------------------------------------------------- /js/potato.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["potato.js"],"names":["modalToggles","document","querySelectorAll","forEach","item","target","querySelector","getAttribute","undefined","addEventListener","e","preventDefault","toggleModal","closeButtons","className","split","indexOf","keyCode","which","classList","remove","setTimeout","body","removeAttribute","add","style","paddingRight","getScrollbarWidth","se","createElement","position","top","width","height","overflow","opacity","appendChild","sw","offsetWidth","clientWidth","removeChild"],"mappings":"aAAA,WAAA,CACA,aACA,GAAAA,cAAAC,SAAAC,gBAAA,CAAA,uBAAA,CAAA,CAEAF,aAAAG,OAAA,CAAA,SAAAC,IAAA,CAAA,CACA,GAAAC,QAAAJ,SAAAK,aAAA,CAAAF,KAAAG,YAAA,CAAA,aAAA,CAAA,CAAA,CACA,GAAAF,SAAA,IAAA,EAAAA,SAAAG,SAAA,CAAA,CACAJ,KAAAK,gBAAA,CAAA,OAAA,CAAA,SAAAC,CAAA,CAAA,CACAA,EAAAC,cAAA,GACAC,YAAAP,MAAA,CACA,CAHA,CAGA,KAHA,EAKA,GAAAQ,cAAAR,OAAAH,gBAAA,CAAA,uBAAA,CAAA,CACAW,aAAAV,OAAA,CAAA,SAAAC,IAAA,CAAA,CACAA,KAAAK,gBAAA,CAAA,OAAA,CAAA,SAAAC,CAAA,CAAA,CACAA,EAAAC,cAAA,GACAC,YAAAP,MAAA,CACA,CAHA,CAGA,KAHA,CAIA,CALA,EAOAA,OAAAI,gBAAA,CAAA,OAAA,CAAA,SAAAC,CAAA,CAAA,CACAA,EAAAC,cAAA,GACA,GAAAD,EAAAL,MAAA,GAAAA,MAAA,CAAA,CACAO,YAAAP,MAAA,CACA,CACA,CALA,EAOAJ,SAAAQ,gBAAA,CAAA,SAAA,CAAA,SAAAC,CAAA,CAAA,CACA,GAAAL,OAAAS,SAAA,CAAAC,KAAA,CAAA,GAAA,EAAAC,OAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CACA,GAAAN,EAAAO,OAAA,GAAA,EAAA,EAAAP,EAAAQ,KAAA,GAAA,EAAA,CAAA,CACAR,EAAAC,cAAA,GACAC,YAAAP,MAAA,CACA,CACA,CACA,CAPA,CAOA,KAPA,CAQA,CACA,CAhCA,EAkCA,GAAAO,aAAA,QAAAA,YAAA,CAAAP,MAAA,CAAA,CACA,GAAAc,WAAAd,OAAAS,SAAA,CAAAC,KAAA,CAAA,GAAA,CAAA,CACA,GAAAI,UAAAH,OAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CACAX,OAAAc,SAAA,CAAAC,MAAA,CAAA,MAAA,EACAC,WAAA,UAAA,CACApB,SAAAK,aAAA,CAAA,MAAA,EAAAa,SAAA,CAAAC,MAAA,CAAA,eAAA,EACAnB,SAAAqB,IAAA,CAAAC,eAAA,CAAA,OAAA,CACA,CAHA,CAGA,GAHA,CAIA,CANA,IAOA,CACAlB,OAAAc,SAAA,CAAAK,GAAA,CAAA,MAAA,EACAvB,SAAAK,aAAA,CAAA,MAAA,EAAAa,SAAA,CAAAK,GAAA,CAAA,eAAA,EACAvB,SAAAK,aAAA,CAAA,MAAA,EAAAmB,KAAA,CAAAC,YAAA,CAAAC,oBAAA,IACA,CACA,CAdA,CAgBA,GAAAA,mBAAA,QAAAA,kBAAA,EAAA,CACA,GAAAC,IAAA3B,SAAA4B,aAAA,CAAA,KAAA,CAAA,CACAD,GAAAH,KAAA,CAAAK,QAAA,CAAA,UAAA,CACAF,GAAAH,KAAA,CAAAM,GAAA,CAAA,UAAA,CACAH,GAAAH,KAAA,CAAAO,KAAA,CAAA,OAAA,CACAJ,GAAAH,KAAA,CAAAQ,MAAA,CAAA,OAAA,CACAL,GAAAH,KAAA,CAAAS,QAAA,CAAA,QAAA,CACAN,GAAAH,KAAA,CAAAU,OAAA,CAAA,GAAA,CACAlC,SAAAqB,IAAA,CAAAc,WAAA,CAAAR,EAAA,EACA,GAAAS,IAAAT,GAAAU,WAAA,CAAAV,GAAAW,WAAA,CACAtC,SAAAqB,IAAA,CAAAkB,WAAA,CAAAZ,EAAA,EACA,MAAAS,GACA,CAEA,CApEA,GAAA","file":"potato.min.js","sourcesContent":["(function () {\n\t'use strict';\n\tvar modalToggles = document.querySelectorAll('[data-toggle=\"modal\"]');\n\n\tmodalToggles.forEach(function (item) {\n\t\tvar target = document.querySelector(item.getAttribute('data-target'));\n\t\tif (target !== null || target !== undefined) {\n\t\t\titem.addEventListener('click', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\ttoggleModal(target);\n\t\t\t}, false);\n\n\t\t\tvar closeButtons = target.querySelectorAll('[data-action=\"close\"]');\n\t\t\tcloseButtons.forEach(function (item) {\n\t\t\t\titem.addEventListener('click', function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\ttoggleModal(target);\n\t\t\t\t}, false);\n\t\t\t});\n\n\t\t\ttarget.addEventListener('click', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tif (e.target === target) {\n\t\t\t\t\ttoggleModal(target);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdocument.addEventListener('keydown', function (e) {\n\t\t\t\tif (target.className.split(' ').indexOf('open') >= 0) {\n\t\t\t\t\tif (e.keyCode === 27 || e.which === 27) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\ttoggleModal(target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\t});\n\n\tvar toggleModal = function (target) {\n\t\tvar classList = target.className.split(' ');\n\t\tif (classList.indexOf('open') >= 0) {\n\t\t\ttarget.classList.remove('open');\n\t\t\tsetTimeout(function () {\n\t\t\t\tdocument.querySelector('body').classList.remove('hide-overflow');\n\t\t\t\tdocument.body.removeAttribute('style');\n\t\t\t}, 300)\n\t\t}\n\t\telse {\n\t\t\ttarget.classList.add('open');\n\t\t\tdocument.querySelector('body').classList.add('hide-overflow');\n\t\t\tdocument.querySelector('body').style.paddingRight = getScrollbarWidth() + 'px';\n\t\t}\n\t};\n\n\tvar getScrollbarWidth = function () {\n\t\tvar se = document.createElement('div');\n\t\tse.style.position = 'absolute';\n\t\tse.style.top = '-99999px';\n\t\tse.style.width = '100px';\n\t\tse.style.height = '100px';\n\t\tse.style.overflow = 'scroll';\n\t\tse.style.opacity = '0';\n\t\tdocument.body.appendChild(se);\n\t\tvar sw = se.offsetWidth - se.clientWidth;\n\t\tdocument.body.removeChild(se);\n\t\treturn sw;\n\t};\n\n}());\n"]} -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ummahusla/PotatoCSS/2bb9cfbc5311fa75af4c19dacb15cbef4e281277/logo.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "potato-css", 3 | "version": "1.0.2", 4 | "description": "Simple CSS framework for hackers. Simple as potato.", 5 | "authors": [ 6 | "Edvins Antonovs " 7 | ], 8 | "main": "stylesheets/css/potato.css", 9 | "scripts": { 10 | "install": "gulp" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/ummahusla/PotatoCSS.git" 15 | }, 16 | "keywords": [ 17 | "CSS", 18 | "CSS-framework", 19 | "UI", 20 | "responsive-grid", 21 | "responsive", 22 | "layout" 23 | ], 24 | "author": "Edvins Antonovs", 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "https://github.com/ummahusla/PotatoCSS/issues" 28 | }, 29 | "homepage": "https://github.com/ummahusla/PotatoCSS#readme", 30 | "devDependencies": { 31 | "autoprefixer": "^7.1.6", 32 | "babel-core": "^6.26.0", 33 | "babel-preset-es2015": "^6.24.1", 34 | "browser-sync": "^2.18.13", 35 | "css-mqpacker": "^6.0.1", 36 | "gulp": "^3.9.1", 37 | "gulp-babel": "^7.0.0", 38 | "gulp-concat": "^2.6.1", 39 | "gulp-csso": "^3.0.0", 40 | "gulp-less": "^3.3.2", 41 | "gulp-postcss": "^7.0.0", 42 | "gulp-rename": "^1.2.2", 43 | "gulp-sass": "^3.1.0", 44 | "gulp-sourcemaps": "^2.6.1", 45 | "gulp-stylefmt": "^1.1.0", 46 | "gulp-util": "^3.0.8", 47 | "node-notifier": "^5.1.2", 48 | "postcss-reporter": "^5.0.0", 49 | "run-sequence": "^2.2.0", 50 | "stylelint": "^8.2.0", 51 | "stylelint-config-standard": "^17.0.0", 52 | "stylelint-csstree-validator": "^1.2.0" 53 | }, 54 | "browserslist": [ 55 | "last 2 version", 56 | "Firefox >=3.5", 57 | "Safari >=3.2", 58 | "Opera >=11", 59 | "OperaMini All", 60 | "IE >= 9" 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /stylesheets/css/potato.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Edvins Antonovs 3 | * License: MIT License 4 | * Website: http://potatocss.com/ 5 | */ 6 | /* Import Google Font "Roboto" */ 7 | @import url("https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i"); 8 | /* Global styles */ 9 | *, 10 | *::before, 11 | *::after { 12 | -webkit-box-sizing: border-box; 13 | -moz-box-sizing: border-box; 14 | box-sizing: border-box; 15 | /* IE 8+ to use box-sizing, < IE 9 support is pretty much void at this point */ 16 | } 17 | 18 | html, 19 | body { 20 | height: 100%; 21 | width: 100%; 22 | font-size: 100%; 23 | margin: 0; 24 | padding: 0; 25 | } 26 | 27 | hr { 28 | position: relative; 29 | width: 60%; 30 | margin: 30px auto; 31 | border: solid #ccc; 32 | border-width: 1px 0 0; 33 | clear: both; 34 | } 35 | 36 | a { 37 | text-decoration: underline; 38 | -webkit-transition: .2s ease-out; 39 | -o-transition: .2s ease-out; 40 | -moz-transition: .2s ease-out; 41 | transition: .2s ease-out; 42 | -webkit-transition-property: background-color, color; 43 | -o-transition-property: background-color, color; 44 | -moz-transition-property: background-color, color; 45 | transition-property: background-color, color; 46 | color: #333; 47 | } 48 | 49 | a:hover, 50 | a:focus { 51 | color: #8c8a8a; 52 | } 53 | 54 | /* Typography */ 55 | * { 56 | font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 57 | font-weight: lighter; 58 | line-height: 1.5; 59 | color: #333; 60 | } 61 | 62 | h1, 63 | h2, 64 | h3, 65 | h4, 66 | h5, 67 | h6 { 68 | margin: 5px 0; 69 | font-weight: normal; 70 | font-style: normal; 71 | line-height: 1.5; 72 | text-transform: none; 73 | text-rendering: optimizeLegibility; 74 | } 75 | 76 | h1 { 77 | font-size: 28px; 78 | } 79 | 80 | h2 { 81 | font-size: 18px; 82 | } 83 | 84 | h3 { 85 | font-size: 15px; 86 | } 87 | 88 | h4 { 89 | font-size: 14px; 90 | } 91 | 92 | h5 { 93 | font-size: 16px; 94 | } 95 | 96 | h6 { 97 | font-size: 16px; 98 | } 99 | 100 | blockquote { 101 | margin: 28px 0 28px -36px; 102 | padding: 0 0 0 28px; 103 | border-left: 6px solid #333; 104 | } 105 | 106 | /* Grid */ 107 | .container { 108 | width: 96%; 109 | position: relative; 110 | max-width: 1020px; 111 | margin: 0 auto; 112 | } 113 | 114 | .container::after { 115 | content: ""; 116 | clear: both; 117 | display: table; 118 | } 119 | 120 | .row { 121 | position: relative; 122 | width: 100%; 123 | margin: 0 auto; 124 | } 125 | 126 | .row::after { 127 | content: ""; 128 | clear: both; 129 | display: table; 130 | } 131 | 132 | .row .potato, 133 | .row .potatoes { 134 | margin: 8px 2%; 135 | min-height: 2px; 136 | } 137 | 138 | .potato, 139 | .potatoes { 140 | width: 96%; 141 | float: left !important; 142 | } 143 | 144 | .one.potato, 145 | .one.potatoes { 146 | width: 4.33333333%; 147 | } 148 | 149 | .two.potatoes { 150 | width: 12.66666667%; 151 | } 152 | 153 | .three.potatoes { 154 | width: 21%; 155 | } 156 | 157 | .four.potatoes { 158 | width: 29.33333333%; 159 | } 160 | 161 | .five.potatoes { 162 | width: 37.66666667%; 163 | } 164 | 165 | .six.potatoes { 166 | width: 46%; 167 | } 168 | 169 | .seven.potatoes { 170 | width: 54.33333333%; 171 | } 172 | 173 | .eight.potatoes { 174 | width: 62.66666667%; 175 | } 176 | 177 | .nine.potatoes { 178 | width: 71%; 179 | } 180 | 181 | .ten.potatoes { 182 | width: 79.33333333%; 183 | } 184 | 185 | .eleven.potatoes { 186 | width: 87.66666667%; 187 | } 188 | 189 | .twelve.potatoes { 190 | width: 96%; 191 | } 192 | 193 | /* Form */ 194 | .input_text, 195 | input[type="text"], 196 | input[type="password"], 197 | input[type="date"], 198 | input[type="datetime"], 199 | input[type="email"], 200 | input[type="number"], 201 | input[type="tel"], 202 | input[type="time"], 203 | input[type="url"], 204 | input[type="color"], 205 | select, 206 | textarea { 207 | font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 208 | background-color: #fff; 209 | border: 1px solid #333; 210 | color: #333; 211 | -webkit-border-radius: 4px; 212 | -moz-border-radius: 4px; 213 | border-radius: 4px; 214 | display: block; 215 | font-size: 16px; 216 | line-height: 1; 217 | height: 46px; 218 | margin: 0 0 20px; 219 | padding: 0 10px; 220 | width: 100%; 221 | } 222 | 223 | select { 224 | -webkit-appearance: none; 225 | -moz-appearance: none; 226 | cursor: pointer; 227 | } 228 | 229 | select::-ms-expand { 230 | display: none; 231 | } 232 | 233 | textarea { 234 | font-size: 16px; 235 | min-height: 150px; 236 | padding: 10px; 237 | line-height: 1.5; 238 | } 239 | 240 | label { 241 | display: block; 242 | } 243 | 244 | input[type="radio"] + label, 245 | input[type="checkbox"] + label { 246 | display: inline-block; 247 | } 248 | 249 | ::-webkit-input-placeholder { 250 | color: #333; 251 | } 252 | 253 | :-moz-placeholder { 254 | color: #333; 255 | } 256 | 257 | ::-moz-placeholder { 258 | color: #333; 259 | } 260 | 261 | :-ms-input-placeholder { 262 | color: #333; 263 | } 264 | 265 | /* Buttons */ 266 | .button { 267 | padding: 12px 18px; 268 | font-size: 14px; 269 | display: inline-block; 270 | text-align: center; 271 | line-height: 1; 272 | cursor: pointer; 273 | -webkit-border-radius: 4px; 274 | -moz-border-radius: 4px; 275 | border-radius: 4px; 276 | margin: 0 0 20px; 277 | position: relative; 278 | white-space: nowrap; 279 | vertical-align: middle; 280 | text-decoration: none; 281 | -webkit-transition: .2s ease-out; 282 | -o-transition: .2s ease-out; 283 | -moz-transition: .2s ease-out; 284 | transition: .2s ease-out; 285 | -webkit-transition-property: background-color, color; 286 | -o-transition-property: background-color, color; 287 | -moz-transition-property: background-color, color; 288 | transition-property: background-color, color; 289 | background-color: transparent; 290 | color: #333; 291 | border: 1px solid #333; 292 | } 293 | 294 | .button:hover, 295 | .button:focus { 296 | background-color: #333; 297 | color: #fff; 298 | } 299 | 300 | .button.full { 301 | background-color: #333; 302 | color: #fff; 303 | border: 1px solid #333; 304 | } 305 | 306 | .button.full:hover, 307 | .button.full:focus { 308 | background-color: transparent; 309 | color: #333; 310 | } 311 | 312 | .button.primary { 313 | background-color: transparent; 314 | color: #3498db; 315 | border: 1px solid #3498db; 316 | } 317 | 318 | .button.primary:hover, 319 | .button.primary:focus { 320 | background-color: #3498db; 321 | color: #fff; 322 | } 323 | 324 | .button.primary.full { 325 | background-color: #3498db; 326 | color: #fff; 327 | border: 1px solid #3498db; 328 | } 329 | 330 | .button.primary.full:hover, 331 | .button.primary.full:focus { 332 | background-color: transparent; 333 | color: #3498db; 334 | } 335 | 336 | .button.success { 337 | background-color: transparent; 338 | color: #27ae60; 339 | border: 1px solid #27ae60; 340 | } 341 | 342 | .button.success:hover, 343 | .button.success:focus { 344 | background-color: #27ae60; 345 | color: #fff; 346 | } 347 | 348 | .button.success.full { 349 | background-color: #27ae60; 350 | color: #fff; 351 | border: 1px solid #27ae60; 352 | } 353 | 354 | .button.success.full:hover, 355 | .button.success.full:focus { 356 | background-color: transparent; 357 | color: #27ae60; 358 | } 359 | 360 | .button.warning { 361 | background-color: transparent; 362 | color: #f39c12; 363 | border: 1px solid #f39c12; 364 | } 365 | 366 | .button.warning:hover, 367 | .button.warning:focus { 368 | background-color: #f39c12; 369 | color: #fff; 370 | } 371 | 372 | .button.warning.full { 373 | background-color: #f39c12; 374 | color: #fff; 375 | border: 1px solid #f39c12; 376 | } 377 | 378 | .button.warning.full:hover, 379 | .button.warning.full:focus { 380 | background-color: transparent; 381 | color: #f39c12; 382 | } 383 | 384 | .button.danger { 385 | background-color: transparent; 386 | color: #e74c3c; 387 | border: 1px solid #e74c3c; 388 | } 389 | 390 | .button.danger:hover, 391 | .button.danger:focus { 392 | background-color: #e74c3c; 393 | color: #fff; 394 | } 395 | 396 | .button.danger.full { 397 | background-color: #e74c3c; 398 | color: #fff; 399 | border: 1px solid #e74c3c; 400 | } 401 | 402 | .button.danger.full:hover, 403 | .button.danger.full:focus { 404 | background-color: transparent; 405 | color: #e74c3c; 406 | } 407 | 408 | .button.small { 409 | padding: 10px 16px; 410 | font-size: 12px; 411 | } 412 | 413 | .button.large { 414 | padding: 14px 24px; 415 | font-size: 18px; 416 | } 417 | 418 | .button.expanded { 419 | display: block; 420 | max-width: 100%; 421 | } 422 | 423 | /* Tables */ 424 | table { 425 | width: 100%; 426 | text-align: left; 427 | background: #fff; 428 | border: 1px solid #ccc; 429 | margin-bottom: 20px; 430 | display: table; 431 | border-collapse: separate; 432 | border-spacing: 2px; 433 | } 434 | 435 | /* lists */ 436 | .inline-potato { 437 | display: inline; 438 | padding: 0; 439 | } 440 | 441 | .inline-potato li { 442 | display: inline; 443 | } 444 | 445 | .circle-potato { 446 | list-style-type: circle; 447 | } 448 | 449 | .square-potato { 450 | list-style-type: square; 451 | } 452 | 453 | .roman-potato { 454 | list-style-type: upper-roman; 455 | } 456 | 457 | .alpha-potato { 458 | list-style-type: lower-alpha; 459 | } 460 | 461 | /* Code */ 462 | pre, 463 | code, 464 | kbd { 465 | font-family: Consolas, "Liberation Mono", "Courier New", monospace; 466 | } 467 | 468 | code { 469 | background-color: #ededed; 470 | font-size: 13px; 471 | margin: 0; 472 | padding: 3px 6px; 473 | -webkit-border-radius: 3px; 474 | -moz-border-radius: 3px; 475 | border-radius: 3px; 476 | border: 1px solid #ccc; 477 | } 478 | 479 | pre { 480 | white-space: pre; 481 | -webkit-border-radius: 3px; 482 | -moz-border-radius: 3px; 483 | border-radius: 3px; 484 | background-color: #ededed; 485 | padding: 5px 20px; 486 | margin: 5px 0; 487 | } 488 | 489 | pre code { 490 | font-size: 14px; 491 | padding: 0; 492 | background-color: transparent; 493 | -webkit-border-radius: 0; 494 | -moz-border-radius: 0; 495 | border-radius: 0; 496 | border: 0; 497 | } 498 | 499 | kbd { 500 | display: inline-block; 501 | background-color: #ededed; 502 | font-size: 13px; 503 | margin: 0; 504 | padding: 3px 6px; 505 | -webkit-border-radius: 3px; 506 | -moz-border-radius: 3px; 507 | border-radius: 3px; 508 | border: 1px solid #ccc; 509 | vertical-align: middle; 510 | -webkit-box-shadow: inset 0 -1px 0 #bbb; 511 | -moz-box-shadow: inset 0 -1px 0 #bbb; 512 | box-shadow: inset 0 -1px 0 #bbb; 513 | } 514 | 515 | /* Panel */ 516 | .panel { 517 | padding: 10px 15px; 518 | margin: 5px 0; 519 | border: 1px solid #333; 520 | } 521 | 522 | .panel.round { 523 | -webkit-border-radius: 4px; 524 | -moz-border-radius: 4px; 525 | border-radius: 4px; 526 | } 527 | 528 | .panel.primary { 529 | background-color: #3498db; 530 | } 531 | 532 | .panel.success { 533 | background-color: #27ae60; 534 | } 535 | 536 | .panel.warning { 537 | background-color: #f39c12; 538 | } 539 | 540 | .panel.danger { 541 | background-color: #e74c3c; 542 | } 543 | 544 | /* Label */ 545 | .label { 546 | display: inline; 547 | line-height: 1; 548 | font-size: 80%; 549 | color: #333; 550 | border: 1px solid #333; 551 | text-align: center; 552 | white-space: nowrap; 553 | padding: 3px 4px; 554 | -webkit-border-radius: 4px; 555 | -moz-border-radius: 4px; 556 | border-radius: 4px; 557 | } 558 | 559 | .label.primary { 560 | color: #3498db; 561 | border: 1px solid #3498db; 562 | } 563 | 564 | .label.success { 565 | color: #27ae60; 566 | border: 1px solid #27ae60; 567 | } 568 | 569 | .label.warning { 570 | color: #f39c12; 571 | border: 1px solid #f39c12; 572 | } 573 | 574 | .label.danger { 575 | color: #e74c3c; 576 | border: 1px solid #e74c3c; 577 | } 578 | 579 | /* Helpers */ 580 | .text-center { 581 | text-align: center; 582 | } 583 | 584 | .text-right { 585 | text-align: right; 586 | } 587 | 588 | .text-left { 589 | text-align: left; 590 | } 591 | 592 | .text-justify { 593 | text-align: justify; 594 | } 595 | 596 | .float-left { 597 | float: left; 598 | } 599 | 600 | .float-right { 601 | float: right; 602 | } 603 | 604 | .font-light { 605 | font-weight: lighter; 606 | } 607 | 608 | .font-normal { 609 | font-weight: normal; 610 | } 611 | 612 | .font-bold { 613 | font-weight: bold; 614 | } 615 | 616 | .allow-overflow { 617 | overflow: auto; 618 | } 619 | 620 | .allow-overflow-x { 621 | overflow-y: auto; 622 | } 623 | 624 | .allow-overflow-y { 625 | overflow-y: auto; 626 | } 627 | 628 | .hide-overflow, 629 | .forbid-overflow { 630 | overflow: hidden; 631 | } 632 | 633 | .hide-overflow-x, 634 | .forbid-overflow-x { 635 | overflow-y: hidden; 636 | } 637 | 638 | .hide-overflow-y, 639 | .forbid-overflow-y { 640 | overflow-y: hidden; 641 | } 642 | 643 | @media screen and (min-width: 40em) { 644 | h1 { 645 | font-size: 30px; 646 | } 647 | 648 | h2 { 649 | font-size: 26px; 650 | } 651 | 652 | h3 { 653 | font-size: 22px; 654 | } 655 | 656 | h4 { 657 | font-size: 15px; 658 | } 659 | 660 | h5 { 661 | font-size: 14px; 662 | } 663 | 664 | .button { 665 | padding: 14px 20px; 666 | font-size: 16px; 667 | } 668 | 669 | .button.large { 670 | padding: 16px 30px; 671 | font-size: 24px; 672 | } 673 | } 674 | 675 | 676 | /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBvdGF0by5zY3NzIiwibW9kdWxlcy9fZ2xvYmFsLnNjc3MiLCJjb3JlL192YXJpYWJsZXMuc2NzcyIsImNvcmUvX21peGlucy5zY3NzIiwibW9kdWxlcy9fdHlwb2dyYXBoeS5zY3NzIiwibW9kdWxlcy9fZ3JpZC5zY3NzIiwibW9kdWxlcy9fZm9ybS5zY3NzIiwibW9kdWxlcy9fYnV0dG9uLnNjc3MiLCJtb2R1bGVzL190YWJsZS5zY3NzIiwibW9kdWxlcy9fbGlzdC5zY3NzIiwibW9kdWxlcy9fY29kZS5zY3NzIiwibW9kdWxlcy9fcGFuZWwuc2NzcyIsIm1vZHVsZXMvX2xhYmVsLnNjc3MiLCJtb2R1bGVzL19oZWxwZXJzLnNjc3MiLCJwb3RhdG8uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7O0VBSUU7QUNMRixpQ0FBaUM7QUFDakMseUZBQVk7QUFFWixtQkFBbUI7QUFFbkI7OztFQUdDLCtCQUFzQjtLQUF0Qiw0QkFBc0I7VUFBdEIsdUJBQXNCO0VBQ3RCLCtFQUErRTtDQUMvRTs7QUFFRDs7RUFFQyxhQUFZO0VBQ1osWUFBVztFQUNYLGdCQUFlO0VBQ2YsVUFBUztFQUNULFdBQVU7Q0FDVjs7QUFFRDtFQUNDLG1CQUFrQjtFQUNsQixXQUFVO0VBQ1Ysa0JBQWlCO0VBQ2pCLG1CQ1gyQjtFRFkzQixzQkFBcUI7RUFDckIsWUFBVztDQUNYOztBQUVEO0VBQ0MsMkJBQTBCO0VBQzFCLGlDQUF3QjtFQUF4Qiw0QkFBd0I7RUFBeEIsOEJBQXdCO0VBQXhCLHlCQUF3QjtFQUN4QixxREFBNEM7RUFBNUMsZ0RBQTRDO0VBQTVDLGtEQUE0QztFQUE1Qyw2Q0FBNEM7RUFDNUMsWUNyQjJCO0NEMEIzQjs7QUUxQkE7RUZ3QkMsZUNsQjZCO0NDSDdCOztBQ2hCRixnQkFBZ0I7QUFFaEI7RUFDQyx3RUFBdUU7RUFDdkUscUJBQW9CO0VBQ3BCLGlCQUFnQjtFQUNoQixZRk8yQjtDRU4zQjs7QUFFRDs7Ozs7O0VBTUMsY0FBYTtFQUNiLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLHFCQUFvQjtFQUNwQixtQ0FBa0M7Q0FDbEM7O0FBRUQ7RUFDQyxnQkFBZTtDQUtmOztBQUVEO0VBQ0MsZ0JBQWU7Q0FLZjs7QUFFRDtFQUNDLGdCQUFlO0NBS2Y7O0FBRUQ7RUFDQyxnQkFBZTtDQUtmOztBQUVEO0VBQ0MsZ0JBQWU7Q0FLZjs7QUFFRDtFQUNDLGdCQUFlO0NBQ2Y7O0FBRUQ7RUFDQywwQkFBeUI7RUFDekIsb0JBQW1CO0VBQ25CLDRCRnpEMkI7Q0UwRDNCOztBQ3ZFRCxVQUFVO0FBRVY7RUFDQyxXQUFVO0VBQ1YsbUJBQWtCO0VBQ2xCLGtCSEsyQjtFR0ozQixlQUFjO0NBTWQ7O0FGZUE7RUFDQyxZQUZzQjtFRWpCdEIsWUFBVztFQUNYLGVBQWM7Q0ZvQmQ7O0FFaEJGO0VBQ0MsbUJBQWtCO0VBQ2xCLFlBQVc7RUFDWCxlQUFjO0NBWWQ7O0FGRkE7RUFDQyxZQUZzQjtFRU50QixZQUFXO0VBQ1gsZUFBYztDRlNkOztBRWhCRjs7RUFZRSxlQUFjO0VBQ2QsZ0JBQWU7Q0FDZjs7QUFHRjs7RUZ0QkMsV0FBMEM7RUV5QjFDLHVCQUFzQjtDQUN0Qjs7QUFJQTtFRjlCQSxtQkFBMEM7Q0VtQ3ZDOztBQUxIO0VGOUJBLG9CQUEwQztDRXVDdkM7O0FBVEg7RUY5QkEsV0FBMEM7Q0V1Q3ZDOztBQVRIO0VGOUJBLG9CQUEwQztDRXVDdkM7O0FBVEg7RUY5QkEsb0JBQTBDO0NFdUN2Qzs7QUFUSDtFRjlCQSxXQUEwQztDRXVDdkM7O0FBVEg7RUY5QkEsb0JBQTBDO0NFdUN2Qzs7QUFUSDtFRjlCQSxvQkFBMEM7Q0V1Q3ZDOztBQVRIO0VGOUJBLFdBQTBDO0NFdUN2Qzs7QUFUSDtFRjlCQSxvQkFBMEM7Q0V1Q3ZDOztBQVRIO0VGOUJBLG9CQUEwQztDRXVDdkM7O0FBVEg7RUY5QkEsV0FBMEM7Q0V1Q3ZDOztBQ2hESixVQUFVO0FBRVY7Ozs7Ozs7Ozs7Ozs7RUFhQyx3RUFBdUU7RUFDdkUsdUJKSTJCO0VJSDNCLHVCSkoyQjtFSUszQixZSkwyQjtFSU0zQiwyQkFBa0I7S0FBbEIsd0JBQWtCO1VBQWxCLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2QsZ0JBQWU7RUFDZixlQUFjO0VBQ2QsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixnQkFBZTtFQUNmLFlBQVc7Q0FDWDs7QUFFRDtFQUNDLHlCQUF3QjtFQUN4QixzQkFBcUI7RUFDckIsZ0JBQWU7Q0FLZjs7QUFSRDtFQU1FLGNBQWE7Q0FDYjs7QUFJRjtFQUNDLGdCQUFlO0VBQ2Ysa0JBQWlCO0VBQ2pCLGNBQWE7RUFDYixpQkFBZ0I7Q0FDaEI7O0FBRUQ7RUFDQyxlQUFjO0NBTWQ7O0FBSkE7O0VBRUMsc0JBQXFCO0NBQ3JCOztBQUlGO0VBQ0MsWUo3QzJCO0NJOEMzQjs7QUFFRDtFQUNDLFlKakQyQjtDSWtEM0I7O0FBRUQ7RUFDQyxZSnJEMkI7Q0lzRDNCOztBQUVEO0VBQ0MsWUp6RDJCO0NJMEQzQjs7QUN2RUQsYUFBYTtBQUViO0VBQ0MsbUJBQWtCO0VBQ2xCLGdCQUFlO0VBQ2Ysc0JBQXFCO0VBQ3JCLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2QsZ0JBQWU7RUFDZiwyQkFBa0I7S0FBbEIsd0JBQWtCO1VBQWxCLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQix1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLGlDQUF3QjtFQUF4Qiw0QkFBd0I7RUFBeEIsOEJBQXdCO0VBQXhCLHlCQUF3QjtFQUN4QixxREFBNEM7RUFBNUMsZ0RBQTRDO0VBQTVDLGtEQUE0QztFQUE1Qyw2Q0FBNEM7RUFDNUMsOEJBQTZCO0VBQzdCLFlMTDJCO0VLTTNCLHVCTE4yQjtDS3dJM0I7O0FKeElBO0VJY0MsdUJMZDBCO0VLZTFCLFlMUjBCO0NDSjFCOztBSWRGO0VBOEJFLHVCTG5CMEI7RUtvQjFCLFlMYjBCO0VLYzFCLHVCTHJCMEI7Q0syQjFCOztBSjNCRDtFSXdCRSw4QkFBNkI7RUFDN0IsWUx6QnlCO0NDRzFCOztBSWRGO0VBeUNFLDhCQUE2QjtFQUM3QixlTHZCNkI7RUt3QjdCLDBCTHhCNkI7Q0t5QzdCOztBSmpERDtFSW1DRSwwQkwzQjRCO0VLNEI1QixZTDdCeUI7Q0NKMUI7O0FJZEY7RUFtREcsMEJMaEM0QjtFS2lDNUIsWUxsQ3lCO0VLbUN6QiwwQkxsQzRCO0NLd0M1Qjs7QUpoREY7RUk2Q0csOEJBQTZCO0VBQzdCLGVMdEMyQjtDQ0w3Qjs7QUlkRjtFQStERSw4QkFBNkI7RUFDN0IsZUw1QzZCO0VLNkM3QiwwQkw3QzZCO0NLOEQ3Qjs7QUp2RUQ7RUl5REUsMEJMaEQ0QjtFS2lENUIsWUxuRHlCO0NDSjFCOztBSWRGO0VBeUVHLDBCTHJENEI7RUtzRDVCLFlMeER5QjtFS3lEekIsMEJMdkQ0QjtDSzZENUI7O0FKdEVGO0VJbUVHLDhCQUE2QjtFQUM3QixlTDNEMkI7Q0NON0I7O0FJZEY7RUFxRkUsOEJBQTZCO0VBQzdCLGVMakU2QjtFS2tFN0IsMEJMbEU2QjtDS21GN0I7O0FKN0ZEO0VJK0VFLDBCTHJFNEI7RUtzRTVCLFlMekV5QjtDQ0oxQjs7QUlkRjtFQStGRywwQkwxRTRCO0VLMkU1QixZTDlFeUI7RUsrRXpCLDBCTDVFNEI7Q0trRjVCOztBSjVGRjtFSXlGRyw4QkFBNkI7RUFDN0IsZUxoRjJCO0NDUDdCOztBSWRGO0VBMkdFLDhCQUE2QjtFQUM3QixlTHRGNkI7RUt1RjdCLDBCTHZGNkI7Q0t3RzdCOztBSm5IRDtFSXFHRSwwQkwxRjRCO0VLMkY1QixZTC9GeUI7Q0NKMUI7O0FJZEY7RUFxSEcsMEJML0Y0QjtFS2dHNUIsWUxwR3lCO0VLcUd6QiwwQkxqRzRCO0NLdUc1Qjs7QUpsSEY7RUkrR0csOEJBQTZCO0VBQzdCLGVMckcyQjtDQ1I3Qjs7QUlkRjtFQWlJRSxtQkFBa0I7RUFDbEIsZ0JBQWU7Q0FDZjs7QUFuSUY7RUFzSUUsbUJBQWtCO0VBQ2xCLGdCQUFlO0NBTWY7O0FBN0lGO0VBZ0pFLGVBQWM7RUFDZCxnQkFBZTtDQUNmOztBQ3BKRixZQUFZO0FBRVo7RUFDQyxZQUFXO0VBQ1gsaUJBQWdCO0VBQ2hCLGlCTmUyQjtFTWQzQix1Qk5RMkI7RU1QM0Isb0JBQW1CO0VBQ25CLGVBQWM7RUFDZCwwQkFBeUI7RUFDekIsb0JBQW1CO0NBQ25COztBQ1hELFdBQVc7QUFFWDtFQUNDLGdCQUFlO0VBQ2YsV0FBVTtDQUtWOztBQVBEO0VBS0UsZ0JBQWU7Q0FDZjs7QUFHRjtFQUNDLHdCQUF1QjtDQUN2Qjs7QUFFRDtFQUNDLHdCQUF1QjtDQUN2Qjs7QUFFRDtFQUNDLDZCQUE0QjtDQUM1Qjs7QUFFRDtFQUNDLDZCQUE0QjtDQUM1Qjs7QUN6QkQsVUFBVTtBQUVWOzs7RUFHQyxtRUFBa0U7Q0FDbEU7O0FBRUQ7RUFDQywwQlJROEI7RVFQOUIsZ0JBQWU7RUFDZixVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLDJCQUFrQjtLQUFsQix3QkFBa0I7VUFBbEIsbUJBQWtCO0VBQ2xCLHVCUkEyQjtDUUMzQjs7QUFFRDtFQUNDLGlCQUFnQjtFQUNoQiwyQkFBa0I7S0FBbEIsd0JBQWtCO1VBQWxCLG1CQUFrQjtFQUNsQiwwQlJIOEI7RVFJOUIsa0JBQWlCO0VBQ2pCLGNBQWE7Q0FTYjs7QUFkRDtFQVFFLGdCQUFlO0VBQ2YsV0FBVTtFQUNWLDhCQUE2QjtFQUM3Qix5QkFBZ0I7S0FBaEIsc0JBQWdCO1VBQWhCLGlCQUFnQjtFQUNoQixVQUFTO0NBQ1Q7O0FBR0Y7RUFDQyxzQkFBcUI7RUFDckIsMEJSbEI4QjtFUW1COUIsZ0JBQWU7RUFDZixVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLDJCQUFrQjtLQUFsQix3QkFBa0I7VUFBbEIsbUJBQWtCO0VBQ2xCLHVCUjFCMkI7RVEyQjNCLHVCQUFzQjtFQUN0Qix3Q1J4QjJCO0tRd0IzQixxQ1J4QjJCO1VRd0IzQixnQ1J4QjJCO0NReUIzQjs7QUMzQ0QsV0FBVztBQUVYO0VBQ0MsbUJBQWtCO0VBQ2xCLGNBQWE7RUFDYix1QlRRMkI7Q1NhM0I7O0FBeEJEO0VBTUUsMkJBQWtCO0tBQWxCLHdCQUFrQjtVQUFsQixtQkFBa0I7Q0FDbEI7O0FBUEY7RUFVRSwwQlRTNkI7Q1NSN0I7O0FBWEY7RUFjRSwwQlRNNkI7Q1NMN0I7O0FBZkY7RUFrQkUsMEJURzZCO0NTRjdCOztBQW5CRjtFQXNCRSwwQlRBNkI7Q1NDN0I7O0FDekJGLFdBQVc7QUFFWDtFQUNDLGdCQUFlO0VBQ2YsZUFBYztFQUNkLGVBQWM7RUFDZCxZVk8yQjtFVU4zQix1QlZNMkI7RVVMM0IsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQixpQkFBZ0I7RUFDaEIsMkJBQWtCO0tBQWxCLHdCQUFrQjtVQUFsQixtQkFBa0I7Q0FxQmxCOztBQTlCRDtFQVlFLGVWTzZCO0VVTjdCLDBCVk02QjtDVUw3Qjs7QUFkRjtFQWlCRSxlVkc2QjtFVUY3QiwwQlZFNkI7Q1VEN0I7O0FBbkJGO0VBc0JFLGVWRDZCO0VVRTdCLDBCVkY2QjtDVUc3Qjs7QUF4QkY7RUEyQkUsZVZMNkI7RVVNN0IsMEJWTjZCO0NVTzdCOztBQy9CRixhQUFhO0FBRWI7RUFDQyxtQkFBa0I7Q0FDbEI7O0FBRUQ7RUFDQyxrQkFBaUI7Q0FDakI7O0FBRUQ7RUFDQyxpQkFBZ0I7Q0FDaEI7O0FBRUQ7RUFDQyxvQkFBbUI7Q0FDbkI7O0FBRUQ7RUFDQyxZQUFXO0NBQ1g7O0FBRUQ7RUFDQyxhQUFZO0NBQ1o7O0FBRUQ7RUFDQyxxQkFBb0I7Q0FDcEI7O0FBRUQ7RUFDQyxvQkFBbUI7Q0FDbkI7O0FBRUQ7RUFDQyxrQkFBaUI7Q0FDakI7O0FBRUQ7RUFDQyxlQUFjO0NBU2Q7O0FBUEE7RUFDQyxpQkFBZ0I7Q0FDaEI7O0FBRUQ7RUFDQyxpQkFBZ0I7Q0FDaEI7O0FBR0Y7O0VBRUMsaUJBQWdCO0NBU2hCOztBQVBBOztFQUNDLG1CQUFrQjtDQUNsQjs7QUFFRDs7RUFDQyxtQkFBa0I7Q0FDbEI7O0FWekREO0VDb0JEO0lBSUUsZ0JBQWU7R0FFaEI7RUFFRDtJQUlFLGdCQUFlO0dBRWhCO0VBRUQ7SUFJRSxnQkFBZTtHQUVoQjtFQUVEO0lBSUUsZ0JBQWU7R0FFaEI7RUFFRDtJQUlFLGdCQUFlO0dBRWhCO0VHM0REO0lBb0JFLG1CQUFrQjtJQUNsQixnQkFBZTtHQThIaEI7RUFuSkQ7SUEwSUcsbUJBQWtCO0lBQ2xCLGdCQUFlO0dBRWhCO0NPckVEIiwiZmlsZSI6InBvdGF0by5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKlxuKiBBdXRob3I6IEVkdmlucyBBbnRvbm92c1xuKiBMaWNlbnNlOiBNSVQgTGljZW5zZVxuKiBXZWJzaXRlOiBodHRwOi8vcG90YXRvY3NzLmNvbS9cbiovXG5cbi8vIEltcG9ydCBjb3JlXG5AaW1wb3J0IFwiY29yZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJjb3JlL21peGluc1wiO1xuXG4vLyBJbXBvcnQgbW9kdWxlc1xuQGltcG9ydCBcIm1vZHVsZXMvZ2xvYmFsXCI7XG5AaW1wb3J0IFwibW9kdWxlcy90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9ncmlkXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9mb3JtXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9idXR0b25cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3RhYmxlXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9saXN0XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9jb2RlXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9wYW5lbFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvbGFiZWxcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2hlbHBlcnNcIjtcbiIsIi8qIEltcG9ydCBHb29nbGUgRm9udCBcIlJvYm90b1wiICovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDMwMGksNDAwLDQwMGksNzAwLDcwMGlcIik7XG5cbi8qIEdsb2JhbCBzdHlsZXMgKi9cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0LyogSUUgOCsgdG8gdXNlIGJveC1zaXppbmcsIDwgSUUgOSBzdXBwb3J0IGlzIHByZXR0eSBtdWNoIHZvaWQgYXQgdGhpcyBwb2ludCAqL1xufVxuXG5odG1sLFxuYm9keSB7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGZvbnQtc2l6ZTogMTAwJTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG5ociB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDYwJTtcblx0bWFyZ2luOiAzMHB4IGF1dG87XG5cdGJvcmRlcjogc29saWQgJGJvcmRlci1jb2xvcjtcblx0Ym9yZGVyLXdpZHRoOiAxcHggMCAwO1xuXHRjbGVhcjogYm90aDtcbn1cblxuYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZS1vdXQ7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGNvbG9yO1xuXHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cblx0QGluY2x1ZGUgaG92ZXIoKSB7XG5cdFx0Y29sb3I6ICRob3Zlci1jb2xvcjtcblx0fVxufVxuIiwiLy8qIFZhcmlhYmxlcyAqLy9cblxuLy8qIEJyZWFrcG9pbnRzICovL1xuJHNtYWxsOiAwO1xuJG1lZGl1bTogNDBlbTtcbiRsYXJnZTogNjRlbTtcblxuLy8qIEdyaWQgKi8vXG4kZ3V0dGVyOiAyJTtcbiRwb3RhdG9lczogKG9uZSwgdHdvLCB0aHJlZSwgZm91ciwgZml2ZSwgc2l4LCBzZXZlbiwgZWlnaHQsIG5pbmUsIHRlbiwgZWxldmVuLCB0d2VsdmUpO1xuJGNvbnRhaW5lci1tYXgtd2lkdGg6IDEwMjBweDtcblxuLy8qIENvbG9ycyAqLy9cbiRwcmltYXJ5LWNvbG9yOiAgICAgICAgICMzMzM7XG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICAjY2NjO1xuJGJ1dHRvbi1jb2xvcjogICAgICAgICAgIzdhN2E3YTtcbiRidXR0b24taG92ZXItY29sb3I6ICAgICMyYTJhMmE7XG4kYmctY29sb3I6ICAgICAgICAgICAgICAjZWRlZGVkO1xuJHNoYWRvdy1jb2xvcjogICAgICAgICAgI2JiYjtcbiRob3Zlci1jb2xvcjogICAgICAgICAgICM4YzhhOGE7XG4kd2hpdGUtY29sb3I6ICAgICAgICAgICAjZmZmO1xuJGluZm8tY29sb3I6ICAgICAgICAgICAgIzM0OThkYjtcbiRzdWNjZXNzLWNvbG9yOiAgICAgICAgICMyN2FlNjA7XG4kd2FybmluZy1jb2xvcjogICAgICAgICAjZjM5YzEyO1xuJGRhbmdlci1jb2xvcjogICAgICAgICAgI2U3NGMzYztcblxuLy8qIEZvbnRzICovL1xuJGJhc2UtZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4iLCIvLyogTWl4aW5zICovL1xuXG5AbWl4aW4gc2NyZWVuKCR3aWR0aCkge1xuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gcG90YXRvZXMoJGNvdW50OjEsICRvZjpsZW5ndGgoJHBvdGF0b2VzKSwgJGd1dHRlcjogJGd1dHRlcikge1xuXHR3aWR0aDogKCRjb3VudCAvICRvZikgKiAxMDAlIC0gJGd1dHRlciAqIDI7XG59XG5cbkBtaXhpbiBob3ZlcigpIHtcblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGJlZm9yZSgkY29udGVudDpcIiBcIikge1xuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICRjb250ZW50O1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbkBtaXhpbiBhZnRlcigkY29udGVudDpcIlwiKSB7XG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiAkY29udGVudDtcblx0XHRAY29udGVudDtcblx0fVxufVxuIiwiLyogVHlwb2dyYXBoeSAqL1xuXG4qIHtcblx0Zm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuXHRsaW5lLWhlaWdodDogMS41O1xuXHRjb2xvcjogJHByaW1hcnktY29sb3I7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG5cdG1hcmdpbjogNXB4IDA7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmgxIHtcblx0Zm9udC1zaXplOiAyOHB4O1xuXG5cdEBpbmNsdWRlIHNjcmVlbigkbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAzMHB4O1xuXHR9XG59XG5cbmgyIHtcblx0Zm9udC1zaXplOiAxOHB4O1xuXG5cdEBpbmNsdWRlIHNjcmVlbigkbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAyNnB4O1xuXHR9XG59XG5cbmgzIHtcblx0Zm9udC1zaXplOiAxNXB4O1xuXG5cdEBpbmNsdWRlIHNjcmVlbigkbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAyMnB4O1xuXHR9XG59XG5cbmg0IHtcblx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdEBpbmNsdWRlIHNjcmVlbigkbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHR9XG59XG5cbmg1IHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXG5cdEBpbmNsdWRlIHNjcmVlbigkbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHR9XG59XG5cbmg2IHtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuXG5ibG9ja3F1b3RlIHtcblx0bWFyZ2luOiAyOHB4IDAgMjhweCAtMzZweDtcblx0cGFkZGluZzogMCAwIDAgMjhweDtcblx0Ym9yZGVyLWxlZnQ6IDZweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbn1cbiIsIi8qIEdyaWQgKi9cblxuLmNvbnRhaW5lciB7XG5cdHdpZHRoOiA5NiU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcblx0bWFyZ2luOiAwIGF1dG87XG5cblx0QGluY2x1ZGUgYWZ0ZXIoKSB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cbn1cblxuLnJvdyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogMCBhdXRvO1xuXG5cdEBpbmNsdWRlIGFmdGVyKCkge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG5cblx0LnBvdGF0byxcblx0LnBvdGF0b2VzIHtcblx0XHRtYXJnaW46IDhweCAyJTtcblx0XHRtaW4taGVpZ2h0OiAycHg7XG5cdH1cbn1cblxuLnBvdGF0byxcbi5wb3RhdG9lcyB7XG5cdEBpbmNsdWRlIHBvdGF0b2VzKDEyKTtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuQGVhY2ggJGNvdW50IGluICRwb3RhdG9lcyB7XG5cdCRpbmRleDogaW5kZXgoJHBvdGF0b2VzLCAkY291bnQpO1xuXHQuI3skY291bnR9IHtcblx0XHRAaWYgKCRpbmRleCA9PSAxKSB7XG5cdFx0XHQmLnBvdGF0byxcblx0XHRcdCYucG90YXRvZXMge1xuXHRcdFx0XHRAaW5jbHVkZSBwb3RhdG9lcygkaW5kZXgpO1xuXHRcdFx0fVxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0Ji5wb3RhdG9lcyB7XG5cdFx0XHRcdEBpbmNsdWRlIHBvdGF0b2VzKCRpbmRleCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBGb3JtICovXG5cbi5pbnB1dF90ZXh0LFxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRoZWlnaHQ6IDQ2cHg7XG5cdG1hcmdpbjogMCAwIDIwcHggMDtcblx0cGFkZGluZzogMCAxMHB4O1xuXHR3aWR0aDogMTAwJTtcbn1cblxuc2VsZWN0IHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblxuXHQmOjotbXMtZXhwYW5kIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cblxudGV4dGFyZWEge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdG1pbi1oZWlnaHQ6IDE1MHB4O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRsaW5lLWhlaWdodDogMS41O1xufVxuXG5sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdGlucHV0W3R5cGU9XCJyYWRpb1wiXSArICYsXG5cdGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArICYge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufVxuXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuOi1tb3otcGxhY2Vob2xkZXIge1xuXHRjb2xvcjogJHByaW1hcnktY29sb3I7XG59XG5cbjo6LW1vei1wbGFjZWhvbGRlciB7XG5cdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cbiIsIi8qIEJ1dHRvbnMgKi9cblxuLmJ1dHRvbiB7XG5cdHBhZGRpbmc6IDEycHggMThweDtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZS1vdXQ7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGNvbG9yO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblxuXHRAaW5jbHVkZSBzY3JlZW4oJG1lZGl1bSkge1xuXHRcdHBhZGRpbmc6IDE0cHggMjBweDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cblxuXHRAaW5jbHVkZSBob3ZlcigpIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRjb2xvcjogJHdoaXRlLWNvbG9yO1xuXHR9XG5cblx0Ji5mdWxsIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRjb2xvcjogJHdoaXRlLWNvbG9yO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuXG5cdFx0QGluY2x1ZGUgaG92ZXIoKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdH1cblxuXHQmLnByaW1hcnkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiAkaW5mby1jb2xvcjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkaW5mby1jb2xvcjtcblxuXHRcdEBpbmNsdWRlIGhvdmVyKCkge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGluZm8tY29sb3I7XG5cdFx0XHRjb2xvcjogJHdoaXRlLWNvbG9yO1xuXHRcdH1cblxuXHRcdCYuZnVsbCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mby1jb2xvcjtcblx0XHRcdGNvbG9yOiAkd2hpdGUtY29sb3I7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkaW5mby1jb2xvcjtcblxuXHRcdFx0QGluY2x1ZGUgaG92ZXIoKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRjb2xvcjogJGluZm8tY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5zdWNjZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRjb2xvcjogJHN1Y2Nlc3MtY29sb3I7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHN1Y2Nlc3MtY29sb3I7XG5cblx0XHRAaW5jbHVkZSBob3ZlcigpIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzdWNjZXNzLWNvbG9yO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZS1jb2xvcjtcblx0XHR9XG5cblx0XHQmLmZ1bGwge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHN1Y2Nlc3MtY29sb3I7XG5cdFx0XHRjb2xvcjogJHdoaXRlLWNvbG9yO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJHN1Y2Nlc3MtY29sb3I7XG5cblx0XHRcdEBpbmNsdWRlIGhvdmVyKCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Y29sb3I6ICRzdWNjZXNzLWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYud2FybmluZyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6ICR3YXJuaW5nLWNvbG9yO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR3YXJuaW5nLWNvbG9yO1xuXG5cdFx0QGluY2x1ZGUgaG92ZXIoKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybmluZy1jb2xvcjtcblx0XHRcdGNvbG9yOiAkd2hpdGUtY29sb3I7XG5cdFx0fVxuXG5cdFx0Ji5mdWxsIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3YXJuaW5nLWNvbG9yO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZS1jb2xvcjtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICR3YXJuaW5nLWNvbG9yO1xuXG5cdFx0XHRAaW5jbHVkZSBob3ZlcigpIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGNvbG9yOiAkd2FybmluZy1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmRhbmdlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6ICRkYW5nZXItY29sb3I7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGRhbmdlci1jb2xvcjtcblxuXHRcdEBpbmNsdWRlIGhvdmVyKCkge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhbmdlci1jb2xvcjtcblx0XHRcdGNvbG9yOiAkd2hpdGUtY29sb3I7XG5cdFx0fVxuXG5cdFx0Ji5mdWxsIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYW5nZXItY29sb3I7XG5cdFx0XHRjb2xvcjogJHdoaXRlLWNvbG9yO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGRhbmdlci1jb2xvcjtcblxuXHRcdFx0QGluY2x1ZGUgaG92ZXIoKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRjb2xvcjogJGRhbmdlci1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLnNtYWxsIHtcblx0XHRwYWRkaW5nOiAxMHB4IDE2cHg7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9XG5cblx0Ji5sYXJnZSB7XG5cdFx0cGFkZGluZzogMTRweCAyNHB4O1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblxuXHRcdEBpbmNsdWRlIHNjcmVlbigkbWVkaXVtKSB7XG5cdFx0XHRwYWRkaW5nOiAxNnB4IDMwcHg7XG5cdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0fVxuXHR9XG5cblx0Ji5leHBhbmRlZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKiBUYWJsZXMgKi9cblxudGFibGUge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0YmFja2dyb3VuZDogJHdoaXRlLWNvbG9yO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0Ym9yZGVyLXNwYWNpbmc6IDJweDtcbn1cbiIsIi8qIGxpc3RzICovXG5cbi5pbmxpbmUtcG90YXRvIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nOiAwO1xuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdH1cbn1cblxuLmNpcmNsZS1wb3RhdG8ge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcbn1cblxuLnNxdWFyZS1wb3RhdG8ge1xuXHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcbn1cblxuLnJvbWFuLXBvdGF0byB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG59XG5cbi5hbHBoYS1wb3RhdG8ge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuIiwiLyogQ29kZSAqL1xuXG5wcmUsXG5jb2RlLFxua2JkIHtcblx0Zm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbn1cblxuY29kZSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDNweCA2cHg7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbn1cblxucHJlIHtcblx0d2hpdGUtc3BhY2U6IHByZTtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmctY29sb3I7XG5cdHBhZGRpbmc6IDVweCAyMHB4O1xuXHRtYXJnaW46IDVweCAwO1xuXG5cdGNvZGUge1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG59XG5cbmtiZCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0YmFja2dyb3VuZC1jb2xvcjogJGJnLWNvbG9yO1xuXHRmb250LXNpemU6IDEzcHg7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogM3B4IDZweDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAkc2hhZG93LWNvbG9yO1xufVxuIiwiLyogUGFuZWwgKi9cblxuLnBhbmVsIHtcblx0cGFkZGluZzogMTBweCAxNXB4O1xuXHRtYXJnaW46IDVweCAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblxuXHQmLnJvdW5kIHtcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdH1cblxuXHQmLnByaW1hcnkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRpbmZvLWNvbG9yO1xuXHR9XG5cblx0Ji5zdWNjZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc3VjY2Vzcy1jb2xvcjtcblx0fVxuXG5cdCYud2FybmluZyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdhcm5pbmctY29sb3I7XG5cdH1cblxuXHQmLmRhbmdlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhbmdlci1jb2xvcjtcblx0fVxufVxuIiwiLyogTGFiZWwgKi9cblxuLmxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0Zm9udC1zaXplOiA4MCU7XG5cdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0Ym9yZGVyOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cGFkZGluZzogM3B4IDRweDtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXG5cdCYucHJpbWFyeSB7XG5cdFx0Y29sb3I6ICRpbmZvLWNvbG9yO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRpbmZvLWNvbG9yO1xuXHR9XG5cblx0Ji5zdWNjZXNzIHtcblx0XHRjb2xvcjogJHN1Y2Nlc3MtY29sb3I7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHN1Y2Nlc3MtY29sb3I7XG5cdH1cblxuXHQmLndhcm5pbmcge1xuXHRcdGNvbG9yOiAkd2FybmluZy1jb2xvcjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkd2FybmluZy1jb2xvcjtcblx0fVxuXG5cdCYuZGFuZ2VyIHtcblx0XHRjb2xvcjogJGRhbmdlci1jb2xvcjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZGFuZ2VyLWNvbG9yO1xuXHR9XG59XG4iLCIvKiBIZWxwZXJzICovXG5cbi50ZXh0LWNlbnRlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRleHQtcmlnaHQge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnRleHQtbGVmdCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0LWp1c3RpZnkge1xuXHR0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuXG4uZmxvYXQtbGVmdCB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuXG4uZmxvYXQtcmlnaHQge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5mb250LWxpZ2h0IHtcblx0Zm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG5cbi5mb250LW5vcm1hbCB7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5mb250LWJvbGQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmFsbG93LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cblx0Ji14IHtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG5cblx0Ji15IHtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG59XG5cbi5oaWRlLW92ZXJmbG93LFxuLmZvcmJpZC1vdmVyZmxvdyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0Ji14IHtcblx0XHRvdmVyZmxvdy15OiBoaWRkZW47XG5cdH1cblxuXHQmLXkge1xuXHRcdG92ZXJmbG93LXk6IGhpZGRlbjtcblx0fVxufVxuIiwiLypcbiogQXV0aG9yOiBFZHZpbnMgQW50b25vdnNcbiogTGljZW5zZTogTUlUIExpY2Vuc2VcbiogV2Vic2l0ZTogaHR0cDovL3BvdGF0b2Nzcy5jb20vXG4qL1xuLyogSW1wb3J0IEdvb2dsZSBGb250IFwiUm9ib3RvXCIgKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsMzAwaSw0MDAsNDAwaSw3MDAsNzAwaVwiKTtcbi8qIEdsb2JhbCBzdHlsZXMgKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIElFIDgrIHRvIHVzZSBib3gtc2l6aW5nLCA8IElFIDkgc3VwcG9ydCBpcyBwcmV0dHkgbXVjaCB2b2lkIGF0IHRoaXMgcG9pbnQgKi9cbn1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuaHIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbjogMzBweCBhdXRvO1xuICBib3JkZXI6IHNvbGlkICNjY2M7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdHJhbnNpdGlvbjogLjJzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBjb2xvcjtcbiAgY29sb3I6ICMzMzM7XG59XG5cbmE6aG92ZXIsIGE6Zm9jdXMge1xuICBjb2xvcjogIzhjOGE4YTtcbn1cblxuLyogVHlwb2dyYXBoeSAqL1xuKiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyOHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbn1cblxuaDIge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgfVxufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMyB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICB9XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbn1cblxuaDUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMjhweCAwIDI4cHggLTM2cHg7XG4gIHBhZGRpbmc6IDAgMCAwIDI4cHg7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgIzMzMztcbn1cblxuLyogR3JpZCAqL1xuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NiU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDIwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY29udGFpbmVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNsZWFyOiBib3RoO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucm93OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNsZWFyOiBib3RoO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnJvdyAucG90YXRvLFxuLnJvdyAucG90YXRvZXMge1xuICBtYXJnaW46IDhweCAyJTtcbiAgbWluLWhlaWdodDogMnB4O1xufVxuXG4ucG90YXRvLFxuLnBvdGF0b2VzIHtcbiAgd2lkdGg6IDk2JTtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLm9uZS5wb3RhdG8sIC5vbmUucG90YXRvZXMge1xuICB3aWR0aDogNC4zMzMzMzMzMyU7XG59XG5cbi50d28ucG90YXRvZXMge1xuICB3aWR0aDogMTIuNjY2NjY2NjclO1xufVxuXG4udGhyZWUucG90YXRvZXMge1xuICB3aWR0aDogMjElO1xufVxuXG4uZm91ci5wb3RhdG9lcyB7XG4gIHdpZHRoOiAyOS4zMzMzMzMzMyU7XG59XG5cbi5maXZlLnBvdGF0b2VzIHtcbiAgd2lkdGg6IDM3LjY2NjY2NjY3JTtcbn1cblxuLnNpeC5wb3RhdG9lcyB7XG4gIHdpZHRoOiA0NiU7XG59XG5cbi5zZXZlbi5wb3RhdG9lcyB7XG4gIHdpZHRoOiA1NC4zMzMzMzMzMyU7XG59XG5cbi5laWdodC5wb3RhdG9lcyB7XG4gIHdpZHRoOiA2Mi42NjY2NjY2NyU7XG59XG5cbi5uaW5lLnBvdGF0b2VzIHtcbiAgd2lkdGg6IDcxJTtcbn1cblxuLnRlbi5wb3RhdG9lcyB7XG4gIHdpZHRoOiA3OS4zMzMzMzMzMyU7XG59XG5cbi5lbGV2ZW4ucG90YXRvZXMge1xuICB3aWR0aDogODcuNjY2NjY2NjclO1xufVxuXG4udHdlbHZlLnBvdGF0b2VzIHtcbiAgd2lkdGg6IDk2JTtcbn1cblxuLyogRm9ybSAqL1xuLmlucHV0X3RleHQsXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJkYXRlXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwiY29sb3JcIl0sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiA0NnB4O1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbnRleHRhcmVhIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbjo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG46LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5idXR0b24ge1xuICBwYWRkaW5nOiAxMnB4IDE4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogLjJzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5idXR0b24ge1xuICAgIHBhZGRpbmc6IDE0cHggMjBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYnV0dG9uLmZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcbn1cblxuLmJ1dHRvbi5mdWxsOmhvdmVyLCAuYnV0dG9uLmZ1bGw6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5idXR0b24ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzM0OThkYjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM0OThkYjtcbn1cblxuLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmJ1dHRvbi5wcmltYXJ5LmZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM0OThkYjtcbn1cblxuLmJ1dHRvbi5wcmltYXJ5LmZ1bGw6aG92ZXIsIC5idXR0b24ucHJpbWFyeS5mdWxsOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzQ5OGRiO1xufVxuXG4uYnV0dG9uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyN2FlNjA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyN2FlNjA7XG59XG5cbi5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3YWU2MDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5idXR0b24uc3VjY2Vzcy5mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3YWU2MDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyN2FlNjA7XG59XG5cbi5idXR0b24uc3VjY2Vzcy5mdWxsOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3MuZnVsbDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzI3YWU2MDtcbn1cblxuLmJ1dHRvbi53YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjM5YzEyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjM5YzEyO1xufVxuXG4uYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzljMTI7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYnV0dG9uLndhcm5pbmcuZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzljMTI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjM5YzEyO1xufVxuXG4uYnV0dG9uLndhcm5pbmcuZnVsbDpob3ZlciwgLmJ1dHRvbi53YXJuaW5nLmZ1bGw6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmMzljMTI7XG59XG5cbi5idXR0b24uZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTc0YzNjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTc0YzNjO1xufVxuXG4uYnV0dG9uLmRhbmdlcjpob3ZlciwgLmJ1dHRvbi5kYW5nZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc0YzNjO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmJ1dHRvbi5kYW5nZXIuZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNzRjM2M7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTc0YzNjO1xufVxuXG4uYnV0dG9uLmRhbmdlci5mdWxsOmhvdmVyLCAuYnV0dG9uLmRhbmdlci5mdWxsOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTc0YzNjO1xufVxuXG4uYnV0dG9uLnNtYWxsIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5idXR0b24ubGFyZ2Uge1xuICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYnV0dG9uLmxhcmdlIHtcbiAgICBwYWRkaW5nOiAxNnB4IDMwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICB9XG59XG5cbi5idXR0b24uZXhwYW5kZWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKiBUYWJsZXMgKi9cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBib3JkZXItc3BhY2luZzogMnB4O1xufVxuXG4vKiBsaXN0cyAqL1xuLmlubGluZS1wb3RhdG8ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5pbmxpbmUtcG90YXRvIGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uY2lyY2xlLXBvdGF0byB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xufVxuXG4uc3F1YXJlLXBvdGF0byB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xufVxuXG4ucm9tYW4tcG90YXRvIHtcbiAgbGlzdC1zdHlsZS10eXBlOiB1cHBlci1yb21hbjtcbn1cblxuLmFscGhhLXBvdGF0byB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGE7XG59XG5cbi8qIENvZGUgKi9cbnByZSxcbmNvZGUsXG5rYmQge1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xufVxuXG5jb2RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbn1cblxucHJlIHtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xuICBwYWRkaW5nOiA1cHggMjBweDtcbiAgbWFyZ2luOiA1cHggMDtcbn1cblxucHJlIGNvZGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmtiZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgI2JiYjtcbn1cblxuLyogUGFuZWwgKi9cbi5wYW5lbCB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luOiA1cHggMDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcbn1cblxuLnBhbmVsLnJvdW5kIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ucGFuZWwucHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7XG59XG5cbi5wYW5lbC5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3YWU2MDtcbn1cblxuLnBhbmVsLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM5YzEyO1xufVxuXG4ucGFuZWwuZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3NGMzYztcbn1cblxuLyogTGFiZWwgKi9cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5sYWJlbC5wcmltYXJ5IHtcbiAgY29sb3I6ICMzNDk4ZGI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7XG59XG5cbi5sYWJlbC5zdWNjZXNzIHtcbiAgY29sb3I6ICMyN2FlNjA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyN2FlNjA7XG59XG5cbi5sYWJlbC53YXJuaW5nIHtcbiAgY29sb3I6ICNmMzljMTI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMzljMTI7XG59XG5cbi5sYWJlbC5kYW5nZXIge1xuICBjb2xvcjogI2U3NGMzYztcbiAgYm9yZGVyOiAxcHggc29saWQgI2U3NGMzYztcbn1cblxuLyogSGVscGVycyAqL1xuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG5cbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmZvbnQtbGlnaHQge1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuLmZvbnQtbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uYWxsb3ctb3ZlcmZsb3cge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmFsbG93LW92ZXJmbG93LXgge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uYWxsb3ctb3ZlcmZsb3cteSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5oaWRlLW92ZXJmbG93LFxuLmZvcmJpZC1vdmVyZmxvdyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5oaWRlLW92ZXJmbG93LXgsXG4uZm9yYmlkLW92ZXJmbG93LXgge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi5oaWRlLW92ZXJmbG93LXksXG4uZm9yYmlkLW92ZXJmbG93LXkge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbiJdfQ== */ 677 | -------------------------------------------------------------------------------- /stylesheets/css/potato.min.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i);*,::after,::before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body,html{height:100%;width:100%;font-size:100%;margin:0;padding:0}hr{position:relative;width:60%;margin:30px auto;border:solid #ccc;border-width:1px 0 0;clear:both}a{text-decoration:underline;-webkit-transition:.2s ease-out;-o-transition:.2s ease-out;-moz-transition:.2s ease-out;transition:.2s ease-out;-webkit-transition-property:background-color,color;-o-transition-property:background-color,color;-moz-transition-property:background-color,color;transition-property:background-color,color;color:#333}a:focus,a:hover{color:#8c8a8a}*{font-family:"Roboto","Helvetica Neue","Helvetica",Arial,sans-serif;font-weight:lighter;line-height:1.5;color:#333}h1,h2,h3,h4,h5,h6{margin:5px 0;font-weight:400;font-style:normal;line-height:1.5;text-transform:none;text-rendering:optimizeLegibility}h1{font-size:28px}h2{font-size:18px}h3{font-size:15px}h4{font-size:14px}h5,h6{font-size:16px}blockquote{margin:28px 0 28px -36px;padding:0 0 0 28px;border-left:6px solid #333}.container,.row{position:relative;margin:0 auto}.container{max-width:1020px;width:96%}.container::after,.row::after{content:"";clear:both;display:table}.row{width:100%}.row .potato,.row .potatoes{margin:8px 2%;min-height:2px}.potato,.potatoes{width:96%;float:left!important}.one.potato,.one.potatoes{width:4.33333333%}.two.potatoes{width:12.66666667%}.three.potatoes{width:21%}.four.potatoes{width:29.33333333%}.five.potatoes{width:37.66666667%}.six.potatoes{width:46%}.seven.potatoes{width:54.33333333%}.eight.potatoes{width:62.66666667%}.nine.potatoes{width:71%}.ten.potatoes{width:79.33333333%}.eleven.potatoes{width:87.66666667%}.twelve.potatoes{width:96%}.input_text,input[type=color],input[type=date],input[type=datetime],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],input[type=url],select{font-size:16px;line-height:1;padding:0 10px}.input_text,input[type=color],input[type=date],input[type=datetime],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{font-family:"Roboto","Helvetica Neue","Helvetica",Arial,sans-serif;background-color:#fff;border:1px solid #333;color:#333;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;display:block;height:46px;margin:0 0 20px;width:100%}select{-webkit-appearance:none;-moz-appearance:none;cursor:pointer}select::-ms-expand{display:none}textarea{font-size:16px;min-height:150px;padding:10px;line-height:1.5}label{display:block}input[type=checkbox]+label,input[type=radio]+label{display:inline-block}::-webkit-input-placeholder{color:#333}:-moz-placeholder,::-moz-placeholder{color:#333}:-ms-input-placeholder{color:#333}.button{padding:12px 18px;font-size:14px;display:inline-block;text-align:center;line-height:1;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin:0 0 20px;position:relative;white-space:nowrap;vertical-align:middle;text-decoration:none;-webkit-transition:.2s ease-out;-o-transition:.2s ease-out;-moz-transition:.2s ease-out;transition:.2s ease-out;-webkit-transition-property:background-color,color;-o-transition-property:background-color,color;-moz-transition-property:background-color,color;transition-property:background-color,color;background-color:transparent;color:#333;border:1px solid #333}.button:focus,.button:hover{background-color:#333;color:#fff}.button.full{background-color:#333;color:#fff;border:1px solid #333}.button.full:focus,.button.full:hover{background-color:transparent;color:#333}.button.primary{background-color:transparent;color:#3498db;border:1px solid #3498db}.button.primary:focus,.button.primary:hover{background-color:#3498db;color:#fff}.button.primary.full{background-color:#3498db;color:#fff;border:1px solid #3498db}.button.primary.full:focus,.button.primary.full:hover{background-color:transparent;color:#3498db}.button.success{background-color:transparent;color:#27ae60;border:1px solid #27ae60}.button.success:focus,.button.success:hover{background-color:#27ae60;color:#fff}.button.success.full{background-color:#27ae60;color:#fff;border:1px solid #27ae60}.button.success.full:focus,.button.success.full:hover{background-color:transparent;color:#27ae60}.button.warning{background-color:transparent;color:#f39c12;border:1px solid #f39c12}.button.warning:focus,.button.warning:hover{background-color:#f39c12;color:#fff}.button.warning.full{background-color:#f39c12;color:#fff;border:1px solid #f39c12}.button.warning.full:focus,.button.warning.full:hover{background-color:transparent;color:#f39c12}.button.danger{background-color:transparent;color:#e74c3c;border:1px solid #e74c3c}.button.danger:focus,.button.danger:hover{background-color:#e74c3c;color:#fff}.button.danger.full{background-color:#e74c3c;color:#fff;border:1px solid #e74c3c}.button.danger.full:focus,.button.danger.full:hover{background-color:transparent;color:#e74c3c}.button.small{padding:10px 16px;font-size:12px}.button.large{padding:14px 24px;font-size:18px}.button.expanded{display:block;max-width:100%}table{width:100%;text-align:left;background:#fff;border:1px solid #ccc;margin-bottom:20px;display:table;border-collapse:separate;border-spacing:2px}.inline-potato{display:inline;padding:0}.inline-potato li{display:inline}.circle-potato{list-style-type:circle}.square-potato{list-style-type:square}.roman-potato{list-style-type:upper-roman}.alpha-potato{list-style-type:lower-alpha}code,kbd,pre{font-family:Consolas,"Liberation Mono","Courier New",monospace}code{font-size:13px;margin:0;padding:3px 6px;border:1px solid #ccc}.panel,pre{margin:5px 0}code,kbd,pre{background-color:#ededed;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}pre{white-space:pre;padding:5px 20px}pre code{font-size:14px;padding:0;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0}kbd{display:inline-block;font-size:13px;margin:0;padding:3px 6px;border:1px solid #ccc;vertical-align:middle;-webkit-box-shadow:inset 0 -1px 0 #bbb;-moz-box-shadow:inset 0 -1px 0 #bbb;box-shadow:inset 0 -1px 0 #bbb}.panel{padding:10px 15px;border:1px solid #333}.label,.panel.round{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.panel.primary{background-color:#3498db}.panel.success{background-color:#27ae60}.panel.warning{background-color:#f39c12}.panel.danger{background-color:#e74c3c}.label{display:inline;line-height:1;font-size:80%;color:#333;border:1px solid #333;white-space:nowrap;padding:3px 4px}.label.primary{color:#3498db;border:1px solid #3498db}.label.success{color:#27ae60;border:1px solid #27ae60}.label.warning{color:#f39c12;border:1px solid #f39c12}.label.danger{color:#e74c3c;border:1px solid #e74c3c}.label,.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-justify{text-align:justify}.float-left{float:left}.float-right{float:right}.font-light{font-weight:lighter}.font-normal{font-weight:400}.font-bold{font-weight:700}.allow-overflow{overflow:auto}.allow-overflow-x,.allow-overflow-y{overflow-y:auto}.forbid-overflow,.hide-overflow{overflow:hidden}.forbid-overflow-x,.forbid-overflow-y,.hide-overflow-x,.hide-overflow-y{overflow-y:hidden}@media screen and (min-width:40em){h1{font-size:30px}h2{font-size:26px}h3{font-size:22px}h4{font-size:15px}h5{font-size:14px}.button{padding:14px 20px;font-size:16px}.button.large{padding:16px 30px;font-size:24px}} -------------------------------------------------------------------------------- /stylesheets/less/core/_mixins.less: -------------------------------------------------------------------------------- 1 | //* Mixins *// 2 | 3 | .screen(@width, @rules) { 4 | @media screen and (min-width: @width) { 5 | @rules(); 6 | } 7 | } 8 | 9 | .potatoes(@count: 1, @of: @potatoes, @gutter: @gutter) { 10 | width: (@count / @of) * 100% - @gutter * 2; 11 | } 12 | 13 | .hover (@rules) { 14 | &:hover, 15 | &:focus { 16 | @rules(); 17 | } 18 | } 19 | 20 | .before(@rules, @content: "") { 21 | &::before { 22 | content: @content; 23 | @rules(); 24 | } 25 | } 26 | 27 | .after(@rules, @content: "") { 28 | &::after { 29 | content: @content; 30 | @rules(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /stylesheets/less/core/_variables.less: -------------------------------------------------------------------------------- 1 | //* Variables *// 2 | 3 | //* Breakpoints *// 4 | @small: 0; 5 | @medium: 40em; 6 | @large: 64em; 7 | 8 | //* Grid *// 9 | @gutter: 2%; 10 | @potatoes: 12; 11 | @container-max-width: 1020px; 12 | 13 | //* Colors *// 14 | @primary-color: #333; 15 | @border-color: #ccc; 16 | @button-color: #7a7a7a; 17 | @button-hover-color: #2a2a2a; 18 | @bg-color: #ededed; 19 | @shadow-color: #bbb; 20 | @hover-color: #8c8a8a; 21 | @white-color: #fff; 22 | @info-color: #3498db; 23 | @success-color: #27ae60; 24 | @warning-color: #f39c12; 25 | @danger-color: #e74c3c; 26 | 27 | //* Fonts *// 28 | @base-font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 29 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_button.less: -------------------------------------------------------------------------------- 1 | /* Buttons */ 2 | 3 | .button { 4 | padding: 12px 18px; 5 | font-size: 14px; 6 | display: inline-block; 7 | text-align: center; 8 | line-height: 1; 9 | cursor: pointer; 10 | border-radius: 4px; 11 | margin: 0 0 20px 0; 12 | position: relative; 13 | white-space: nowrap; 14 | vertical-align: middle; 15 | text-decoration: none; 16 | transition: .2s ease-out; 17 | transition-property: background-color, color; 18 | background-color: transparent; 19 | color: @primary-color; 20 | border: 1px solid @primary-color; 21 | 22 | .screen(@medium, { padding: 14px 20px; font-size: 16px; }); 23 | 24 | .hover({ background-color: @primary-color; color: @white-color; }); 25 | 26 | &.full { 27 | background-color: @primary-color; 28 | color: @white-color; 29 | border: 1px solid @primary-color; 30 | 31 | .hover({ background-color: transparent; color: @primary-color; }); 32 | } 33 | 34 | &.primary { 35 | background-color: transparent; 36 | color: @info-color; 37 | border: 1px solid @info-color; 38 | 39 | .hover({ background-color: @info-color; color: @white-color; }); 40 | 41 | &.full { 42 | background-color: @info-color; 43 | color: @white-color; 44 | border: 1px solid @info-color; 45 | 46 | .hover({ background-color: transparent; color: @info-color; }); 47 | } 48 | } 49 | 50 | &.success { 51 | background-color: transparent; 52 | color: @success-color; 53 | border: 1px solid @success-color; 54 | 55 | .hover({ background-color: @success-color; color: @white-color; }); 56 | 57 | &.full { 58 | background-color: @success-color; 59 | color: @white-color; 60 | border: 1px solid @success-color; 61 | 62 | .hover({ background-color: transparent; color: @success-color; }); 63 | } 64 | } 65 | 66 | &.warning { 67 | background-color: transparent; 68 | color: @warning-color; 69 | border: 1px solid @warning-color; 70 | 71 | .hover({ background-color: @warning-color; color: @white-color; }); 72 | 73 | &.full { 74 | background-color: @warning-color; 75 | color: @white-color; 76 | border: 1px solid @warning-color; 77 | 78 | .hover({ background-color: transparent; color: @warning-color; }); 79 | } 80 | } 81 | 82 | &.danger { 83 | background-color: transparent; 84 | color: @danger-color; 85 | border: 1px solid @danger-color; 86 | 87 | .hover({ background-color: @danger-color; color: @white-color; }); 88 | 89 | &.full { 90 | background-color: @danger-color; 91 | color: @white-color; 92 | border: 1px solid @danger-color; 93 | 94 | .hover({ background-color: transparent; color: @danger-color; }); 95 | } 96 | } 97 | 98 | &.small { 99 | padding: 10px 16px; 100 | font-size: 12px; 101 | } 102 | 103 | &.large { 104 | padding: 14px 24px; 105 | font-size: 18px; 106 | 107 | .screen(@medium, { padding: 16px 30px; font-size: 24px; }); 108 | } 109 | 110 | &.expanded { 111 | display: block; 112 | max-width: 100%; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_code.less: -------------------------------------------------------------------------------- 1 | /* Code */ 2 | 3 | pre, 4 | code, 5 | kbd { 6 | font-family: Consolas, "Liberation Mono", "Courier New", monospace; 7 | } 8 | 9 | code { 10 | background-color: @bg-color; 11 | font-size: 13px; 12 | margin: 0; 13 | padding: 3px 6px; 14 | border-radius: 3px; 15 | border: 1px solid @border-color; 16 | } 17 | 18 | pre { 19 | white-space: pre; 20 | border-radius: 3px; 21 | background-color: @bg-color; 22 | padding: 5px 20px; 23 | margin: 5px 0; 24 | 25 | code { 26 | font-size: 14px; 27 | padding: 0; 28 | background-color: transparent; 29 | border-radius: 0; 30 | border: 0; 31 | } 32 | } 33 | 34 | kbd { 35 | display: inline-block; 36 | background-color: @bg-color; 37 | font-size: 13px; 38 | margin: 0; 39 | padding: 3px 6px; 40 | border-radius: 3px; 41 | border: 1px solid @border-color; 42 | vertical-align: middle; 43 | box-shadow: inset 0 -1px 0 @shadow-color; 44 | } 45 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_form.less: -------------------------------------------------------------------------------- 1 | /* Form */ 2 | 3 | .input_text, 4 | input[type="text"], 5 | input[type="password"], 6 | input[type="date"], 7 | input[type="datetime"], 8 | input[type="email"], 9 | input[type="number"], 10 | input[type="tel"], 11 | input[type="time"], 12 | input[type="url"], 13 | input[type="color"], 14 | select, 15 | textarea { 16 | font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 17 | background-color: @white-color; 18 | border: 1px solid @primary-color; 19 | color: @primary-color; 20 | border-radius: 4px; 21 | display: block; 22 | font-size: 16px; 23 | line-height: 1; 24 | height: 46px; 25 | margin: 0 0 20px 0; 26 | padding: 0 10px; 27 | width: 100%; 28 | } 29 | 30 | select { 31 | -webkit-appearance: none; 32 | -moz-appearance: none; 33 | cursor: pointer; 34 | 35 | &::-ms-expand { 36 | display: none; 37 | } 38 | } 39 | 40 | 41 | textarea { 42 | font-size: 16px; 43 | min-height: 150px; 44 | padding: 10px; 45 | line-height: 1.5; 46 | } 47 | 48 | label { 49 | display: block; 50 | 51 | input[type="radio"] + &, 52 | input[type="checkbox"] + & { 53 | display: inline-block; 54 | } 55 | } 56 | 57 | 58 | ::-webkit-input-placeholder { 59 | color: @primary-color; 60 | } 61 | 62 | :-moz-placeholder { 63 | color: @primary-color; 64 | } 65 | 66 | ::-moz-placeholder { 67 | color: @primary-color; 68 | } 69 | 70 | :-ms-input-placeholder { 71 | color: @primary-color; 72 | } 73 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_global.less: -------------------------------------------------------------------------------- 1 | /* Import Google Font "Roboto" */ 2 | @import url("https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i"); 3 | 4 | /* Global styles */ 5 | 6 | *, 7 | *::before, 8 | *::after { 9 | box-sizing: border-box; 10 | /* IE 8+ to use box-sizing, < IE 9 support is pretty much void at this point */ 11 | } 12 | 13 | html, 14 | body { 15 | height: 100%; 16 | width: 100%; 17 | font-size: 100%; 18 | margin: 0; 19 | padding: 0; 20 | } 21 | 22 | hr { 23 | position: relative; 24 | width: 60%; 25 | margin: 30px auto; 26 | border: solid @border-color; 27 | border-width: 1px 0 0; 28 | clear: both; 29 | } 30 | 31 | a { 32 | text-decoration: underline; 33 | transition: .2s ease-out; 34 | transition-property: background-color, color; 35 | color: @primary-color; 36 | 37 | .hover({ color: @hover-color; }); 38 | } 39 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_grid.less: -------------------------------------------------------------------------------- 1 | /* Grid */ 2 | 3 | .container { 4 | width: 96%; 5 | position: relative; 6 | max-width: @container-max-width; 7 | margin: 0 auto; 8 | 9 | .after({ clear: both; display: table; }); 10 | } 11 | 12 | .row { 13 | position: relative; 14 | width: 100%; 15 | margin: 0 auto; 16 | 17 | .after({ clear: both; display: table; }); 18 | 19 | .potato, 20 | .potatoes { 21 | margin: 8px 2%; 22 | min-height: 2px; 23 | } 24 | } 25 | 26 | .potato, 27 | .potatoes { 28 | .potatoes(12); 29 | float: left !important; 30 | } 31 | 32 | .one { 33 | &.potato, 34 | &.potatoes { 35 | .potatoes(1); 36 | } 37 | } 38 | 39 | .two { 40 | &.potatoes { 41 | .potatoes(2); 42 | } 43 | 44 | } 45 | 46 | .three { 47 | &.potatoes { 48 | .potatoes(3); 49 | } 50 | 51 | } 52 | 53 | .four { 54 | &.potatoes { 55 | .potatoes(4); 56 | } 57 | 58 | } 59 | 60 | .five { 61 | &.potatoes { 62 | .potatoes(5); 63 | } 64 | 65 | } 66 | 67 | .six { 68 | &.potatoes { 69 | .potatoes(6); 70 | } 71 | 72 | } 73 | 74 | .seven { 75 | &.potatoes { 76 | .potatoes(7); 77 | } 78 | 79 | } 80 | 81 | .eight { 82 | &.potatoes { 83 | .potatoes(8); 84 | } 85 | 86 | } 87 | 88 | .nine { 89 | &.potatoes { 90 | .potatoes(9); 91 | } 92 | 93 | } 94 | 95 | .ten { 96 | &.potatoes { 97 | .potatoes(10); 98 | } 99 | 100 | } 101 | 102 | .eleven { 103 | &.potatoes { 104 | .potatoes(11); 105 | } 106 | 107 | } 108 | 109 | .twelve { 110 | &.potatoes { 111 | .potatoes(12); 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_helpers.less: -------------------------------------------------------------------------------- 1 | /* Helpers */ 2 | 3 | .text-center { 4 | text-align: center; 5 | } 6 | 7 | .text-right { 8 | text-align: right; 9 | } 10 | 11 | .text-left { 12 | text-align: left; 13 | } 14 | 15 | .text-justify { 16 | text-align: justify; 17 | } 18 | 19 | .float-left { 20 | float: left; 21 | } 22 | 23 | .float-right { 24 | float: right; 25 | } 26 | 27 | .font-light { 28 | font-weight: lighter; 29 | } 30 | 31 | .font-normal { 32 | font-weight: normal; 33 | } 34 | 35 | .font-bold { 36 | font-weight: bold; 37 | } 38 | 39 | .allow-overflow { 40 | overflow: auto; 41 | 42 | &-x { 43 | overflow-y: auto; 44 | } 45 | 46 | &-y { 47 | overflow-y: auto; 48 | } 49 | } 50 | 51 | .hide-overflow, 52 | .forbid-overflow { 53 | overflow: hidden; 54 | 55 | &-x { 56 | overflow-y: hidden; 57 | } 58 | 59 | &-y { 60 | overflow-y: hidden; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_label.less: -------------------------------------------------------------------------------- 1 | /* Label */ 2 | 3 | .label { 4 | display: inline; 5 | line-height: 1; 6 | font-size: 80%; 7 | color: @primary-color; 8 | border: 1px solid @primary-color; 9 | text-align: center; 10 | white-space: nowrap; 11 | padding: 3px 4px; 12 | border-radius: 4px; 13 | 14 | &.primary { 15 | color: @info-color; 16 | border: 1px solid @info-color; 17 | } 18 | 19 | &.success { 20 | color: @success-color; 21 | border: 1px solid @success-color; 22 | } 23 | 24 | &.warning { 25 | color: @warning-color; 26 | border: 1px solid @warning-color; 27 | } 28 | 29 | &.danger { 30 | color: @danger-color; 31 | border: 1px solid @danger-color; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_list.less: -------------------------------------------------------------------------------- 1 | /* lists */ 2 | 3 | .inline-potato { 4 | display: inline; 5 | padding: 0; 6 | 7 | li { 8 | display: inline; 9 | } 10 | } 11 | 12 | .circle-potato { 13 | list-style-type: circle; 14 | } 15 | 16 | .square-potato { 17 | list-style-type: square; 18 | } 19 | 20 | .roman-potato { 21 | list-style-type: upper-roman; 22 | } 23 | 24 | .alpha-potato { 25 | list-style-type: lower-alpha; 26 | } 27 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_modal.less: -------------------------------------------------------------------------------- 1 | .modal { 2 | position: fixed; 3 | display: block; 4 | top: 0; 5 | left: 0; 6 | right: 0; 7 | bottom: 0; 8 | z-index: 1000; 9 | overflow-y: auto; 10 | overflow-x: hidden; 11 | background: rgba(0, 0, 0, 0.5); 12 | opacity: 0; 13 | visibility: hidden; 14 | transition: opacity .15s linear; 15 | 16 | &.open { 17 | opacity: 1; 18 | visibility: visible; 19 | } 20 | 21 | .modal-dialog { 22 | position: relative; 23 | margin: 10px; 24 | transform: translateY(-25%); 25 | max-width: 500px; 26 | transition: transform .3s ease-out; 27 | 28 | .screen(@medium, { margin: 30px auto; max-width: 500px; }); 29 | 30 | .modal.open & { 31 | transform: translateY(0%); 32 | } 33 | 34 | .modal.small & { 35 | .screen(@medium, { max-width: 300px; }); 36 | } 37 | 38 | .modal.large & { 39 | .screen(@large, { max-width: 800px; }); 40 | } 41 | } 42 | 43 | .modal-content { 44 | position: relative; 45 | width: 100%; 46 | height: 100%; 47 | background-color: @white-color; 48 | border: 1px solid @border-color; 49 | border-radius: 5px; 50 | } 51 | 52 | .close-button { 53 | position: absolute; 54 | right: 15px; 55 | top: 10px; 56 | background-color: transparent; 57 | font-size: 24px; 58 | font-weight: bold; 59 | color: @button-color; 60 | border: none; 61 | cursor: pointer; 62 | 63 | .hover({ color: @button-hover-color; }); 64 | } 65 | 66 | .modal-header, 67 | .modal-body, 68 | .modal-footer { 69 | position: relative; 70 | padding: 15px; 71 | 72 | & > * { 73 | margin: 0; 74 | } 75 | } 76 | 77 | .modal-header { 78 | & + .modal-body { 79 | .after({ display: block; position: absolute; top: 0; left: 0; height: 1px; width: 100%; background-color: @bg-color; }); 80 | } 81 | } 82 | 83 | .modal-body { 84 | & + .modal-footer { 85 | .after({ display: block; position: absolute; top: 0; left: 0; height: 1px; width: 100%; background-color: @bg-color; }); 86 | } 87 | } 88 | 89 | .modal-footer { 90 | display: flex; 91 | justify-content: flex-end; 92 | 93 | .button { 94 | margin-right: 5px; 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_panel.less: -------------------------------------------------------------------------------- 1 | /* Panel */ 2 | 3 | .panel { 4 | padding: 10px 15px; 5 | margin: 5px 0; 6 | border: 1px solid @primary-color; 7 | 8 | &.round { 9 | border-radius: 4px; 10 | } 11 | 12 | &.primary { 13 | background-color: @info-color; 14 | } 15 | 16 | &.success { 17 | background-color: @success-color; 18 | } 19 | 20 | &.warning { 21 | background-color: @warning-color; 22 | } 23 | 24 | &.danger { 25 | background-color: @danger-color; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_table.less: -------------------------------------------------------------------------------- 1 | /* Tables */ 2 | 3 | table { 4 | width: 100%; 5 | text-align: left; 6 | background: @white-color; 7 | border: 1px solid @border-color; 8 | margin-bottom: 20px; 9 | display: table; 10 | border-collapse: separate; 11 | border-spacing: 2px; 12 | } 13 | -------------------------------------------------------------------------------- /stylesheets/less/modules/_typography.less: -------------------------------------------------------------------------------- 1 | /* Typography */ 2 | 3 | * { 4 | font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 5 | font-weight: lighter; 6 | line-height: 1.5; 7 | color: @primary-color; 8 | } 9 | 10 | h1, 11 | h2, 12 | h3, 13 | h4, 14 | h5, 15 | h6 { 16 | margin: 5px 0; 17 | font-weight: normal; 18 | font-style: normal; 19 | line-height: 1.5; 20 | text-transform: none; 21 | text-rendering: optimizeLegibility; 22 | } 23 | 24 | h1 { 25 | font-size: 28px; 26 | 27 | .screen(@medium, { font-size: 30px; }); 28 | } 29 | 30 | h2 { 31 | font-size: 18px; 32 | 33 | .screen(@medium, { font-size: 26px; }); 34 | } 35 | 36 | h3 { 37 | font-size: 15px; 38 | 39 | .screen(@medium, { font-size: 22px; }); 40 | } 41 | 42 | h4 { 43 | font-size: 14px; 44 | 45 | .screen(@medium, { font-size: 15px; }); 46 | } 47 | 48 | h5 { 49 | font-size: 16px; 50 | 51 | .screen(@medium, { font-size: 14px; }); 52 | } 53 | 54 | h6 { 55 | font-size: 16px; 56 | } 57 | 58 | blockquote { 59 | margin: 28px 0 28px -36px; 60 | padding: 0 0 0 28px; 61 | border-left: 6px solid @primary-color; 62 | } 63 | -------------------------------------------------------------------------------- /stylesheets/less/potato.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Edvins Antonovs 3 | * License: MIT License 4 | * Website: http://potatocss.com/ 5 | */ 6 | 7 | // Import core 8 | @import (reference) "core/_variables"; 9 | @import (reference) "core/_mixins"; 10 | 11 | // Import modules 12 | @import "modules/_global"; 13 | @import "modules/_typography"; 14 | @import "modules/_grid"; 15 | @import "modules/_form"; 16 | @import "modules/_button"; 17 | @import "modules/_table"; 18 | @import "modules/_list"; 19 | @import "modules/_code"; 20 | @import "modules/_panel"; 21 | @import "modules/_label"; 22 | @import "modules/_helpers"; 23 | -------------------------------------------------------------------------------- /stylesheets/sass/core/_mixins.scss: -------------------------------------------------------------------------------- 1 | //* Mixins *// 2 | 3 | @mixin screen($width) { 4 | @media screen and (min-width: $width) { 5 | @content; 6 | } 7 | } 8 | 9 | @mixin potatoes($count:1, $of:length($potatoes), $gutter: $gutter) { 10 | width: ($count / $of) * 100% - $gutter * 2; 11 | } 12 | 13 | @mixin hover() { 14 | &:hover, 15 | &:focus { 16 | @content; 17 | } 18 | } 19 | 20 | @mixin before($content:" ") { 21 | &::before { 22 | content: $content; 23 | @content; 24 | } 25 | } 26 | 27 | @mixin after($content:"") { 28 | &::after { 29 | content: $content; 30 | @content; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /stylesheets/sass/core/_variables.scss: -------------------------------------------------------------------------------- 1 | //* Variables *// 2 | 3 | //* Breakpoints *// 4 | $small: 0; 5 | $medium: 40em; 6 | $large: 64em; 7 | 8 | //* Grid *// 9 | $gutter: 2%; 10 | $potatoes: (one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve); 11 | $container-max-width: 1020px; 12 | 13 | //* Colors *// 14 | $primary-color: #333; 15 | $border-color: #ccc; 16 | $button-color: #7a7a7a; 17 | $button-hover-color: #2a2a2a; 18 | $bg-color: #ededed; 19 | $shadow-color: #bbb; 20 | $hover-color: #8c8a8a; 21 | $white-color: #fff; 22 | $info-color: #3498db; 23 | $success-color: #27ae60; 24 | $warning-color: #f39c12; 25 | $danger-color: #e74c3c; 26 | 27 | //* Fonts *// 28 | $base-font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 29 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_button.scss: -------------------------------------------------------------------------------- 1 | /* Buttons */ 2 | 3 | .button { 4 | padding: 12px 18px; 5 | font-size: 14px; 6 | display: inline-block; 7 | text-align: center; 8 | line-height: 1; 9 | cursor: pointer; 10 | border-radius: 4px; 11 | margin: 0 0 20px 0; 12 | position: relative; 13 | white-space: nowrap; 14 | vertical-align: middle; 15 | text-decoration: none; 16 | transition: .2s ease-out; 17 | transition-property: background-color, color; 18 | background-color: transparent; 19 | color: $primary-color; 20 | border: 1px solid $primary-color; 21 | 22 | @include screen($medium) { 23 | padding: 14px 20px; 24 | font-size: 16px; 25 | } 26 | 27 | @include hover() { 28 | background-color: $primary-color; 29 | color: $white-color; 30 | } 31 | 32 | &.full { 33 | background-color: $primary-color; 34 | color: $white-color; 35 | border: 1px solid $primary-color; 36 | 37 | @include hover() { 38 | background-color: transparent; 39 | color: $primary-color; 40 | } 41 | } 42 | 43 | &.primary { 44 | background-color: transparent; 45 | color: $info-color; 46 | border: 1px solid $info-color; 47 | 48 | @include hover() { 49 | background-color: $info-color; 50 | color: $white-color; 51 | } 52 | 53 | &.full { 54 | background-color: $info-color; 55 | color: $white-color; 56 | border: 1px solid $info-color; 57 | 58 | @include hover() { 59 | background-color: transparent; 60 | color: $info-color; 61 | } 62 | } 63 | } 64 | 65 | &.success { 66 | background-color: transparent; 67 | color: $success-color; 68 | border: 1px solid $success-color; 69 | 70 | @include hover() { 71 | background-color: $success-color; 72 | color: $white-color; 73 | } 74 | 75 | &.full { 76 | background-color: $success-color; 77 | color: $white-color; 78 | border: 1px solid $success-color; 79 | 80 | @include hover() { 81 | background-color: transparent; 82 | color: $success-color; 83 | } 84 | } 85 | } 86 | 87 | &.warning { 88 | background-color: transparent; 89 | color: $warning-color; 90 | border: 1px solid $warning-color; 91 | 92 | @include hover() { 93 | background-color: $warning-color; 94 | color: $white-color; 95 | } 96 | 97 | &.full { 98 | background-color: $warning-color; 99 | color: $white-color; 100 | border: 1px solid $warning-color; 101 | 102 | @include hover() { 103 | background-color: transparent; 104 | color: $warning-color; 105 | } 106 | } 107 | } 108 | 109 | &.danger { 110 | background-color: transparent; 111 | color: $danger-color; 112 | border: 1px solid $danger-color; 113 | 114 | @include hover() { 115 | background-color: $danger-color; 116 | color: $white-color; 117 | } 118 | 119 | &.full { 120 | background-color: $danger-color; 121 | color: $white-color; 122 | border: 1px solid $danger-color; 123 | 124 | @include hover() { 125 | background-color: transparent; 126 | color: $danger-color; 127 | } 128 | } 129 | } 130 | 131 | &.small { 132 | padding: 10px 16px; 133 | font-size: 12px; 134 | } 135 | 136 | &.large { 137 | padding: 14px 24px; 138 | font-size: 18px; 139 | 140 | @include screen($medium) { 141 | padding: 16px 30px; 142 | font-size: 24px; 143 | } 144 | } 145 | 146 | &.expanded { 147 | display: block; 148 | max-width: 100%; 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_code.scss: -------------------------------------------------------------------------------- 1 | /* Code */ 2 | 3 | pre, 4 | code, 5 | kbd { 6 | font-family: Consolas, "Liberation Mono", "Courier New", monospace; 7 | } 8 | 9 | code { 10 | background-color: $bg-color; 11 | font-size: 13px; 12 | margin: 0; 13 | padding: 3px 6px; 14 | border-radius: 3px; 15 | border: 1px solid $border-color; 16 | } 17 | 18 | pre { 19 | white-space: pre; 20 | border-radius: 3px; 21 | background-color: $bg-color; 22 | padding: 5px 20px; 23 | margin: 5px 0; 24 | 25 | code { 26 | font-size: 14px; 27 | padding: 0; 28 | background-color: transparent; 29 | border-radius: 0; 30 | border: 0; 31 | } 32 | } 33 | 34 | kbd { 35 | display: inline-block; 36 | background-color: $bg-color; 37 | font-size: 13px; 38 | margin: 0; 39 | padding: 3px 6px; 40 | border-radius: 3px; 41 | border: 1px solid $border-color; 42 | vertical-align: middle; 43 | box-shadow: inset 0 -1px 0 $shadow-color; 44 | } 45 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_form.scss: -------------------------------------------------------------------------------- 1 | /* Form */ 2 | 3 | .input_text, 4 | input[type="text"], 5 | input[type="password"], 6 | input[type="date"], 7 | input[type="datetime"], 8 | input[type="email"], 9 | input[type="number"], 10 | input[type="tel"], 11 | input[type="time"], 12 | input[type="url"], 13 | input[type="color"], 14 | select, 15 | textarea { 16 | font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 17 | background-color: $white-color; 18 | border: 1px solid $primary-color; 19 | color: $primary-color; 20 | border-radius: 4px; 21 | display: block; 22 | font-size: 16px; 23 | line-height: 1; 24 | height: 46px; 25 | margin: 0 0 20px 0; 26 | padding: 0 10px; 27 | width: 100%; 28 | } 29 | 30 | select { 31 | -webkit-appearance: none; 32 | -moz-appearance: none; 33 | cursor: pointer; 34 | 35 | &::-ms-expand { 36 | display: none; 37 | } 38 | } 39 | 40 | 41 | textarea { 42 | font-size: 16px; 43 | min-height: 150px; 44 | padding: 10px; 45 | line-height: 1.5; 46 | } 47 | 48 | label { 49 | display: block; 50 | 51 | input[type="radio"] + &, 52 | input[type="checkbox"] + & { 53 | display: inline-block; 54 | } 55 | } 56 | 57 | 58 | ::-webkit-input-placeholder { 59 | color: $primary-color; 60 | } 61 | 62 | :-moz-placeholder { 63 | color: $primary-color; 64 | } 65 | 66 | ::-moz-placeholder { 67 | color: $primary-color; 68 | } 69 | 70 | :-ms-input-placeholder { 71 | color: $primary-color; 72 | } 73 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_global.scss: -------------------------------------------------------------------------------- 1 | /* Import Google Font "Roboto" */ 2 | @import url("https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i"); 3 | 4 | /* Global styles */ 5 | 6 | *, 7 | *::before, 8 | *::after { 9 | box-sizing: border-box; 10 | /* IE 8+ to use box-sizing, < IE 9 support is pretty much void at this point */ 11 | } 12 | 13 | html, 14 | body { 15 | height: 100%; 16 | width: 100%; 17 | font-size: 100%; 18 | margin: 0; 19 | padding: 0; 20 | } 21 | 22 | hr { 23 | position: relative; 24 | width: 60%; 25 | margin: 30px auto; 26 | border: solid $border-color; 27 | border-width: 1px 0 0; 28 | clear: both; 29 | } 30 | 31 | a { 32 | text-decoration: underline; 33 | transition: .2s ease-out; 34 | transition-property: background-color, color; 35 | color: $primary-color; 36 | 37 | @include hover() { 38 | color: $hover-color; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_grid.scss: -------------------------------------------------------------------------------- 1 | /* Grid */ 2 | 3 | .container { 4 | width: 96%; 5 | position: relative; 6 | max-width: $container-max-width; 7 | margin: 0 auto; 8 | 9 | @include after() { 10 | clear: both; 11 | display: table; 12 | } 13 | } 14 | 15 | .row { 16 | position: relative; 17 | width: 100%; 18 | margin: 0 auto; 19 | 20 | @include after() { 21 | clear: both; 22 | display: table; 23 | } 24 | 25 | .potato, 26 | .potatoes { 27 | margin: 8px 2%; 28 | min-height: 2px; 29 | } 30 | } 31 | 32 | .potato, 33 | .potatoes { 34 | @include potatoes(12); 35 | float: left !important; 36 | } 37 | 38 | @each $count in $potatoes { 39 | $index: index($potatoes, $count); 40 | .#{$count} { 41 | @if ($index == 1) { 42 | &.potato, 43 | &.potatoes { 44 | @include potatoes($index); 45 | } 46 | } @else { 47 | &.potatoes { 48 | @include potatoes($index); 49 | } 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_helpers.scss: -------------------------------------------------------------------------------- 1 | /* Helpers */ 2 | 3 | .text-center { 4 | text-align: center; 5 | } 6 | 7 | .text-right { 8 | text-align: right; 9 | } 10 | 11 | .text-left { 12 | text-align: left; 13 | } 14 | 15 | .text-justify { 16 | text-align: justify; 17 | } 18 | 19 | .float-left { 20 | float: left; 21 | } 22 | 23 | .float-right { 24 | float: right; 25 | } 26 | 27 | .font-light { 28 | font-weight: lighter; 29 | } 30 | 31 | .font-normal { 32 | font-weight: normal; 33 | } 34 | 35 | .font-bold { 36 | font-weight: bold; 37 | } 38 | 39 | .allow-overflow { 40 | overflow: auto; 41 | 42 | &-x { 43 | overflow-y: auto; 44 | } 45 | 46 | &-y { 47 | overflow-y: auto; 48 | } 49 | } 50 | 51 | .hide-overflow, 52 | .forbid-overflow { 53 | overflow: hidden; 54 | 55 | &-x { 56 | overflow-y: hidden; 57 | } 58 | 59 | &-y { 60 | overflow-y: hidden; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_label.scss: -------------------------------------------------------------------------------- 1 | /* Label */ 2 | 3 | .label { 4 | display: inline; 5 | line-height: 1; 6 | font-size: 80%; 7 | color: $primary-color; 8 | border: 1px solid $primary-color; 9 | text-align: center; 10 | white-space: nowrap; 11 | padding: 3px 4px; 12 | border-radius: 4px; 13 | 14 | &.primary { 15 | color: $info-color; 16 | border: 1px solid $info-color; 17 | } 18 | 19 | &.success { 20 | color: $success-color; 21 | border: 1px solid $success-color; 22 | } 23 | 24 | &.warning { 25 | color: $warning-color; 26 | border: 1px solid $warning-color; 27 | } 28 | 29 | &.danger { 30 | color: $danger-color; 31 | border: 1px solid $danger-color; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_list.scss: -------------------------------------------------------------------------------- 1 | /* lists */ 2 | 3 | .inline-potato { 4 | display: inline; 5 | padding: 0; 6 | 7 | li { 8 | display: inline; 9 | } 10 | } 11 | 12 | .circle-potato { 13 | list-style-type: circle; 14 | } 15 | 16 | .square-potato { 17 | list-style-type: square; 18 | } 19 | 20 | .roman-potato { 21 | list-style-type: upper-roman; 22 | } 23 | 24 | .alpha-potato { 25 | list-style-type: lower-alpha; 26 | } 27 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_modal.scss: -------------------------------------------------------------------------------- 1 | .modal { 2 | position: fixed; 3 | display: block; 4 | top: 0; 5 | left: 0; 6 | right: 0; 7 | bottom: 0; 8 | z-index: 1000; 9 | overflow-y: auto; 10 | overflow-x: hidden; 11 | background: rgba(0, 0, 0, 0.5); 12 | opacity: 0; 13 | visibility: hidden; 14 | transition: opacity .15s linear; 15 | 16 | &.open { 17 | opacity: 1; 18 | visibility: visible; 19 | } 20 | 21 | .modal-dialog { 22 | position: relative; 23 | margin: 10px; 24 | transform: translateY(-25%); 25 | max-width: 500px; 26 | transition: transform .3s ease-out; 27 | 28 | @include screen($medium) { 29 | margin: 30px auto; 30 | max-width: 500px; 31 | } 32 | 33 | .modal.open & { 34 | transform: translateY(0%); 35 | } 36 | 37 | .modal.small & { 38 | @include screen($medium) { 39 | max-width: 300px; 40 | } 41 | } 42 | 43 | .modal.large & { 44 | @include screen($large) { 45 | max-width: 800px; 46 | } 47 | } 48 | } 49 | 50 | .modal-content { 51 | position: relative; 52 | width: 100%; 53 | height: 100%; 54 | background-color: $white-color; 55 | border: 1px solid $border-color; 56 | border-radius: 5px; 57 | } 58 | 59 | .close-button { 60 | position: absolute; 61 | right: 15px; 62 | top: 10px; 63 | background-color: transparent; 64 | font-size: 24px; 65 | font-weight: bold; 66 | color: $button-color; 67 | border: none; 68 | cursor: pointer; 69 | 70 | @include hover() { 71 | color: $button-hover-color; 72 | } 73 | } 74 | 75 | .modal-header, 76 | .modal-body, 77 | .modal-footer { 78 | position: relative; 79 | padding: 15px; 80 | 81 | & > * { 82 | margin: 0; 83 | } 84 | } 85 | 86 | .modal-header { 87 | & + .modal-body { 88 | @include after() { 89 | display: block; 90 | position: absolute; 91 | top: 0; 92 | left: 0; 93 | height: 1px; 94 | width: 100%; 95 | background-color: $bg-color; 96 | } 97 | } 98 | } 99 | 100 | .modal-body { 101 | & + .modal-footer { 102 | @include after() { 103 | display: block; 104 | position: absolute; 105 | top: 0; 106 | left: 0; 107 | height: 1px; 108 | width: 100%; 109 | background-color: $bg-color; 110 | } 111 | } 112 | } 113 | 114 | .modal-footer { 115 | display: flex; 116 | justify-content: flex-end; 117 | 118 | .button { 119 | margin-right: 5px; 120 | } 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_panel.scss: -------------------------------------------------------------------------------- 1 | /* Panel */ 2 | 3 | .panel { 4 | padding: 10px 15px; 5 | margin: 5px 0; 6 | border: 1px solid $primary-color; 7 | 8 | &.round { 9 | border-radius: 4px; 10 | } 11 | 12 | &.primary { 13 | background-color: $info-color; 14 | } 15 | 16 | &.success { 17 | background-color: $success-color; 18 | } 19 | 20 | &.warning { 21 | background-color: $warning-color; 22 | } 23 | 24 | &.danger { 25 | background-color: $danger-color; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_table.scss: -------------------------------------------------------------------------------- 1 | /* Tables */ 2 | 3 | table { 4 | width: 100%; 5 | text-align: left; 6 | background: $white-color; 7 | border: 1px solid $border-color; 8 | margin-bottom: 20px; 9 | display: table; 10 | border-collapse: separate; 11 | border-spacing: 2px; 12 | } 13 | -------------------------------------------------------------------------------- /stylesheets/sass/modules/_typography.scss: -------------------------------------------------------------------------------- 1 | /* Typography */ 2 | 3 | * { 4 | font-family: "Roboto", "Helvetica Neue", "Helvetica", Arial, sans-serif; 5 | font-weight: lighter; 6 | line-height: 1.5; 7 | color: $primary-color; 8 | } 9 | 10 | h1, 11 | h2, 12 | h3, 13 | h4, 14 | h5, 15 | h6 { 16 | margin: 5px 0; 17 | font-weight: normal; 18 | font-style: normal; 19 | line-height: 1.5; 20 | text-transform: none; 21 | text-rendering: optimizeLegibility; 22 | } 23 | 24 | h1 { 25 | font-size: 28px; 26 | 27 | @include screen($medium) { 28 | font-size: 30px; 29 | } 30 | } 31 | 32 | h2 { 33 | font-size: 18px; 34 | 35 | @include screen($medium) { 36 | font-size: 26px; 37 | } 38 | } 39 | 40 | h3 { 41 | font-size: 15px; 42 | 43 | @include screen($medium) { 44 | font-size: 22px; 45 | } 46 | } 47 | 48 | h4 { 49 | font-size: 14px; 50 | 51 | @include screen($medium) { 52 | font-size: 15px; 53 | } 54 | } 55 | 56 | h5 { 57 | font-size: 16px; 58 | 59 | @include screen($medium) { 60 | font-size: 14px; 61 | } 62 | } 63 | 64 | h6 { 65 | font-size: 16px; 66 | } 67 | 68 | blockquote { 69 | margin: 28px 0 28px -36px; 70 | padding: 0 0 0 28px; 71 | border-left: 6px solid $primary-color; 72 | } 73 | -------------------------------------------------------------------------------- /stylesheets/sass/potato.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * Author: Edvins Antonovs 4 | * License: MIT License 5 | * Website: http://potatocss.com/ 6 | */ 7 | 8 | // Import core 9 | @import "core/variables"; 10 | @import "core/mixins"; 11 | 12 | // Import modules 13 | @import "modules/global"; 14 | @import "modules/typography"; 15 | @import "modules/grid"; 16 | @import "modules/form"; 17 | @import "modules/button"; 18 | @import "modules/table"; 19 | @import "modules/list"; 20 | @import "modules/code"; 21 | @import "modules/panel"; 22 | @import "modules/label"; 23 | @import "modules/helpers"; 24 | --------------------------------------------------------------------------------