OLD | NEW |
(Empty) | |
| 1 <!-- |
| 2 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 3 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 4 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 5 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 6 Code distributed by Google as part of the polymer project is also |
| 7 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 8 --> |
| 9 |
| 10 <style> |
| 11 |
| 12 body { |
| 13 margin: 0; |
| 14 } |
| 15 |
| 16 </style> |
| 17 |
| 18 <!-- |
| 19 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 20 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 21 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 22 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 23 Code distributed by Google as part of the polymer project is also |
| 24 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 25 --> |
| 26 |
| 27 <!-- |
| 28 The `core-layout` element is a helper for using |
| 29 [CSS3 Flexible Boxes](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Fle
xible_boxes). |
| 30 A `core-layout` element enables a set of css selectors for easy flexbox styling. |
| 31 |
| 32 Example: |
| 33 |
| 34 <core-layout> |
| 35 <div>Left</div> |
| 36 <div core-flex>Main</div> |
| 37 <div>Right</div> |
| 38 </core-layout> |
| 39 |
| 40 Renders something like this: |
| 41 |
| 42 --------------------------------- |
| 43 |-------------------------------| |
| 44 ||Left| Main |Right|| |
| 45 |-------------------------------| |
| 46 --------------------------------- |
| 47 |
| 48 __Note__: the `core-layout` element applies layout to itself if it has children
or to |
| 49 its parent element, if it does not. This feature allows you to apply layout to a
n |
| 50 arbitrary parent. |
| 51 |
| 52 Elements can layout horizontally, such that their items stack |
| 53 left to right or vertically, such that their items stack top to bottom. The |
| 54 default is horizontal. Set `vertical` to true to layout the elements vertically. |
| 55 |
| 56 To make a particular child _flexible_, use the `core-flex` attribute. |
| 57 You can control flexibility from 1 to 3 by giving the attribute a |
| 58 corresponding value. For other values, apply the css manually. |
| 59 |
| 60 It's common in flexbox parlance to hear the terms _main axis_ and _cross axis_. |
| 61 For a horizontal layout the main axis is horizontal and the cross axis is vertic
al. |
| 62 These are exchanged for a vertical layout. |
| 63 |
| 64 To effect alignment in the main axis, use the `justify` attribute. The |
| 65 supported values are `start`, `center`, `end`, and `between`. |
| 66 |
| 67 To effect alignment in the cross axis, use the `align` attribute. The |
| 68 supported values are `start`, `center`, and `end`. |
| 69 |
| 70 Note, it's also possible to include the `core-layout.css` stylesheet separate |
| 71 from the `core-layout` element. Including the element automatically includes |
| 72 the stylesheet. To use the stylesheet independent of the element, css classes |
| 73 should be used of the following form: `core-h`, `core-v`, `core-flex`, |
| 74 `core-justify-start`, and `core-align-start`. |
| 75 |
| 76 The `core-layout` and css file also provide a few commonly needed layout |
| 77 behaviors. Apply the `core-fit` class to fit an element to its container. To |
| 78 ensure a container will contain an element inside it with the `core-fit` class |
| 79 give it the `core-relative` class. |
| 80 |
| 81 More examples: |
| 82 |
| 83 <core-layout vertical> |
| 84 |
| 85 <div>Header</div> |
| 86 <div core-flex>Body</div> |
| 87 <div>Footer</div> |
| 88 |
| 89 </core-layout> |
| 90 |
| 91 ---------- |
| 92 ||------|| |
| 93 ||Header|| |
| 94 ||------|| |
| 95 ||Body || |
| 96 || || |
| 97 || || |
| 98 || || |
| 99 || || |
| 100 || || |
| 101 || || |
| 102 ||------|| |
| 103 ||Footer|| |
| 104 ||------|| |
| 105 ---------- |
| 106 |
| 107 Justify: |
| 108 |
| 109 <core-layout justify="end"> |
| 110 <div core-flex>Left</div> |
| 111 <div>Main</div> |
| 112 <div>Right</div> |
| 113 </core-layout> |
| 114 |
| 115 --------------------------------- |
| 116 |-------------------------------| |
| 117 || Left|Main|Right|| |
| 118 |-------------------------------| |
| 119 --------------------------------- |
| 120 |
| 121 Align: |
| 122 |
| 123 <core-layout align="center"> |
| 124 <div>Left</div> |
| 125 <div core-flex>Main</div> |
| 126 <div>Right</div> |
| 127 </core-layout> |
| 128 |
| 129 --------------------------------- |
| 130 |-------------------------------| |
| 131 || | | || |
| 132 ||Left| Main |Right|| |
| 133 || | | || |
| 134 |-------------------------------| |
| 135 --------------------------------- |
| 136 |
| 137 |
| 138 To layout contents of a parent element, place a `core-layout` inside of it: |
| 139 |
| 140 <some-element> |
| 141 <core-layout></core-layout> |
| 142 <div>Left</div> |
| 143 <div core-flex>Main</div> |
| 144 <div>Right</div> |
| 145 <some-element> |
| 146 |
| 147 --------------------------------- |
| 148 |-------------------------------| |
| 149 ||Left| Main |Right|| |
| 150 |-------------------------------| |
| 151 --------------------------------- |
| 152 |
| 153 You may also use the `core-layout` stylesheet directly: |
| 154 |
| 155 <link rel="stylesheet" href="../core-layout/core-layout.css"> |
| 156 <div class="core-h core-justify-end"> |
| 157 <div core-flex>Left</div> |
| 158 <div>Main</div> |
| 159 <div>Right</div> |
| 160 </div> |
| 161 |
| 162 --------------------------------- |
| 163 |-------------------------------| |
| 164 || Left|Main|Right|| |
| 165 |-------------------------------| |
| 166 --------------------------------- |
| 167 |
| 168 @group Polymer Core Elements |
| 169 @element core-layout |
| 170 |
| 171 --> |
| 172 <link rel="import" href="../polymer/polymer.html"> |
| 173 |
| 174 <polymer-element name="core-layout" attributes="vertical justify align isContain
er reverse" assetpath="../core-layout/"> |
| 175 |
| 176 <template> |
| 177 |
| 178 <style no-shim="">/* |
| 179 Copyright 2013 The Polymer Authors. All rights reserved. |
| 180 Use of this source code is governed by a BSD-style |
| 181 license that can be found in the LICENSE file. |
| 182 */ |
| 183 |
| 184 .core-h, .core-v { |
| 185 display: -webkit-box !important; |
| 186 display: -ms-flexbox !important; |
| 187 display: -moz-flex !important; |
| 188 display: -webkit-flex !important; |
| 189 display: flex !important; |
| 190 } |
| 191 |
| 192 .core-h { |
| 193 -webkit-box-orient: horizontal; |
| 194 -ms-flex-direction: row; |
| 195 -moz-flex-direction: row; |
| 196 -webkit-flex-direction: row; |
| 197 flex-direction: row; |
| 198 } |
| 199 |
| 200 .core-h.core-reverse { |
| 201 -webkit-box-direction: reverse; |
| 202 -ms-flex-direction: row-reverse; |
| 203 -moz-flex-direction: row-reverse; |
| 204 -webkit-flex-direction: row-reverse; |
| 205 flex-direction: row-reverse; |
| 206 } |
| 207 |
| 208 .core-v { |
| 209 -webkit-box-orient: vertical; |
| 210 -ms-flex-direction: column; |
| 211 -moz-flex-direction: column; |
| 212 -webkit-flex-direction: column; |
| 213 flex-direction: column; |
| 214 } |
| 215 |
| 216 .core-v.core-reverse { |
| 217 -webkit-box-direction: reverse; |
| 218 -ms-flex-direction: column-reverse; |
| 219 -moz-flex-direction: column-reverse; |
| 220 -webkit-flex-direction: column-reverse; |
| 221 flex-direction: column-reverse; |
| 222 } |
| 223 |
| 224 .core-relative { |
| 225 position: relative; |
| 226 } |
| 227 |
| 228 .core-fit { |
| 229 position: absolute; |
| 230 top: 0; |
| 231 left: 0; |
| 232 height: 100%; |
| 233 width: 100%; |
| 234 } |
| 235 |
| 236 body.core-fit { |
| 237 margin: 0; |
| 238 } |
| 239 |
| 240 .core-flex, [core-flex] { |
| 241 -webkit-box-flex: 1; |
| 242 -ms-flex: 1; |
| 243 -moz-flex: 1; |
| 244 -webkit-flex: 1; |
| 245 flex: 1; |
| 246 } |
| 247 |
| 248 .core-flex-auto, [core-flex-auto] { |
| 249 -webkit-box-flex: 1; |
| 250 -ms-flex: 1 1 auto; |
| 251 -moz-flex: 1 1 auto; |
| 252 -webkit-flex: 1 1 auto; |
| 253 flex: 1 1 auto; |
| 254 } |
| 255 |
| 256 .core-flex-none, [core-flex-none] { |
| 257 -webkit-box-flex: none; |
| 258 -ms-flex: none; |
| 259 -moz-flex: none; |
| 260 -webkit-flex: none; |
| 261 flex: none; |
| 262 } |
| 263 |
| 264 .core-flex1, [core-flex=1] { |
| 265 -webkit-box-flex: 1; |
| 266 -ms-flex: 1; |
| 267 -moz-flex: 1; |
| 268 -webkit-flex: 1; |
| 269 flex: 1; |
| 270 } |
| 271 |
| 272 .core-flex2, [core-flex=2] { |
| 273 -webkit-box-flex: 2; |
| 274 -ms-flex: 2; |
| 275 -moz-flex: 2; |
| 276 -webkit-flex: 2; |
| 277 flex: 2; |
| 278 } |
| 279 |
| 280 .core-flex3, [core-flex=3] { |
| 281 -webkit-box-flex: 3; |
| 282 -ms-flex: 3; |
| 283 -moz-flex: 3; |
| 284 -webkit-flex: 3; |
| 285 flex: 3; |
| 286 } |
| 287 |
| 288 /* distributed elements */ |
| 289 ::content > .core-flex, ::content > [core-flex] { |
| 290 -webkit-box-flex: 1; |
| 291 -ms-flex: 1; |
| 292 -moz-flex: 1; |
| 293 -webkit-flex: 1; |
| 294 flex: 1; |
| 295 } |
| 296 |
| 297 ::content > .core-flex-auto, ::content > [core-flex-auto] { |
| 298 -webkit-box-flex: 1; |
| 299 -ms-flex: 1 1 auto; |
| 300 -moz-flex: 1 1 auto; |
| 301 -webkit-flex: 1 1 auto; |
| 302 flex: 1 1 auto; |
| 303 } |
| 304 |
| 305 ::content > .core-flex-none, ::content > [core-flex-none] { |
| 306 -webkit-box-flex: none; |
| 307 -ms-flex: none; |
| 308 -moz-flex: none; |
| 309 -webkit-flex: none; |
| 310 flex: none; |
| 311 } |
| 312 |
| 313 ::content > .core-flex1, ::content > [core-flex=1] { |
| 314 -webkit-box-flex: 1; |
| 315 -ms-flex: 1; |
| 316 -moz-flex: 1; |
| 317 -webkit-flex: 1; |
| 318 flex: 1; |
| 319 } |
| 320 |
| 321 ::content > .core-flex2, ::content > [core-flex=2] { |
| 322 -webkit-box-flex: 2; |
| 323 -ms-flex: 2; |
| 324 -moz-flex: 2; |
| 325 -webkit-flex: 2; |
| 326 flex: 2; |
| 327 } |
| 328 |
| 329 ::content > .core-flex3, ::content > [core-flex=3] { |
| 330 -webkit-box-flex: 3; |
| 331 -ms-flex: 3; |
| 332 -moz-flex: 3; |
| 333 -webkit-flex: 3; |
| 334 flex: 3; |
| 335 } |
| 336 |
| 337 /* alignment in main axis */ |
| 338 .core-justify-start { |
| 339 -webkit-box-pack: start; |
| 340 -ms-flex-pack: start; |
| 341 -moz-justify-content: flex-start; |
| 342 -webkit-justify-content: flex-start; |
| 343 justify-content: flex-start; |
| 344 } |
| 345 |
| 346 .core-justify-center { |
| 347 -webkit-box-pack: center; |
| 348 -ms-flex-pack: center; |
| 349 -moz-justify-content: center; |
| 350 -webkit-justify-content: center; |
| 351 justify-content: center; |
| 352 } |
| 353 |
| 354 .core-justify-end { |
| 355 -webkit-box-pack: end; |
| 356 -ms-flex-pack: end; |
| 357 -moz-justify-content: flex-end; |
| 358 -webkit-justify-content: flex-end; |
| 359 justify-content: flex-end; |
| 360 } |
| 361 |
| 362 .core-justify-between { |
| 363 -webkit-box-pack: justify; |
| 364 -ms-flex-pack: justify; |
| 365 -moz-justify-content: space-between; |
| 366 -webkit-justify-content: space-between; |
| 367 justify-content: space-between; |
| 368 } |
| 369 |
| 370 /* alignment in cross axis */ |
| 371 .core-align-start { |
| 372 -webkit-box-align: start; |
| 373 -ms-flex-align: start; |
| 374 -moz-align-items: flex-start; |
| 375 -webkit-align-items: flex-start; |
| 376 align-items: flex-start; |
| 377 } |
| 378 |
| 379 .core-align-center { |
| 380 -webkit-box-align: center; |
| 381 -ms-flex-align: center; |
| 382 -moz-align-items: center; |
| 383 -webkit-align-items: center; |
| 384 align-items: center; |
| 385 } |
| 386 |
| 387 .core-align-end { |
| 388 -webkit-box-align: end; |
| 389 -ms-flex-align: end; |
| 390 -moz-align-items: flex-end; |
| 391 -webkit-align-items: flex-end; |
| 392 align-items: flex-end; |
| 393 } |
| 394 </style> |
| 395 <style no-shim="">/* |
| 396 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 397 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 398 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 399 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 400 Code distributed by Google as part of the polymer project is also |
| 401 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 402 */ |
| 403 |
| 404 :host { |
| 405 display: -webkit-box !important; |
| 406 display: -ms-flexbox !important; |
| 407 display: -moz-flex !important; |
| 408 display: -webkit-flex !important; |
| 409 display: flex !important; |
| 410 } |
| 411 |
| 412 :host(.core-h) { |
| 413 -webkit-box-orient: horizontal; |
| 414 -ms-flex-direction: row; |
| 415 -moz-flex-direction: row; |
| 416 -webkit-flex-direction: row; |
| 417 flex-direction: row; |
| 418 } |
| 419 |
| 420 :host(.core-v) { |
| 421 -webkit-box-orient: vertical; |
| 422 -ms-flex-direction: column; |
| 423 -moz-flex-direction: column; |
| 424 -webkit-flex-direction: column; |
| 425 flex-direction: column; |
| 426 } |
| 427 |
| 428 :host(.core-h.core-reverse) { |
| 429 -webkit-box-direction: reverse; |
| 430 -ms-flex-direction: row-reverse; |
| 431 -moz-flex-direction: row-reverse; |
| 432 -webkit-flex-direction: row-reverse; |
| 433 flex-direction: row-reverse; |
| 434 } |
| 435 |
| 436 :host(.core-v.core-reverse) { |
| 437 -webkit-box-direction: reverse; |
| 438 -ms-flex-direction: column-reverse; |
| 439 -moz-flex-direction: column-reverse; |
| 440 -webkit-flex-direction: column-reverse; |
| 441 flex-direction: column-reverse; |
| 442 } |
| 443 |
| 444 /* alignment in main axis */ |
| 445 :host(.core-justify-start) { |
| 446 -webkit-box-pack: start; |
| 447 -ms-flex-pack: start; |
| 448 -moz-justify-content: flex-start; |
| 449 -webkit-justify-content: flex-start; |
| 450 justify-content: flex-start; |
| 451 } |
| 452 |
| 453 :host(.core-justify-center) { |
| 454 -webkit-box-pack: center; |
| 455 -ms-flex-pack: center; |
| 456 -moz-justify-content: center; |
| 457 -webkit-justify-content: center; |
| 458 justify-content: center; |
| 459 } |
| 460 |
| 461 :host(.core-justify-end) { |
| 462 -webkit-box-pack: end; |
| 463 -ms-flex-pack: end; |
| 464 -moz-justify-content: flex-end; |
| 465 -webkit-justify-content: flex-end; |
| 466 justify-content: flex-end; |
| 467 } |
| 468 |
| 469 :host(.core-justify-between) { |
| 470 -webkit-box-pack: justify; |
| 471 -ms-flex-pack: justify; |
| 472 -moz-justify-content: space-between; |
| 473 -webkit-justify-content: space-between; |
| 474 justify-content: space-between; |
| 475 } |
| 476 |
| 477 /* alignment in cross axis */ |
| 478 :host(.core-align-start) { |
| 479 -webkit-box-align: start; |
| 480 -ms-flex-align: start; |
| 481 -moz-align-items: flex-start; |
| 482 -webkit-align-items: flex-start; |
| 483 align-items: flex-start; |
| 484 } |
| 485 |
| 486 :host(.core-align-center) { |
| 487 -webkit-box-align: center; |
| 488 -ms-flex-align: center; |
| 489 -moz-align-items: center; |
| 490 -webkit-align-items: center; |
| 491 align-items: center; |
| 492 } |
| 493 |
| 494 :host(.core-align-end) { |
| 495 -webkit-box-align: end; |
| 496 -ms-flex-align: end; |
| 497 -moz-align-items: flex-end; |
| 498 -webkit-align-items: flex-end; |
| 499 align-items: flex-end; |
| 500 } |
| 501 </style> |
| 502 |
| 503 </template> |
| 504 |
| 505 <script> |
| 506 |
| 507 (function() { |
| 508 |
| 509 Polymer('core-layout', { |
| 510 |
| 511 isContainer: false, |
| 512 /** |
| 513 * Controls if the element lays out vertically or not. |
| 514 * |
| 515 * @attribute vertical |
| 516 * @type boolean |
| 517 * @default false |
| 518 */ |
| 519 vertical: false, |
| 520 /** |
| 521 * Controls how the items are aligned in the main-axis direction. For |
| 522 * example for a horizontal layout, this controls how each item is aligned |
| 523 * horizontally. |
| 524 * |
| 525 * @attribute justify |
| 526 * @type string start|center|end|between |
| 527 * @default '' |
| 528 */ |
| 529 justify: '', |
| 530 /** |
| 531 * Controls how the items are aligned in cross-axis direction. For |
| 532 * example for a horizontal layout, this controls how each item is aligned |
| 533 * vertically. |
| 534 * |
| 535 * @attribute align |
| 536 * @type string start|center|end |
| 537 * @default '' |
| 538 */ |
| 539 align: '', |
| 540 /** |
| 541 * Controls whether or not the items layout in reverse order. |
| 542 * |
| 543 * @attribute reverse |
| 544 * @type boolean |
| 545 * @default false |
| 546 */ |
| 547 reverse: false, |
| 548 layoutPrefix: 'core-', |
| 549 |
| 550 // NOTE: include template so that styles are loaded, but remove |
| 551 // so that we can decide dynamically what part to include |
| 552 registerCallback: function(polymerElement) { |
| 553 var template = polymerElement.querySelector('template'); |
| 554 this.styles = template.content.querySelectorAll('style').array(); |
| 555 this.styles.forEach(function(s) { |
| 556 s.removeAttribute('no-shim'); |
| 557 }) |
| 558 }, |
| 559 |
| 560 fetchTemplate: function() { |
| 561 return null; |
| 562 }, |
| 563 |
| 564 attached: function() { |
| 565 this.installScopeStyle(this.styles[0]); |
| 566 if (this.children.length) { |
| 567 this.isContainer = true; |
| 568 } |
| 569 var container = this.isContainer ? this : this.parentNode; |
| 570 // detect if laying out a shadowRoot host. |
| 571 var forHost = container instanceof ShadowRoot; |
| 572 if (forHost) { |
| 573 this.installScopeStyle(this.styles[1], 'host'); |
| 574 container = container.host || document.body; |
| 575 } |
| 576 this.layoutContainer = container; |
| 577 }, |
| 578 |
| 579 detached: function() { |
| 580 this.layoutContainer = null; |
| 581 }, |
| 582 |
| 583 layoutContainerChanged: function(old) { |
| 584 this.style.display = this.layoutContainer === this ? null : 'none'; |
| 585 this.verticalChanged(); |
| 586 this.alignChanged(); |
| 587 this.justifyChanged(); |
| 588 }, |
| 589 |
| 590 setLayoutClass: function(prefix, old, newValue) { |
| 591 if (this.layoutContainer) { |
| 592 prefix = this.layoutPrefix + prefix; |
| 593 if (old) { |
| 594 this.layoutContainer.classList.remove(prefix + old); |
| 595 } |
| 596 if (newValue) { |
| 597 this.layoutContainer.classList.add(prefix + newValue); |
| 598 } |
| 599 } |
| 600 }, |
| 601 |
| 602 verticalChanged: function(old) { |
| 603 old = old ? 'v' : 'h'; |
| 604 var vertical = this.vertical ? 'v' : 'h'; |
| 605 this.setLayoutClass('', old, vertical); |
| 606 }, |
| 607 |
| 608 alignChanged: function(old) { |
| 609 this.setLayoutClass('align-', old, this.align); |
| 610 }, |
| 611 |
| 612 justifyChanged: function(old) { |
| 613 this.setLayoutClass('justify-', old, this.justify); |
| 614 }, |
| 615 |
| 616 reverseChanged: function(old) { |
| 617 old = old ? 'reverse' : ''; |
| 618 var newValue = this.reverse ? 'reverse' : ''; |
| 619 this.setLayoutClass('', old, newValue); |
| 620 } |
| 621 |
| 622 }); |
| 623 |
| 624 })(); |
| 625 </script> |
| 626 |
| 627 </polymer-element> |
| 628 |
| 629 |
| 630 <!-- |
| 631 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 632 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 633 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 634 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 635 Code distributed by Google as part of the polymer project is also |
| 636 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 637 --> |
| 638 <!-- |
| 639 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 640 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 641 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 642 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 643 Code distributed by Google as part of the polymer project is also |
| 644 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 645 --> |
| 646 |
| 647 <!-- |
| 648 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 649 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 650 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 651 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 652 Code distributed by Google as part of the polymer project is also |
| 653 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 654 --> |
| 655 |
| 656 <!-- |
| 657 /** |
| 658 * @group Polymer Core Elements |
| 659 * |
| 660 * The `core-iconset-svg` element allows users to define their own icon sets |
| 661 * that contain svg icons. The svg icon elements should be children of the |
| 662 * `core-iconset-svg` element. Multiple icons should be given distinct id's. |
| 663 * |
| 664 * Using svg elements to create icons has a few advantages over traditional |
| 665 * bitmap graphics like jpg or png. Icons that use svg are vector based so they |
| 666 * are resolution independent and should look good on any device. They are |
| 667 * stylable via css. Icons can be themed, colorized, and even animated. |
| 668 * |
| 669 * Example: |
| 670 * |
| 671 * <core-iconset-svg id="my-svg-icons" iconSize="24"> |
| 672 * <svg> |
| 673 * <defs> |
| 674 * <g id="shape"> |
| 675 * <rect x="50" y="50" width="50" height="50" /> |
| 676 * <circle cx="50" cy="50" r="50" /> |
| 677 * </g> |
| 678 * </defs> |
| 679 * </svg> |
| 680 * </core-iconset-svg> |
| 681 * |
| 682 * This will automatically register the icon set "my-svg-icons" to the iconset |
| 683 * database. To use these icons from within another element, make a |
| 684 * `core-iconset` element and call the `byId` method |
| 685 * to retrieve a given iconset. To apply a particular icon inside an |
| 686 * element use the `applyIcon` method. For example: |
| 687 * |
| 688 * iconset.applyIcon(iconNode, 'car'); |
| 689 * |
| 690 * @element core-iconset-svg |
| 691 * @extends core-meta |
| 692 * @homepage github.io |
| 693 */ |
| 694 --> |
| 695 |
| 696 <!-- |
| 697 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 698 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 699 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 700 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 701 Code distributed by Google as part of the polymer project is also |
| 702 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 703 --> |
| 704 |
| 705 <!-- |
| 706 /** |
| 707 * @group Polymer Core Elements |
| 708 * |
| 709 * The `core-iconset` element allows users to define their own icon sets. |
| 710 * The `src` property specifies the url of the icon image. Multiple icons may |
| 711 * be included in this image and they may be organized into rows. |
| 712 * The `icons` property is a space separated list of names corresponding to the |
| 713 * icons. The names must be ordered as the icons are ordered in the icon image. |
| 714 * Icons are expected to be square and are the size specified by the `iconSize` |
| 715 * property. The `width` property corresponds to the width of the icon image |
| 716 * and must be specified if icons are arranged into multiple rows in the image. |
| 717 * |
| 718 * All `core-iconset` elements are available for use by other `core-iconset` |
| 719 * elements via a database keyed by id. Typically, an element author that wants |
| 720 * to support a set of custom icons uses a `core-iconset` to retrieve |
| 721 * and use another, user-defined iconset. |
| 722 * |
| 723 * Example: |
| 724 * |
| 725 * <core-iconset id="my-icons" src="my-icons.png" width="96" iconSize="24" |
| 726 * icons="location place starta stopb bus car train walk"> |
| 727 * </core-iconset> |
| 728 * |
| 729 * This will automatically register the icon set "my-icons" to the iconset |
| 730 * database. To use these icons from within another element, make a |
| 731 * `core-iconset` element and call the `byId` method to retrieve a |
| 732 * given iconset. To apply a particular icon to an element, use the |
| 733 * `applyIcon` method. For example: |
| 734 * |
| 735 * iconset.applyIcon(iconNode, 'car'); |
| 736 * |
| 737 * Themed icon sets are also supported. The `core-iconset` can contain child |
| 738 * `property` elements that specify a theme with an offsetX and offsetY of the |
| 739 * theme within the icon resource. For example. |
| 740 * |
| 741 * <core-iconset id="my-icons" src="my-icons.png" width="96" iconSize="24" |
| 742 * icons="location place starta stopb bus car train walk"> |
| 743 * <property theme="special" offsetX="256" offsetY="24"></property> |
| 744 * </core-iconset> |
| 745 * |
| 746 * Then a themed icon can be applied like this: |
| 747 * |
| 748 * iconset.applyIcon(iconNode, 'car', 'special'); |
| 749 * |
| 750 * @element core-iconset |
| 751 * @extends core-meta |
| 752 * @homepage github.io |
| 753 */ |
| 754 --> |
| 755 |
| 756 <!-- |
| 757 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 758 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 759 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 760 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 761 Code distributed by Google as part of the polymer project is also |
| 762 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 763 --> |
| 764 |
| 765 <!-- |
| 766 `core-meta` provides a method of constructing a self-organizing database. |
| 767 It is useful to collate element meta-data for things like catalogs and for |
| 768 designer. |
| 769 |
| 770 Example, an element folder has a `metadata.html` file in it, that contains a |
| 771 `core-meta`, something like this: |
| 772 |
| 773 <core-meta id="my-element" label="My Element"> |
| 774 <property name="color" value="blue"></property> |
| 775 </core-meta> |
| 776 |
| 777 An application can import as many of these files as it wants, and then use |
| 778 `core-meta` again to access the collected data. |
| 779 |
| 780 <script> |
| 781 var meta = document.createElement('core-meta'); |
| 782 console.log(meta.list); // dump a list of all meta-data elements that have
been created |
| 783 </script> |
| 784 |
| 785 Use `byId(id)` to retrive a specific core-meta. |
| 786 |
| 787 <script> |
| 788 var meta = document.createElement('core-meta'); |
| 789 console.log(meta.byId('my-element')); |
| 790 </script> |
| 791 |
| 792 By default all meta-data are stored in a single databse. If your meta-data |
| 793 have different types and want them to be stored separately, use `type` to |
| 794 differentiate them. |
| 795 |
| 796 Example: |
| 797 |
| 798 <core-meta id="x-foo" type="xElt"></core-meta> |
| 799 <core-meta id="x-bar" type="xElt"></core-meta> |
| 800 <core-meta id="y-bar" type="yElt"></core-meta> |
| 801 |
| 802 <script> |
| 803 var meta = document.createElement('core-meta'); |
| 804 meta.type = 'xElt'; |
| 805 console.log(meta.list); |
| 806 </script> |
| 807 |
| 808 @group Polymer Core Elements |
| 809 @element core-meta |
| 810 @homepage github.io |
| 811 --> |
| 812 |
| 813 |
| 814 |
| 815 <polymer-element name="core-meta" attributes="list label type" hidden assetpath=
"../core-meta/"> |
| 816 <script> |
| 817 |
| 818 (function() { |
| 819 |
| 820 var SKIP_ID = 'meta'; |
| 821 var metaData = {}, metaArray = {}; |
| 822 |
| 823 Polymer('core-meta', { |
| 824 |
| 825 /** |
| 826 * The type of meta-data. All meta-data with the same type with be |
| 827 * stored together. |
| 828 * |
| 829 * @attribute type |
| 830 * @type string |
| 831 * @default 'default' |
| 832 */ |
| 833 type: 'default', |
| 834 |
| 835 alwaysPrepare: true, |
| 836 |
| 837 ready: function() { |
| 838 this.register(this.id); |
| 839 }, |
| 840 |
| 841 get metaArray() { |
| 842 var t = this.type; |
| 843 if (!metaArray[t]) { |
| 844 metaArray[t] = []; |
| 845 } |
| 846 return metaArray[t]; |
| 847 }, |
| 848 |
| 849 get metaData() { |
| 850 var t = this.type; |
| 851 if (!metaData[t]) { |
| 852 metaData[t] = {}; |
| 853 } |
| 854 return metaData[t]; |
| 855 }, |
| 856 |
| 857 register: function(id, old) { |
| 858 if (id && id !== SKIP_ID) { |
| 859 this.unregister(this, old); |
| 860 this.metaData[id] = this; |
| 861 this.metaArray.push(this); |
| 862 } |
| 863 }, |
| 864 |
| 865 unregister: function(meta, id) { |
| 866 delete this.metaData[id || meta.id]; |
| 867 var i = this.metaArray.indexOf(meta); |
| 868 if (i >= 0) { |
| 869 this.metaArray.splice(i, 1); |
| 870 } |
| 871 }, |
| 872 |
| 873 /** |
| 874 * Returns a list of all meta-data elements with the same type. |
| 875 * |
| 876 * @attribute list |
| 877 * @type array |
| 878 * @default [] |
| 879 */ |
| 880 get list() { |
| 881 return this.metaArray; |
| 882 }, |
| 883 |
| 884 /** |
| 885 * Retrieves meta-data by ID. |
| 886 * |
| 887 * @method byId |
| 888 * @param {String} id The ID of the meta-data to be returned. |
| 889 * @returns Returns meta-data. |
| 890 */ |
| 891 byId: function(id) { |
| 892 return this.metaData[id]; |
| 893 } |
| 894 |
| 895 }); |
| 896 |
| 897 })(); |
| 898 |
| 899 </script> |
| 900 </polymer-element> |
| 901 |
| 902 |
| 903 <polymer-element name="core-iconset" extends="core-meta" attributes="src width i
cons iconSize" assetpath="../core-iconset/"> |
| 904 |
| 905 <script> |
| 906 |
| 907 Polymer('core-iconset', { |
| 908 |
| 909 /** |
| 910 * The URL of the iconset image. |
| 911 * |
| 912 * @attribute src |
| 913 * @type string |
| 914 * @default '' |
| 915 */ |
| 916 src: '', |
| 917 |
| 918 /** |
| 919 * The width of the iconset image. This must only be specified if the |
| 920 * icons are arranged into separate rows inside the image. |
| 921 * |
| 922 * @attribute width |
| 923 * @type string |
| 924 * @default '' |
| 925 */ |
| 926 width: 0, |
| 927 |
| 928 /** |
| 929 * A space separated list of names corresponding to icons in the iconset |
| 930 * image file. This list must be ordered the same as the icon images |
| 931 * in the image file. |
| 932 * |
| 933 * @attribute icons |
| 934 * @type string |
| 935 * @default '' |
| 936 */ |
| 937 icons: '', |
| 938 |
| 939 /** |
| 940 * The size of an individual icon. Note that icons must be square. |
| 941 * |
| 942 * @attribute iconSize |
| 943 * @type number |
| 944 * @default 24 |
| 945 */ |
| 946 iconSize: 24, |
| 947 |
| 948 /** |
| 949 * The horizontal offset of the icon images in the inconset src image. |
| 950 * This is typically used if the image resource contains additional images |
| 951 * beside those intended for the iconset. |
| 952 * |
| 953 * @attribute offsetX |
| 954 * @type number |
| 955 * @default 0 |
| 956 */ |
| 957 offsetX: 0, |
| 958 /** |
| 959 * The vertical offset of the icon images in the inconset src image. |
| 960 * This is typically used if the image resource contains additional images |
| 961 * beside those intended for the iconset. |
| 962 * |
| 963 * @attribute offsetY |
| 964 * @type number |
| 965 * @default 0 |
| 966 */ |
| 967 offsetY: 0, |
| 968 type: 'iconset', |
| 969 |
| 970 created: function() { |
| 971 this.iconMap = {}; |
| 972 this.iconNames = []; |
| 973 this.themes = {}; |
| 974 }, |
| 975 |
| 976 ready: function() { |
| 977 // TODO(sorvell): ensure iconset's src is always relative to the main |
| 978 // document |
| 979 if (this.src && (this.ownerDocument !== document)) { |
| 980 this.src = this.resolvePath(this.src, this.ownerDocument.baseURI); |
| 981 } |
| 982 this.super(); |
| 983 this.updateThemes(); |
| 984 }, |
| 985 |
| 986 iconsChanged: function() { |
| 987 var ox = this.offsetX; |
| 988 var oy = this.offsetY; |
| 989 this.icons && this.icons.split(/\s+/g).forEach(function(name, i) { |
| 990 this.iconNames.push(name); |
| 991 this.iconMap[name] = { |
| 992 offsetX: ox, |
| 993 offsetY: oy |
| 994 } |
| 995 if (ox + this.iconSize < this.width) { |
| 996 ox += this.iconSize; |
| 997 } else { |
| 998 ox = this.offsetX; |
| 999 oy += this.iconSize; |
| 1000 } |
| 1001 }, this); |
| 1002 }, |
| 1003 |
| 1004 updateThemes: function() { |
| 1005 var ts = this.querySelectorAll('property[theme]'); |
| 1006 ts && ts.array().forEach(function(t) { |
| 1007 this.themes[t.getAttribute('theme')] = { |
| 1008 offsetX: parseInt(t.getAttribute('offsetX')) || 0, |
| 1009 offsetY: parseInt(t.getAttribute('offsetY')) || 0 |
| 1010 }; |
| 1011 }, this); |
| 1012 }, |
| 1013 |
| 1014 // TODO(ffu): support retrived by index e.g. getOffset(10); |
| 1015 /** |
| 1016 * Returns an object containing `offsetX` and `offsetY` properties which |
| 1017 * specify the pixel locaion in the iconset's src file for the given |
| 1018 * `icon` and `theme`. It's uncommon to call this method. It is useful, |
| 1019 * for example, to manually position a css backgroundImage to the proper |
| 1020 * offset. It's more common to use the `applyIcon` method. |
| 1021 * |
| 1022 * @method getOffset |
| 1023 * @param {String|Number} icon The name of the icon or the index of the |
| 1024 * icon within in the icon image. |
| 1025 * @param {String} theme The name of the theme. |
| 1026 * @returns {Object} An object specifying the offset of the given icon |
| 1027 * within the icon resource file; `offsetX` is the horizontal offset and |
| 1028 * `offsetY` is the vertical offset. Both values are in pixel units. |
| 1029 */ |
| 1030 getOffset: function(icon, theme) { |
| 1031 var i = this.iconMap[icon]; |
| 1032 if (!i) { |
| 1033 var n = this.iconNames[Number(icon)]; |
| 1034 i = this.iconMap[n]; |
| 1035 } |
| 1036 var t = this.themes[theme]; |
| 1037 if (i && t) { |
| 1038 return { |
| 1039 offsetX: i.offsetX + t.offsetX, |
| 1040 offsetY: i.offsetY + t.offsetY |
| 1041 } |
| 1042 } |
| 1043 return i; |
| 1044 }, |
| 1045 |
| 1046 /** |
| 1047 * Applies an icon to the given element as a css background image. This |
| 1048 * method does not size the element, and it's often necessary to set |
| 1049 * the element's height and width so that the background image is visible. |
| 1050 * |
| 1051 * @method applyIcon |
| 1052 * @param {Element} element The element to which the background is |
| 1053 * applied. |
| 1054 * @param {String|Number} icon The name or index of the icon to apply. |
| 1055 * @param {String} theme (optional) The name of the theme for the icon. |
| 1056 * @param {Number} scale (optional, defaults to 1) A scaling factor |
| 1057 * with which the icon can be magnified. |
| 1058 */ |
| 1059 applyIcon: function(element, icon, theme, scale) { |
| 1060 var offset = this.getOffset(icon, theme); |
| 1061 scale = scale || 1; |
| 1062 if (element && offset) { |
| 1063 var style = element.style; |
| 1064 style.backgroundImage = 'url(' + this.src + ')'; |
| 1065 style.backgroundPosition = (-offset.offsetX * scale + 'px') + |
| 1066 ' ' + (-offset.offsetY * scale + 'px'); |
| 1067 style.backgroundSize = scale === 1 ? 'auto' : |
| 1068 this.width * scale + 'px'; |
| 1069 } |
| 1070 } |
| 1071 |
| 1072 }); |
| 1073 |
| 1074 </script> |
| 1075 |
| 1076 </polymer-element> |
| 1077 |
| 1078 |
| 1079 <polymer-element name="core-iconset-svg" extends="core-meta" attributes="iconSiz
e" assetpath="../core-iconset-svg/"> |
| 1080 |
| 1081 <script> |
| 1082 |
| 1083 Polymer('core-iconset-svg', { |
| 1084 |
| 1085 |
| 1086 /** |
| 1087 * The size of an individual icon. Note that icons must be square. |
| 1088 * |
| 1089 * @attribute iconSize |
| 1090 * @type number |
| 1091 * @default 24 |
| 1092 */ |
| 1093 iconSize: 24, |
| 1094 type: 'iconset', |
| 1095 |
| 1096 iconById: function(id) { |
| 1097 return this.querySelector('#' + id); |
| 1098 }, |
| 1099 |
| 1100 cloneIcon: function(id) { |
| 1101 var icon = this.iconById(id); |
| 1102 if (icon) { |
| 1103 var content = icon.cloneNode(true); |
| 1104 var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"
); |
| 1105 svg.setAttribute('viewBox', '0 0 ' + this.iconSize + ' ' + |
| 1106 this.iconSize); |
| 1107 // NOTE(dfreedm): work around https://crbug.com/370136 |
| 1108 svg.style.pointerEvents = 'none'; |
| 1109 svg.appendChild(content); |
| 1110 return svg; |
| 1111 } |
| 1112 }, |
| 1113 |
| 1114 get iconNames() { |
| 1115 if (!this._iconNames) { |
| 1116 this._iconNames = this.findIconNames(); |
| 1117 } |
| 1118 return this._iconNames; |
| 1119 }, |
| 1120 |
| 1121 findIconNames: function() { |
| 1122 var icons = this.querySelectorAll('[id]').array(); |
| 1123 if (icons.length) { |
| 1124 return icons.map(function(n){ return n.id }); |
| 1125 } |
| 1126 }, |
| 1127 |
| 1128 /** |
| 1129 * Applies an icon to the given element. The svg icon is added to the |
| 1130 * element's shadowRoot if one exists or directly to itself. |
| 1131 * |
| 1132 * @method applyIcon |
| 1133 * @param {Element} element The element to which the icon is |
| 1134 * applied. |
| 1135 * @param {String|Number} icon The name the icon to apply. |
| 1136 */ |
| 1137 applyIcon: function(element, icon) { |
| 1138 var root = element.shadowRoot || element; |
| 1139 // remove old |
| 1140 var old = root.querySelector('svg'); |
| 1141 if (old) { |
| 1142 old.remove(); |
| 1143 } |
| 1144 // install new |
| 1145 var svg = this.cloneIcon(icon); |
| 1146 if (!svg) { |
| 1147 return; |
| 1148 } |
| 1149 svg.style.height = svg.style.width = this.iconSize + 'px'; |
| 1150 svg.style.verticalAlign = 'middle'; |
| 1151 if (svg) { |
| 1152 root.insertBefore(svg, root.firstElementChild); |
| 1153 } |
| 1154 } |
| 1155 }); |
| 1156 |
| 1157 </script> |
| 1158 |
| 1159 </polymer-element> |
| 1160 |
| 1161 <core-iconset-svg id="icons" iconsize="24"> |
| 1162 <svg><defs> |
| 1163 <g id="accessibility"><path d="M12,2c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,
2,12,2z M21,9h-6v13h-2v-6h-2v6H9V9H3V7h18V9z"></path></g> |
| 1164 <g id="account-box"><path d="M3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5c0-1.
1-0.9-2-2-2H5C3.9,3,3,3.9,3,5z M15,9c0,1.7-1.3,3-3,3c-1.7,0-3-1.3-3-3c0-1.7,1.3-
3,3-3C13.7,6,15,7.3,15,9z M6,17c0-2,4-3.1,6-3.1s6,1.1,6,3.1v1H6V17z"></path></g> |
| 1165 <g id="account-circle"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5
,10-10S17.5,2,12,2z M12,5c1.7,0,3,1.3,3,3c0,1.7-1.3,3-3,3c-1.7,0-3-1.3-3-3C9,6.3
,10.3,5,12,5z M12,19.2c-2.5,0-4.7-1.3-6-3.2c0-2,4-3.1,6-3.1c2,0,6,1.1,6,3.1C16.7
,17.9,14.5,19.2,12,19.2z"></path></g> |
| 1166 <g id="add"><path d="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z"></path></g> |
| 1167 <g id="add-box"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0
.9,2-2V5C21,3.9,20.1,3,19,3z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z"></path></g> |
| 1168 <g id="add-circle"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-
10S17.5,2,12,2z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z"></path></g> |
| 1169 <g id="add-circle-outline"><path d="M13,7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z M12,2C6.5
,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8
-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"></path></g> |
| 1170 <g id="apps"><path d="M4,8h4V4H4V8z M10,20h4v-4h-4V20z M4,20h4v-4H4V20z M4,14h4v
-4H4V14z M10,14h4v-4h-4V14z M16,4v4h4V4H16z M10,8h4V4h-4V8z M16,14h4v-4h-4V14z M
16,20h4v-4h-4V20z"></path></g> |
| 1171 <g id="archive"><path d="M20.5,5.2l-1.4-1.7C18.9,3.2,18.5,3,18,3H6C5.5,3,5.1,3.2
,4.8,3.5L3.5,5.2C3.2,5.6,3,6,3,6.5V19c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V6.5C21,
6,20.8,5.6,20.5,5.2z M12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5z M5.1,5l0.8-1h12l0.9,
1H5.1z"></path></g> |
| 1172 <g id="arrow-back"><path d="M20,11H7.8l5.6-5.6L12,4l-8,8l8,8l1.4-1.4L7.8,13H20V1
1z"></path></g> |
| 1173 <g id="arrow-drop-down"><polygon points="7,10 12,15 17,10 "></polygon></g> |
| 1174 <g id="arrow-drop-up"><polygon points="7,14 12,9 17,14 "></polygon></g> |
| 1175 <g id="arrow-forward"><polygon points="12,4 10.6,5.4 16.2,11 4,11 4,13 16.2,13 1
0.6,18.6 12,20 20,12 "></polygon></g> |
| 1176 <g id="attachment"><path d="M7.5,18c-3,0-5.5-2.5-5.5-5.5S4.5,7,7.5,7H18c2.2,0,4,
1.8,4,4s-1.8,4-4,4H9.5C8.1,15,7,13.9,7,12.5S8.1,10,9.5,10H17v1.5H9.5c-0.6,0-1,0.
4-1,1s0.4,1,1,1H18c1.4,0,2.5-1.1,2.5-2.5S19.4,8.5,18,8.5H7.5c-2.2,0-4,1.8-4,4s1.
8,4,4,4H17V18H7.5z"></path></g> |
| 1177 <g id="backspace"><path d="M22,3H7C6.3,3,5.8,3.3,5.4,3.9L0,12l5.4,8.1C5.8,20.6,6
.3,21,7,21h15c1.1,0,2-0.9,2-2V5C24,3.9,23.1,3,22,3z M19,15.6L17.6,17L14,13.4L10.
4,17L9,15.6l3.6-3.6L9,8.4L10.4,7l3.6,3.6L17.6,7L19,8.4L15.4,12L19,15.6z"></path>
</g> |
| 1178 <g id="backup"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.
4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M14,
13v4h-4v-4H7l5-5l5,5H14z"></path></g> |
| 1179 <g id="block"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17
.5,2,12,2z M4,12c0-4.4,3.6-8,8-8c1.8,0,3.5,0.6,4.9,1.7L5.7,16.9C4.6,15.5,4,13.8,
4,12z M12,20c-1.8,0-3.5-0.6-4.9-1.7L18.3,7.1C19.4,8.5,20,10.2,20,12C20,16.4,16.4
,20,12,20z"></path></g> |
| 1180 <g id="book"><path d="M18,22c1.1,0,2-0.9,2-2V4c0-1.1-0.9-2-2-2h-6v7L9.5,7.5L7,9V
2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2H18z"></path></g> |
| 1181 <g id="bookmark"><path d="M17,3H7C5.9,3,5,3.9,5,5l0,16l7-3l7,3V5C19,3.9,18.1,3,1
7,3z"></path></g> |
| 1182 <g id="bookmark-outline"><path d="M17,3H7C5.9,3,5,3.9,5,5l0,16l7-3l7,3V5C19,3.9,
18.1,3,17,3z M17,18l-5-2.2L7,18V5h10V18z"></path></g> |
| 1183 <g id="bug-report"><path d="M20,8h-2.8c-0.5-0.8-1.1-1.5-1.8-2L17,4.4L15.6,3l-2.2
,2.2C13,5.1,12.5,5,12,5s-1,0.1-1.4,0.2L8.4,3L7,4.4L8.6,6C7.9,6.5,7.3,7.2,6.8,8H4
v2h2.1C6,10.3,6,10.7,6,11v1H4v2h2v1c0,0.3,0,0.7,0.1,1H4v2h2.8c1,1.8,3,3,5.2,3s4.
2-1.2,5.2-3H20v-2h-2.1c0.1-0.3,0.1-0.7,0.1-1v-1h2v-2h-2v-1c0-0.3,0-0.7-0.1-1H20V
8z M14,16h-4v-2h4V16z M14,12h-4v-2h4V12z"></path></g> |
| 1184 <g id="cancel"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S1
7.5,2,12,2z M17,15.6L15.6,17L12,13.4L8.4,17L7,15.6l3.6-3.6L7,8.4L8.4,7l3.6,3.6L1
5.6,7L17,8.4L13.4,12L17,15.6z"></path></g> |
| 1185 <g id="check"><polygon points="9,16.2 4.8,12 3.4,13.4 9,19 21,7 19.6,5.6 "></pol
ygon></g> |
| 1186 <g id="check-box"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2
-0.9,2-2V5C21,3.9,20.1,3,19,3z M10,17l-5-5l1.4-1.4l3.6,3.6l7.6-7.6L19,8L10,17z">
</path></g> |
| 1187 <g id="check-box-blank"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,2,2,2h14
c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z"></path></g> |
| 1188 <g id="check-box-outline"><path d="M7.9,10.1l-1.4,1.4L11,16L21,6l-1.4-1.4L11,13.
2L7.9,10.1z M19,19L5,19V5h10V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0
.9,2-2v-8h-2V19z"></path></g> |
| 1189 <g id="check-box-outline-blank"><path d="M19,5v14L5,19V5H19 M19,3H5C3.9,3,3,3.9,
3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3L19,3z"></path></g
> |
| 1190 <g id="check-circle"><path d="M12,2C6.5,2,2,6.5,2,12c0,5.5,4.5,10,10,10c5.5,0,10
-4.5,10-10C22,6.5,17.5,2,12,2z M10,17l-5-5l1.4-1.4l3.6,3.6l7.6-7.6L19,8L10,17z">
</path></g> |
| 1191 <g id="check-circle-blank"><path d="M12,2C6.5,2,2,6.5,2,12c0,5.5,4.5,10,10,10c5.
5,0,10-4.5,10-10C22,6.5,17.5,2,12,2z"></path></g> |
| 1192 <g id="check-circle-outline"><path d="M7.9,10.1l-1.4,1.4L11,16L21,6l-1.4-1.4L11,
13.2L7.9,10.1z M20,12c0,4.4-3.6,8-8,8s-8-3.6-8-8s3.6-8,8-8c0.8,0,1.5,0.1,2.2,0.3
l1.6-1.6C14.6,2.3,13.3,2,12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10H20z"></
path></g> |
| 1193 <g id="check-circle-outline-blank"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c
5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,
8S16.4,20,12,20z"></path></g> |
| 1194 <g id="chevron-left"><polygon points="15.4,7.4 14,6 8,12 14,18 15.4,16.6 10.8,12
"></polygon></g> |
| 1195 <g id="chevron-right"><polygon points="10,6 8.6,7.4 13.2,12 8.6,16.6 10,18 16,12
"></polygon></g> |
| 1196 <g id="clear"><polygon points="19,6.4 17.6,5 12,10.6 6.4,5 5,6.4 10.6,12 5,17.6
6.4,19 12,13.4 17.6,19 19,17.6 13.4,12 "></polygon></g> |
| 1197 <g id="close"><polygon points="19,6.4 17.6,5 12,10.6 6.4,5 5,6.4 10.6,12 5,17.6
6.4,19 12,13.4 17.6,19 19,17.6 13.4,12 "></polygon></g> |
| 1198 <g id="cloud"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4
,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z"></pa
th></g> |
| 1199 <g id="cloud-done"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.
3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z
M10,17l-3.5-3.5l1.4-1.4l2.1,2.1L15.2,9l1.4,1.4L10,17z"></path></g> |
| 1200 <g id="cloud-download"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,
8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,
10z M17,13l-5,5l-5-5h3V9h4v4H17z"></path></g> |
| 1201 <g id="cloud-off"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6c-1.5,0-2.9,0.4-4,1.2l1.
5,1.5C10.2,6.2,11.1,6,12,6c3,0,5.5,2.5,5.5,5.5V12H19c1.7,0,3,1.3,3,3c0,1.1-0.6,2
.1-1.6,2.6l1.5,1.5c1.3-0.9,2.1-2.4,2.1-4.1C24,12.4,21.9,10.2,19.4,10z M3,5.3L5.8
,8C2.6,8.2,0,10.8,0,14c0,3.3,2.7,6,6,6h11.7l2,2l1.3-1.3L4.3,4L3,5.3z M7.7,10l8,8
H6c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4H7.7z"></path></g> |
| 1202 <g id="cloud-queue"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2
.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z
M19,18H6c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4h0.7C7.4,7.7,9.5,6,12,6c3,0,5.5,2.5,5.
5,5.5V12H19c1.7,0,3,1.3,3,3S20.7,18,19,18z"></path></g> |
| 1203 <g id="cloud-upload"><path d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C
2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10
z M14,13v4h-4v-4H7l5-5l5,5H14z"></path></g> |
| 1204 <g id="content-copy"><path d="M19,2h-4.2c-0.4-1.2-1.5-2-2.8-2c-1.3,0-2.4,0.8-2.8
,2H5C3.9,2,3,2.9,3,4v16c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V4C21,2.9,20.1,2,19,2z
M12,2c0.6,0,1,0.4,1,1s-0.4,1-1,1c-0.6,0-1-0.4-1-1S11.4,2,12,2z M19,20H5V4h2v3h1
0V4h2V20z"></path></g> |
| 1205 <g id="content-cut"><path d="M10,6c0-2.2-1.8-4-4-4S2,3.8,2,6c0,2.2,1.8,4,4,4c0.6
,0,1.1-0.1,1.6-0.4L10,12l-2.4,2.4C7.1,14.1,6.6,14,6,14c-2.2,0-4,1.8-4,4c0,2.2,1.
8,4,4,4s4-1.8,4-4c0-0.6-0.1-1.1-0.4-1.6L12,14l7,7h4L9.6,7.6C9.9,7.1,10,6.6,10,6z
M6,8C4.9,8,4,7.1,4,6s0.9-2,2-2c1.1,0,2,0.9,2,2S7.1,8,6,8z M6,20c-1.1,0-2-0.9-2-
2s0.9-2,2-2c1.1,0,2,0.9,2,2S7.1,20,6,20z M12,11.5c0.3,0,0.5,0.2,0.5,0.5c0,0.3-0.
2,0.5-0.5,0.5c-0.3,0-0.5-0.2-0.5-0.5C11.5,11.7,11.7,11.5,12,11.5z M23,3h-4l-6,6l
2,2L23,3z"></path></g> |
| 1206 <g id="content-paste"><path d="M16,1H4C2.9,1,2,1.9,2,3v14h2V3h12V1z M19,5H8C6.9,
5,6,5.9,6,7v14c0,1.1,0.9,2,2,2h11c1.1,0,2-0.9,2-2V7C21,5.9,20.1,5,19,5z M19,21H8
V7h11V21z"></path></g> |
| 1207 <g id="create"><path d="M3,17.2V21h3.8L17.8,9.9l-3.8-3.8L3,17.2z M20.7,7c0.4-0.4
,0.4-1,0-1.4l-2.3-2.3c-0.4-0.4-1-0.4-1.4,0l-1.8,1.8l3.8,3.8L20.7,7z"></path></g> |
| 1208 <g id="credit-card"><path d="M20,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1
,0,2-0.9,2-2V6C22,4.9,21.1,4,20,4z M20,18H4v-6h16V18z M20,8H4V6h16V8z"></path></
g> |
| 1209 <g id="delete"><path d="M6,19c0,1.1,0.9,2,2,2h8c1.1,0,2-0.9,2-2V7H6V19z M19,4h-3
.5l-1-1h-5l-1,1H5v2h14V4z"></path></g> |
| 1210 <g id="done"><polygon points="9,16.2 4.8,12 3.4,13.4 9,19 21,7 19.6,5.6 "></poly
gon></g> |
| 1211 <g id="done-all"><path d="M18,7l-1.4-1.4l-6.3,6.3l1.4,1.4L18,7z M22.2,5.6L11.7,1
6.2L7.5,12l-1.4,1.4l5.6,5.6l12-12L22.2,5.6z M0.4,13.4L6,19l1.4-1.4L1.8,12L0.4,13
.4z"></path></g> |
| 1212 <g id="drafts"><path d="M22,8c0-0.7-0.4-1.3-0.9-1.7L12,1L2.9,6.3C2.4,6.7,2,7.3,2
,8v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2L22,8z M12,13L3.7,7.8L12,3l8.3,4.8L12,13
z"></path></g> |
| 1213 <g id="drive-document"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.
1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17,9H7V7h10V9z M17,13H7v-2h10V13z M14,17H7v
-2h7V17z"></path></g> |
| 1214 <g id="drive-drawing"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1
,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M18,18h-6v-5.8c-0.7,0.6-1.5,1-2.5,1c-2,0-3.7-
1.7-3.7-3.7s1.7-3.7,3.7-3.7c2,0,3.7,1.7,3.7,3.7c0,1-0.4,1.8-1,2.5H18V18z"></path
></g> |
| 1215 <g id="drive-file"><path d="M6,2C4.9,2,4,2.9,4,4l0,16c0,1.1,0.9,2,2,2h12c1.1,0,2
-0.9,2-2V8l-6-6H6z M13,9V3.5L18.5,9H13z"></path></g> |
| 1216 <g id="drive-form"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,
2-0.9,2-2V5C21,3.9,20.1,3,19,3z M9,17H7v-2h2V17z M9,13H7v-2h2V13z M9,9H7V7h2V9z
M17,17h-7v-2h7V17z M17,13h-7v-2h7V13z M17,9h-7V7h7V9z"></path></g> |
| 1217 <g id="drive-fusiontable"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14
c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,10.2L13,17l-4-4l-4,4v-3l4-4l4,4l6-6.8
V10.2z"></path></g> |
| 1218 <g id="drive-image"><path d="M21,19V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5v14c0,1.1
,0.9,2,2,2h14C20.1,21,21,20.1,21,19z M8.5,13.5l2.5,3l3.5-4.5l4.5,6H5L8.5,13.5z">
</path></g> |
| 1219 <g id="drive-ms-excel"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.
1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M16.2,17h-2L12,13.2L9.8,17h-2l3.2-5L7.8,7h2l
2.2,3.8L14.2,7h2L13,12L16.2,17z"></path></g> |
| 1220 <g id="drive-ms-powerpoint"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h
14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M9.8,13.4V17H8V7h4.3c1.5,0,2.2,0.3,2.8,
0.9c0.7,0.6,0.9,1.4,0.9,2.3c0,1-0.3,1.8-0.9,2.3c-0.6,0.5-1.3,0.8-2.8,0.8H9.8z"><
/path><path d="M9.8,12V8.4h2.3c0.7,0,1.2,0.2,1.5,0.6c0.3,0.4,0.5,0.7,0.5,1.2c0,0
.6-0.2,0.9-0.5,1.3c-0.3,0.3-0.7,0.5-1.4,0.5H9.8z"></path></g> |
| 1221 <g id="drive-ms-word"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1
,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M15.5,17H14l-2-7.5L10,17H8.5L6.1,7h1.7l1.5,7.
5l2-7.5h1.4l2,7.5L16.2,7h1.7L15.5,17z"></path></g> |
| 1222 <g id="drive-pdf"><path d="M11.3,8.6L11.3,8.6C11.4,8.6,11.4,8.6,11.3,8.6c0.1-0.4
,0.2-0.6,0.2-0.9l0-0.2c0.1-0.5,0.1-0.9,0-1c0,0,0,0,0-0.1l-0.1-0.1c0,0,0,0,0,0c0,
0,0,0,0,0c0,0,0,0.1-0.1,0.1C11.1,7,11.1,7.7,11.3,8.6C11.3,8.6,11.3,8.6,11.3,8.6z
M8.3,15.5c-0.2,0.1-0.4,0.2-0.5,0.3c-0.7,0.6-1.2,1.3-1.3,1.6c0,0,0,0,0,0c0,0,0,0
,0,0c0,0,0,0,0,0C7.1,17.3,7.7,16.7,8.3,15.5C8.4,15.5,8.4,15.5,8.3,15.5C8.4,15.5,
8.3,15.5,8.3,15.5z M17.5,14c-0.1-0.1-0.5-0.4-1.9-0.4c-0.1,0-0.1,0-0.2,0c0,0,0,0,
0,0c0,0,0,0,0,0.1c0.7,0.3,1.4,0.5,1.9,0.5c0.1,0,0.1,0,0.2,0l0,0c0,0,0.1,0,0.1,0c
0,0,0,0,0-0.1c0,0,0,0,0,0C17.6,14.1,17.5,14.1,17.5,14z M19,3H5C3.9,3,3,3.9,3,5v1
4c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17.9,14.8C17.7,14.9,
17.4,15,17,15c-0.8,0-2-0.2-3-0.7c-1.7,0.2-3,0.4-4,0.8c-0.1,0-0.1,0-0.2,0.1c-1.2,
2.1-2.2,3.1-3,3.1c-0.2,0-0.3,0-0.4-0.1l-0.5-0.3l0-0.1c-0.1-0.2-0.1-0.3-0.1-0.5c0
.1-0.5,0.7-1.4,1.9-2.1c0.2-0.1,0.5-0.3,0.9-0.5c0.3-0.5,0.6-1.1,1-1.8c0.5-1,0.8-2
,1.1-2.9l0,0c-0.4-1.2-0.6-1.9-0.2-3.3c0.1-0.4,0.4-0.8,0.8-0.8l0.2,0c0.2,0,0.4,0.
1,0.6,0.2c0.7,0.7,0.4,2.3,0,3.6c0,0.1,0,0.1,0,0.1c0.4,1.1,1,2,1.6,2.6c0.3,0.2,0.
5,0.4,0.9,0.6c0.5,0,0.9-0.1,1.3-0.1c1.2,0,2,0.2,2.3,0.7c0.1,0.2,0.1,0.4,0.1,0.6C
18.2,14.3,18.1,14.6,17.9,14.8z M11.4,10.9c-0.2,0.7-0.6,1.5-1,2.4c-0.2,0.4-0.4,0.
7-0.6,1.1c0,0,0.1,0,0.1,0l0.1,0v0c1.3-0.5,2.5-0.8,3.3-0.9c-0.2-0.1-0.3-0.2-0.4-0
.3C12.4,12.6,11.8,11.8,11.4,10.9z"></path></g> |
| 1223 <g id="drive-presentation"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h1
4c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,16H5V8h14V16z"></path></g> |
| 1224 <g id="drive-script"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,4h0v6h0l0,4c0,1.1,0.9,2,
2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M11,17v-3H5v-4h6V7l5,5L11,17z"></pa
th></g> |
| 1225 <g id="drive-site"><path d="M19,4H5C3.9,4,3,4.9,3,6l0,12c0,1.1,0.9,2,2,2h14c1.1,
0,2-0.9,2-2V6C21,4.9,20.1,4,19,4z M14,18H5v-4h9V18z M14,13H5V9h9V13z M19,18h-4V9
h4V18z"></path></g> |
| 1226 <g id="drive-spreadsheet"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,3h0v11c0,1.1,0.9,2,
2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,11h-8v8H9v-8H5V9h4V5h2v4h8V11z"
></path></g> |
| 1227 <g id="drive-video"><path d="M18,4l2,4h-3l-2-4h-2l2,4h-3l-2-4H8l2,4H7L5,4H4C2.9,
4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V4H18z"></path></g> |
| 1228 <g id="error"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17
.5,2,12,2z M13,17h-2v-2h2V17z M13,13h-2V7h2V13z"></path></g> |
| 1229 <g id="event"><path d="M17,12h-5v5h5V12z M16,1v2H8V1H6v2H5C3.9,3,3,3.9,3,5l0,14c
0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-1V1H16z M19,19H5V8h14V19z"
></path></g> |
| 1230 <g id="exit-to-app"><path d="M10.1,15.6l1.4,1.4l5-5l-5-5l-1.4,1.4l2.6,2.6H3v2h9.
7L10.1,15.6z M19,3H5C3.9,3,3,3.9,3,5v4h2V5h14v14H5v-4H3v4c0,1.1,0.9,2,2,2h14c1.1
,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z"></path></g> |
| 1231 <g id="expand-less"><polygon points="12,8 6,14 7.4,15.4 12,10.8 16.6,15.4 18,14
"></polygon></g> |
| 1232 <g id="expand-more"><polygon points="16.6,8.6 12,13.2 7.4,8.6 6,10 12,16 18,10 "
></polygon></g> |
| 1233 <g id="explore"><path d="M12,10.9c-0.6,0-1.1,0.5-1.1,1.1s0.5,1.1,1.1,1.1c0.6,0,1
.1-0.5,1.1-1.1S12.6,10.9,12,10.9z M12,2C6.5,2,2,6.5,2,12c0,5.5,4.5,10,10,10c5.5,
0,10-4.5,10-10C22,6.5,17.5,2,12,2z M14.2,14.2L6,18l3.8-8.2L18,6L14.2,14.2z"></pa
th></g> |
| 1234 <g id="extension"><path d="M20.5,11H19V7c0-1.1-0.9-2-2-2h-4V3.5C13,2.1,11.9,1,10
.5,1C9.1,1,8,2.1,8,3.5V5H4C2.9,5,2,5.9,2,7l0,3.8h1.5c1.5,0,2.7,1.2,2.7,2.7S5,16.
2,3.5,16.2H2L2,20c0,1.1,0.9,2,2,2h3.8v-1.5c0-1.5,1.2-2.7,2.7-2.7c1.5,0,2.7,1.2,2
.7,2.7V22H17c1.1,0,2-0.9,2-2v-4h1.5c1.4,0,2.5-1.1,2.5-2.5S21.9,11,20.5,11z"></pa
th></g> |
| 1235 <g id="favorite"><path d="M12,21.4L10.6,20C5.4,15.4,2,12.3,2,8.5C2,5.4,4.4,3,7.5
,3c1.7,0,3.4,0.8,4.5,2.1C13.1,3.8,14.8,3,16.5,3C19.6,3,22,5.4,22,8.5c0,3.8-3.4,6
.9-8.6,11.5L12,21.4z"></path></g> |
| 1236 <g id="favorite-outline"><path d="M16.5,3c-1.7,0-3.4,0.8-4.5,2.1C10.9,3.8,9.2,3,
7.5,3C4.4,3,2,5.4,2,8.5c0,3.8,3.4,6.9,8.6,11.5l1.4,1.3l1.4-1.3c5.1-4.7,8.6-7.8,8
.6-11.5C22,5.4,19.6,3,16.5,3z M12.1,18.6L12,18.6l-0.1-0.1C7.1,14.2,4,11.4,4,8.5C
4,6.5,5.5,5,7.5,5c1.5,0,3,1,3.6,2.4h1.9C13.5,6,15,5,16.5,5c2,0,3.5,1.5,3.5,3.5C2
0,11.4,16.9,14.2,12.1,18.6z"></path></g> |
| 1237 <g id="file-download"><path d="M19,9h-4V3H9v6H5l7,7L19,9z M5,18v2h14v-2H5z"></pa
th></g> |
| 1238 <g id="file-upload"><polygon points="9,16 15,16 15,10 19,10 12,3 5,10 9,10 "><re
ct x="5" y="18" width="14" height="2"></rect></polygon></g> |
| 1239 <g id="filter"><path d="M10,18h4v-2h-4V18z M3,6v2h18V6H3z M6,13h12v-2H6V13z"></p
ath></g> |
| 1240 <g id="flag"><polygon points="14.4,6 14,4 5,4 5,21 7,21 7,14 12.6,14 13,16 20,16
20,6 "></polygon></g> |
| 1241 <g id="flip-to-back"><path d="M9,7H7l0,2h2V7z M9,11H7v2h2V11z M9,3C7.9,3,7,3.9,7
,5h2V3z M13,15h-2v2h2V15z M19,3v2h2C21,3.9,20.1,3,19,3z M13,3h-2v2h2V3z M9,17v-2
H7C7,16.1,7.9,17,9,17z M19,13h2v-2h-2V13z M19,9h2V7h-2V9z M19,17c1.1,0,2-0.9,2-2
h-2V17z M5,7H3v2h0l0,10c0,1.1,0.9,2,2,2h12v-2H5V7z M15,5h2V3h-2V5z M15,17h2v-2h-
2V17z"></path></g> |
| 1242 <g id="flip-to-front"><path d="M3,13h2v-2H3L3,13z M3,17h2v-2H3V17z M5,21v-2H3C3,
20.1,3.9,21,5,21z M3,9h2V7H3V9z M15,21h2v-2h-2V21z M19,3H9C7.9,3,7,3.9,7,5v2h0v2
v6c0,1.1,0.9,2,2,2h5h4h1c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,15H9V5h10V15z
M11,21h2v-2h-2V21z M7,21h2v-2H7V21z"></path></g> |
| 1243 <g id="folder"><path d="M10,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-
0.9,2-2V8c0-1.1-0.9-2-2-2h-8L10,4z"></path></g> |
| 1244 <g id="folder-shared"><path d="M20,6h-8l-2-2H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,
2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M15,9c1.1,0,2,0.9,2,2c0,1.1-0.9,2-2
,2c-1.1,0-2-0.9-2-2C13,9.9,13.9,9,15,9z M19,17h-8v-1c0-1.3,2.7-2,4-2c1.3,0,4,0.7
,4,2V17z"></path></g> |
| 1245 <g id="forward"><polygon points="12,8 12,4 20,12 12,20 12,16 4,16 4,8 "></polygo
n></g> |
| 1246 <g id="fullscreen"><path d="M7,14H5v5h5v-2H7V14z M5,10h2V7h3V5H5V10z M17,17h-3v2
h5v-5h-2V17z M14,5v2h3v3h2V5H14z"></path></g> |
| 1247 <g id="fullscreen-exit"><path d="M5,16h3v3h2v-5H5V16z M8,8H5v2h5V5H8V8z M14,19h2
v-3h3v-2h-5V19z M16,8V5h-2v5h5V8H16z"></path></g> |
| 1248 <g id="gesture"><path d="M4.6,6.9C5.3,6.2,6,5.5,6.3,5.7c0.5,0.2,0,1-0.3,1.5c-0.3
,0.4-2.9,3.9-2.9,6.3c0,1.3,0.5,2.3,1.3,3c0.8,0.6,1.7,0.7,2.6,0.5c1.1-0.3,1.9-1.4
,3.1-2.8c1.2-1.5,2.8-3.4,4.1-3.4c1.6,0,1.6,1,1.8,1.8c-3.8,0.6-5.4,3.7-5.4,5.4c0,
1.7,1.4,3.1,3.2,3.1c1.6,0,4.3-1.3,4.7-6.1H21v-2.5h-2.5c-0.2-1.6-1.1-4.2-4-4.2c-2
.2,0-4.2,1.9-4.9,2.8c-0.6,0.7-2.1,2.5-2.3,2.7c-0.3,0.3-0.7,0.8-1.1,0.8c-0.4,0-0.
7-0.8-0.4-1.9c0.4-1.1,1.4-2.9,1.9-3.5C8.4,8,8.9,7.2,8.9,5.9C8.9,3.7,7.3,3,6.4,3C
5.1,3,4,4,3.7,4.3C3.4,4.6,3.1,4.9,2.8,5.2L4.6,6.9z M13.9,18.6c-0.3,0-0.7-0.3-0.7
-0.7c0-0.6,0.7-2.2,2.9-2.8C15.7,17.8,14.6,18.6,13.9,18.6z"></path></g> |
| 1249 <g id="google"><path d="M16.3,13.4l-1.1-0.8c-0.4-0.3-0.8-0.7-0.8-1.4c0-0.7,0.5-1
.3,1-1.6c1.3-1,2.6-2.1,2.6-4.3c0-2.1-1.3-3.3-2-3.9h1.7L18.9,0h-6.2C8.3,0,6.1,2.8
,6.1,5.8c0,2.3,1.8,4.8,5,4.8h0.8c-0.1,0.3-0.4,0.8-0.4,1.3c0,1,0.4,1.4,0.9,2c-1.4
,0.1-4,0.4-5.9,1.6c-1.8,1.1-2.3,2.6-2.3,3.7c0,2.3,2.1,4.5,6.6,4.5c5.4,0,8-3,8-5.
9C18.8,15.7,17.7,14.6,16.3,13.4z M8.7,4.3c0-2.2,1.3-3.2,2.7-3.2c2.6,0,4,3.5,4,5.
5c0,2.6-2.1,3.1-2.9,3.1C10,9.7,8.7,6.6,8.7,4.3z M12.3,22.3c-3.3,0-5.4-1.5-5.4-3.
7c0-2.2,2-2.9,2.6-3.2c1.3-0.4,3-0.5,3.3-0.5c0.3,0,0.5,0,0.7,0c2.4,1.7,3.4,2.4,3.
4,4C16.9,20.8,15,22.3,12.3,22.3z"></path></g> |
| 1250 <g id="google-plus"><path d="M21,10V7h-2v3h-3v2h3v3h2v-3h3v-2H21z M13.3,13.4l-1.
1-0.8c-0.4-0.3-0.8-0.7-0.8-1.4c0-0.7,0.5-1.3,1-1.6c1.3-1,2.6-2.1,2.6-4.3c0-2.1-1
.3-3.3-2-3.9h1.7L15.9,0H9.7C5.3,0,3.1,2.8,3.1,5.8c0,2.3,1.8,4.8,5,4.8h0.8c-0.1,0
.3-0.4,0.8-0.4,1.3c0,1,0.4,1.4,0.9,2c-1.4,0.1-4,0.4-5.9,1.6c-1.8,1.1-2.3,2.6-2.3
,3.7c0,2.3,2.1,4.5,6.6,4.5c5.4,0,8-3,8-5.9C15.8,15.7,14.7,14.6,13.3,13.4z M5.7,4
.3c0-2.2,1.3-3.2,2.7-3.2c2.6,0,4,3.5,4,5.5c0,2.6-2.1,3.1-2.9,3.1C7,9.7,5.7,6.6,5
.7,4.3z M9.3,22.3c-3.3,0-5.4-1.5-5.4-3.7c0-2.2,2-2.9,2.6-3.2c1.3-0.4,3-0.5,3.3-0
.5c0.3,0,0.5,0,0.7,0c2.4,1.7,3.4,2.4,3.4,4C13.9,20.8,12,22.3,9.3,22.3z"></path><
/g> |
| 1251 <g id="help"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.
5,2,12,2z M13,19h-2v-2h2V19z M15.1,11.3l-0.9,0.9C13.4,12.9,13,13.5,13,15h-2v-0.5
c0-1.1,0.4-2.1,1.2-2.8l1.2-1.3C13.8,10.1,14,9.6,14,9c0-1.1-0.9-2-2-2c-1.1,0-2,0.
9-2,2H8c0-2.2,1.8-4,4-4c2.2,0,4,1.8,4,4C16,9.9,15.6,10.7,15.1,11.3z"></path></g> |
| 1252 <g id="history"><path opacity="0.9" d="M12.5,2C9,2,5.9,3.9,4.3,6.8L2,4.5V11h6.5L
5.7,8.2C7,5.7,9.5,4,12.5,4c4.1,0,7.5,3.4,7.5,7.5c0,4.1-3.4,7.5-7.5,7.5c-3.3,0-6-
2.1-7.1-5H3.3c1.1,4,4.8,7,9.2,7c5.3,0,9.5-4.3,9.5-9.5S17.7,2,12.5,2z M11,7v5.1l4
.7,2.8l0.8-1.3l-4-2.4V7H11z"></path></g> |
| 1253 <g id="home"><polygon points="10,20 10,14 14,14 14,20 19,20 19,12 22,12 12,3 2,1
2 5,12 5,20 "></polygon></g> |
| 1254 <g id="https"><path d="M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6v2H6c-1.1,0-2,0
.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,17c-1.1,
0-2-0.9-2-2s0.9-2,2-2c1.1,0,2,0.9,2,2S13.1,17,12,17z M15.1,8H8.9V6c0-1.7,1.4-3.1
,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1V8z"></path></g> |
| 1255 <g id="inbox"><path d="M19,3H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0
.9,2-2V5C21,3.9,20.1,3,19,3z M19,15h-4c0,1.7-1.3,3-3,3c-1.7,0-3-1.3-3-3H5V5h14V1
5z M16,10h-2V7h-4v3H8l4,4L16,10z"></path></g> |
| 1256 <g id="info"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.
5,2,12,2z M13,17h-2v-6h2V17z M13,9h-2V7h2V9z"></path></g> |
| 1257 <g id="info-outline"><path d="M11,17h2v-6h-2V17z M12,2C6.5,2,2,6.5,2,12s4.5,10,1
0,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3
.6,8,8S16.4,20,12,20z M11,9h2V7h-2V9z"></path></g> |
| 1258 <g id="keep"><path d="M16,12V4h1V2H7v2h1v8l-2,2v2h5.2v6h1.6v-6H18v-2L16,12z"></p
ath></g> |
| 1259 <g id="label"><path d="M17.6,5.8C17.3,5.3,16.7,5,16,5L5,5C3.9,5,3,5.9,3,7v10c0,1
.1,0.9,2,2,2l11,0c0.7,0,1.3-0.3,1.6-0.8L22,12L17.6,5.8z"></path></g> |
| 1260 <g id="label-outline"><path d="M17.6,5.8C17.3,5.3,16.7,5,16,5L5,5C3.9,5,3,5.9,3,
7v10c0,1.1,0.9,2,2,2l11,0c0.7,0,1.3-0.3,1.6-0.8L22,12L17.6,5.8z M16,17H5V7h11l3.
5,5L16,17z"></path></g> |
| 1261 <g id="language"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10
S17.5,2,12,2z M18.9,8H16c-0.3-1.3-0.8-2.4-1.4-3.6C16.4,5.1,18,6.3,18.9,8z M12,4c
0.8,1.2,1.5,2.5,1.9,4h-3.8C10.5,6.6,11.2,5.2,12,4z M4.3,14C4.1,13.4,4,12.7,4,12s
0.1-1.4,0.3-2h3.4c-0.1,0.7-0.1,1.3-0.1,2s0.1,1.3,0.1,2H4.3z M5.1,16H8c0.3,1.3,0.
8,2.4,1.4,3.6C7.6,18.9,6,17.7,5.1,16z M8,8H5.1c1-1.7,2.5-2.9,4.3-3.6C8.8,5.6,8.3
,6.7,8,8z M12,20c-0.8-1.2-1.5-2.5-1.9-4h3.8C13.5,17.4,12.8,18.8,12,20z M14.3,14H
9.7c-0.1-0.7-0.2-1.3-0.2-2s0.1-1.3,0.2-2h4.7c0.1,0.7,0.2,1.3,0.2,2S14.4,13.3,14.
3,14z M14.6,19.6c0.6-1.1,1.1-2.3,1.4-3.6h2.9C18,17.7,16.4,18.9,14.6,19.6z M16.4,
14c0.1-0.7,0.1-1.3,0.1-2s-0.1-1.3-0.1-2h3.4c0.2,0.6,0.3,1.3,0.3,2s-0.1,1.4-0.3,2
H16.4z"></path></g> |
| 1262 <g id="launch"><path d="M19,19H5V5h7V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1
.1,0,2-0.9,2-2v-7h-2V19z M14,3v2h3.6l-9.8,9.8l1.4,1.4L19,6.4V10h2V3H14z"></path>
</g> |
| 1263 <g id="link"><path d="M8,13h8v-2H8V13z M3.9,12c0-2.3,1.8-4.1,4.1-4.1h3V6H8c-3.3,
0-6,2.7-6,6s2.7,6,6,6h3v-1.9H8C5.7,16.1,3.9,14.3,3.9,12z M16,6h-3v1.9h3c2.3,0,4.
1,1.8,4.1,4.1c0,2.3-1.8,4.1-4.1,4.1h-3V18h3c3.3,0,6-2.7,6-6S19.3,6,16,6z"></path
></g> |
| 1264 <g id="list"><path d="M3,13h2v-2H3V13z M3,17h2v-2H3V17z M3,9h2V7H3V9z M7,13h14v-
2H7V13z M7,17h14v-2H7V17z M7,7v2h14V7H7z"></path></g> |
| 1265 <g id="lock"><path d="M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6v2H6c-1.1,0-2,0.
9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,17c-1.1,0
-2-0.9-2-2s0.9-2,2-2c1.1,0,2,0.9,2,2S13.1,17,12,17z M15.1,8H8.9V6c0-1.7,1.4-3.1,
3.1-3.1c1.7,0,3.1,1.4,3.1,3.1V8z"></path></g> |
| 1266 <g id="lock-open"><path d="M12,17c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10
.9,17,12,17z M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6h1.9c0-1.7,1.4-3.1,3.1-3.
1c1.7,0,3.1,1.4,3.1,3.1v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2
-2V10C20,8.9,19.1,8,18,8z M18,20H6V10h12V20z"></path></g> |
| 1267 <g id="lock-outline"><path d="M18,8h-1V6c0-2.8-2.2-5-5-5C9.2,1,7,3.2,7,6v2H6c-1.
1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,2
.9c1.7,0,3.1,1.4,3.1,3.1v2H9V6H8.9C8.9,4.3,10.3,2.9,12,2.9z M18,20H6V10h12V20z M
12,17c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10.9,17,12,17z"></path></g> |
| 1268 <g id="mail"><path d="M20,4H4C2.9,4,2,4.9,2,6l0,12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.
9,2-2V6C22,4.9,21.1,4,20,4z M20,8l-8,5L4,8V6l8,5l8-5V8z"></path></g> |
| 1269 <g id="markunread"><path d="M22,6l2-2l-2-2l-2,2l-2-2l-2,2l-2-2l-2,2l-2-2L8,4L6,2
L4,4L2,2L0,4l2,2L0,8l2,2l-2,2l2,2l-2,2l2,2l-2,2l2,2l2-2l2,2l2-2l2,2l2-2l2,2l2-2l
2,2l2-2l2,2l2-2l-2-2l2-2l-2-2l2-2l-2-2l2-2L22,6z M20,8l-8,5L4,8V6l8,5l8-5V8z"></
path></g> |
| 1270 <g id="menu"><path d="M3,18h18v-2H3V18z M3,13h18v-2H3V13z M3,6v2h18V6H3z"></path
></g> |
| 1271 <g id="more-horiz"><path d="M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S7.1
,10,6,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S19.1,10,18,10z M12,1
0c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,10,12,10z"></path></g> |
| 1272 <g id="more-vert"><path d="M12,8c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10.
9,8,12,8z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,10,12,10z M12,1
6c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,16,12,16z"></path></g> |
| 1273 <g id="print"><path d="M19,8H5c-1.7,0-3,1.3-3,3v6h4v4h12v-4h4v-6C22,9.3,20.7,8,1
9,8z M16,19H8v-5h8V19z M19,12c-0.6,0-1-0.4-1-1s0.4-1,1-1c0.6,0,1,0.4,1,1S19.6,12
,19,12z M18,3H6v4h12V3z"></path></g> |
| 1274 <g id="radio-button-off"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4
.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,
12,20z"></path></g> |
| 1275 <g id="radio-button-on"><path d="M12,7c-2.8,0-5,2.2-5,5s2.2,5,5,5c2.8,0,5-2.2,5-
5S14.8,7,12,7z M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,
2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"></path></g> |
| 1276 <g id="receipt"><path d="M18,17H6v-2h12V17z M18,13H6v-2h12V13z M18,9H6V7h12V9z M
3,22l1.5-1.5L6,22l1.5-1.5L9,22l1.5-1.5L12,22l1.5-1.5L15,22l1.5-1.5L18,22l1.5-1.5
L21,22V2l-1.5,1.5L18,2l-1.5,1.5L15,2l-1.5,1.5L12,2l-1.5,1.5L9,2L7.5,3.5L6,2L4.5,
3.5L3,2V22z"></path></g> |
| 1277 <g id="refresh"><path d="M17.6,6.4C16.2,4.9,14.2,4,12,4c-4.4,0-8,3.6-8,8s3.6,8,8
,8c3.7,0,6.8-2.6,7.7-6h-2.1c-0.8,2.3-3,4-5.6,4c-3.3,0-6-2.7-6-6s2.7-6,6-6c1.7,0,
3.1,0.7,4.2,1.8L13,11h7V4L17.6,6.4z"></path></g> |
| 1278 <g id="reminder"><path d="M16.9,13c1.3-1.3,2.1-3,2.1-5c0-3.9-3.1-7-7-7C8.1,1,5,4
.1,5,8c0,2,0.8,3.7,2.1,5l0,0l3.5,3.5L6,21.1l1.4,1.4L16.9,13z M15.5,11.5L15.5,11.
5L12,15.1l-3.5-3.5l0,0l0,0C7.6,10.6,7,9.4,7,8c0-2.8,2.2-5,5-5c2.8,0,5,2.2,5,5C17
,9.4,16.4,10.6,15.5,11.5L15.5,11.5z M13.4,19.3l3.2,3.2l1.4-1.4l-3.2-3.2L13.4,19.
3z"></path></g> |
| 1279 <g id="remove"><path d="M19,13H5v-2h14V13z"></path></g> |
| 1280 <g id="remove-circle"><path d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,
10-10S17.5,2,12,2z M17,13H7v-2h10V13z"></path></g> |
| 1281 <g id="remove-circle-outline"><path d="M7,11v2h10v-2H7z M12,2C6.5,2,2,6.5,2,12s4
.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.
4,0,8,3.6,8,8S16.4,20,12,20z"></path></g> |
| 1282 <g id="reply"><path d="M10,9V5l-7,7l7,7v-4.1c5,0,8.5,1.6,11,5.1C20,15,17,10,10,9
z"></path></g> |
| 1283 <g id="reply-all"><path d="M7,8V5l-7,7l7,7v-3l-4-4L7,8z M13,9V5l-7,7l7,7v-4.1c5,
0,8.5,1.6,11,5.1C23,15,20,10,13,9z"></path></g> |
| 1284 <g id="report"><path d="M15.7,3H8.3L3,8.3v7.5L8.3,21h7.5l5.3-5.3V8.3L15.7,3z M12
,17.3c-0.7,0-1.3-0.6-1.3-1.3c0-0.7,0.6-1.3,1.3-1.3c0.7,0,1.3,0.6,1.3,1.3C13.3,16
.7,12.7,17.3,12,17.3z M13,13h-2V7h2V13z"></path></g> |
| 1285 <g id="rotate-left"><path d="M7.1,8.5L5.7,7.1C4.8,8.3,4.2,9.6,4.1,11h2C6.2,10.1,
6.6,9.3,7.1,8.5z M6.1,13h-2c0.2,1.4,0.7,2.7,1.6,3.9l1.4-1.4C6.6,14.7,6.2,13.9,6.
1,13z M7.1,18.3c1.2,0.9,2.5,1.4,3.9,1.6v-2c-0.9-0.1-1.7-0.5-2.5-1L7.1,18.3z M13,
4.1V1L8.5,5.5L13,10V6.1c2.8,0.5,5,2.9,5,5.9s-2.2,5.4-5,5.9v2c3.9-0.5,7-3.9,7-7.9
S16.9,4.6,13,4.1z"></path></g> |
| 1286 <g id="rotate-right"><path d="M15.5,5.5L11,1v3.1C7.1,4.6,4,7.9,4,12s3.1,7.4,7,7.
9v-2C8.2,17.4,6,15,6,12s2.2-5.4,5-5.9V10L15.5,5.5z M19.9,11c-0.2-1.4-0.7-2.7-1.6
-3.9l-1.4,1.4c0.5,0.8,0.9,1.6,1,2.5H19.9z M13,17.9v2c1.4-0.2,2.7-0.7,3.9-1.6l-1.
4-1.4C14.7,17.4,13.9,17.8,13,17.9z M16.9,15.5l1.4,1.4c0.9-1.2,1.5-2.5,1.6-3.9h-2
C17.8,13.9,17.4,14.7,16.9,15.5z"></path></g> |
| 1287 <g id="save"><path d="M17,3H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.
9,2-2V7L17,3z M12,19c-1.7,0-3-1.3-3-3s1.3-3,3-3c1.7,0,3,1.3,3,3S13.7,19,12,19z M
15,9H5V5h10V9z"></path></g> |
| 1288 <g id="schedule"><path fill-opacity="0.9" d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10
c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8s3.6-8,8-8c4.4,0,8,3.6,8
,8S16.4,20,12,20z"></path><polygon fill-opacity="0.9" points="12.5,7 11,7 11,13
16.2,16.2 17,14.9 12.5,12.2 "></polygon></g> |
| 1289 <g id="search"><path d="M15.5,14h-0.8l-0.3-0.3c1-1.1,1.6-2.6,1.6-4.2C16,5.9,13.1
,3,9.5,3C5.9,3,3,5.9,3,9.5S5.9,16,9.5,16c1.6,0,3.1-0.6,4.2-1.6l0.3,0.3v0.8l5,5l1
.5-1.5L15.5,14z M9.5,14C7,14,5,12,5,9.5S7,5,9.5,5C12,5,14,7,14,9.5S12,14,9.5,14z
"></path></g> |
| 1290 <g id="select-all"><path d="M3,5h2V3C3.9,3,3,3.9,3,5z M3,13h2v-2H3V13z M7,21h2v-
2H7V21z M3,9h2V7H3V9z M13,3h-2v2h2V3z M19,3v2h2C21,3.9,20.1,3,19,3z M5,21v-2H3C3
,20.1,3.9,21,5,21z M3,17h2v-2H3V17z M9,3H7v2h2V3z M11,21h2v-2h-2V21z M19,13h2v-2
h-2V13z M19,21c1.1,0,2-0.9,2-2h-2V21z M19,9h2V7h-2V9z M19,17h2v-2h-2V17z M15,21h
2v-2h-2V21z M15,5h2V3h-2V5z M7,17h10V7H7V17z M9,9h6v6H9V9z"></path></g> |
| 1291 <g id="send"><polygon points="2,21 23,12 2,3 2,10 17,12 2,14 "></polygon></g> |
| 1292 <g id="settings"><path d="M19.4,13c0-0.3,0.1-0.6,0.1-1s0-0.7-0.1-1l2.1-1.7c0.2-0
.2,0.2-0.4,0.1-0.6l-2-3.5C19.5,5.1,19.3,5,19,5.1l-2.5,1c-0.5-0.4-1.1-0.7-1.7-1l-
0.4-2.6C14.5,2.2,14.2,2,14,2h-4C9.8,2,9.5,2.2,9.5,2.4L9.1,5.1C8.5,5.3,8,5.7,7.4,
6.1L5,5.1C4.7,5,4.5,5.1,4.3,5.3l-2,3.5C2.2,8.9,2.3,9.2,2.5,9.4L4.6,11c0,0.3-0.1,
0.6-0.1,1s0,0.7,0.1,1l-2.1,1.7c-0.2,0.2-0.2,0.4-0.1,0.6l2,3.5C4.5,18.9,4.7,19,5,
18.9l2.5-1c0.5,0.4,1.1,0.7,1.7,1l0.4,2.6c0,0.2,0.2,0.4,0.5,0.4h4c0.2,0,0.5-0.2,0
.5-0.4l0.4-2.6c0.6-0.3,1.2-0.6,1.7-1l2.5,1c0.2,0.1,0.5,0,0.6-0.2l2-3.5c0.1-0.2,0
.1-0.5-0.1-0.6L19.4,13z M12,15.5c-1.9,0-3.5-1.6-3.5-3.5s1.6-3.5,3.5-3.5s3.5,1.6,
3.5,3.5S13.9,15.5,12,15.5z"></path></g> |
| 1293 <g id="settings-applications"><path d="M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2
-2S13.1,10,12,10z M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V
5C21,3.9,20.1,3,19,3z M17.2,12c0,0.2,0,0.5,0,0.7l1.5,1.2c0.1,0.1,0.2,0.3,0.1,0.4
l-1.4,2.4c-0.1,0.2-0.3,0.2-0.4,0.2l-1.7-0.7c-0.4,0.3-0.8,0.5-1.2,0.7l-0.3,1.9c0,
0.2-0.2,0.3-0.3,0.3h-2.8c-0.2,0-0.3-0.1-0.3-0.3L10,16.9c-0.4-0.2-0.8-0.4-1.2-0.7
l-1.7,0.7c-0.2,0.1-0.3,0-0.4-0.2l-1.4-2.4c-0.1-0.2,0-0.3,0.1-0.4l1.5-1.2c0-0.2,0
-0.5,0-0.7s0-0.5,0-0.7l-1.5-1.2c-0.1-0.1-0.2-0.3-0.1-0.4l1.4-2.4c0.1-0.2,0.3-0.2
,0.4-0.2l1.7,0.7C9.2,7.6,9.6,7.3,10,7.1l0.3-1.9c0-0.2,0.2-0.3,0.3-0.3h2.8c0.2,0,
0.3,0.1,0.3,0.3L14,7.1c0.4,0.2,0.8,0.4,1.2,0.7l1.7-0.7c0.2-0.1,0.3,0,0.4,0.2l1.4
,2.4c0.1,0.2,0,0.3-0.1,0.4l-1.5,1.2C17.2,11.5,17.2,11.8,17.2,12z"></path></g> |
| 1294 <g id="shopping-basket"><path d="M17.2,9l-4.4-6.6C12.6,2.2,12.3,2,12,2c-0.3,0-0.
6,0.1-0.8,0.4L6.8,9H2c-0.6,0-1,0.4-1,1c0,0.1,0,0.2,0,0.3l2.5,9.3c0.2,0.8,1,1.5,1
.9,1.5h13c0.9,0,1.7-0.6,1.9-1.5l2.5-9.3c0-0.1,0-0.2,0-0.3c0-0.6-0.4-1-1-1H17.2z
M9,9l3-4.4L15,9H9z M12,17c-1.1,0-2-0.9-2-2s0.9-2,2-2c1.1,0,2,0.9,2,2S13.1,17,12,
17z"></path></g> |
| 1295 <g id="shopping-cart"><path d="M7,18c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S
8.1,18,7,18z M1,2v2h2l3.6,7.6L5.2,14C5.1,14.3,5,14.7,5,15c0,1.1,0.9,2,2,2h12v-2H
7.4c-0.1,0-0.2-0.1-0.2-0.2c0,0,0-0.1,0-0.1L8.1,13h7.4c0.8,0,1.4-0.4,1.7-1l3.6-6.
5C21,5.3,21,5.2,21,5c0-0.6-0.4-1-1-1H5.2L4.3,2H1z M17,18c-1.1,0-2,0.9-2,2s0.9,2,
2,2c1.1,0,2-0.9,2-2S18.1,18,17,18z"></path></g> |
| 1296 <g id="sort"><path d="M3,18h6v-2H3V18z M3,6v2h18V6H3z M3,13h12v-2H3V13z"></path>
</g> |
| 1297 <g id="star"><polygon points="12,17.273 18.18,21 16.545,13.971 22,9.244 14.809,8
.627 12,2 9.191,8.627 2,9.244 7.455,13.971 5.82,21 "></polygon></g> |
| 1298 <g id="star-half"><path d="M22,9.744l-7.191-0.617L12,2.5L9.191,9.127L2,9.744v0l0
,0l5.455,4.727L5.82,21.5L12,17.772l0,0l6.18,3.727l-1.635-7.029L22,9.744z M12,15.
896V6.595l1.71,4.036l4.38,0.376l-3.322,2.878l0.996,4.281L12,15.896z"></path></g> |
| 1299 <g id="star-outline"><path d="M22,9.244l-7.191-0.617L12,2L9.191,8.627L2,9.244l5.
455,4.727L5.82,21L12,17.272L18.18,21l-1.635-7.029L22,9.244z M12,15.396l-3.763,2.
27l0.996-4.281L5.91,10.507l4.38-0.376L12,6.095l1.71,4.036l4.38,0.376l-3.322,2.87
8l0.996,4.281L12,15.396z"></path></g> |
| 1300 <g id="star-rate"><polygon points="12,14.3 15.7,17 14.3,12.6 18,10 13.5,10 12,5.
5 10.5,10 6,10 9.7,12.6 8.3,17 "></polygon></g> |
| 1301 <g id="store"><path d="M20,4H4v2h16V4z M21,14v-2l-1-5H4l-1,5v2h1v6h10v-6h4v6h2v-
6H21z M12,18H6v-4h6V18z"></path></g> |
| 1302 <g id="swap-horiz"><path d="M7,11l-4,4l4,4v-3h7v-2H7V11z M21,9l-4-4v3h-7v2h7v3L2
1,9z"></path></g> |
| 1303 <g id="swap-vert"><path d="M16,17v-7h-2v7h-3l4,4l4-4H16z M9,3L5,7h3v7h2V7h3L9,3z
"></path></g> |
| 1304 <g id="tab"><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2
-2V5C21,3.9,20.1,3,19,3z M19,19L5,19V5h7v4h7V19z"></path></g> |
| 1305 <g id="text-format"><path d="M5,17v2h14v-2H5z M9.5,12.8h5l0.9,2.2h2.1L12.8,4h-1.
5L6.5,15h2.1L9.5,12.8z M12,6l1.9,5h-3.7L12,6z"></path></g> |
| 1306 <g id="theaters"><path d="M18,3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3H18z M8
,17H6v-2h2V17z M8,13H6v-2h2V13z M8,9H6V7h2V9z M18,17h-2v-2h2V17z M18,13h-2v-2h2V
13z M18,9h-2V7h2V9z"></path></g> |
| 1307 <g id="thumb-down"><path d="M15,3H6C5.2,3,4.5,3.5,4.2,4.2l-3,7.1C1.1,11.5,1,11.7
,1,12v1.9l0,0c0,0,0,0.1,0,0.1c0,1.1,0.9,2,2,2h6.3l-1,4.6c0,0.1,0,0.2,0,0.3c0,0.4
,0.2,0.8,0.4,1.1L9.8,23l6.6-6.6c0.4-0.4,0.6-0.9,0.6-1.4V5C17,3.9,16.1,3,15,3z M1
9,3v12h4V3H19z"></path></g> |
| 1308 <g id="thumb-up"><path d="M1,21h4V9H1V21z M23,10c0-1.1-0.9-2-2-2h-6.3l1-4.6c0-0.
1,0-0.2,0-0.3c0-0.4-0.2-0.8-0.4-1.1L14.2,1L7.6,7.6C7.2,7.9,7,8.4,7,9v10c0,1.1,0.
9,2,2,2h9c0.8,0,1.5-0.5,1.8-1.2l3-7.1c0.1-0.2,0.1-0.5,0.1-0.7V10L23,10C23,10.1,2
3,10,23,10z"></path></g> |
| 1309 <g id="today"><path d="M19,3h-1V1h-2v2H8V1H6v2H5C3.9,3,3,3.9,3,5l0,14c0,1.1,0.9,
2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V8h14V19z"></path><rect x
="7" y="10" width="5" height="5"></rect></g> |
| 1310 <g id="translate"><path d="M3,17.2V21h3.8L17.8,9.9l-3.8-3.8L3,17.2z M20.7,7c0.4-
0.4,0.4-1,0-1.4l-2.3-2.3c-0.4-0.4-1-0.4-1.4,0l-1.8,1.8l3.8,3.8L20.7,7z M12,19l-2
,2h13v-2H12z"></path></g> |
| 1311 <g id="undo"><path d="M12,5V1.5l-5,5l5,5V7c3.3,0,6,2.7,6,6s-2.7,6-6,6c-3.3,0-6-2
.7-6-6H4c0,4.4,3.6,8,8,8c4.4,0,8-3.6,8-8S16.4,5,12,5z"></path></g> |
| 1312 <g id="unfold-less"><path d="M7.4,18.6L8.8,20l3.2-3.2l3.2,3.2l1.4-1.4L12,14L7.4,
18.6z M16.6,5.4L15.2,4L12,7.2L8.8,4L7.4,5.4L12,10L16.6,5.4z"></path></g> |
| 1313 <g id="unfold-more"><path d="M12,5.8L15.2,9l1.4-1.4L12,3L7.4,7.6L8.8,9L12,5.8z M
12,18.2L8.8,15l-1.4,1.4L12,21l4.6-4.6L15.2,15L12,18.2z"></path></g> |
| 1314 <g id="view-array"><path d="M4,18h3V5H4V18z M18,5v13h3V5H18z M8,18h9V5H8V18z"></
path></g> |
| 1315 <g id="view-column"><path d="M10,18h5V5h-5V18z M4,18h5V5H4V18z M16,5v13h5V5H16z"
></path></g> |
| 1316 <g id="view-headline"><path d="M4,15h17v-2H4V15z M4,19h17v-2H4V19z M4,11h17V9H4V
11z M4,5v2h17V5H4z"></path></g> |
| 1317 <g id="view-list"><path d="M4,14h4v-4H4V14z M4,19h4v-4H4V19z M4,9h4V5H4V9z M9,14
h12v-4H9V14z M9,19h12v-4H9V19z M9,5v4h12V5H9z"></path></g> |
| 1318 <g id="view-module"><path d="M4,11h5V5H4V11z M4,18h5v-6H4V18z M10,18h5v-6h-5V18z
M16,18h5v-6h-5V18z M10,11h5V5h-5V11z M16,5v6h5V5H16z"></path></g> |
| 1319 <g id="view-quilt"><path d="M10,18h5v-6h-5V18z M4,18h5V5H4V18z M16,18h5v-6h-5V18
z M10,5v6h11V5H10z"></path></g> |
| 1320 <g id="view-stream"><path d="M4,18h17v-6H4V18z M4,5v6h17V5H4z"></path></g> |
| 1321 <g id="visibility"><path d="M12,4.5C7,4.5,2.7,7.6,1,12c1.7,4.4,6,7.5,11,7.5c5,0,
9.3-3.1,11-7.5C21.3,7.6,17,4.5,12,4.5z M12,17c-2.8,0-5-2.2-5-5s2.2-5,5-5c2.8,0,5
,2.2,5,5S14.8,17,12,17z M12,9c-1.7,0-3,1.3-3,3s1.3,3,3,3c1.7,0,3-1.3,3-3S13.7,9,
12,9z"></path></g> |
| 1322 <g id="visibility-off"><path d="M12,7c2.8,0,5,2.2,5,5c0,0.6-0.1,1.3-0.4,1.8l2.9,
2.9c1.5-1.3,2.7-2.9,3.4-4.7c-1.7-4.4-6-7.5-11-7.5c-1.4,0-2.7,0.3-4,0.7l2.2,2.2C1
0.7,7.1,11.4,7,12,7z M2,4.3l2.3,2.3L4.7,7c-1.7,1.3-3,3-3.7,5c1.7,4.4,6,7.5,11,7.
5c1.5,0,3-0.3,4.4-0.8l0.4,0.4l2.9,2.9l1.3-1.3L3.3,3L2,4.3z M7.5,9.8l1.5,1.5C9,11
.6,9,11.8,9,12c0,1.7,1.3,3,3,3c0.2,0,0.4,0,0.7-0.1l1.5,1.5C13.5,16.8,12.8,17,12,
17c-2.8,0-5-2.2-5-5C7,11.2,7.2,10.5,7.5,9.8z M11.8,9l3.1,3.1c0-0.1,0-0.1,0-0.2c0
-1.7-1.3-3-3-3C11.9,9,11.9,9,11.8,9z"></path></g> |
| 1323 <g id="warning"><path d="M1,21h22L12,2L1,21z M13,18h-2v-2h2V18z M13,14h-2v-4h2V1
4z"></path></g> |
| 1324 <g id="work"><path d="M20,6h-4V4l-2-2h-4L8,4v2H4C2.9,6,2,6.9,2,8l0,11c0,1.1,0.9,
2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M14,6h-4V4h4V6z"></path></g> |
| 1325 </defs></svg> |
| 1326 </core-iconset-svg> |
| 1327 |
| 1328 <!-- import core-icon for convenience |
| 1329 TODO(sorvell): we'd rather do this in core-iconset but we can't until |
| 1330 crbug.com/373461 is addressed |
| 1331 --> |
| 1332 <!-- |
| 1333 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1334 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1335 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1336 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1337 Code distributed by Google as part of the polymer project is also |
| 1338 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 1339 --> |
| 1340 <!-- |
| 1341 |
| 1342 The `core-icon` element displays an icon using CSS background image. By default
an icon renders as 24px square. |
| 1343 |
| 1344 Example using src: |
| 1345 |
| 1346 <core-icon src="star.png"></core-icon> |
| 1347 |
| 1348 Example setting size to 32px x 32px: |
| 1349 |
| 1350 <core-icon src="big_star.png" size="32"></core-icon> |
| 1351 |
| 1352 Example using icon from default iconset: |
| 1353 |
| 1354 <core-icon icon="menu"></core-icon> |
| 1355 |
| 1356 Example using icon `cherry` from custom iconset `fruit`: |
| 1357 |
| 1358 <core-icon icon="fruit:cherry"></core-icon> |
| 1359 |
| 1360 See [core-iconset](#core-iconset) and [core-iconset-svg](#core-iconset-svg) for
more information about |
| 1361 how to use a custom iconset. |
| 1362 |
| 1363 See [core-icons](#core-icons) for the default set of icons. |
| 1364 |
| 1365 @group Polymer Core Elements |
| 1366 @element core-icon |
| 1367 @extends core-theme-aware |
| 1368 @homepage github.io |
| 1369 --> |
| 1370 |
| 1371 |
| 1372 <style shim-shadowdom="">/* Copyright (c) 2014 The Polymer Project Authors. All
rights reserved. |
| 1373 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1374 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1375 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1376 Code distributed by Google as part of the polymer project is also |
| 1377 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt */ |
| 1378 |
| 1379 html /deep/ core-icon { |
| 1380 display: inline-block; |
| 1381 vertical-align: middle; |
| 1382 background-repeat: no-repeat; |
| 1383 } |
| 1384 </style> |
| 1385 |
| 1386 <polymer-element name="core-icon" attributes="src size icon" assetpath="../core-
icon/"> |
| 1387 <script> |
| 1388 (function() { |
| 1389 |
| 1390 // mono-state |
| 1391 var meta; |
| 1392 |
| 1393 Polymer('core-icon', { |
| 1394 |
| 1395 /** |
| 1396 * The URL of an image for the icon. If the src property is specified, |
| 1397 * the icon property should not be. |
| 1398 * |
| 1399 * @attribute src |
| 1400 * @type string |
| 1401 * @default '' |
| 1402 */ |
| 1403 src: '', |
| 1404 |
| 1405 /** |
| 1406 * Specifies the size of the icon in pixel units. |
| 1407 * |
| 1408 * @attribute size |
| 1409 * @type string |
| 1410 * @default 24 |
| 1411 */ |
| 1412 size: 24, |
| 1413 |
| 1414 /** |
| 1415 * Specifies the icon name or index in the set of icons available in |
| 1416 * the icon's icon set. If the icon property is specified, |
| 1417 * the src property should not be. |
| 1418 * |
| 1419 * @attribute icon |
| 1420 * @type string |
| 1421 * @default '' |
| 1422 */ |
| 1423 icon: '', |
| 1424 |
| 1425 defaultIconset: 'icons', |
| 1426 |
| 1427 ready: function() { |
| 1428 if (!meta) { |
| 1429 meta = document.createElement('core-iconset'); |
| 1430 } |
| 1431 this.sizeChanged(); |
| 1432 }, |
| 1433 |
| 1434 sizeChanged: function() { |
| 1435 this.style.width = this.style.height = this.size + 'px'; |
| 1436 }, |
| 1437 |
| 1438 srcChanged: function() { |
| 1439 this.style.backgroundImage = 'url(' + this.src + ')'; |
| 1440 this.style.backgroundPosition = 'center'; |
| 1441 this.style.backgroundSize = this.size + 'px ' + this.size + 'px'; |
| 1442 }, |
| 1443 |
| 1444 getIconset: function(name) { |
| 1445 return meta.byId(name || this.defaultIconset); |
| 1446 }, |
| 1447 |
| 1448 iconChanged: function() { |
| 1449 if (this.icon) { |
| 1450 var parts = String(this.icon).split(':'); |
| 1451 var icon = parts.pop(); |
| 1452 if (icon) { |
| 1453 var set = this.getIconset(parts.pop()); |
| 1454 if (set) { |
| 1455 set.applyIcon(this, icon, this.activeTheme, this.size / set.iconSize
); |
| 1456 } |
| 1457 } |
| 1458 } |
| 1459 } |
| 1460 |
| 1461 }); |
| 1462 |
| 1463 })(); |
| 1464 </script> |
| 1465 |
| 1466 </polymer-element> |
| 1467 |
| 1468 |
| 1469 <!-- |
| 1470 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1471 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1472 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1473 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1474 Code distributed by Google as part of the polymer project is also |
| 1475 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 1476 --> |
| 1477 |
| 1478 <!-- |
| 1479 `core-icon-button` is an icon with button behaviors. |
| 1480 |
| 1481 <core-icon-button src="star.png"></core-icon-button> |
| 1482 |
| 1483 `core-icon-button` includes a default icon set. Use `icon` to specify |
| 1484 which icon from the icon set to use. |
| 1485 |
| 1486 <core-icon-button icon="menu"></core-icon-button> |
| 1487 |
| 1488 See [`core-iconset`](#core-iconset) for more information about |
| 1489 how to use a custom icon set. |
| 1490 |
| 1491 @group Polymer Core Elements |
| 1492 @element core-icon-button |
| 1493 @extends core-theme-aware |
| 1494 @homepage github.io |
| 1495 --> |
| 1496 |
| 1497 |
| 1498 |
| 1499 |
| 1500 <polymer-element name="core-icon-button" extends="core-theme-aware" attributes="
src icon active" assetpath="../core-icon-button/"> |
| 1501 |
| 1502 <template> |
| 1503 |
| 1504 <style>/* |
| 1505 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1506 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE |
| 1507 The complete set of authors may be found at http://polymer.github.io/AUTHORS |
| 1508 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS |
| 1509 Code distributed by Google as part of the polymer project is also |
| 1510 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS |
| 1511 */ |
| 1512 |
| 1513 :host { |
| 1514 display: inline-block; |
| 1515 box-sizing: border-box; |
| 1516 -moz-box-sizing: border-box; |
| 1517 width: 38px; |
| 1518 height: 38px; |
| 1519 background-image: none; |
| 1520 border-radius: 2px; |
| 1521 padding: 7px; |
| 1522 margin: 2px; |
| 1523 vertical-align: middle; |
| 1524 font-size: 1rem; |
| 1525 cursor: pointer; |
| 1526 } |
| 1527 |
| 1528 :host(.outline) { |
| 1529 box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); |
| 1530 } |
| 1531 |
| 1532 :host(:hover) { |
| 1533 box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.1); |
| 1534 } |
| 1535 |
| 1536 :host(.selected) { |
| 1537 background-color: rgba(0, 0, 0, 0.05); |
| 1538 box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.12)
; |
| 1539 } |
| 1540 |
| 1541 :host(:active, .selected:active) { |
| 1542 background-color: rgba(0, 0, 0, 0.05); |
| 1543 box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.12); |
| 1544 } |
| 1545 |
| 1546 :host(.core-dark-theme.outline) { |
| 1547 background-color: rgba(200, 200, 200, 0.05); |
| 1548 box-shadow: 0 0 0 1px rgba(200, 200, 200, 0.1); |
| 1549 } |
| 1550 |
| 1551 :host(.core-dark-theme:hover) { |
| 1552 background-color: rgba(200, 200, 200, 0.05); |
| 1553 box-shadow: 0 1px 0 0 rgba(200, 200, 200, 0.12), 0 0 0 1px rgba(200, 200, 200,
0.1); |
| 1554 } |
| 1555 |
| 1556 :host(.core-dark-theme.selected) { |
| 1557 background-color: rgba(220, 220, 220, 0.05); |
| 1558 box-shadow: inset 0 1px 0 0 rgba(200, 200, 200, 0.05), 0 0 0 1px rgba(200, 200
, 200, 0.12); |
| 1559 } |
| 1560 |
| 1561 :host(.core-dark-theme:active, .core-dark-theme.selected:active) { |
| 1562 background-color: rgba(200, 200, 200, 0.05); |
| 1563 box-shadow: inset 0 1px 0 0 rgba(200, 200, 200, 0.1), 0 0 0 1px rgba(200, 200,
200, 0.12); |
| 1564 } |
| 1565 |
| 1566 core-icon { |
| 1567 pointer-events: none; |
| 1568 } |
| 1569 </style> |
| 1570 |
| 1571 <core-icon src="{{src}}" icon="{{icon}}"><content></content></core-icon> |
| 1572 |
| 1573 </template> |
| 1574 |
| 1575 <script> |
| 1576 |
| 1577 Polymer('core-icon-button', { |
| 1578 |
| 1579 /** |
| 1580 * The URL of an image for the icon. Should not use `icon` property |
| 1581 * if you are using this property. |
| 1582 * |
| 1583 * @attribute src |
| 1584 * @type string |
| 1585 * @default '' |
| 1586 */ |
| 1587 src: '', |
| 1588 |
| 1589 /** |
| 1590 * If true, border is placed around the button to indicate it's |
| 1591 * active state. |
| 1592 * |
| 1593 * @attribute active |
| 1594 * @type boolean |
| 1595 * @default false |
| 1596 */ |
| 1597 active: false, |
| 1598 |
| 1599 /** |
| 1600 * Specifies the icon name or index in the set of icons available in |
| 1601 * the icon set. Should not use `src` property if you are using this |
| 1602 * property. |
| 1603 * |
| 1604 * @attribute icon |
| 1605 * @type string |
| 1606 * @default '' |
| 1607 */ |
| 1608 icon: '', |
| 1609 |
| 1610 activeChanged: function() { |
| 1611 this.classList.toggle('selected', this.active); |
| 1612 } |
| 1613 |
| 1614 }); |
| 1615 |
| 1616 </script> |
| 1617 |
| 1618 </polymer-element> |
| 1619 |
| 1620 <!-- |
| 1621 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1622 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1623 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1624 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1625 Code distributed by Google as part of the polymer project is also |
| 1626 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 1627 --> |
| 1628 |
| 1629 <!-- |
| 1630 `core-toolbar` is a horizontal bar containing elements that can be used for |
| 1631 label, navigation, search and actions. |
| 1632 |
| 1633 <b>Example:</b> |
| 1634 |
| 1635 <core-toolbar> |
| 1636 <core-icon-button icon="menu" on-tap="{{menuAction}}"></core-icon-button> |
| 1637 <div flex>Title</div> |
| 1638 <core-icon-button icon="more" on-tap="{{moreAction}}"></core-icon-button> |
| 1639 </core-toolbar> |
| 1640 |
| 1641 `core-toolbar` has a standard height, but can be taller by setting `tall` |
| 1642 class on the `core-toolbar`. |
| 1643 |
| 1644 <core-toolbar class="tall"> |
| 1645 <core-icon-button icon="menu"></core-icon-button> |
| 1646 </core-toolbar> |
| 1647 |
| 1648 Apply `medium-tall` class to make the toolbar medium tall. |
| 1649 |
| 1650 <core-toolbar class="medium-tall"> |
| 1651 <core-icon-button icon="menu"></core-icon-button> |
| 1652 </core-toolbar> |
| 1653 |
| 1654 When taller, actions can pin to either the top (default), middle or bottom. |
| 1655 |
| 1656 <core-toolbar class="tall"> |
| 1657 <core-icon-button class="bottom" icon="menu"></core-icon-button> |
| 1658 <div class="middle">Toolbar</div> |
| 1659 </core-toolbar> |
| 1660 |
| 1661 @group Polymer Core Elements |
| 1662 @element core-toolbar |
| 1663 @homepage github.io |
| 1664 --> |
| 1665 |
| 1666 |
| 1667 |
| 1668 <polymer-element name="core-toolbar" noscript="" assetpath="../core-toolbar/"> |
| 1669 <template> |
| 1670 |
| 1671 <style>/* |
| 1672 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1673 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1674 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1675 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1676 Code distributed by Google as part of the polymer project is also |
| 1677 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 1678 */ |
| 1679 |
| 1680 :host { |
| 1681 /* technical */ |
| 1682 display: block; |
| 1683 position: relative; |
| 1684 box-sizing: border-box; |
| 1685 -moz-box-sizing: border-box; |
| 1686 /* size */ |
| 1687 height: 64px; |
| 1688 /* typography */ |
| 1689 font-size: 1.3em; |
| 1690 /* transition */ |
| 1691 transition: height 0.18s ease-in; |
| 1692 } |
| 1693 |
| 1694 :host(.medium-tall) { |
| 1695 height: 128px; |
| 1696 } |
| 1697 |
| 1698 :host(.tall) { |
| 1699 height: 192px; |
| 1700 } |
| 1701 |
| 1702 .toolbar-tools { |
| 1703 height: 64px; |
| 1704 padding: 0 9px; |
| 1705 } |
| 1706 |
| 1707 /* narrow layout */ |
| 1708 :host(.narrow) { |
| 1709 height: 56px; |
| 1710 } |
| 1711 |
| 1712 :host(.narrow.medium-tall) { |
| 1713 height: 112px; |
| 1714 } |
| 1715 |
| 1716 :host(.narrow.tall) { |
| 1717 height: 168px; |
| 1718 } |
| 1719 |
| 1720 :host(.narrow) .toolbar-tools { |
| 1721 height: 56px; |
| 1722 padding: 0 1px; |
| 1723 } |
| 1724 |
| 1725 /* middle bar */ |
| 1726 #middleBar { |
| 1727 position: absolute; |
| 1728 top: calc(100% / 3); |
| 1729 right: 0; |
| 1730 left: 0; |
| 1731 pointer-events: none; |
| 1732 } |
| 1733 |
| 1734 /* bottom bar */ |
| 1735 #bottomBar { |
| 1736 position: absolute; |
| 1737 right: 0; |
| 1738 bottom: 0; |
| 1739 left: 0; |
| 1740 pointer-events: none; |
| 1741 } |
| 1742 |
| 1743 /* shows bottom bar only when in normal height (!tall && !medium-tall) */ |
| 1744 :host(.no-overlap) > #topBar, |
| 1745 :host(.no-overlap) > #middleBar { |
| 1746 transition: -webkit-transform 0.18s ease-in; |
| 1747 transition: transform 0.18s ease-in; |
| 1748 } |
| 1749 |
| 1750 :host(.no-overlap:not(.medium-tall):not(.tall)) > #topBar { |
| 1751 -webkit-transform: translateY(-100%); |
| 1752 transform: translateY(-100%); |
| 1753 } |
| 1754 |
| 1755 :host(.no-overlap:not(.medium-tall):not(.tall)) > #middleBar { |
| 1756 -webkit-transform: translateY(-200%); |
| 1757 transform: translateY(-200%); |
| 1758 } |
| 1759 |
| 1760 polyfill-next-selector { content: ':host > #middleBar > *, :host > #bottomBar >
*'; } |
| 1761 ::content[select=".middle"] > *, ::content[select=".bottom"] > * { |
| 1762 pointer-events: visible; |
| 1763 } |
| 1764 |
| 1765 polyfill-next-selector { content: ':host > .toolbar-tools > *'; } |
| 1766 ::content > * { |
| 1767 margin: 0px 8px; |
| 1768 } |
| 1769 |
| 1770 polyfill-next-selector { content: ':host .core-fit, :host [core-fit]'; } |
| 1771 ::content > .core-fit, ::content > [core-fit] { |
| 1772 position: absolute; |
| 1773 top: 0; |
| 1774 right: 0; |
| 1775 bottom: 0; |
| 1776 left: 0; |
| 1777 margin: 0; |
| 1778 } |
| 1779 |
| 1780 polyfill-next-selector { content: ':host .indent'; } |
| 1781 ::content > .indent { |
| 1782 margin-left: 60px; |
| 1783 } |
| 1784 </style> |
| 1785 |
| 1786 <div id="bottomBar" class="toolbar-tools" center="" horizontal="" layout=""> |
| 1787 <content select=".bottom"></content> |
| 1788 </div> |
| 1789 |
| 1790 <div id="middleBar" class="toolbar-tools" center="" horizontal="" layout=""> |
| 1791 <content select=".middle"></content> |
| 1792 </div> |
| 1793 |
| 1794 <div id="topBar" class="toolbar-tools" center="" horizontal="" layout=""> |
| 1795 <content></content> |
| 1796 </div> |
| 1797 |
| 1798 </template> |
| 1799 </polymer-element> |
| 1800 |
| 1801 <!-- |
| 1802 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1803 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1804 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1805 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1806 Code distributed by Google as part of the polymer project is also |
| 1807 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 1808 --> |
| 1809 |
| 1810 <!-- |
| 1811 `core-header-panel` contains a header section and a content panel section. Speci
al |
| 1812 support is provided for scrolling modes when one uses a core-toolbar or equivale
nt |
| 1813 for the header section. |
| 1814 |
| 1815 Example: |
| 1816 |
| 1817 <core-header-panel> |
| 1818 <core-toolbar>Header</core-toolbar> |
| 1819 <div>Content goes here...</div> |
| 1820 </core-header-panel> |
| 1821 |
| 1822 If you want to use other than `core-toolbar` for the header, add |
| 1823 `core-header` class to that element. |
| 1824 |
| 1825 Example: |
| 1826 |
| 1827 <core-header-panel> |
| 1828 <div class="core-header">Header</div> |
| 1829 <div>Content goes here...</div> |
| 1830 </core-header-panel> |
| 1831 |
| 1832 Use `mode` to control the header and scrolling behavior. |
| 1833 |
| 1834 @group Polymer Core Elements |
| 1835 @element core-header-panel |
| 1836 @homepage github.io |
| 1837 --> |
| 1838 |
| 1839 |
| 1840 |
| 1841 <polymer-element name="core-header-panel" assetpath="../core-header-panel/"> |
| 1842 <template> |
| 1843 |
| 1844 <style>/* |
| 1845 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 1846 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 1847 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 1848 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 1849 Code distributed by Google as part of the polymer project is also |
| 1850 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 1851 */ |
| 1852 |
| 1853 :host { |
| 1854 display: block; |
| 1855 position: relative; |
| 1856 } |
| 1857 |
| 1858 #outerContainer { |
| 1859 position: absolute; |
| 1860 top: 0; |
| 1861 right: 0; |
| 1862 bottom: 0; |
| 1863 left: 0; |
| 1864 overflow: auto; |
| 1865 } |
| 1866 |
| 1867 #mainPanel { |
| 1868 position: relative; |
| 1869 } |
| 1870 |
| 1871 #mainContainer { |
| 1872 position: relative; |
| 1873 overflow: auto; |
| 1874 } |
| 1875 |
| 1876 #dropShadow { |
| 1877 position: absolute; |
| 1878 top: 0; |
| 1879 left: 0; |
| 1880 right: 0; |
| 1881 height: 6px; |
| 1882 box-shadow: inset 0px 5px 6px -3px rgba(0, 0, 0, 0.4); |
| 1883 } |
| 1884 |
| 1885 #dropShadow.hidden { |
| 1886 display: none; |
| 1887 } |
| 1888 |
| 1889 /* |
| 1890 mode: scroll |
| 1891 */ |
| 1892 :host([mode=scroll]) #mainContainer { |
| 1893 overflow: visible; |
| 1894 } |
| 1895 |
| 1896 /* |
| 1897 mode: cover |
| 1898 */ |
| 1899 :host([mode=cover]) #mainPanel { |
| 1900 position: static; |
| 1901 } |
| 1902 |
| 1903 :host([mode=cover]) #mainContainer { |
| 1904 position: absolute; |
| 1905 top: 0; |
| 1906 right: 0; |
| 1907 bottom: 0; |
| 1908 left: 0; |
| 1909 } |
| 1910 |
| 1911 :host([mode=cover]) #dropShadow { |
| 1912 position: static; |
| 1913 width: 100%; |
| 1914 } |
| 1915 </style> |
| 1916 |
| 1917 <div id="outerContainer" on-scroll="{{scroll}}" vertical="" layout=""> |
| 1918 |
| 1919 <content id="headerContent" select="core-toolbar, .core-header"></content> |
| 1920 |
| 1921 <div id="mainPanel" flex="" vertical="" layout=""> |
| 1922 |
| 1923 <div id="mainContainer" flex?="{{mode !== 'cover'}}" on-scroll="
{{scroll}}"> |
| 1924 <content id="mainContent" select="*"></content> |
| 1925 </div> |
| 1926 |
| 1927 <div id="dropShadow"></div> |
| 1928 |
| 1929 </div> |
| 1930 |
| 1931 </div> |
| 1932 |
| 1933 </template> |
| 1934 <script> |
| 1935 |
| 1936 Polymer('core-header-panel', { |
| 1937 |
| 1938 publish: { |
| 1939 /** |
| 1940 * Controls header and scrolling behavior. Options are |
| 1941 * `standard`, `seamed`, `waterfall`, `waterfall-tall`, |
| 1942 * `waterfall-medium-tall`, `scroll` and `cover`. |
| 1943 * Default is `standard`. |
| 1944 * |
| 1945 * `standard`: The header is a step above the panel. The header will consu
me the |
| 1946 * panel at the point of entry, preventing it from passing through to the |
| 1947 * opposite side. |
| 1948 * |
| 1949 * `seamed`: The header is presented as seamed with the panel. |
| 1950 * |
| 1951 * `waterfall`: Similar to standard mode, but header is initially presente
d as |
| 1952 * seamed with panel, but then separates to form the step. |
| 1953 * |
| 1954 * `waterfall-tall`: The header is initially taller (`tall` class is added
to |
| 1955 * the header). As the user scrolls, the header separates (forming an edg
e) |
| 1956 * while condensing (`tall` class is removed from the header). |
| 1957 * |
| 1958 * `scroll`: The header keeps its seam with the panel, and is pushed off s
creen. |
| 1959 * |
| 1960 * `cover`: The panel covers the whole `core-header-panel` including the |
| 1961 * header. This allows user to style the panel in such a way that the pane
l is |
| 1962 * partially covering the header. |
| 1963 * |
| 1964 * <style> |
| 1965 * core-header-panel[mode=cover]::shadow #mainContainer { |
| 1966 * left: 80px; |
| 1967 * } |
| 1968 * .content { |
| 1969 * margin: 60px 60px 60px 0; |
| 1970 * } |
| 1971 * </style> |
| 1972 * |
| 1973 * <core-header-panel mode="cover"> |
| 1974 * <core-appbar class="tall"> |
| 1975 * <core-icon-button icon="menu"></core-icon-button> |
| 1976 * </core-appbar> |
| 1977 * <div class="content"></div> |
| 1978 * </core-header-panel> |
| 1979 * |
| 1980 * @attribute mode |
| 1981 * @type string |
| 1982 * @default '' |
| 1983 */ |
| 1984 mode: {value: '', reflect: true}, |
| 1985 |
| 1986 /** |
| 1987 * The class used in waterfall-tall mode. Change this if the header |
| 1988 * accepts a different class for toggling height, e.g. "medium-tall" |
| 1989 * |
| 1990 * @attribute tallClass |
| 1991 * @type string |
| 1992 * @default 'tall' |
| 1993 */ |
| 1994 tallClass: 'tall', |
| 1995 |
| 1996 /** |
| 1997 * If true, the drop-shadow is always shown no matter what mode is set to. |
| 1998 * |
| 1999 * @attribute shadow |
| 2000 * @type boolean |
| 2001 * @default false |
| 2002 */ |
| 2003 shadow: false, |
| 2004 }, |
| 2005 |
| 2006 domReady: function() { |
| 2007 this.async('scroll'); |
| 2008 }, |
| 2009 |
| 2010 modeChanged: function() { |
| 2011 this.scroll(); |
| 2012 }, |
| 2013 |
| 2014 get header() { |
| 2015 return this.$.headerContent.getDistributedNodes()[0]; |
| 2016 }, |
| 2017 |
| 2018 scroll: function() { |
| 2019 var shadowMode = {'waterfall': 1, 'waterfall-tall': 1}; |
| 2020 var noShadow = {'seamed': 1, 'cover': 1, 'scroll': 1}; |
| 2021 var tallMode = {'waterfall-tall': 1}; |
| 2022 |
| 2023 var main = this.$.mainContainer; |
| 2024 var header = this.header; |
| 2025 |
| 2026 var sTop = main.scrollTop; |
| 2027 var atTop = sTop === 0; |
| 2028 |
| 2029 if (header) { |
| 2030 this.$.dropShadow.classList.toggle('hidden', !this.shadow && |
| 2031 (atTop && shadowMode[this.mode] || noShadow[this.mode])); |
| 2032 |
| 2033 if (tallMode[this.mode]) { |
| 2034 header.classList.toggle(this.tallClass, atTop); |
| 2035 } |
| 2036 } |
| 2037 } |
| 2038 |
| 2039 }); |
| 2040 |
| 2041 </script> |
| 2042 </polymer-element> |
| 2043 |
| 2044 <!-- |
| 2045 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 2046 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 2047 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 2048 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 2049 Code distributed by Google as part of the polymer project is also |
| 2050 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 2051 --> |
| 2052 |
| 2053 |
| 2054 <script>/** |
| 2055 * marked - a markdown parser |
| 2056 * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) |
| 2057 * https://github.com/chjj/marked |
| 2058 */ |
| 2059 |
| 2060 ;(function() { |
| 2061 |
| 2062 /** |
| 2063 * Block-Level Grammar |
| 2064 */ |
| 2065 |
| 2066 var block = { |
| 2067 newline: /^\n+/, |
| 2068 code: /^( {4}[^\n]+\n*)+/, |
| 2069 fences: noop, |
| 2070 hr: /^( *[-*_]){3,} *(?:\n+|$)/, |
| 2071 heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, |
| 2072 nptable: noop, |
| 2073 lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, |
| 2074 blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, |
| 2075 list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, |
| 2076 html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/, |
| 2077 def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, |
| 2078 table: noop, |
| 2079 paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, |
| 2080 text: /^[^\n]+/ |
| 2081 }; |
| 2082 |
| 2083 block.bullet = /(?:[*+-]|\d+\.)/; |
| 2084 block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; |
| 2085 block.item = replace(block.item, 'gm') |
| 2086 (/bull/g, block.bullet) |
| 2087 (); |
| 2088 |
| 2089 block.list = replace(block.list) |
| 2090 (/bull/g, block.bullet) |
| 2091 ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))') |
| 2092 ('def', '\\n+(?=' + block.def.source + ')') |
| 2093 (); |
| 2094 |
| 2095 block.blockquote = replace(block.blockquote) |
| 2096 ('def', block.def) |
| 2097 (); |
| 2098 |
| 2099 block._tag = '(?!(?:' |
| 2100 + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' |
| 2101 + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' |
| 2102 + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; |
| 2103 |
| 2104 block.html = replace(block.html) |
| 2105 ('comment', /<!--[\s\S]*?-->/) |
| 2106 ('closed', /<(tag)[\s\S]+?<\/\1>/) |
| 2107 ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/) |
| 2108 (/tag/g, block._tag) |
| 2109 (); |
| 2110 |
| 2111 block.paragraph = replace(block.paragraph) |
| 2112 ('hr', block.hr) |
| 2113 ('heading', block.heading) |
| 2114 ('lheading', block.lheading) |
| 2115 ('blockquote', block.blockquote) |
| 2116 ('tag', '<' + block._tag) |
| 2117 ('def', block.def) |
| 2118 (); |
| 2119 |
| 2120 /** |
| 2121 * Normal Block Grammar |
| 2122 */ |
| 2123 |
| 2124 block.normal = merge({}, block); |
| 2125 |
| 2126 /** |
| 2127 * GFM Block Grammar |
| 2128 */ |
| 2129 |
| 2130 block.gfm = merge({}, block.normal, { |
| 2131 fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/, |
| 2132 paragraph: /^/ |
| 2133 }); |
| 2134 |
| 2135 block.gfm.paragraph = replace(block.paragraph) |
| 2136 ('(?!', '(?!' |
| 2137 + block.gfm.fences.source.replace('\\1', '\\2') + '|' |
| 2138 + block.list.source.replace('\\1', '\\3') + '|') |
| 2139 (); |
| 2140 |
| 2141 /** |
| 2142 * GFM + Tables Block Grammar |
| 2143 */ |
| 2144 |
| 2145 block.tables = merge({}, block.gfm, { |
| 2146 nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, |
| 2147 table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ |
| 2148 }); |
| 2149 |
| 2150 /** |
| 2151 * Block Lexer |
| 2152 */ |
| 2153 |
| 2154 function Lexer(options) { |
| 2155 this.tokens = []; |
| 2156 this.tokens.links = {}; |
| 2157 this.options = options || marked.defaults; |
| 2158 this.rules = block.normal; |
| 2159 |
| 2160 if (this.options.gfm) { |
| 2161 if (this.options.tables) { |
| 2162 this.rules = block.tables; |
| 2163 } else { |
| 2164 this.rules = block.gfm; |
| 2165 } |
| 2166 } |
| 2167 } |
| 2168 |
| 2169 /** |
| 2170 * Expose Block Rules |
| 2171 */ |
| 2172 |
| 2173 Lexer.rules = block; |
| 2174 |
| 2175 /** |
| 2176 * Static Lex Method |
| 2177 */ |
| 2178 |
| 2179 Lexer.lex = function(src, options) { |
| 2180 var lexer = new Lexer(options); |
| 2181 return lexer.lex(src); |
| 2182 }; |
| 2183 |
| 2184 /** |
| 2185 * Preprocessing |
| 2186 */ |
| 2187 |
| 2188 Lexer.prototype.lex = function(src) { |
| 2189 src = src |
| 2190 .replace(/\r\n|\r/g, '\n') |
| 2191 .replace(/\t/g, ' ') |
| 2192 .replace(/\u00a0/g, ' ') |
| 2193 .replace(/\u2424/g, '\n'); |
| 2194 |
| 2195 return this.token(src, true); |
| 2196 }; |
| 2197 |
| 2198 /** |
| 2199 * Lexing |
| 2200 */ |
| 2201 |
| 2202 Lexer.prototype.token = function(src, top, bq) { |
| 2203 var src = src.replace(/^ +$/gm, '') |
| 2204 , next |
| 2205 , loose |
| 2206 , cap |
| 2207 , bull |
| 2208 , b |
| 2209 , item |
| 2210 , space |
| 2211 , i |
| 2212 , l; |
| 2213 |
| 2214 while (src) { |
| 2215 // newline |
| 2216 if (cap = this.rules.newline.exec(src)) { |
| 2217 src = src.substring(cap[0].length); |
| 2218 if (cap[0].length > 1) { |
| 2219 this.tokens.push({ |
| 2220 type: 'space' |
| 2221 }); |
| 2222 } |
| 2223 } |
| 2224 |
| 2225 // code |
| 2226 if (cap = this.rules.code.exec(src)) { |
| 2227 src = src.substring(cap[0].length); |
| 2228 cap = cap[0].replace(/^ {4}/gm, ''); |
| 2229 this.tokens.push({ |
| 2230 type: 'code', |
| 2231 text: !this.options.pedantic |
| 2232 ? cap.replace(/\n+$/, '') |
| 2233 : cap |
| 2234 }); |
| 2235 continue; |
| 2236 } |
| 2237 |
| 2238 // fences (gfm) |
| 2239 if (cap = this.rules.fences.exec(src)) { |
| 2240 src = src.substring(cap[0].length); |
| 2241 this.tokens.push({ |
| 2242 type: 'code', |
| 2243 lang: cap[2], |
| 2244 text: cap[3] |
| 2245 }); |
| 2246 continue; |
| 2247 } |
| 2248 |
| 2249 // heading |
| 2250 if (cap = this.rules.heading.exec(src)) { |
| 2251 src = src.substring(cap[0].length); |
| 2252 this.tokens.push({ |
| 2253 type: 'heading', |
| 2254 depth: cap[1].length, |
| 2255 text: cap[2] |
| 2256 }); |
| 2257 continue; |
| 2258 } |
| 2259 |
| 2260 // table no leading pipe (gfm) |
| 2261 if (top && (cap = this.rules.nptable.exec(src))) { |
| 2262 src = src.substring(cap[0].length); |
| 2263 |
| 2264 item = { |
| 2265 type: 'table', |
| 2266 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), |
| 2267 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), |
| 2268 cells: cap[3].replace(/\n$/, '').split('\n') |
| 2269 }; |
| 2270 |
| 2271 for (i = 0; i < item.align.length; i++) { |
| 2272 if (/^ *-+: *$/.test(item.align[i])) { |
| 2273 item.align[i] = 'right'; |
| 2274 } else if (/^ *:-+: *$/.test(item.align[i])) { |
| 2275 item.align[i] = 'center'; |
| 2276 } else if (/^ *:-+ *$/.test(item.align[i])) { |
| 2277 item.align[i] = 'left'; |
| 2278 } else { |
| 2279 item.align[i] = null; |
| 2280 } |
| 2281 } |
| 2282 |
| 2283 for (i = 0; i < item.cells.length; i++) { |
| 2284 item.cells[i] = item.cells[i].split(/ *\| */); |
| 2285 } |
| 2286 |
| 2287 this.tokens.push(item); |
| 2288 |
| 2289 continue; |
| 2290 } |
| 2291 |
| 2292 // lheading |
| 2293 if (cap = this.rules.lheading.exec(src)) { |
| 2294 src = src.substring(cap[0].length); |
| 2295 this.tokens.push({ |
| 2296 type: 'heading', |
| 2297 depth: cap[2] === '=' ? 1 : 2, |
| 2298 text: cap[1] |
| 2299 }); |
| 2300 continue; |
| 2301 } |
| 2302 |
| 2303 // hr |
| 2304 if (cap = this.rules.hr.exec(src)) { |
| 2305 src = src.substring(cap[0].length); |
| 2306 this.tokens.push({ |
| 2307 type: 'hr' |
| 2308 }); |
| 2309 continue; |
| 2310 } |
| 2311 |
| 2312 // blockquote |
| 2313 if (cap = this.rules.blockquote.exec(src)) { |
| 2314 src = src.substring(cap[0].length); |
| 2315 |
| 2316 this.tokens.push({ |
| 2317 type: 'blockquote_start' |
| 2318 }); |
| 2319 |
| 2320 cap = cap[0].replace(/^ *> ?/gm, ''); |
| 2321 |
| 2322 // Pass `top` to keep the current |
| 2323 // "toplevel" state. This is exactly |
| 2324 // how markdown.pl works. |
| 2325 this.token(cap, top, true); |
| 2326 |
| 2327 this.tokens.push({ |
| 2328 type: 'blockquote_end' |
| 2329 }); |
| 2330 |
| 2331 continue; |
| 2332 } |
| 2333 |
| 2334 // list |
| 2335 if (cap = this.rules.list.exec(src)) { |
| 2336 src = src.substring(cap[0].length); |
| 2337 bull = cap[2]; |
| 2338 |
| 2339 this.tokens.push({ |
| 2340 type: 'list_start', |
| 2341 ordered: bull.length > 1 |
| 2342 }); |
| 2343 |
| 2344 // Get each top-level item. |
| 2345 cap = cap[0].match(this.rules.item); |
| 2346 |
| 2347 next = false; |
| 2348 l = cap.length; |
| 2349 i = 0; |
| 2350 |
| 2351 for (; i < l; i++) { |
| 2352 item = cap[i]; |
| 2353 |
| 2354 // Remove the list item's bullet |
| 2355 // so it is seen as the next token. |
| 2356 space = item.length; |
| 2357 item = item.replace(/^ *([*+-]|\d+\.) +/, ''); |
| 2358 |
| 2359 // Outdent whatever the |
| 2360 // list item contains. Hacky. |
| 2361 if (~item.indexOf('\n ')) { |
| 2362 space -= item.length; |
| 2363 item = !this.options.pedantic |
| 2364 ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') |
| 2365 : item.replace(/^ {1,4}/gm, ''); |
| 2366 } |
| 2367 |
| 2368 // Determine whether the next list item belongs here. |
| 2369 // Backpedal if it does not belong in this list. |
| 2370 if (this.options.smartLists && i !== l - 1) { |
| 2371 b = block.bullet.exec(cap[i + 1])[0]; |
| 2372 if (bull !== b && !(bull.length > 1 && b.length > 1)) { |
| 2373 src = cap.slice(i + 1).join('\n') + src; |
| 2374 i = l - 1; |
| 2375 } |
| 2376 } |
| 2377 |
| 2378 // Determine whether item is loose or not. |
| 2379 // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ |
| 2380 // for discount behavior. |
| 2381 loose = next || /\n\n(?!\s*$)/.test(item); |
| 2382 if (i !== l - 1) { |
| 2383 next = item.charAt(item.length - 1) === '\n'; |
| 2384 if (!loose) loose = next; |
| 2385 } |
| 2386 |
| 2387 this.tokens.push({ |
| 2388 type: loose |
| 2389 ? 'loose_item_start' |
| 2390 : 'list_item_start' |
| 2391 }); |
| 2392 |
| 2393 // Recurse. |
| 2394 this.token(item, false, bq); |
| 2395 |
| 2396 this.tokens.push({ |
| 2397 type: 'list_item_end' |
| 2398 }); |
| 2399 } |
| 2400 |
| 2401 this.tokens.push({ |
| 2402 type: 'list_end' |
| 2403 }); |
| 2404 |
| 2405 continue; |
| 2406 } |
| 2407 |
| 2408 // html |
| 2409 if (cap = this.rules.html.exec(src)) { |
| 2410 src = src.substring(cap[0].length); |
| 2411 this.tokens.push({ |
| 2412 type: this.options.sanitize |
| 2413 ? 'paragraph' |
| 2414 : 'html', |
| 2415 pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style', |
| 2416 text: cap[0] |
| 2417 }); |
| 2418 continue; |
| 2419 } |
| 2420 |
| 2421 // def |
| 2422 if ((!bq && top) && (cap = this.rules.def.exec(src))) { |
| 2423 src = src.substring(cap[0].length); |
| 2424 this.tokens.links[cap[1].toLowerCase()] = { |
| 2425 href: cap[2], |
| 2426 title: cap[3] |
| 2427 }; |
| 2428 continue; |
| 2429 } |
| 2430 |
| 2431 // table (gfm) |
| 2432 if (top && (cap = this.rules.table.exec(src))) { |
| 2433 src = src.substring(cap[0].length); |
| 2434 |
| 2435 item = { |
| 2436 type: 'table', |
| 2437 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), |
| 2438 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), |
| 2439 cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') |
| 2440 }; |
| 2441 |
| 2442 for (i = 0; i < item.align.length; i++) { |
| 2443 if (/^ *-+: *$/.test(item.align[i])) { |
| 2444 item.align[i] = 'right'; |
| 2445 } else if (/^ *:-+: *$/.test(item.align[i])) { |
| 2446 item.align[i] = 'center'; |
| 2447 } else if (/^ *:-+ *$/.test(item.align[i])) { |
| 2448 item.align[i] = 'left'; |
| 2449 } else { |
| 2450 item.align[i] = null; |
| 2451 } |
| 2452 } |
| 2453 |
| 2454 for (i = 0; i < item.cells.length; i++) { |
| 2455 item.cells[i] = item.cells[i] |
| 2456 .replace(/^ *\| *| *\| *$/g, '') |
| 2457 .split(/ *\| */); |
| 2458 } |
| 2459 |
| 2460 this.tokens.push(item); |
| 2461 |
| 2462 continue; |
| 2463 } |
| 2464 |
| 2465 // top-level paragraph |
| 2466 if (top && (cap = this.rules.paragraph.exec(src))) { |
| 2467 src = src.substring(cap[0].length); |
| 2468 this.tokens.push({ |
| 2469 type: 'paragraph', |
| 2470 text: cap[1].charAt(cap[1].length - 1) === '\n' |
| 2471 ? cap[1].slice(0, -1) |
| 2472 : cap[1] |
| 2473 }); |
| 2474 continue; |
| 2475 } |
| 2476 |
| 2477 // text |
| 2478 if (cap = this.rules.text.exec(src)) { |
| 2479 // Top-level should never reach here. |
| 2480 src = src.substring(cap[0].length); |
| 2481 this.tokens.push({ |
| 2482 type: 'text', |
| 2483 text: cap[0] |
| 2484 }); |
| 2485 continue; |
| 2486 } |
| 2487 |
| 2488 if (src) { |
| 2489 throw new |
| 2490 Error('Infinite loop on byte: ' + src.charCodeAt(0)); |
| 2491 } |
| 2492 } |
| 2493 |
| 2494 return this.tokens; |
| 2495 }; |
| 2496 |
| 2497 /** |
| 2498 * Inline-Level Grammar |
| 2499 */ |
| 2500 |
| 2501 var inline = { |
| 2502 escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, |
| 2503 autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, |
| 2504 url: noop, |
| 2505 tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, |
| 2506 link: /^!?\[(inside)\]\(href\)/, |
| 2507 reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, |
| 2508 nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, |
| 2509 strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, |
| 2510 em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
| 2511 code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, |
| 2512 br: /^ {2,}\n(?!\s*$)/, |
| 2513 del: noop, |
| 2514 text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/ |
| 2515 }; |
| 2516 |
| 2517 inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/; |
| 2518 inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/; |
| 2519 |
| 2520 inline.link = replace(inline.link) |
| 2521 ('inside', inline._inside) |
| 2522 ('href', inline._href) |
| 2523 (); |
| 2524 |
| 2525 inline.reflink = replace(inline.reflink) |
| 2526 ('inside', inline._inside) |
| 2527 (); |
| 2528 |
| 2529 /** |
| 2530 * Normal Inline Grammar |
| 2531 */ |
| 2532 |
| 2533 inline.normal = merge({}, inline); |
| 2534 |
| 2535 /** |
| 2536 * Pedantic Inline Grammar |
| 2537 */ |
| 2538 |
| 2539 inline.pedantic = merge({}, inline.normal, { |
| 2540 strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, |
| 2541 em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ |
| 2542 }); |
| 2543 |
| 2544 /** |
| 2545 * GFM Inline Grammar |
| 2546 */ |
| 2547 |
| 2548 inline.gfm = merge({}, inline.normal, { |
| 2549 escape: replace(inline.escape)('])', '~|])')(), |
| 2550 url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, |
| 2551 del: /^~~(?=\S)([\s\S]*?\S)~~/, |
| 2552 text: replace(inline.text) |
| 2553 (']|', '~]|') |
| 2554 ('|', '|https?://|') |
| 2555 () |
| 2556 }); |
| 2557 |
| 2558 /** |
| 2559 * GFM + Line Breaks Inline Grammar |
| 2560 */ |
| 2561 |
| 2562 inline.breaks = merge({}, inline.gfm, { |
| 2563 br: replace(inline.br)('{2,}', '*')(), |
| 2564 text: replace(inline.gfm.text)('{2,}', '*')() |
| 2565 }); |
| 2566 |
| 2567 /** |
| 2568 * Inline Lexer & Compiler |
| 2569 */ |
| 2570 |
| 2571 function InlineLexer(links, options) { |
| 2572 this.options = options || marked.defaults; |
| 2573 this.links = links; |
| 2574 this.rules = inline.normal; |
| 2575 this.renderer = this.options.renderer || new Renderer; |
| 2576 this.renderer.options = this.options; |
| 2577 |
| 2578 if (!this.links) { |
| 2579 throw new |
| 2580 Error('Tokens array requires a `links` property.'); |
| 2581 } |
| 2582 |
| 2583 if (this.options.gfm) { |
| 2584 if (this.options.breaks) { |
| 2585 this.rules = inline.breaks; |
| 2586 } else { |
| 2587 this.rules = inline.gfm; |
| 2588 } |
| 2589 } else if (this.options.pedantic) { |
| 2590 this.rules = inline.pedantic; |
| 2591 } |
| 2592 } |
| 2593 |
| 2594 /** |
| 2595 * Expose Inline Rules |
| 2596 */ |
| 2597 |
| 2598 InlineLexer.rules = inline; |
| 2599 |
| 2600 /** |
| 2601 * Static Lexing/Compiling Method |
| 2602 */ |
| 2603 |
| 2604 InlineLexer.output = function(src, links, options) { |
| 2605 var inline = new InlineLexer(links, options); |
| 2606 return inline.output(src); |
| 2607 }; |
| 2608 |
| 2609 /** |
| 2610 * Lexing/Compiling |
| 2611 */ |
| 2612 |
| 2613 InlineLexer.prototype.output = function(src) { |
| 2614 var out = '' |
| 2615 , link |
| 2616 , text |
| 2617 , href |
| 2618 , cap; |
| 2619 |
| 2620 while (src) { |
| 2621 // escape |
| 2622 if (cap = this.rules.escape.exec(src)) { |
| 2623 src = src.substring(cap[0].length); |
| 2624 out += cap[1]; |
| 2625 continue; |
| 2626 } |
| 2627 |
| 2628 // autolink |
| 2629 if (cap = this.rules.autolink.exec(src)) { |
| 2630 src = src.substring(cap[0].length); |
| 2631 if (cap[2] === '@') { |
| 2632 text = cap[1].charAt(6) === ':' |
| 2633 ? this.mangle(cap[1].substring(7)) |
| 2634 : this.mangle(cap[1]); |
| 2635 href = this.mangle('mailto:') + text; |
| 2636 } else { |
| 2637 text = escape(cap[1]); |
| 2638 href = text; |
| 2639 } |
| 2640 out += this.renderer.link(href, null, text); |
| 2641 continue; |
| 2642 } |
| 2643 |
| 2644 // url (gfm) |
| 2645 if (!this.inLink && (cap = this.rules.url.exec(src))) { |
| 2646 src = src.substring(cap[0].length); |
| 2647 text = escape(cap[1]); |
| 2648 href = text; |
| 2649 out += this.renderer.link(href, null, text); |
| 2650 continue; |
| 2651 } |
| 2652 |
| 2653 // tag |
| 2654 if (cap = this.rules.tag.exec(src)) { |
| 2655 if (!this.inLink && /^<a /i.test(cap[0])) { |
| 2656 this.inLink = true; |
| 2657 } else if (this.inLink && /^<\/a>/i.test(cap[0])) { |
| 2658 this.inLink = false; |
| 2659 } |
| 2660 src = src.substring(cap[0].length); |
| 2661 out += this.options.sanitize |
| 2662 ? escape(cap[0]) |
| 2663 : cap[0]; |
| 2664 continue; |
| 2665 } |
| 2666 |
| 2667 // link |
| 2668 if (cap = this.rules.link.exec(src)) { |
| 2669 src = src.substring(cap[0].length); |
| 2670 this.inLink = true; |
| 2671 out += this.outputLink(cap, { |
| 2672 href: cap[2], |
| 2673 title: cap[3] |
| 2674 }); |
| 2675 this.inLink = false; |
| 2676 continue; |
| 2677 } |
| 2678 |
| 2679 // reflink, nolink |
| 2680 if ((cap = this.rules.reflink.exec(src)) |
| 2681 || (cap = this.rules.nolink.exec(src))) { |
| 2682 src = src.substring(cap[0].length); |
| 2683 link = (cap[2] || cap[1]).replace(/\s+/g, ' '); |
| 2684 link = this.links[link.toLowerCase()]; |
| 2685 if (!link || !link.href) { |
| 2686 out += cap[0].charAt(0); |
| 2687 src = cap[0].substring(1) + src; |
| 2688 continue; |
| 2689 } |
| 2690 this.inLink = true; |
| 2691 out += this.outputLink(cap, link); |
| 2692 this.inLink = false; |
| 2693 continue; |
| 2694 } |
| 2695 |
| 2696 // strong |
| 2697 if (cap = this.rules.strong.exec(src)) { |
| 2698 src = src.substring(cap[0].length); |
| 2699 out += this.renderer.strong(this.output(cap[2] || cap[1])); |
| 2700 continue; |
| 2701 } |
| 2702 |
| 2703 // em |
| 2704 if (cap = this.rules.em.exec(src)) { |
| 2705 src = src.substring(cap[0].length); |
| 2706 out += this.renderer.em(this.output(cap[2] || cap[1])); |
| 2707 continue; |
| 2708 } |
| 2709 |
| 2710 // code |
| 2711 if (cap = this.rules.code.exec(src)) { |
| 2712 src = src.substring(cap[0].length); |
| 2713 out += this.renderer.codespan(escape(cap[2], true)); |
| 2714 continue; |
| 2715 } |
| 2716 |
| 2717 // br |
| 2718 if (cap = this.rules.br.exec(src)) { |
| 2719 src = src.substring(cap[0].length); |
| 2720 out += this.renderer.br(); |
| 2721 continue; |
| 2722 } |
| 2723 |
| 2724 // del (gfm) |
| 2725 if (cap = this.rules.del.exec(src)) { |
| 2726 src = src.substring(cap[0].length); |
| 2727 out += this.renderer.del(this.output(cap[1])); |
| 2728 continue; |
| 2729 } |
| 2730 |
| 2731 // text |
| 2732 if (cap = this.rules.text.exec(src)) { |
| 2733 src = src.substring(cap[0].length); |
| 2734 out += escape(this.smartypants(cap[0])); |
| 2735 continue; |
| 2736 } |
| 2737 |
| 2738 if (src) { |
| 2739 throw new |
| 2740 Error('Infinite loop on byte: ' + src.charCodeAt(0)); |
| 2741 } |
| 2742 } |
| 2743 |
| 2744 return out; |
| 2745 }; |
| 2746 |
| 2747 /** |
| 2748 * Compile Link |
| 2749 */ |
| 2750 |
| 2751 InlineLexer.prototype.outputLink = function(cap, link) { |
| 2752 var href = escape(link.href) |
| 2753 , title = link.title ? escape(link.title) : null; |
| 2754 |
| 2755 return cap[0].charAt(0) !== '!' |
| 2756 ? this.renderer.link(href, title, this.output(cap[1])) |
| 2757 : this.renderer.image(href, title, escape(cap[1])); |
| 2758 }; |
| 2759 |
| 2760 /** |
| 2761 * Smartypants Transformations |
| 2762 */ |
| 2763 |
| 2764 InlineLexer.prototype.smartypants = function(text) { |
| 2765 if (!this.options.smartypants) return text; |
| 2766 return text |
| 2767 // em-dashes |
| 2768 .replace(/--/g, '\u2014') |
| 2769 // opening singles |
| 2770 .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') |
| 2771 // closing singles & apostrophes |
| 2772 .replace(/'/g, '\u2019') |
| 2773 // opening doubles |
| 2774 .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') |
| 2775 // closing doubles |
| 2776 .replace(/"/g, '\u201d') |
| 2777 // ellipses |
| 2778 .replace(/\.{3}/g, '\u2026'); |
| 2779 }; |
| 2780 |
| 2781 /** |
| 2782 * Mangle Links |
| 2783 */ |
| 2784 |
| 2785 InlineLexer.prototype.mangle = function(text) { |
| 2786 var out = '' |
| 2787 , l = text.length |
| 2788 , i = 0 |
| 2789 , ch; |
| 2790 |
| 2791 for (; i < l; i++) { |
| 2792 ch = text.charCodeAt(i); |
| 2793 if (Math.random() > 0.5) { |
| 2794 ch = 'x' + ch.toString(16); |
| 2795 } |
| 2796 out += '&#' + ch + ';'; |
| 2797 } |
| 2798 |
| 2799 return out; |
| 2800 }; |
| 2801 |
| 2802 /** |
| 2803 * Renderer |
| 2804 */ |
| 2805 |
| 2806 function Renderer(options) { |
| 2807 this.options = options || {}; |
| 2808 } |
| 2809 |
| 2810 Renderer.prototype.code = function(code, lang, escaped) { |
| 2811 if (this.options.highlight) { |
| 2812 var out = this.options.highlight(code, lang); |
| 2813 if (out != null && out !== code) { |
| 2814 escaped = true; |
| 2815 code = out; |
| 2816 } |
| 2817 } |
| 2818 |
| 2819 if (!lang) { |
| 2820 return '<pre><code>' |
| 2821 + (escaped ? code : escape(code, true)) |
| 2822 + '\n</code></pre>'; |
| 2823 } |
| 2824 |
| 2825 return '<pre><code class="' |
| 2826 + this.options.langPrefix |
| 2827 + escape(lang, true) |
| 2828 + '">' |
| 2829 + (escaped ? code : escape(code, true)) |
| 2830 + '\n</code></pre>\n'; |
| 2831 }; |
| 2832 |
| 2833 Renderer.prototype.blockquote = function(quote) { |
| 2834 return '<blockquote>\n' + quote + '</blockquote>\n'; |
| 2835 }; |
| 2836 |
| 2837 Renderer.prototype.html = function(html) { |
| 2838 return html; |
| 2839 }; |
| 2840 |
| 2841 Renderer.prototype.heading = function(text, level, raw) { |
| 2842 return '<h' |
| 2843 + level |
| 2844 + ' id="' |
| 2845 + this.options.headerPrefix |
| 2846 + raw.toLowerCase().replace(/[^\w]+/g, '-') |
| 2847 + '">' |
| 2848 + text |
| 2849 + '</h' |
| 2850 + level |
| 2851 + '>\n'; |
| 2852 }; |
| 2853 |
| 2854 Renderer.prototype.hr = function() { |
| 2855 return this.options.xhtml ? '<hr/>\n' : '<hr>\n'; |
| 2856 }; |
| 2857 |
| 2858 Renderer.prototype.list = function(body, ordered) { |
| 2859 var type = ordered ? 'ol' : 'ul'; |
| 2860 return '<' + type + '>\n' + body + '</' + type + '>\n'; |
| 2861 }; |
| 2862 |
| 2863 Renderer.prototype.listitem = function(text) { |
| 2864 return '<li>' + text + '</li>\n'; |
| 2865 }; |
| 2866 |
| 2867 Renderer.prototype.paragraph = function(text) { |
| 2868 return '<p>' + text + '</p>\n'; |
| 2869 }; |
| 2870 |
| 2871 Renderer.prototype.table = function(header, body) { |
| 2872 return '<table>\n' |
| 2873 + '<thead>\n' |
| 2874 + header |
| 2875 + '</thead>\n' |
| 2876 + '<tbody>\n' |
| 2877 + body |
| 2878 + '</tbody>\n' |
| 2879 + '</table>\n'; |
| 2880 }; |
| 2881 |
| 2882 Renderer.prototype.tablerow = function(content) { |
| 2883 return '<tr>\n' + content + '</tr>\n'; |
| 2884 }; |
| 2885 |
| 2886 Renderer.prototype.tablecell = function(content, flags) { |
| 2887 var type = flags.header ? 'th' : 'td'; |
| 2888 var tag = flags.align |
| 2889 ? '<' + type + ' style="text-align:' + flags.align + '">' |
| 2890 : '<' + type + '>'; |
| 2891 return tag + content + '</' + type + '>\n'; |
| 2892 }; |
| 2893 |
| 2894 // span level renderer |
| 2895 Renderer.prototype.strong = function(text) { |
| 2896 return '<strong>' + text + '</strong>'; |
| 2897 }; |
| 2898 |
| 2899 Renderer.prototype.em = function(text) { |
| 2900 return '<em>' + text + '</em>'; |
| 2901 }; |
| 2902 |
| 2903 Renderer.prototype.codespan = function(text) { |
| 2904 return '<code>' + text + '</code>'; |
| 2905 }; |
| 2906 |
| 2907 Renderer.prototype.br = function() { |
| 2908 return this.options.xhtml ? '<br/>' : '<br>'; |
| 2909 }; |
| 2910 |
| 2911 Renderer.prototype.del = function(text) { |
| 2912 return '<del>' + text + '</del>'; |
| 2913 }; |
| 2914 |
| 2915 Renderer.prototype.link = function(href, title, text) { |
| 2916 if (this.options.sanitize) { |
| 2917 try { |
| 2918 var prot = decodeURIComponent(unescape(href)) |
| 2919 .replace(/[^\w:]/g, '') |
| 2920 .toLowerCase(); |
| 2921 } catch (e) { |
| 2922 return ''; |
| 2923 } |
| 2924 if (prot.indexOf('javascript:') === 0) { |
| 2925 return ''; |
| 2926 } |
| 2927 } |
| 2928 var out = '<a href="' + href + '"'; |
| 2929 if (title) { |
| 2930 out += ' title="' + title + '"'; |
| 2931 } |
| 2932 out += '>' + text + '</a>'; |
| 2933 return out; |
| 2934 }; |
| 2935 |
| 2936 Renderer.prototype.image = function(href, title, text) { |
| 2937 var out = '<img src="' + href + '" alt="' + text + '"'; |
| 2938 if (title) { |
| 2939 out += ' title="' + title + '"'; |
| 2940 } |
| 2941 out += this.options.xhtml ? '/>' : '>'; |
| 2942 return out; |
| 2943 }; |
| 2944 |
| 2945 /** |
| 2946 * Parsing & Compiling |
| 2947 */ |
| 2948 |
| 2949 function Parser(options) { |
| 2950 this.tokens = []; |
| 2951 this.token = null; |
| 2952 this.options = options || marked.defaults; |
| 2953 this.options.renderer = this.options.renderer || new Renderer; |
| 2954 this.renderer = this.options.renderer; |
| 2955 this.renderer.options = this.options; |
| 2956 } |
| 2957 |
| 2958 /** |
| 2959 * Static Parse Method |
| 2960 */ |
| 2961 |
| 2962 Parser.parse = function(src, options, renderer) { |
| 2963 var parser = new Parser(options, renderer); |
| 2964 return parser.parse(src); |
| 2965 }; |
| 2966 |
| 2967 /** |
| 2968 * Parse Loop |
| 2969 */ |
| 2970 |
| 2971 Parser.prototype.parse = function(src) { |
| 2972 this.inline = new InlineLexer(src.links, this.options, this.renderer); |
| 2973 this.tokens = src.reverse(); |
| 2974 |
| 2975 var out = ''; |
| 2976 while (this.next()) { |
| 2977 out += this.tok(); |
| 2978 } |
| 2979 |
| 2980 return out; |
| 2981 }; |
| 2982 |
| 2983 /** |
| 2984 * Next Token |
| 2985 */ |
| 2986 |
| 2987 Parser.prototype.next = function() { |
| 2988 return this.token = this.tokens.pop(); |
| 2989 }; |
| 2990 |
| 2991 /** |
| 2992 * Preview Next Token |
| 2993 */ |
| 2994 |
| 2995 Parser.prototype.peek = function() { |
| 2996 return this.tokens[this.tokens.length - 1] || 0; |
| 2997 }; |
| 2998 |
| 2999 /** |
| 3000 * Parse Text Tokens |
| 3001 */ |
| 3002 |
| 3003 Parser.prototype.parseText = function() { |
| 3004 var body = this.token.text; |
| 3005 |
| 3006 while (this.peek().type === 'text') { |
| 3007 body += '\n' + this.next().text; |
| 3008 } |
| 3009 |
| 3010 return this.inline.output(body); |
| 3011 }; |
| 3012 |
| 3013 /** |
| 3014 * Parse Current Token |
| 3015 */ |
| 3016 |
| 3017 Parser.prototype.tok = function() { |
| 3018 switch (this.token.type) { |
| 3019 case 'space': { |
| 3020 return ''; |
| 3021 } |
| 3022 case 'hr': { |
| 3023 return this.renderer.hr(); |
| 3024 } |
| 3025 case 'heading': { |
| 3026 return this.renderer.heading( |
| 3027 this.inline.output(this.token.text), |
| 3028 this.token.depth, |
| 3029 this.token.text); |
| 3030 } |
| 3031 case 'code': { |
| 3032 return this.renderer.code(this.token.text, |
| 3033 this.token.lang, |
| 3034 this.token.escaped); |
| 3035 } |
| 3036 case 'table': { |
| 3037 var header = '' |
| 3038 , body = '' |
| 3039 , i |
| 3040 , row |
| 3041 , cell |
| 3042 , flags |
| 3043 , j; |
| 3044 |
| 3045 // header |
| 3046 cell = ''; |
| 3047 for (i = 0; i < this.token.header.length; i++) { |
| 3048 flags = { header: true, align: this.token.align[i] }; |
| 3049 cell += this.renderer.tablecell( |
| 3050 this.inline.output(this.token.header[i]), |
| 3051 { header: true, align: this.token.align[i] } |
| 3052 ); |
| 3053 } |
| 3054 header += this.renderer.tablerow(cell); |
| 3055 |
| 3056 for (i = 0; i < this.token.cells.length; i++) { |
| 3057 row = this.token.cells[i]; |
| 3058 |
| 3059 cell = ''; |
| 3060 for (j = 0; j < row.length; j++) { |
| 3061 cell += this.renderer.tablecell( |
| 3062 this.inline.output(row[j]), |
| 3063 { header: false, align: this.token.align[j] } |
| 3064 ); |
| 3065 } |
| 3066 |
| 3067 body += this.renderer.tablerow(cell); |
| 3068 } |
| 3069 return this.renderer.table(header, body); |
| 3070 } |
| 3071 case 'blockquote_start': { |
| 3072 var body = ''; |
| 3073 |
| 3074 while (this.next().type !== 'blockquote_end') { |
| 3075 body += this.tok(); |
| 3076 } |
| 3077 |
| 3078 return this.renderer.blockquote(body); |
| 3079 } |
| 3080 case 'list_start': { |
| 3081 var body = '' |
| 3082 , ordered = this.token.ordered; |
| 3083 |
| 3084 while (this.next().type !== 'list_end') { |
| 3085 body += this.tok(); |
| 3086 } |
| 3087 |
| 3088 return this.renderer.list(body, ordered); |
| 3089 } |
| 3090 case 'list_item_start': { |
| 3091 var body = ''; |
| 3092 |
| 3093 while (this.next().type !== 'list_item_end') { |
| 3094 body += this.token.type === 'text' |
| 3095 ? this.parseText() |
| 3096 : this.tok(); |
| 3097 } |
| 3098 |
| 3099 return this.renderer.listitem(body); |
| 3100 } |
| 3101 case 'loose_item_start': { |
| 3102 var body = ''; |
| 3103 |
| 3104 while (this.next().type !== 'list_item_end') { |
| 3105 body += this.tok(); |
| 3106 } |
| 3107 |
| 3108 return this.renderer.listitem(body); |
| 3109 } |
| 3110 case 'html': { |
| 3111 var html = !this.token.pre && !this.options.pedantic |
| 3112 ? this.inline.output(this.token.text) |
| 3113 : this.token.text; |
| 3114 return this.renderer.html(html); |
| 3115 } |
| 3116 case 'paragraph': { |
| 3117 return this.renderer.paragraph(this.inline.output(this.token.text)); |
| 3118 } |
| 3119 case 'text': { |
| 3120 return this.renderer.paragraph(this.parseText()); |
| 3121 } |
| 3122 } |
| 3123 }; |
| 3124 |
| 3125 /** |
| 3126 * Helpers |
| 3127 */ |
| 3128 |
| 3129 function escape(html, encode) { |
| 3130 return html |
| 3131 .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') |
| 3132 .replace(/</g, '<') |
| 3133 .replace(/>/g, '>') |
| 3134 .replace(/"/g, '"') |
| 3135 .replace(/'/g, '''); |
| 3136 } |
| 3137 |
| 3138 function unescape(html) { |
| 3139 return html.replace(/&([#\w]+);/g, function(_, n) { |
| 3140 n = n.toLowerCase(); |
| 3141 if (n === 'colon') return ':'; |
| 3142 if (n.charAt(0) === '#') { |
| 3143 return n.charAt(1) === 'x' |
| 3144 ? String.fromCharCode(parseInt(n.substring(2), 16)) |
| 3145 : String.fromCharCode(+n.substring(1)); |
| 3146 } |
| 3147 return ''; |
| 3148 }); |
| 3149 } |
| 3150 |
| 3151 function replace(regex, opt) { |
| 3152 regex = regex.source; |
| 3153 opt = opt || ''; |
| 3154 return function self(name, val) { |
| 3155 if (!name) return new RegExp(regex, opt); |
| 3156 val = val.source || val; |
| 3157 val = val.replace(/(^|[^\[])\^/g, '$1'); |
| 3158 regex = regex.replace(name, val); |
| 3159 return self; |
| 3160 }; |
| 3161 } |
| 3162 |
| 3163 function noop() {} |
| 3164 noop.exec = noop; |
| 3165 |
| 3166 function merge(obj) { |
| 3167 var i = 1 |
| 3168 , target |
| 3169 , key; |
| 3170 |
| 3171 for (; i < arguments.length; i++) { |
| 3172 target = arguments[i]; |
| 3173 for (key in target) { |
| 3174 if (Object.prototype.hasOwnProperty.call(target, key)) { |
| 3175 obj[key] = target[key]; |
| 3176 } |
| 3177 } |
| 3178 } |
| 3179 |
| 3180 return obj; |
| 3181 } |
| 3182 |
| 3183 |
| 3184 /** |
| 3185 * Marked |
| 3186 */ |
| 3187 |
| 3188 function marked(src, opt, callback) { |
| 3189 if (callback || typeof opt === 'function') { |
| 3190 if (!callback) { |
| 3191 callback = opt; |
| 3192 opt = null; |
| 3193 } |
| 3194 |
| 3195 opt = merge({}, marked.defaults, opt || {}); |
| 3196 |
| 3197 var highlight = opt.highlight |
| 3198 , tokens |
| 3199 , pending |
| 3200 , i = 0; |
| 3201 |
| 3202 try { |
| 3203 tokens = Lexer.lex(src, opt) |
| 3204 } catch (e) { |
| 3205 return callback(e); |
| 3206 } |
| 3207 |
| 3208 pending = tokens.length; |
| 3209 |
| 3210 var done = function() { |
| 3211 var out, err; |
| 3212 |
| 3213 try { |
| 3214 out = Parser.parse(tokens, opt); |
| 3215 } catch (e) { |
| 3216 err = e; |
| 3217 } |
| 3218 |
| 3219 opt.highlight = highlight; |
| 3220 |
| 3221 return err |
| 3222 ? callback(err) |
| 3223 : callback(null, out); |
| 3224 }; |
| 3225 |
| 3226 if (!highlight || highlight.length < 3) { |
| 3227 return done(); |
| 3228 } |
| 3229 |
| 3230 delete opt.highlight; |
| 3231 |
| 3232 if (!pending) return done(); |
| 3233 |
| 3234 for (; i < tokens.length; i++) { |
| 3235 (function(token) { |
| 3236 if (token.type !== 'code') { |
| 3237 return --pending || done(); |
| 3238 } |
| 3239 return highlight(token.text, token.lang, function(err, code) { |
| 3240 if (code == null || code === token.text) { |
| 3241 return --pending || done(); |
| 3242 } |
| 3243 token.text = code; |
| 3244 token.escaped = true; |
| 3245 --pending || done(); |
| 3246 }); |
| 3247 })(tokens[i]); |
| 3248 } |
| 3249 |
| 3250 return; |
| 3251 } |
| 3252 try { |
| 3253 if (opt) opt = merge({}, marked.defaults, opt); |
| 3254 return Parser.parse(Lexer.lex(src, opt), opt); |
| 3255 } catch (e) { |
| 3256 e.message += '\nPlease report this to https://github.com/chjj/marked.'; |
| 3257 if ((opt || marked.defaults).silent) { |
| 3258 return '<p>An error occured:</p><pre>' |
| 3259 + escape(e.message + '', true) |
| 3260 + '</pre>'; |
| 3261 } |
| 3262 throw e; |
| 3263 } |
| 3264 } |
| 3265 |
| 3266 /** |
| 3267 * Options |
| 3268 */ |
| 3269 |
| 3270 marked.options = |
| 3271 marked.setOptions = function(opt) { |
| 3272 merge(marked.defaults, opt); |
| 3273 return marked; |
| 3274 }; |
| 3275 |
| 3276 marked.defaults = { |
| 3277 gfm: true, |
| 3278 tables: true, |
| 3279 breaks: false, |
| 3280 pedantic: false, |
| 3281 sanitize: false, |
| 3282 smartLists: false, |
| 3283 silent: false, |
| 3284 highlight: null, |
| 3285 langPrefix: 'lang-', |
| 3286 smartypants: false, |
| 3287 headerPrefix: '', |
| 3288 renderer: new Renderer, |
| 3289 xhtml: false |
| 3290 }; |
| 3291 |
| 3292 /** |
| 3293 * Expose |
| 3294 */ |
| 3295 |
| 3296 marked.Parser = Parser; |
| 3297 marked.parser = Parser.parse; |
| 3298 |
| 3299 marked.Renderer = Renderer; |
| 3300 |
| 3301 marked.Lexer = Lexer; |
| 3302 marked.lexer = Lexer.lex; |
| 3303 |
| 3304 marked.InlineLexer = InlineLexer; |
| 3305 marked.inlineLexer = InlineLexer.output; |
| 3306 |
| 3307 marked.parse = marked; |
| 3308 |
| 3309 if (typeof exports === 'object') { |
| 3310 module.exports = marked; |
| 3311 } else if (typeof define === 'function' && define.amd) { |
| 3312 define(function() { return marked; }); |
| 3313 } else { |
| 3314 this.marked = marked; |
| 3315 } |
| 3316 |
| 3317 }).call(function() { |
| 3318 return this || (typeof window !== 'undefined' ? window : global); |
| 3319 }()); |
| 3320 </script> |
| 3321 |
| 3322 |
| 3323 <!-- |
| 3324 Element wrapper for the `marked` (http://marked.org/) library. |
| 3325 |
| 3326 @class marked-element |
| 3327 @blurb Element wrapper for the marked library. |
| 3328 @status alpha |
| 3329 @snap snap.png |
| 3330 --> |
| 3331 <polymer-element name="marked-element" attributes="text" assetpath="../marked-el
ement/"> |
| 3332 <script> |
| 3333 |
| 3334 Polymer('marked-element', { |
| 3335 |
| 3336 text: '', |
| 3337 |
| 3338 attached: function() { |
| 3339 marked.setOptions({ |
| 3340 highlight: this.highlight.bind(this) |
| 3341 }); |
| 3342 if (!this.text) { |
| 3343 this.text = this.innerHTML; |
| 3344 } |
| 3345 }, |
| 3346 |
| 3347 textChanged: function () { |
| 3348 this.innerHTML = marked(this.text); |
| 3349 }, |
| 3350 |
| 3351 highlight: function(code, lang) { |
| 3352 var event = this.fire('marked-js-highlight', {code: code, lang: lang}); |
| 3353 return event.detail.code || code; |
| 3354 } |
| 3355 |
| 3356 }); |
| 3357 |
| 3358 </script> |
| 3359 </polymer-element> |
| 3360 |
| 3361 |
| 3362 <script>var hljs=new function(){function k(v){return v.replace(/&/gm,"&").re
place(/</gm,"<").replace(/>/gm,">")}function t(v){return v.nodeName.toLowe
rCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){re
turn Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return
b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}retu
rn d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNo
de.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/
,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function
o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}retur
n v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSib
ling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A
.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"st
op",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var
F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].
offset!=y[0].offset){return(w[0].offset<y[0].offset)?w:y}return y[0].event=="sta
rt"?w:y}function A(H){function G(I){return" "+I.nodeName+'="'+k(I.value)+'"'}F+=
"<"+t(H)+Array.prototype.map.call(H.attributes,G).join("")+">"}function E(G){F+=
"</"+t(G)+">"}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.len
gth){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse(
).forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);
z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop
()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){retu
rn(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":"
"))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){
var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(functio
n(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string
"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=
z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join(
"|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w
(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i
)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(
F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=
B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(func
tion(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i])
.map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){retur
n null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;
T<V.c.length;T++){if(i(V.c[T].bR,U)){return V.c[T]}}}function z(U,T){if(i(U.eR,T
)){return U}if(U.eW){return z(U.parent,T)}}function A(T,U){return !J&&i(U.iR,T)}
function E(V,T){var U=M.cI?T[0].toLowerCase():T[0];return V.k.hasOwnProperty(U)&
&V.k[U]}function w(Z,X,W,V){var T=V?"":b.classPrefix,U='<span class="'+T,Y=W?"":
"</span>";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T
="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X
);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.l
R.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T
=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMo
de=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,tru
e)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.c
N,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=O
bject.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q()
;return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);i
f(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+="</span>"}H+=I.r;I=I.p
arent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}retur
n U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'
+(I.cN||"<unnamed>")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Er
ror('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.p
arent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I
.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.in
dex+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+="</span>"}}ret
urn{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){
return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.k
eys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var
A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.languag
e){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]
+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR)
{v=v.replace(/\n/g,"<br>")}return v}function p(z){var y=d(z);var A=r(z);if(A=="n
o-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=docu
ment.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v
.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+
(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.s
econd_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPre
fix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b
,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorA
ll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("
DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};fu
nction e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y
]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;
this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;
this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.in
herit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.N
R="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+
)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|
\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|
\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:
"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\
\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment"
,b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:t
his.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.B
NR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/
\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"t
itle",b:this.UIR,r:0}}();hljs.registerLanguage("scilab",function(a){var b=[a.CNM
,{cN:"string",b:"'|\"",e:"'|\"",c:[a.BE,{b:"''"}]}];return{k:{keyword:"abort bre
ak case clear catch continue do elseif else endfunction end for functionglobal i
f pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i
%z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumpr
od deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve
imag isdef isemptyisinfisnan isvector lasterror length load linspace list listf
iles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf
prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring s
um system tanh tantype typename warning zeros matrix"},i:'("|#|/\\*|\\s+/\\w+)',
c:[{cN:"function",bK:"function endfunction",e:"$",k:"function endfunction|10",c:
[a.UTM,{cN:"params",b:"\\(",e:"\\)"},],},{cN:"transposed_variable",b:"[a-zA-Z_][
a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*"
,r:0,c:b},{cN:"comment",b:"//",e:"$"}].concat(b)}});hljs.registerLanguage("xml",
function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"ph
p",subLanguageMode:"continuous"};var b={eW:true,i:/</,r:0,c:[d,{cN:"attribute",b
:c,r:0},{b:"=",r:0,c:[{cN:"value",v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s\/>]+/}
]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"<!DOCTYPE",e:">",r:10
,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!
\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"s
tyle"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|
>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascri
pt"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag
",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage
("asciidoc",function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10
},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\
n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"h
eader",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:"
,e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"
^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,
}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},
{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMP
ORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{
2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')
",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0}
,{cN:"smartquote",b:"``.+?''",r:10},{cN:"smartquote",b:"`.+?'",r:10},{cN:"code",
b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rul
e",b:"^'{3,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\
[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+"
,r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}});hljs.regi
sterLanguage("coffeescript",function(c){var b={keyword:"in if for while finally
new do return else break catch instanceof throw try this switch continue typeof
delete debugger super then unless until loop of by when and or is isnt not",lite
ral:"true false null undefined yes no on off",reserved:"case default function va
r void with const let enum export import native __hasProp __extends __slice __bi
nd __indexOf",built_in:"npm require console print module exports global window d
ocument"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN
:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r
:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/
,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///"
,c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]
},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;r
eturn{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+
a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\
(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class
",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"att
ribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("fix",func
tion(a){return{c:[{b:/[^\u2401\u0001]+/,e:/[\u2401\u0001]/,eE:true,rB:true,rE:fa
lse,c:[{b:/([^\u2401\u0001=]+)/,e:/=([^\u2401\u0001=]+)/,rE:true,rB:false,cN:"at
tribute"},{b:/=/,e:/([\u2401\u0001])/,eE:true,eB:true,cN:"string"}]}],cI:true}})
;hljs.registerLanguage("mel",function(a){return{k:"int float string vector matri
x if else switch case default while do for in break continue global proc return
about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP add
PanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimCons
traint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit amb
ientLight angle angleBetween animCone animCurveEditor animDisplay animView annot
ate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext
arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVert
exCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPutty
Ctx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice
assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSlid
erGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp
attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attri
buteExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bak
eClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename ba
senameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendS
hape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice bou
ndary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu but
ton buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack cam
era cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil chan
geSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterM
ap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRe
nderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor
clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore close
Curve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldRe
porter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEdi
tor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLay
out commandEcho commandLine commandPort compactHairSystem componentEditor compos
itingInterop computePolysetVolume condition cone confirmDialog connectAttr conne
ctControl connectDynamic connectJoint connectionInfo constrain constrainValue co
nstructionHistory container containsMultibyte contextInfo control convertFromOld
Layers convertIffToPsd convertLightmap convertSolidTx convertTessellation conver
tUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothS
et cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel c
pProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSol
verTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor c
reateLayeredPsdFile createMotionField createNewShelf createNode createRenderLaye
r createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTr
averse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx cur
veCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface c
urveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox d
efaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete
deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnused
Brushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devic
ePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirma
p dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly di
splayAffected displayColor displayCull displayLevelOfDetail displayPref displayR
GBColor displaySmoothness displayStats displayString displaySurface distanceDimC
ontext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct do
ubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator dupl
icate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpressio
n dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dy
namicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRen
derLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTe
mplate effector emit emitter enableDevice encodeString endString endsWith env eq
uivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoun
dingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression e
xpressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflus
h fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo fil
etest filletCurve filter filterCurve filterExpand filterStudioImport findAllInte
rsections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder
firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar
floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCa
cheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout f
ormat fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamm
a gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassificatio
n getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes
getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender
glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl g
radientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid
gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualM
ap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttracto
r HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached
HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel h
eadsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox ho
tkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap
hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton icon
TextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList icon
TextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandl
eCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins
inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertK
notSurface instance instanceable instancer intField intFieldGrp intScrollBar int
Slider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConn
ected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isV
alidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterTy
pe joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyfram
e keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyfr
ameRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRe
gionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegio
nTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchIm
ageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog l
ightList lightListEditor lightListPanel lightlink lineIntersection linearPrecisi
on linstep listAnimatable listAttr listCameras listConnections listDeviceAttachm
ents listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices lis
tMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTra
nsforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPlugin
LanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longName
Of lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ma
kePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manip
MoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleCon
text manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor m
enuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJo
int modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoF
K moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle n
ameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeI
conButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint norm
alize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect n
urbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbs
UVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType obj
ectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface o
ffsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orb
it orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paint
EffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHi
story paramDimContext paramDimension paramLocator parent parentConstraint partic
le particleExists particleInstancer particleRenderInfo partition pasteKey pathAn
imation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixe
lMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInf
o pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrix
Mult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend p
olyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAver
ageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyC
acheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge
polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorS
et polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet poly
CreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjectio
n polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEd
ge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet poly
ExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyI
nfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMa
pDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet pol
yMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveF
acet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex po
lyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection po
lyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPy
ramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint pol
ySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToF
aceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere pol
ySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySpli
tVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv
polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen
popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer
projectCurve projectTangent projectionContext projectionManip promptDialog propM
odCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile pu
tenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp ra
dioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles rand
state rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice
redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh re
freshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstanc
e removePanelCategory rename renameAttr renameSelectionList renameUI render rend
erGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProc
ess renderLayerUnparent renderManip renderPartition renderQualityNode renderSett
ings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer
reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCa
mera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_t
o_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation
roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage
saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu save
PrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scal
eComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement
scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf s
criptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray s
eed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx se
lectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNo
des selectionConnection separator setAttr setAttrEnumResource setAttrMapping set
AttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenK
eyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInp
utDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts
setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr se
tPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage
setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeo
metryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare sh
elfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden
showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign sim
plify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoo
thCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCt
x snapshot soft softMod softModCtx sort sound soundControl source spaceLocator s
phere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squar
eSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stit
chSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains str
ingArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove
stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stri
ngArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoPro
jection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdLi
stComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror sub
dToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoo
thness substitute substituteAllString substituteGeometry substring surface surfa
ceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolChe
ckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext tex
ManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleConte
xt texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx te
xt textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList
textToShelf textureDisplacePlane textureHairColor texturePlacementContext textu
reWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath t
oggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower
toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus to
upper trace track trackCtx transferAttributes transformCompare transformLimits t
ranslator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbu
lence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup
uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE use
rCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera view
ClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volume
Axis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPr
ef wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList x
form",i:"</",c:[a.CNM,a.ASM,a.QSM,{cN:"string",b:"`",e:"`",c:[a.BE]},{cN:"variab
le",v:[{b:"\\$\\d"},{b:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},{b
:"\\*(\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)",r:0}]},a.CLCM,a.CBLCLM]}});hljs.r
egisterLanguage("objectivec",function(a){var d={keyword:"int float while char ex
port sizeof typedef const struct for union unsigned long volatile static bool mu
table if do return goto void enum else break extern asm case short default doubl
e register explicit signed typename this switch continue wchar_t inline readonly
assign self synchronized id nonatomic super unichar IBOutlet IBAction strong we
ak @private @protected @public @try @property @end @throw @catch @finally @synth
esize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil
YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UI
TextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UIT
ableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonIt
em UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException
NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSiz
e UITableViewCell UIView UIViewController UINavigationBar UINavigationController
UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNu
mber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollV
iew UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NS
NotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NST
imeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NS
URLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispat
ch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[
a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";retur
n{k:d,l:c,i:"</",c:[a.CLCM,a.CBLCLM,a.CNM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",
i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'
},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b
.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."
+a.UIR,r:0}]}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:
"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:"</?",e:">"},{cN:"keyword",b:/
\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecon
d documentroot sethandler errordocument loadmodule options header listen serverr
oot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b
:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}
}],i:/\S/}});hljs.registerLanguage("livecodeserver",function(a){var e={cN:"varia
ble",b:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",r:0};var b={cN:"comment",
e:"$",v:[a.CBLCLM,a.HCM,{b:"--",},{b:"[^:]//",}]};var d=a.inherit(a.TM,{v:[{b:"\
\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{b:"\\b_[a-z0-9\\-]+"}]});var c=a.inherit(a.TM,{
b:"\\b([A-Za-z0-9_\\-]+)\\b"});return{cI:false,k:{keyword:"after byte bytes engl
ish the until http forever descending using line real8 with seventh for stdout f
inally element word fourth before black ninth sixth characters chars stderr uInt
1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middl
e mid at else of catch then third it file milliseconds seconds second secs sec i
nt1 int1s int4 int4s internet int2 int2s normal text item last long detailed eff
ective uInt4 uInt4s repeat end repeat URL in try into switch to words https toke
n binfile each tenth as ticks tick system real4 by dateItems without char charac
ter ascending eighth whole dateTime numeric short first ftp integer abbreviated
abbr abbrev private case while if",constant:"SIX TEN FORMFEED NINE ZERO NONE SPA
CE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE
RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nin
e zero none space four false colon crlf pi comma endoffile eof eight five quote
empty one true return cr linefeed right backslash null seven tab three two RIVER
SION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_
READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wr
ap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with
begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDec
ode arrayEncode asin atan atan2 average avg base64Decode base64Encode baseConver
t binaryDecode binaryEncode byteToNum cachedURL cachedURLs charToNum cipherNames
commandNames compound compress constantNames cos date dateFormat decompress dir
ectories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents fold
ers format functionNames global globals hasMemory hostAddress hostAddressToName
hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLEr
rorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeader
s libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln
ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText
matrixMultiply max md5Digest median merge millisec millisecs millisecond millise
conds min monthNames num number numToByte numToChar offset open openfiles openPr
ocesses openProcessIDs openSockets paramCount param params peerAddress pendingMe
ssages platform processID random randomBytes replaceText result revCreateXMLTree
revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRec
ordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLength
s revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDat
abaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDa
tabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_column
bynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnna
mes revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connect
ionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors
revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefi
rst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist rev
db_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumbe
rOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlo
b revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttr
ibute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildName
s revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXM
LNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_Cr
eateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_Execute revXMLRPC_GetH
ost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_GetParamCount re
vXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort
revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSo
cket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerate
Items revZipOpenArchives round sec secs seconds sha1Digest shell shortFilePath s
in specialFolderPath sqrt standardDeviation statRound stdDev sum sysError system
Version tan tempName tick ticks time to toLower toUpper transpose trunc uniDecod
e uniEncode upper URLDecode URLEncode URLStatus value variableNames version wait
Depth weekdayNames wordOffset add breakpoint cancel clear local variable file wo
rd line folder directory URL close socket process combine constant convert creat
e new alias folder directory decrypt delete variable word line folder directory
URL dispatch divide do encrypt filter get include intersect kill libURLDownloadT
oFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetA
ll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSet
FTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback loa
d multiply socket process post seek rel relative read from process rename replac
e require resetAll revAddXMLNode revAppendXML revCloseCursor revCloseDatabase re
vCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDele
teXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsert
XMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextReco
rd revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revR
ollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam r
evXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXML
RPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod r
evXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData
revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedIt
emWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToF
ile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZi
pReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort s
plit subtract union unload wait write"},c:[e,{cN:"keyword",b:"\\bend\\sif\\b"},{
cN:"function",bK:"function",e:"$",c:[e,c,a.ASM,a.QSM,a.BNM,a.CNM,d]},{cN:"functi
on",bK:"end",e:"$",c:[c,d]},{cN:"command",bK:"command on",e:"$",c:[e,c,a.ASM,a.Q
SM,a.BNM,a.CNM,d]},{cN:"command",bK:"end",e:"$",c:[c,d]},{cN:"preprocessor",b:"<
\\?rev|<\\?lc|<\\?livecode",r:10},{cN:"preprocessor",b:"<\\?"},{cN:"preprocessor
",b:"\\?>"},b,a.ASM,a.QSM,a.BNM,a.CNM,d],i:";$|^\\[|^="}});hljs.registerLanguage
("glsl",function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bv
ec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dm
at2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do dou
ble dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage
2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer i
imageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS im
age2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout i
nt invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS
isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isampler
CubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 ma
t3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision
readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sa
mpler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2
DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuff
er samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth
struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DM
S uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray
uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS
usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usampler
CubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly
",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMat
erial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color
gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogC
oord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_Front
Color gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMate
rial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel
gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_Max
ClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombined
AtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOu
tputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCoun
terBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragme
ntInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors g
l_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryIma
geUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGe
ometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputCo
mponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxI
mageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexel
Offset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_
MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOu
tputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputCo
mponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuf
fers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_Max
TessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEva
luationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLeve
l gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTe
xtureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_M
axVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_M
axVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits
gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_Min
ProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatri
xInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_Mo
delViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_M
odelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTe
xCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6
gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_Ob
jectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Po
int gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_Pr
ojectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl
_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePo
sition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_Tex
Coord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTransp
ose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVer
tex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh
atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bi
tfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy
degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB flo
atBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan
greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicEx
change imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imag
eStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset int
erpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanE
qual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 no
ise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 pack
Snorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract ro
und roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2
DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh te
xelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1D
ProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3
DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather tex
tureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod t
extureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset
textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSiz
e transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpack
Half2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorro
w gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLC
M,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}});hljs.registerLanguage("lass
o",function(d){var b="[a-zA-Z_][a-zA-Z0-9_.]*";var i="<\\?(lasso(script)?|=)";va
r c="\\]|\\?>";var g={literal:"true false none minimal full all void and or not
bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decima
l duration integer map pair string tag xml null bytes list queue set stack stati
carray tie local var variable global data self inherited",keyword:"error_code er
ror_msg error_pop error_push error_reset cache database_names database_schemanam
es database_tablenames define_tag define_type email_batch encode_set html_commen
t handle handle_error header if inline iterate ljax_target link link_currentacti
on link_currentgroup link_currentrecord link_detail link_firstgroup link_firstre
cord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgrou
p link_prevrecord log loop namespace_using output_none portal private protect re
cords referer referrer repeating resultset rows search_args search_arguments sel
ect sort_args sort_arguments thread_atomic value_list while abort case else if_e
mpty if_false if_null if_true loop_abort loop_continue loop_count params params_
up return return_value run_children soap_definetag soap_lastrequest soap_lastres
ponse tag_name ascending average by define descending do equals frozen group han
dle_failure import in into join let match max min on order parent protected prov
ide public require returnhome skip split_thread sum take thread to trait type wh
ere with yield yieldhome"};var a={cN:"comment",b:"<!--",e:"-->",r:0};var j={cN:"
preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:tr
ue,c:[a]}};var e={cN:"preprocessor",b:"\\[/noprocess|"+i};var h={cN:"variable",b
:"'"+b+"'"};var f=[d.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},d.CBLCLM,d.inheri
t(d.CNM,{b:d.CNR+"|-?(infinity|nan)\\b"}),d.inherit(d.ASM,{i:null}),d.inherit(d.
QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",v:[{b:"[#$]"+b},{b:"#",e:
"\\d+",i:"\\W"}]},{cN:"tag",b:"::\\s*",e:b,i:"\\W"},{cN:"attribute",b:"\\.\\.\\.
|-"+d.UIR},{cN:"subst",v:[{b:"->\\s*",c:[h]},{b:":=|/(?!\\w)=?|[-+*%=<>&|!?\\\\]
+",r:0}]},{cN:"built_in",b:"\\.\\.?",r:0,c:[h]},{cN:"class",bK:"define",rE:true,
e:"\\(|=>",c:[d.inherit(d.TM,{b:d.UIR+"(=(?!>))?"})]}];return{aliases:["ls","las
soscript"],cI:true,l:b+"|&[lg]t;",k:g,c:[{cN:"preprocessor",b:c,r:0,starts:{cN:"
markup",e:"\\[|"+i,rE:true,r:0,c:[a]}},j,e,{cN:"preprocessor",b:"\\[no_square_br
ackets",starts:{e:"\\[/no_square_brackets\\]",l:b+"|&[lg]t;",k:g,c:[{cN:"preproc
essor",b:c,r:0,starts:{cN:"markup",e:i,rE:true,c:[a]}},j,e].concat(f)}},{cN:"pre
processor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10}].concat(f)}});hlj
s.registerLanguage("mathematica",function(a){return{aliases:["mma"],l:"(\\$|\\b)
"+a.IR+"\\b",k:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute
AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDas
hing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness Absolu
teTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDela
y ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle Ac
yclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix Adj
ustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After A
iryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ Alg
ebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolyn
omial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics Algebrai
cUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroup
Close AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScr
iptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives
AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket
AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDi
rection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning
Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity Ann
uityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceEl
ements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCs
ch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax Ar
gMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess A
rray ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayResh
ape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRat
ioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTa
skObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAct
ion AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpac
ings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMul
tiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes Autoru
nSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords A
xes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Backgrou
nd BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilt
er BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend
BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow Bartlet
tWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLem
arieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket Beg
inFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution B
eniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution Ber
noulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess Bernst
einBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZe
ro Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistributi
on BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve Bezie
rCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierF
unction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryRead
List BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProces
s BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImporta
nce BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr B
itSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNutta
llWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Bl
ock BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow
Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFu
nction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinte
rms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribut
ion Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData
BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins B
oxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra Bra
cketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheT
est BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve
3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSpl
ineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge Bu
sinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox Butt
onBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandab
le ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNot
ebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrderin
g C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDista
nce Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD Cardin
alBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber
Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation C
DFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracke
tOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpress
ion CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog Cel
lEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrame
Color CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroup
Data CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel Cel
lLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject Ce
llOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton
CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGener
atingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncod
ing CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial Chara
cterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction Ch
artElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle
Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT Chebys
hevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptio
ns ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDis
tribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox
CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear Clea
rAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNote
book ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseConto
urIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave
ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArray
s CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colo
n ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction
ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuan
tize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter Col
orSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments
ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidt
hs CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBound
aryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ
CompilationOptions CompilationTarget Compile Compiled CompiledFunction Compleme
nt CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex C
omplexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements
ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundE
xpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProc
ess Compress CompressedData Condition ConditionalExpression Conditioned Cone Con
eBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congr
uent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents Connec
tedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePr
int Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPaddin
g ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts
ContextToFilename ContextToFileName Continuation Continue ContinuedFraction Con
tinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ Co
ntinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics Con
tourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours Conto
urShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive
ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecom
position ControllableModelQ ControllerDuration ControllerInformation ControllerI
nformationData ControllerLinking ControllerManipulate ControllerMethod Controlle
rPath ControllerState ControlPlacement ControlsRendering ControlType Convergents
ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript Con
vertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 Coo
rdinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformD
ata CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTa
g CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance C
orrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWi
ndow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions
CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncremen
ts CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance Covari
anceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProc
ess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDir
ectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePaletteP
acket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImporta
nce CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatri
x Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction
Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket
CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomi
al Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D
DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashin
g DataCompression DataDistribution DataRange DataReversed Date DateDelimiters Da
teDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern Date
Plus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution Da
wsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound De
BruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose
Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle
DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle Def
aultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultF
ont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFra
meStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType Def
aultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage De
faultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions Defau
ltOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType De
faultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues De
fer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition D
egree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverse
Lexicographic Deinitialization Del Deletable Delete DeleteBorderComponents Delet
eCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallCom
ponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime Delimite
rMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot De
pendentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilte
r DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning
Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebo
ok DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilari
ty DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRoo
tReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce Differ
entiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ Dih
edralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges D
irectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory Direc
toryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve Dirichle
tDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintP
acket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTra
nsform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains Discr
eteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio
DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistributi
on DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform Discrete
WaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch Dispe
rsionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImag
ePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePac
ket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariabl
e DistanceFunction DistanceTransform Distribute Distributed DistributedContexts
DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest D
istributionParameterAssumptions DistributionParameterQ Dithering Div Divergence
Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSS
tring Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed
DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow Doubl
eLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeft
RightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow Do
ubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar Dow
nArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVecto
rBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee Do
wnTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop
DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ
Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation D
ynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent Dynami
cModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting Dynam
icUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E Eccentric
ityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeCol
or EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDet
ect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeL
ist EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyl
e EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings Edit
Distance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenve
ctors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp Ellip
ticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ El
lipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound E
mphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintP
acket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket End
OfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPac
ket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns
EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf
Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions E
rrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess
EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianG
raphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell Eval
uationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor Evalu
ationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ Ev
entData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWin
dow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods
Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDe
nominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue
ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction Expone
ntialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMov
ingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export Exp
ortAutoReplacements ExportPacket ExportString Expression ExpressionCell Expressi
onPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers Ext
entSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive Extrem
eValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Facto
rial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower
FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms Fact
orTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPa
cket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket
Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileB
yteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation
FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileName
s FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve Fille
dCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond Financ
ialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindCl
ique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdg
eCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFu
nction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsom
orphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndep
endentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKCl
ub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFl
ow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue Find
Permutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction
FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover Fin
dVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGro
upData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 Fisc
herGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistri
bution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flat
ten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList
Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontP
roperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontV
ariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConv
ert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Four
ier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransfor
m FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix Fouri
erMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoef
ficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries
FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions Fr
actionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless
FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDi
stribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday Frobeniu
sNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFract
ion FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventAct
ions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString Fron
tEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVers
ion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGr
aphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation Fu
nctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMar
gins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather
GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction Gaug
eFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter Ga
ussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General Generalized
LinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFu
nction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicC
losing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyDa
ta GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess Geome
tricDistribution GeometricMean GeometricMeanFilter GeometricTransformation Geome
tricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformat
ionBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionX
YZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePack
et GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebre
akInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher Global
ClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzM
akehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradien
t GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter
GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjoi
ntUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphH
ighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics
3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions Graph
icsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBo
xOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsD
ata GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3
DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHi
ghlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLa
yout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPr
opertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle Grap
hUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess
GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green
Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers Gr
idBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridC
reationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMa
rgins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCent
ralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements Gr
oupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder
GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChai
n Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribut
ion HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatr
ix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean Har
monicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head Head
Compose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart He
lpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition Her
miteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexa
hedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph Highlight
Image HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram His
togram3D HistogramDistribution HistogramList HistogramTransform HistogramTransfo
rmInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDT
est Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern Hol
dRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm Horizonta
lGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDist
ribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta Hyperbo
licDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hyper
geometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Reg
ularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistributi
on HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink Hype
rlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution
HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Ima
ge3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspec
tRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels Image
Clip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners I
mageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket Image
Deconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffe
ct ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter Im
ageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints
ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply
ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspect
iveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize Im
ageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSize
Action ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake
ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies I
mport ImportAutoReplacements ImportString ImprovementImportance In IncidenceGrap
h IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension Includ
ePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFra
ction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ
Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality Inexa
ctNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initi
alization InitializationCell InitializationCellEvaluation InitializationCellWarn
ing InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint I
nput InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBo
x InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook Inp
utPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormP
acket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptio
ns InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigit
s IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers
IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced
Interleaving InternallyBalancedDecomposition InterpolatingFunction Interpolating
Polynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPre
cision Interpretation InterpretationBox InterpretationBoxOptions InterpretationF
unction InterpretTemplate InterquartileRange Interrupt InterruptSettings Interse
ction Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse Invers
eBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWavele
tTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc
InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform Invers
eFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions In
verseGammaDistribution InverseGammaRegularized InverseGaussianDistribution Inver
seGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS
InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND
InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTr
ansform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction In
verseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleA
pplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGra
phQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess
JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS Jacobi
DC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD Jacobi
SN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 J
arqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox Join
Form JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow
KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree K
atzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei Kelvin
Ker KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObje
ct Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTou
rGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDe
composition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution
Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle
LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language La
nguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter La
placianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData L
atticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInfor
mation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftAr
row LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVe
ctorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTr
iangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUp
Vector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended Legend
Function LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize L
egendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessE
qualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCh
aracter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic
LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunction
Load LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData
LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightG
reen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple Light
Red LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositionin
gTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransfor
m LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearS
olve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart L
ineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction Lin
eIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity Lin
eSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCre
ate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode
LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld
LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnima
te ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlo
t ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpo
lation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLog
Plot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxO
ptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStre
amDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorP
lot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoeffic
ient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoC
reate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox L
ocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma Log
GammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit L
ogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDist
ribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqu
al Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequenceP
ositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch
LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback Loo
pFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize Lowpass
Filter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUB
ackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsG
roupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPage
Setup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority Mak
eBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Mani
pulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAPr
ocess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest
MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity Matc
hLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC Mathieu
CharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPri
me MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM
24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm Ma
trixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend Max
Detect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxI
terations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion M
axStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistri
bution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity
MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShif
tFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution M
emberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEval
uator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences M
esh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageL
ist MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaChara
cters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min Mi
nDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRe
cursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDa
taMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Mo
dal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentC
onvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList Monom
ialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPo
ints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph Morphol
ogicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance Mous
eAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAvera
ge MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterI
talics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution Mu
ltinormalDistribution MultiplicativeOrder Multiplicity Multiselection Multivaria
teHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistri
bution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBer
noulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndP
ackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Ne
gative NegativeBinomialDistribution NegativeMultinomialDistribution Neighborhood
Graph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWh
ile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPri
mitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGri
dLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVar
iables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution
NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMulti
ply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPosit
ive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize Normali
zedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCup
Cap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose N
otebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault
NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate Not
ebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject Noteboo
kGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookIn
formation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen Not
ebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnOb
ject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSav
eAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu Noteboo
kWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterF
ullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde N
otHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEq
ual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlan
tEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPre
cedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTria
ngle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEq
ual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceed
s NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSuperse
tEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NPr
obability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords
NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant Numbe
rFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives N
umberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm Numb
erFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSe
parator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindo
w NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatri
x ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupO
N OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerVi
ew OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary
OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSetti
ngs OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox Opti
onValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless
OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputContr
ollabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGroupi
ng OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit Outp
utStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox Overl
ayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector
OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRigh
t PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters Page
HeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart P
airedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook Pal
ettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled Pane
Selector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD Pa
ragraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo Parallel
Evaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct P
arallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator
ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricND
Solve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect Paren
tDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCor
relationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenW
indow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCel
ls PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest Pau
liMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelatio
nTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram Peri
odogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLe
ngth PermutationList PermutationListQ PermutationMax PermutationMin PermutationO
rder PermutationPower PermutationProduct PermutationReplace Permutations Permuta
tionSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGra
ph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piece
wise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoti
ng PixelConstrained PixelValue PixelValuePositions Placed Placeholder Placeholde
rReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision
PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange Plo
tRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer P
odStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLege
nd PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess Poisso
nWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMa
rkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions
PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale
PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD Polyn
omialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainde
r PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupM
enuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ Po
ssibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod Powe
rModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Pre
cedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde P
recision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPat
h Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraph
Distribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ Pri
meQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print Pri
ntAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStar
tingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism Pris
mBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOpti
ons PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability Proba
bilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitMode
lFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessState
Domain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicato
r ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm
Properties Property PropertyList PropertyValue Proportion Proportional Protect P
rotected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidB
ox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer
QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity Q
uantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation
Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueuePropertie
s Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBo
xOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon R
amanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice Ra
ndomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutati
on RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProces
s Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raste
r3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize Raste
rSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBo
xes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real R
ealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists Recor
dSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleC
hart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox Re
ferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix R
eflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot
RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold Reli
abilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsync
hronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemovePrope
rty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions Re
newalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll
ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue Repl
aceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacke
t ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnEx
pressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse Rever
seBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph Rever
seUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistri
bution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right Right
Arrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVec
tor RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector Rig
htTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVecto
r RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImpor
tance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant R
ootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum
Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBox
Options RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row R
owAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce Ro
wsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleFo
rm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions R
ussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSo
undList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount
SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete Save
Definitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOr
igin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix Sca
lingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject Sc
heduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnviro
nment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMulti
pliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution Sect
ionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Sele
ct Selectable SelectComponents SelectedCells SelectedNotebook Selection Selectio
nAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle Selecti
onCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCel
l SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlacehold
er SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicCom
ponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold Se
quenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetA
lphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory
SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNoteb
ookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNo
tebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPo
sition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetV
alue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix
ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch
ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoSt
yles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents
ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisi
bleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxF
orm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay S
hrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest S
ignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ S
implify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics S
ingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot
SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransfo
rm SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Sl
ider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideVie
w Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWaterma
nSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKerne
lDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways
SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space
SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbo
ve SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningC
haracters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPack
et SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity Spellin
gCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions Spelli
ngSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY Spherical
HankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion Sp
heroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime Sphero
idalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime S
pheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegr
ee SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOpti
ons Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR Squa
reSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion Square
Wave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin
StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardFor
m Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingS
tepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimension
s StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpa
ceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacket
Transform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor Sti
eltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataV
ariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling Stre
amDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamS
tyle String StringBreak StringByteCount StringCases StringCount StringDrop Strin
gExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLe
ngth StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringR
eplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton Strin
gSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapper
Boxes StrokeForm StructuralImportance StructuredArray StructuredSelection Struve
H StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOp
tions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing Styl
eNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph S
ubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresu
ltants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual
Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtr
act SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTil
de SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscri
pt SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd Su
rdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction Surviv
alModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchL
egend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricM
atrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray Symmet
rizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents
SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax Synt
axForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput Sys
temException SystemHelpPath SystemInformation SystemInformationData SystemOpen S
ystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete S
ystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsMod
elLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect
SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignment
s TableDepth TableDirections TableForm TableHeadings TableSpacing TableView Tabl
eViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagB
oxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tal
ly Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox
TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable
TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank T
ensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBo
x TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlig
nment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextF
orm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRender
ing TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefo
re ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Threa
d ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde
TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times Times
By TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing
Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeM
odel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together
Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpress
ion ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig
Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransf
orm TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariation
Filter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr
Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward
TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan Tra
ckedSymbols TradingChart TraditionalForm TraditionalFunctionNotation Traditional
Notation TraditionalOrder TransferFunctionCancel TransferFunctionExpand Transfer
FunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTrans
form TransferFunctionZeros TransformationFunction TransformationFunctions Transf
ormationMatrix TransformedDistribution TransformedField Translate TranslationTra
nsform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendSt
yle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorLis
t Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution Tsal
lisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCu
rveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBox
Options Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMach
ine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Undero
verscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBo
x UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ Undocume
ntedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated Un
iformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Unio
n UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitS
implify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unse
t UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update U
pdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow U
pEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsamp
le UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronou
s URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get Validat
ionLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables V
ariance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribut
ion VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling Vect
orDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vecto
rs VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket
VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber V
ertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCo
ordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilari
ty VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete Vert
exDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex
VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList
VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunctio
n VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTex
tureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge Ver
ticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix View
Point ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical Virtu
alGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll W
aitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometri
cDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest Watts
StrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImag
ePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi
WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyC
onnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistri
bution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPri
me WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatr
ix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which Wh
ile White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter Wien
erProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSele
ct WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins W
indowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitl
e WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuan
tity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch Word
Separators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xno
r Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Ze
ta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $Activ
ationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions
$AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrderi
ng $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTar
get $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSettin
g $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $De
faultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $
DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $For
matType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $H
TTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $I
nputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirec
tory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $Lau
nchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $L
icenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $Loa
dedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $Machi
neID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseP
rocesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases
$MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Mess
ages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumbe
r $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $Operating
System $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $Par
entLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $P
erformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRea
d $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductIn
formation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirector
y $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $
SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $Syn
chronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $Sy
stemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUn
it $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $Tr
acePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirec
tory $UserName $Version $VersionNumber",c:[{cN:"comment",b:/\(\*/,e:/\*\)/},a.AS
M,a.QSM,a.CNM,{cN:"list",b:/\{/,e:/\}/,i:/:/}]}});hljs.registerLanguage("tex",fu
nction(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command"
,b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return
{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)
?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex
|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},
{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}});
hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte c
ase catch char checked const continue decimal default delegate do double else en
um event explicit extern false finally fixed float for foreach goto if implicit
in int interface internal is lock long new null object operator out override par
ams private protected public readonly ref return sbyte sealed short sizeof stack
alloc static string struct switch this throw true try typeof uint ulong unchecke
d unsafe ushort using virtual volatile void while async await ascending descendi
ng from get group into join let orderby partial select set value var where yield
";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!
--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"
#",e:"$",k:"if else elif endif define undef warning error line region endregion
pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:
"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interf
ace",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerL
anguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b
:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBL
CLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"
attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\
(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face pag
e"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:tr
ue,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[
^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attri
bute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE
:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"impo
rtant",b:"!important"}]}}]}]}]}});hljs.registerLanguage("python",function(a){var
f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'
''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'
/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.A
SM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]
?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var
c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in
if from raise for except finally print import pass return exec else break not wi
th class assert yield try while continue del or def lambda nonlocal|10 None True
False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inh
erit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"
decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("profil
e",function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.
ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:
":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|1
0 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:
10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[a.UTM],r:0}]}});hljs.register
Language("django",function(a){var b={cN:"filter",b:/\|[A-Za-z]+\:?/,k:"truncatew
ords removetags linebreaksbr yesno get_digit timesince random striptags filesize
format escape linebreaks length_is ljust rjust cut urlize fix_ampersands title f
loatformat capfirst pprint divisibleby add make_list unordered_list urlencode ti
meuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dicts
ortreversed default_if_none pluralize lower join center default truncatewords_ht
ml upper length phone2numeric wordwrap time addslashes slugify first escapejs fo
rce_escape iriencode last safe safeseq truncatechars localize unlocalize localti
me utc timezone",c:[{cN:"argument",b:/"/,e:/"/},{cN:"argument",b:/'/,e:/'/}]};re
turn{cI:true,sL:"xml",subLanguageMode:"continuous",c:[{cN:"template_comment",b:/
\{%\s*comment\s*%}/,e:/\{%\s*endcomment\s*%}/},{cN:"template_comment",b:/\{#/,e:
/#}/},{cN:"template_tag",b:/\{%/,e:/%}/,k:"comment endcomment load templatetag i
fchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal wi
dthratio extends include spaceless endspaceless regroup by as ifequal endifequal
ssi now with cycle url filter endfilter debug block endblock else autoescape en
dautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans
get_static_prefix get_media_prefix plural get_current_language language get_avai
lable_languages get_current_language_bidi get_language_info get_language_info_li
st localize endlocalize localtime endlocaltime timezone endtimezone get_current_
timezone verbatim",c:[b]},{cN:"variable",b:/\{\{/,e:/}}/,c:[b]}]}});hljs.registe
rLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}
/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no
true false none blocked debug info notice warn error crit select break last per
manent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"str
ing",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s
",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{
b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\
\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\
\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UI
R+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});h
ljs.registerLanguage("smalltalk",function(a){var b="[a-z][a-zA-Z0-9_]*";var d={c
N:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil t
rue false thisContext",c:[{cN:"comment",b:'"',e:'"'},a.ASM,{cN:"class",b:"\\b[A-
Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":",r:0},a.CNM,c,d,{cN:"localvars",b:"\\|
[ ]*"+b+"([ ]+"+b+")*[ ]*\\|",rB:true,e:/\|/,i:/\S/,c:[{b:"(\\|[ ]*)?"+b}]},{cN:
"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}});hljs.registerLanguage("sql",
function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|com
mit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|inse
rt|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:"
;",eW:true,k:{keyword:"all partial global month current_timestamp using go revok
e smallint indicator end-exec disconnect zone with character assertion to add cu
rrent_user usage input local alter match collate real then rollback get read tim
estamp session_user not integer bit unique day minute desc insert execute like i
like|2 level decimal drop continue isolation found where constraints domain righ
t national some module transaction relative second connect escape close system_u
ser for deferred section cast current sqlstate allocate intersect deallocate num
eric public preserve full goto initially asc no key output collation group by un
ion session both last language constraint column of space foreign deferrable pri
or connection unknown action commit view or first into float year primary cascad
ed except restrict set references names table outer open select size are rows fr
om prepare distinct leading create only next inner authorization schema correspo
nding option declare precision immediate else timezone_minute external varying t
ranslation true case exception join hour default double scroll value cursor desc
riptor values dec fetch procedure delete and false int is describe char as at in
varchar null trailing any absolute current_time end grant privileges when cross
check write current_date pad begin temporary exec time update catalog user sql
date on identity timezone_hour natural whenever interval work order cascade diag
nostics nchar having left call do handler load replace truncate start lock show
pragma exists number trigger if before after each row merge matched database",ag
gregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},
{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a
.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("oxygene",
function(b){var g="abstract add and array as asc aspect assembly async begin bre
ak block by case class concat const copy constructor continue create default del
egate desc distinct div do downto dynamic each else empty end ensure enum equals
event except exit extension external false final finalize finalizer finally fla
gs for forward from function future global group has if implementation implement
s implies in index inherited inline interface into invariants is iterator join l
ocked locking loop matching method mod module namespace nested new nil not notif
y nullable of old on operator or order out override parallel params partial pinn
ed private procedure property protected public queryable raise read readonly rec
ord reintroduce remove repeat require result reverse sealed select self sequence
set shl shr skip static step soft take then to true try tuple type union unit u
nsafe until uses using var virtual raises volatile where while with write xor yi
eld await mapped deprecated stdcall cdecl pascal register safecall overload libr
ary platform reference packed strict published autoreleasepool selector strong w
eak unretained";var a={cN:"comment",b:"{",e:"}",r:0};var e={cN:"comment",b:"\\(\
\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}]};var d={cN:"str
ing",b:"(#\\d+)+"};var f={cN:"function",bK:"function constructor destructor proc
edure method",e:"[:;]",k:"function constructor|10 destructor|10 procedure|10 met
hod|10",c:[b.TM,{cN:"params",b:"\\(",e:"\\)",k:g,c:[c,d]},a,e]};return{cI:true,k
:g,i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:[a,e,b.CLCM,c,d,b.NM,f,{cN:"class",b:"=\\bcla
ss\\b",e:"end;",k:g,c:[c,d,a,e,b.CLCM,f]}]}});hljs.registerLanguage("actionscrip
t",function(a){var c="[a-zA-Z_$][a-zA-Z0-9_$]*";var b="([*]|[a-zA-Z_$][a-zA-Z0-9
_$]*)";var d={cN:"rest_arg",b:"[.]{3}",e:c,r:10};return{k:{keyword:"as break cas
e catch class const continue default delete do dynamic each else extends final f
inally for function get if implements import in include instanceof interface int
ernal is namespace native new override package private protected public return s
et static super switch this throw try typeof use var void while with",literal:"t
rue false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bK
:"package",e:"{",c:[a.TM]},{cN:"class",bK:"class interface",e:"{",c:[{bK:"extend
s implements"},a.TM]},{cN:"preprocessor",bK:"import include",e:";"},{cN:"functio
n",bK:"function",e:"[{;]",i:"\\S",c:[a.TM,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,
a.QSM,a.CLCM,a.CBLCLM,d]},{cN:"type",b:":",e:b,r:10}]}]}});hljs.registerLanguage
("ruleslanguage",function(a){return{k:{keyword:"BILL_PERIOD BILL_START BILL_STOP
RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUT
E|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUN
TSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCR
EATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTAT
USCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDG
ETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOAD
ACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 IN
TDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTD
LOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION
|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDRE
PLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE
|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 I
NTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU
|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELET
EEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOAD
EXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADAC
CTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIS
T|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVER
RIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE
RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVE
NUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND U
IDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_
NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GE
TDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALU
E PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATE
FROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DB
DATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYL
ASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX H
ISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVAR
FROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEAS
ON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONF
IGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE
EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAV
E_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BI
TAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM F
REXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SI
N SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGH
T RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING",built_in
:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFI
LE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODE
GETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING
DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEG
ETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATT
RIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},c:[a.CLCM,a.CBLCLM,a.ASM,a.
QSM,a.CNM,{cN:"array",b:"#[a-zA-Z .]+"}]}});hljs.registerLanguage("mizar",functi
on(a){return{k:["environ vocabularies notations constructors definitions registr
ations theorems schemes requirements","begin end definition registration cluster
existence pred func defpred deffunc theorem proof","let take assume then thus h
ence ex for st holds consider reconsider such that and in provided of as from","
be being by means equals implies iff redefine define now not or attr is mode sup
pose per cases set","thesis contradiction scheme reserve struct","correctness co
mpatibility coherence symmetry assymetry reflexivity irreflexivity","connectedne
ss uniqueness commutativity idempotence involutiveness projectivity"].join(" "),
c:[{cN:"comment",b:"::",e:"$"}]}});hljs.registerLanguage("handlebars",function(b
){var a="each in with if else unless bindattr action collection debugger log out
let template unbound view yield";return{cI:true,sL:"xml",subLanguageMode:"contin
uous",c:[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z- .]+",k
:a},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z- .]+",k:a},{cN:"vari
able",b:"[a-zA-Z-.]+",k:a}]}]}});hljs.registerLanguage("scss",function(a){var c=
"[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,
a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[
A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d
,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i
:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.A
SM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+"
,r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym
|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|ca
ption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|em
bed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|h
group|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|me
ta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|prog
ress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|
sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:
0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-
range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-chi
ld|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in
-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabl
ed|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(afte
r|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|valu
e)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|wido
ws|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function
|transition-property|transition-duration|transition-delay|transition|transform-s
tyle|transform-origin|transform|top|text-underline-position|text-transform|text-
shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decor
ation-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-
size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin
|perspective|page-break-inside|page-break-before|page-break-after|padding-top|pa
dding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-w
rap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|or
phans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-
left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|mar
gin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style
-position|list-style-image|list-style|line-height|letter-spacing|left|justify-co
ntent|initial|inherit|ime-mode|image-orientation|image-resolution|image-renderin
g|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style
|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|fon
t-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-f
low|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|c
ounter-reset|counter-increment|content|column-width|column-span|column-rule-widt
h|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-
count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|
break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|borde
r-top-width|border-top-style|border-top-right-radius|border-top-left-radius|bord
er-top-color|border-top|border-style|border-spacing|border-right-width|border-ri
ght-style|border-right-color|border-right|border-radius|border-left-width|border
-left-style|border-left-color|border-left|border-image-width|border-image-source
|border-image-slice|border-image-repeat|border-image-outset|border-image|border-
color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-righ
t-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|back
ground-size|background-repeat|background-position|background-origin|background-i
mage|background-color|background-clip|background-attachment|background|backface-
visibility|auto|animation-timing-function|animation-play-state|animation-name|an
imation-iteration-count|animation-fill-mode|animation-duration|animation-directi
on|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]
"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-id
eographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick
|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize
|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|
rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|ov
erline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat
|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|low
er-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|ke
ep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-bloc
k|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideog
raph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dot
ted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disa
bled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|cap
italize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|b
aseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":"
,e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"
@",e:"[{;]",k:"mixin include extend for if else each while charset import debug
media page content font-face namespace warn",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"prepro
cessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}});hljs.registerLanguage("perl",function(
c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma
syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime
readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddi
r qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep
endgrent shutdown dump chomp connect getsockname die socketpair close flock exis
ts index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print
ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink se
mget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname g
etgrnam study formline endhostent times chop length gethostent getnetent pack ge
tprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next op
en msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system
getservbyport endservent int chr untie rmdir prototype tell listen fork shmread
ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbynam
e reset chdir grep split require caller lcfirst until warn while values shift te
lldir getpwuid my getprotobynumber delete and sort uc defined srand accept packa
ge seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent n
o crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map s
tat getlogin unless elsif truncate exec keys glob tied closedirioctl socket read
link eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent
exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"s
ubst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:
/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\
*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var
h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{
cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]
",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q
[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'
"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[
],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.
[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|gr
ep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"
(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"
/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"o
perator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("
ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title"
,b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[
{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.
registerLanguage("erlang",function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+"
:"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr
bxor case catch cond div end fun let not of orelse|10 query receive rem try when
xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"numb
er",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun
\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o
,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0}
;var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:
"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#"+i.UIR,r:0,rB:true,c:[{cN:"record_name",b:
"#"+i.UIR,r:0},{b:"{",e:"}",r:0}]};var k={bK:"fun receive if try case",e:"end",k
:f};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,
e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};r
eturn{k:f,i:"(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"
^"+c+"\\s*\\(",e:"->",rB:true,i:"\\(|#|//|/\\*|\\\\|:|;",c:[d,i.inherit(i.TM,{b:
c})],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l
:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -d
oc -vsn -import -include -include_lib -compile -define -else -endif -file -behav
iour -behavior",c:[d]},e,i.QSM,b,a,m,h]}});hljs.registerLanguage("1c",function(b
){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или и
наче иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции кон
еццикла константа не перейти перем перечисление по пока попытка прервать продолж
ить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemto
ansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод
ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбр
анныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц заве
ршитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение
зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл знач
ениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя
каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв к
омандасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартно
гоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколич
ествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначи
тьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби
началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начне
дели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр опис
аниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу о
ткрытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимя
пользователя получитьвремята получитьдатута получитьдокументта получитьзначенияо
тбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа пред
упреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезн
ачение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдоку
мента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции созд
атьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвоз
врата стрдлина стрзаменить стрколичествострок стрполучитьстроку стрчисловхожден
ий сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения
типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат це
л шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a]};var
g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:
e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процед
ура функция",c:[b.inherit(b.TM,{b:f}),{cN:"tail",eW:true,c:[{cN:"params",b:"\\("
,e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",
c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\
\d{2}\\.(\\d{2}|\\d{4})'"}]}});hljs.registerLanguage("haskell",function(f){var g
={cN:"comment",v:[{b:"--",e:"$"},{b:"{-",e:"-}",c:["self"]}]};var e={cN:"pragma"
,b:"{-#",e:"#-}"};var b={cN:"preprocessor",b:"^#",e:"$"};var d={cN:"type",b:"\\b
[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[e,g,b,{cN:"typ
e",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},f.inherit(f.TM,{b:"[_a-z][\\w']*"
})]};var a={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case
of where do module import hiding qualified type data newtype deriving class ins
tance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm
dotnet safe unsafe family forall mdo proc rec",c:[{cN:"module",b:"\\bmodule\\b",
e:"where",k:"module where",c:[c,g],i:"\\W\\.|;"},{cN:"import",b:"\\bimport\\b",e
:"$",k:"import|0 qualified as hiding",c:[c,g],i:"\\W\\.|;"},{cN:"class",b:"^(\\s
*)?(class|instance)\\b",e:"where",k:"class family instance where",c:[d,c,g]},{cN
:"typedef",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype derivin
g",c:[e,g,d,c,a]},{cN:"default",bK:"default",e:"$",c:[d,c,g]},{cN:"infix",bK:"in
fix infixl infixr",e:"$",c:[f.CNM,g]},{cN:"foreign",b:"\\bforeign\\b",e:"$",k:"f
oreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",c:[d,f.QSM,
g]},{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},e,g,b,f.QSM,f.CNM,d
,f.inherit(f.TM,{b:"^[_a-z][\\w']*"}),{b:"->|<-"}]}});hljs.registerLanguage("del
phi",function(b){var a="exports register file shl array record property for mod
while set ally label uses raise not stored class safecall var interface or priva
te static exit index inherited to else stdcall override shr asm far resourcestri
ng finalization packed virtual out and protected library do xorwrite goto near f
unction end div overload object unit begin string on inline repeat until destruc
tor write message program with read initialization except default nil if case cd
ecl in downto threadvar of try pascal const external constructor type public the
n implementation finally published procedure";var e={cN:"comment",v:[{b:/\{/,e:/
\}/,r:0},{b:/\(\*/,e:/\*\)/,r:10}]};var c={cN:"string",b:/'/,e:/'/,c:[{b:/''/}]}
;var d={cN:"string",b:/(#\d+)+/};var f={b:b.IR+"\\s*=\\s*class\\s*\\(",rB:true,c
:[b.TM]};var g={cN:"function",bK:"function constructor destructor procedure",e:/
[:;]/,k:"function constructor|10 destructor|10 procedure|10",c:[b.TM,{cN:"params
",b:/\(/,e:/\)/,k:a,c:[c,d]},e]};return{cI:true,k:a,i:/("|\$[G-Zg-z]|\/\*|<\/)/,
c:[e,b.CLCM,c,d,b.NM,f,g]}});hljs.registerLanguage("markdown",function(a){return
{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL
:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[
*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:
"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"hori
zontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:
[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\("
,e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:tru
e,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]"
,eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("avr
asm",function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld b
rbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl
brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv c
lz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in
inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out p
op push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis
sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",bu
ilt_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2
0 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr
1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tc
nt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c o
cr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr port
g ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr
timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah
ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl
eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr s
psr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pi
nf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$",r:0},a.CNM,a.BNM,{cN:"number",b:"\\b(
\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']
"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"prepr
ocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}});hljs.registerLanguag
e("lisp",function(h){var k="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\
+\\*\\/\\<\\=\\>\\&\\#!]*";var l="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\
\+|\\-)?\\d+)?";var j={cN:"shebang",b:"^#!",e:"$"};var b={cN:"literal",b:"\\b(t{
1}|nil)\\b"};var d={cN:"number",v:[{b:l,r:0},{b:"#b[0-1]+(/[0-1]+)?"},{b:"#o[0-7
]+(/[0-7]+)?"},{b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{b:"#c\\("+l+" +"+l,e:"\\)"}]};var
g=h.inherit(h.QSM,{i:null});var m={cN:"comment",b:";",e:"$"};var f={cN:"variabl
e",b:"\\*",e:"\\*"};var n={cN:"keyword",b:"[:&]"+k};var c={b:"\\(",e:"\\)",c:["s
elf",b,g,d]};var a={cN:"quoted",c:[d,g,f,n,c],v:[{b:"['`]\\(",e:"\\)",},{b:"\\(q
uote ",e:"\\)",k:{title:"quote"},}]};var i={cN:"list",b:"\\(",e:"\\)"};var e={eW
:true,r:0};i.c=[{cN:"title",b:k},e];e.c=[a,i,b,d,g,m,f,n];return{i:/\S/,c:[d,j,b
,g,m,a,i]}});hljs.registerLanguage("vbnet",function(a){return{cI:true,k:{keyword
:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary
by byref byval call case catch class compare const continue custom declare defau
lt delegate dim distinct do each equals else elseif end enum erase error event e
xit explicit finally for friend from function get global goto group handles if i
mplements imports in inherits interface into is isfalse isnot istrue join key le
t lib like loop me mid mod module mustinherit mustoverride mybase myclass namesp
ace narrowing new next not notinheritable notoverridable of off on operator opti
on optional or order orelse overloads overridable overrides paramarray partial p
reserve private property protected public raiseevent readonly redim rem removeha
ndler resume return select set shadows shared skip static step stop structure st
rict sub synclock take text then throw to try unicode until using when where whi
le widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cc
har cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decim
al directcast double gettype getxmlnamespace iif integer long object sbyte short
single string trycast typeof uinteger ulong ushort",literal:"true false nothing
"},i:"//|{|}|endif|gosub|variant|wend",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"c
omment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|<!--|-->"},{cN:"xmlDocTag"
,b:"</?",e:">"},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end re
gion externalsource"},]}});hljs.registerLanguage("axapta",function(a){return{k:"
false int abstract private char boolean static null if for true while long throw
finally protected final return void enum else break new catch byte super case s
hort default double public try this switch continue reverse firstfast firstonly
forupdate nofetch sum avg minof maxof count order group by asc desc index hint l
ike dispaly edit client server ttsbegin ttscommit str real date container anytyp
e common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",
e:"$"},{cN:"class",bK:"class interface",e:"{",i:":",c:[{cN:"inheritance",bK:"ext
ends implements",r:10},a.UTM]}]}});hljs.registerLanguage("ocaml",function(a){ret
urn{k:{keyword:"and as assert asr begin class constraint do done downto else end
exception external false for fun function functor if in include inherit initial
izer land lazy let lor lsl lsr lxor match method mod module mutable new object o
f open or private rec ref sig struct then to true try type val virtual when whil
e with parser value",built_in:"bool char float int list unit array exn option in
t32 int64 nativeint format4 format6 lazy_t in_channel out_channel string",},i:/\
/\//,c:[{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["se
lf"]},{cN:"class",bK:"type",e:"\\(|=|$",c:[a.UTM]},{cN:"annotation",b:"\\[<",e:"
>\\]"},a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}});hl
js.registerLanguage("erlang-repl",function(a){return{k:{special_functions:"spawn
spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxo
r case catch cond div end fun if let not of or orelse|10 query receive rem try w
hen xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"nu
mber",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM
,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"o
k"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9
_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-
Z][a-zA-Z0-9_']*",r:0}]}});hljs.registerLanguage("vala",function(a){return{k:{ke
yword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int6
4 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unow
ned owned async signal static abstract interface override while do for foreach e
lse switch case break default return try catch public private protected internal
using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode
Gee Object",literal:"false true null"},c:[{cN:"class",bK:"class interface deleg
ate namespace",e:"{",i:"[^,:\\n\\s\\.]",c:[a.UTM]},a.CLCM,a.CBLCLM,{cN:"string",
b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:
"constant",b:" [A-Z_]+ ",r:0}]}});hljs.registerLanguage("dos",function(a){return
{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined
equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause
copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping
net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",
b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comm
ent",b:"@?rem",e:"$"}]}});hljs.registerLanguage("clojure",function(l){var e={bui
lt_in:"def cond apply if-not if-let if not not= = < < > <= <= >= == + / *
- rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll?
list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number
? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? cha
r? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any?
libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop l
etfn drop-last take-last drop-while while intern condp case reduced cycle split-
at split-with repeat replicate iterate range merge zipmap declare line-seq sort
comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-
for let agent atom send send-off release-pending-sends add-watch mapv filterv re
move-watch agent-error restart-agent set-error-handler error-handler set-error-m
ode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter
monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or whe
n when-not when-let comp juxt partial sequence memoize constantly complement ide
ntity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll
deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defm
ulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys v
als key val rseq name namespace promise into transient persistent! conj! assoc!
dissoc! pop! disj! use class type num float double short byte boolean bigint big
integer bigdec print-method print-dup throw-if printf format load compile get-in
update-in pr pr-on newline flush read slurp read-line subvec with-open memfn ti
me re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve
ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-
meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-
max-history ensure sync io! new next conj set! to-array future future-call into-
array aset gen-class reduce map filter find empty hash-map hash-set sorted-map s
orted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc disso
c list disj get union difference intersection extend extend-type extend-protocol
int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-re
st max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec u
nchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked
-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list*
str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\
!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";v
ar d={cN:"number",b:a,r:0};var j=l.inherit(l.QSM,{i:null});var o={cN:"comment",b
:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"com
ment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b
:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true fals
e nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comme
nt"},i,g];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:/\S/,c:[o,m,{cN:"pr
ompt",b:/^=> /,starts:{e:/\n\n|\Z/}}]}});hljs.registerLanguage("go",function(a){
var b={keyword:"break default func interface select case map struct chan else go
to package switch const fallthrough if range type continue for import return var
go defer",constant:"true false iota nil",typename:"bool byte complex64 complex1
28 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int
uint uintptr rune",built_in:"append cap close complex copy imag len make new pan
ic print println real recover delete"};return{aliases:["golang"],k:b,i:"</",c:[a
.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'"},{cN:"string",b:"`",e:"`"},
{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\
-)?\\d+)?",r:0},a.CNM]}});hljs.registerLanguage("json",function(a){var e={litera
l:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true
,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true
,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inheri
t(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs
.registerLanguage("rust",function(b){var c={cN:"number",b:"\\b(0[xb][A-Za-z0-9_]
+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",r:0};var a="assert bool break char
check claim comm const cont copy dir do drop else enum extern export f32 f64 fa
il false float fn for i16 i32 i64 i8 if impl int let log loop match mod move mut
priv pub pure ref return self static str struct task true trait type u16 u32 u6
4 u8 uint unsafe use vec while";return{k:a,i:"</",c:[b.CLCM,b.CBLCLM,b.inherit(b
.QSM,{i:null}),b.ASM,c,{cN:"function",bK:"fn",e:"(\\(|<)",c:[b.UTM]},{cN:"prepro
cessor",b:"#\\[",e:"\\]"},{bK:"type",e:"(=|<)",c:[b.UTM],i:"\\S"},{bK:"trait enu
m",e:"({|<)",c:[b.UTM],i:"\\S"}]}});hljs.registerLanguage("java",function(b){var
a="false synchronized int abstract float private char boolean static null if co
nst for true while long throw strictfp finally protected import native final ret
urn void enum else break transient new catch instanceof byte super volatile case
assert short package default double public try this switch continue throws";ret
urn{k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|
\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBLCLM,b.ASM,b.QSM,{bK:"protected public privat
e",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,i:/[:"<>]/,c:[{bK:"
extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,
{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("lua",function(b){var
a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b
:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{
keyword:"and break do else elseif end false for if in local nil not or repeat re
turn then true until while",built_in:"_G _VERSION assert collectgarbage dofile e
rror getfenv getmetatable ipairs load loadfile loadstring module next pairs pcal
l print rawequal rawget rawset require select setfenv setmetatable tonumber tost
ring type unpack xpcall coroutine debug io math os package string table"},c:d.co
ncat([{cN:"function",bK:"function",e:"\\)",c:[b.inherit(b.TM,{b:"([_a-zA-Z]\\w*\
\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{cN:"params",b:"\\(",eW:true,c:d}].concat(
d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}});hljs.registerLanguag
e("rsl",function(a){return{k:{keyword:"float color point normal vector matrix wh
ile for if do return else break extern continue",built_in:"abs acos ambient area
asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat
cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filt
erstep floor format fresnel incident length lightsource log match max min mod no
ise normalize ntransform opposite option phong pnoise pow printf ptlined radians
random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shad
ow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textur
einfo trace transform vtransform xcomp ycomp zcomp"},i:"</",c:[a.CLCM,a.CBLCLM,a
.QSM,a.ASM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",bK:"surface displa
cement light volume imager",e:"\\("},{cN:"shading",bK:"illuminate illuminance ga
ther",e:"\\("}]}});hljs.registerLanguage("d",function(x){var b={keyword:"abstrac
t alias align asm assert auto body break byte case cast catch class const contin
ue debug default delete deprecated do else enum export extern final finally for
foreach foreach_reverse|10 goto if immutable import in inout int interface invar
iant is lazy macro mixin module new nothrow out override package pragma private
protected public pure ref return scope shared static struct super switch synchro
nized template this throw try typedef typeid typeof union unittest version void
volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __
EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent
cfloat char creal dchar delegate double dstring float function idouble ifloat i
real long real short string ubyte ucent uint ulong ushort wchar wstring",literal
:"false null true"};var c="(0|[1-9][\\d_]*)",q="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_
]+?\\d)",h="0[bB][01_]+",v="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)
",y="0[xX]"+v,p="([eE][+-]?"+q+")",o="("+q+"(\\.\\d*|"+p+")|\\d+\\."+q+q+"|\\."+
c+p+"?)",k="(0[xX]("+v+"\\."+v+"|\\.?"+v+")[pP][+-]?"+q+")",l="("+c+"|"+h+"|"+y+
")",n="("+k+"|"+o+")";var z="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}
|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};";var m={cN:"number",b:"\\b"+
l+"(L|u|U|Lu|LU|uL|UL)?",r:0};var j={cN:"number",b:"\\b("+n+"([fF]|L|i|[fF]i|Li)
?|"+l+"(i|[fF]i|Li))",r:0};var s={cN:"string",b:"'("+z+"|.)",e:"'",i:"."};var r=
{b:z,r:0};var w={cN:"string",b:'"',c:[r],e:'"[cwd]?'};var f={cN:"string",b:'[rq]
"',e:'"[cwd]?',r:5};var u={cN:"string",b:"`",e:"`[cwd]?"};var i={cN:"string",b:'
x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10};var t={cN:"string",b:'q"\\{',e:'\\}"'};var
e={cN:"shebang",b:"^#!",e:"$",r:5};var g={cN:"preprocessor",b:"#(line)",e:"$",r
:5};var d={cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"};var a={cN:"comment",b:"\\/\
\+",c:["self"],e:"\\+\\/",r:10};return{l:x.UIR,k:b,c:[x.CLCM,x.CBLCLM,a,i,w,f,u,
t,j,m,s,e,g,d]}});hljs.registerLanguage("javascript",function(a){return{aliases:
["js"],k:{keyword:"in if for while finally var new function do return void else
break catch instanceof with throw case default try this switch continue typeof d
elete let yield const class",literal:"true false null undefined NaN Infinity",bu
ilt_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent enc
odeURI encodeURIComponent escape unescape Object Function Boolean Error EvalErro
r InternalError RangeError ReferenceError StopIteration SyntaxError TypeError UR
IError Number Math Date String RegExp Array Float32Array Float64Array Int16Array
Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray Array
Buffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict
('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|th
row)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>
;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:
/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/[
"'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("r"
,function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,
l:b,k:{keyword:"function if in break next repeat else for return switch while tr
y tryCatch|10 stop warning require library attach detach source setMethod setGen
eric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA
_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"
0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:
0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)
?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\
b",r:0},{b:"`",e:"`",r:0},{cN:"string",c:[a.BE],v:[{b:'"',e:'"'},{b:"'",e:"'"}]}
]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\
@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then d
efined module in return redo if BEGIN retry end for true self when next until do
begin unless END rescue nil else break undef not super class case require yield
alias while ensure elsif or include attr_reader attr_writer attr_accessor";var
a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:
"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",
b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/}
,{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<
",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"
-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u
[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{
cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(:
:\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)
?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,
i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b
:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|
(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable"
,b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e
.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z
]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return
{k:g,c:f}});hljs.registerLanguage("haml",function(a){return{cI:true,c:[{cN:"doct
ype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN
:"comment",b:"^\\s*(!=#|=#|-#|/).*$",r:0},{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n
",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+"},{cN:"value",b:"[#\\.
]\\w+"},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:tr
ue,c:[{cN:"symbol",b:":\\w+"},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"
},{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+"
,rB:true,eW:true,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"'},{cN:
"string",b:"'",e:"'"},{b:"\\w+",r:0}]},]}]},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},
{b:"#{",starts:{e:"}",sL:"ruby"}}]}});hljs.registerLanguage("brainfuck",function
(b){var a={cN:"literal",b:"[\\+\\-]",r:0};return{c:[{cN:"comment",b:"[^\\[\\]\\.
,\\+\\-<> \r\n]",rE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\
\]]",r:0},{cN:"string",b:"[\\.,]",r:0},{b:/\+\+|\-\-/,rB:true,c:[a]},a]}});hljs.
registerLanguage("matlab",function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a
.BE,{b:"''"}]}];return{k:{keyword:"break case catch classdef continue else elsei
f end enumerated events for function global if methods otherwise parfor persiste
nt properties return spmd switch try while",built_in:"sin sind sinh asin asind a
sinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec sec
d sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd
acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nt
hroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor
ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betai
nc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi
legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factor
ial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat ra
nd randn linspace logspace freqspace meshgrid accumarray size length ndims numel
disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fl
iplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute sh
iftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan
isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pas
cal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"funct
ion",bK:"function",e:"$",c:[a.UTM,{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"
\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\
\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b,r:0},{cN:"cell",b:"\
\{",e:"\\}'*[\\.']*",c:b,i:/:/},{cN:"comment",b:"\\%",e:"$"}].concat(b)}});hljs.
registerLanguage("vbscript",function(a){return{cI:true,k:{keyword:"call class co
nst dim do loop erase execute executeglobal exit for each next function if then
else on error option explicit new private property let get public randomize redi
m rem select case set stop sub while wend with end to elseif is or xor and not c
lass_initialize class_terminate default preserve in me byval byref step resume g
oto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getre
f string weekdayname rnd dateadd monthname now day minute isarray cbool round fo
rmatcurrency conversions csng timevalue second year space abs clng timeserial fi
xs len asc isempty maths dateserial atn timer isobject filter weekday datevalue
ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeri
c log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour
oct typename trim strcomp int createobject loadpicture tan formatnumber mid scr
iptenginebuildversion scriptengine split scriptengineminorversion cint sin datep
art ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp
inputbox left ascw chrw regexp server response request cstr err",literal:"true f
alse null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment
",b:/'/,e:/$/,r:0},a.CNM]}});hljs.registerLanguage("fsharp",function(a){return{k
:"abstract and as assert base begin class default delegate do done downcast down
to elif else end exception extern false finally for fun function global if in in
herit inline interface internal lazy let match member module mutable namespace n
ew null of open or override private public rec return sig static struct then to
true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',
e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"\\(\\*",e:"\\
*\\)"},{cN:"class",bK:"type",e:"\\(|=|$",c:[a.UTM]},{cN:"annotation",b:"\\[<",e:
">\\]"},{cN:"attribute",b:"\\B('[A-Za-z])\\b",c:[a.BE]},a.CLCM,a.inherit(a.QSM,{
i:null}),a.CNM]}});hljs.registerLanguage("makefile",function(a){var b={cN:"varia
ble",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,star
ts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:
/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/
,e:/$/,c:[a.QSM,b]}]}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"
chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*
\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/
},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:
/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^
\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("rib",functio
n(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin
AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples
ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylin
der DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler E
xposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon Geom
etricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interio
r LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeText
ure Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opa
city Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter Pixel
Samples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Proced
ural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Sc
ale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin
SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform Trans
formBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",
i:"</",c:[a.HCM,a.CNM,a.ASM,a.QSM]}});hljs.registerLanguage("http",function(a){r
eturn{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\
d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN
:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true
,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}
});hljs.registerLanguage("autohotkey",function(b){var d={cN:"escape",b:"`[\\s\\S
]"};var c={cN:"comment",b:";",e:"$",r:0};var a=[{cN:"built_in",b:"A_[a-zA-Z0-9]+
"},{cN:"built_in",bK:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{cI:tru
e,k:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true fa
lse NOT AND OR"},c:a.concat([d,b.inherit(b.QSM,{c:[d]}),c,{cN:"number",b:b.NR,r:
0},{cN:"var_expand",b:"%",e:"%",i:"\\n",c:[d]},{cN:"label",c:[d],v:[{b:'^[^\\n";
]+::(?!=)'},{b:'^[^\\n";]+:(?!=)',r:0}]},{b:",\\s*,",r:10}])}});hljs.registerLan
guage("php",function(b){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9
_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:
[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.
QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list
abstract global private echo interface as static endswitch array null if endwhil
e or const for endforeach self var while isset public protected exit foreach thr
ow elseif include __FILE__ empty require_once do xor return parent clone use __C
LASS__ __LINE__ else break print eval new catch __METHOD__ case exception defaul
t die require __FUNCTION__ enddeclare final try switch continue endfor endif dec
lare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yiel
d finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\
s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compil
er",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:
"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:
"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\
(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/
,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("c
make",function(a){return{cI:true,k:{keyword:"add_custom_command add_custom_targe
t add_definitions add_dependencies add_executable add_library add_subdirectory a
dd_test aux_source_directory break build_command cmake_minimum_required cmake_po
licy configure_file create_test_sourcelist define_property else elseif enable_la
nguage enable_testing endforeach endfunction endif endmacro endwhile execute_pro
cess export find_file find_library find_package find_path find_program fltk_wrap
_ui foreach function get_cmake_property get_directory_property get_filename_comp
onent get_property get_source_file_property get_target_property get_test_propert
y if include include_directories include_external_msproject include_regular_expr
ession install link_directories load_cache load_command macro mark_as_advanced m
essage option output_required_files project qt_wrap_cpp qt_wrap_ui remove_defini
tions return separate_arguments set set_directory_properties set_property set_so
urce_files_properties set_target_properties set_tests_properties site_name sourc
e_group string target_link_libraries try_compile try_run unset variable_watch wh
ile build_name exec_program export_library_dependencies install_files install_pr
ograms install_targets link_libraries make_directory remove subdir_depends subdi
rs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules
qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less grea
ter strless strgreater strequal matches"},c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,
a.QSM,a.NM]}});hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[
{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b
.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/}
;return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while
in do done exit return set declare case esac export exec",literal:"true false",
built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonl
y getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -g
t -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",
b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},
b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("applescript",function(a){var b=a.inh
erit(a.QSM,{i:""});var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=
[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"
--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as a
t back before beginning behind below beneath beside between but by considering c
ontain contains continue copy div does eighth else end equal equals error every
exit fifth first for fourth from front get given global if ignoring in into is i
t its last local me middle mod my ninth not of on onto or over prop property put
ref reference repeat returning script second set seventh since sixth some tell
tenth that the then third through thru timeout times to transaction try until wh
ere while whose with without",constant:"AppleScript false linefeed return pi quo
te result space tab true",type:"alias application boolean class constant date fi
le integer list number real record string text",command:"activate beep count del
ay launch log offset read round run say summarize write",property:"character cha
racters contents day frontmost id item length month name paragraph paragraphs re
st reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",
b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for
|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|
current date|do shell script|get volume settings|random number|set volume|system
attribute|system info|time to GMT|(load|run|store) script|scripting components|
ASCII (character|number)|localized string|choose (application|color|file|file na
me|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*retu
rn\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing v
alue)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater
than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|le
ss) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|afte
r)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|q
uoted form)\\b"},{cN:"function_start",bK:"on",i:"[${=;\\n]",c:[a.UTM,d]}].concat
(c),i:"//"}});hljs.registerLanguage("vhdl",function(a){return{cI:true,k:{keyword
:"abs access after alias all and architecture array assert attribute begin block
body buffer bus case component configuration constant context cover disconnect
downto default else elsif end entity exit fairness file for force function gener
ate generic group guarded if impure in inertial inout is label library linkage l
iteral loop map mod nand new next nor not null of on open or others out package
port postponed procedure process property protected pure range record register r
eject release rem report restrict restrict_guarantee return rol ror select seque
nce severity shared signal sla sll sra srl strong subtype then to transport type
unaffected units until use variable vmode vprop vunit wait when while with xnor
xor",typename:"boolean bit character severity_level integer time delay_length n
atural positive string bit_vector file_open_kind file_open_status std_ulogic std
_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer
_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},
a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:
"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}});hljs.registerLanguage("parser3",functi
on(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem
{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|
CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-
]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:
"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}});hljs.register
Language("scala",function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"s
tring",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val
var false true sealed abstract private trait object null if for while throw fin
ally protected extends import final return else break new catch super class case
package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:
"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,b,a.ASM,a.QSM,
{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class tr
ait object",c:[{bK:"extends with",r:10},a.UTM,{cN:"params",b:"\\(",e:"\\)",c:[a.
ASM,a.QSM,b,c]}]},a.CNM,c]}});hljs.registerLanguage("cpp",function(a){var b={key
word:"false int float while private char catch export virtual operator sizeof dy
namic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namesp
ace unsigned long throw volatile static protected bool template mutable if publi
c friend do return goto auto void enum else break new extern using true class as
m case typeid short reinterpret_cast|10 default double register explicit signed
typename try this switch continue wchar_t inline delete alignof char16_t char32_
t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool
complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstrea
m istringstream ostringstream auto_ptr deque list queue stack vector map set bit
set multiset multimap unordered_set unordered_map unordered_multiset unordered_m
ultimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exi
t exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl is
digit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper l
abs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar p
uts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strc
spn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprin
tf vprintf vsprintf"};return{aliases:["c"],k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{
cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)
(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"include\\s*<",
e:">",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector
|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset
|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}});</script> |
| 3363 |
| 3364 |
| 3365 |
| 3366 <!-- |
| 3367 Element wrapper for the `highlightjs` (http://highlightjs.org/) library. |
| 3368 |
| 3369 ##### Example |
| 3370 |
| 3371 <highlightjs-element text="def somefunc(param1='', param2=0):"></highlightjs
-element> |
| 3372 |
| 3373 ##### Example |
| 3374 |
| 3375 <highlightjs-element> |
| 3376 <template> |
| 3377 |
| 3378 <link rel="import" href="/components/polymer/polymer.html"> |
| 3379 <polymer-element name="proto-element"> |
| 3380 <template> |
| 3381 <span>I'm <b>proto-element</b>. Check out my prototype.</span> |
| 3382 </template> |
| 3383 <script> |
| 3384 Polymer({ |
| 3385 }); |
| 3386 </script> |
| 3387 </polymer-element> |
| 3388 |
| 3389 </template> |
| 3390 </highlightjs-element> |
| 3391 |
| 3392 @class highlightjs-element |
| 3393 @blurb Element wrapper for the highlightjs library. |
| 3394 @status alpha |
| 3395 @snap snap.png |
| 3396 --> |
| 3397 <polymer-element name="highlightjs-element" attributes="text" assetpath="../high
lightjs-element/"> |
| 3398 |
| 3399 <template> |
| 3400 |
| 3401 <style> |
| 3402 :host { |
| 3403 display: block; |
| 3404 } |
| 3405 </style> |
| 3406 |
| 3407 <style>/* |
| 3408 |
| 3409 Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiac
s.Org> |
| 3410 |
| 3411 */ |
| 3412 |
| 3413 .hljs { |
| 3414 display: block; padding: 0.5em; |
| 3415 background: #F0F0F0; |
| 3416 } |
| 3417 |
| 3418 .hljs, |
| 3419 .hljs-subst, |
| 3420 .hljs-tag .hljs-title, |
| 3421 .lisp .hljs-title, |
| 3422 .clojure .hljs-built_in, |
| 3423 .nginx .hljs-title { |
| 3424 color: black; |
| 3425 } |
| 3426 |
| 3427 .hljs-string, |
| 3428 .hljs-title, |
| 3429 .hljs-constant, |
| 3430 .hljs-parent, |
| 3431 .hljs-tag .hljs-value, |
| 3432 .hljs-rules .hljs-value, |
| 3433 .hljs-rules .hljs-value .hljs-number, |
| 3434 .hljs-preprocessor, |
| 3435 .hljs-pragma, |
| 3436 .haml .hljs-symbol, |
| 3437 .ruby .hljs-symbol, |
| 3438 .ruby .hljs-symbol .hljs-string, |
| 3439 .hljs-aggregate, |
| 3440 .hljs-template_tag, |
| 3441 .django .hljs-variable, |
| 3442 .smalltalk .hljs-class, |
| 3443 .hljs-addition, |
| 3444 .hljs-flow, |
| 3445 .hljs-stream, |
| 3446 .bash .hljs-variable, |
| 3447 .apache .hljs-tag, |
| 3448 .apache .hljs-cbracket, |
| 3449 .tex .hljs-command, |
| 3450 .tex .hljs-special, |
| 3451 .erlang_repl .hljs-function_or_atom, |
| 3452 .asciidoc .hljs-header, |
| 3453 .markdown .hljs-header, |
| 3454 .coffeescript .hljs-attribute { |
| 3455 color: #800; |
| 3456 } |
| 3457 |
| 3458 .smartquote, |
| 3459 .hljs-comment, |
| 3460 .hljs-annotation, |
| 3461 .hljs-template_comment, |
| 3462 .diff .hljs-header, |
| 3463 .hljs-chunk, |
| 3464 .asciidoc .hljs-blockquote, |
| 3465 .markdown .hljs-blockquote { |
| 3466 color: #888; |
| 3467 } |
| 3468 |
| 3469 .hljs-number, |
| 3470 .hljs-date, |
| 3471 .hljs-regexp, |
| 3472 .hljs-literal, |
| 3473 .hljs-hexcolor, |
| 3474 .smalltalk .hljs-symbol, |
| 3475 .smalltalk .hljs-char, |
| 3476 .go .hljs-constant, |
| 3477 .hljs-change, |
| 3478 .lasso .hljs-variable, |
| 3479 .makefile .hljs-variable, |
| 3480 .asciidoc .hljs-bullet, |
| 3481 .markdown .hljs-bullet, |
| 3482 .asciidoc .hljs-link_url, |
| 3483 .markdown .hljs-link_url { |
| 3484 color: #080; |
| 3485 } |
| 3486 |
| 3487 .hljs-label, |
| 3488 .hljs-javadoc, |
| 3489 .ruby .hljs-string, |
| 3490 .hljs-decorator, |
| 3491 .hljs-filter .hljs-argument, |
| 3492 .hljs-localvars, |
| 3493 .hljs-array, |
| 3494 .hljs-attr_selector, |
| 3495 .hljs-important, |
| 3496 .hljs-pseudo, |
| 3497 .hljs-pi, |
| 3498 .haml .hljs-bullet, |
| 3499 .hljs-doctype, |
| 3500 .hljs-deletion, |
| 3501 .hljs-envvar, |
| 3502 .hljs-shebang, |
| 3503 .apache .hljs-sqbracket, |
| 3504 .nginx .hljs-built_in, |
| 3505 .tex .hljs-formula, |
| 3506 .erlang_repl .hljs-reserved, |
| 3507 .hljs-prompt, |
| 3508 .asciidoc .hljs-link_label, |
| 3509 .markdown .hljs-link_label, |
| 3510 .vhdl .hljs-attribute, |
| 3511 .clojure .hljs-attribute, |
| 3512 .asciidoc .hljs-attribute, |
| 3513 .lasso .hljs-attribute, |
| 3514 .coffeescript .hljs-property, |
| 3515 .hljs-phony { |
| 3516 color: #88F |
| 3517 } |
| 3518 |
| 3519 .hljs-keyword, |
| 3520 .hljs-id, |
| 3521 .hljs-title, |
| 3522 .hljs-built_in, |
| 3523 .hljs-aggregate, |
| 3524 .css .hljs-tag, |
| 3525 .hljs-javadoctag, |
| 3526 .hljs-phpdoc, |
| 3527 .hljs-yardoctag, |
| 3528 .smalltalk .hljs-class, |
| 3529 .hljs-winutils, |
| 3530 .bash .hljs-variable, |
| 3531 .apache .hljs-tag, |
| 3532 .go .hljs-typename, |
| 3533 .tex .hljs-command, |
| 3534 .asciidoc .hljs-strong, |
| 3535 .markdown .hljs-strong, |
| 3536 .hljs-request, |
| 3537 .hljs-status { |
| 3538 font-weight: bold; |
| 3539 } |
| 3540 |
| 3541 .asciidoc .hljs-emphasis, |
| 3542 .markdown .hljs-emphasis { |
| 3543 font-style: italic; |
| 3544 } |
| 3545 |
| 3546 .nginx .hljs-built_in { |
| 3547 font-weight: normal; |
| 3548 } |
| 3549 |
| 3550 .coffeescript .javascript, |
| 3551 .javascript .xml, |
| 3552 .lasso .markup, |
| 3553 .tex .hljs-formula, |
| 3554 .xml .javascript, |
| 3555 .xml .vbscript, |
| 3556 .xml .css, |
| 3557 .xml .hljs-cdata { |
| 3558 opacity: 0.5; |
| 3559 } |
| 3560 </style> |
| 3561 <style>/* Base16 Atelier Forest Light - Theme */ |
| 3562 /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-sch
emes/forest) */ |
| 3563 /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempso
n/base16) */ |
| 3564 /* https://github.com/jmblog/color-themes-for-highlightjs */ |
| 3565 |
| 3566 /* Atelier Forest Light Comment */ |
| 3567 .hljs-comment, |
| 3568 .hljs-title { |
| 3569 color: #766e6b; |
| 3570 } |
| 3571 |
| 3572 /* Atelier Forest Light Red */ |
| 3573 .hljs-variable, |
| 3574 .hljs-attribute, |
| 3575 .hljs-tag, |
| 3576 .hljs-regexp, |
| 3577 .ruby .hljs-constant, |
| 3578 .xml .hljs-tag .hljs-title, |
| 3579 .xml .hljs-pi, |
| 3580 .xml .hljs-doctype, |
| 3581 .html .hljs-doctype, |
| 3582 .css .hljs-id, |
| 3583 .css .hljs-class, |
| 3584 .css .hljs-pseudo { |
| 3585 color: #f22c40; |
| 3586 } |
| 3587 |
| 3588 /* Atelier Forest Light Orange */ |
| 3589 .hljs-number, |
| 3590 .hljs-preprocessor, |
| 3591 .hljs-pragma, |
| 3592 .hljs-built_in, |
| 3593 .hljs-literal, |
| 3594 .hljs-params, |
| 3595 .hljs-constant { |
| 3596 color: #df5320; |
| 3597 } |
| 3598 |
| 3599 /* Atelier Forest Light Yellow */ |
| 3600 .hljs-ruby .hljs-class .hljs-title, |
| 3601 .css .hljs-rules .hljs-attribute { |
| 3602 color: #d5911a; |
| 3603 } |
| 3604 |
| 3605 /* Atelier Forest Light Green */ |
| 3606 .hljs-string, |
| 3607 .hljs-value, |
| 3608 .hljs-inheritance, |
| 3609 .hljs-header, |
| 3610 .ruby .hljs-symbol, |
| 3611 .xml .hljs-cdata { |
| 3612 color: #5ab738; |
| 3613 } |
| 3614 |
| 3615 /* Atelier Forest Light Aqua */ |
| 3616 .css .hljs-hexcolor { |
| 3617 color: #00ad9c; |
| 3618 } |
| 3619 |
| 3620 /* Atelier Forest Light Blue */ |
| 3621 .hljs-function, |
| 3622 .python .hljs-decorator, |
| 3623 .python .hljs-title, |
| 3624 .ruby .hljs-function .hljs-title, |
| 3625 .ruby .hljs-title .hljs-keyword, |
| 3626 .perl .hljs-sub, |
| 3627 .javascript .hljs-title, |
| 3628 .coffeescript .hljs-title { |
| 3629 color: #407ee7; |
| 3630 } |
| 3631 |
| 3632 /* Atelier Forest Light Purple */ |
| 3633 .hljs-keyword, |
| 3634 .javascript .hljs-function { |
| 3635 color: #6666ea; |
| 3636 } |
| 3637 |
| 3638 .hljs { |
| 3639 display: block; |
| 3640 background: #f1efee; |
| 3641 color: #68615e; |
| 3642 padding: 0.5em; |
| 3643 } |
| 3644 |
| 3645 .coffeescript .javascript, |
| 3646 .javascript .xml, |
| 3647 .tex .hljs-formula, |
| 3648 .xml .javascript, |
| 3649 .xml .vbscript, |
| 3650 .xml .css, |
| 3651 .xml .hljs-cdata { |
| 3652 opacity: 0.5; |
| 3653 } |
| 3654 </style> |
| 3655 |
| 3656 <pre id="content"></pre> |
| 3657 |
| 3658 </template> |
| 3659 |
| 3660 <script> |
| 3661 |
| 3662 Polymer('highlightjs-element', { |
| 3663 |
| 3664 ready: function() { |
| 3665 if (!this.text) { |
| 3666 if (this.firstElementChild && this.firstElementChild.localName === 'te
mplate') { |
| 3667 this.text = this.firstElementChild.innerHTML; |
| 3668 } else { |
| 3669 this.text = this.innerHTML; |
| 3670 } |
| 3671 } |
| 3672 }, |
| 3673 |
| 3674 textChanged: function() { |
| 3675 this.$.content.innerHTML = hljs.highlightAuto(this.text || '').value; |
| 3676 } |
| 3677 |
| 3678 }); |
| 3679 |
| 3680 </script> |
| 3681 |
| 3682 </polymer-element> |
| 3683 |
| 3684 <script>(function(scope) { |
| 3685 |
| 3686 var ContextFreeParser = { |
| 3687 parse: function(text) { |
| 3688 var top = {}; |
| 3689 var entities = []; |
| 3690 var current = top; |
| 3691 var subCurrent = {}; |
| 3692 |
| 3693 var scriptDocCommentClause = '\\/\\*\\*([\\s\\S]*?)\\*\\/'; |
| 3694 var htmlDocCommentClause = '<!--([\\s\\S]*?)-->'; |
| 3695 |
| 3696 // matches text between /** and */ inclusive and <!-- and --> inclusive |
| 3697 var docCommentRegex = new RegExp(scriptDocCommentClause + '|' + htmlDocCom
mentClause, 'g'); |
| 3698 |
| 3699 // acquire all script doc comments |
| 3700 var docComments = text.match(docCommentRegex) || []; |
| 3701 |
| 3702 // each match represents a single block of doc comments |
| 3703 docComments.forEach(function(m) { |
| 3704 // unify line ends, remove all comment characters, split into individual
lines |
| 3705 var lines = m.replace(/\r\n/g, '\n').replace(/^\s*\/\*\*|^\s*\*\/|^\s*\*
?|^\s*\<\!-\-|^s*\-\-\>/gm, '').split('\n'); |
| 3706 |
| 3707 // pragmas (@-rules) must occur on a line by themselves |
| 3708 var pragmas = []; |
| 3709 // filter lines whose first non-whitespace character is @ into the pragm
a list |
| 3710 // (and out of the `lines` array) |
| 3711 lines = lines.filter(function(l) { |
| 3712 var m = l.match(/\s*@([\w-]*) (.*)/); |
| 3713 if (!m) { |
| 3714 return true; |
| 3715 } |
| 3716 pragmas.push(m); |
| 3717 }); |
| 3718 |
| 3719 // collect all other text into a single block |
| 3720 var code = lines.join('\n'); |
| 3721 |
| 3722 // process pragmas |
| 3723 pragmas.forEach(function(m) { |
| 3724 var pragma = m[1], content = m[2]; |
| 3725 switch (pragma) { |
| 3726 |
| 3727 // currently all entities are either @class or @element |
| 3728 case 'class': |
| 3729 case 'element': |
| 3730 current = { |
| 3731 name: content, |
| 3732 description: code |
| 3733 }; |
| 3734 entities.push(current); |
| 3735 break; |
| 3736 |
| 3737 // an entity may have these describable sub-features |
| 3738 case 'attribute': |
| 3739 case 'property': |
| 3740 case 'method': |
| 3741 case 'event': |
| 3742 subCurrent = { |
| 3743 name: content, |
| 3744 description: code |
| 3745 }; |
| 3746 var label = pragma == 'property' ? 'properties' : pragma + 's'; |
| 3747 makePragma(current, label, subCurrent); |
| 3748 break; |
| 3749 |
| 3750 // sub-feature pragmas |
| 3751 case 'default': |
| 3752 case 'type': |
| 3753 subCurrent[pragma] = content; |
| 3754 break; |
| 3755 |
| 3756 // everything else |
| 3757 default: |
| 3758 current[pragma] = content; |
| 3759 break; |
| 3760 } |
| 3761 }); |
| 3762 |
| 3763 // utility function, yay hoisting |
| 3764 function makePragma(object, pragma, content) { |
| 3765 var p$ = object; |
| 3766 var p = p$[pragma]; |
| 3767 if (!p) { |
| 3768 p$[pragma] = p = []; |
| 3769 } |
| 3770 p.push(content); |
| 3771 } |
| 3772 |
| 3773 }); |
| 3774 |
| 3775 if (entities.length === 0) { |
| 3776 entities.push({name: 'Entity', description: '**Undocumented**'}); |
| 3777 } |
| 3778 return entities; |
| 3779 } |
| 3780 }; |
| 3781 |
| 3782 if (typeof module !== 'undefined' && module.exports) { |
| 3783 module.exports = ContextFreeParser; |
| 3784 } else { |
| 3785 scope.ContextFreeParser = ContextFreeParser; |
| 3786 } |
| 3787 |
| 3788 })(this);</script> |
| 3789 <!-- |
| 3790 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 3791 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 3792 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 3793 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 3794 Code distributed by Google as part of the polymer project is also |
| 3795 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 3796 --> |
| 3797 |
| 3798 <!-- |
| 3799 @group Polymer Core Elements |
| 3800 |
| 3801 The `core-ajax` element exposes `XMLHttpRequest` functionality. |
| 3802 |
| 3803 <core-ajax |
| 3804 auto |
| 3805 url="http://gdata.youtube.com/feeds/api/videos/" |
| 3806 params='{"alt":"json", "q":"chrome"}' |
| 3807 handleAs="json" |
| 3808 on-core-response="{{handleResponse}}"></core-ajax> |
| 3809 |
| 3810 With `auto` set to `true`, the element performs a request whenever |
| 3811 its `url` or `params` properties are changed. |
| 3812 |
| 3813 Note: The `params` attribute must be double quoted JSON. |
| 3814 |
| 3815 You can trigger a request explicitly by calling `go` on the |
| 3816 element. |
| 3817 |
| 3818 @element core-ajax |
| 3819 @status beta |
| 3820 @homepage github.io |
| 3821 --> |
| 3822 <!-- |
| 3823 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 3824 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 3825 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 3826 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 3827 Code distributed by Google as part of the polymer project is also |
| 3828 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 3829 --> |
| 3830 <!-- |
| 3831 /** |
| 3832 * @group Polymer Core Elements |
| 3833 * |
| 3834 * core-xhr can be used to perform XMLHttpRequests. |
| 3835 * |
| 3836 * <core-xhr id="xhr"></core-xhr> |
| 3837 * ... |
| 3838 * this.$.xhr.request({url: url, params: params, callback: callback}); |
| 3839 * |
| 3840 * @element core-xhr |
| 3841 */ |
| 3842 --> |
| 3843 |
| 3844 |
| 3845 |
| 3846 <polymer-element name="core-xhr" hidden assetpath="../core-ajax/"> |
| 3847 |
| 3848 <script> |
| 3849 |
| 3850 Polymer('core-xhr', { |
| 3851 |
| 3852 /** |
| 3853 * Sends a HTTP request to the server and returns the XHR object. |
| 3854 * |
| 3855 * @method request |
| 3856 * @param {Object} inOptions |
| 3857 * @param {String} inOptions.url The url to which the request is sent. |
| 3858 * @param {String} inOptions.method The HTTP method to use, default is
GET. |
| 3859 * @param {boolean} inOptions.sync By default, all requests are sent as
ynchronously. To send synchronous requests, set to true. |
| 3860 * @param {Object} inOptions.params Data to be sent to the server. |
| 3861 * @param {Object} inOptions.body The content for the request body for
POST method. |
| 3862 * @param {Object} inOptions.headers HTTP request headers. |
| 3863 * @param {String} inOptions.responseType The response type. Default is
'text'. |
| 3864 * @param {boolean} inOptions.withCredentials Whether or not to send cr
edentials on the request. Default is false. |
| 3865 * @param {Object} inOptions.callback Called when request is completed. |
| 3866 * @returns {Object} XHR object. |
| 3867 */ |
| 3868 request: function(options) { |
| 3869 var xhr = new XMLHttpRequest(); |
| 3870 var url = options.url; |
| 3871 var method = options.method || 'GET'; |
| 3872 var async = !options.sync; |
| 3873 // |
| 3874 var params = this.toQueryString(options.params); |
| 3875 if (params && method == 'GET') { |
| 3876 url += (url.indexOf('?') > 0 ? '&' : '?') + params; |
| 3877 } |
| 3878 var xhrParams = this.isBodyMethod(method) ? (options.body || params) : n
ull; |
| 3879 // |
| 3880 xhr.open(method, url, async); |
| 3881 if (options.responseType) { |
| 3882 xhr.responseType = options.responseType; |
| 3883 } |
| 3884 if (options.withCredentials) { |
| 3885 xhr.withCredentials = true; |
| 3886 } |
| 3887 this.makeReadyStateHandler(xhr, options.callback); |
| 3888 this.setRequestHeaders(xhr, options.headers); |
| 3889 xhr.send(xhrParams); |
| 3890 if (!async) { |
| 3891 xhr.onreadystatechange(xhr); |
| 3892 } |
| 3893 return xhr; |
| 3894 }, |
| 3895 |
| 3896 toQueryString: function(params) { |
| 3897 var r = []; |
| 3898 for (var n in params) { |
| 3899 var v = params[n]; |
| 3900 n = encodeURIComponent(n); |
| 3901 r.push(v == null ? n : (n + '=' + encodeURIComponent(v))); |
| 3902 } |
| 3903 return r.join('&'); |
| 3904 }, |
| 3905 |
| 3906 isBodyMethod: function(method) { |
| 3907 return this.bodyMethods[(method || '').toUpperCase()]; |
| 3908 }, |
| 3909 |
| 3910 bodyMethods: { |
| 3911 POST: 1, |
| 3912 PUT: 1, |
| 3913 DELETE: 1 |
| 3914 }, |
| 3915 |
| 3916 makeReadyStateHandler: function(xhr, callback) { |
| 3917 xhr.onreadystatechange = function() { |
| 3918 if (xhr.readyState == 4) { |
| 3919 callback && callback.call(null, xhr.response, xhr); |
| 3920 } |
| 3921 }; |
| 3922 }, |
| 3923 |
| 3924 setRequestHeaders: function(xhr, headers) { |
| 3925 if (headers) { |
| 3926 for (var name in headers) { |
| 3927 xhr.setRequestHeader(name, headers[name]); |
| 3928 } |
| 3929 } |
| 3930 } |
| 3931 |
| 3932 }); |
| 3933 |
| 3934 </script> |
| 3935 |
| 3936 </polymer-element> |
| 3937 |
| 3938 <polymer-element name="core-ajax" attributes="url handleAs auto params response
method headers body contentType withCredentials" assetpath="../core-ajax/"> |
| 3939 <script> |
| 3940 |
| 3941 Polymer('core-ajax', { |
| 3942 /** |
| 3943 * Fired when a response is received. |
| 3944 * |
| 3945 * @event core-response |
| 3946 */ |
| 3947 |
| 3948 /** |
| 3949 * Fired when an error is received. |
| 3950 * |
| 3951 * @event core-error |
| 3952 */ |
| 3953 |
| 3954 /** |
| 3955 * Fired whenever a response or an error is received. |
| 3956 * |
| 3957 * @event core-complete |
| 3958 */ |
| 3959 |
| 3960 /** |
| 3961 * The URL target of the request. |
| 3962 * |
| 3963 * @attribute url |
| 3964 * @type string |
| 3965 * @default '' |
| 3966 */ |
| 3967 url: '', |
| 3968 |
| 3969 /** |
| 3970 * Specifies what data to store in the `response` property, and |
| 3971 * to deliver as `event.response` in `response` events. |
| 3972 * |
| 3973 * One of: |
| 3974 * |
| 3975 * `text`: uses `XHR.responseText`. |
| 3976 * |
| 3977 * `xml`: uses `XHR.responseXML`. |
| 3978 * |
| 3979 * `json`: uses `XHR.responseText` parsed as JSON. |
| 3980 * |
| 3981 * `arraybuffer`: uses `XHR.response`. |
| 3982 * |
| 3983 * `blob`: uses `XHR.response`. |
| 3984 * |
| 3985 * `document`: uses `XHR.response`. |
| 3986 * |
| 3987 * @attribute handleAs |
| 3988 * @type string |
| 3989 * @default 'text' |
| 3990 */ |
| 3991 handleAs: '', |
| 3992 |
| 3993 /** |
| 3994 * If true, automatically performs an Ajax request when either `url` or `p
arams` changes. |
| 3995 * |
| 3996 * @attribute auto |
| 3997 * @type boolean |
| 3998 * @default false |
| 3999 */ |
| 4000 auto: false, |
| 4001 |
| 4002 /** |
| 4003 * Parameters to send to the specified URL, as JSON. |
| 4004 * |
| 4005 * @attribute params |
| 4006 * @type string (JSON) |
| 4007 * @default '' |
| 4008 */ |
| 4009 params: '', |
| 4010 |
| 4011 /** |
| 4012 * Returns the response object. |
| 4013 * |
| 4014 * @attribute response |
| 4015 * @type Object |
| 4016 * @default null |
| 4017 */ |
| 4018 response: null, |
| 4019 |
| 4020 /** |
| 4021 * The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'. |
| 4022 * Default is 'GET'. |
| 4023 * |
| 4024 * @attribute method |
| 4025 * @type string |
| 4026 * @default '' |
| 4027 */ |
| 4028 method: '', |
| 4029 |
| 4030 /** |
| 4031 * HTTP request headers to send. |
| 4032 * |
| 4033 * Example: |
| 4034 * |
| 4035 * <core-ajax |
| 4036 * auto |
| 4037 * url="http://somesite.com" |
| 4038 * headers='{"X-Requested-With": "XMLHttpRequest"}' |
| 4039 * handleAs="json" |
| 4040 * on-core-response="{{handleResponse}}"></core-ajax> |
| 4041 * |
| 4042 * @attribute headers |
| 4043 * @type Object |
| 4044 * @default null |
| 4045 */ |
| 4046 headers: null, |
| 4047 |
| 4048 /** |
| 4049 * Optional raw body content to send when method === "POST". |
| 4050 * |
| 4051 * Example: |
| 4052 * |
| 4053 * <core-ajax method="POST" auto url="http://somesite.com" |
| 4054 * body='{"foo":1, "bar":2}'> |
| 4055 * </core-ajax> |
| 4056 * |
| 4057 * @attribute body |
| 4058 * @type Object |
| 4059 * @default null |
| 4060 */ |
| 4061 body: null, |
| 4062 |
| 4063 /** |
| 4064 * Content type to use when sending data. |
| 4065 * |
| 4066 * @attribute contentType |
| 4067 * @type string |
| 4068 * @default 'application/x-www-form-urlencoded' |
| 4069 */ |
| 4070 contentType: 'application/x-www-form-urlencoded', |
| 4071 |
| 4072 /** |
| 4073 * Set the withCredentials flag on the request. |
| 4074 * |
| 4075 * @attribute withCredentials |
| 4076 * @type boolean |
| 4077 * @default false |
| 4078 */ |
| 4079 withCredentials: false, |
| 4080 |
| 4081 ready: function() { |
| 4082 this.xhr = document.createElement('core-xhr'); |
| 4083 }, |
| 4084 |
| 4085 receive: function(response, xhr) { |
| 4086 if (this.isSuccess(xhr)) { |
| 4087 this.processResponse(xhr); |
| 4088 } else { |
| 4089 this.error(xhr); |
| 4090 } |
| 4091 this.complete(xhr); |
| 4092 }, |
| 4093 |
| 4094 isSuccess: function(xhr) { |
| 4095 var status = xhr.status || 0; |
| 4096 return !status || (status >= 200 && status < 300); |
| 4097 }, |
| 4098 |
| 4099 processResponse: function(xhr) { |
| 4100 var response = this.evalResponse(xhr); |
| 4101 this.response = response; |
| 4102 this.fire('core-response', {response: response, xhr: xhr}); |
| 4103 }, |
| 4104 |
| 4105 error: function(xhr) { |
| 4106 var response = xhr.status + ': ' + xhr.responseText; |
| 4107 this.fire('core-error', {response: response, xhr: xhr}); |
| 4108 }, |
| 4109 |
| 4110 complete: function(xhr) { |
| 4111 this.fire('core-complete', {response: xhr.status, xhr: xhr}); |
| 4112 }, |
| 4113 |
| 4114 evalResponse: function(xhr) { |
| 4115 return this[(this.handleAs || 'text') + 'Handler'](xhr); |
| 4116 }, |
| 4117 |
| 4118 xmlHandler: function(xhr) { |
| 4119 return xhr.responseXML; |
| 4120 }, |
| 4121 |
| 4122 textHandler: function(xhr) { |
| 4123 return xhr.responseText; |
| 4124 }, |
| 4125 |
| 4126 jsonHandler: function(xhr) { |
| 4127 var r = xhr.responseText; |
| 4128 try { |
| 4129 return JSON.parse(r); |
| 4130 } catch (x) { |
| 4131 return r; |
| 4132 } |
| 4133 }, |
| 4134 |
| 4135 documentHandler: function(xhr) { |
| 4136 return xhr.response; |
| 4137 }, |
| 4138 |
| 4139 blobHandler: function(xhr) { |
| 4140 return xhr.response; |
| 4141 }, |
| 4142 |
| 4143 arraybufferHandler: function(xhr) { |
| 4144 return xhr.response; |
| 4145 }, |
| 4146 |
| 4147 urlChanged: function() { |
| 4148 if (!this.handleAs) { |
| 4149 var ext = String(this.url).split('.').pop(); |
| 4150 switch (ext) { |
| 4151 case 'json': |
| 4152 this.handleAs = 'json'; |
| 4153 break; |
| 4154 } |
| 4155 } |
| 4156 this.autoGo(); |
| 4157 }, |
| 4158 |
| 4159 paramsChanged: function() { |
| 4160 this.autoGo(); |
| 4161 }, |
| 4162 |
| 4163 autoChanged: function() { |
| 4164 this.autoGo(); |
| 4165 }, |
| 4166 |
| 4167 // TODO(sorvell): multiple side-effects could call autoGo |
| 4168 // during one micro-task, use a job to have only one action |
| 4169 // occur |
| 4170 autoGo: function() { |
| 4171 if (this.auto) { |
| 4172 this.goJob = this.job(this.goJob, this.go, 0); |
| 4173 } |
| 4174 }, |
| 4175 |
| 4176 /** |
| 4177 * Performs an Ajax request to the specified URL. |
| 4178 * |
| 4179 * @method go |
| 4180 */ |
| 4181 go: function() { |
| 4182 var args = this.xhrArgs || {}; |
| 4183 // TODO(sjmiles): we may want XHR to default to POST if body is set |
| 4184 args.body = this.body || args.body; |
| 4185 args.params = this.params || args.params; |
| 4186 if (args.params && typeof(args.params) == 'string') { |
| 4187 args.params = JSON.parse(args.params); |
| 4188 } |
| 4189 args.headers = this.headers || args.headers || {}; |
| 4190 if (args.headers && typeof(args.headers) == 'string') { |
| 4191 args.headers = JSON.parse(args.headers); |
| 4192 } |
| 4193 if (this.contentType) { |
| 4194 args.headers['content-type'] = this.contentType; |
| 4195 } |
| 4196 if (this.handleAs === 'arraybuffer' || this.handleAs === 'blob' || |
| 4197 this.handleAs === 'document') { |
| 4198 args.responseType = this.handleAs; |
| 4199 } |
| 4200 args.withCredentials = this.withCredentials; |
| 4201 args.callback = this.receive.bind(this); |
| 4202 args.url = this.url; |
| 4203 args.method = this.method; |
| 4204 return args.url && this.xhr.request(args); |
| 4205 } |
| 4206 |
| 4207 }); |
| 4208 |
| 4209 </script> |
| 4210 </polymer-element> |
| 4211 |
| 4212 |
| 4213 <!-- |
| 4214 Scrapes source documentation data from input text or url. |
| 4215 |
| 4216 @class context-free-parser |
| 4217 --> |
| 4218 <polymer-element name="context-free-parser" attributes="url text data" assetpath
="../context-free-parser/"> |
| 4219 <template> |
| 4220 |
| 4221 <core-ajax url="{{url}}" response="{{text}}" auto=""></core-ajax> |
| 4222 |
| 4223 </template> |
| 4224 <script> |
| 4225 |
| 4226 Polymer('context-free-parser', { |
| 4227 |
| 4228 text: null, |
| 4229 |
| 4230 textChanged: function() { |
| 4231 if (this.text) { |
| 4232 var entities = ContextFreeParser.parse(this.text); |
| 4233 if (!entities || entities.length === 0) { |
| 4234 entities = [ |
| 4235 {name: this.url.split('/').pop(), description: '**Undocumented**'} |
| 4236 ]; |
| 4237 } |
| 4238 this.data = { classes: entities }; |
| 4239 } |
| 4240 }, |
| 4241 |
| 4242 dataChanged: function() { |
| 4243 this.fire('data-ready'); |
| 4244 } |
| 4245 |
| 4246 }); |
| 4247 |
| 4248 </script> |
| 4249 </polymer-element> |
| 4250 |
| 4251 |
| 4252 <!-- |
| 4253 |
| 4254 Displays formatted source documentation scraped from input urls. |
| 4255 |
| 4256 @element core-doc-page |
| 4257 --> |
| 4258 |
| 4259 <polymer-element name="core-doc-page" attributes="data" assetpath="../core-doc-v
iewer/elements/"> |
| 4260 |
| 4261 <!-- |
| 4262 |
| 4263 Set url to add documentation from that location to the view. |
| 4264 |
| 4265 @attribute url |
| 4266 @type String |
| 4267 --> |
| 4268 |
| 4269 <template> |
| 4270 |
| 4271 <style>/* |
| 4272 |
| 4273 Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiac
s.Org> |
| 4274 |
| 4275 */ |
| 4276 |
| 4277 .hljs { |
| 4278 display: block; padding: 0.5em; |
| 4279 background: #F0F0F0; |
| 4280 } |
| 4281 |
| 4282 .hljs, |
| 4283 .hljs-subst, |
| 4284 .hljs-tag .hljs-title, |
| 4285 .lisp .hljs-title, |
| 4286 .clojure .hljs-built_in, |
| 4287 .nginx .hljs-title { |
| 4288 color: black; |
| 4289 } |
| 4290 |
| 4291 .hljs-string, |
| 4292 .hljs-title, |
| 4293 .hljs-constant, |
| 4294 .hljs-parent, |
| 4295 .hljs-tag .hljs-value, |
| 4296 .hljs-rules .hljs-value, |
| 4297 .hljs-rules .hljs-value .hljs-number, |
| 4298 .hljs-preprocessor, |
| 4299 .hljs-pragma, |
| 4300 .haml .hljs-symbol, |
| 4301 .ruby .hljs-symbol, |
| 4302 .ruby .hljs-symbol .hljs-string, |
| 4303 .hljs-aggregate, |
| 4304 .hljs-template_tag, |
| 4305 .django .hljs-variable, |
| 4306 .smalltalk .hljs-class, |
| 4307 .hljs-addition, |
| 4308 .hljs-flow, |
| 4309 .hljs-stream, |
| 4310 .bash .hljs-variable, |
| 4311 .apache .hljs-tag, |
| 4312 .apache .hljs-cbracket, |
| 4313 .tex .hljs-command, |
| 4314 .tex .hljs-special, |
| 4315 .erlang_repl .hljs-function_or_atom, |
| 4316 .asciidoc .hljs-header, |
| 4317 .markdown .hljs-header, |
| 4318 .coffeescript .hljs-attribute { |
| 4319 color: #800; |
| 4320 } |
| 4321 |
| 4322 .smartquote, |
| 4323 .hljs-comment, |
| 4324 .hljs-annotation, |
| 4325 .hljs-template_comment, |
| 4326 .diff .hljs-header, |
| 4327 .hljs-chunk, |
| 4328 .asciidoc .hljs-blockquote, |
| 4329 .markdown .hljs-blockquote { |
| 4330 color: #888; |
| 4331 } |
| 4332 |
| 4333 .hljs-number, |
| 4334 .hljs-date, |
| 4335 .hljs-regexp, |
| 4336 .hljs-literal, |
| 4337 .hljs-hexcolor, |
| 4338 .smalltalk .hljs-symbol, |
| 4339 .smalltalk .hljs-char, |
| 4340 .go .hljs-constant, |
| 4341 .hljs-change, |
| 4342 .lasso .hljs-variable, |
| 4343 .makefile .hljs-variable, |
| 4344 .asciidoc .hljs-bullet, |
| 4345 .markdown .hljs-bullet, |
| 4346 .asciidoc .hljs-link_url, |
| 4347 .markdown .hljs-link_url { |
| 4348 color: #080; |
| 4349 } |
| 4350 |
| 4351 .hljs-label, |
| 4352 .hljs-javadoc, |
| 4353 .ruby .hljs-string, |
| 4354 .hljs-decorator, |
| 4355 .hljs-filter .hljs-argument, |
| 4356 .hljs-localvars, |
| 4357 .hljs-array, |
| 4358 .hljs-attr_selector, |
| 4359 .hljs-important, |
| 4360 .hljs-pseudo, |
| 4361 .hljs-pi, |
| 4362 .haml .hljs-bullet, |
| 4363 .hljs-doctype, |
| 4364 .hljs-deletion, |
| 4365 .hljs-envvar, |
| 4366 .hljs-shebang, |
| 4367 .apache .hljs-sqbracket, |
| 4368 .nginx .hljs-built_in, |
| 4369 .tex .hljs-formula, |
| 4370 .erlang_repl .hljs-reserved, |
| 4371 .hljs-prompt, |
| 4372 .asciidoc .hljs-link_label, |
| 4373 .markdown .hljs-link_label, |
| 4374 .vhdl .hljs-attribute, |
| 4375 .clojure .hljs-attribute, |
| 4376 .asciidoc .hljs-attribute, |
| 4377 .lasso .hljs-attribute, |
| 4378 .coffeescript .hljs-property, |
| 4379 .hljs-phony { |
| 4380 color: #88F |
| 4381 } |
| 4382 |
| 4383 .hljs-keyword, |
| 4384 .hljs-id, |
| 4385 .hljs-title, |
| 4386 .hljs-built_in, |
| 4387 .hljs-aggregate, |
| 4388 .css .hljs-tag, |
| 4389 .hljs-javadoctag, |
| 4390 .hljs-phpdoc, |
| 4391 .hljs-yardoctag, |
| 4392 .smalltalk .hljs-class, |
| 4393 .hljs-winutils, |
| 4394 .bash .hljs-variable, |
| 4395 .apache .hljs-tag, |
| 4396 .go .hljs-typename, |
| 4397 .tex .hljs-command, |
| 4398 .asciidoc .hljs-strong, |
| 4399 .markdown .hljs-strong, |
| 4400 .hljs-request, |
| 4401 .hljs-status { |
| 4402 font-weight: bold; |
| 4403 } |
| 4404 |
| 4405 .asciidoc .hljs-emphasis, |
| 4406 .markdown .hljs-emphasis { |
| 4407 font-style: italic; |
| 4408 } |
| 4409 |
| 4410 .nginx .hljs-built_in { |
| 4411 font-weight: normal; |
| 4412 } |
| 4413 |
| 4414 .coffeescript .javascript, |
| 4415 .javascript .xml, |
| 4416 .lasso .markup, |
| 4417 .tex .hljs-formula, |
| 4418 .xml .javascript, |
| 4419 .xml .vbscript, |
| 4420 .xml .css, |
| 4421 .xml .hljs-cdata { |
| 4422 opacity: 0.5; |
| 4423 } |
| 4424 </style> |
| 4425 <style>:host { |
| 4426 display: block; |
| 4427 position: relative; |
| 4428 } |
| 4429 |
| 4430 #panel { |
| 4431 position: absolute; |
| 4432 top: 0; |
| 4433 left: 0; |
| 4434 height: 100%; |
| 4435 width: 100%; |
| 4436 } |
| 4437 |
| 4438 .main { |
| 4439 padding: 0 72px; |
| 4440 max-width: 832px; |
| 4441 margin: 0 auto; |
| 4442 } |
| 4443 |
| 4444 markedjs-element { |
| 4445 display: block; |
| 4446 } |
| 4447 |
| 4448 h1 { |
| 4449 font-size: 52px; |
| 4450 color: #E91E63 |
| 4451 } |
| 4452 |
| 4453 .element { |
| 4454 font-size: 21px; |
| 4455 } |
| 4456 |
| 4457 .name { |
| 4458 /* typography */ |
| 4459 color: white; |
| 4460 /* font-size: 14px; */ |
| 4461 font-size: 12px; |
| 4462 font-weight: bold; |
| 4463 text-decoration: none; |
| 4464 /* colors / effects */ |
| 4465 background-color: #999; |
| 4466 box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.1); |
| 4467 box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1); |
| 4468 border-radius: 2px; |
| 4469 cursor: pointer; |
| 4470 /* metrics */ |
| 4471 display: inline-block; |
| 4472 padding: 4px 12px 5px 12px; |
| 4473 margin: 4px 0; |
| 4474 } |
| 4475 |
| 4476 .ntitle { |
| 4477 font-size: 26px; |
| 4478 padding-bottom: 4px; |
| 4479 border-bottom: 1px solid whitesmoke; |
| 4480 } |
| 4481 |
| 4482 .box { |
| 4483 margin-bottom: 40px; |
| 4484 } |
| 4485 |
| 4486 .top pre { |
| 4487 padding: 12px 13px; |
| 4488 background-color: #f8f8f8; |
| 4489 } |
| 4490 |
| 4491 code { |
| 4492 font-family: Consolas, monospace; |
| 4493 border: 1px solid #ddd; |
| 4494 background-color: #f8f8f8; |
| 4495 border-radius: 3px; |
| 4496 padding: 0 3px; |
| 4497 } |
| 4498 |
| 4499 pre code { |
| 4500 max-width: 832px; |
| 4501 white-space: pre-wrap; |
| 4502 overflow: hidden; |
| 4503 border: none; |
| 4504 } |
| 4505 |
| 4506 /**/ |
| 4507 |
| 4508 .details { |
| 4509 display: flex; |
| 4510 } |
| 4511 |
| 4512 .details-name { |
| 4513 flex: 1; |
| 4514 } |
| 4515 |
| 4516 .details-info { |
| 4517 flex: 2; |
| 4518 } |
| 4519 |
| 4520 .attribute-box { |
| 4521 } |
| 4522 |
| 4523 .attribute-box .details { |
| 4524 background-color: #FFF9C4; |
| 4525 padding: 8px 16px; |
| 4526 border-bottom: 1px solid #D1CCA1; |
| 4527 } |
| 4528 |
| 4529 .attribute-box .ntitle { |
| 4530 padding: 24px 16px; |
| 4531 } |
| 4532 |
| 4533 .attribute-box code { |
| 4534 color: #FFAB40; |
| 4535 border: none; |
| 4536 background-color: transparent; |
| 4537 border-radius: none; |
| 4538 padding: 0; |
| 4539 font-size: 1.2em; |
| 4540 } |
| 4541 |
| 4542 .property-box .ntitle { |
| 4543 padding: 24px 16px; |
| 4544 } |
| 4545 |
| 4546 .property-box code { |
| 4547 color: #4285F4; |
| 4548 border: none; |
| 4549 background-color: transparent; |
| 4550 border-radius: none; |
| 4551 padding: 0; |
| 4552 font-size: 1.2em; |
| 4553 } |
| 4554 |
| 4555 .property-box .details { |
| 4556 background-color: lightblue; |
| 4557 padding: 8px 16px; |
| 4558 border-bottom: 1px solid #D1CCA1; |
| 4559 } |
| 4560 |
| 4561 .method-box { |
| 4562 } |
| 4563 |
| 4564 .method-box .details { |
| 4565 background-color: #F0F4C3; |
| 4566 padding: 8px 16px; |
| 4567 border-bottom: 1px solid #D1CCA1; |
| 4568 } |
| 4569 |
| 4570 .method-box .ntitle { |
| 4571 background-color: #9E9D24; |
| 4572 padding: 24px 16px; |
| 4573 } |
| 4574 |
| 4575 .method-box code { |
| 4576 color: #9E9D24; |
| 4577 border: none; |
| 4578 background-color: transparent; |
| 4579 border-radius: none; |
| 4580 padding: 0; |
| 4581 font-size: 1.2em; |
| 4582 } |
| 4583 |
| 4584 .event-box { |
| 4585 } |
| 4586 |
| 4587 .event-box .details { |
| 4588 background-color: #B2DFDB; |
| 4589 padding: 8px 16px; |
| 4590 border-bottom: 1px solid #92B7B3; |
| 4591 } |
| 4592 |
| 4593 .event-box .ntitle { |
| 4594 background-color: #009688; |
| 4595 padding: 24px 16px; |
| 4596 } |
| 4597 |
| 4598 .event-box code { |
| 4599 color: #009688; |
| 4600 border: none; |
| 4601 background-color: transparent; |
| 4602 border-radius: none; |
| 4603 padding: 0; |
| 4604 font-size: 1.2em; |
| 4605 } |
| 4606 |
| 4607 </style> |
| 4608 |
| 4609 <core-header-panel id="panel" mode="waterfall"> |
| 4610 |
| 4611 <!--<core-toolbar> |
| 4612 <span style="margin: 0 72px;">{{data.name}}</span> |
| 4613 </core-toolbar>--> |
| 4614 |
| 4615 <div class="main" on-marked-js-highlight="{{hilight}}"> |
| 4616 |
| 4617 <h1 style="font-size: 52px; color: #E91E63;"> |
| 4618 {{data.name}} |
| 4619 </h1> |
| 4620 |
| 4621 <p> |
| 4622 <core-icon icon="home"></core-icon> <a href="{{data | homepageFil
ter}}">Home Page</a> |
| 4623 </p> |
| 4624 |
| 4625 <template if="{{data.extends}}"> |
| 4626 <section class="box"> |
| 4627 <div class="ntitle">Extends</div> |
| 4628 <p><a href="#{{data.extends}}">{{data.extends}}</a></p> |
| 4629 </section> |
| 4630 </template> |
| 4631 |
| 4632 <template if="{{data.description}}"> |
| 4633 <section class="box top"> |
| 4634 <div class="ntitle">Summary</div> |
| 4635 <marked-element text="{{data.description}}"></marked-element> |
| 4636 </section> |
| 4637 </template> |
| 4638 |
| 4639 <template if="{{data.attributes.length}}"> |
| 4640 <section class="box attribute-box"> |
| 4641 <div class="ntitle" style="background-color: #FFAB40; color: white;"
>Attributes</div> |
| 4642 <template repeat="{{data.attributes}}"> |
| 4643 <div class="details"> |
| 4644 <div class="details-name"> |
| 4645 <p><code>{{name}}</code></p> |
| 4646 </div> |
| 4647 <div class="details-info"> |
| 4648 <p><code>{{type}}</code></p> |
| 4649 <marked-element text="{{description}}"></marked-element> |
| 4650 </div> |
| 4651 </div> |
| 4652 </template> |
| 4653 </section> |
| 4654 </template> |
| 4655 |
| 4656 <template if="{{data.properties.length}}"> |
| 4657 <section class="box property-box"> |
| 4658 <div class="ntitle" style="background-color: #4285F4; color: white;"
>Properties</div> |
| 4659 <template repeat="{{data.properties}}"> |
| 4660 <div class="details"> |
| 4661 <div class="details-name"> |
| 4662 <p><code>{{name}}</code></p> |
| 4663 </div> |
| 4664 <div class="details-info"> |
| 4665 <p><code>{{type}}</code></p> |
| 4666 <marked-element text="{{description}}"></marked-element> |
| 4667 </div> |
| 4668 </div> |
| 4669 </template> |
| 4670 </section> |
| 4671 </template> |
| 4672 |
| 4673 <template if="{{data.events.length}}"> |
| 4674 <section class="box event-box"> |
| 4675 <div class="ntitle" style="color: white;">Events</div> |
| 4676 <template repeat="{{data.events}}"> |
| 4677 <div class="details"> |
| 4678 <div class="details-name"> |
| 4679 <p><code>{{name}}</code></p> |
| 4680 </div> |
| 4681 <div class="details-info"> |
| 4682 <marked-element text="{{description}}"></marked-element> |
| 4683 </div> |
| 4684 </div> |
| 4685 </template> |
| 4686 </section> |
| 4687 </template> |
| 4688 |
| 4689 <template if="{{data.methods.length}}"> |
| 4690 <section class="box method-box"> |
| 4691 <div class="ntitle" style="color: white;">Methods</div> |
| 4692 <template repeat="{{data.methods}}"> |
| 4693 <div class="details"> |
| 4694 <div class="details-name"> |
| 4695 <p><code>{{name}}</code></p> |
| 4696 </div> |
| 4697 <div class="details-info"> |
| 4698 <marked-element text="{{description}}"></marked-element> |
| 4699 </div> |
| 4700 </div> |
| 4701 </template> |
| 4702 </section> |
| 4703 </template> |
| 4704 |
| 4705 </div> |
| 4706 |
| 4707 </core-header-panel> |
| 4708 |
| 4709 </template> |
| 4710 |
| 4711 <script> |
| 4712 |
| 4713 Polymer('core-doc-page', { |
| 4714 |
| 4715 hilight: function(event, detail, sender) { |
| 4716 detail.code = hljs.highlightAuto(detail.code).value; |
| 4717 }, |
| 4718 |
| 4719 homepageFilter: function(data) { |
| 4720 if (!data) { |
| 4721 return ''; |
| 4722 } |
| 4723 if (!data.homepage || data.homepage === 'github.io') { |
| 4724 return '//polymer.github.io/' + data.name; |
| 4725 } else { |
| 4726 return data.homepage; |
| 4727 } |
| 4728 } |
| 4729 |
| 4730 }); |
| 4731 |
| 4732 </script> |
| 4733 |
| 4734 </polymer-element> |
| 4735 |
| 4736 |
| 4737 |
| 4738 |
| 4739 <!-- |
| 4740 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 4741 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 4742 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 4743 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 4744 Code distributed by Google as part of the polymer project is also |
| 4745 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 4746 --> |
| 4747 |
| 4748 <!-- |
| 4749 `core-menu` is a selector which styles to looks like a menu. |
| 4750 |
| 4751 <core-menu selected="0"> |
| 4752 <core-item icon="settings" label="Settings"></core-item> |
| 4753 <core-item icon="dialog" label="Dialog"></core-item> |
| 4754 <core-item icon="search" label="Search"></core-item> |
| 4755 </core-menu> |
| 4756 |
| 4757 When an item is selected the `core-selected` class is added to it. The user can |
| 4758 use the class to add more stylings to the selected item. |
| 4759 |
| 4760 core-item.core-selected { |
| 4761 color: red; |
| 4762 } |
| 4763 |
| 4764 The `selectedItem` property references the selected item. |
| 4765 |
| 4766 <core-menu selected="0" selectedItem="{{item}}"> |
| 4767 <core-item icon="settings" label="Settings"></core-item> |
| 4768 <core-item icon="dialog" label="Dialog"></core-item> |
| 4769 <core-item icon="search" label="Search"></core-item> |
| 4770 </core-menu> |
| 4771 |
| 4772 <div>selected label: {{item.label}}</div> |
| 4773 |
| 4774 The `core-select` event signals selection change. |
| 4775 |
| 4776 <core-menu selected="0" on-core-select="{{selectAction}}"> |
| 4777 <core-item icon="settings" label="Settings"></core-item> |
| 4778 <core-item icon="dialog" label="Dialog"></core-item> |
| 4779 <core-item icon="search" label="Search"></core-item> |
| 4780 </core-menu> |
| 4781 |
| 4782 ... |
| 4783 |
| 4784 selectAction: function(e, detail) { |
| 4785 if (detail.isSelected) { |
| 4786 var selectedItem = detail.item; |
| 4787 ... |
| 4788 } |
| 4789 } |
| 4790 |
| 4791 @group Polymer Core Elements |
| 4792 @element core-menu |
| 4793 @extends core-selector |
| 4794 --> |
| 4795 |
| 4796 <!-- |
| 4797 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 4798 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 4799 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 4800 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 4801 Code distributed by Google as part of the polymer project is also |
| 4802 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 4803 --> |
| 4804 |
| 4805 <!-- |
| 4806 @group Polymer Core Elements |
| 4807 |
| 4808 `<core-selector>` is used to manage a list of elements that can be selected. |
| 4809 |
| 4810 The attribute `selected` indicates which item element is being selected. |
| 4811 The attribute `multi` indicates if multiple items can be selected at once. |
| 4812 Tapping on the item element would fire `core-activate` event. Use |
| 4813 `core-select` event to listen for selection changes. |
| 4814 |
| 4815 Example: |
| 4816 |
| 4817 <core-selector selected="0"> |
| 4818 <div>Item 1</div> |
| 4819 <div>Item 2</div> |
| 4820 <div>Item 3</div> |
| 4821 </core-selector> |
| 4822 |
| 4823 `<core-selector>` is not styled. Use the `core-selected` CSS class to style the
selected element. |
| 4824 |
| 4825 <style> |
| 4826 .item.core-selected { |
| 4827 background: #eee; |
| 4828 } |
| 4829 </style> |
| 4830 ... |
| 4831 <core-selector> |
| 4832 <div class="item">Item 1</div> |
| 4833 <div class="item">Item 2</div> |
| 4834 <div class="item">Item 3</div> |
| 4835 </core-selector> |
| 4836 |
| 4837 @element core-selector |
| 4838 @status stable |
| 4839 @homepage github.io |
| 4840 --> |
| 4841 |
| 4842 <!-- |
| 4843 Fired when an item's selection state is changed. This event is fired both |
| 4844 when an item is selected or deselected. The `isSelected` detail property |
| 4845 contains the selection state. |
| 4846 |
| 4847 @event core-select |
| 4848 @param {Object} detail |
| 4849 @param {boolean} detail.isSelected true for selection and false for deselectio
n |
| 4850 @param {Object} detail.item the item element |
| 4851 --> |
| 4852 <!-- |
| 4853 Fired when an item element is tapped. |
| 4854 |
| 4855 @event core-activate |
| 4856 @param {Object} detail |
| 4857 @param {Object} detail.item the item element |
| 4858 --> |
| 4859 |
| 4860 |
| 4861 <!-- |
| 4862 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 4863 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 4864 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 4865 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 4866 Code distributed by Google as part of the polymer project is also |
| 4867 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 4868 --> |
| 4869 <!-- |
| 4870 @group Polymer Core Elements |
| 4871 |
| 4872 The `<core-selection>` element is used to manage selection state. It has no |
| 4873 visual appearance and is typically used in conjunction with another element. |
| 4874 For example, [core-selector](../core-selector) |
| 4875 use a `<core-selection>` to manage selection. |
| 4876 |
| 4877 To mark an item as selected, call the `select(item)` method on |
| 4878 `<core-selection>`. The item itself is an argument to this method. |
| 4879 |
| 4880 The `<core-selection>`element manages selection state for any given set of |
| 4881 items. When an item is selected, the `core-select` event is fired. |
| 4882 |
| 4883 The attribute `multi` indicates if multiple items can be selected at once. |
| 4884 |
| 4885 Example: |
| 4886 |
| 4887 <polymer-element name="selection-example"> |
| 4888 <template> |
| 4889 <style> |
| 4890 polyfill-next-selector { content: ':host > .selected'; } |
| 4891 ::content > .selected { |
| 4892 font-weight: bold; |
| 4893 font-style: italic; |
| 4894 } |
| 4895 </style> |
| 4896 <ul on-tap="{{itemTapAction}}"> |
| 4897 <content></content> |
| 4898 </ul> |
| 4899 <core-selection id="selection" multi |
| 4900 on-core-select="{{selectAction}}"></core-selection> |
| 4901 </template> |
| 4902 <script> |
| 4903 Polymer('selection-example', { |
| 4904 itemTapAction: function(e, detail, sender) { |
| 4905 this.$.selection.select(e.target); |
| 4906 }, |
| 4907 selectAction: function(e, detail, sender) { |
| 4908 detail.item.classList.toggle('selected', detail.isSelected); |
| 4909 } |
| 4910 }); |
| 4911 </script> |
| 4912 </polymer-element> |
| 4913 |
| 4914 <selection-example> |
| 4915 <li>Red</li> |
| 4916 <li>Green</li> |
| 4917 <li>Blue</li> |
| 4918 </selection-example> |
| 4919 |
| 4920 @element core-selection |
| 4921 --> |
| 4922 |
| 4923 <!-- |
| 4924 Fired when an item's selection state is changed. This event is fired both |
| 4925 when an item is selected or deselected. The `isSelected` detail property |
| 4926 contains the selection state. |
| 4927 |
| 4928 @event core-select |
| 4929 @param {Object} detail |
| 4930 @param {boolean} detail.isSelected true for selection and false for de-selecti
on |
| 4931 @param {Object} detail.item the item element |
| 4932 --> |
| 4933 |
| 4934 |
| 4935 <polymer-element name="core-selection" attributes="multi" hidden assetpath="../c
ore-selection/"> |
| 4936 <script> |
| 4937 Polymer('core-selection', { |
| 4938 /** |
| 4939 * If true, multiple selections are allowed. |
| 4940 * |
| 4941 * @attribute multi |
| 4942 * @type boolean |
| 4943 * @default false |
| 4944 */ |
| 4945 multi: false, |
| 4946 ready: function() { |
| 4947 this.clear(); |
| 4948 }, |
| 4949 clear: function() { |
| 4950 this.selection = []; |
| 4951 }, |
| 4952 /** |
| 4953 * Retrieves the selected item(s). |
| 4954 * @method getSelection |
| 4955 * @returns Returns the selected item(s). If the multi property is true, |
| 4956 * getSelection will return an array, otherwise it will return |
| 4957 * the selected item or undefined if there is no selection. |
| 4958 */ |
| 4959 getSelection: function() { |
| 4960 return this.multi ? this.selection : this.selection[0]; |
| 4961 }, |
| 4962 /** |
| 4963 * Indicates if a given item is selected. |
| 4964 * @method isSelected |
| 4965 * @param {any} item The item whose selection state should be checked. |
| 4966 * @returns Returns true if `item` is selected. |
| 4967 */ |
| 4968 isSelected: function(item) { |
| 4969 return this.selection.indexOf(item) >= 0; |
| 4970 }, |
| 4971 setItemSelected: function(item, isSelected) { |
| 4972 if (item !== undefined && item !== null) { |
| 4973 if (isSelected) { |
| 4974 this.selection.push(item); |
| 4975 } else { |
| 4976 var i = this.selection.indexOf(item); |
| 4977 if (i >= 0) { |
| 4978 this.selection.splice(i, 1); |
| 4979 } |
| 4980 } |
| 4981 this.fire("core-select", {isSelected: isSelected, item: item}); |
| 4982 } |
| 4983 }, |
| 4984 /** |
| 4985 * Set the selection state for a given `item`. If the multi property |
| 4986 * is true, then the selected state of `item` will be toggled; otherwise |
| 4987 * the `item` will be selected. |
| 4988 * @method select |
| 4989 * @param {any} item: The item to select. |
| 4990 */ |
| 4991 select: function(item) { |
| 4992 if (this.multi) { |
| 4993 this.toggle(item); |
| 4994 } else if (this.getSelection() !== item) { |
| 4995 this.setItemSelected(this.getSelection(), false); |
| 4996 this.setItemSelected(item, true); |
| 4997 } |
| 4998 }, |
| 4999 /** |
| 5000 * Toggles the selection state for `item`. |
| 5001 * @method toggle |
| 5002 * @param {any} item: The item to toggle. |
| 5003 */ |
| 5004 toggle: function(item) { |
| 5005 this.setItemSelected(item, !this.isSelected(item)); |
| 5006 } |
| 5007 }); |
| 5008 </script> |
| 5009 </polymer-element> |
| 5010 |
| 5011 |
| 5012 <polymer-element name="core-selector" attributes="selected multi valueattr selec
tedClass selectedProperty selectedAttribute selectedItem selectedModel selectedI
ndex notap target itemsSelector activateEvent" assetpath="../core-selector/"> |
| 5013 |
| 5014 <template> |
| 5015 <core-selection id="selection" multi="{{multi}}" on-core-select="{{selection
Select}}"></core-selection> |
| 5016 <content id="items" select="*"></content> |
| 5017 </template> |
| 5018 |
| 5019 <script> |
| 5020 |
| 5021 Polymer('core-selector', { |
| 5022 |
| 5023 /** |
| 5024 * Gets or sets the selected element. Default to use the index |
| 5025 * of the item element. |
| 5026 * |
| 5027 * If you want a specific attribute value of the element to be |
| 5028 * used instead of index, set "valueattr" to that attribute name. |
| 5029 * |
| 5030 * Example: |
| 5031 * |
| 5032 * <core-selector valueattr="label" selected="foo"> |
| 5033 * <div label="foo"></div> |
| 5034 * <div label="bar"></div> |
| 5035 * <div label="zot"></div> |
| 5036 * </core-selector> |
| 5037 * |
| 5038 * In multi-selection this should be an array of values. |
| 5039 * |
| 5040 * Example: |
| 5041 * |
| 5042 * <core-selector id="selector" valueattr="label" multi> |
| 5043 * <div label="foo"></div> |
| 5044 * <div label="bar"></div> |
| 5045 * <div label="zot"></div> |
| 5046 * </core-selector> |
| 5047 * |
| 5048 * this.$.selector.selected = ['foo', 'zot']; |
| 5049 * |
| 5050 * @attribute selected |
| 5051 * @type Object |
| 5052 * @default null |
| 5053 */ |
| 5054 selected: null, |
| 5055 |
| 5056 /** |
| 5057 * If true, multiple selections are allowed. |
| 5058 * |
| 5059 * @attribute multi |
| 5060 * @type boolean |
| 5061 * @default false |
| 5062 */ |
| 5063 multi: false, |
| 5064 |
| 5065 /** |
| 5066 * Specifies the attribute to be used for "selected" attribute. |
| 5067 * |
| 5068 * @attribute valueattr |
| 5069 * @type string |
| 5070 * @default 'name' |
| 5071 */ |
| 5072 valueattr: 'name', |
| 5073 |
| 5074 /** |
| 5075 * Specifies the CSS class to be used to add to the selected element. |
| 5076 * |
| 5077 * @attribute selectedClass |
| 5078 * @type string |
| 5079 * @default 'core-selected' |
| 5080 */ |
| 5081 selectedClass: 'core-selected', |
| 5082 |
| 5083 /** |
| 5084 * Specifies the property to be used to set on the selected element |
| 5085 * to indicate its active state. |
| 5086 * |
| 5087 * @attribute selectedProperty |
| 5088 * @type string |
| 5089 * @default '' |
| 5090 */ |
| 5091 selectedProperty: '', |
| 5092 |
| 5093 /** |
| 5094 * Specifies the property to be used to set on the selected element |
| 5095 * to indicate its active state. |
| 5096 * |
| 5097 * @attribute selectedProperty |
| 5098 * @type string |
| 5099 * @default 'active' |
| 5100 */ |
| 5101 selectedAttribute: 'active', |
| 5102 |
| 5103 /** |
| 5104 * Returns the currently selected element. In multi-selection this returns |
| 5105 * an array of selected elements. |
| 5106 * |
| 5107 * @attribute selectedItem |
| 5108 * @type Object |
| 5109 * @default null |
| 5110 */ |
| 5111 selectedItem: null, |
| 5112 |
| 5113 /** |
| 5114 * In single selection, this returns the model associated with the |
| 5115 * selected element. |
| 5116 * |
| 5117 * @attribute selectedModel |
| 5118 * @type Object |
| 5119 * @default null |
| 5120 */ |
| 5121 selectedModel: null, |
| 5122 |
| 5123 /** |
| 5124 * In single selection, this returns the selected index. |
| 5125 * |
| 5126 * @attribute selectedIndex |
| 5127 * @type number |
| 5128 * @default -1 |
| 5129 */ |
| 5130 selectedIndex: -1, |
| 5131 |
| 5132 /** |
| 5133 * The target element that contains items. If this is not set |
| 5134 * core-selector is the container. |
| 5135 * |
| 5136 * @attribute target |
| 5137 * @type Object |
| 5138 * @default null |
| 5139 */ |
| 5140 target: null, |
| 5141 |
| 5142 /** |
| 5143 * This can be used to query nodes from the target node to be used for |
| 5144 * selection items. Note this only works if the 'target' property is set. |
| 5145 * |
| 5146 * Example: |
| 5147 * |
| 5148 * <core-selector target="{{$.myForm}}" itemsSelector="input[type=radi
o]"></core-selector> |
| 5149 * <form id="myForm"> |
| 5150 * <label><input type="radio" name="color" value="red"> Red</label>
<br> |
| 5151 * <label><input type="radio" name="color" value="green"> Green</lab
el> <br> |
| 5152 * <label><input type="radio" name="color" value="blue"> Blue</label
> <br> |
| 5153 * <p>color = {{color}}</p> |
| 5154 * </form> |
| 5155 * |
| 5156 * @attribute itemSelector |
| 5157 * @type string |
| 5158 * @default '' |
| 5159 */ |
| 5160 itemsSelector: '', |
| 5161 |
| 5162 /** |
| 5163 * The event that would be fired from the item element to indicate |
| 5164 * it is being selected. |
| 5165 * |
| 5166 * @attribute activateEvent |
| 5167 * @type string |
| 5168 * @default 'tap' |
| 5169 */ |
| 5170 activateEvent: 'tap', |
| 5171 |
| 5172 /** |
| 5173 * Set this to true to disallow changing the selection via the |
| 5174 * `activateEvent`. |
| 5175 * |
| 5176 * @attribute notap |
| 5177 * @type boolean |
| 5178 * @default false |
| 5179 */ |
| 5180 notap: false, |
| 5181 |
| 5182 ready: function() { |
| 5183 this.activateListener = this.activateHandler.bind(this); |
| 5184 this.observer = new MutationObserver(this.updateSelected.bind(this)); |
| 5185 if (!this.target) { |
| 5186 this.target = this; |
| 5187 } |
| 5188 }, |
| 5189 |
| 5190 get items() { |
| 5191 if (!this.target) { |
| 5192 return []; |
| 5193 } |
| 5194 var nodes = this.target !== this ? (this.itemsSelector ? |
| 5195 this.target.querySelectorAll(this.itemsSelector) : |
| 5196 this.target.children) : this.$.items.getDistributedNodes(); |
| 5197 return Array.prototype.filter.call(nodes || [], function(n) { |
| 5198 return n && n.localName !== 'template'; |
| 5199 }); |
| 5200 }, |
| 5201 |
| 5202 targetChanged: function(old) { |
| 5203 if (old) { |
| 5204 this.removeListener(old); |
| 5205 this.observer.disconnect(); |
| 5206 this.clearSelection(); |
| 5207 } |
| 5208 if (this.target) { |
| 5209 this.addListener(this.target); |
| 5210 this.observer.observe(this.target, {childList: true}); |
| 5211 this.updateSelected(); |
| 5212 } |
| 5213 }, |
| 5214 |
| 5215 addListener: function(node) { |
| 5216 node.addEventListener(this.activateEvent, this.activateListener); |
| 5217 }, |
| 5218 |
| 5219 removeListener: function(node) { |
| 5220 node.removeEventListener(this.activateEvent, this.activateListener); |
| 5221 }, |
| 5222 |
| 5223 get selection() { |
| 5224 return this.$.selection.getSelection(); |
| 5225 }, |
| 5226 |
| 5227 selectedChanged: function() { |
| 5228 this.updateSelected(); |
| 5229 }, |
| 5230 |
| 5231 updateSelected: function() { |
| 5232 this.validateSelected(); |
| 5233 if (this.multi) { |
| 5234 this.clearSelection(); |
| 5235 this.selected && this.selected.forEach(function(s) { |
| 5236 this.valueToSelection(s); |
| 5237 }, this); |
| 5238 } else { |
| 5239 this.valueToSelection(this.selected); |
| 5240 } |
| 5241 }, |
| 5242 |
| 5243 validateSelected: function() { |
| 5244 // convert to an array for multi-selection |
| 5245 if (this.multi && !Array.isArray(this.selected) && |
| 5246 this.selected !== null && this.selected !== undefined) { |
| 5247 this.selected = [this.selected]; |
| 5248 } |
| 5249 }, |
| 5250 |
| 5251 clearSelection: function() { |
| 5252 if (this.multi) { |
| 5253 this.selection.slice().forEach(function(s) { |
| 5254 this.$.selection.setItemSelected(s, false); |
| 5255 }, this); |
| 5256 } else { |
| 5257 this.$.selection.setItemSelected(this.selection, false); |
| 5258 } |
| 5259 this.selectedItem = null; |
| 5260 this.$.selection.clear(); |
| 5261 }, |
| 5262 |
| 5263 valueToSelection: function(value) { |
| 5264 var item = (value === null || value === undefined) ? |
| 5265 null : this.items[this.valueToIndex(value)]; |
| 5266 this.$.selection.select(item); |
| 5267 }, |
| 5268 |
| 5269 updateSelectedItem: function() { |
| 5270 this.selectedItem = this.selection; |
| 5271 }, |
| 5272 |
| 5273 selectedItemChanged: function() { |
| 5274 if (this.selectedItem) { |
| 5275 var t = this.selectedItem.templateInstance; |
| 5276 this.selectedModel = t ? t.model : undefined; |
| 5277 } else { |
| 5278 this.selectedModel = null; |
| 5279 } |
| 5280 this.selectedIndex = this.selectedItem ? |
| 5281 parseInt(this.valueToIndex(this.selected)) : -1; |
| 5282 }, |
| 5283 |
| 5284 valueToIndex: function(value) { |
| 5285 // find an item with value == value and return it's index |
| 5286 for (var i=0, items=this.items, c; (c=items[i]); i++) { |
| 5287 if (this.valueForNode(c) == value) { |
| 5288 return i; |
| 5289 } |
| 5290 } |
| 5291 // if no item found, the value itself is probably the index |
| 5292 return value; |
| 5293 }, |
| 5294 |
| 5295 valueForNode: function(node) { |
| 5296 return node[this.valueattr] || node.getAttribute(this.valueattr); |
| 5297 }, |
| 5298 |
| 5299 // events fired from <core-selection> object |
| 5300 selectionSelect: function(e, detail) { |
| 5301 this.updateSelectedItem(); |
| 5302 if (detail.item) { |
| 5303 this.applySelection(detail.item, detail.isSelected); |
| 5304 } |
| 5305 }, |
| 5306 |
| 5307 applySelection: function(item, isSelected) { |
| 5308 if (this.selectedClass) { |
| 5309 item.classList.toggle(this.selectedClass, isSelected); |
| 5310 } |
| 5311 if (this.selectedProperty) { |
| 5312 item[this.selectedProperty] = isSelected; |
| 5313 } |
| 5314 if (this.selectedAttribute && item.setAttribute) { |
| 5315 if (isSelected) { |
| 5316 item.setAttribute(this.selectedAttribute, ''); |
| 5317 } else { |
| 5318 item.removeAttribute(this.selectedAttribute); |
| 5319 } |
| 5320 } |
| 5321 }, |
| 5322 |
| 5323 // event fired from host |
| 5324 activateHandler: function(e) { |
| 5325 if (!this.notap) { |
| 5326 var i = this.findDistributedTarget(e.target, this.items); |
| 5327 if (i >= 0) { |
| 5328 var item = this.items[i]; |
| 5329 var s = this.valueForNode(item) || i; |
| 5330 if (this.multi) { |
| 5331 if (this.selected) { |
| 5332 this.addRemoveSelected(s); |
| 5333 } else { |
| 5334 this.selected = [s]; |
| 5335 } |
| 5336 } else { |
| 5337 this.selected = s; |
| 5338 } |
| 5339 this.asyncFire('core-activate', {item: item}); |
| 5340 } |
| 5341 } |
| 5342 }, |
| 5343 |
| 5344 addRemoveSelected: function(value) { |
| 5345 var i = this.selected.indexOf(value); |
| 5346 if (i >= 0) { |
| 5347 this.selected.splice(i, 1); |
| 5348 } else { |
| 5349 this.selected.push(value); |
| 5350 } |
| 5351 this.valueToSelection(value); |
| 5352 }, |
| 5353 |
| 5354 findDistributedTarget: function(target, nodes) { |
| 5355 // find first ancestor of target (including itself) that |
| 5356 // is in nodes, if any |
| 5357 while (target && target != this) { |
| 5358 var i = Array.prototype.indexOf.call(nodes, target); |
| 5359 if (i >= 0) { |
| 5360 return i; |
| 5361 } |
| 5362 target = target.parentNode; |
| 5363 } |
| 5364 } |
| 5365 }); |
| 5366 </script> |
| 5367 </polymer-element> |
| 5368 |
| 5369 |
| 5370 <style shim-shadowdom="">/* |
| 5371 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 5372 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 5373 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 5374 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 5375 Code distributed by Google as part of the polymer project is also |
| 5376 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 5377 */ |
| 5378 |
| 5379 html /deep/ core-menu { |
| 5380 display: block; |
| 5381 margin: 12px; |
| 5382 } |
| 5383 |
| 5384 polyfill-next-selector { content: 'core-menu > core-item'; } |
| 5385 html /deep/ core-menu::shadow ::content > core-item { |
| 5386 cursor: default; |
| 5387 } |
| 5388 </style> |
| 5389 |
| 5390 <polymer-element name="core-menu" extends="core-selector" noscript="" assetpath=
"../core-menu/"></polymer-element> |
| 5391 |
| 5392 <!-- |
| 5393 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 5394 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 5395 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 5396 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 5397 Code distributed by Google as part of the polymer project is also |
| 5398 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 5399 --> |
| 5400 |
| 5401 <!-- |
| 5402 `core-item` is a simple line-item object: a label and/or an icon that can also |
| 5403 act as a link. |
| 5404 |
| 5405 Example: |
| 5406 |
| 5407 <core-item icon="settings" label="Settings"></core-item> |
| 5408 |
| 5409 To use as a link, put <a> element in the item. |
| 5410 |
| 5411 Example: |
| 5412 |
| 5413 <core-item icon="settings" label="Settings"> |
| 5414 <a href="#settings" target="_self"></a> |
| 5415 </core-item> |
| 5416 |
| 5417 @group Polymer Core Elements |
| 5418 @element core-item |
| 5419 @homepage github.io |
| 5420 --> |
| 5421 |
| 5422 |
| 5423 |
| 5424 <style shim-shadowdom="">/* |
| 5425 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 5426 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 5427 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 5428 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 5429 Code distributed by Google as part of the polymer project is also |
| 5430 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 5431 */ |
| 5432 |
| 5433 html /deep/ core-item { |
| 5434 display: block; |
| 5435 position: relative; |
| 5436 height: 40px; |
| 5437 white-space: nowrap; |
| 5438 } |
| 5439 |
| 5440 html /deep/ core-item.core-selected { |
| 5441 font-weight: bold; |
| 5442 } |
| 5443 |
| 5444 html /deep/ core-item::shadow core-icon { |
| 5445 margin: 0 16px 0 4px; |
| 5446 } |
| 5447 |
| 5448 html /deep/ core-item::shadow ::content > a { |
| 5449 position: absolute; |
| 5450 top: 0; |
| 5451 right: 0; |
| 5452 bottom: 0; |
| 5453 left: 0; |
| 5454 } |
| 5455 </style> |
| 5456 |
| 5457 <polymer-element name="core-item" attributes="label icon src" horizontal="" cent
er="" layout="" assetpath="../core-item/"> |
| 5458 <template> |
| 5459 |
| 5460 <core-icon src="{{src}}" icon="{{icon}}" hidden?="{{!src && !icon}}"><
/core-icon>{{label}}<content></content> |
| 5461 |
| 5462 </template> |
| 5463 <script> |
| 5464 |
| 5465 Polymer('core-item', { |
| 5466 |
| 5467 /** |
| 5468 * The URL of an image for the icon. |
| 5469 * |
| 5470 * @attribute src |
| 5471 * @type string |
| 5472 * @default '' |
| 5473 */ |
| 5474 |
| 5475 /** |
| 5476 * Specifies the icon from the Polymer icon set. |
| 5477 * |
| 5478 * @attribute icon |
| 5479 * @type string |
| 5480 * @default '' |
| 5481 */ |
| 5482 |
| 5483 /** |
| 5484 * Specifies the label for the menu item. |
| 5485 * |
| 5486 * @attribute label |
| 5487 * @type string |
| 5488 * @default '' |
| 5489 */ |
| 5490 |
| 5491 }); |
| 5492 |
| 5493 </script> |
| 5494 </polymer-element> |
| 5495 |
| 5496 |
| 5497 <!-- |
| 5498 @class core-doc-toc |
| 5499 --> |
| 5500 |
| 5501 <polymer-element name="core-doc-toc" attributes="data selected" assetpath="../co
re-doc-viewer/elements/"> |
| 5502 |
| 5503 <template> |
| 5504 |
| 5505 <style>:host { |
| 5506 display: block; |
| 5507 position: relative; |
| 5508 border-right: 1px solid silver; |
| 5509 } |
| 5510 |
| 5511 core-header-panel { |
| 5512 position: absolute; |
| 5513 top: 0; |
| 5514 left: 0; |
| 5515 height: 100%; |
| 5516 width: 100%; |
| 5517 } |
| 5518 |
| 5519 core-toolbar { |
| 5520 background-color: #eeeeee; |
| 5521 } |
| 5522 </style> |
| 5523 |
| 5524 <core-header-panel mode="waterfall"> |
| 5525 |
| 5526 <!-- <core-toolbar theme="core-light-theme"> |
| 5527 <core-icon-button icon="menu"></core-icon-button> |
| 5528 <span core-flex>Topics</span> |
| 5529 <core-icon-button icon="search" on-tap="{{searchAction}}"></core-icon-bu
tton> |
| 5530 </core-toolbar> |
| 5531 |
| 5532 <core-toolbar id="searchBar" style="background-color: #C2185B; position: a
bsolute; top: 0; left: 0; right: 0; opacity: 0; display: none;" class="seamed" t
heme="core-dark-theme"> |
| 5533 <core-icon-button icon="search"></core-icon-button> |
| 5534 <core-icon-button icon="close" on-tap="{{closeSearchAction}}"></core-ico
n-button> |
| 5535 </core-toolbar>--> |
| 5536 |
| 5537 <core-menu selected="{{selected}}"> |
| 5538 <template repeat="{{data}}"> |
| 5539 <core-item><a href="#{{name}}">{{name}}</a></core-item> |
| 5540 </template> |
| 5541 </core-menu> |
| 5542 |
| 5543 </core-header-panel> |
| 5544 |
| 5545 </template> |
| 5546 |
| 5547 <script> |
| 5548 |
| 5549 Polymer('core-doc-toc', { |
| 5550 |
| 5551 searchAction: function() { |
| 5552 this.$.searchBar.style.opacity = 1; |
| 5553 this.$.searchBar.style.display = ''; |
| 5554 }, |
| 5555 |
| 5556 closeSearchAction: function() { |
| 5557 this.$.searchBar.style.opacity = 0; |
| 5558 this.$.searchBar.style.display = 'none'; |
| 5559 } |
| 5560 |
| 5561 }); |
| 5562 |
| 5563 </script> |
| 5564 |
| 5565 </polymer-element> |
| 5566 |
| 5567 |
| 5568 |
| 5569 <!-- |
| 5570 Displays formatted source documentation scraped from input urls. |
| 5571 |
| 5572 @class core-doc-viewer |
| 5573 @homepage github.io |
| 5574 --> |
| 5575 |
| 5576 <polymer-element name="core-doc-viewer" attributes="sources route url" assetpath
="../core-doc-viewer/"> |
| 5577 |
| 5578 <template> |
| 5579 |
| 5580 <style> |
| 5581 |
| 5582 core-doc-toc { |
| 5583 display: none; |
| 5584 width: 332px; |
| 5585 overflow-x: hidden; |
| 5586 } |
| 5587 |
| 5588 </style> |
| 5589 |
| 5590 <context-free-parser url="{{url}}" on-data-ready="{{parserDataReady}}"></con
text-free-parser> |
| 5591 |
| 5592 <template repeat="{{sources}}"> |
| 5593 <context-free-parser url="{{}}" on-data-ready="{{parserDataReady}}"></cont
ext-free-parser> |
| 5594 </template> |
| 5595 |
| 5596 <core-layout></core-layout> |
| 5597 <core-doc-toc id="toc" data="{{classes}}" selected="{{selected}}"></core-doc
-toc> |
| 5598 <core-doc-page core-flex="" data="{{data}}"></core-doc-page> |
| 5599 |
| 5600 </template> |
| 5601 |
| 5602 <script> |
| 5603 |
| 5604 Polymer('core-doc-viewer', { |
| 5605 /** |
| 5606 * A single file to parse for docs |
| 5607 * |
| 5608 * @attribute url |
| 5609 * @type Array |
| 5610 * @default '' |
| 5611 */ |
| 5612 |
| 5613 /** |
| 5614 * Class documentation extracted from the parser |
| 5615 * |
| 5616 * @property classes |
| 5617 * @type Array |
| 5618 * @default [] |
| 5619 */ |
| 5620 classes: [], |
| 5621 |
| 5622 /** |
| 5623 * Files to parse for docs |
| 5624 * |
| 5625 * @attribute sources |
| 5626 * @type Array |
| 5627 * @default [] |
| 5628 */ |
| 5629 sources: [], |
| 5630 |
| 5631 ready: function() { |
| 5632 window.addEventListener('hashchange', this.parseLocationHash.bind(this))
; |
| 5633 this.parseLocationHash(); |
| 5634 }, |
| 5635 |
| 5636 parseLocationHash: function() { |
| 5637 this.route = window.location.hash.slice(1); |
| 5638 }, |
| 5639 |
| 5640 routeChanged: function() { |
| 5641 this.validateRoute(); |
| 5642 }, |
| 5643 |
| 5644 validateRoute: function() { |
| 5645 if (this.route) { |
| 5646 this.classes.some(function(c) { |
| 5647 if (c.name === this.route) { |
| 5648 this.data = c; |
| 5649 this.route = ''; |
| 5650 return; |
| 5651 } |
| 5652 }, this); |
| 5653 } |
| 5654 }, |
| 5655 |
| 5656 selectedChanged: function() { |
| 5657 this.data = this.classes[this.selected]; |
| 5658 }, |
| 5659 |
| 5660 parserDataReady: function(event) { |
| 5661 this.assimilateData(event.target.data); |
| 5662 }, |
| 5663 |
| 5664 assimilateData: function(data) { |
| 5665 this.classes = this.classes.concat(data.classes); |
| 5666 this.classes.sort(function(a, b) { |
| 5667 var na = a && a.name.toLowerCase(), nb = b && b.name.toLowerCase(); |
| 5668 return (na < nb) ? -1 : (na == nb) ? 0 : 1; |
| 5669 }); |
| 5670 if (!this.data && !this.route && this.classes.length) { |
| 5671 this.data = this.classes[0]; |
| 5672 } |
| 5673 if (this.classes.length > 1) { |
| 5674 this.$.toc.style.display = 'block'; |
| 5675 } |
| 5676 this.validateRoute(); |
| 5677 } |
| 5678 |
| 5679 }); |
| 5680 |
| 5681 </script> |
| 5682 |
| 5683 </polymer-element> |
| 5684 |
| 5685 |
| 5686 |
| 5687 <!-- |
| 5688 |
| 5689 Implements the default landing page for Polymer components. |
| 5690 |
| 5691 `<core-component-page>` can render an information page for any component. |
| 5692 Polymer components use this component in `index.html` to provide the standard la
nding page. |
| 5693 |
| 5694 `<core-component-page>` is _vulcanized_, which means it contains all it's depend
encies baked in. |
| 5695 Therefore, this component is intended to be used only by itself in a page. |
| 5696 |
| 5697 This *-dev package contains the raw source and the dependency manifest necessary |
| 5698 to reconstruct `core-component-page\core-component-page.html` via vulcanize. |
| 5699 |
| 5700 `<core-component-page>` will set the page title automatically. |
| 5701 |
| 5702 @group Polymer Core Elements |
| 5703 @element core-component-page |
| 5704 |
| 5705 --> |
| 5706 |
| 5707 <polymer-element name="core-component-page" attributes="moduleName sources" asse
tpath="../core-component-page-dev/"> |
| 5708 |
| 5709 <template> |
| 5710 |
| 5711 <style>/* |
| 5712 Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
| 5713 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
| 5714 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| 5715 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
| 5716 Code distributed by Google as part of the polymer project is also |
| 5717 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
| 5718 */ |
| 5719 |
| 5720 :host { |
| 5721 font-family: Arial, sans-serif; |
| 5722 height: 100vh; |
| 5723 } |
| 5724 |
| 5725 h2 { |
| 5726 display: inline-block; |
| 5727 margin: 8px 6px; |
| 5728 vertical-align: middle; |
| 5729 } |
| 5730 |
| 5731 .choiceB, .choiceC, .choiceD { |
| 5732 /* typography */ |
| 5733 color: white; |
| 5734 /* font-size: 14px; */ |
| 5735 font-size: 12px; |
| 5736 font-weight: bold; |
| 5737 text-decoration: none; |
| 5738 /* colors / effects */ |
| 5739 background-color: #4285F4; |
| 5740 box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.1); |
| 5741 box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1); |
| 5742 border-radius: 2px; |
| 5743 cursor: pointer; |
| 5744 /* metrics */ |
| 5745 display: inline-block; |
| 5746 padding: 4px 12px 5px 12px; |
| 5747 margin: 4px 0; |
| 5748 } |
| 5749 |
| 5750 .appbar { |
| 5751 background-color: #E91E63; |
| 5752 color: white; |
| 5753 } |
| 5754 </style> |
| 5755 |
| 5756 <core-layout vertical=""></core-layout> |
| 5757 |
| 5758 <core-toolbar class="appbar"> |
| 5759 <span>{{moduleName}}</span> |
| 5760 <a class="choiceC" target="_blank" href="../{{moduleName}}/demo.html">demo
</a> |
| 5761 </core-toolbar> |
| 5762 |
| 5763 <core-doc-viewer core-flex="" url="{{url}}" sources="{{sources}}"></core-doc
-viewer> |
| 5764 |
| 5765 </template> |
| 5766 |
| 5767 <script> |
| 5768 |
| 5769 Polymer('core-component-page', { |
| 5770 |
| 5771 moduleName: '', |
| 5772 // TODO(sjmiles): needed this to force Object type for deserialization |
| 5773 sources: [], |
| 5774 |
| 5775 ready: function() { |
| 5776 this.moduleName = this.moduleName || this.findModuleName(); |
| 5777 }, |
| 5778 |
| 5779 moduleNameChanged: function() { |
| 5780 document.title = this.moduleName; |
| 5781 this.url = !this.sources.length && this.moduleName ? this.moduleName + '
.html' : ''; |
| 5782 }, |
| 5783 |
| 5784 findModuleName: function() { |
| 5785 var path = location.pathname.split('/'); |
| 5786 var name = path.pop() || path.pop(); |
| 5787 if (name.indexOf('.html') >= 0) { |
| 5788 name = path.pop(); |
| 5789 } |
| 5790 return name || ''; |
| 5791 } |
| 5792 |
| 5793 }); |
| 5794 |
| 5795 </script> |
| 5796 |
| 5797 </polymer-element> |
OLD | NEW |