diff --git a/CHANGELOG b/CHANGELOG
deleted file mode 100644
index 301ec24394f38a97e30988bac8498466a7c29eba..0000000000000000000000000000000000000000
--- a/CHANGELOG
+++ /dev/null
@@ -1,195 +0,0 @@
-v0.5.0-rc16
-  date: 2018-10-01
-  changes:
-    - Upgrade build scripts
-    - Dropped cleanup() calls
-    - Dropped TypeScript from sources
-    - Fixed several fixes and added new options
-    - Deprecate `jsf()` calls, use `jsf.generate()`
-    - Add support for `$id` and `const` keywords
-    - Add few common formats from draft-06
-v0.5.0-rc15
-  date: 2018-04-07
-  changes:
-    - Introduced option: "optionalsProbability".
-v0.5.0-rc1
-  date: 2017-04-10
-  changes:
-    - Improve dist and sources; see #133
-    - Drop external generators' dependencies; see #164
-    - Use ES6 module syntax w/ Rollup for better bundles
-    - Try custom formats before built-in ones; fix #88
-    - Avoid extreme future dates for built-in datetime format; fix #180
-    - Apply common constraints, see #153
-    - Normalize general strategy for custom generators; see #251
-    - Rewrite container for handling keywords; fix #169
-    - Hack thunk() method for picking random oneOf/anyOf values; see #239
-    - Fast clean(); fixing prune strategy, see #238 #232 #227 #243
-    - Allow generation of numbers with fractional part. (#249)
-    - Allow for a fallback if format is not recognized. (#250)
-    - Use json-schema-ref-parser for dereferencing
-v0.4.0
-  date: ?
-  changes:
-    - dropped support for node.js: 0.10, 0.12, io.js
-    - added support for node.js: 5, 6, 7
-v0.3.7
-  date: 2016-10-31
-  changes:
-    - falsy defaults bugfix (thx to @AndreSteenveld)
-    - allow setting a maxLength and maxItems to limit generation
-    - improved number/object generation compliance with JSON Schema spec
-    - apply suggested max traversal depth implementation
-v0.3.6
-  date: 2016-08-01
-  changes:
-    - typecast to string bug fixed
-v0.3.5
-  date: 2016-08-01
-  changes:
-    - non-required attributes missing in objects bug fixed
-    - force typecast when external generator returns unexpected value
-    - unit tests added
-    - schema tests added
-    - dependency update
-v0.3.2
-  date: ?
-  changes:
-    - unit tests added
-v0.3.1
-  date: 2016-04-15
-  changes:
-    - several bugfixes
-    - brief architecture overview added
-v0.3.0
-  date: 2016-04-07
-  changes:
-    - codebase migrated to TypeScript
-    - huge refactoring
-    - inline code docs + module separation
-v0.2.16
-  date: 2016-04-06
-  changes:
-    - minor bugfixes
-    - dependency update
-v0.2.15
-  date: 2016-03-22
-  changes:
-    - faker.js 3.1.0 version bump
-v0.2.14
-  date: 2016-03-22
-  changes:
-    - support for faker.js 3.1.0
-v0.2.13
-  date: 2016-03-21
-  changes:
-    - quick-fix after 0.2.12 - rolling back faker & chance optional dependencies
-v0.2.12
-  date: 2016-03-21
-  changes:
-    - inline code docs + module separation
-    - lowering semver version range for faker.js and chance.js
-v0.2.11:
-  date: 2016-02-13
-  changes:
-    - dependency update
-v0.2.10:
-  date: 2016-02-04
-  changes:
-    - fixed faker/chance as dependencies (before next minor version)
-v0.2.9:
-  date: 2016-02-04
-  changes:
-    - jsf added to cdnjs (with locales)
-    - switching from grunt-parts to npm-scripts
-    - solve issues related with: recursion, bundling and dependencies
-v0.2.8:
-  date: 2016-01-29
-  changes:
-    - exporting `jsf` object inside distribution files
-v0.2.7:
-  date: 2016-01-28
-  changes:
-    - distribution files added (browserify)
-v0.2.6:
-  date: 2015-12-30
-  changes:
-    - dependency update
-v0.2.5:
-  date: 2015-11-26
-  changes:
-    - mixins should be arrays
-v0.2.4:
-  date: 2015-11-25
-  changes:
-    - Call reduce() on each resolved reference
-v0.2.3:
-  date: 2015-11-25
-  changes:
-    - references fixes
-    - minor fixes
-v0.2.2:
-  date: 2015-10-09
-  changes:
-    - linting
-    - dereferencing update
-v0.2.1:
-  date: 2015-09-12
-  changes:
-    - docs update
-    - logo added
-    - underscores allowed
-    - straight approach to sub-schema containers
-    - inferred types update
-v0.2.0:
-  date: 2015-07-15
-  changes:
-    - docs update
-v0.1.13:
-  date: 2015-06-25
-  changes:
-    - extending chance.js
-v0.1.12:
-  date: 2015-06-11
-  changes:
-    - max issues solved
-v0.1.11:
-  date: 2015-06-08
-  changes:
-    - docs update
-    - test specs
-    - contributing guidelines
-    - inferred types
-v0.1.10:
-  date: 2015-05-21
-  changes:
-    - missing attributes bug-fix
-v0.1.9:
-  date: 2015-05-14
-  changes:
-    - `customize` replaced with `extend`
-    - docs improved
-v0.1.8:
-  date: 2015-05-13
-  changes:
-    - extending jsf dependencies (faker, chance)
-    - max 5 items in array bug fixed
-v0.1.7:
-  date: 2015-05-12
-  changes:
-    - extending jsf dependencies (faker, chance)
-    - contribution guide added, readme extended
-v0.1.6:
-  date: 2015-05-05
-v0.1.5:
-  date: 2015-01-20
-v0.1.4:
-  date: 2015-01-17
-v0.1.3:
-  date: 2014-12-23
-v0.1.2:
-  date: 2014-12-15
-v0.1.1:
-  date: 2014-12-05
-v0.1.0:
-  date: 2014-11-28
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
deleted file mode 100644
index 174553687cf94b3bdef4009d0d17fc0336c3246d..0000000000000000000000000000000000000000
--- a/CONTRIBUTORS
+++ /dev/null
@@ -1,29 +0,0 @@
-   652  Alvaro Cabrera <pateketrueke@gmail.com>
-   165  Tomasz Ducin <tomasz.ducin@gmail.com>
-     4  Nathan Broadbent <ndbroadbent@users.noreply.github.com>
-     4  Jonathan Montane <jonmontane@gmail.com>
-     4  Jeremy Whitlock <jwhitlock@apache.org>
-     2  DrHinke <0xBADBAC0N@users.noreply.github.com>
-     2  Greg Venech <greg.venech@gmail.com>
-     2  Peter Dave Hello <PeterDaveHello@users.noreply.github.com>
-     2  Peter Waldschmidt <peter@waldschmidt.com>
-     2  Arjan van der Leden <arjan.vander.leden@stepup.nl>
-     1  Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
-     1  Raynos <raynos2@gmail.com>
-     1  omerts <omerts3@gmail.com>
-     1  Alex Lockwood <alex.lockwood@gmail.com>
-     1  oprogramador <uomodislesia@gmail.com>
-     1  Andre Steenveld <andre.steenveld@gmail.com>
-     1  Bitdeli Chef <chef@bitdeli.com>
-     1  Bobby Brennan <bobby.brennan@gmail.com>
-     1  C. Corey Capel <corey@capelio.com>
-     1  Clément VILLAIN <choclatefr@gmail.com>
-     1  Everett Griffiths <everett@fireproofsocks.com>
-     1  Felipe Cardona <felipe.cardona@chromeriver.com>
-     1  Javier Cejudo <javier@javiercejudo.com>
-     1  Jeremy Pridemore <jeremy.pridemore@gmail.com>
-     1  Jonathan Montane <JonathanMontane@users.noreply.github.com>
-     1  Kyle Fuller <kyle@fuller.li>
-     1  Manuel de la Torre <manuelmhtr@gmail.com>
-     1  Micha Moskovic <michamos@gmail.com>
-     1  Máté Farkas <mate.farkas@balabit.com>
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 9a312eee0a447e12609934b5702369a637af5857..0000000000000000000000000000000000000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2018 Alvaro Cabrera
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 2854bd568de8ddc950159093f566651352d255f6..0000000000000000000000000000000000000000
--- a/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-# current working directory
-PWD=$(shell pwd)
-
-# defaults
-src := build
-from := master
-target := gh-pages
-message := Release: $(shell date)
-
-# environment vars
-NODE_ENV := development
-
-# export vars
-export NODE_ENV
-
-# targets
-.PHONY: ? deps purge dist clean deploy
-
-# utils
-define iif
-  @(($(1) > /dev/null 2>&1) && printf "\r* $(2)\n") || printf "\r* $(3)\n"
-endef
-
-# display all targets-with-help in this file
-?: Makefile
-	@awk -F':.*?##' '/^[a-z\\%!:-]+:.*##/{gsub("%","*",$$1);gsub("\\\\",":*",$$1);printf "\033[36m%8s\033[0m %s\n",$$1,$$2}' $<
-
-dist: deps ## Build artifact for production
-	@(git worktree remove $(src) --force > /dev/null 2>&1) || true
-	@git worktree add $(src) $(target)
-	@cd $(src) && rm -rf * && git checkout -- vendor
-	@npm run build
-
-clean: ## Remove cache and generated artifacts
-	@$(call iif,rm -r $(src) dist,Built artifacts were deleted,Artifacts already deleted)
-	@$(call iif,unlink .tarima,Cache file was deleted,Cache file already deleted)
-
-deploy: $(src) ## Push built artifacts to github!
-	@cd $(src) && git add . && git commit -m "$(message)"
-	@git push origin $(target) -f
-
-deps: ## Check for installed dependencies
-	@(((ls node_modules | grep .) > /dev/null 2>&1) || npm i) || true
-
-purge: clean ## Remove all from node_modules/*
-	@printf "\r* Removing all dependencies... "
-	@rm -rf node_modules/.{bin,cache}
-	@rm -rf node_modules/*
-	@echo "OK"
diff --git a/README.md b/README.md
deleted file mode 100644
index cd5e796a33b76c276ff6e2eb76d9f47835b8903a..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-[![JSON Schema Faker logo](logo/JSF_logo.png)](https://github.com/json-schema-faker/json-schema-faker)
-
-[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8MXLRJ7QQXGYY)
-[![Build Status](https://travis-ci.org/json-schema-faker/json-schema-faker.svg?branch=master)](https://travis-ci.org/json-schema-faker/json-schema-faker)
-[![NPM version](https://badge.fury.io/js/json-schema-faker.svg)](http://badge.fury.io/js/json-schema-faker)
-[![Bower version](https://badge.fury.io/bo/json-schema-faker.svg)](https://badge.fury.io/bo/json-schema-faker)
-[![Coverage Status](https://codecov.io/github/json-schema-faker/json-schema-faker/coverage.svg?branch=master)](https://codecov.io/github/json-schema-faker/json-schema-faker?branch=master)
-
-[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/json-schema-faker/Lobby)
-[![Dependency Status](https://david-dm.org/json-schema-faker/json-schema-faker/status.svg)](https://david-dm.org/json-schema-faker/json-schema-faker)
-[![devDependency Status](https://david-dm.org/json-schema-faker/json-schema-faker/dev-status.svg)](https://david-dm.org/json-schema-faker/json-schema-faker#info=devDependencies)
-
-[![Inline docs](http://inch-ci.org/github/json-schema-faker/json-schema-faker.svg?branch=master)](http://inch-ci.org/github/json-schema-faker/json-schema-faker)
-[![Typedoc](https://img.shields.io/badge/typedoc-provided-blue.svg)](http://json-schema-faker.github.io/json-schema-faker/)
-[![Known Vulnerabilities](https://snyk.io/test/github/json-schema-faker/json-schema-faker/badge.svg)](https://snyk.io/test/github/json-schema-faker/json-schema-faker)
-
-> Use [JSON Schema](http://json-schema.org/draft-04/json-schema-core.html) along with fake generators to provide consistent and meaningful fake data for your system.
-
-## What's next?
-
-On `RC17` support for more keywords landed, but is still outdated from recent JSON-Schema drafts.
-
-- Many bugs were _gone_ and no new features were introduced this time, documentation is still incomplete.
-- Support for `not` keywords are still missing or partially working, please [read the docs](docs/USAGE.md) to see all supported keywords.
-
-Since `RC16` comes with some deprecations and breaking-changes towards `v0.5.x` API:
-
-- **deprecated** &mdash; You will not longer be able to call `jsf()` and get a fully-dereferenced result. It will just generate given refs and inline ones, nothing else.
-  - `jsf.generate()` is the sync-version, with partial dereferencing through given refs, etc.
-  - `jsf.resolve()` is the async-version, with full dereferencing, given refs are also supported.
-- **deprecated** &mdash; TypeScript sources are not longer used, however `d.ts` definitions will be updated on time.
-
-> Usage info from README.md was moved to `docs/`, [read more](docs/).
-
-## Contributors
-
-* [Alvaro Cabrera](https://twitter.com/pateketrueke)
-* [Tomasz Ducin](https://twitter.com/tomasz_ducin)
-* artwork by [Ajay Karat](http://www.devilsgarage.com/)
-
-> We are more than happy to welcome new contributors, our project is still being developed, but we need more feedback!
->
-> Please see our [contribution guide](.github/CONTRIBUTING.md) to learn how.
-
-### We are looking for your help!
-
-We have a [gitter room](https://gitter.im/json-schema-faker) for this project, if you want to contribute, talk about specific issues from the library, or you need help on json-schema topics just reach out to us!
-
-Please take a look at [the technical documentation page](docs/).
-
-> If you think `json-schema-faker` is adding value on what you're doing please consider [buying me a coffee](http://ko-fi.com/pateketrueke).
->
-> Also, you can support the project via [Open Collective](https://opencollective.com/json-schema-faker/donate).
diff --git a/bin/gen.js b/bin/gen.js
deleted file mode 100755
index 728a5e307591c777390ef4e75084b8f27160993f..0000000000000000000000000000000000000000
--- a/bin/gen.js
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env node
-
-const jsf = require('../dist/bundle.js');
-
-// FIXME: load faker/change on startup?
-
-const sample = process.argv.slice(2)[0];
-
-const { inspect } = require('util');
-const { Transform } = require('stream');
-const { readFileSync } = require('fs');
-
-const pretty = process.argv.indexOf('--pretty') !== -1;
-const noColor = process.argv.indexOf('--no-color') !== -1;
-
-function generate(schema, callback) {
-  jsf.resolve(JSON.parse(schema)).then(result => {
-    let sample;
-
-    if (pretty) {
-      sample = inspect(result, { colors: !noColor, depth: Infinity });
-    } else {
-      sample = JSON.stringify(result);
-    }
-
-    callback(null, `${sample}\n`);
-  });
-}
-
-process.stdin.pipe(new Transform({
-  transform(entry, enc, callback) {
-    generate(Buffer.from(entry, enc).toString(), callback);
-  }
-})).pipe(process.stdout);
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 31d3b5a43b89c8eaa321940905c9f9d4d0d2ac4b..0000000000000000000000000000000000000000
--- a/bower.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "name": "website-jsf",
-  "homepage": "https://github.com/json-schema-faker/website-jsf",
-  "ignore": [
-    "**/.*",
-    "node_modules",
-    "bower_components",
-    "test",
-    "tests"
-  ],
-  "dependencies": {
-    "ace-builds": "^1.2.6",
-    "vue": "^2.5.13",
-    "yaml.js": "^0.3.0",
-    "Faker": "^4.1.0",
-    "chance": "^1.0.13"
-  },
-  "overrides": {
-    "vue": {
-      "main": "dist/vue.runtime.js"
-    },
-    "faker": {
-      "main": "build/build/faker.min.js"
-    },
-    "chance": {
-      "main": "dist/chance.min.js"
-    },
-    "ace-builds": {
-      "main": [
-        "src-min/ace.js",
-        "src-min/mode-json.js",
-        "src-min/mode-yaml.js",
-        "src-min/worker-json.js",
-        "src-min/theme-github.js"
-      ]
-    }
-  }
-}
diff --git a/css/app.css b/css/app.css
new file mode 100644
index 0000000000000000000000000000000000000000..d12a3253b36a37bc6fb562082b6ac8cfae4e7050
--- /dev/null
+++ b/css/app.css
@@ -0,0 +1 @@
+@-webkit-keyframes flick{0%,to{opacity:.5}50%{opacity:1}}@keyframes flick{0%,to{opacity:.5}50%{opacity:1}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}h1,h2,h3,h4,h5,h6,html{margin:0;padding:0;line-height:1;vertical-align:baseline}abbr,address,article,aside,audio,b,blockquote,body,button,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figure,footer,form,header,i,iframe,img,input,ins,kbd,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,tfoot,thead,time,tr,ul,var,video{margin:0;padding:0;line-height:1;font-size:inherit;vertical-align:baseline}label{padding:0;line-height:1;vertical-align:middle}label,td,textarea,th{margin:0;font-size:inherit}td,th{line-height:inherit;padding:12px}textarea{padding:0;vertical-align:baseline}iframe{border:0}html{box-sizing:border-box;font-size:12pt}*,:after,:before{box-sizing:inherit}body,html{width:100%;height:100%}body,button,input{font-family:Dosis,Roboto,'SF UI Text','Helvetica Neue',Helvetica,sans-serif;color:#34495e}ol,ul{list-style-position:inside}h1{font-size:42pt}h2{font-size:32.4pt}h3{font-size:25.2pt}h4{font-size:20.4pt}h5{font-size:16.8pt}h6{font-size:13.2pt}table{border-collapse:separate;border-spacing:0;max-width:100%;width:100%}th{text-align:left;font-weight:700;vertical-align:bottom}td{vertical-align:top}img,input,svg{max-width:100%;background:0 0}select,textarea{line-height:1.75}.Dropdown select:focus,a:focus,button:focus,input:focus{outline:0}.-dis{position:relative}.-dis:after,.-dis:before{position:absolute;z-index:5;bottom:0;right:0;left:0;top:0}.-dis:before{background-color:rgba(255,255,255,.7);-webkit-animation:flick 1.6s infinite;animation:flick 1.6s infinite;content:' '}.-dis:after{background-color:rgba(255,255,255,.9);content:'Loading...';margin:auto;width:200px;height:30px;line-height:30px;text-align:center;border-radius:3px;box-shadow:1px 1px 1px rgba(0,0,0,.1)}.spin{-webkit-animation:spin 4s linear infinite;animation:spin 4s linear infinite}.flx{display:-webkit-box;display:flex}.flx-cl{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.flx-wp{flex-wrap:wrap}.flx-c{-webkit-box-align:center;align-items:center}.flx-b{-webkit-box-align:baseline;align-items:baseline}.flx-h{-webkit-box-align:stretch;align-items:stretch}.flx-t{-webkit-box-align:start;align-items:flex-start}.flx-e{-webkit-box-align:end;align-items:flex-end}.flx-j{-webkit-box-pack:justify;justify-content:space-between}.flx-jc{-webkit-box-pack:center;justify-content:center}.flx-a,.flx-gw{-webkit-box-flex:1}.flx-a{flex:1 1 auto;min-width:0;min-height:0}.flx-gw{flex:1 0 auto}.flx-no{-webkit-box-flex:0;flex:none}.flx-ft{-webkit-box-ordinal-group:0;order:-1}.flx-lt{-webkit-box-ordinal-group:100000;order:99999}.flx-m>.flx-a~.flx-a,.flx-m>.flx-a~.flx-mr,.flx-m>.flx-a~.flx-mt{margin-top:12px}.flx-m>.flx-a~.flx-ml{margin-left:12px}@media screen and (min-width:480px){.sm-no-flx{display:block}.sm-flx{display:-webkit-box;display:flex}.sm-flx.flx-m>.flx-a~.flx-a{margin-top:0;margin-left:12px}.sm-flx.flx-m>.flx-a~.flx-mr{margin-top:0;margin-right:12px}.sm-flx.flx-m>.flx-a~.flx-mt{margin-top:0;margin-left:12px}}@media screen and (min-width:720px){.md-flx{display:-webkit-box;display:flex}.md-flx.flx-m>.flx-a~.flx-a{margin-top:0;margin-left:12px}.md-flx.flx-m>.flx-lt~.flx-mr{margin-top:0;margin-left:0;margin-right:12px}.md-flx.flx-m>.flx-lt~.flx-mt{margin-top:0;margin-right:0;margin-left:12px}}.cnt{margin-left:auto;margin-right:auto}.cl-1{width:8.33333%}.cl-2{width:16.66667%}.cl-3{width:25%}.cl-4{width:33.33333%}.cl-5{width:41.66667%}.cl-6{width:50%}.cl-7{width:58.33333%}.cl-8{width:66.66667%}.cl-9{width:75%}.cl-10{width:83.33333%}.cl-11{width:91.66667%}.cl-12{width:100%}@media screen and (min-width:480px){.sm-cl-1{width:8.33333%}.sm-cl-2{width:16.66667%}.sm-cl-3{width:25%}.sm-cl-4{width:33.33333%}.sm-cl-5{width:41.66667%}.sm-cl-6{width:50%}.sm-cl-7{width:58.33333%}.sm-cl-8{width:66.66667%}.sm-cl-9{width:75%}.sm-cl-10{width:83.33333%}.sm-cl-11{width:91.66667%}.sm-cl-12{width:100%}}@media screen and (min-width:720px){.md-cl-1{width:8.33333%}.md-cl-2{width:16.66667%}.md-cl-3{width:25%}.md-cl-4{width:33.33333%}.md-cl-5{width:41.66667%}.md-cl-6{width:50%}.md-cl-7{width:58.33333%}.md-cl-8{width:66.66667%}.md-cl-9{width:75%}.md-cl-10{width:83.33333%}.md-cl-11{width:91.66667%}.md-cl-12{width:100%}}.bgr{font-size:42pt}.bg{font-size:32.4pt}.hg{font-size:25.2pt}.md{font-size:20.4pt}.sml{font-size:16.8pt}.smlr{font-size:13.2pt}.nosl{cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ttu{letter-spacing:.1em;text-transform:uppercase}.lt{text-decoration:line-through}.a{cursor:pointer}.tal{text-align:left}.tac{text-align:center}.tar{text-align:right}.taj{text-align:justify}.wsn{white-space:nowrap}.wwb{word-wrap:break-word}.tr{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lr{padding-left:0}.ln,.lr{list-style:none}.tdu{text-decoration:underline}.tdn{text-decoration:none}.di{display:inline}.db,.jsf-about li:hover>.menu{display:block}.dib{display:inline-block}.dt{display:table}.dtc{display:table-cell}.dn{display:none}.oh{overflow:hidden}.os{overflow:scroll}.oa{overflow:auto}.clr:after,.clr:before{content:' ';display:table}.clr:after{clear:both}.fl{float:left}.fr{float:right}.fit{max-width:100%}.at{vertical-align:top}.am,.ic svg{vertical-align:middle}.ab{vertical-align:bottom}.m{margin:12px}.m~.m{margin-top:0}.jsf-about li li~li,.mt{margin-top:12px}.mr{margin-right:12px}.jsf-about h2,.jsf-about h3,.jsf-about h4,.jsf-about p,.mb{margin-bottom:12px}.ml{margin-left:12px}.mxa{margin-left:auto;margin-right:auto}.p{padding:12px}.p~.p{padding-top:0}.pt{padding-top:12px}.pr{padding-right:12px}.pb{padding-bottom:12px}.pl{padding-left:12px}.py{padding-top:12px;padding-bottom:12px}.px{padding-left:12px;padding-right:12px}.sp~.sp{border-left:1px solid #bdc3c7}.pd{padding-right:6px}.pd~.pd{padding-left:6px}.rel{position:relative}.abs{position:absolute}.r0,.ra{right:0}.t0,.ta{top:0}.b0,.ba{bottom:0}.l0,.la{left:0}.z1{z-index:1}.z2{z-index:2}.z3{z-index:3}.z4{z-index:4}.z5{z-index:5}.b{border:1px solid #bdc3c7}.b~.b{border-top:0}.nb{border:0}.ic{min-width:16.8pt;min-height:16.8pt;width:16.8pt;height:16.8pt}.ic svg{width:inherit;height:inherit}.ic.x2{width:25.2pt;height:25.2pt}.ic.x3{width:42pt;height:42pt}.ch,.ch~.on{display:none}.ch~span{opacity:.5}.ch:checked~span{opacity:1;text-decoration:none}.ch:checked~.on{display:inline-block}.ch:checked~.off{display:none}.ch~.off{display:inline-block}.bu{color:#34495e;height:40px;min-width:40px;border-radius:3px;padding:0 10px;min-height:40px;line-height:38px;-webkit-transition:all .3s;transition:all .3s;border:1px solid #bdc3c7;background-color:rgba(0,0,0,.1)}.Dropdown--value input:focus,.bu:focus{border:1px solid #0074d9}.bu:active{box-shadow:inset 0 1px 5px rgba(0,0,0,.2)}.bu:disabled{opacity:.5}.f{box-shadow:1px 1px 1px rgba(0,0,0,.1)}.num{border:1px solid rgba(0,0,0,.1);width:6em}.cln{border:0;border-top:1px dotted #bdc3c7}.Toast{box-shadow:0 -1px 3px rgba(0,0,0,.1);background-color:#fff;color:#34495e;-webkit-transition:all .3s;transition:all .3s;text-align:center;position:fixed;bottom:-50px;z-index:6;opacity:0;left:0;width:100%;padding:12px}.Toast.-show{bottom:0;opacity:1}.Toast.-error{color:#fff;background-color:#ff4136}.Toast.-success{color:#fff;background-color:#2ecc40}.Toast button{border-color:rgba(0,0,0,.1)}.Toolbar,.jsf-about li li{position:relative}.jsf-about li li:before,.jsf-logo{-webkit-transition:all .3s;transition:all .3s}.jsf-logo{height:80px;width:100%;background-image:url(/img/logo.svg);background-repeat:no-repeat}.jsf-logo:hover{opacity:.8}.jsf-logo a{height:80px;width:320px;overflow:hidden;text-indent:-640px}.jsf-about li>.menu{display:none;position:absolute;padding:12px;box-shadow:0 1px 3px rgba(0,0,0,.2);background-color:rgba(255,255,255,.95)}.AceEditor~.abs a.-on,.jsf-about li li:hover:before{color:#0074d9}.jsf-about li li:before{top:4px;left:-5px;position:absolute;content:'⟀';font-size:15px;color:#bdc3c7;-webkit-transform:rotate(225deg);transform:rotate(225deg)}.jsf-about li li{white-space:nowrap;padding-left:10px}.jsf-about li a{color:#0074d9;text-decoration:none;border-bottom:1px dotted #bdc3c7}.jsf-about li a:hover{border-bottom:1px dotted #0074d9}.github-ribbon{-webkit-transform:rotate(40deg);transform:rotate(40deg);background:#bdc3c7;color:#fff;width:200px;height:30px;line-height:30px;position:absolute;z-index:999;right:-50px;top:35px}.Dropdown,.Dropdown select{width:100%;height:40px;position:relative}.Dropdown select{opacity:0;z-index:1;position:absolute}.Dropdown select:focus~.Dropdown--value span{border-color:#0074d9}.Dropdown--arrow{display:inline-block;width:40px;height:40px;position:absolute;right:0;top:0;-webkit-transition:all .3s;transition:all .3s;color:#bdc3c7;line-height:32px;background-color:rgba(0,0,0,.1);border:1px solid #bdc3c7;border-left:0;border-radius:0 3px 3px 0}.Dropdown--arrow:before{text-align:center;content:'☰';width:38px;font-size:20px;font-weight:100;line-height:38px;position:absolute}.Dropdown--arrow~select{z-index:1}.Dropdown--actions,.Dropdown--value{position:absolute;background-color:#fff}.Dropdown--value{height:40px;top:0;left:0;right:40px}.Dropdown--value input,.Dropdown--value span{height:40px;padding:0 5px;color:#34495e;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.Dropdown--value input{z-index:2;width:100%;position:relative;background-color:transparent}.Dropdown--value input.-new{padding-right:2.8em}.Dropdown--value input.-edit{padding-right:6.2em}.Dropdown--value input.-remove{padding-right:3.6em}.Dropdown--value input,.Dropdown--value span{border:1px solid #bdc3c7;border-radius:3px 0 0 3px}.Dropdown--actions{visibility:hidden;-webkit-transition:all .3s;transition:all .3s;z-index:2;opacity:0;padding:0 5px;right:41px;line-height:30px;top:5px}.Dropdown--actions.-show{opacity:1;visibility:visible}.Dropdown--actions a{-webkit-transition:color,opacity .3s;transition:color,opacity .3s;color:#34495e;opacity:.5}.Dropdown--actions a:focus,.Dropdown--actions a:hover{opacity:1;color:#0074d9}.AceEditor{min-height:200px;-webkit-transition:border .3s;transition:border .3s;border-radius:3px}.AceEditor.ace_focus{border:1px solid #0074d9}.AceEditor~.abs{padding:6px;-webkit-transition:all .3s;transition:all .3s;opacity:.5;top:5px}.AceEditor~.abs:hover{opacity:1}.AceEditor~.abs a{background-color:#fff;padding:6px;text-decoration:none;font-size:13px;color:#aaa}.AceEditor~.abs .sp:first-child a{border-radius:3px 0 0 3px}.AceEditor~.abs .sp:last-child a{border-radius:0 3px 3px 0}@media screen and (min-width:280px){.AceEditor{min-height:300px}}@media screen and (min-width:720px){.AceEditor{min-height:600px}}@media screen and (min-width:830px){.AceEditor{min-height:700px}}
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index 65fbb49afb9c4a8d94a947dc3194f8a0e95f55e2..0000000000000000000000000000000000000000
--- a/docs/README.md
+++ /dev/null
@@ -1,152 +0,0 @@
-# Table of Contents
-
-* [Architecture](#architecture)
-* [Building](#building)
-* [Testing](TESTING.md)
-* [Usage](USAGE.md)
-
-## Architecture
-
-The source code is intended to be available through `src` (for testing), but bundled versions are provided to ensure portabilty:
-
-- Both `cjs` and `es` modules are exported for NodeJS and modern Javascript environments respectively
-- Standard `.js` and `.min.js` are emitted for browser usage, they're exported as `umd` without dependencies (`json-schema-ref-parser` and `jsonpath`)
-- Also a single `.bundle.min.js` is generated containing both dependencies from above, also as `umd`
-
-Generated sources are available as an [NPM dependency](https://www.npmjs.com/package/json-schema-faker) and through [UNPKG](https://unpkg.com/json-schema-faker@0.5.0-rc16/dist/).
-
-```js
-import jsf from 'json-schema-faker';
-```
-
-Let's examine how the library works:
-
-```js
-// 1.0 - first, we need a working (and valid) `schema`
-const schema = {
-  type: 'string',
-};
-
-// 1.1 - optionally, you can provide used `refs`
-const refs = [
-  {
-    id: 'Test',
-    type: 'boolean',
-  }
-];
-
-// 1.2 - additionally, you can provide a `cwd` for local references
-const cwd = `${__dirname}/schema`;
-```
-
-Note that:
-
-- 1.0 &mdash; All input MUST be valid JSON-Schema
-- 1.1 &mdash; Given `refs` are also valid JSON-Schema
-- 1.2 &mdash; Given `cwd` is needed only if relative paths are used
-
-Now we can produce values from our previous settings:
-
-```js
-// 2.0 - generate a sample from the given `schema`
-const syncValue = jsf.generate(schema, refs);
-
-// 2.1 - resolve and generate complex schemas with remote references
-const asyncValue = await jsf.resolve(schema, refs, cwd);
-```
-
-The core provides typed generators for all basic types and well-known formats.
-
-- 2.0 &mdash; Built-in generators can be resolved synchronously
-- 2.1 &mdash; Local and remote references are resolved asynchronously
-
-For more specific values `jsf` offers a rich menu of options and methods:
-
-```js
-// 3.0 - custom formats are supported
-jsf.format('name', callback);
-jsf.format('name', null); // unregister `name` format
-
-// 3.1 - define `jsf` settings
-jsf.option('optionName', 'value');
-jsf.option({ optionName: 'value' });
-
-// 3.2 - the `version` is also exported
-jsf.version; // 0.5.0-rc16
-
-// 3.3 - internal `random` generators
-jsf.random; // { pick, date, shuffle, number, randexp }
-
-// 3.4 - extend keywords with external generators
-jsf.extend('chance', () => require('chance'));
-jsf.extend('faker', () => require('faker'));
-
-// 3.5 - extend keywords with custom generators
-jsf.define('myProp', (value, schema) => schema);
-
-// 3.6 - unregister extensions by keyword
-jsf.reset('myProp');
-jsf.reset(); // clear extensions
-
-// 3.7 - retrieve registered extensions by keyword
-jsf.locate('faker');
-```
-
-- 3.0 &mdash; This method should register non supported formats
-- 3.1 &mdash; You should be able to setup custom behavior or defaults, etc.
-- 3.2 &mdash; As convenience the package `version` should be exported
-- 3.3 &mdash; Helpers should be shared too, to be used outside the API
-- 3.4 &mdash; Third-party generators should be setup through this method (dependencies)
-- 3.5 &mdash; Custom keywords like `autoIncrement` and `pattern` should be setup through this method (extensions) and stored in a shared container
-- 3.6 &mdash; Added dependencies and extensions should be cleared from the container through this method, if no name is given the the entire container should be reset
-- 3.7 &mdash; Any registered third-party generator should be returned through this method
-
-### Available options
-
-- `defaultInvalidTypeProduct` &mdash; If `failOnInvalidTypes` is disabled this value will be returned on any invalid `type` given (default: `null`)
-- `defaultRandExpMax` &mdash; Setup default value directly as `RandExp.prototype.max` (default: `10`)
-- `ignoreProperties` &mdash; Skip given properties from being generated (default: `[]`)
-- `ignoreMissingRefs` &mdash; If enabled, it will resolve to `{}` for unknown references (default: `false`)
-- `failOnInvalidTypes` &mdash; If enabled, it will throw an `Error` for unknown types (default: `true`)
-- `failOnInvalidFormat` &mdash; If enabled, it will throw an `Error` for unknown formats (default: `true`)
-- `alwaysFakeOptionals` &mdash; When enabled, it will set `optionalsProbability: 1.0` and ` fixedProbabilities: true` (default: `false`)
-- `optionalsProbability` &mdash; A value from `0.0` to `1.0` to generate values in a consistent way, e.g. `0.5` will generate from `0%` to `50%` of values. Using arrays it means items, on objects they're properties, etc. (default: `false`)
-- `fixedProbabilities` &mdash; If enabled, then `optionalsProbability: 0.5` will always generate the half of values (default: `false`)
-- `useExamplesValue` &mdash; If enabled, it will return a random value from `examples` if they're present (default: `false`)
-- `useDefaultValue` &mdash; If enabled, it will return the `default` value if present (default: `false`)
-- `requiredOnly` &mdash; If enabled, only `required` properties will be generated (default: `false`)
-- `minItems` &mdash; Override `minItems` if it's less than this value (default: `0`)
-- `maxItems` &mdash; Override `maxItems` if it's greater than this value (default: `null`)
-- `minLength` &mdash; Override `minLength` if it's less than this value  (default: `0`)
-- `maxLength` &mdash; Override `maxLength` if it's greater than this value (default: `null`)
-- `resolveJsonPath` &mdash; If enabled, it will expand `jsonPath` keywords on all generated objects  (default: `false`)
-- `reuseProperties` &mdash; If enabled, it will try to generate missing properties from existing ones. Only when `fillProperties` is enabled too  (default: `false`)
-- `fillProperties` &mdash; If enabled, it will try to generate missing properties to fulfill the schema definition (default: `true`)
-- `random` &mdash; Setup a custom _randonmess_ generator, useful for getting deterministic results (default: `Math.random`)
-- `replaceEmptyByRandomValue` &mdash; Remplace default empty value by a random value (default: `false`)
-
-## Building
-
-**JSON-Schema-Faker** is a JavaScript tool that can be executed both in the browser and the server.
-
-It's built with [bili](https://github.com/egoist/bili), as we're using ES6 syntax for the source code and modules.
-
-To generate `dist/` sources run:
-
-```bash
-$ npm run build
-```
-
-## Testing
-
-Unit tests are run with `mocha -r esm` in order to use ES6 modules syntax, allowing to import and test code directly from the `src` folder.
-
-Also we include "schema tests" to ensure generated data is also valid.
-
-See our [reference guide](TESTING.md) to learn how.
-
-## Usage
-
-Use the [website](http://json-schema-faker.js.org/) tool and generate some values right now.
-
-Please read our [guide](USAGE.md) for further usage instructions.
diff --git a/docs/TESTING.md b/docs/TESTING.md
deleted file mode 100644
index 1ab36f052eaf0b99b46617636062d2b74d60bd62..0000000000000000000000000000000000000000
--- a/docs/TESTING.md
+++ /dev/null
@@ -1,67 +0,0 @@
-
-## Testing
-
-**JSON-Schema-Faker** performs two types of testing: unit and schema.
-
-### Unit tests
-
-- They just validate the building blocks from the entire library
-- We're using `mocha` and `chai` so the worflow would be very familiar
-
-> Much stuff from the internals are not covered by unit-tests yet, PRs for increasing that are very welcome!
-
-----
-
-### Schema tests
-
-- Kind of functional tests, high-level - executing the whole `jsf` engine to generate fake data against given JSON Schema and checking the quality of the results
-- We are using `.json` files to describe the entire testing suite
-
-Those `.json` files look like the following:
-
-```json
-[
-  {
-    "description": "Feature or issue description",
-    "tests": [
-      {
-        "description": "Single test description",
-        "schema": { ... },
-        ...
-      }
-    ]
-  },
-  ...
-]
-```
-
-Basically it will execute this for you:
-
-```js
-describe('Feature or issue description', () => {
-  it('Single test description', () => {
-    // ...
-  });
-});
-```
-
-The properties below are used to setup the test and execute the assertions:
-
-- `require` &mdash; a relative to the spec directory
-- `schema` &mdash; the main used schema to fake and test
-- `refs` &mdash; are for resolving used `$ref`'s on the faked schema
-- `throws` &mdash; test if the an error was expected, can be a boolean or string
-- `hasNot` &mdash; used for primitives, it will perform a `not.toContain()` test
-- `hasProps` &mdash; ensure given props exists on the generated value
-- `onlyProps` &mdash; ensure given props matches the generated value
-- `type` &mdash; used for primitives, it will perform a `toHaveType()` test
-- `valid` &mdash; will test the generated json against the original schema
-- `equal` &mdash; will test equality for the given schema and the generated one
-- `repeat` &mdash; will execute the same test many times as given
-- `seed` &mdash; provide the given seed to the `random()` generator
-- `count` &mdash; will match arrays/strings length or object props, etc.
-- `set` &mdash; configure given options through `jsf.option()`
-- `skip` &mdash; skip individual tests
-- `only` &mdash; run this test only
-
-> Use these tests as reference of how things works, if you found an edge-case please add it as test and open an issue for.
diff --git a/docs/USAGE.md b/docs/USAGE.md
deleted file mode 100644
index 8e332015ec3503cc841255e02f4547a39de79d69..0000000000000000000000000000000000000000
--- a/docs/USAGE.md
+++ /dev/null
@@ -1,456 +0,0 @@
-# Table of contents
-
-- Basics
-  - [Overview](#overview)
-  - [Example usage](#example-usage)
-    - [More examples](#more-examples)
-    - [Gist demos](#gist-demos)
-  - [Automation](#automation)
-    - [Angular-jsf (AngularJS plugin)](#angular-jsf)
-    - [Grunt plugin](#grunt-plugin)
-    - [CLI](#cli)
-    - [Webpack loader](#webpack-loader)
-- Advanced
-  - [JSON Schema specification support](#json-schema-specification-support)
-  - [Supported keywords](#supported-keywords)
-  - [Using references](#using-references)
-  - [Faking values](#faking-values)
-    - [Advanced usage of faker.js and Chance.js](#user-content-advanced-usage-of-fakerjs-and-chancejs)
-  - [Custom formats](#custom-formats)
-  - [Custom options](#custom-options)
-  - [Extending dependencies](#extending-dependencies)
-  - [Inferred Types](#inferred-types)
-- Misc
-  - [Resources](#resources)
-  - [Motivation](#motivation)
-
-## Overview
-
-JSON-Schema-faker (or `jsf` for short) combines two things:
-
- * The [JSON-schema specification](http://json-schema.org/draft-04/json-schema-core.html), that defines what is the allowed content of a JSON document
- * Fake data generators, that are used to generate basic or complex data, conforming to the schema.
-
-> Since `v0.5.x` external generators are not longer bundled with `jsf`, however built-in defaults are shipped for all basic types and formats.
-
-## Example usage
-
-```javascript
-import jsf from 'json-schema-faker';
-
-const schema = {
-  type: 'object',
-  properties: {
-    user: {
-      type: 'object',
-      properties: {
-        id: {
-          $ref: '#/definitions/positiveInt'
-        },
-        name: {
-          type: 'string',
-          faker: 'name.findName'
-        },
-        email: {
-          type: 'string',
-          format: 'email',
-          faker: 'internet.email'
-        }
-      },
-      required: ['id', 'name', 'email']
-    }
-  },
-  required: ['user'],
-  definitions: {
-    positiveInt: {
-      type: 'integer',
-      minimum: 0,
-      exclusiveMinimum: true
-    }
-  }
-};
-
-// use the async-version (preferred way)
-jsf.resolve(schema).then(sample => {
-  console.log(sample);
-  // "[object Object]"
-
-  console.log(sample.user.name);
-  // "John Doe"
-});
-
-// sync-version (blocking)
-jsf.generate(schema); // [object Object]
-```
-
-### More examples
-
- * [json-schema.org/example1.html](http://json-schema.org/example1.html):
-   [warehouse location](http://json-schema-faker.js.org/#gist/bb4774bf26167360e7c5cf2a29db3e56),
-   [Product from Acme catalog](http://json-schema-faker.js.org/#gist/c7a398c537cf7befce0df67fe7feeea8)
- * [json-schema.org/example2.html](http://json-schema.org/example2.html):
-   [_diskDevice_ storage type](http://json-schema-faker.js.org/#gist/0c0d676023ea505c97eef9af0b4d95da),
-   [_diskUUID_ storage type](http://json-schema-faker.js.org/#gist/0ac23aa547acfdb2897a7afec3042534),
-   [_nfs_ storage type](http://json-schema-faker.js.org/#gist/473ac2bc364b2610f7fc703e59cfe1c9),
-   [_tmpfs_ storage type](http://json-schema-faker.js.org/#gist/de1c5f18f0d231557ce25e44f581cadf)
-
-## Automation
-
-> Notice these tools can be outdated, please open a PR for helping them or raise and issue in their respective repositories.
-
-### angular-jsf
-
-Use [`angular-jsf`](https://github.com/json-schema-faker/angular-jsf) module (installable via `npm` and `bower`) to get **`jsf` working in your angular app out of the box**! And check out [angular-jsf demo](http://angular-jsf.js.org/).
-
-### Grunt plugin
-
-Use [grunt-jsonschema-faker](https://github.com/json-schema-faker/grunt-jsonschema-faker)
-to automate running `json-schema-faker` against your JSON schemas.
-
-### CLI
-
-Use [json-schema-faker-cli](https://github.com/oprogramador/json-schema-faker-cli)
-to run `jsf` from your command line.
-
-### Webpack loader
-
-Use [json-schema-faker-loader](https://github.com/jeffcatania/json-schema-faker-loader)
-to execute `jsf` as a [webpack](https://webpack.github.io/) loader.
-
-## JSON-Schema specification support
-
-Currently `jsf` supports the JSON-Schema specification **draft-04** only.
-
-If you want to use **draft-03**, you may find useful information [here](https://github.com/json-schema-faker/json-schema-faker/issues/66).
-
-> There are [plans to support](https://github.com/json-schema-faker/json-schema-faker/issues/289) latest `draft-06` and `draft-07` but currently is out of scope until a stable `0.5.x` API is released.
-
-## Supported keywords
-
-Below is the list of supported keywords:
-
-- `$ref` &mdash; Resolve internal references only, and/or external if provided.
-- `required` &mdash; All required properties are guaranteed, if not can be omitted.
-- `pattern` &mdash; Generate samples based on RegExp values.
-- `format` &mdash; Core formats **v4-draft only**:
-- [`date-time`](http://json-schema.org/draft-04/json-schema-validation.html#anchor108),
-  [`email`](http://json-schema.org/draft-04/json-schema-validation.html#anchor111),
-  [`hostname`](http://json-schema.org/draft-04/json-schema-validation.html#anchor114),
-  [`ipv4`](http://json-schema.org/draft-04/json-schema-validation.html#anchor117),
-  [`ipv6`](http://json-schema.org/draft-04/json-schema-validation.html#anchor120)
-  and [`uri`](http://json-schema.org/draft-04/json-schema-validation.html#anchor123)
-    &mdash; also `uri-reference`, `uri-template`, `json-pointer` and `uuid` are supported.
-    -- [demo »](http://json-schema-faker.js.org/#gist/f58db80cbf52c12c623166090240d964)
-- `enum` &mdash; Returns any of these enumerated values.
-- `minLength`, `maxLength` &mdash; Applies length constraints to string values.
-- `minimum`, `maximum` &mdash; Applies constraints to numeric values.
-- `exclusiveMinimum`, `exclusiveMaximum` &mdash; Adds exclusivity for numeric values.
-- `multipleOf` &mdash; Multiply constraints for numeric values.
-- `items` &mdash; Support for subschema and fixed item values.
-- `minItems`, `maxItems` &mdash; Adds length constraints for array items.
-- `uniqueItems` &mdash; Applies uniqueness constraints for array items.
-- `additionalItems` &mdash; Partially supported (?)
-- `allOf`, `oneOf`, `anyOf` &mdash; Subschema combinators.
-- `properties` &mdash; Object properties to be generated.
-- `minProperties`, `maxProperties` &mdash; Adds length constraints for object properties.
-- `patternProperties` &mdash; RegExp-based object properties.
-- `additionalProperties` &mdash; Partially supported (?)
-- `dependencies` &mdash; Partially supported (?)
-- `not` &mdash; Not supported yet (?)
-
-> Notice `not` support is complex to achieve and is probably will not work as you expected, most opened issues are related to that: so any feedback there is very appreaciated!
-
-## Using references
-
-Inline references are fully supported (json-pointers) but external can't be resolved by `jsf`.
-
-Remote en local references are automatically resolved thanks to `json-schema-ref-parser`.
-
-```javascript
-const schema = {
-  type: 'object',
-  properties: {
-    someValue: {
-      $ref: 'otherSchema'
-    }
-  }
-};
-
-const refs = [
-  {
-    id: 'otherSchema',
-    type: 'string'
-  }
-];
-
-jsf.resolve(schema, refs).then(sample => {
-  console.log(sample.someValue);
-  // "voluptatem"
-});
-```
-
-> Local references are always resolved from the `process.cwd()`, of course you can specify a custom folder to look-up: `jsf.resolve(schema, refs, cwd)`
-
-## Faking values
-
-`jsf` has built-in generators for core-formats, [Faker.js](https://github.com/marak/Faker.js/) and [Chance.js](http://chancejs.com/) (and others) are also supported but they require setup:
-
-```js
-jsf.extend('faker', () => require('faker'));
-```
-
-```json
-{
-  "type": "string",
-  "faker": "internet.email"
-}
-```
-([demo »](http://json-schema-faker.js.org/#gist/89659ebf28be89d3f860c3f80cbffe4b))
-
-The above schema will invoke [`faker.internet.email()`](https://github.com/Marak/faker.js/blob/1f47f09e25ad43db41ea4187c3cd3f7e113d4cb4/lib/internet.js#L32).
-
-Note that both generators has higher precedence than **format**.
-
-You can also use standard JSON Schema keywords, e.g. `pattern`:
-
-```json
-{
-  "type": "string",
-  "pattern": "yes|no|maybe|i don't know"
-}
-```
-([demo »](http://json-schema-faker.js.org/#gist/8ee282679da5a31cd7edc4cf35f37081))
-
-### Advanced usage of faker.js and Chance.js
-
-In following inline code examples the `faker` and `chance` variables are assumed to be created with, respectively:
-
-```javascript
-import faker from 'faker';
-import Chance from 'chance';
-
-jsf.extend('faker', () => faker);
-jsf.extend('chance', () => new Chance());
-```
-
-E.g. using `chance` to faking values while passing arguments to the generator:
-
-```json
-{
-  "type": "string",
-  "chance": {
-    "email": {
-      "domain": "fake.com"
-    }
-  }
-}
-```
-([demo »](http://json-schema-faker.js.org/#gist/c6ab6a0325e53fd3b38ee0293a9aeea3))
-
-...which will invoke [`chance.email({ "domain": "fake.com" })`](https://github.com/chancejs/chancejs/blob/b4c143bf53f516dfd77a8376d0f631462458c062/chance.js#L1118).
-This example works for single-parameter generator function.
-
-However, if you pass multiple arguments to the generator function, just pass them wrapped in an array.
-In the example below we use the [`faker.finance.amount(min, max, dec, symbol)`](https://github.com/Marak/faker.js/blob/1f47f09e25ad43db41ea4187c3cd3f7e113d4cb4/lib/finance.js#L85)
-generator which has 4 parameters. We just wrap them with an array and it's equivalent to `faker.finance.amount(100, 10000, 2, "$")`:
-
-```json
-{
-  "type": "object",
-  "properties": {
-    "cash": {
-      "type": "string",
-      "faker": {
-        "finance.amount": [100, 10000, 2, "$"]
-      }
-    }
-  },
-  "required": [
-    "cash"
-  ]
-}
-```
-([demo »](http://json-schema-faker.js.org/#gist/3a15a11d706e5b145c30f943d55c42b2))
-
-However, if you want to pass a single parameter that is an array itself, e.g.
-[`chance.pickone(["banana", "apple", "orange"])`](https://github.com/chancejs/chancejs/blob/b4c143bf53f516dfd77a8376d0f631462458c062/chance.js#L382),
-just like [described here](https://github.com/json-schema-faker/json-schema-faker/issues/171),
-then you need to wrap it with an array once more (twice in total). The outer brackets determine that the content is gonna be a list of params injected into the generator. The inner brackets are just the value itself - the array we pass:
-
-```json
-{
-  "type": "object",
-  "properties": {
-    "food": {
-      "type": "string",
-      "chance": {
-        "pickone": [
-          [
-            "banana",
-            "apple",
-            "orange"
-          ]
-        ]
-      }
-    }
-  },
-  "required": [
-    "food"
-  ]
-}
-```
-([demo »](http://json-schema-faker.js.org/#gist/792d626e7d92841ded5be59b8ed001eb))
-
-## Custom formats
-
-Additionally, you can add custom generators for those:
-
-```javascript
-jsf.format('semver', () => jsf.random.randexp('\\d\\.\\d\\.[1-9]\\d?'));
-```
-
-Now that format can be generated:
-
-```json
-{
-  "type": "string",
-  "format": "semver"
-}
-```
-
-Usage:
-
-- **format()** &mdash; Return all registered formats (custom only)
-- **format(obj)** &mdash; Register formats by key/value &rarr; name/callback
-- **format(name)** &mdash; Returns that format generator (undefined if not exists)
-- **format(name, callback)** &mdash; Register a custom format by name/callback
-
-> If you provide `null` as callback the format will be unregistered, the same if you pass `null` as the name: all added formats will be unregistered too.
-
-Callback:
-
-- **schema** (object) &mdash; The schema for input
-
-Note that custom generators has lower precedence than core ones.
-
-## Custom Options
-
-You may define following options for `jsf` that alter its behavior:
-
-```javascript
-jsf.option({
-  failOnInvalidTypes: false
-});
-
-// also valid
-jsf.option('alwaysFakeOptionals', true);
-```
-
-> Please read the [available options here](./#available-options).
-
-## Extending dependencies
-
-You may extend [Faker.js](http://marak.com/faker.js/):
-
-```javascript
-import jsf from 'json-schema-faker';
-
-jsf.extend('faker', () => {
-  const faker = require('faker');
-
-  faker.locale = 'de'; // or any other language
-  faker.custom = {
-    statement: length => {
-      return faker.name.firstName() + " has " + faker.finance.amount() + " on " + faker.finance.account(length) + ".";
-    }
-  };
-  return faker;
-});
-
-const schema = {
-  "type": "string",
-  "faker": {
-    "custom.statement": [19]
-  }
-}
-
-jsf.resolve(schema).then(...);
-```
-
-...or if you want to use [faker's *individual localization packages*](https://github.com/Marak/faker.js#individual-localization-packages), simply do the following:
-
-```js
-jsf.extend('faker', () => {
-  // just ignore the passed faker instance
-  const faker = require('faker/locale/de');
-  // do other stuff
-  return faker;
-});
-```
-
-You can also extend [Chance.js](http://chancejs.com/), using built-in [chance.mixin](http://chancejs.com/#mixin) function:
-
-```javascript
-import jsf from 'json-schema-faker';
-
-jsf.extend('chance', () => {
-  const Chance = require('chance');
-  const chance = new Chance();
-
-  chance.mixin({
-    'user': function() {
-      return {
-        first: chance.first(),
-        last: chance.last(),
-        email: chance.email()
-      };
-    }
-  });
-
-  return chance;
-});
-
-const schema = {
-  "type": "string",
-  "chance": "user"
-}
-
-jsf.resolve(schema).then(...);
-```
-
-The first parameter of `extend` function is the generator name (`faker`, `chance`, etc.). The second one is the function that **must return** the dependency library.
-
-## Inferred Types
-
-JSON Schema does not require you to provide the `type` property for your JSON Schema documents and document fragments.
-
-But since `jsf` uses the `type` property to create the proper fake data, we attempt to infer the type whenever it is not provided. We do this based on the JSON Schema validation properties you use.
-
-> Now this means that if you do not use any of the JSON Schema validation properties, jsf will not be able to infer the type for you and you will need to **explicitly** set your `type` manually.)
-
-Below is the list of JSON Schema validation properties and the inferred type based on the property:
-
-- **array** &mdash; `additionalItems`,  `items`,  `maxItems`, `minItems` and `uniqueItems`
-- **integer** &mdash; `exclusiveMaximum`, `exclusiveMinimum`, `maximum`, `minimum` and `multipleOf`
-- **number** &mdash; same as above
-- **object** &mdash; `additionalProperties`, `dependencies`, `maxProperties`, `minProperties`, `patternProperties`, `properties` and `required`
-- **string** &mdash; `maxLength`, `minLength`, `pattern` and `format`
-
-## Resources
-
-* [JSON, JSON Schema & JSON-schema-faker](https://www.youtube.com/watch?v=TkqiUG3j_Xw) - WarsawJS meetup presentation recording, a step-by-step guide to JSON-related tools, including `jsf`
-
-## Motivation
-
-There were some existing projects or services trying to achieve similar goals as `jsf`:
-
-- http://www.json-generator.com/
-- https://github.com/unindented/fake-json
-- https://github.com/jonahkagan/schematic-ipsum
-- https://www.npmjs.org/package/json-schema-mock
-- https://github.com/thaume/json-schema-processor
-- https://github.com/andreineculau/json-schema-random
-- https://github.com/murgatroid99/json-schema-random-instance
-- https://github.com/tomarad/JSON-Schema-Instantiator
-
-...but they were either incomplete, outdated, broken or non-standard. That's why `jsf` was created.
diff --git a/logo/favicon/favicon.ico b/img/favicon.ico
similarity index 100%
rename from logo/favicon/favicon.ico
rename to img/favicon.ico
diff --git a/logo/logo.svg b/img/logo.svg
similarity index 100%
rename from logo/logo.svg
rename to img/logo.svg
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..e260a72d10e47024f9a345704c04f92106fec2e4
--- /dev/null
+++ b/index.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Fake your JSON-Schemas!</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Dosis">
+    <link rel="shortcut icon" type="image/icon" href="img/favicon.ico">
+    <link rel="stylesheet" href="css/app.css">
+    <script src="vendor/chance/dist/chance.min.js"></script>
+    <script src="vendor/Faker/build/build/faker.js"></script>
+    <script src="vendor/yaml.js/dist/yaml.js"></script>
+    <script src="vendor/vue/dist/vue.runtime.js"></script>
+    <script src="vendor/ace-builds/src-min/ace.js"></script>
+    <script src="vendor/ace-builds/src-min/mode-json.js"></script>
+    <script src="vendor/ace-builds/src-min/worker-json.js"></script>
+    <script src="vendor/ace-builds/src-min/theme-github.js"></script>
+    <script>
+      window.Buffer = Function
+      window.TIME = new Date()
+    </script>
+    <script src="js/app.js" defer></script>
+    <script src="//unpkg.com/json-schema-faker"></script>
+  </head>
+  <body>
+    <div class="Toolbar f">
+      <div class="p oh rel"><a class="tdn tac github-ribbon" href="//github.com/json-schema-faker/json-schema-faker">Fork me on GitHub</a>
+        <h1 class="jsf-logo"><a class="dib" href="/">JSON Schema Faker</a></h1>
+        <p class="pr"><b>JSON Schema Faker</b> combines JSON Schema standard with fake data generators, allowing users to generate fake data that conform to the schema.</p><a class="tdn" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=undefined" target="_blank"><img class="mr" src="https://img.shields.io/badge/Donate-PayPal-green.svg"></a><img class="mr" src="https://travis-ci.org/json-schema-faker/json-schema-faker.svg?branch=master"><img class="mr" src="https://badge.fury.io/js/json-schema-faker.svg">
+        <iframe class="mt" src="//ghbtns.com/github-btn.html?user=json-schema-faker&amp;repo=json-schema-faker&amp;type=star&amp;count=true" frameborder="0" scrolling="0" width="120" height="20"></iframe>
+      </div>
+      <div class="p sm-flx nosl">
+        <ul class="lr ln mt jsf-about">
+          <li class="sp pd dib"><a class="a">Options</a>
+            <div class="z5 menu">
+              <p>Reference: <a href="https://github.com/json-schema-faker/json-schema-faker/tree/master/docs#available-options" target="_blank">available options</a></p>
+              <div class="sm-flx flx-m">
+                <ul class="lr flx-a">
+                  <li>
+                    <label><span>defaultRandExpMax</span>
+                      <input class="f num" type="number" name="jsfOptions.defaultRandExpMax">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>optionalsProbability</span>
+                      <input class="f num" type="number" name="jsfOptions.optionalsProbability" step="0.1">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>minItems</span>
+                      <input class="f num" type="number" name="jsfOptions.minItems">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>maxItems</span>
+                      <input class="f num" type="number" name="jsfOptions.maxItems">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>minLength</span>
+                      <input class="f num" type="number" name="jsfOptions.minLength">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>maxLength</span>
+                      <input class="f num" type="number" name="jsfOptions.maxLength">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>random</span>
+                      <input class="f num" type="number" name="jsfOptions.random">
+                    </label>
+                  </li>
+                </ul>
+                <ul class="lr flx-a">
+                  <li>
+                    <label><span>resolveJsonPath</span>
+                      <input type="checkbox" name="jsfOptions.resolveJsonPath">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>ignoreMissingRefs</span>
+                      <input type="checkbox" name="jsfOptions.ignoreMissingRefs">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>failOnInvalidTypes</span>
+                      <input checked type="checkbox" name="jsfOptions.failOnInvalidTypes">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>failOnInvalidFormat</span>
+                      <input checked type="checkbox" name="jsfOptions.failOnInvalidFormat">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>alwaysFakeOptionals</span>
+                      <input type="checkbox" name="jsfOptions.alwaysFakeOptionals">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>fixedProbabilities</span>
+                      <input type="checkbox" name="jsfOptions.fixedProbabilities">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>useExamplesValue</span>
+                      <input type="checkbox" name="jsfOptions.useExamplesValue">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>useDefaultValue</span>
+                      <input type="checkbox" name="jsfOptions.useDefaultValue">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>requiredOnly</span>
+                      <input type="checkbox" name="jsfOptions.requiredOnly">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>reuseProperties</span>
+                      <input type="checkbox" name="jsfOptions.reuseProperties">
+                    </label>
+                  </li>
+                  <li>
+                    <label><span>fillProperties</span>
+                      <input checked type="checkbox" name="jsfOptions.fillProperties">
+                    </label>
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </li>
+          <li class="sp pd dib"><a class="a">Examples</a>
+            <ul class="lr z5 menu">
+              <li><a href="#gist/da0af4611cb5622b54aff57283560da3">boolean</a></li>
+              <li><a href="#gist/4199ca90fb5cd05337824b0695d17b5e">integer</a></li>
+              <li><a href="#gist/d9e27543d84157c1672f87e93ac250cc">inner-references</a></li>
+              <li><a href="#gist/5f81f118fbd4eac01ccacf23a061a8b9">external-references</a></li>
+              <li><a href="#gist/cbb4871d1d2f44760ddafdaa056e1926">enums</a></li>
+              <li><a href="#gist/1f1196844bead96e021ffbd597edcffa">fixed values</a></li>
+              <li><a href="#gist/f4ad1818735f0d0babdc1f12b92013f1">n-times repeated</a></li>
+              <li><a href="#gist/1902737e7bef9573af02a3fc49761c13">faker-properties</a></li>
+              <li><a href="#gist/1a7db173362b127a826a5c2fa7de7561">faker.fake()</a></li>
+              <li><a href="#gist/5dd364aad2d48729efff686c5f7c44b2">chance-guid</a></li>
+              <li><a href="#gist/682f97a2e28e230b51810c55b92f4cdc">chance-name</a></li>
+              <li><a href="#gist/426c2d177243cd2c52594f92c1a7862e">chance-properties</a></li>
+              <li><a href="#gist/d3e75b22ad33e4440df19e0cc060c9f3/0.5.0-rc3">remote-schemas (^0.5.x)</a></li>
+            </ul>
+          </li>
+          <li class="sp pd dib"><a class="a">Community</a>
+            <ul class="lr z5 menu">
+              <li><a href="http://json-schema.org" target="_blank">JSON-Schema.org</a></li>
+              <li><a href="//github.com/json-schema-faker/json-schema-faker/" target="_blank">GitHub / <a href="//travis-ci.org/json-schema-faker/json-schema-faker" target="_blank">CI</a></a></li>
+              <li><a href="//github.com/json-schema-faker/json-schema-faker/issues/new" target="_blank">Contribution</a></li>
+              <li><a href="//github.com/json-schema-faker/angular-jsf" target="_blank">AngularJS module</a></li>
+              <li><a href="//github.com/json-schema-faker/grunt-jsonschema-faker" target="_blank">Grunt plugin</a></li>
+              <li><a href="//github.com/json-schema-faker/json-schema-server" target="_blank">JSF Server</a></li>
+            </ul>
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div class="sm-flx flx-m p">
+      <div class="flx-a flx-lt">
+        <div id="app"></div>
+      </div>
+    </div>
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+      
+      ga('create', '', 'auto');
+      ga('send', 'pageview');
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/js/app.js b/js/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..94b737c4b34aeacc6de28668c69036081949d3fe
--- /dev/null
+++ b/js/app.js
@@ -0,0 +1 @@
+var PROXY_URL="https://cors-anywhere.herokuapp.com/",AUTH_ID="x",AUTH_SECRET="x";function debounce(e,t,s){var a;return function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];clearTimeout(a),a=setTimeout((function(){t.apply(s,n)}),e)}}function throttle(e,t,s){var a,n;return e=e||250,function(){for(var i=[],o=arguments.length;o--;)i[o]=arguments[o];var l=+new Date;a&&l<a+e?(clearTimeout(n),n=setTimeout((function(){a=l,t.apply(s,i)}),e)):(a=l,t.apply(s,i))}}function getUrl(e,t,s){var a=""+e+t+"?client_id="+AUTH_ID+"&client_secret="+AUTH_SECRET,n="redirect_uri="+encodeURIComponent(location.protocol+"//"+location.host+"/");return s?a+"&"+Object.keys(s).map((function(e){return e+"="+s[e]})).join("&")+"&"+n:a+(!1!==s?"&"+n:"")}var GISTS={BASE_URL:"https://github.com",API_URL:"https://api.github.com",loadFrom:function(e){var t=e.replace("#","").split("/");if(1===t.length)return Promise.resolve({files:{"schema.json":{content:decodeURIComponent(t[0])}}});var s=t[0],a=t[1];switch(s){case"gist":return fetch(getUrl(GISTS.API_URL,"/gists/"+a)).then((function(e){return e.json()}));case"uri":return Promise.resolve({files:{Example:{content:decodeURIComponent(a)}}});default:throw new Error("Unknown storage type")}},save:function(e){var t={};Object.keys(e).forEach((function(s){t[s]={content:e[s].value}}));var s=window.localStorage._AUTH;if(s){var a=getUrl(GISTS.API_URL,"/gists",!1);return fetch(""+PROXY_URL+a,{method:"POST",headers:{Authorization:"bearer "+s,Accept:"application/json"},body:JSON.stringify({description:"JSON Schema created by http://json-schema-faker.js.org",files:t})}).then((function(e){return e.json()})).then((function(e){if(e.message)throw new Error(e.message);return e}))}},auth:function(e,t){window.localStorage._AUTH="";var s=getUrl(GISTS.BASE_URL,"/login/oauth/access_token",{code:e});fetch(""+PROXY_URL+s,{method:"POST",headers:{Accept:"application/json"}}).then((function(e){return e.json()})).then((function(e){e.access_token&&(window.localStorage._AUTH=e.access_token,setTimeout(t,260))}))},url:function(){return getUrl(GISTS.BASE_URL,"/login/oauth/authorize",{scope:"gist"})}},script={props:["value","readonly"],data:()=>({yaml:!1}),mounted(){this.$e=ace.edit(this.$refs.editor),this.$e.setTheme("ace/theme/github"),this.$e.getSession().setTabSize(2),this.$e.setShowPrintMargin(!1),this.$e.$blockScrolling=Infinity,this._isWatching=!1,this._backupObj=null,this.change(this.value),this.setMode(),this.readonly?this.$e.setReadOnly(!0):this.$e.getSession().on("change",()=>{this._isWatching||this.change(this.$e.getValue())})},methods:{disable(){this.yaml=!1,this.setMode()},enable(){this.yaml=!0,this.setMode()},change(e){const t=this._backupObj;try{this.yaml?this._backupObj=YAML.parse(e)||this._backupObj:this._backupObj=JSON.parse(e)||this._backupObj}catch(s){}t!==this._backupObj&&this.$emit("change",{value:this._backupObj,source:e})},update(){this.value&&this.$e.setValue(this.yaml?YAML.dump(this._backupObj,6,2):JSON.stringify(this._backupObj,null,2))},setMode(){this.$e.getSession().setMode(`ace/mode/${this.yaml?"yaml":"json"}`),this.update()}},watch:{value(){this._isWatching=!0,this.change(this.value),this.update(),this._isWatching=!1}}};function normalizeComponent(e,t,s,a,n,i,o,l,u,r){"boolean"!=typeof o&&(u=l,l=o,o=!1);var c,d="function"==typeof s?s.options:s;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,n&&(d.functional=!0)),a&&(d._scopeId=a),i?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,u(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},d._ssrRegister=c):t&&(c=o?function(){t.call(this,r(this.$root.$options.shadowRoot))}:function(e){t.call(this,l(e))}),c)if(d.functional){var _=d.render;d.render=function(e,t){return c.call(t),_(e,t)}}else{var h=d.beforeCreate;d.beforeCreate=h?[].concat(h,c):[c]}return s}var normalizeComponent_1=normalizeComponent;const __vue_script__=script;var __vue_render__=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"rel"},[s("div",{ref:"editor",staticClass:"AceEditor nosl f b"}),e.readonly?e._e():s("div",{staticClass:"abs t0 r0 z1 nosl"},[s("ul",{staticClass:"lr ln flx"},[s("li",{staticClass:"sp"},[s("a",{staticClass:"a","class":{"-on":!e.yaml},on:{click:e.disable}},[e._v("JSON")])]),s("li",{staticClass:"sp"},[s("a",{staticClass:"a","class":{"-on":e.yaml},on:{click:e.enable}},[e._v("YAML")])])])])])},__vue_staticRenderFns__=[];const __vue_inject_styles__=undefined,__vue_scope_id__=undefined,__vue_module_identifier__=undefined,__vue_is_functional_template__=!1;var JSONEditor=normalizeComponent_1({render:__vue_render__,staticRenderFns:__vue_staticRenderFns__},__vue_inject_styles__,__vue_script__,__vue_scope_id__,!1,__vue_module_identifier__,undefined,undefined),script$1={props:["value","tabindex","placeholder"],data:()=>({selectedValue:null}),methods:{onChange(){this.$emit("change",this.selectedValue)}}};const __vue_script__$1=script$1;var __vue_render__$1=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"Dropdown f"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedValue,expression:"selectedValue"}],staticClass:"a",attrs:{tabindex:e.tabindex},on:{change:[function(t){var s=[].filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedValue=t.target.multiple?s:s[0]},e.onChange]}},e._l(e.value,(function(t){return s("option",[e._v(e._s(t))])})),0),s("div",{staticClass:"Dropdown--arrow"}),s("div",{staticClass:"Dropdown--value nosl"},[s("span",{staticClass:"db tr"},[e._v(e._s(e.selectedValue||e.placeholder))])])])},__vue_staticRenderFns__$1=[];const __vue_inject_styles__$1=undefined,__vue_scope_id__$1=undefined,__vue_module_identifier__$1=undefined,__vue_is_functional_template__$1=!1;var SimpleDropdown=normalizeComponent_1({render:__vue_render__$1,staticRenderFns:__vue_staticRenderFns__$1},__vue_inject_styles__$1,__vue_script__$1,__vue_scope_id__$1,!1,__vue_module_identifier__$1,undefined,undefined),script$2={props:["value","tabindex","placeholder"],data:()=>({label:"",isNew:!1,hasChanged:!1,shouldUpdate:!1,canBeDeleted:!1,selectedValue:null}),methods:{change(){this.$emit("change",{setValues:this.value})},reset(){this.shouldUpdate=!0,this.canBeDeleted=!0,this.hasChanged=!1,this.isNew=!1,this.$refs.input.focus()},update(e){e&&(this.selectedValue=e)},inputValue(e){const t=e.target.value;if(!t)return void(this.shouldUpdate=!1);const s=-1===this.value.indexOf(t),a=this.selectedValue,n=t!==a;this.isNew=s,this.hasChanged=null!==a&&n,this.shouldUpdate=s||!1===n,this.canBeDeleted=!s&&null!==a},submitValue(e){switch(e.key){case"Enter":this.addValue();break;case"ArrowUp":if(!this.hasChanged){const e=this.value,t=e.indexOf(this.selectedValue);t>0?this.update(e[t-1]):this.update(e[e.length-1])}break;case"ArrowDown":if(!this.hasChanged){const e=this.value,t=e.indexOf(this.selectedValue);t<e.length-1?this.update(e[t+1]):this.update(e[0])}}},addValue(){this.$refs.input.value&&-1===this.value.indexOf(this.$refs.input.value)&&(this.$emit("change",{addValue:this.$refs.input.value}),this.selectedValue=this.$refs.input.value,this.value.push(this.$refs.input.value),this.reset(),this.change())},updateValue(){const e=this.selectedValue,t=this.$refs.input.value;this.value.forEach((s,a)=>{s===e&&(this.$emit("change",{updateValue:t,oldValue:e}),this.value[a]=t)}),this.reset(),this.change()},removeValue(){const e=this.value,t=e.indexOf(this.selectedValue);if(this.$emit("change",{removeValue:this.value.splice(t,1)}),this.reset(),this.change(),!e.length)return this.shouldUpdate=!1,this.selectedValue=null,this.$refs.input.value="",!1;t>0?this.update(e[t-1]):this.update(e[0])}},watch:{value(e){this.canBeDeleted=e.length>0,this.shouldUpdate=e.length>0,e.length&&!this.$refs.input.value&&(this.$refs.input.value=e[e.length-1],this.$refs.input.focus()),e.length||(this.$refs.input.value="")},selectedValue(e){e?(this.$emit("change",{selectedValue:e}),this.$refs.input.value=e,this.$refs.input.focus()):this.$refs.input.value=""}}};const __vue_script__$2=script$2;var __vue_render__$2=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"Dropdown f"},[s("div",{staticClass:"Dropdown--arrow"}),s("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedValue,expression:"selectedValue"}],staticClass:"a",attrs:{tabindex:"-1"},on:{change:function(t){var s=[].filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedValue=t.target.multiple?s:s[0]}}},e._l(e.value,(function(t){return s("option",[e._v(e._s(t))])})),0),s("div",{staticClass:"Dropdown--value nosl"},[s("input",{ref:"input","class":e.shouldUpdate&&{"-new":e.isNew,"-edit":e.hasChanged,"-remove":e.canBeDeleted},attrs:{tabindex:e.tabindex,placeholder:e.placeholder},on:{input:e.inputValue,keydown:e.submitValue}})]),s("div",{staticClass:"Dropdown--actions nosl","class":{"-show":e.shouldUpdate}},[e.isNew?s("a",{staticClass:"a tdn sp pd",attrs:{tabindex:"-1"},on:{click:e.addValue}},[e._v("Add")]):e._e(),e.hasChanged?s("a",{staticClass:"a tdn sp pd",attrs:{tabindex:"-1"},on:{click:e.updateValue}},[e._v("Update")]):e._e(),e.canBeDeleted?s("a",{staticClass:"a tdn sp pd",attrs:{tabindex:"-1"},on:{click:e.removeValue}},[e._v("Delete")]):e._e()])])},__vue_staticRenderFns__$2=[];const __vue_inject_styles__$2=undefined,__vue_scope_id__$2=undefined,__vue_module_identifier__$2=undefined,__vue_is_functional_template__$2=!1;var EditableDropdown=normalizeComponent_1({render:__vue_render__$2,staticRenderFns:__vue_staticRenderFns__$2},__vue_inject_styles__$2,__vue_script__$2,__vue_scope_id__$2,!1,__vue_module_identifier__$2,undefined,undefined),script$3={data:()=>({libInfo:null,hasValues:!1,showMessage:!1,logMessage:"",classes:"",inputJSON:"",outputJSON:"",savedSchemas:[],availableAssets:[]}),computed:{loggedIn:()=>"undefined"!=typeof window.localStorage._AUTH&&""!==window.localStorage._AUTH,availableVersions(){return this.libInfo?this.libInfo.files.map(e=>e.version):[]}},methods:{closeLog(){this.showMessage=!1},loginAction(){location.href=GISTS.url()},synchronizeGist(e){this.$emit("synchronizeGist",e)},generateOutput(e){this.$emit("generateOutput",e)},inputChange(e){this.$emit("inputChange",e)},setFile(e){this.$emit("setFile",e)},setVersion(e){this.availableAssets=this.libInfo?this.libInfo.files.filter(t=>t.version===e)[0].files.filter(e=>-1===e.indexOf(".min")):[],this.$refs.assets.selectedValue=this.availableAssets[0],this.$refs.versions.selectedValue=e,this.$emit("setVersion",e)},setPayload(e){this.$emit("setPayload",e)},logStatus(e,t){this.classes=t,this.logMessage=e,this.showMessage=!0,clearTimeout(this._timeout),this._timeout=setTimeout(()=>{this.showMessage=!1},5e3)}},components:{JSONEditor:JSONEditor,SimpleDropdown:SimpleDropdown,EditableDropdown:EditableDropdown}};const __vue_script__$3=script$3;var __vue_render__$3=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"md-flx flx-m"},[s("div",{staticClass:"flx-a md-cl-6"},[s("div",{staticClass:"flx flx-m"},[s("div",{staticClass:"flx-a"},[s("EditableDropdown",{ref:"schemas",attrs:{value:e.savedSchemas,placeholder:"Schema identifier, e.g. User",tabindex:"1"},on:{change:e.setPayload}})],1),e.hasValues?s("div",{staticClass:"flx-ml"},[e.loggedIn?s("button",{staticClass:"a bu db nosl",attrs:{tabindex:"2"},on:{click:e.synchronizeGist}},[e._v("Save as gist")]):s("button",{staticClass:"a bu db nosl",on:{click:e.loginAction}},[e._v("GitHub login")])]):e._e()]),e.hasValues?s("div",{staticClass:"mt"},[s("JSONEditor",{attrs:{value:e.inputJSON},on:{change:e.inputChange}})],1):e._e()]),s("div",{staticClass:"flx-a md-cl-6"},[s("div",{staticClass:"sm-flx flx-m"},[e.hasValues?s("div",{staticClass:"flx-mt"},[s("button",{staticClass:"a f bu db cl-12 nosl",attrs:{tabindex:"5"},on:{click:e.generateOutput}},[e._v("Generate example")])]):e._e()]),e.hasValues?s("div",{staticClass:"mt"},[s("JSONEditor",{attrs:{value:e.outputJSON,readonly:"readonly"}})],1):e._e()]),s("div",{staticClass:"Toast","class":[e.classes,{"-show":e.showMessage}]},[s("div",{staticClass:"sm-flx flx-m flx-c"},[s("div",{staticClass:"flx-a"},[e._v(e._s(e.logMessage))]),e.hasValues?s("div",{staticClass:"flx-mr"},[s("button",{staticClass:"a f bu db cl-12 nosl",attrs:{tabindex:"6"},on:{click:e.closeLog}},[e._v("OK")])]):e._e()])])])},__vue_staticRenderFns__$3=[];const __vue_inject_styles__$3=undefined,__vue_scope_id__$3=undefined,__vue_module_identifier__$3=undefined,__vue_is_functional_template__$3=!1;var App=normalizeComponent_1({render:__vue_render__$3,staticRenderFns:__vue_staticRenderFns__$3},__vue_inject_styles__$3,__vue_script__$3,__vue_scope_id__$3,!1,__vue_module_identifier__$3,undefined,undefined);window.JSCOMPILER_PRESERVE=function(){return null};var _selected,_vm,_t,SETTINGS={},SCHEMAS={};function configureJSF(){window.jsf&&window.jsf.option&&window.jsf.option(SETTINGS)}function generateOutput(){if(window.jsf){var e=new Date,t=[];if(Object.keys(SCHEMAS).forEach((function(e){e!==_selected&&t.push(JSON.parse(SCHEMAS[e].value))})),SCHEMAS[_selected]){var s;try{s=JSON.parse(SCHEMAS[_selected].value)}catch(a){return void _vm.logStatus(a.message||a.toString(),["-error"])}_vm.$el.classList.add("-dis");(parseFloat(window.jsf.version)>=.5?function(){return(window.jsf.resolve||window.jsf)(s,t)}:function(){return new Promise((function(e,n){try{e((window.jsf.generate||window.jsf.sync||window.jsf)(s,t))}catch(a){n(a)}}))})().then((function(t){_vm.$el.classList.remove("-dis"),_vm.outputJSON=JSON.stringify(t,null,2),_vm.logStatus("Example generated in "+(new Date-e)/1e3+"s",["-success"])}))["catch"]((function(e){_vm.$el.classList.remove("-dis"),_vm.logStatus((e.message||e.toString()).substr(0,200),["-error"])}))}}else setTimeout(generateOutput,1e3)}function saveSession(){var e=new Date;window.localStorage._SCHEMAS=JSON.stringify(SCHEMAS),_vm.logStatus("Session saved in "+(new Date-e)/1e3+"ms",["-success"])}function loadSession(){var e=Object.keys(SCHEMAS);_vm.savedSchemas=e,_vm.hasValues=e.length>0,e.length&&(_selected=e[0],_vm.inputJSON=SCHEMAS[e[0]].value,_vm.$refs.schemas.selectedValue=_selected),_vm.$el.classList.remove("-dis")}function loadStorage(){if(window.localStorage._SCHEMAS){var e=JSON.parse(window.localStorage._SCHEMAS);Object.keys(e).forEach((function(t){SCHEMAS[t]=e[t]}))}loadSession()}function onHashChange(){if(_vm.$el.classList.add("-dis"),_vm.inputJSON="",_vm.savedSchemas=[],_vm.hasValues=!1,Object.keys(SCHEMAS).forEach((function(e){delete SCHEMAS[e]})),location.hash){location.hash.split("/")[2];GISTS.loadFrom(location.hash).then((function(e){Object.keys(e.files).forEach((function(t){SCHEMAS[t]={value:e.files[t].content}})),loadSession()}))["catch"]((function(e){_vm.$el.classList.remove("-dis"),_vm.logStatus(e.message||e.toString(),["-error"])}))}else loadStorage()}function onLoadEnd(e){jsf.extend&&(jsf.extend("faker",(function(){return window.faker})),jsf.extend("chance",(function(){return window.chance}))),_vm.logStatus("Loaded in "+(new Date-e)/1e3+"ms",["-success"]),configureJSF(),generateOutput()}function onScripts(){clearTimeout(_t),_t=setTimeout((function(){var e=new Date;window.jsf=window.JSONSchemaFaker||window.jsf,window.jsf._loaded=!0,delete window.JSONSchemaFaker,"undefined"!=typeof jsf?onLoadEnd(e):onScripts()}),1e3)}window.addEventListener("hashchange",onHashChange),document.body.addEventListener("change",(function(e){if(0===e.target.name.indexOf("jsfOptions.")){var t=e.target.name.replace("jsfOptions.","");"checkbox"===e.target.type?SETTINGS[e.target.name.substr(11)]=e.target.checked:"random"===t?SETTINGS.random=""!==e.target.value?function(){return parseFloat(e.target.value)}:Math.random:SETTINGS[e.target.name.substr(11)]=e.value}configureJSF(),generateOutput()}));var matches=location.search&&-1!==location.search.indexOf("code=")?location.search.match(/\bcode=([\w]{20})/)[1]:null;matches&&(window.history.replaceState(null,document.title,"/"),GISTS.auth(matches,(function(){_vm&&_vm.$forceUpdate()})));var Core={init:function(e){_vm=e,setTimeout((function(){onScripts(),onHashChange()}),200),_vm.logStatus("Application loaded in "+(new Date-TIME)/1e3+"ms",["-success"]),_vm.$on("generateOutput",throttle(200,(function(e){e.target.disabled=!0,generateOutput(),e.target.disabled=!1}))),_vm.$on("setPayload",(function(e){e.addValue&&(SCHEMAS[e.addValue]={value:["{",'  "id": "'+e.addValue+'"',"}"].join("\n")},saveSession(),_vm.outputJSON=""),e.setValues&&(_vm.hasValues=e.setValues.length>0,e.setValues.length||window.history.pushState(null,document.title,"")),e.selectedValue&&(_selected=e.selectedValue,_vm.outputJSON="",_vm.inputJSON=SCHEMAS[_selected].value,window.jsf&&window.jsf._loaded&&generateOutput()),e.updateValue&&(SCHEMAS[e.updateValue]=SCHEMAS[e.oldValue],SCHEMAS[e.updateValue].value=SCHEMAS[e.updateValue].value.replace(/"id"\s*:\s*"(\w+)"/g,(function(t,s){return s===e.oldValue?'"id": "'+e.updateValue+'"':t})),_vm.inputJSON=SCHEMAS[e.updateValue].value,delete SCHEMAS[e.oldValue],saveSession()),e.removeValue&&(delete SCHEMAS[e.removeValue],Object.keys(SCHEMAS).length||window.history.pushState(null,document.title,"#"),saveSession())})),_vm.$on("inputChange",debounce(200,(function(e){_selected&&e.value&&(SCHEMAS[_selected].value=JSON.stringify(e.value),generateOutput(),saveSession())}))),_vm.$on("synchronizeGist",(function(e){var t=new Date;return e.target.disabled=!0,_vm.$el.classList.add("-dis"),GISTS.save(SCHEMAS).then((function(s){e.target.disabled=!1,_vm.$el.classList.remove("-dis"),_vm.logStatus("Gist saved in "+(new Date-t)/1e3+"s",["-success"]),window.history.pushState(null,document.title,"#gist/"+s.id)}))["catch"]((function(t){e.target.disabled=!1,_vm.$el.classList.remove("-dis"),_vm.logStatus(t.message||t.toString(),["-error"])})),!1}))}},vm=new Vue({el:"#app",render:function(e){return e(App,{ref:"UI"})}});Core.init(vm.$refs.UI);
\ No newline at end of file
diff --git a/logo/JSF_logo.png b/logo/JSF_logo.png
deleted file mode 100644
index c25d3ff576616dff4c8858dd184df3b60b299986..0000000000000000000000000000000000000000
Binary files a/logo/JSF_logo.png and /dev/null differ
diff --git a/logo/JSF_logo_BW.png b/logo/JSF_logo_BW.png
deleted file mode 100644
index 917e0597570595f0c89fb8a04fa18c4852735e0a..0000000000000000000000000000000000000000
Binary files a/logo/JSF_logo_BW.png and /dev/null differ
diff --git a/logo/favicon/favicon05.gif b/logo/favicon/favicon05.gif
deleted file mode 100644
index a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a..0000000000000000000000000000000000000000
Binary files a/logo/favicon/favicon05.gif and /dev/null differ
diff --git a/logo/favicon/favicon05.jpg b/logo/favicon/favicon05.jpg
deleted file mode 100644
index 54129cf966db50e0d84c694d22c010a642ca4383..0000000000000000000000000000000000000000
Binary files a/logo/favicon/favicon05.jpg and /dev/null differ
diff --git a/logo/favicon/favicon05.png b/logo/favicon/favicon05.png
deleted file mode 100644
index 3334ca2d17928d4e53e63f465e1c597b76f7d23e..0000000000000000000000000000000000000000
Binary files a/logo/favicon/favicon05.png and /dev/null differ
diff --git a/logo/favicon/favicon05.psd b/logo/favicon/favicon05.psd
deleted file mode 100644
index be7c3df4728f2d7e2d82feab1df2f6c945aebd04..0000000000000000000000000000000000000000
Binary files a/logo/favicon/favicon05.psd and /dev/null differ
diff --git a/logo/logo_alpha_300dpi.png b/logo/logo_alpha_300dpi.png
deleted file mode 100644
index 91352590488b2339f8d55578f21b5ba5d2591be1..0000000000000000000000000000000000000000
Binary files a/logo/logo_alpha_300dpi.png and /dev/null differ
diff --git a/logo/logo_alt_colors.png b/logo/logo_alt_colors.png
deleted file mode 100644
index ae30ad01b5e1e52384378774d0535694700b0a63..0000000000000000000000000000000000000000
Binary files a/logo/logo_alt_colors.png and /dev/null differ
diff --git a/logo/other/save-button-small.png b/logo/other/save-button-small.png
deleted file mode 100644
index d7234adebd5b1dcd443ecc5825c3fe2dfb0e068f..0000000000000000000000000000000000000000
Binary files a/logo/other/save-button-small.png and /dev/null differ
diff --git a/logo/other/save-button.png b/logo/other/save-button.png
deleted file mode 100644
index 0096327e87e440bc2ba2098e7cc97b24b8edcd6a..0000000000000000000000000000000000000000
Binary files a/logo/other/save-button.png and /dev/null differ
diff --git a/logo/typescript-logo.png b/logo/typescript-logo.png
deleted file mode 100644
index 7319fe044bbd226545d073bf8d45cf5a6c1a1ba3..0000000000000000000000000000000000000000
Binary files a/logo/typescript-logo.png and /dev/null differ
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 3bb0bbe3bc47e87df4ea48b5cbca69aa24f01de9..0000000000000000000000000000000000000000
Binary files a/package-lock.json and /dev/null differ
diff --git a/package.json b/package.json
deleted file mode 100644
index e1855c748fcd0637748407ac57bd7db95c2dd4aa..0000000000000000000000000000000000000000
--- a/package.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{
-  "name": "json-schema-faker",
-  "version": "0.5.0-rc17",
-  "description": "JSON-Schema + fake data generators",
-  "homepage": "http://json-schema-faker.js.org",
-  "bin": {
-    "jsf": "./bin/gen.js"
-  },
-  "main": "dist/main.js",
-  "module": "dist/main.js",
-  "unpkg": "dist/bundle.js",
-  "browser": "dist/main.umd.js",
-  "scripts": {
-    "dev": "npm run test:schema -- -w",
-    "_test": "npm run lint && npm run test:unit -- && npm run test:schema",
-    "_test:ci": "npm run coverage:all && npm run report -- -r lcov",
-    "_test:all": "npm run test:run tests && npm run report -- -r html",
-    "test:run": "NODE_ENV=test _mocha --exit --recursive --watch-extensions js,json -r esm -bR spec",
-    "_test:unit": "npm run test:run tests/unit --",
-    "test:schema": "npm run test:run tests/schema --",
-    "_coverage": "nyc -x '**/tests/**' -x '**/*.spec.js'",
-    "_coverage:all": "npm run coverage -- npm run test:all",
-    "_coverage:unit": "npm run coverage -- npm run test:unit",
-    "_codecov": "codecov --file=coverage/lcov.info -e TRAVIS_NODE_VERSION",
-    "_report": "nyc report",
-    "_lint": "eslint src tests",
-    "_pretest": "npm run lint",
-    "_prepublish": "npm run build",
-    "_graphviz": "madge src --dot > structure.gv",
-    "watch": "tarima watch",
-    "pretest": "eslint src",
-    "build": "tarima -mfqe production",
-    "postbuild": "concat -o dist/bundle.js node_modules/json-schema-ref-parser/dist/ref-parser.min.js node_modules/jsonpath-plus/dist/index-umd.min.js dist/main.umd.js"
-  },
-  "author": "Alvaro Cabrera <pateketrueke@gmail.com> (https://soypache.co)",
-  "contributors": [
-    "Ajay Karat <info@devilsgarage.com> (http://devilsgarage.com/)",
-    "Tomasz Ducin <tomasz@ducin.it> (http://ducin.it)"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/json-schema-faker/json-schema-faker"
-  },
-  "bugs": "https://github.com/json-schema-faker/json-schema-faker/issues",
-  "license": "MIT",
-  "keywords": [
-    "json",
-    "jsonschema",
-    "fake",
-    "mocks"
-  ],
-  "tarima": {
-    "from": "src",
-    "output": ".",
-    "public": "build",
-    "serve": [
-      "dist",
-      "public"
-    ],
-    "rename": [
-      "**/web/**:build/{fullpath/2}",
-      "**/main*js:dist/{fullpath/1}"
-    ],
-    "bundle": [
-      "**/main*.js",
-      "**/app.js"
-    ],
-    "filter": [
-      "!_*",
-      "!**/_*",
-      "!**/_*/**",
-      "!**/lib/**"
-    ],
-    "plugins": [
-      "tarima-bower"
-    ],
-    "bundleOptions": {
-      "extensions": {
-        "js": "es6",
-        "css": "less",
-        "umd": false
-      },
-      "rollup": {
-        "format": "es",
-        "external": [
-          "jsonpath-plus",
-          "json-schema-ref-parser"
-        ],
-        "plugins": [
-          "rollup-plugin-node-resolve",
-          "rollup-plugin-commonjs",
-          "rollup-plugin-vue"
-        ]
-      },
-      "buble": {
-        "objectAssign": "Object.assign"
-      },
-      "less": {
-        "plugins": [
-          "less-plugin-autoprefix"
-        ]
-      }
-    }
-  },
-  "files": [
-    "dist/*.*"
-  ],
-  "devDependencies": {
-    "ajv": "^6.5.3",
-    "buble": "^0.19.8",
-    "chai": "^4.1.2",
-    "chance": "^1.0.9",
-    "codecov": "^3.0.0",
-    "concat": "^1.0.3",
-    "csso": "^4.0.1",
-    "eslint": "^6.0.1",
-    "eslint-config-airbnb-base": "^14.0.0",
-    "eslint-plugin-import": "^2.18.0",
-    "esm": "^3.0.82",
-    "faker": "^4.1.0",
-    "fs-extra": "^8.0.1",
-    "glob": "^7.1.2",
-    "is-my-json-valid": "^2.19.0",
-    "less": "^3.10.3",
-    "less-plugin-autoprefix": "^2.0.0",
-    "mocha": "^6.1.4",
-    "nyc": "^14.1.1",
-    "pug": "^2.0.4",
-    "rollup": "^1.25.1",
-    "rollup-plugin-commonjs": "^10.0.0",
-    "rollup-plugin-node-resolve": "^5.0.0",
-    "rollup-plugin-vue": "^5.0.1",
-    "seedrandom": "^3.0.1",
-    "semver": "^6.1.1",
-    "tarima": "^4.6.0",
-    "tarima-bower": "^0.4.3",
-    "terser": "^4.3.9",
-    "tv4": "^1.3.0",
-    "vue-template-compiler": "^2.6.10",
-    "z-schema": "^4.1.0"
-  },
-  "dependencies": {
-    "json-schema-ref-parser": "^6.1.0",
-    "jsonpath-plus": "^1.0.0",
-    "randexp": "^0.5.3"
-  }
-}
diff --git a/public/CNAME b/public/CNAME
deleted file mode 100644
index 566e0c5b36ab7bfccf3fdbf822f1b26e29f10ac9..0000000000000000000000000000000000000000
--- a/public/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-json-schema-faker.js.org
diff --git a/public/v1/bundle.css b/public/v1/bundle.css
deleted file mode 100644
index 06e2e451578f441ca0f858cf98c29b95d19b46b5..0000000000000000000000000000000000000000
--- a/public/v1/bundle.css
+++ /dev/null
@@ -1 +0,0 @@
-.spinner{display:inline-block;opacity:0;width:0;-webkit-transition:opacity .25s,width .25s;-moz-transition:opacity .25s,width .25s;-o-transition:opacity .25s,width .25s;transition:opacity .25s,width .25s}.has-spinner.active{cursor:progress}.has-spinner.active .spinner{opacity:1;width:auto}.has-spinner.btn-mini.active .spinner{width:10px}.has-spinner.btn-small.active .spinner{width:13px}.has-spinner.btn.active .spinner{width:16px}.has-spinner.btn-large.active .spinner{width:19px}body{padding-top:70px}.github-ribbon img{position:absolute;top:0;right:0;border:0;padding-top:50px}.row-centered{text-align:center}#input,#output{height:280px}.panel-body{padding:0}#message-box .alert{width:50%}.github-star{margin-top:12px}
\ No newline at end of file
diff --git a/public/v1/bundle.js b/public/v1/bundle.js
deleted file mode 100644
index 13855992acc3cb461ce04fe26790ced9bd724cf8..0000000000000000000000000000000000000000
--- a/public/v1/bundle.js
+++ /dev/null
@@ -1,428 +0,0 @@
-(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-function template(header, text, css){
-  return '<div class="alert alert-' + css + ' center-block fade in">' +
-    '<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>' +
-    '<strong>' + header + '</strong>: ' + text +
-    '</div>';
-}
-
-function error(text){
-  return $('#message-box').append(template("Error", text, 'danger'));
-}
-
-function success(text){
-  return $('#message-box').append(template("Success", text, 'success'));
-}
-
-function successSchema(){
-  return success("Schema saved. Use <a href='" + location.href + "'>this link</a> for future reference");
-}
-
-module.exports = {
-  success: success,
-  successSchema: successSchema,
-  error: error
-};
-
-},{}],2:[function(require,module,exports){
-var baseURL = "https://api.github.com";
-
-/**
- * Accepts gist hash (ID of the gist) and return a promise that resolves to gist `schema.json` file content.
- * @see https://developer.github.com/v3/gists/#get-a-single-gist
- */
-function fetch(hash){
-  return $.ajax({
-    method: "GET",
-    url: baseURL + "/gists/" + hash
-  }).then(function(response) {
-    try {
-      return JSON.parse(response.files['schema.json'].content);
-    } catch (e) {
-      return $.Deferred().reject(e);
-    }
-  });
-}
-
-/**
- * Accepts JSON content (already formatted text, NOT an object) and saves it as anonymous gist. Returns a promise that
- * resolves with newly created gist ID.
- * @see http://jsfiddle.net/vXpCV/
- * @see https://developer.github.com/v3/gists/#create-a-gist
- */
-function save(content){
-  return $.ajax({
-    method: "POST",
-    url: baseURL + "/gists",
-    dataType: 'json',
-    data: JSON.stringify({
-      "description": "JSON Schema created by http://json-schema-faker.js.org",
-      "files": {
-        "schema.json": {
-          "content": content
-        }
-      }
-    })
-  }).then(function(response) {
-    return 'gist/' + response.id;
-  });
-}
-
-var GithubStorage = {
-  fetch: fetch,
-  save: save
-};
-
-module.exports = GithubStorage;
-
-},{}],3:[function(require,module,exports){
-function fetch(hash){
-  var dfd = $.Deferred();
-  try {
-    var content = JSON.parse(decodeURIComponent(hash));
-    dfd.resolve(content);
-  } catch (e) {
-    dfd.reject(e);
-  }
-  return dfd.promise();
-}
-
-function save() {
-
-}
-
-//function syncOut() {
-//  location.hash = encodeURIComponent(JSON.stringify(JSON.parse(ui.input.getValue())));
-//}
-
-module.exports = {
-  fetch: fetch,
-  save: save
-};
-
-},{}],4:[function(require,module,exports){
-var storageGithub = require('./storage-github');
-var storageURI = require('./storage-uri');
-
-function fetch(uri){ // assuming uri is a non-empty string
-  var tmp = uri.replace("#", "").split('/');
-  if (tmp.length === 1) { // old style URI-based schema - supported for backward compatibility
-    // example: http://json-schema-faker.js.org/#%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
-    return storageURI.fetch(tmp[0]);
-  } else {
-    var type = tmp[0], hash = tmp[1];
-    switch (type) {
-      // example: http://json-schema-faker.js.org/#gist/c347f2f6083fe81a1fe43d17b83125d7
-      case 'gist':
-        return storageGithub.fetch(hash);
-      // example: http://json-schema-faker.js.org/#uri/%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
-      case 'uri':
-        return storageURI.fetch(hash);
-      default:
-        throw Error("Unknown storage type");
-    }
-  }
-}
-
-function save(content, type){
-  if (!content) {
-    throw Error("Empty schema can't be saved");
-  }
-  type = type || 'gist';
-  switch(type) {
-    case 'gist':
-      return storageGithub.save(content);
-    case 'uri':
-      return storageURI.save(content);
-    default:
-      throw Error("Unknown storage type");
-  }
-}
-
-module.exports = {
-  fetch: fetch,
-  save: save
-};
-
-},{"./storage-github":2,"./storage-uri":3}],5:[function(require,module,exports){
-require('../schema/array/enum.json');require('../schema/array/fixed.json');require('../schema/array/n-times.json');require('../schema/basic/boolean.json');require('../schema/basic/integer.json');require('../schema/basic/reference.json');require('../schema/chance/guid.json');require('../schema/chance/name.json');require('../schema/chance/properties.json');require('../schema/faker/fake.json');require('../schema/faker/properties.json');
-
-var storage = require('./storage');
-var message = require('./message');
-
-function requireSchema(name) {
-    return require('../schema/' + name + '.json');
-}
-
-var indent = 2;
-function format(value) {
-    return JSON.stringify(value, null, indent);
-}
-
-// UI to schema
-var definitionMap = {
-    '#example_faker_properties': 'faker/properties',
-    '#example_faker_fake': 'faker/fake',
-    '#example_chance_guid': 'chance/guid',
-    '#example_chance_name': 'chance/name',
-    '#example_chance_properties': 'chance/properties',
-    '#example_array_enum': 'array/enum',
-    '#example_array_fixed': 'array/fixed',
-    '#example_array_nTimes': 'array/n-times',
-    '#example_basic_reference': 'basic/reference',
-    '#example_basic_integer': 'basic/integer',
-    '#example_basic_boolean': 'basic/boolean'
-};
-
-$(document).ready(function () {
-    // http://jsfiddle.net/revathskumar/rY37e/
-    // https://ace.c9.io/build/kitchen-sink.html
-    var input = ace.edit("input");
-    input.setTheme("ace/theme/github");
-    input.getSession().setMode("ace/mode/json");
-    input.getSession().setTabSize(indent);
-    input.setShowPrintMargin(false);
-    input.$blockScrolling = Infinity;
-
-    var output = ace.edit("output");
-    output.setTheme("ace/theme/github");
-    output.getSession().setMode("ace/mode/json");
-    output.getSession().setTabSize(indent);
-    output.setShowPrintMargin(false);
-    output.$blockScrolling = Infinity;
-    output.setReadOnly(true);
-
-    var ui = {
-        input: input,
-        output: output,
-        run: $('#run-btn'),
-        save: $('#save-btn'),
-    };
-
-    function clearOutput() {
-        ui.output.setValue('');
-    }
-
-    function fillInput(value) {
-        ui.input.setValue(format(value), -1);
-    }
-
-    function fillOutput(value) {
-        ui.output.setValue(format(value), -1);
-    }
-
-    function generateOutput() {
-        var schema = JSON.parse(ui.input.getValue());
-        var sample = jsf(schema);
-        fillOutput(sample);
-    }
-
-    ui.run.on('click', function () {
-        generateOutput();
-    });
-
-    ui.save.on('click', function () {
-        try {
-            generateOutput();
-            var button = this;
-            $(button).addClass('active');
-            storage.save(ui.input.getValue()).then(function(response){
-                location.hash = response;
-                message.successSchema();
-            }, function(reason){
-                message.error("Failed to save schema");
-            }).always(function(){
-                $(button).removeClass('active');
-            });
-        } catch (e) {
-            message.error("Schema is invalid, not gonna save it.");
-        }
-    });
-
-    function register(uiElementSelector, schemaPath){
-        $(uiElementSelector).on('click', function () {
-            clearOutput();
-            fillInput(requireSchema(schemaPath));
-            generateOutput();
-        });
-    }
-
-    for (var key in definitionMap) {
-        if (definitionMap.hasOwnProperty(key)) {
-            register(key, definitionMap[key]);
-        }
-    }
-
-    function displayDefault(){
-        fillInput(requireSchema('basic/boolean'));
-        generateOutput();
-    }
-
-    if (location.hash) {
-        storage.fetch(location.hash).then(function(schema){
-            fillInput(schema);
-            fillOutput(jsf(schema));
-        }, function(reason){
-            message.error("Couldn't load external schema");
-            displayDefault();
-        });
-    } else {
-        displayDefault();
-    }
-});
-
-
-},{"../schema/array/enum.json":6,"../schema/array/fixed.json":7,"../schema/array/n-times.json":8,"../schema/basic/boolean.json":9,"../schema/basic/integer.json":10,"../schema/basic/reference.json":11,"../schema/chance/guid.json":12,"../schema/chance/name.json":13,"../schema/chance/properties.json":14,"../schema/faker/fake.json":15,"../schema/faker/properties.json":16,"./message":1,"./storage":4}],6:[function(require,module,exports){
-module.exports={
-  "type": "array",
-  "minItems": 15,
-  "items": {
-    "enum": ["red", "green", "blue", "yellow"]
-  }
-}
-},{}],7:[function(require,module,exports){
-module.exports={
-    "type": "array",
-    "items": [
-        {
-            "type": "integer"
-        },
-        {
-            "type": "boolean"
-        },
-        {
-            "type": "string"
-        }
-    ]
-}
-},{}],8:[function(require,module,exports){
-module.exports={
-  "type": "array",
-  "minItems": 100,
-  "maxItems": 200,
-  "items": {
-    "type": "integer"
-  }
-}
-},{}],9:[function(require,module,exports){
-module.exports={
-    "type": "boolean"
-}
-},{}],10:[function(require,module,exports){
-module.exports={
-    "type": "integer",
-    "minimum": 600,
-    "maximum": 700,
-    "multipleOf": 7,
-    "exclusiveMinimum": true
-}
-},{}],11:[function(require,module,exports){
-module.exports={
-    "type": "object",
-    "properties": {
-        "user": {
-            "type": "object",
-            "properties": {
-                "id": {
-                    "$ref": "#/definitions/positiveInt"
-                },
-                "name": {
-                    "type": "string",
-                    "faker": "name.findName"
-                },
-                "birthday": {
-                    "type": "string",
-                    "chance": {
-                        "birthday" : {
-                            "string": true
-                        }
-                    }
-                },
-                "email": {
-                    "type": "string",
-                    "format": "email",
-                    "faker": "internet.email"
-                }
-            },
-            "required": [
-                "id",
-                "name",
-                "birthday",
-                "email"
-            ]
-        }
-    },
-    "required": [
-        "user"
-    ],
-    "definitions": {
-        "positiveInt": {
-            "type": "integer",
-            "minimum": 0,
-            "minimumExclusive": true
-        }
-    }
-}
-},{}],12:[function(require,module,exports){
-module.exports={
-  "type": "string",
-  "chance": "guid"
-}
-},{}],13:[function(require,module,exports){
-module.exports={
-  "type": "string",
-  "chance": {
-    "first": {
-      "nationality": "it"
-    }
-  }
-}
-},{}],14:[function(require,module,exports){
-module.exports={
-    "type": "object",
-    "properties": {
-        "userId": {
-            "type": "string",
-            "chance": "guid"
-        },
-        "emailAddr": {
-            "type": "string",
-            "chance": {
-                "email": {
-                    "domain": "fake.com"
-                }
-            },
-            "pattern": ".+@fake.com"
-        }
-    },
-    "required": [
-        "userId",
-        "emailAddr"
-    ]
-}
-},{}],15:[function(require,module,exports){
-module.exports={
-  "type": "string",
-  "faker": {
-    "fake": "{{name.lastName}}, {{name.firstName}} {{name.suffix}}"
-  }
-}
-},{}],16:[function(require,module,exports){
-module.exports={
-  "type": "object",
-  "properties": {
-    "name": {
-      "type": "string",
-      "faker": "name.findName"
-    },
-    "email": {
-      "type": "string",
-      "faker": "internet.email"
-    }
-  },
-  "required": [
-    "name",
-    "email"
-  ]
-}
-},{}]},{},[5]);
diff --git a/public/v1/favicon.ico b/public/v1/favicon.ico
deleted file mode 100644
index a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a..0000000000000000000000000000000000000000
Binary files a/public/v1/favicon.ico and /dev/null differ
diff --git a/public/v1/index.html b/public/v1/index.html
deleted file mode 100644
index 43445b99ec5134183df7e9871f761dee079ce403..0000000000000000000000000000000000000000
--- a/public/v1/index.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<html>
-    <head>
-        <title>Fake your JSON-Schemas!</title>
-        <meta name="viewport" content="width=device-width, initial-scale=1">
-        <link rel="shortcut icon" type="image/icon" href="favicon.ico" />
-        <link href="vendor.css" rel="stylesheet">
-        <link href="bundle.css" rel="stylesheet">
-        <link href="http://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" rel="stylesheet">
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/json-schema-faker/0.3.6/json-schema-faker.js" type="text/javascript" charset="utf-8"></script>
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.3/ace.js" type="text/javascript" charset="utf-8"></script>
-        <script src="vendor.js"></script>
-        <script src="bundle.js"></script>
-        <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
-        <!--[if lt IE 9]>
-          <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
-          <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
-        <![endif]-->
-        <script async defer src="https://buttons.github.io/buttons.js"></script>
-    </head>
-    <body>
-        <nav class="navbar navbar-default navbar-fixed-top">
-            <div class="container">
-                <div class="navbar-header">
-                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
-                        <span class="sr-only">Toggle navigation</span>
-                        <span class="icon-bar"></span>
-                        <span class="icon-bar"></span>
-                        <span class="icon-bar"></span>
-                    </button>
-                    <a class="navbar-brand" href="#">json-schema-faker</a>
-                </div>
-                <div id="navbar" class="navbar-collapse collapse">
-                    <ul class="nav navbar-nav">
-                        <li class="dropdown">
-                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Samples <span class="caret"></span></a>
-                            <ul class="dropdown-menu" role="menu">
-                                <li class="dropdown-header">basic</li>
-                                <li><a href="#" id="example_basic_boolean" data-toggle="collapse" data-target=".navbar-collapse">boolean</a></li>
-                                <li><a href="#" id="example_basic_integer" data-toggle="collapse" data-target=".navbar-collapse">integer</a></li>
-                                <li><a href="#" id="example_basic_reference" data-toggle="collapse" data-target=".navbar-collapse">reference</a></li>
-                                <li class="divider"></li>
-                                <li class="dropdown-header">array</li>
-                                <li><a href="#" id="example_array_enum" data-toggle="collapse" data-target=".navbar-collapse">enums</a></li>
-                                <li><a href="#" id="example_array_fixed" data-toggle="collapse" data-target=".navbar-collapse">fixed values</a></li>
-                                <li><a href="#" id="example_array_nTimes" data-toggle="collapse" data-target=".navbar-collapse">n-times repeated</a></li>
-                                <li class="divider"></li>
-                                <li class="dropdown-header">faker.js</li>
-                                <li><a href="#" id="example_faker_properties" data-toggle="collapse" data-target=".navbar-collapse">properties</a></li>
-                                <li><a href="#" id="example_faker_fake" data-toggle="collapse" data-target=".navbar-collapse">faker.fake()</a></li>
-                                <li class="divider"></li>
-                                <li class="dropdown-header">chance.js</li>
-                                <li><a href="#" id="example_chance_guid" data-toggle="collapse" data-target=".navbar-collapse">guid</a></li>
-                                <li><a href="#" id="example_chance_name" data-toggle="collapse" data-target=".navbar-collapse">name</a></li>
-                                <li><a href="#" id="example_chance_properties" data-toggle="collapse" data-target=".navbar-collapse">properties</a></li>
-                            </ul>
-                        </li>
-                        <li class="dropdown">
-                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
-                            <ul class="dropdown-menu" role="menu">
-                                <li><a href="https://github.com/json-schema-faker/json-schema-faker/">GitHub</a></li>
-                                <li><a href="https://travis-ci.org/json-schema-faker/json-schema-faker">CI</a></li>
-                                <li><a href="https://github.com/json-schema-faker/json-schema-faker/issues/new">Contribution</a></li>
-                                <li class="divider"></li>
-                                <li class="dropdown-header">tools</li>
-                                <li><a href="https://github.com/json-schema-faker/angular-jsf">AngularJS module</a></li>
-                                <li><a href="https://github.com/json-schema-faker/grunt-jsonschema-faker">Grunt plugin</a></li>
-                                <li><a href="https://github.com/json-schema-faker/json-schema-server">JSF Server</a></li>
-                            </ul>
-                        </li>
-                        <li>
-                            <div class="github-star">
-                                <a class="github-button" href="https://github.com/json-schema-faker/json-schema-faker" data-style="mega" data-count-href="/json-schema-faker/json-schema-faker/stargazers" data-count-api="/repos/json-schema-faker/json-schema-faker#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star json-schema-faker/json-schema-faker on GitHub">Star</a>
-                            </div>
-                        </li>
-                    </ul>
-                    <ul class="nav navbar-nav navbar-right">
-                        <li><a href="https://github.com/marak/Faker.js/">faker.js</a></li>
-                        <li><a href="http://chancejs.com/">chance.js</a></li>
-                        <li><a href="http://fent.github.io/randexp.js/">randexp.js</a></li>
-                    </ul>
-                </div>
-            </div>
-        </nav>
-
-        <div class="container-fluid">
-            <div class="row">
-                <div class="col-xs-12">
-                    <p><strong>JSON Schema Faker</strong> combines <a href="http://json-schema.org/">JSON Schema</a> standard with fake data generators, allowing users to generate fake data that conform to the schema.</p>
-                    <p>This application is built using <a href="https://www.npmjs.com/package/json-schema-faker">json-schema-faker npm module</a> <strong>version 0.3.6</strong> built with <a href="http://browserify.org/">browserify</a>.</p>
-                </div>
-            </div>
-
-            <div class="row" id="message-box">
-            </div>
-
-            <div class="row">
-                <div class="col-xs-12 col-md-6">
-                    <div class="panel panel-default">
-                        <div class="panel-heading">
-                            <h3 class="panel-title">JSON Schema</h3>
-                        </div>
-                        <div class="panel-body">
-                            <div id="input"></div>
-                        </div>
-                    </div>
-                </div>
-                <div class="col-xs-12 col-md-6">
-                    <div class="panel panel-default">
-                        <div class="panel-heading">
-                            <h3 class="panel-title">Sample output</h3>
-                        </div>
-                        <div class="panel-body">
-                            <div id="output"></div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="row row-centered">
-                <a class="btn btn-lg btn-primary" id="run-btn" role="button">
-                    Generate sample
-                </a>
-                <a class="btn btn-lg btn-primary has-spinner" id="save-btn" role="button">
-                    <span class="spinner"><i class="icon-spin icon-refresh"></i></span>
-                    Save
-                </a>
-            </div>
-        </div>
-
-        <a class="github-ribbon" href="https://github.com/json-schema-faker/json-schema-faker">
-            <img src="https://camo.githubusercontent.com/a6677b08c955af8400f44c6298f40e7d19cc5b2d/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677261795f3664366436642e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png">
-        </a>
-
-        <script>
-          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-          ga('create', 'UA-62699942-1', 'auto');
-          ga('send', 'pageview');
-        </script>
-    </body>
-</html>
diff --git a/public/v1/vendor.css b/public/v1/vendor.css
deleted file mode 100644
index ab59c569660e20f6b53cb6ec52dad648fc4595b4..0000000000000000000000000000000000000000
--- a/public/v1/vendor.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap v3.3.7 (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.dropdown-menu,.modal-content{-webkit-background-clip:padding-box}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.carousel-inner,.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.carousel-control,.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;text-align:left;text-align:start;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;text-align:left;text-align:start;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.navbar-default,.navbar-inverse{border-radius:4px;background-repeat:repeat-x}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}/*!
- * Bootstrap v3.3.7 (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
\ No newline at end of file
diff --git a/public/v1/vendor.js b/public/v1/vendor.js
deleted file mode 100644
index 12d0294e00f0eb0ca8503aedb8ab7596a093771d..0000000000000000000000000000000000000000
--- a/public/v1/vendor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-if(function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a,b){b=b||_;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}function d(a){var b=!!a&&"length"in a&&a.length,c=ma.type(a);return"function"===c||ma.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function e(a,b,c){if(ma.isFunction(b))return ma.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return ma.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(wa.test(b))return ma.filter(b,a,c);b=ma.filter(b,a)}return ma.grep(a,function(a){return ea.call(b,a)>-1!==c&&1===a.nodeType})}function f(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function g(a){var b={};return ma.each(a.match(Ca)||[],function(a,c){b[c]=!0}),b}function h(a){return a}function i(a){throw a}function j(a,b,c){var d;try{a&&ma.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&ma.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}function k(){_.removeEventListener("DOMContentLoaded",k),a.removeEventListener("load",k),ma.ready()}function l(){this.expando=ma.expando+l.uid++}function m(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Ka,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:Ja.test(c)?JSON.parse(c):c}catch(e){}Ia.set(a,b,c)}else c=void 0;return c}function n(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return ma.css(a,b,"")},i=h(),j=c&&c[3]||(ma.cssNumber[b]?"":"px"),k=(ma.cssNumber[b]||"px"!==j&&+i)&&Ma.exec(ma.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,ma.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}function o(a){var b,c=a.ownerDocument,d=a.nodeName,e=Qa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=ma.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),Qa[d]=e,e)}function p(a,b){for(var c,d,e=[],f=0,g=a.length;g>f;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=Ha.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&Oa(d)&&(e[f]=o(d))):"none"!==c&&(e[f]="none",Ha.set(d,"display",c)));for(f=0;g>f;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}function q(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&ma.nodeName(a,b)?ma.merge([a],c):c}function r(a,b){for(var c=0,d=a.length;d>c;c++)Ha.set(a[c],"globalEval",!b||Ha.get(b[c],"globalEval"))}function s(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;o>n;n++)if(f=a[n],f||0===f)if("object"===ma.type(f))ma.merge(m,f.nodeType?[f]:f);else if(Va.test(f)){for(g=g||l.appendChild(b.createElement("div")),h=(Sa.exec(f)||["",""])[1].toLowerCase(),i=Ua[h]||Ua._default,g.innerHTML=i[1]+ma.htmlPrefilter(f)+i[2],k=i[0];k--;)g=g.lastChild;ma.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));for(l.textContent="",n=0;f=m[n++];)if(d&&ma.inArray(f,d)>-1)e&&e.push(f);else if(j=ma.contains(f.ownerDocument,f),g=q(l.appendChild(f),"script"),j&&r(g),c)for(k=0;f=g[k++];)Ta.test(f.type||"")&&c.push(f);return l}function t(){return!0}function u(){return!1}function v(){try{return _.activeElement}catch(a){}}function w(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)w(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=u;else if(!e)return a;return 1===f&&(g=e,e=function(a){return ma().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=ma.guid++)),a.each(function(){ma.event.add(this,b,e,d,c)})}function x(a,b){return ma.nodeName(a,"table")&&ma.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function y(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function z(a){var b=bb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function A(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(Ha.hasData(a)&&(f=Ha.access(a),g=Ha.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)ma.event.add(b,e,j[e][c])}Ia.hasData(a)&&(h=Ia.access(a),i=ma.extend({},h),Ia.set(b,i))}}function B(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Ra.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function C(a,b,d,e){b=ca.apply([],b);var f,g,h,i,j,k,l=0,m=a.length,n=m-1,o=b[0],p=ma.isFunction(o);if(p||m>1&&"string"==typeof o&&!ka.checkClone&&ab.test(o))return a.each(function(c){var f=a.eq(c);p&&(b[0]=o.call(this,c,f.html())),C(f,b,d,e)});if(m&&(f=s(b,a[0].ownerDocument,!1,a,e),g=f.firstChild,1===f.childNodes.length&&(f=g),g||e)){for(h=ma.map(q(f,"script"),y),i=h.length;m>l;l++)j=f,l!==n&&(j=ma.clone(j,!0,!0),i&&ma.merge(h,q(j,"script"))),d.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,ma.map(h,z),l=0;i>l;l++)j=h[l],Ta.test(j.type||"")&&!Ha.access(j,"globalEval")&&ma.contains(k,j)&&(j.src?ma._evalUrl&&ma._evalUrl(j.src):c(j.textContent.replace(cb,""),k))}return a}function D(a,b,c){for(var d,e=b?ma.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||ma.cleanData(q(d)),d.parentNode&&(c&&ma.contains(d.ownerDocument,d)&&r(q(d,"script")),d.parentNode.removeChild(d));return a}function E(a,b,c){var d,e,f,g,h=a.style;return c=c||fb(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||ma.contains(a.ownerDocument,a)||(g=ma.style(a,b)),!ka.pixelMarginRight()&&eb.test(g)&&db.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function F(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function G(a){if(a in kb)return a;for(var b=a[0].toUpperCase()+a.slice(1),c=jb.length;c--;)if(a=jb[c]+b,a in kb)return a}function H(a,b,c){var d=Ma.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function I(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=ma.css(a,c+Na[f],!0,e)),d?("content"===c&&(g-=ma.css(a,"padding"+Na[f],!0,e)),"margin"!==c&&(g-=ma.css(a,"border"+Na[f]+"Width",!0,e))):(g+=ma.css(a,"padding"+Na[f],!0,e),"padding"!==c&&(g+=ma.css(a,"border"+Na[f]+"Width",!0,e)));return g}function J(a,b,c){var d,e=!0,f=fb(a),g="border-box"===ma.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),0>=d||null==d){if(d=E(a,b,f),(0>d||null==d)&&(d=a.style[b]),eb.test(d))return d;e=g&&(ka.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+I(a,b,c||(g?"border":"content"),e,f)+"px"}function K(a,b,c,d,e){return new K.prototype.init(a,b,c,d,e)}function L(){mb&&(a.requestAnimationFrame(L),ma.fx.tick())}function M(){return a.setTimeout(function(){lb=void 0}),lb=ma.now()}function N(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=Na[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function O(a,b,c){for(var d,e=(R.tweeners[b]||[]).concat(R.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function P(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,q=a.nodeType&&Oa(a),r=Ha.get(a,"fxshow");c.queue||(g=ma._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,ma.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],nb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}n[d]=r&&r[d]||ma.style(a,d)}if(i=!ma.isEmptyObject(b),i||!ma.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=r&&r.display,null==j&&(j=Ha.get(a,"display")),k=ma.css(a,"display"),"none"===k&&(j?k=j:(p([a],!0),j=a.style.display||j,k=ma.css(a,"display"),p([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===ma.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(r?"hidden"in r&&(q=r.hidden):r=Ha.access(a,"fxshow",{display:j}),f&&(r.hidden=!q),q&&p([a],!0),m.done(function(){q||p([a]),Ha.remove(a,"fxshow");for(d in n)ma.style(a,d,n[d])})),i=O(q?r[d]:0,d,m),d in r||(r[d]=i.start,q&&(i.end=i.start,i.start=0))}}function Q(a,b){var c,d,e,f,g;for(c in a)if(d=ma.camelCase(c),e=b[d],f=a[c],ma.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=ma.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function R(a,b,c){var d,e,f=0,g=R.prefilters.length,h=ma.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=lb||M(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:ma.extend({},b),opts:ma.extend(!0,{specialEasing:{},easing:ma.easing._default},c),originalProperties:b,originalOptions:c,startTime:lb||M(),duration:c.duration,tweens:[],createTween:function(b,c){var d=ma.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Q(k,j.opts.specialEasing);g>f;f++)if(d=R.prefilters[f].call(j,a,k,j.opts))return ma.isFunction(d.stop)&&(ma._queueHooks(j.elem,j.opts.queue).stop=ma.proxy(d.stop,d)),d;return ma.map(k,O,j),ma.isFunction(j.opts.start)&&j.opts.start.call(a,j),ma.fx.timer(ma.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function S(a){return a.getAttribute&&a.getAttribute("class")||""}function T(a,b,c,d){var e;if(ma.isArray(b))ma.each(b,function(b,e){c||Ab.test(a)?d(a,e):T(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==ma.type(b))d(a,b);else for(e in b)T(a+"["+e+"]",b[e],c,d)}function U(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(Ca)||[];if(ma.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function V(a,b,c,d){function e(h){var i;return f[h]=!0,ma.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===Mb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function W(a,b){var c,d,e=ma.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&ma.extend(!0,a,d),a}function X(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Y(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function Z(a){return ma.isWindow(a)?a:9===a.nodeType&&a.defaultView}var $=[],_=a.document,aa=Object.getPrototypeOf,ba=$.slice,ca=$.concat,da=$.push,ea=$.indexOf,fa={},ga=fa.toString,ha=fa.hasOwnProperty,ia=ha.toString,ja=ia.call(Object),ka={},la="3.1.0",ma=function(a,b){return new ma.fn.init(a,b)},na=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,oa=/^-ms-/,pa=/-([a-z])/g,qa=function(a,b){return b.toUpperCase()};ma.fn=ma.prototype={jquery:la,constructor:ma,length:0,toArray:function(){return ba.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){var b=ma.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return ma.each(this,a)},map:function(a){return this.pushStack(ma.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:da,sort:$.sort,splice:$.splice},ma.extend=ma.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||ma.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(ma.isPlainObject(d)||(e=ma.isArray(d)))?(e?(e=!1,f=c&&ma.isArray(c)?c:[]):f=c&&ma.isPlainObject(c)?c:{},g[b]=ma.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},ma.extend({expando:"jQuery"+(la+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===ma.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=ma.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return a&&"[object Object]"===ga.call(a)?(b=aa(a))?(c=ha.call(b,"constructor")&&b.constructor,"function"==typeof c&&ia.call(c)===ja):!0:!1},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?fa[ga.call(a)]||"object":typeof a},globalEval:function(a){c(a)},camelCase:function(a){return a.replace(oa,"ms-").replace(pa,qa)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,e=0;if(d(a))for(c=a.length;c>e&&b.call(a[e],e,a[e])!==!1;e++);else for(e in a)if(b.call(a[e],e,a[e])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(na,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(d(Object(a))?ma.merge(c,"string"==typeof a?[a]:a):da.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:ea.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var e,f,g=0,h=[];if(d(a))for(e=a.length;e>g;g++)f=b(a[g],g,c),null!=f&&h.push(f);else for(g in a)f=b(a[g],g,c),null!=f&&h.push(f);return ca.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),ma.isFunction(a)?(d=ba.call(arguments,2),e=function(){return a.apply(b||this,d.concat(ba.call(arguments)))},e.guid=a.guid=a.guid||ma.guid++,e):void 0},now:Date.now,support:ka}),"function"==typeof Symbol&&(ma.fn[Symbol.iterator]=$[Symbol.iterator]),ma.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){fa["[object "+b+"]"]=b.toLowerCase()});var ra=function(a){function b(a,b,c,d){var e,f,g,h,i,j,k,m=b&&b.ownerDocument,o=b?b.nodeType:9;if(c=c||[],"string"!=typeof a||!a||1!==o&&9!==o&&11!==o)return c;if(!d&&((b?b.ownerDocument||b:P)!==H&&G(b),b=b||H,J)){if(11!==o&&(i=ra.exec(a)))if(e=i[1]){if(9===o){if(!(g=b.getElementById(e)))return c;if(g.id===e)return c.push(g),c}else if(m&&(g=m.getElementById(e))&&N(b,g)&&g.id===e)return c.push(g),c}else{if(i[2])return $.apply(c,b.getElementsByTagName(a)),c;if((e=i[3])&&w.getElementsByClassName&&b.getElementsByClassName)return $.apply(c,b.getElementsByClassName(e)),c}if(w.qsa&&!U[a+" "]&&(!K||!K.test(a))){if(1!==o)m=b,k=a;else if("object"!==b.nodeName.toLowerCase()){for((h=b.getAttribute("id"))?h=h.replace(va,wa):b.setAttribute("id",h=O),j=A(a),f=j.length;f--;)j[f]="#"+h+" "+n(j[f]);k=j.join(","),m=sa.test(a)&&l(b.parentNode)||b}if(k)try{return $.apply(c,m.querySelectorAll(k)),c}catch(p){}finally{h===O&&b.removeAttribute("id")}}}return C(a.replace(ha,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>x.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[O]=!0,a}function e(a){var b=H.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=c.length;d--;)x.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ya(b))!==a)}}function k(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function l(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function m(){}function n(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function o(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=R++;return b.first?function(b,c,e){for(;b=b[d];)if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[Q,h];if(i){for(;b=b[d];)if((1===b.nodeType||g)&&a(b,c,i))return!0}else for(;b=b[d];)if(1===b.nodeType||g)if(l=b[O]||(b[O]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===Q&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function q(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function r(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function s(a,b,c,e,f,g){return e&&!e[O]&&(e=s(e)),f&&!f[O]&&(f=s(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=d||q(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?p:r(p,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=r(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?aa(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=r(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):$.apply(g,t)})}function t(a){for(var b,c,d,e=a.length,f=x.relative[a[0].type],g=f||x.relative[" "],h=f?1:0,i=o(function(a){return a===b},g,!0),j=o(function(a){return aa(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==D)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];e>h;h++)if(c=x.relative[a[h].type])k=[o(p(k),c)];else{if(c=x.filter[a[h].type].apply(null,a[h].matches),c[O]){for(d=++h;e>d&&!x.relative[a[d].type];d++);return s(h>1&&p(k),h>1&&n(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ha,"$1"),c,d>h&&t(a.slice(h,d)),e>d&&t(a=a.slice(d)),e>d&&n(a))}k.push(c)}return p(k)}function u(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],q=[],s=D,t=d||f&&x.find.TAG("*",j),u=Q+=null==s?1:Math.random()||.1,v=t.length;for(j&&(D=g===H||g||j);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0,g||k.ownerDocument===H||(G(k),h=!J);m=a[l++];)if(m(k,g||H,h)){i.push(k);break}j&&(Q=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,q,g,h);if(d){if(n>0)for(;o--;)p[o]||q[o]||(q[o]=Y.call(i));q=r(q)}$.apply(i,q),j&&!d&&q.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(Q=u,D=s),p};return e?d(g):g}var v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O="sizzle"+1*new Date,P=a.document,Q=0,R=0,S=c(),T=c(),U=c(),V=function(a,b){return a===b&&(F=!0),0},W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,aa=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},ba="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ca="[\\x20\\t\\r\\n\\f]",da="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",ea="\\["+ca+"*("+da+")(?:"+ca+"*([*^$|!~]?=)"+ca+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+da+"))|)"+ca+"*\\]",fa=":("+da+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ea+")*)|.*)\\)|)",ga=new RegExp(ca+"+","g"),ha=new RegExp("^"+ca+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ca+"+$","g"),ia=new RegExp("^"+ca+"*,"+ca+"*"),ja=new RegExp("^"+ca+"*([>+~]|"+ca+")"+ca+"*"),ka=new RegExp("="+ca+"*([^\\]'\"]*?)"+ca+"*\\]","g"),la=new RegExp(fa),ma=new RegExp("^"+da+"$"),na={ID:new RegExp("^#("+da+")"),CLASS:new RegExp("^\\.("+da+")"),TAG:new RegExp("^("+da+"|[*])"),ATTR:new RegExp("^"+ea),PSEUDO:new RegExp("^"+fa),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ca+"*(even|odd|(([+-]|)(\\d*)n|)"+ca+"*(?:([+-]|)"+ca+"*(\\d+)|))"+ca+"*\\)|)","i"),bool:new RegExp("^(?:"+ba+")$","i"),needsContext:new RegExp("^"+ca+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ca+"*((?:-\\d)?\\d*)"+ca+"*\\)|)(?=[^-]|$)","i")},oa=/^(?:input|select|textarea|button)$/i,pa=/^h\d$/i,qa=/^[^{]+\{\s*\[native \w/,ra=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,sa=/[+~]/,ta=new RegExp("\\\\([\\da-f]{1,6}"+ca+"?|("+ca+")|.)","ig"),ua=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},va=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,wa=function(a,b){return b?"\x00"===a?"�":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},xa=function(){G()},ya=o(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{$.apply(X=_.call(P.childNodes),P.childNodes),X[P.childNodes.length].nodeType}catch(za){$={apply:X.length?function(a,b){Z.apply(a,_.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}w=b.support={},z=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},G=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:P;return d!==H&&9===d.nodeType&&d.documentElement?(H=d,I=H.documentElement,J=!z(H),P!==H&&(c=H.defaultView)&&c.top!==c&&(c.addEventListener?c.addEventListener("unload",xa,!1):c.attachEvent&&c.attachEvent("onunload",xa)),w.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),w.getElementsByTagName=e(function(a){return a.appendChild(H.createComment("")),!a.getElementsByTagName("*").length}),w.getElementsByClassName=qa.test(H.getElementsByClassName),w.getById=e(function(a){return I.appendChild(a).id=O,!H.getElementsByName||!H.getElementsByName(O).length}),w.getById?(x.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&J){var c=b.getElementById(a);return c?[c]:[]}},x.filter.ID=function(a){var b=a.replace(ta,ua);return function(a){return a.getAttribute("id")===b}}):(delete x.find.ID,x.filter.ID=function(a){var b=a.replace(ta,ua);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),x.find.TAG=w.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):w.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},x.find.CLASS=w.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&J?b.getElementsByClassName(a):void 0},L=[],K=[],(w.qsa=qa.test(H.querySelectorAll))&&(e(function(a){I.appendChild(a).innerHTML="<a id='"+O+"'></a><select id='"+O+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&K.push("[*^$]="+ca+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||K.push("\\["+ca+"*(?:value|"+ba+")"),a.querySelectorAll("[id~="+O+"-]").length||K.push("~="),a.querySelectorAll(":checked").length||K.push(":checked"),a.querySelectorAll("a#"+O+"+*").length||K.push(".#.+[+~]")}),e(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=H.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&K.push("name"+ca+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&K.push(":enabled",":disabled"),I.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&K.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),K.push(",.*:")})),(w.matchesSelector=qa.test(M=I.matches||I.webkitMatchesSelector||I.mozMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&e(function(a){w.disconnectedMatch=M.call(a,"*"),M.call(a,"[s!='']:x"),L.push("!=",fa)}),K=K.length&&new RegExp(K.join("|")),L=L.length&&new RegExp(L.join("|")),b=qa.test(I.compareDocumentPosition),N=b||qa.test(I.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},V=b?function(a,b){if(a===b)return F=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!w.sortDetached&&b.compareDocumentPosition(a)===c?a===H||a.ownerDocument===P&&N(P,a)?-1:b===H||b.ownerDocument===P&&N(P,b)?1:E?aa(E,a)-aa(E,b):0:4&c?-1:1)}:function(a,b){if(a===b)return F=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===H?-1:b===H?1:e?-1:f?1:E?aa(E,a)-aa(E,b):0;if(e===f)return g(a,b);for(c=a;c=c.parentNode;)h.unshift(c);for(c=b;c=c.parentNode;)i.unshift(c);for(;h[d]===i[d];)d++;return d?g(h[d],i[d]):h[d]===P?-1:i[d]===P?1:0},H):H},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==H&&G(a),c=c.replace(ka,"='$1']"),w.matchesSelector&&J&&!U[c+" "]&&(!L||!L.test(c))&&(!K||!K.test(c)))try{var d=M.call(a,c);if(d||w.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,H,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==H&&G(a),N(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==H&&G(a);var c=x.attrHandle[b.toLowerCase()],d=c&&W.call(x.attrHandle,b.toLowerCase())?c(a,b,!J):void 0;return void 0!==d?d:w.attributes||!J?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.escape=function(a){return(a+"").replace(va,wa)},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(F=!w.detectDuplicates,E=!w.sortStable&&a.slice(0),a.sort(V),F){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return E=null,a},y=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=y(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=y(b);return c},x=b.selectors={cacheLength:50,createPseudo:d,match:na,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ta,ua),a[3]=(a[3]||a[4]||a[5]||"").replace(ta,ua),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return na.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&la.test(c)&&(b=A(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ta,ua).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=S[a+" "];return b||(b=new RegExp("(^|"+ca+")"+a+"("+ca+"|$)"))&&S(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ga," ")+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){for(;p;){for(m=b;m=m[p];)if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(m=q,l=m[O]||(m[O]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===Q&&j[1],t=n&&j[2],m=n&&q.childNodes[n];m=++n&&m&&m[p]||(t=n=0)||o.pop();)if(1===m.nodeType&&++t&&m===b){k[a]=[Q,n,t];break}}else if(s&&(m=b,l=m[O]||(m[O]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===Q&&j[1],t=n),t===!1)for(;(m=++n&&m&&m[p]||(t=n=0)||o.pop())&&((h?m.nodeName.toLowerCase()!==r:1!==m.nodeType)||!++t||(s&&(l=m[O]||(m[O]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[Q,t]),m!==b)););return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,c){var e,f=x.pseudos[a]||x.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[O]?f(c):f.length>1?(e=[a,a,"",c],x.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=aa(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=B(a.replace(ha,"$1"));return e[O]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(ta,ua),function(b){return(b.textContent||b.innerText||y(b)).indexOf(a)>-1}}),lang:d(function(a){return ma.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(ta,ua).toLowerCase(),function(b){var c;do if(c=J?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===I},focus:function(a){return a===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:j(!1),disabled:j(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0;
-},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!x.pseudos.empty(a)},header:function(a){return pa.test(a.nodeName)},input:function(a){return oa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:k(function(){return[0]}),last:k(function(a,b){return[b-1]}),eq:k(function(a,b,c){return[0>c?c+b:c]}),even:k(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:k(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:k(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:k(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},x.pseudos.nth=x.pseudos.eq;for(v in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[v]=h(v);for(v in{submit:!0,reset:!0})x.pseudos[v]=i(v);return m.prototype=x.filters=x.pseudos,x.setFilters=new m,A=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=T[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=x.preFilter;h;){d&&!(e=ia.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ja.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ha," ")}),h=h.slice(d.length));for(g in x.filter)!(e=na[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):T(a,i).slice(0)},B=b.compile=function(a,b){var c,d=[],e=[],f=U[a+" "];if(!f){for(b||(b=A(a)),c=b.length;c--;)f=t(b[c]),f[O]?d.push(f):e.push(f);f=U(a,u(e,d)),f.selector=a}return f},C=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,k=!d&&A(a=j.selector||a);if(c=c||[],1===k.length){if(f=k[0]=k[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&w.getById&&9===b.nodeType&&J&&x.relative[f[1].type]){if(b=(x.find.ID(g.matches[0].replace(ta,ua),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=na.needsContext.test(a)?0:f.length;e--&&(g=f[e],!x.relative[h=g.type]);)if((i=x.find[h])&&(d=i(g.matches[0].replace(ta,ua),sa.test(f[0].type)&&l(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&n(f),!a)return $.apply(c,d),c;break}}return(j||B(a,k))(d,b,!J,c,!b||sa.test(a)&&l(b.parentNode)||b),c},w.sortStable=O.split("").sort(V).join("")===O,w.detectDuplicates=!!F,G(),w.sortDetached=e(function(a){return 1&a.compareDocumentPosition(H.createElement("fieldset"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),w.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(ba,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);ma.find=ra,ma.expr=ra.selectors,ma.expr[":"]=ma.expr.pseudos,ma.uniqueSort=ma.unique=ra.uniqueSort,ma.text=ra.getText,ma.isXMLDoc=ra.isXML,ma.contains=ra.contains,ma.escapeSelector=ra.escape;var sa=function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&ma(a).is(c))break;d.push(a)}return d},ta=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},ua=ma.expr.match.needsContext,va=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,wa=/^.[^:#\[\.,]*$/;ma.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?ma.find.matchesSelector(d,a)?[d]:[]:ma.find.matches(a,ma.grep(b,function(a){return 1===a.nodeType}))},ma.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(ma(a).filter(function(){for(b=0;d>b;b++)if(ma.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;d>b;b++)ma.find(a,e[b],c);return d>1?ma.uniqueSort(c):c},filter:function(a){return this.pushStack(e(this,a||[],!1))},not:function(a){return this.pushStack(e(this,a||[],!0))},is:function(a){return!!e(this,"string"==typeof a&&ua.test(a)?ma(a):a||[],!1).length}});var xa,ya=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,za=ma.fn.init=function(a,b,c){var d,e;if(!a)return this;if(c=c||xa,"string"==typeof a){if(d="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:ya.exec(a),!d||!d[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(d[1]){if(b=b instanceof ma?b[0]:b,ma.merge(this,ma.parseHTML(d[1],b&&b.nodeType?b.ownerDocument||b:_,!0)),va.test(d[1])&&ma.isPlainObject(b))for(d in b)ma.isFunction(this[d])?this[d](b[d]):this.attr(d,b[d]);return this}return e=_.getElementById(d[2]),e&&(this[0]=e,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):ma.isFunction(a)?void 0!==c.ready?c.ready(a):a(ma):ma.makeArray(a,this)};za.prototype=ma.fn,xa=ma(_);var Aa=/^(?:parents|prev(?:Until|All))/,Ba={children:!0,contents:!0,next:!0,prev:!0};ma.fn.extend({has:function(a){var b=ma(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(ma.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&ma(a);if(!ua.test(a))for(;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&ma.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?ma.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?ea.call(ma(a),this[0]):ea.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(ma.uniqueSort(ma.merge(this.get(),ma(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),ma.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return sa(a,"parentNode")},parentsUntil:function(a,b,c){return sa(a,"parentNode",c)},next:function(a){return f(a,"nextSibling")},prev:function(a){return f(a,"previousSibling")},nextAll:function(a){return sa(a,"nextSibling")},prevAll:function(a){return sa(a,"previousSibling")},nextUntil:function(a,b,c){return sa(a,"nextSibling",c)},prevUntil:function(a,b,c){return sa(a,"previousSibling",c)},siblings:function(a){return ta((a.parentNode||{}).firstChild,a)},children:function(a){return ta(a.firstChild)},contents:function(a){return a.contentDocument||ma.merge([],a.childNodes)}},function(a,b){ma.fn[a]=function(c,d){var e=ma.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=ma.filter(d,e)),this.length>1&&(Ba[a]||ma.uniqueSort(e),Aa.test(a)&&e.reverse()),this.pushStack(e)}});var Ca=/\S+/g;ma.Callbacks=function(a){a="string"==typeof a?g(a):ma.extend({},a);var b,c,d,e,f=[],h=[],i=-1,j=function(){for(e=a.once,d=b=!0;h.length;i=-1)for(c=h.shift();++i<f.length;)f[i].apply(c[0],c[1])===!1&&a.stopOnFalse&&(i=f.length,c=!1);a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},k={add:function(){return f&&(c&&!b&&(i=f.length-1,h.push(c)),function d(b){ma.each(b,function(b,c){ma.isFunction(c)?a.unique&&k.has(c)||f.push(c):c&&c.length&&"string"!==ma.type(c)&&d(c)})}(arguments),c&&!b&&j()),this},remove:function(){return ma.each(arguments,function(a,b){for(var c;(c=ma.inArray(b,f,c))>-1;)f.splice(c,1),i>=c&&i--}),this},has:function(a){return a?ma.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=h=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=h=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],h.push(c),b||j()),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},ma.extend({Deferred:function(b){var c=[["notify","progress",ma.Callbacks("memory"),ma.Callbacks("memory"),2],["resolve","done",ma.Callbacks("once memory"),ma.Callbacks("once memory"),0,"resolved"],["reject","fail",ma.Callbacks("once memory"),ma.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return ma.Deferred(function(b){ma.each(c,function(c,d){var e=ma.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&ma.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){function f(b,c,d,e){return function(){var j=this,k=arguments,l=function(){var a,l;if(!(g>b)){if(a=d.apply(j,k),a===c.promise())throw new TypeError("Thenable self-resolution");l=a&&("object"==typeof a||"function"==typeof a)&&a.then,ma.isFunction(l)?e?l.call(a,f(g,c,h,e),f(g,c,i,e)):(g++,l.call(a,f(g,c,h,e),f(g,c,i,e),f(g,c,h,c.notifyWith))):(d!==h&&(j=void 0,k=[a]),(e||c.resolveWith)(j,k))}},m=e?l:function(){try{l()}catch(a){ma.Deferred.exceptionHook&&ma.Deferred.exceptionHook(a,m.stackTrace),b+1>=g&&(d!==i&&(j=void 0,k=[a]),c.rejectWith(j,k))}};b?m():(ma.Deferred.getStackHook&&(m.stackTrace=ma.Deferred.getStackHook()),a.setTimeout(m))}}var g=0;return ma.Deferred(function(a){c[0][3].add(f(0,a,ma.isFunction(e)?e:h,a.notifyWith)),c[1][3].add(f(0,a,ma.isFunction(b)?b:h)),c[2][3].add(f(0,a,ma.isFunction(d)?d:i))}).promise()},promise:function(a){return null!=a?ma.extend(a,e):e}},f={};return ma.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=ba.call(arguments),f=ma.Deferred(),g=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?ba.call(arguments):c,--b||f.resolveWith(d,e)}};if(1>=b&&(j(a,f.done(g(c)).resolve,f.reject),"pending"===f.state()||ma.isFunction(e[c]&&e[c].then)))return f.then();for(;c--;)j(e[c],g(c),f.reject);return f.promise()}});var Da=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ma.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Da.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},ma.readyException=function(b){a.setTimeout(function(){throw b})};var Ea=ma.Deferred();ma.fn.ready=function(a){return Ea.then(a)["catch"](function(a){ma.readyException(a)}),this},ma.extend({isReady:!1,readyWait:1,holdReady:function(a){a?ma.readyWait++:ma.ready(!0)},ready:function(a){(a===!0?--ma.readyWait:ma.isReady)||(ma.isReady=!0,a!==!0&&--ma.readyWait>0||Ea.resolveWith(_,[ma]))}}),ma.ready.then=Ea.then,"complete"===_.readyState||"loading"!==_.readyState&&!_.documentElement.doScroll?a.setTimeout(ma.ready):(_.addEventListener("DOMContentLoaded",k),a.addEventListener("load",k));var Fa=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===ma.type(c)){e=!0;for(h in c)Fa(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,ma.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(ma(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Ga=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};l.uid=1,l.prototype={cache:function(a){var b=a[this.expando];return b||(b={},Ga(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[ma.camelCase(b)]=c;else for(d in b)e[ma.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][ma.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){ma.isArray(b)?b=b.map(ma.camelCase):(b=ma.camelCase(b),b=b in d?[b]:b.match(Ca)||[]),c=b.length;for(;c--;)delete d[b[c]]}(void 0===b||ma.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!ma.isEmptyObject(b)}};var Ha=new l,Ia=new l,Ja=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ka=/[A-Z]/g;ma.extend({hasData:function(a){return Ia.hasData(a)||Ha.hasData(a)},data:function(a,b,c){return Ia.access(a,b,c)},removeData:function(a,b){Ia.remove(a,b)},_data:function(a,b,c){return Ha.access(a,b,c)},_removeData:function(a,b){Ha.remove(a,b)}}),ma.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=Ia.get(f),1===f.nodeType&&!Ha.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=ma.camelCase(d.slice(5)),m(f,d,e[d])));Ha.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){Ia.set(this,a)}):Fa(this,function(b){var c;if(f&&void 0===b){if(c=Ia.get(f,a),void 0!==c)return c;if(c=m(f,a),void 0!==c)return c}else this.each(function(){Ia.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){Ia.remove(this,a)})}}),ma.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=Ha.get(a,b),c&&(!d||ma.isArray(c)?d=Ha.access(a,b,ma.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=ma.queue(a,b),d=c.length,e=c.shift(),f=ma._queueHooks(a,b),g=function(){ma.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return Ha.get(a,c)||Ha.access(a,c,{empty:ma.Callbacks("once memory").add(function(){Ha.remove(a,[b+"queue",c])})})}}),ma.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?ma.queue(this[0],a):void 0===b?this:this.each(function(){var c=ma.queue(this,a,b);ma._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&ma.dequeue(this,a)})},dequeue:function(a){return this.each(function(){ma.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=ma.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=Ha.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var La=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Ma=new RegExp("^(?:([+-])=|)("+La+")([a-z%]*)$","i"),Na=["Top","Right","Bottom","Left"],Oa=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&ma.contains(a.ownerDocument,a)&&"none"===ma.css(a,"display")},Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa={};ma.fn.extend({show:function(){return p(this,!0)},hide:function(){return p(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){Oa(this)?ma(this).show():ma(this).hide()})}});var Ra=/^(?:checkbox|radio)$/i,Sa=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Ta=/^$|\/(?:java|ecma)script/i,Ua={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ua.optgroup=Ua.option,Ua.tbody=Ua.tfoot=Ua.colgroup=Ua.caption=Ua.thead,Ua.th=Ua.td;var Va=/<|&#?\w+;/;!function(){var a=_.createDocumentFragment(),b=a.appendChild(_.createElement("div")),c=_.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),ka.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",ka.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var Wa=_.documentElement,Xa=/^key/,Ya=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Za=/^([^.]*)(?:\.(.+)|)/;ma.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=Ha.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),e&&ma.find.matchesSelector(Wa,e),c.guid||(c.guid=ma.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof ma&&ma.event.triggered!==b.type?ma.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(Ca)||[""],j=b.length;j--;)h=Za.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=ma.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=ma.event.special[n]||{},k=ma.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&ma.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),ma.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=Ha.hasData(a)&&Ha.get(a);if(q&&(i=q.events)){for(b=(b||"").match(Ca)||[""],j=b.length;j--;)if(h=Za.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=ma.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||ma.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)ma.event.remove(a,n+b[j],c,d,!0);ma.isEmptyObject(i)&&Ha.remove(a,"handle events")}},dispatch:function(a){var b,c,d,e,f,g,h=ma.event.fix(a),i=new Array(arguments.length),j=(Ha.get(this,"events")||{})[h.type]||[],k=ma.event.special[h.type]||{};for(i[0]=h,b=1;b<arguments.length;b++)i[b]=arguments[b];if(h.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,h)!==!1){for(g=ma.event.handlers.call(this,h,j),b=0;(e=g[b++])&&!h.isPropagationStopped();)for(h.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!h.isImmediatePropagationStopped();)h.rnamespace&&!h.rnamespace.test(f.namespace)||(h.handleObj=f,h.data=f.data,d=((ma.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,i),void 0!==d&&(h.result=d)===!1&&(h.preventDefault(),h.stopPropagation()));return k.postDispatch&&k.postDispatch.call(this,h),h.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?ma(e,this).index(i)>-1:ma.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(ma.Event.prototype,a,{enumerable:!0,configurable:!0,get:ma.isFunction(b)?function(){return this.originalEvent?b(this.originalEvent):void 0}:function(){return this.originalEvent?this.originalEvent[a]:void 0},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[ma.expando]?a:new ma.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==v()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===v()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&ma.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return ma.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},ma.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},ma.Event=function(a,b){return this instanceof ma.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?t:u,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&ma.extend(this,b),this.timeStamp=a&&a.timeStamp||ma.now(),void(this[ma.expando]=!0)):new ma.Event(a,b)},ma.Event.prototype={constructor:ma.Event,isDefaultPrevented:u,isPropagationStopped:u,isImmediatePropagationStopped:u,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=t,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=t,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=t,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},ma.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&Xa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&Ya.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},ma.event.addProp),ma.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){ma.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||ma.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),ma.fn.extend({on:function(a,b,c,d){return w(this,a,b,c,d)},one:function(a,b,c,d){return w(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,ma(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=u),this.each(function(){ma.event.remove(this,a,c,b)})}});var $a=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,_a=/<script|<style|<link/i,ab=/checked\s*(?:[^=]|=\s*.checked.)/i,bb=/^true\/(.*)/,cb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;ma.extend({htmlPrefilter:function(a){return a.replace($a,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=ma.contains(a.ownerDocument,a);if(!(ka.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||ma.isXMLDoc(a)))for(g=q(h),f=q(a),d=0,e=f.length;e>d;d++)B(f[d],g[d]);if(b)if(c)for(f=f||q(a),g=g||q(h),d=0,e=f.length;e>d;d++)A(f[d],g[d]);else A(a,h);return g=q(h,"script"),g.length>0&&r(g,!i&&q(a,"script")),h},cleanData:function(a){for(var b,c,d,e=ma.event.special,f=0;void 0!==(c=a[f]);f++)if(Ga(c)){if(b=c[Ha.expando]){if(b.events)for(d in b.events)e[d]?ma.event.remove(c,d):ma.removeEvent(c,d,b.handle);c[Ha.expando]=void 0}c[Ia.expando]&&(c[Ia.expando]=void 0)}}}),ma.fn.extend({detach:function(a){return D(this,a,!0)},remove:function(a){return D(this,a)},text:function(a){return Fa(this,function(a){return void 0===a?ma.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return C(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=x(this,a);b.appendChild(a)}})},prepend:function(){return C(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=x(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return C(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return C(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(ma.cleanData(q(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return ma.clone(this,a,b)})},html:function(a){return Fa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!_a.test(a)&&!Ua[(Sa.exec(a)||["",""])[1].toLowerCase()]){a=ma.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(ma.cleanData(q(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return C(this,arguments,function(b){var c=this.parentNode;ma.inArray(this,a)<0&&(ma.cleanData(q(this)),c&&c.replaceChild(b,this))},a)}}),ma.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){ma.fn[a]=function(a){for(var c,d=[],e=ma(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),ma(e[g])[b](c),da.apply(d,c.get());return this.pushStack(d)}});var db=/^margin/,eb=new RegExp("^("+La+")(?!px)[a-z%]+$","i"),fb=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(h){h.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",h.innerHTML="",Wa.appendChild(g);var b=a.getComputedStyle(h);c="1%"!==b.top,f="2px"===b.marginLeft,d="4px"===b.width,h.style.marginRight="50%",e="4px"===b.marginRight,Wa.removeChild(g),h=null}}var c,d,e,f,g=_.createElement("div"),h=_.createElement("div");h.style&&(h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",ka.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",g.appendChild(h),ma.extend(ka,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),d},pixelMarginRight:function(){return b(),e},reliableMarginLeft:function(){return b(),f}}))}();var gb=/^(none|table(?!-c[ea]).+)/,hb={position:"absolute",visibility:"hidden",display:"block"},ib={letterSpacing:"0",fontWeight:"400"},jb=["Webkit","Moz","ms"],kb=_.createElement("div").style;ma.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=E(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=ma.camelCase(b),i=a.style;return b=ma.cssProps[h]||(ma.cssProps[h]=G(h)||h),g=ma.cssHooks[b]||ma.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ma.exec(c))&&e[1]&&(c=n(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(ma.cssNumber[h]?"":"px")),ka.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=ma.camelCase(b);return b=ma.cssProps[h]||(ma.cssProps[h]=G(h)||h),g=ma.cssHooks[b]||ma.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=E(a,b,d)),"normal"===e&&b in ib&&(e=ib[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),ma.each(["height","width"],function(a,b){ma.cssHooks[b]={get:function(a,c,d){return c?!gb.test(ma.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?J(a,b,d):Pa(a,hb,function(){return J(a,b,d)}):void 0},set:function(a,c,d){var e,f=d&&fb(a),g=d&&I(a,b,d,"border-box"===ma.css(a,"boxSizing",!1,f),f);return g&&(e=Ma.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=ma.css(a,b)),H(a,c,g)}}}),ma.cssHooks.marginLeft=F(ka.reliableMarginLeft,function(a,b){return b?(parseFloat(E(a,"marginLeft"))||a.getBoundingClientRect().left-Pa(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px":void 0}),ma.each({margin:"",padding:"",border:"Width"},function(a,b){ma.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+Na[d]+b]=f[d]||f[d-2]||f[0];return e}},db.test(a)||(ma.cssHooks[a+b].set=H)}),ma.fn.extend({css:function(a,b){return Fa(this,function(a,b,c){var d,e,f={},g=0;if(ma.isArray(b)){for(d=fb(a),e=b.length;e>g;g++)f[b[g]]=ma.css(a,b[g],!1,d);return f}return void 0!==c?ma.style(a,b,c):ma.css(a,b)},a,b,arguments.length>1)}}),ma.Tween=K,K.prototype={constructor:K,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||ma.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(ma.cssNumber[c]?"":"px")},cur:function(){var a=K.propHooks[this.prop];return a&&a.get?a.get(this):K.propHooks._default.get(this)},run:function(a){var b,c=K.propHooks[this.prop];return this.options.duration?this.pos=b=ma.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):K.propHooks._default.set(this),this}},K.prototype.init.prototype=K.prototype,K.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=ma.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){ma.fx.step[a.prop]?ma.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[ma.cssProps[a.prop]]&&!ma.cssHooks[a.prop]?a.elem[a.prop]=a.now:ma.style(a.elem,a.prop,a.now+a.unit)}}},K.propHooks.scrollTop=K.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},ma.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},ma.fx=K.prototype.init,ma.fx.step={};var lb,mb,nb=/^(?:toggle|show|hide)$/,ob=/queueHooks$/;ma.Animation=ma.extend(R,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return n(c.elem,a,Ma.exec(b),c),c}]},tweener:function(a,b){ma.isFunction(a)?(b=a,a=["*"]):a=a.match(Ca);for(var c,d=0,e=a.length;e>d;d++)c=a[d],R.tweeners[c]=R.tweeners[c]||[],R.tweeners[c].unshift(b)},prefilters:[P],prefilter:function(a,b){b?R.prefilters.unshift(a):R.prefilters.push(a)}}),ma.speed=function(a,b,c){var d=a&&"object"==typeof a?ma.extend({},a):{complete:c||!c&&b||ma.isFunction(a)&&a,duration:a,easing:c&&b||b&&!ma.isFunction(b)&&b};return ma.fx.off||_.hidden?d.duration=0:d.duration="number"==typeof d.duration?d.duration:d.duration in ma.fx.speeds?ma.fx.speeds[d.duration]:ma.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){ma.isFunction(d.old)&&d.old.call(this),d.queue&&ma.dequeue(this,d.queue)},d},ma.fn.extend({fadeTo:function(a,b,c,d){return this.filter(Oa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=ma.isEmptyObject(a),f=ma.speed(b,c,d),g=function(){var b=R(this,ma.extend({},a),f);(e||Ha.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=ma.timers,g=Ha.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ob.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||ma.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=Ha.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=ma.timers,g=d?d.length:0;for(c.finish=!0,ma.queue(this,a,[]),
-e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),ma.each(["toggle","show","hide"],function(a,b){var c=ma.fn[b];ma.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(N(b,!0),a,d,e)}}),ma.each({slideDown:N("show"),slideUp:N("hide"),slideToggle:N("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){ma.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),ma.timers=[],ma.fx.tick=function(){var a,b=0,c=ma.timers;for(lb=ma.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||ma.fx.stop(),lb=void 0},ma.fx.timer=function(a){ma.timers.push(a),a()?ma.fx.start():ma.timers.pop()},ma.fx.interval=13,ma.fx.start=function(){mb||(mb=a.requestAnimationFrame?a.requestAnimationFrame(L):a.setInterval(ma.fx.tick,ma.fx.interval))},ma.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(mb):a.clearInterval(mb),mb=null},ma.fx.speeds={slow:600,fast:200,_default:400},ma.fn.delay=function(b,c){return b=ma.fx?ma.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=_.createElement("input"),b=_.createElement("select"),c=b.appendChild(_.createElement("option"));a.type="checkbox",ka.checkOn=""!==a.value,ka.optSelected=c.selected,a=_.createElement("input"),a.value="t",a.type="radio",ka.radioValue="t"===a.value}();var pb,qb=ma.expr.attrHandle;ma.fn.extend({attr:function(a,b){return Fa(this,ma.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){ma.removeAttr(this,a)})}}),ma.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?ma.prop(a,b,c):(1===f&&ma.isXMLDoc(a)||(e=ma.attrHooks[b.toLowerCase()]||(ma.expr.match.bool.test(b)?pb:void 0)),void 0!==c?null===c?void ma.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=ma.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!ka.radioValue&&"radio"===b&&ma.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(Ca);if(e&&1===a.nodeType)for(;c=e[d++];)a.removeAttribute(c)}}),pb={set:function(a,b,c){return b===!1?ma.removeAttr(a,c):a.setAttribute(c,c),c}},ma.each(ma.expr.match.bool.source.match(/\w+/g),function(a,b){var c=qb[b]||ma.find.attr;qb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=qb[g],qb[g]=e,e=null!=c(a,b,d)?g:null,qb[g]=f),e}});var rb=/^(?:input|select|textarea|button)$/i,sb=/^(?:a|area)$/i;ma.fn.extend({prop:function(a,b){return Fa(this,ma.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[ma.propFix[a]||a]})}}),ma.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&ma.isXMLDoc(a)||(b=ma.propFix[b]||b,e=ma.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=ma.find.attr(a,"tabindex");return b?parseInt(b,10):rb.test(a.nodeName)||sb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),ka.optSelected||(ma.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),ma.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ma.propFix[this.toLowerCase()]=this});var tb=/[\t\r\n\f]/g;ma.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(ma.isFunction(a))return this.each(function(b){ma(this).addClass(a.call(this,b,S(this)))});if("string"==typeof a&&a)for(b=a.match(Ca)||[];c=this[i++];)if(e=S(c),d=1===c.nodeType&&(" "+e+" ").replace(tb," ")){for(g=0;f=b[g++];)d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=ma.trim(d),e!==h&&c.setAttribute("class",h)}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(ma.isFunction(a))return this.each(function(b){ma(this).removeClass(a.call(this,b,S(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a)for(b=a.match(Ca)||[];c=this[i++];)if(e=S(c),d=1===c.nodeType&&(" "+e+" ").replace(tb," ")){for(g=0;f=b[g++];)for(;d.indexOf(" "+f+" ")>-1;)d=d.replace(" "+f+" "," ");h=ma.trim(d),e!==h&&c.setAttribute("class",h)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):ma.isFunction(a)?this.each(function(c){ma(this).toggleClass(a.call(this,c,S(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c)for(d=0,e=ma(this),f=a.match(Ca)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else void 0!==a&&"boolean"!==c||(b=S(this),b&&Ha.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":Ha.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;for(b=" "+a+" ";c=this[d++];)if(1===c.nodeType&&(" "+S(c)+" ").replace(tb," ").indexOf(b)>-1)return!0;return!1}});var ub=/\r/g,vb=/[\x20\t\r\n\f]+/g;ma.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=ma.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,ma(this).val()):a,null==e?e="":"number"==typeof e?e+="":ma.isArray(e)&&(e=ma.map(e,function(a){return null==a?"":a+""})),b=ma.valHooks[this.type]||ma.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=ma.valHooks[e.type]||ma.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ub,""):null==c?"":c)}}}),ma.extend({valHooks:{option:{get:function(a){var b=ma.find.attr(a,"value");return null!=b?b:ma.trim(ma.text(a)).replace(vb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!ma.nodeName(c.parentNode,"optgroup"))){if(b=ma(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=ma.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=ma.inArray(ma.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),ma.each(["radio","checkbox"],function(){ma.valHooks[this]={set:function(a,b){return ma.isArray(b)?a.checked=ma.inArray(ma(a).val(),b)>-1:void 0}},ka.checkOn||(ma.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var wb=/^(?:focusinfocus|focusoutblur)$/;ma.extend(ma.event,{trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||_],n=ha.call(b,"type")?b.type:b,o=ha.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||_,3!==d.nodeType&&8!==d.nodeType&&!wb.test(n+ma.event.triggered)&&(n.indexOf(".")>-1&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[ma.expando]?b:new ma.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:ma.makeArray(c,[b]),l=ma.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!ma.isWindow(d)){for(i=l.delegateType||n,wb.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||_)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(Ha.get(g,"events")||{})[b.type]&&Ha.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&Ga(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!Ga(d)||j&&ma.isFunction(d[n])&&!ma.isWindow(d)&&(h=d[j],h&&(d[j]=null),ma.event.triggered=n,d[n](),ma.event.triggered=void 0,h&&(d[j]=h)),b.result}},simulate:function(a,b,c){var d=ma.extend(new ma.Event,c,{type:a,isSimulated:!0});ma.event.trigger(d,null,b)}}),ma.fn.extend({trigger:function(a,b){return this.each(function(){ma.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?ma.event.trigger(a,b,c,!0):void 0}}),ma.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){ma.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),ma.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),ka.focusin="onfocusin"in a,ka.focusin||ma.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){ma.event.simulate(b,a.target,ma.event.fix(a))};ma.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=Ha.access(d,b);e||d.addEventListener(a,c,!0),Ha.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=Ha.access(d,b)-1;e?Ha.access(d,b,e):(d.removeEventListener(a,c,!0),Ha.remove(d,b))}}});var xb=a.location,yb=ma.now(),zb=/\?/;ma.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||ma.error("Invalid XML: "+b),c};var Ab=/\[\]$/,Bb=/\r?\n/g,Cb=/^(?:submit|button|image|reset|file)$/i,Db=/^(?:input|select|textarea|keygen)/i;ma.param=function(a,b){var c,d=[],e=function(a,b){var c=ma.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(ma.isArray(a)||a.jquery&&!ma.isPlainObject(a))ma.each(a,function(){e(this.name,this.value)});else for(c in a)T(c,a[c],b,e);return d.join("&")},ma.fn.extend({serialize:function(){return ma.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=ma.prop(this,"elements");return a?ma.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!ma(this).is(":disabled")&&Db.test(this.nodeName)&&!Cb.test(a)&&(this.checked||!Ra.test(a))}).map(function(a,b){var c=ma(this).val();return null==c?null:ma.isArray(c)?ma.map(c,function(a){return{name:b.name,value:a.replace(Bb,"\r\n")}}):{name:b.name,value:c.replace(Bb,"\r\n")}}).get()}});var Eb=/%20/g,Fb=/#.*$/,Gb=/([?&])_=[^&]*/,Hb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ib=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Jb=/^(?:GET|HEAD)$/,Kb=/^\/\//,Lb={},Mb={},Nb="*/".concat("*"),Ob=_.createElement("a");Ob.href=xb.href,ma.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xb.href,type:"GET",isLocal:Ib.test(xb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ma.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?W(W(a,ma.ajaxSettings),b):W(ma.ajaxSettings,a)},ajaxPrefilter:U(Lb),ajaxTransport:U(Mb),ajax:function(b,c){function d(b,c,d,h){var j,m,n,u,v,w=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",x.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(u=X(o,x,d)),u=Y(o,u,x,j),j?(o.ifModified&&(v=x.getResponseHeader("Last-Modified"),v&&(ma.lastModified[f]=v),v=x.getResponseHeader("etag"),v&&(ma.etag[f]=v)),204===b||"HEAD"===o.type?w="nocontent":304===b?w="notmodified":(w=u.state,m=u.data,n=u.error,j=!n)):(n=w,!b&&w||(w="error",0>b&&(b=0))),x.status=b,x.statusText=(c||w)+"",j?r.resolveWith(p,[m,w,x]):r.rejectWith(p,[x,w,n]),x.statusCode(t),t=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[x,o,j?m:n]),s.fireWith(p,[x,w]),l&&(q.trigger("ajaxComplete",[x,o]),--ma.active||ma.event.trigger("ajaxStop")))}"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=ma.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?ma(p):ma.event,r=ma.Deferred(),s=ma.Callbacks("once memory"),t=o.statusCode||{},u={},v={},w="canceled",x={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h)for(h={};b=Hb.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=v[a.toLowerCase()]=v[a.toLowerCase()]||a,u[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)x.always(a[x.status]);else for(b in a)t[b]=[t[b],a[b]];return this},abort:function(a){var b=a||w;return e&&e.abort(b),d(0,b),this}};if(r.promise(x),o.url=((b||o.url||xb.href)+"").replace(Kb,xb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(Ca)||[""],null==o.crossDomain){j=_.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ob.protocol+"//"+Ob.host!=j.protocol+"//"+j.host}catch(y){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=ma.param(o.data,o.traditional)),V(Lb,o,c,x),k)return x;l=ma.event&&o.global,l&&0===ma.active++&&ma.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Jb.test(o.type),f=o.url.replace(Fb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Eb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(zb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Gb,""),n=(zb.test(f)?"&":"?")+"_="+yb++ +n),o.url=f+n),o.ifModified&&(ma.lastModified[f]&&x.setRequestHeader("If-Modified-Since",ma.lastModified[f]),ma.etag[f]&&x.setRequestHeader("If-None-Match",ma.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",o.contentType),x.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Nb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)x.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,x,o)===!1||k))return x.abort();if(w="abort",s.add(o.complete),x.done(o.success),x.fail(o.error),e=V(Mb,o,c,x)){if(x.readyState=1,l&&q.trigger("ajaxSend",[x,o]),k)return x;o.async&&o.timeout>0&&(i=a.setTimeout(function(){x.abort("timeout")},o.timeout));try{k=!1,e.send(u,d)}catch(y){if(k)throw y;d(-1,y)}}else d(-1,"No Transport");return x},getJSON:function(a,b,c){return ma.get(a,b,c,"json")},getScript:function(a,b){return ma.get(a,void 0,b,"script")}}),ma.each(["get","post"],function(a,b){ma[b]=function(a,c,d,e){return ma.isFunction(c)&&(e=e||d,d=c,c=void 0),ma.ajax(ma.extend({url:a,type:b,dataType:e,data:c,success:d},ma.isPlainObject(a)&&a))}}),ma._evalUrl=function(a){return ma.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},ma.fn.extend({wrapAll:function(a){var b;return this[0]&&(ma.isFunction(a)&&(a=a.call(this[0])),b=ma(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return ma.isFunction(a)?this.each(function(b){ma(this).wrapInner(a.call(this,b))}):this.each(function(){var b=ma(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=ma.isFunction(a);return this.each(function(c){ma(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){ma(this).replaceWith(this.childNodes)}),this}}),ma.expr.pseudos.hidden=function(a){return!ma.expr.pseudos.visible(a)},ma.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},ma.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Pb={0:200,1223:204},Qb=ma.ajaxSettings.xhr();ka.cors=!!Qb&&"withCredentials"in Qb,ka.ajax=Qb=!!Qb,ma.ajaxTransport(function(b){var c,d;return ka.cors||Qb&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Pb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),ma.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),ma.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return ma.globalEval(a),a}}}),ma.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),ma.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=ma("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),_.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Rb=[],Sb=/(=)\?(?=&|$)|\?\?/;ma.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Rb.pop()||ma.expando+"_"+yb++;return this[a]=!0,a}}),ma.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Sb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Sb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=ma.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Sb,"$1"+e):b.jsonp!==!1&&(b.url+=(zb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||ma.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?ma(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Rb.push(e)),g&&ma.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),ka.createHTMLDocument=function(){var a=_.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),ma.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var d,e,f;return b||(ka.createHTMLDocument?(b=_.implementation.createHTMLDocument(""),d=b.createElement("base"),d.href=_.location.href,b.head.appendChild(d)):b=_),e=va.exec(a),f=!c&&[],e?[b.createElement(e[1])]:(e=s([a],b,f),f&&f.length&&ma(f).remove(),ma.merge([],e.childNodes))},ma.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=ma.trim(a.slice(h)),a=a.slice(0,h)),ma.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&ma.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?ma("<div>").append(ma.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},ma.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){ma.fn[b]=function(a){return this.on(b,a)}}),ma.expr.pseudos.animated=function(a){return ma.grep(ma.timers,function(b){return a===b.elem}).length},ma.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=ma.css(a,"position"),l=ma(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=ma.css(a,"top"),i=ma.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),ma.isFunction(b)&&(b=b.call(a,c,ma.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},ma.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){ma.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Z(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===ma.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),ma.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+ma.css(a[0],"borderTopWidth",!0),left:d.left+ma.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-ma.css(c,"marginTop",!0),left:b.left-d.left-ma.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent;a&&"static"===ma.css(a,"position");)a=a.offsetParent;return a||Wa})}}),ma.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;ma.fn[a]=function(d){return Fa(this,function(a,d,e){var f=Z(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),ma.each(["top","left"],function(a,b){ma.cssHooks[b]=F(ka.pixelPosition,function(a,c){return c?(c=E(a,b),eb.test(c)?ma(a).position()[b]+"px":c):void 0})}),ma.each({Height:"height",Width:"width"},function(a,b){ma.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){ma.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return Fa(this,function(b,c,e){var f;return ma.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?ma.css(b,c,h):ma.style(b,c,e,h)},b,g?e:void 0,g)}})}),ma.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),ma.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ma});var Tb=a.jQuery,Ub=a.$;return ma.noConflict=function(b){return a.$===ma&&(a.$=Ub),b&&a.jQuery===ma&&(a.jQuery=Tb),ma},b||(a.jQuery=a.$=ma),ma}),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),
-b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/public/v2/css/app.css b/public/v2/css/app.css
deleted file mode 100644
index 0158455a59931eba04418d225b4e58b4f702bdec..0000000000000000000000000000000000000000
--- a/public/v2/css/app.css
+++ /dev/null
@@ -1,880 +0,0 @@
-html,
-body,
-div,
-span,
-object,
-iframe,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-p,
-blockquote,
-pre,
-abbr,
-address,
-cite,
-code,
-del,
-dfn,
-em,
-img,
-ins,
-kbd,
-q,
-samp,
-small,
-strong,
-sub,
-sup,
-var,
-b,
-i,
-dl,
-dt,
-dd,
-ol,
-ul,
-li,
-fieldset,
-form,
-label,
-legend,
-table,
-caption,
-tbody,
-tfoot,
-thead,
-tr,
-th,
-td,
-article,
-aside,
-figure,
-footer,
-header,
-menu,
-nav,
-section,
-time,
-mark,
-audio,
-video,
-details,
-summary,
-button,
-input,
-textarea {
-  margin: 0;
-  padding: 0;
-  line-height: 1;
-  font-size: inherit;
-  vertical-align: baseline;
-}
-iframe {
-  border: 0;
-}
-html {
-  box-sizing: border-box;
-  font-size: 12pt;
-}
-*,
-*:before,
-*:after {
-  box-sizing: inherit;
-}
-/* normalize */
-html,
-body {
-  width: 100%;
-  height: 100%;
-}
-input,
-button,
-body {
-  font-family: Dosis, Roboto, 'SF UI Text', 'Helvetica Neue', Helvetica, sans-serif;
-  color: #34495E;
-}
-ul,
-ol {
-  list-style-position: inside;
-}
-/* typography */
-h1 {
-  font-size: 42pt;
-}
-h2 {
-  font-size: 32.4pt;
-}
-h3 {
-  font-size: 25.2pt;
-}
-h4 {
-  font-size: 20.4pt;
-}
-h5 {
-  font-size: 16.8pt;
-}
-h6 {
-  font-size: 13.2pt;
-}
-/* tables */
-table {
-  border-collapse: separate;
-  border-spacing: 0;
-  max-width: 100%;
-  width: 100%;
-}
-th {
-  text-align: left;
-  font-weight: bold;
-}
-th,
-td {
-  line-height: inherit;
-  padding: 12px 12px;
-}
-th {
-  vertical-align: bottom;
-}
-td {
-  vertical-align: top;
-}
-/* forms */
-label {
-  vertical-align: middle;
-}
-svg,
-img,
-input {
-  max-width: 100%;
-  background: transparent;
-}
-select,
-textarea {
-  line-height: 1.75;
-}
-a:focus,
-input:focus,
-button:focus {
-  outline: 0;
-}
-@keyframes flick {
-  0% {
-    opacity: .5;
-  }
-  50% {
-    opacity: 1;
-  }
-  100% {
-    opacity: .5;
-  }
-}
-.-dis {
-  position: relative;
-}
-.-dis:before,
-.-dis:after {
-  position: absolute;
-  z-index: 5;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  top: 0;
-}
-.-dis:before {
-  background-color: rgba(255, 255, 255, 0.7);
-  animation: flick 1.6s infinite;
-  content: ' ';
-}
-.-dis:after {
-  background-color: rgba(255, 255, 255, 0.9);
-  content: 'Loading...';
-  margin: auto;
-  width: 200px;
-  height: 30px;
-  line-height: 30px;
-  text-align: center;
-  border-radius: 3px;
-  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
-}
-.jsf-logo {
-  transition: all .3s;
-  height: 70px;
-  width: 100%;
-  background-image: url(/img/logo.svg);
-  background-repeat: no-repeat;
-}
-.jsf-logo:hover {
-  opacity: .8;
-}
-.jsf-logo a {
-  height: 100px;
-  width: 320px;
-  overflow: hidden;
-  text-indent: -640px;
-}
-.jsf-about p,
-.jsf-about h2,
-.jsf-about h3,
-.jsf-about h4,
-.jsf-about ul {
-  margin-bottom: 12px;
-}
-.jsf-about li ~ li {
-  margin-top: 12px;
-}
-.jsf-about li:hover:before {
-  color: #0074D9;
-}
-.jsf-about li:before {
-  top: 4px;
-  left: -5px;
-  position: absolute;
-  transition: all .3s;
-  content: '⟀';
-  font-size: 15px;
-  color: #BDC3C7;
-  transform: rotate(225deg);
-}
-.jsf-about li {
-  white-space: nowrap;
-  position: relative;
-  padding-left: 10px;
-}
-.jsf-about a {
-  color: #0074D9;
-  text-decoration: none;
-  border-bottom: 1px dotted #BDC3C7;
-}
-.jsf-about a:hover {
-  border-bottom: 1px dotted #0074D9;
-}
-.github-ribbon {
-  transform: rotate(40deg);
-  background: #BDC3C7;
-  color: white;
-  width: 200px;
-  height: 30px;
-  line-height: 30px;
-  position: absolute;
-  z-index: 999;
-  right: -50px;
-  top: 35px;
-}
-/* animations */
-@keyframes spin {
-  from {
-    transform: rotate(0deg);
-  }
-  to {
-    transform: rotate(360deg);
-  }
-}
-.spin {
-  animation: spin 4s linear infinite;
-}
-/* flexbox */
-.flx {
-  display: flex;
-}
-.flx-cl {
-  flex-direction: column;
-}
-.flx-wp {
-  flex-wrap: wrap;
-}
-.flx-c {
-  align-items: center;
-}
-.flx-b {
-  align-items: baseline;
-}
-.flx-h {
-  align-items: stretch;
-}
-.flx-t {
-  align-items: flex-start;
-}
-.flx-e {
-  align-items: flex-end;
-}
-.flx-j {
-  justify-content: space-between;
-}
-.flx-jc {
-  justify-content: center;
-}
-.flx-a {
-  flex: 1 1 auto;
-  min-width: 0;
-  min-height: 0;
-}
-.flx-gw {
-  flex: 1 0 auto;
-}
-.flx-no {
-  flex: none;
-}
-.flx-ft {
-  order: -1;
-}
-.flx-lt {
-  order: 99999;
-}
-.flx-m > .flx-a ~ .flx-a {
-  margin-top: 12px;
-}
-.flx-m > .flx-a ~ .flx-n {
-  margin-top: 12px;
-}
-@media screen and (min-width: 480px) {
-  .sm-no-flx {
-    display: block;
-  }
-  .sm-flx {
-    display: flex;
-  }
-  .sm-flx.flx-m > .flx-a ~ .flx-a {
-    margin-top: 0;
-    margin-left: 12px;
-  }
-  .sm-flx.flx-m > .flx-a ~ .flx-n {
-    margin-top: 0;
-    margin-right: 12px;
-  }
-}
-@media screen and (min-width: 720px) {
-  .md-flx {
-    display: flex;
-  }
-  .md-flx.flx-m > .flx-a ~ .flx-a {
-    margin-top: 0;
-    margin-left: 12px;
-  }
-  .md-flx.flx-m > .flx-a ~ .flx-n {
-    margin-top: 0;
-    margin-left: 12px;
-  }
-  .md-flx.flx-m > .flx-lt ~ .flx-n {
-    margin-top: 0;
-    margin-left: 0;
-    margin-right: 12px;
-  }
-}
-/* grid */
-.cnt {
-  margin-left: auto;
-  margin-right: auto;
-}
-.cl-1 {
-  width: 8.33333%;
-}
-.cl-2 {
-  width: 16.66667%;
-}
-.cl-3 {
-  width: 25%;
-}
-.cl-4 {
-  width: 33.33333%;
-}
-.cl-5 {
-  width: 41.66667%;
-}
-.cl-6 {
-  width: 50%;
-}
-.cl-7 {
-  width: 58.33333%;
-}
-.cl-8 {
-  width: 66.66667%;
-}
-.cl-9 {
-  width: 75%;
-}
-.cl-10 {
-  width: 83.33333%;
-}
-.cl-11 {
-  width: 91.66667%;
-}
-.cl-12 {
-  width: 100%;
-}
-@media screen and (min-width: 480px) {
-  .sm-cl-1 {
-    width: 8.33333%;
-  }
-  .sm-cl-2 {
-    width: 16.66667%;
-  }
-  .sm-cl-3 {
-    width: 25%;
-  }
-  .sm-cl-4 {
-    width: 33.33333%;
-  }
-  .sm-cl-5 {
-    width: 41.66667%;
-  }
-  .sm-cl-6 {
-    width: 50%;
-  }
-  .sm-cl-7 {
-    width: 58.33333%;
-  }
-  .sm-cl-8 {
-    width: 66.66667%;
-  }
-  .sm-cl-9 {
-    width: 75%;
-  }
-  .sm-cl-10 {
-    width: 83.33333%;
-  }
-  .sm-cl-11 {
-    width: 91.66667%;
-  }
-  .sm-cl-12 {
-    width: 100%;
-  }
-}
-@media screen and (min-width: 720px) {
-  .md-cl-1 {
-    width: 8.33333%;
-  }
-  .md-cl-2 {
-    width: 16.66667%;
-  }
-  .md-cl-3 {
-    width: 25%;
-  }
-  .md-cl-4 {
-    width: 33.33333%;
-  }
-  .md-cl-5 {
-    width: 41.66667%;
-  }
-  .md-cl-6 {
-    width: 50%;
-  }
-  .md-cl-7 {
-    width: 58.33333%;
-  }
-  .md-cl-8 {
-    width: 66.66667%;
-  }
-  .md-cl-9 {
-    width: 75%;
-  }
-  .md-cl-10 {
-    width: 83.33333%;
-  }
-  .md-cl-11 {
-    width: 91.66667%;
-  }
-  .md-cl-12 {
-    width: 100%;
-  }
-}
-/* typography */
-.bgr {
-  font-size: 42pt;
-}
-.bg {
-  font-size: 32.4pt;
-}
-.hg {
-  font-size: 25.2pt;
-}
-.md {
-  font-size: 20.4pt;
-}
-.sml {
-  font-size: 16.8pt;
-}
-.smlr {
-  font-size: 13.2pt;
-}
-.nosl {
-  cursor: default;
-  user-select: none;
-}
-.ttu {
-  letter-spacing: .1em;
-  text-transform: uppercase;
-}
-.lt {
-  text-decoration: line-through;
-}
-.a {
-  cursor: pointer;
-}
-.tal {
-  text-align: left;
-}
-.tac {
-  text-align: center;
-}
-.tar {
-  text-align: right;
-}
-.taj {
-  text-align: justify;
-}
-.wsn {
-  white-space: nowrap;
-}
-.wwb {
-  word-wrap: break-word;
-}
-.tr {
-  max-width: 100%;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.lr {
-  list-style: none;
-  padding-left: 0;
-}
-.ln {
-  list-style: none;
-}
-.tdu {
-  text-decoration: underline;
-}
-.tdn {
-  text-decoration: none;
-}
-/* alignment */
-.di {
-  display: inline;
-}
-.db {
-  display: block;
-}
-.dib {
-  display: inline-block;
-}
-.dt {
-  display: table;
-}
-.dtc {
-  display: table-cell;
-}
-.dn {
-  display: none;
-}
-.oh {
-  overflow: hidden;
-}
-.os {
-  overflow: scroll;
-}
-.oa {
-  overflow: auto;
-}
-.clr:before,
-.clr:after {
-  content: ' ';
-  display: table;
-}
-.clr:after {
-  clear: both;
-}
-.fl {
-  float: left;
-}
-.fr {
-  float: right;
-}
-.fit {
-  max-width: 100%;
-}
-.ab {
-  vertical-align: baseline;
-}
-.at {
-  vertical-align: top;
-}
-.am {
-  vertical-align: middle;
-}
-.ab {
-  vertical-align: bottom;
-}
-/* white-space */
-.m {
-  margin: 12px;
-}
-.m ~ .m {
-  margin-top: 0;
-}
-.mt {
-  margin-top: 12px;
-}
-.mr {
-  margin-right: 12px;
-}
-.mb {
-  margin-bottom: 12px;
-}
-.ml {
-  margin-left: 12px;
-}
-.mxa {
-  margin-left: auto;
-  margin-right: auto;
-}
-.p {
-  padding: 12px;
-}
-.py {
-  padding-top: 12px;
-  padding-bottom: 12px;
-}
-.px {
-  padding-left: 12px;
-  padding-right: 12px;
-}
-/* borders */
-.b {
-  border: 1px solid #BDC3C7;
-}
-.b ~ .b {
-  border-top: 0;
-}
-.nb {
-  border: 0;
-}
-/* icons */
-.ic {
-  min-width: 16.8pt;
-  min-height: 16.8pt;
-  width: 16.8pt;
-  height: 16.8pt;
-}
-.ic svg {
-  width: inherit;
-  height: inherit;
-  vertical-align: middle;
-}
-.ic.x2 {
-  width: 25.2pt;
-  height: 25.2pt;
-}
-.ic.x3 {
-  width: 42pt;
-  height: 42pt;
-}
-/* states */
-.ch {
-  display: none;
-}
-.ch ~ span {
-  opacity: .5;
-}
-.ch:checked ~ span {
-  opacity: 1;
-  text-decoration: none;
-}
-.ch:checked ~ .on {
-  display: inline-block;
-}
-.ch:checked ~ .off {
-  display: none;
-}
-.ch ~ .on {
-  display: none;
-}
-.ch ~ .off {
-  display: inline-block;
-}
-/* fields */
-.bu {
-  border: 0;
-  color: #34495E;
-  height: 40px;
-  min-width: 40px;
-  line-height: 40px;
-  border-radius: 3px;
-  opacity: .7;
-  padding: 0 10px;
-  min-height: 40px;
-  line-height: 38px;
-  transition: opacity .3s;
-  transition: all .3s;
-  border: 1px solid #BDC3C7;
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.bu:focus,
-.bu:hover {
-  opacity: 1;
-  border: 1px solid #0074D9;
-}
-.bu:active {
-  box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.2);
-}
-.bu:disabled {
-  opacity: .5;
-}
-.f {
-  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
-}
-/* misc */
-.cln {
-  border: 0;
-  border-top: 1px dotted #BDC3C7;
-}
-.Toast {
-  box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.1);
-  background-color: #FFFFFF;
-  color: #34495E;
-  transition: all .3s;
-  text-align: center;
-  position: fixed;
-  bottom: -50px;
-  z-index: 6;
-  opacity: 0;
-  left: 0;
-  width: 100%;
-  padding: 12px;
-}
-.Toast.-show {
-  bottom: 0;
-  opacity: 1;
-}
-.Toast.-error {
-  color: #FFFFFF;
-  background-color: #FF4136;
-}
-.Toast.-success {
-  color: #FFFFFF;
-  background-color: #2ECC40;
-}
-.Toolbar {
-  position: relative;
-  overflow: hidden;
-}
-.Dropdown {
-  width: 100%;
-  height: 40px;
-  position: relative;
-}
-.Dropdown select {
-  width: 100%;
-  opacity: 0;
-  z-index: 1;
-  height: 40px;
-  position: absolute;
-}
-.Dropdown select:focus ~ .Dropdown--value span {
-  border: 1px solid #0074D9;
-}
-.Dropdown--arrow {
-  display: inline-block;
-  width: 20px;
-  height: 40px;
-  position: absolute;
-  right: 0;
-  top: 0;
-  transition: all .3s;
-  color: #BDC3C7;
-  line-height: 32px;
-  background-color: rgba(0, 0, 0, 0.1);
-  border: 1px solid #BDC3C7;
-  border-left: 0;
-  border-radius: 0 3px 3px 0;
-}
-.Dropdown--arrow:before {
-  padding-left: 2px;
-  content: '∟';
-  font-size: 20px;
-  font-weight: 100;
-  position: absolute;
-  transform: rotate(-45deg);
-}
-.Dropdown--arrow ~ select {
-  z-index: 1;
-}
-.Dropdown--value {
-  background-color: #FFFFFF;
-  position: absolute;
-  height: 40px;
-  top: 0;
-  left: 0;
-  right: 20px;
-}
-.Dropdown--value span,
-.Dropdown--value input {
-  height: 40px;
-  padding: 0 5px;
-  color: #34495E;
-  transition: all .3s;
-  line-height: 40px;
-}
-.Dropdown--value input {
-  z-index: 2;
-  width: 100%;
-  position: relative;
-  background-color: transparent;
-}
-.Dropdown--value input:focus {
-  border: 1px solid #0074D9;
-}
-.Dropdown--value span,
-.Dropdown--value input {
-  border: 1px solid #BDC3C7;
-  border-radius: 3px 0 0 3px;
-}
-.Dropdown--actions {
-  visibility: hidden;
-  position: absolute;
-  transition: all .3s;
-  z-index: 2;
-  opacity: 0;
-  right: 30px;
-  line-height: 42px;
-  top: 0;
-}
-.Dropdown--actions.-show {
-  opacity: 1;
-  visibility: visible;
-}
-.Dropdown--actions a {
-  transition: all .3s;
-  color: #34495E;
-  opacity: .5;
-}
-.Dropdown--actions a:hover,
-.Dropdown--actions a:focus {
-  opacity: 1;
-  color: #0074D9;
-}
-.AceEditor {
-  min-height: 200px;
-  border-radius: 3px;
-}
-.AceEditor.ace_focus {
-  border: 1px solid #0074D9;
-}
-@media screen and (min-width: 280px) {
-  .AceEditor {
-    min-height: 300px;
-  }
-}
-@media screen and (min-width: 720px) {
-  .AceEditor {
-    min-height: 600px;
-  }
-}
-@media screen and (min-width: 830px) {
-  .AceEditor {
-    min-height: 700px;
-  }
-}
diff --git a/public/v2/favicon.ico b/public/v2/favicon.ico
deleted file mode 100644
index a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a..0000000000000000000000000000000000000000
Binary files a/public/v2/favicon.ico and /dev/null differ
diff --git a/public/v2/img/favicon.ico b/public/v2/img/favicon.ico
deleted file mode 100644
index a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a..0000000000000000000000000000000000000000
Binary files a/public/v2/img/favicon.ico and /dev/null differ
diff --git a/public/v2/img/logo.svg b/public/v2/img/logo.svg
deleted file mode 100644
index d664afefe7fe8905129d78f20378768d5f2fb678..0000000000000000000000000000000000000000
--- a/public/v2/img/logo.svg
+++ /dev/null
@@ -1,1083 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
-	<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
-	<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
-	<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
-	<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
-	<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
-	<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
-	<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
-]>
-<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="69 282 750 230"
-	 style="enable-background:new 69 282 750 230;" xml:space="preserve">
-<switch>
-	<foreignObject requiredExtensions="&ns_ai;" x="0" y="0" width="1" height="1">
-		<i:pgfRef  xlink:href="#adobe_illustrator_pgf">
-		</i:pgfRef>
-	</foreignObject>
-	<g i:extraneous="self">
-		<g transform="matrix( 1, 0, 0, 1, 0,0) ">
-			<g id="Layer0_0_FILL">
-				<path style="fill:#595959;" d="M121.85,318.5c-2.567,0-5.767,0.35-9.6,1.05c-3.533,0.867-7.117,2.383-10.75,4.55
-					c-3.533,2.467-6.617,6.05-9.25,10.75c-2.367,4.833-3.65,11.367-3.85,19.6v17.25c0,5.3-0.833,9.467-2.5,12.5
-					c-1.767,3.067-3.833,5.283-6.2,6.65c-2.267,1.567-4.233,2.5-5.9,2.8c-1.667,0.6-2.6,0.8-2.8,0.6v17.65c0.2,0,1.133,0.2,2.8,0.6
-					c1.667,0.5,3.633,1.433,5.9,2.8c2.367,1.567,4.433,3.783,6.2,6.65c1.667,3.133,2.5,7.25,2.5,12.35v19.75
-					c0.2,8.267,1.483,14.75,3.85,19.45c2.633,4.8,5.717,8.433,9.25,10.9c3.633,2.367,7.217,3.983,10.75,4.85
-					c3.833,0.7,7.033,1.05,9.6,1.05c1.367,0,2.5-0.1,3.4-0.3l1.15-0.3v-15.15h-0.75c-0.467,0-1.15,0-2.05,0
-					c-1.667,0-3.867-0.4-6.6-1.2c-2.767-0.867-5.283-2.933-7.55-6.2c-2.133-3.033-3.3-7.75-3.5-14.15v-23.85
-					c0-5.1-0.883-9.367-2.65-12.8c-1.667-3.433-3.533-6.083-5.6-7.95c-2.267-2.067-4.133-3.45-5.6-4.15l-2.65-1.05v-0.55l2.65-0.9
-					c1.467-0.9,3.333-2.367,5.6-4.4c2.067-1.867,3.933-4.533,5.6-8c1.767-3.433,2.65-7.65,2.65-12.65v-21.2
-					c0.2-6.5,1.367-11.317,3.5-14.45c2.267-3.033,4.783-5,7.55-5.9c2.733-0.867,4.933-1.3,6.6-1.3c0.9,0,1.583,0,2.05,0h0.75V318.8
-					h-1.15C124.35,318.6,123.217,318.5,121.85,318.5 M313.25,320c1.967-3.633,4.033-7.217,6.2-10.75c0.2-0.3,0.25-0.6,0.15-0.9
-					c-0.1-0.4-0.25-0.7-0.45-0.9L319,307.3c-5.1-4.2-10.317-7.833-15.65-10.9c-3.9-2.333-7.817-4.3-11.75-5.9
-					c-15.333-5.867-31.75-7.033-49.25-3.5c-0.267,0.1-0.45,0.25-0.55,0.45c-0.3,0.067-0.45,0.25-0.45,0.55
-					c-2.533,6.367-4.767,13.033-6.7,20c-1,3.567-1.917,7.217-2.75,10.95h0.15L230,327.2c-0.1,0.1-0.15,0.25-0.15,0.45
-					c-2.067,9.133-3.833,18.517-5.3,28.15c-0.4,2.733-0.8,5.483-1.2,8.25c-0.267,1.967-0.5,3.983-0.7,6.05c-0.4,0-0.75,0-1.05,0
-					h-0.3c-0.1,0-0.2,0.05-0.3,0.15c-1.567,0.267-3.183,0.4-4.85,0.4H216c-11.8,1.5-17.783,4.25-17.95,8.25
-					c-0.7,4.233,4.7,8.067,16.2,11.5c0.667,0.2,1.45,0.4,2.35,0.6l0.9,0.3c0.967,0.2,2.083,0.45,3.35,0.75
-					c-0.3,3.533-0.533,7.117-0.7,10.75c0,0.967-0.05,2-0.15,3.1c-1.5,0.567-2.833,1.65-4,3.25c-0.8,0.767-1.433,1.6-1.9,2.5
-					l-4.45-1.5l-1.9,5.6l4.4,1.5c-0.1,0.567-0.15,1.2-0.15,1.9c-0.167,3.733,0.817,7.017,2.95,9.85c1.4,1.967,3.033,3.3,4.9,4
-					c0,1.767,0.05,3.583,0.15,5.45c-0.3-0.1-0.55-0.15-0.75-0.15c-0.9-0.2-1.683-0.3-2.35-0.3c-0.2,0-0.35,0-0.45,0
-					c-4.733-0.1-8.367,1.417-10.9,4.55h-0.15c-0.9,1.2-1.733,2.633-2.5,4.3V447c-0.3,0.967-0.9,2.383-1.8,4.25
-					c-1.367,3.067-2.983,5.183-4.85,6.35c-0.1,0-0.15,0.05-0.15,0.15c-1.467,0.5-2.833,0.8-4.1,0.9h-0.15
-					c-2.367,0.167-4.283-0.633-5.75-2.4c-1.967-2.333-3.45-5.567-4.45-9.7c-0.967-4.233-0.867-7.483,0.3-9.75
-					c1.4-2.633,2.833-4.15,4.3-4.55c1.267-0.3,2.733,0.483,4.4,2.35l0.15,0.15c0.9,0.9,1.35,2.617,1.35,5.15
-					c0,1.5-0.2,2.933-0.6,4.3c-0.2,0.4-0.2,0.783,0,1.15c0.2,0.3,0.5,0.55,0.9,0.75c0.367,0.1,0.75,0.05,1.15-0.15
-					c0.3-0.2,0.55-0.483,0.75-0.85c0.5-1.7,0.75-3.433,0.75-5.2c0-3.633-0.75-6.033-2.25-7.2l-0.15-0.15
-					c-2.533-2.733-4.933-3.817-7.2-3.25c-2.267,0.4-4.333,2.467-6.2,6.2c-1.567,2.733-1.717,6.667-0.45,11.8
-					c1.1,4.6,2.783,8.233,5.05,10.9c2.133,2.533,4.883,3.667,8.25,3.4c1.667-0.1,3.433-0.55,5.3-1.35h0.15
-					c2.333-1.467,4.383-4.067,6.15-7.8c0.9-1.867,1.5-3.3,1.8-4.3c0.667-1.467,1.4-2.683,2.2-3.65v-0.15
-					c2.067-2.367,4.967-3.5,8.7-3.4c0.1,0,0.25,0,0.45,0c0.567,0,1.2,0.1,1.9,0.3c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0.05,0.3,0.15
-					c0.1,0,0.2,0,0.3,0h0.45c0.267,6.767,0.7,13.583,1.3,20.45l-10.6-1.15c-0.4,0-0.7,0.1-0.9,0.3c-0.4,0.2-0.6,0.483-0.6,0.85
-					c-0.167,0.3-0.167,0.65,0,1.05l4.6,8.85L188,500.2l-20.9-60.85c-0.1-0.1-0.15-0.2-0.15-0.3l-4.3-13.15
-					c-0.1-0.167-0.25-0.35-0.45-0.55c-0.167-0.2-0.35-0.3-0.55-0.3c-5.5-1.767-9.283-0.3-11.35,4.4c-0.2,0.3-0.2,0.65,0,1.05
-					l4.55,13.55c0,0.1,0.05,0.2,0.15,0.3l19.1,54.7l0.05,0.1c1.1,0.367,2.233,0.667,3.4,0.9c0.367,0.067,0.75,0.133,1.15,0.2
-					c1,0.167,2.05,0.283,3.15,0.35c0.167,0,0.35,0,0.55,0l-21.65-60.1c0.967-0.4,2.2-0.25,3.7,0.45l20.6,59.65h6.65l21.8-23.7
-					l-9.45,23.7h40.1v-7.95l15.15,3.4c0.3,0.1,0.6,0.1,0.9,0c0.3-0.2,0.55-0.4,0.75-0.6c0.1-0.3,0.15-0.583,0.15-0.85
-					c-0.1-6.9,0-13.933,0.3-21.1c0-0.4-0.1-0.683-0.3-0.85c-0.2-0.3-0.45-0.5-0.75-0.6c-0.3-0.2-0.6-0.2-0.9,0l-15.75,5.15v-29.75
-					c13.467-7.167,22.75-8.4,27.85-3.7c0.8,1.067,1.633,2.3,2.5,3.7c0,0.1,0.05,0.15,0.15,0.15c0.3,0.867,0.883,2.233,1.75,4.1h0.15
-					c0.2,0.5,0.45,0.95,0.75,1.35c-0.2,4.8-0.3,9.6-0.3,14.4c0,0.4,0.15,0.75,0.45,1.05s0.65,0.45,1.05,0.45h10.3l-8.85,11.35
-					c-0.2,0.3-0.3,0.583-0.3,0.85c0,0.4,0.1,0.75,0.3,1.05l6.35,7.65c0.2-0.3,0.4-0.583,0.6-0.85c0.167-0.3,0.35-0.6,0.55-0.9
-					l0.6-0.9l-0.05-0.05l-4.95-6l9.85-12.8c0.2-0.3,0.3-0.65,0.3-1.05c0-0.367-0.15-0.65-0.45-0.85c-0.267-0.3-0.6-0.45-1-0.45
-					h-11.8c0-3.133,0.05-6.283,0.15-9.45c1.067,1.1,2.2,1.883,3.4,2.35c1.767,0.9,3.733,1.3,5.9,1.2h0.15
-					c3.233,0.2,6.117-0.983,8.65-3.55h0.15c2.367-2.733,4.233-6.517,5.6-11.35v-0.1c1.1-5.033,0.767-8.917-1-11.65
-					c-2.067-3.633-4.283-5.6-6.65-5.9c-2.467-0.6-5.067,0.533-7.8,3.4c-1.567,1.467-2.35,4.017-2.35,7.65c0,1.667,0.15,3.333,0.45,5
-					c0.1,0.4,0.333,0.7,0.7,0.9c0.3,0.3,0.65,0.4,1.05,0.3c0.4-0.1,0.7-0.3,0.9-0.6c0.3-0.4,0.4-0.8,0.3-1.2
-					c-0.3-1.467-0.45-2.933-0.45-4.4c0-2.667,0.483-4.533,1.45-5.6c1.867-1.867,3.583-2.7,5.15-2.5c1.667,0.4,3.25,1.867,4.75,4.4
-					c1.267,2.367,1.45,5.567,0.55,9.6h0.15c-1.267,4.2-2.933,7.533-5,10v0.15c-1.967,1.867-4.167,2.7-6.6,2.5h-0.15
-					c-1.667,0.1-3.2-0.2-4.6-0.9h-0.15c-1.567-0.767-3.033-2.083-4.4-3.95c0.7-16.1,2.417-31.967,5.15-47.6
-					c0.1-0.6,0.2-1.133,0.3-1.6c0.3-1.667,0.65-3.25,1.05-4.75v-0.15c2.133,0,4.05-0.183,5.75-0.55
-					c11.567-1.1,17.45-3.717,17.65-7.85v-0.1c0.8-3.933-4.55-7.817-16.05-11.65l-0.15-0.15c-0.6-0.1-1.283-0.25-2.05-0.45
-					c-0.2-0.1-0.4-0.15-0.6-0.15c0.8-2.933,1.583-5.733,2.35-8.4l0.15-0.15c0.5-1.467,0.95-2.833,1.35-4.1
-					c1.967-6.7,4.167-13.083,6.6-19.15c0.033-0.067,0.067-0.133,0.1-0.2c2.933-7.7,6.2-14.967,9.8-21.8L313.25,320 M301.9,298.9
-					h0.15c-4.1,9.167-7.9,18.417-11.4,27.75c-4.067,10.767-7.733,21.667-11,32.7c-3.533-1.7-7.167-3.033-10.9-4
-					c3.667-13.9,8.033-27.567,13.1-41c2.667-7.1,5.517-14.117,8.55-21.05h0.15C294.383,294.8,298.167,296.667,301.9,298.9
-					 M255.2,370.8c-0.4,0-0.75,0-1.05,0c-7.9-0.283-15.8-0.567-23.7-0.85c-1.667,0-3.283,0.05-4.85,0.15
-					c0.167-1.867,0.4-3.733,0.7-5.6c0.3-2.367,0.65-4.733,1.05-7.1c14.333-3.233,27.833-2.983,40.5,0.75
-					c3.633,0.967,7.217,2.3,10.75,4c2.167,1.067,4.333,2.183,6.5,3.35c1.567,1,3.283,2.083,5.15,3.25
-					c-0.767,2.467-1.5,5.017-2.2,7.65c-0.5-0.1-0.983-0.2-1.45-0.3c-0.05,0-0.1,0-0.15,0c-0.1,0-0.2,0-0.3,0
-					C277.117,373.767,266.8,372,255.2,370.8 M283.05,390.4c0.567,0.2,1.15,0.4,1.75,0.6c-0.5,1.767-0.933,3.583-1.3,5.45
-					c0,0.1,0,0.25,0,0.45c-0.1,0.3-0.15,0.65-0.15,1.05c-0.4,1.467-0.75,3.033-1.05,4.7c-0.1,0.5-0.2,1.033-0.3,1.6
-					c-2.467,14.167-4.083,28.467-4.85,42.9c-0.2-0.3-0.35-0.6-0.45-0.9v-0.15c-0.967-1.567-1.9-2.933-2.8-4.1
-					c0-0.1-0.05-0.15-0.15-0.15c-6-6.4-16.85-5.233-32.55,3.5c-1.067,0.5-2.4,0.7-4,0.6l3.4-15.9v-0.3l8.7-45.25
-					c0.6,0,1.183,0,1.75,0c0.4,0.1,0.8,0.15,1.2,0.15h0.15c0.1,0,0.2,0,0.3,0c0.2,0,0.45,0,0.75,0
-					C263.317,386.567,273.183,388.483,283.05,390.4 M235,400.85c-0.5-0.167-0.833-0.55-1-1.15c-1.5-2.067-2.983-3.25-4.45-3.55h-0.3
-					c-1.267,0-2.583,0.4-3.95,1.2c-0.6,0.2-1.1,0.25-1.5,0.15c-0.567-0.2-0.95-0.5-1.15-0.9c-0.2-0.5-0.2-1.033,0-1.6
-					c0.1-0.4,0.333-0.7,0.7-0.9c2.167-1,4.133-1.5,5.9-1.5h0.15c0.1,0,0.25,0,0.45,0c2.833,0.2,5.183,1.983,7.05,5.35
-					c0.4,0.367,0.45,0.85,0.15,1.45c-0.1,0.3-0.333,0.7-0.7,1.2C235.85,400.867,235.4,400.95,235,400.85 M235.75,447.6
-					c-0.4,0.1-0.8,0.05-1.2-0.15c-2.167-1.3-4.267-2.383-6.3-3.25c-1.4-0.7-2.633-1.2-3.7-1.5c-0.5-0.2-0.9-0.333-1.2-0.4h-0.15
-					c-0.467-0.2-0.9-0.35-1.3-0.45c-0.4-0.1-0.8-0.2-1.2-0.3h-0.15c-0.1-0.1-0.2-0.15-0.3-0.15l-0.1-2.95h0.1c0.3,0,0.7,0.1,1.2,0.3
-					c0.4,0.1,0.8,0.2,1.2,0.3l-0.15-0.15c0.567,0.1,1.15,0.3,1.75,0.6c0.367,0.033,0.817,0.167,1.35,0.4h-0.15
-					c1.267,0.4,2.633,0.95,4.1,1.65h-0.15c2.067,0.867,4.283,2,6.65,3.4c0.3,0.167,0.55,0.45,0.75,0.85
-					c0.067,0.3,0.017,0.65-0.15,1.05C236.35,447.15,236.05,447.4,235.75,447.6 M224.25,407.8c2.367,0,4.383,1.033,6.05,3.1
-					c1.667,2.267,2.45,5.017,2.35,8.25c-0.2,3.033-1.233,5.733-3.1,8.1h0.15c-1.967,2.167-4.183,3.25-6.65,3.25
-					c-1.167,0-2.233-0.3-3.2-0.9c-1-0.6-1.833-1.383-2.5-2.35c-1.767-2.267-2.567-4.917-2.4-7.95v-0.15c0-1.267,0.25-2.5,0.75-3.7
-					c0-0.1,0.05-0.15,0.15-0.15c0.4-1.567,1.183-2.983,2.35-4.25c0.5-0.7,1.05-1.25,1.65-1.65
-					C221.217,408.333,222.683,407.8,224.25,407.8 M153.25,430.2c1.367-2.567,3.617-3.45,6.75-2.65l3.25,9.85
-					c-1.367-0.3-2.55-0.2-3.55,0.3h-0.15c-1.167,0.5-2.133,1.283-2.9,2.35L153.25,430.2 M227.35,474.25h0.6l13.7,6.05
-					c0.3,0.1,0.633,0.15,1,0.15c0.3,0.1,0.6,0.1,0.9,0l14.9-5c-0.3,5.867-0.4,11.65-0.3,17.35l-15.2-3.5
-					c-0.4-0.1-0.733-0.017-1,0.25c-0.1,0-0.2,0.05-0.3,0.15l-14.3,4.45V474.25 M253.3,428.85c4-7,6.267-12.967,6.8-17.9
-					c0.033-0.433-0.067-0.8-0.3-1.1c-0.267-0.333-0.6-0.533-1-0.6c-0.433-0.033-0.8,0.083-1.1,0.35c-0.333,0.233-0.533,0.567-0.6,1
-					c-0.6,5.1-3.167,11.433-7.7,19c-0.2,0.3-0.267,0.633-0.2,1c0.033,0.367,0.2,0.667,0.5,0.9c0.267,0.233,0.583,0.35,0.95,0.35
-					h11.45c0.4,0,0.75-0.15,1.05-0.45s0.45-0.65,0.45-1.05c0-0.4-0.15-0.75-0.45-1.05s-0.65-0.45-1.05-0.45H253.3 M255.15,396.3
-					c-0.367,0.167-0.617,0.45-0.75,0.85c-0.167,0.4-0.15,0.783,0.05,1.15c0.167,0.367,0.45,0.633,0.85,0.8
-					c0.4,0.133,0.783,0.1,1.15-0.1c3.933-1.9,7.15-1.3,9.65,1.8c0.233,0.3,0.567,0.483,1,0.55c0.4,0.033,0.767-0.067,1.1-0.3
-					c0.3-0.267,0.483-0.6,0.55-1c0.033-0.433-0.067-0.8-0.3-1.1C265.05,394.55,260.617,393.667,255.15,396.3 M335.9,319.55
-					c-3.633-0.7-6.817-1.05-9.55-1.05c-1.367,0-2.5,0.1-3.4,0.3h-1.15v15.05h0.7c0.5,0,1.2,0,2.1,0c1.867,0,4.167,0.433,6.9,1.3
-					c2.767,0.9,5.267,2.867,7.5,5.9c1.967,3.133,3.05,7.95,3.25,14.45v21.2c0.2,5,1.083,9.217,2.65,12.65
-					c1.667,3.467,3.633,6.133,5.9,8c2.067,2.033,3.933,3.5,5.6,4.4c1.567,0.6,2.4,0.9,2.5,0.9v0.55c-0.1,0-0.933,0.35-2.5,1.05
-					c-1.667,0.7-3.533,2.083-5.6,4.15c-2.267,1.867-4.233,4.517-5.9,7.95c-1.567,3.433-2.45,7.7-2.65,12.8V453
-					c-0.2,6.4-1.283,11.117-3.25,14.15c-2.233,3.267-4.733,5.333-7.5,6.2c-2.733,0.8-5.033,1.2-6.9,1.2c-0.9,0-1.6,0-2.1,0h-0.7
-					v15.15l1.15,0.3c0.9,0.2,2.033,0.3,3.4,0.3c2.733,0,5.917-0.35,9.55-1.05c3.733-0.867,7.417-2.483,11.05-4.85
-					c3.567-2.467,6.567-6.1,9-10.9c2.567-4.7,3.85-11.183,3.85-19.45V434.3c0-5.1,0.933-9.217,2.8-12.35
-					c1.667-2.867,3.633-5.083,5.9-6.65c2.233-1.367,4.283-2.3,6.15-2.8l2.55-0.6v-17.65c0,0.2-0.85,0-2.55-0.6
-					c-1.867-0.3-3.917-1.233-6.15-2.8c-2.267-1.367-4.233-3.583-5.9-6.65c-1.867-3.033-2.8-7.2-2.8-12.5v-17.25
-					c0-8.233-1.283-14.767-3.85-19.6c-2.433-4.7-5.433-8.283-9-10.75C343.317,321.933,339.633,320.417,335.9,319.55 M462.9,399.55
-					c0.6,0.533,0.9,1.35,0.9,2.45v6.55h17.95v-16.4c0-3.567-0.817-6.167-2.45-7.8c-1.633-1.7-4.267-2.55-7.9-2.55h-61.55v16.85h9.85
-					v91.05h19.9v-43.6h34.5v-16.85h-34.5v-30.6h20.85C461.517,398.65,462.333,398.95,462.9,399.55 M432.5,327.9
-					c0-1.4-0.333-2.417-1-3.05c-0.633-0.633-1.633-0.95-3-0.95h-15.3v6.55h10.2c0.433,0,0.767,0.117,1,0.35s0.35,0.55,0.35,0.95
-					v21.5c-0.033,1.533-0.3,2.75-0.8,3.65c-0.5,0.933-1.167,1.617-2,2.05c-0.833,0.4-1.733,0.6-2.7,0.6
-					c-0.933,0.033-1.833-0.167-2.7-0.6c-0.833-0.4-1.5-1.1-2-2.1c-0.533-0.967-0.817-2.283-0.85-3.95v-1.75h-7.75v2.45
-					c0.033,3.033,0.683,5.533,1.95,7.5c1.3,1.933,2.933,3.383,4.9,4.35c2.033,0.933,4.167,1.4,6.4,1.4s4.35-0.467,6.35-1.4
-					c2.033-0.933,3.7-2.367,5-4.3c1.267-1.933,1.917-4.45,1.95-7.55V327.9 M457.7,323.6c-1.433-0.3-2.8-0.45-4.1-0.45
-					c-2.733,0.033-5.15,0.55-7.25,1.55c-2.1,1.033-3.767,2.45-5,4.25c-1.2,1.767-1.8,3.8-1.8,6.1c0.033,2.167,0.517,4,1.45,5.5
-					c0.967,1.533,2.183,2.817,3.65,3.85c1.533,1.067,3.133,1.983,4.8,2.75c1.7,0.8,3.3,1.55,4.8,2.25
-					c1.5,0.733,2.717,1.517,3.65,2.35c0.967,0.867,1.467,1.883,1.5,3.05c-0.033,1.1-0.333,2.017-0.9,2.75
-					c-0.533,0.733-1.267,1.3-2.2,1.7c-0.9,0.367-1.9,0.55-3,0.55c-1.467-0.033-2.817-0.3-4.05-0.8c-1.267-0.467-2.35-1.033-3.25-1.7
-					c-0.933-0.667-1.65-1.233-2.15-1.7c-0.5-0.5-0.75-0.767-0.75-0.8l-4.4,5.5l0.95,1c0.633,0.633,1.567,1.383,2.8,2.25
-					c1.233,0.833,2.75,1.583,4.55,2.25c1.8,0.633,3.867,0.983,6.2,1.05c2.967-0.067,5.5-0.65,7.6-1.75
-					c2.067-1.133,3.667-2.633,4.8-4.5c1.067-1.867,1.617-3.933,1.65-6.2c-0.033-2.3-0.533-4.233-1.5-5.8
-					c-0.933-1.533-2.15-2.817-3.65-3.85s-3.1-1.917-4.8-2.65c-1.667-0.767-3.267-1.483-4.8-2.15c-1.5-0.633-2.717-1.367-3.65-2.2
-					c-0.933-0.8-1.433-1.8-1.5-3c0.067-1.367,0.65-2.45,1.75-3.25c1.167-0.833,2.65-1.25,4.45-1.25c0.967,0,1.867,0.133,2.7,0.4
-					c0.867,0.267,1.567,0.633,2.1,1.1c0.533,0.533,0.8,1.117,0.8,1.75v1.9h7.05v-3.9c-0.033-1.533-0.467-2.817-1.3-3.85
-					c-0.8-1.067-1.85-1.933-3.15-2.6C460.483,324.417,459.133,323.933,457.7,323.6 M504.25,326.05c-3.267-1.9-7-2.867-11.2-2.9
-					c-4.167,0.033-7.883,1-11.15,2.9c-3.3,1.9-5.883,4.467-7.75,7.7c-1.9,3.233-2.883,6.883-2.95,10.95
-					c0.067,4.167,1.05,7.917,2.95,11.25c1.867,3.333,4.45,5.967,7.75,7.9c3.267,1.933,6.983,2.933,11.15,3
-					c4.2-0.067,7.933-1.067,11.2-3c3.267-1.933,5.85-4.567,7.75-7.9c1.9-3.333,2.867-7.083,2.9-11.25
-					c-0.033-4.067-1-7.717-2.9-10.95C510.1,330.517,507.517,327.95,504.25,326.05 M504.95,337.4c1.2,2.133,1.817,4.567,1.85,7.3
-					c-0.033,2.833-0.65,5.367-1.85,7.6c-1.233,2.233-2.883,4-4.95,5.3c-2.067,1.3-4.383,1.95-6.95,1.95s-4.883-0.65-6.95-1.95
-					c-2.067-1.3-3.7-3.067-4.9-5.3c-1.233-2.233-1.867-4.767-1.9-7.6c0.033-2.733,0.667-5.167,1.9-7.3
-					c1.2-2.133,2.833-3.817,4.9-5.05c2.067-1.267,4.383-1.917,6.95-1.95c2.567,0.033,4.883,0.683,6.95,1.95
-					C502.067,333.583,503.717,335.267,504.95,337.4 M558.4,473.45c-1.067,0-1.883-0.3-2.45-0.9c-0.567-0.533-0.85-1.35-0.85-2.45
-					v-28.85c0.033-5.833-0.933-11.083-2.9-15.75c-2.033-4.6-5.5-8.25-10.4-10.95c-4.9-2.733-11.633-4.117-20.2-4.15
-					c-2.067,0-4.65,0.15-7.75,0.45c-3.167,0.333-6.317,1.05-9.45,2.15c-3.1,1.033-5.717,2.633-7.85,4.8
-					c-2.133,2.133-3.25,4.983-3.35,8.55v8.25h17.95v-4.1c0.067-1.433,0.717-2.517,1.95-3.25c1.167-0.767,2.55-1.3,4.15-1.6
-					c1.567-0.233,2.967-0.35,4.2-0.35c4.967-0.033,8.617,1.1,10.95,3.4c2.267,2.4,3.4,6.333,3.4,11.8v0.6h-2.45
-					c-2.567,0-5.783,0.133-9.65,0.4c-3.8,0.267-7.783,0.883-11.95,1.85c-4.2,0.933-8.15,2.367-11.85,4.3
-					c-3.667,1.933-6.667,4.5-9,7.7c-2.267,3.167-3.45,7.167-3.55,12c0.033,5.2,1.3,9.583,3.8,13.15c2.4,3.6,5.6,6.35,9.6,8.25
-					c4.033,1.867,8.367,2.8,13,2.8c4.367-0.1,8.05-0.817,11.05-2.15c2.967-1.333,5.367-2.883,7.2-4.65
-					c1.833-1.8,3.15-3.383,3.95-4.75c0.833-1.333,1.233-2.033,1.2-2.1h0.25l-0.05,0.9c0,0.6-0.017,1.383-0.05,2.35
-					c0,2.4,0.767,4.417,2.3,6.05c1.533,1.633,4.05,2.467,7.55,2.5h17.35v-16.25H558.4 M506.8,466.5c0.033-2.7,0.917-4.867,2.65-6.5
-					c1.7-1.633,3.883-2.867,6.55-3.7c2.667-0.767,5.483-1.3,8.45-1.6c2.967-0.267,5.733-0.4,8.3-0.4h3.35v1.85
-					c0,3.233-0.767,6.383-2.3,9.45c-1.5,3.1-3.55,5.667-6.15,7.7c-2.633,2.067-5.683,3.133-9.15,3.2c-3.967-0.1-6.9-1.117-8.8-3.05
-					C507.767,471.483,506.8,469.167,506.8,466.5 M598.7,390.65c0-3.5-0.833-5.867-2.5-7.1c-1.633-1.233-4.233-1.817-7.8-1.75H570
-					v16.4h6.1c1.067,0,1.883,0.283,2.45,0.85c0.567,0.533,0.85,1.367,0.85,2.5v88.15h19.3v-33.9h4.25
-					c1.267-0.067,2.567,0.083,3.9,0.45c1.333,0.3,2.433,1.117,3.3,2.45l12.9,24.3c1.367,2.733,2.95,4.55,4.75,5.45
-					c1.733,0.867,4.183,1.283,7.35,1.25h14.3v-16.25h-5.2c-1.767,0.067-3.117-0.133-4.05-0.6c-0.967-0.4-1.733-1.167-2.3-2.3
-					l-8.75-16.75c-1.433-2.433-2.7-4.067-3.8-4.9c-1.1-0.833-1.667-1.2-1.7-1.1v-0.4c0,0.067,0.533-0.333,1.6-1.2
-					c1.067-0.833,2.45-2.433,4.15-4.8l19.6-29.15h-21.45l-15.8,24.4c-0.867,1.2-1.967,2-3.3,2.4c-1.4,0.367-2.717,0.533-3.95,0.5
-					h-5.8V390.65 M556.95,330.8c0.2-0.233,0.517-0.35,0.95-0.35h2.55v-6.55h-7.6c-1.4,0-2.417,0.317-3.05,0.95
-					c-0.667,0.633-1,1.65-1,3.05v19.35c0,0.833,0.05,1.7,0.15,2.6c0.033,0.933,0.1,1.717,0.2,2.35c0.033,0.633,0.05,0.967,0.05,1
-					h-0.1c0-0.033-0.167-0.367-0.5-1c-0.367-0.633-0.817-1.417-1.35-2.35c-0.533-0.9-1.083-1.767-1.65-2.6l-16-23.35h-7v34.3
-					c0,0.433-0.117,0.75-0.35,0.95c-0.2,0.233-0.517,0.35-0.95,0.35h-2.55v6.6h7.6c1.4,0,2.417-0.317,3.05-0.95
-					c0.667-0.633,1-1.667,1-3.1V342.8c0-0.833-0.05-1.717-0.15-2.65c-0.067-0.9-0.133-1.667-0.2-2.3s-0.1-0.967-0.1-1h0.15
-					c0,0.033,0.167,0.367,0.5,1c0.367,0.667,0.817,1.45,1.35,2.35c0.533,0.9,1.083,1.767,1.65,2.6l16.05,23.3h6.95v-34.35
-					C556.6,331.35,556.717,331.033,556.95,330.8 M603.15,325.05c-1.267-0.633-2.617-1.117-4.05-1.45c-1.433-0.3-2.8-0.45-4.1-0.45
-					c-2.733,0.033-5.15,0.55-7.25,1.55c-2.1,1.033-3.767,2.45-5,4.25c-1.2,1.767-1.8,3.8-1.8,6.1c0.033,2.167,0.517,4,1.45,5.5
-					c0.967,1.533,2.183,2.817,3.65,3.85c1.533,1.067,3.133,1.983,4.8,2.75c1.7,0.8,3.3,1.55,4.8,2.25
-					c1.5,0.733,2.717,1.517,3.65,2.35c0.967,0.867,1.467,1.883,1.5,3.05c-0.033,1.1-0.333,2.017-0.9,2.75
-					c-0.533,0.733-1.267,1.3-2.2,1.7c-0.9,0.367-1.9,0.55-3,0.55c-1.467-0.033-2.817-0.3-4.05-0.8c-1.267-0.467-2.35-1.033-3.25-1.7
-					c-0.933-0.667-1.65-1.233-2.15-1.7c-0.5-0.5-0.75-0.767-0.75-0.8l-4.4,5.5l0.95,1c0.633,0.633,1.567,1.383,2.8,2.25
-					c1.233,0.833,2.75,1.583,4.55,2.25c1.8,0.633,3.867,0.983,6.2,1.05c2.967-0.067,5.5-0.65,7.6-1.75
-					c2.067-1.133,3.667-2.633,4.8-4.5c1.067-1.867,1.617-3.933,1.65-6.2c-0.033-2.3-0.533-4.233-1.5-5.8
-					c-0.933-1.533-2.15-2.817-3.65-3.85s-3.1-1.917-4.8-2.65c-1.667-0.767-3.267-1.483-4.8-2.15c-1.5-0.633-2.717-1.367-3.65-2.2
-					c-0.933-0.8-1.433-1.8-1.5-3c0.067-1.367,0.65-2.45,1.75-3.25c1.167-0.833,2.65-1.25,4.45-1.25c0.967,0,1.867,0.133,2.7,0.4
-					c0.867,0.267,1.567,0.633,2.1,1.1c0.533,0.533,0.8,1.117,0.8,1.75v1.9h7.05v-3.9c-0.033-1.533-0.467-2.817-1.3-3.85
-					C605.5,326.583,604.45,325.717,603.15,325.05 M705.55,337c-2-1.267-4.45-1.917-7.35-1.95c-3.067,0.033-5.733,0.717-8,2.05
-					c-2.3,1.333-4.1,3.183-5.4,5.55c-1.3,2.4-1.967,5.167-2,8.3c0.033,2.933,0.7,5.583,2,7.95c1.3,2.367,3.183,4.267,5.65,5.7
-					c2.4,1.433,5.283,2.183,8.65,2.25c1.9-0.033,3.6-0.283,5.1-0.75c1.5-0.433,2.767-0.95,3.8-1.55c1.067-0.6,1.883-1.133,2.45-1.6
-					c0.567-0.433,0.85-0.667,0.85-0.7l-3.15-5.25c0,0.033-0.367,0.333-1.1,0.9c-0.733,0.533-1.75,1.083-3.05,1.65
-					c-1.267,0.533-2.717,0.817-4.35,0.85c-1.533,0-2.95-0.3-4.25-0.9c-1.3-0.633-2.383-1.55-3.25-2.75
-					c-0.867-1.233-1.4-2.733-1.6-4.5h20.95c0-0.033,0-0.2,0-0.5c0.033-0.333,0.067-0.733,0.1-1.2c0.033-0.433,0.05-0.8,0.05-1.1
-					c0-2.7-0.517-5.133-1.55-7.3C709.067,339.983,707.55,338.267,705.55,337 M698.2,340.9c1.6,0,2.933,0.567,4,1.7
-					c1.067,1.1,1.65,2.567,1.75,4.4h-13.2c0.433-1.9,1.3-3.4,2.6-4.5C694.65,341.433,696.267,340.9,698.2,340.9 M640.6,345.45v-3.55
-					c0-1.3-0.383-2.383-1.15-3.25c-0.767-0.9-1.733-1.617-2.9-2.15c-1.133-0.533-2.317-0.9-3.55-1.1
-					c-1.233-0.233-2.367-0.35-3.4-0.35c-3.467,0.033-6.433,0.767-8.9,2.2c-2.5,1.467-4.4,3.383-5.7,5.75c-1.3,2.4-1.967,5.05-2,7.95
-					c0.033,2.967,0.717,5.65,2.05,8.05c1.333,2.367,3.233,4.267,5.7,5.7c2.433,1.367,5.317,2.083,8.65,2.15
-					c2.1-0.067,3.933-0.35,5.5-0.85c1.6-0.567,2.933-1.2,4-1.9c1.1-0.733,1.933-1.367,2.5-1.9c0.533-0.533,0.8-0.817,0.8-0.85
-					l-3.15-5.2l-0.65,0.65c-0.433,0.4-1.067,0.85-1.9,1.35c-0.8,0.567-1.75,1.05-2.85,1.45c-1.067,0.4-2.25,0.617-3.55,0.65
-					c-1.667,0-3.217-0.35-4.65-1.05c-1.4-0.7-2.55-1.75-3.45-3.15c-0.9-1.367-1.35-3.083-1.35-5.15c0-1.867,0.383-3.5,1.15-4.9
-					c0.767-1.433,1.817-2.55,3.15-3.35c1.367-0.8,2.917-1.217,4.65-1.25c0.633,0,1.283,0.083,1.95,0.25
-					c0.667,0.167,1.233,0.433,1.7,0.8c0.467,0.333,0.7,0.783,0.7,1.35v1.65H640.6 M655.1,327.85c0-1.367-0.333-2.367-1-3
-					c-0.633-0.633-1.65-0.95-3.05-0.95h-7.2v6.4h2.4c0.433,0,0.75,0.1,0.95,0.3c0.233,0.233,0.35,0.567,0.35,1v34.5h7.55v-13.9
-					c0-0.733,0.033-1.417,0.1-2.05c0.067-0.667,0.183-1.3,0.35-1.9c0.6-1.867,1.617-3.367,3.05-4.5c1.433-1.133,3.167-1.733,5.2-1.8
-					c1.867,0.033,3.133,0.617,3.8,1.75c0.7,1.1,1.033,2.583,1,4.45v13.9c0,1.433,0.317,2.467,0.95,3.1
-					c0.633,0.633,1.65,0.95,3.05,0.95h7.2v-6.35h-2.4c-0.433,0-0.75-0.117-0.95-0.35c-0.233-0.233-0.35-0.55-0.35-0.95V346.6
-					c-0.033-4-0.95-6.933-2.75-8.8c-1.833-1.833-4.433-2.75-7.8-2.75c-1.767,0.033-3.35,0.333-4.75,0.9
-					c-1.367,0.6-2.533,1.35-3.5,2.25c-0.967,0.933-1.7,1.883-2.2,2.85H655l0.05-0.7c0.033-0.467,0.05-1.083,0.05-1.85V327.85
-					 M719.85,466.5c0,0.1-0.95,0.833-2.85,2.2c-1.867,1.433-4.433,2.85-7.7,4.25c-3.267,1.367-6.967,2.1-11.1,2.2
-					c-3.967,0-7.617-0.783-10.95-2.35c-3.3-1.6-6.067-3.933-8.3-7c-2.167-3.1-3.517-6.933-4.05-11.5h53.45
-					c0-0.033,0.033-0.483,0.1-1.35c0.1-0.833,0.167-1.817,0.2-2.95c0.1-1.067,0.15-2,0.15-2.8c0-6.933-1.333-13.167-4-18.7
-					c-2.6-5.5-6.45-9.883-11.55-13.15c-5.1-3.2-11.367-4.85-18.8-4.95c-7.8,0.033-14.617,1.767-20.45,5.2
-					c-5.9,3.467-10.5,8.217-13.8,14.25c-3.333,6.067-5.017,13.1-5.05,21.1c0.033,7.467,1.733,14.25,5.1,20.35
-					c3.333,6.1,8.117,10.967,14.35,14.6c6.167,3.667,13.55,5.55,22.15,5.65c4.867-0.033,9.2-0.65,13-1.85
-					c3.867-1.133,7.133-2.467,9.8-4c2.733-1.533,4.817-2.867,6.25-4c1.367-1.133,2.083-1.75,2.15-1.85L719.85,466.5 M682.1,429.45
-					c3.3-2.7,7.417-4.083,12.35-4.15c4.067,0.067,7.467,1.533,10.2,4.4c2.7,2.8,4.183,6.55,4.45,11.25h-33.6
-					C676.567,436.05,678.767,432.217,682.1,429.45 M766.05,421.65c0-3.267-0.867-5.667-2.6-7.2c-1.733-1.467-4.3-2.2-7.7-2.2H738.1
-					v16.4h6.05c1.1,0,1.917,0.267,2.45,0.8c0.6,0.533,0.9,1.383,0.9,2.55v57.7h19.15V459c0-2.3,0.15-4.483,0.45-6.55
-					c0.3-2.133,0.7-4.167,1.2-6.1c1.233-3.8,2.983-6.917,5.25-9.35c2.233-2.367,4.75-4.117,7.55-5.25c2.8-1.1,5.583-1.65,8.35-1.65
-					c1.367,0,2.5,0.05,3.4,0.15c0.833,0.1,1.283,0.15,1.35,0.15v-18.95c-0.067,0-0.45-0.05-1.15-0.15
-					c-0.733-0.1-1.517-0.15-2.35-0.15c-4,0.033-7.633,0.917-10.9,2.65c-3.267,1.767-6.083,4.133-8.45,7.1
-					c-2.333,3.033-4.1,6.4-5.3,10.1h-0.3l0.15-1.3c0.067-0.867,0.117-2.033,0.15-3.5V421.65 M751,335.95
-					c-1.367,0.6-2.567,1.35-3.6,2.25c-1,0.967-1.767,2-2.3,3.1H745c-0.667-2.067-1.733-3.617-3.2-4.65c-1.5-1.067-3.4-1.6-5.7-1.6
-					c-1.567,0.033-3.017,0.367-4.35,1c-1.3,0.6-2.417,1.4-3.35,2.4c-0.9,0.933-1.6,1.9-2.1,2.9h-0.1v-0.4
-					c0.033-0.267,0.05-0.567,0.05-0.9v-0.85c0-1.1-0.333-1.933-1-2.5c-0.667-0.6-1.667-0.9-3-0.9h-6.95v6.4h2.4
-					c0.4,0,0.717,0.1,0.95,0.3c0.233,0.233,0.35,0.567,0.35,1v22.6h7.5v-13.35c0-0.667,0.033-1.3,0.1-1.9
-					c0.1-0.667,0.217-1.3,0.35-1.9c0.333-1.3,0.817-2.467,1.45-3.5c0.667-1.067,1.5-1.9,2.5-2.5c0.967-0.633,2.1-0.967,3.4-1
-					c1.167,0.033,2.05,0.317,2.65,0.85c0.6,0.533,0.983,1.267,1.15,2.2c0.2,0.933,0.3,1.95,0.3,3.05v18.05h7.55v-13.35
-					c0-0.667,0.033-1.333,0.1-2c0.067-0.633,0.183-1.25,0.35-1.85c0.3-1.267,0.767-2.433,1.4-3.5c0.667-1.033,1.5-1.85,2.5-2.45
-					c0.967-0.633,2.083-0.967,3.35-1c1.7,0.067,2.833,0.65,3.4,1.75c0.533,1.133,0.783,2.583,0.75,4.35v14
-					c0,1.433,0.317,2.467,0.95,3.1c0.667,0.633,1.7,0.95,3.1,0.95H769v-6.35h-2.35c-0.4,0-0.717-0.117-0.95-0.35
-					c-0.233-0.233-0.35-0.55-0.35-0.95V346.6c0-3.967-0.867-6.883-2.6-8.75c-1.7-1.867-4.133-2.8-7.3-2.8
-					C753.817,335.083,752.333,335.383,751,335.95 M802.3,359.75h-2.4c-0.433,0-0.75-0.117-0.95-0.35
-					c-0.233-0.233-0.35-0.55-0.35-0.95v-11.3c0-2.3-0.383-4.35-1.15-6.15c-0.8-1.8-2.15-3.233-4.05-4.3
-					c-1.933-1.067-4.567-1.617-7.9-1.65c-0.833,0-1.85,0.067-3.05,0.2c-1.233,0.133-2.467,0.4-3.7,0.8
-					c-1.233,0.433-2.25,1.067-3.05,1.9c-0.833,0.833-1.283,1.95-1.35,3.35v3.2h7.05v-1.55c0.033-0.567,0.283-1,0.75-1.3
-					c0.467-0.3,1.017-0.5,1.65-0.6c0.6-0.1,1.15-0.15,1.65-0.15c1.933-0.033,3.35,0.417,4.25,1.35c0.9,0.9,1.35,2.433,1.35,4.6v0.25
-					h-0.95c-1.033,0-2.3,0.033-3.8,0.1c-1.5,0.133-3.05,0.383-4.65,0.75c-1.667,0.367-3.217,0.933-4.65,1.7
-					c-1.433,0.733-2.617,1.733-3.55,3c-0.867,1.233-1.333,2.8-1.4,4.7c0.033,2.033,0.533,3.75,1.5,5.15s2.233,2.467,3.8,3.2
-					c1.567,0.767,3.25,1.15,5.05,1.15c1.7-0.067,3.15-0.35,4.35-0.85c1.167-0.533,2.1-1.15,2.8-1.85c0.733-0.7,1.25-1.317,1.55-1.85
-					c0.333-0.533,0.483-0.8,0.45-0.8h0.15l-0.05,0.35c0,0.233-0.017,0.533-0.05,0.9c0,0.933,0.3,1.717,0.9,2.35s1.6,0.967,3,1h6.8
-					V359.75 M780.75,354.5c0.633-0.633,1.483-1.117,2.55-1.45c1.033-0.333,2.133-0.55,3.3-0.65c1.167-0.1,2.25-0.15,3.25-0.15h1.3
-					v0.7c0,1.267-0.3,2.5-0.9,3.7c-0.567,1.233-1.367,2.25-2.4,3.05c-1.033,0.8-2.233,1.217-3.6,1.25
-					c-1.533-0.067-2.683-0.467-3.45-1.2c-0.733-0.767-1.1-1.683-1.1-2.75C779.7,355.967,780.05,355.133,780.75,354.5z"/>
-				<path style="fill:#DEDEDE;" d="M191.7,500.6h12.35l9.45-23.7L191.7,500.6 M301.4,345.3c-0.033,0.067-0.067,0.133-0.1,0.2
-					c-2.433,6.067-4.633,12.45-6.6,19.15c-0.4,1.267-0.85,2.633-1.35,4.1l-0.15,0.15c-0.767,2.667-1.55,5.467-2.35,8.4
-					c0.2,0,0.4,0.05,0.6,0.15c0.767,0.2,1.45,0.35,2.05,0.45l0.15,0.15c11.5,3.833,16.85,7.717,16.05,11.65v0.1
-					c-0.2,4.133-6.083,6.75-17.65,7.85c-1.7,0.367-3.617,0.55-5.75,0.55v0.15c-0.4,1.5-0.75,3.083-1.05,4.75
-					c-0.1,0.467-0.2,1-0.3,1.6c-2.733,15.633-4.45,31.5-5.15,47.6c1.367,1.867,2.833,3.183,4.4,3.95h0.15c1.4,0.7,2.933,1,4.6,0.9
-					h0.15c2.433,0.2,4.633-0.633,6.6-2.5v-0.15c2.067-2.467,3.733-5.8,5-10h-0.15c0.9-4.033,0.717-7.233-0.55-9.6
-					c-1.5-2.533-3.083-4-4.75-4.4c-1.567-0.2-3.283,0.633-5.15,2.5c-0.967,1.067-1.45,2.933-1.45,5.6c0,1.467,0.15,2.933,0.45,4.4
-					c0.1,0.4,0,0.8-0.3,1.2c-0.2,0.3-0.5,0.5-0.9,0.6c-0.4,0.1-0.75,0-1.05-0.3c-0.367-0.2-0.6-0.5-0.7-0.9
-					c-0.3-1.667-0.45-3.333-0.45-5c0-3.633,0.783-6.183,2.35-7.65c2.733-2.867,5.333-4,7.8-3.4c2.367,0.3,4.583,2.267,6.65,5.9
-					c1.767,2.733,2.1,6.617,1,11.65v0.1c-1.367,4.833-3.233,8.617-5.6,11.35h-0.15c-2.533,2.567-5.417,3.75-8.65,3.55h-0.15
-					c-2.167,0.1-4.133-0.3-5.9-1.2c-1.2-0.467-2.333-1.25-3.4-2.35c-0.1,3.167-0.15,6.317-0.15,9.45h11.8c0.4,0,0.733,0.15,1,0.45
-					c0.3,0.2,0.45,0.483,0.45,0.85c0,0.4-0.1,0.75-0.3,1.05l-9.85,12.8l4.95,6l40.55-70.2c2.267-3.933,3.35-8.117,3.25-12.55
-					c0.1-4.6-0.933-8.767-3.1-12.5L301.4,345.3 M231.9,318.95c0.833-3.733,1.75-7.383,2.75-10.95l-51.5-0.1
-					c-4.533,0.1-8.717,1.183-12.55,3.25c-3.933,2.167-6.967,5.2-9.1,9.1l-41.15,71.35c-2.433,3.833-3.6,8-3.5,12.5
-					c-0.1,4.433,1.067,8.617,3.5,12.55l41,71.3c2.233,3.833,5.217,6.917,8.95,9.25c1.233,0.733,2.5,1.35,3.8,1.85l-19.1-54.7
-					c-0.1-0.1-0.15-0.2-0.15-0.3l-4.55-13.55c-0.2-0.4-0.2-0.75,0-1.05c2.067-4.7,5.85-6.167,11.35-4.4c0.2,0,0.383,0.1,0.55,0.3
-					c0.2,0.2,0.35,0.383,0.45,0.55l4.3,13.15c0,0.1,0.05,0.2,0.15,0.3L188,500.2l25.95-28.45l-4.6-8.85
-					c-0.167-0.4-0.167-0.75,0-1.05c0-0.367,0.2-0.65,0.6-0.85c0.2-0.2,0.5-0.3,0.9-0.3l10.6,1.15c-0.6-6.867-1.033-13.683-1.3-20.45
-					h-0.45c-0.1,0-0.2,0-0.3,0c-0.1-0.1-0.2-0.15-0.3-0.15c-0.1,0-0.2,0-0.3,0c-0.7-0.2-1.333-0.3-1.9-0.3c-0.2,0-0.35,0-0.45,0
-					c-3.733-0.1-6.633,1.033-8.7,3.4v0.15c-0.8,0.967-1.533,2.183-2.2,3.65c-0.3,1-0.9,2.433-1.8,4.3
-					c-1.767,3.733-3.817,6.333-6.15,7.8h-0.15c-1.867,0.8-3.633,1.25-5.3,1.35c-3.367,0.267-6.117-0.867-8.25-3.4
-					c-2.267-2.667-3.95-6.3-5.05-10.9c-1.267-5.133-1.117-9.067,0.45-11.8c1.867-3.733,3.933-5.8,6.2-6.2
-					c2.267-0.567,4.667,0.517,7.2,3.25l0.15,0.15c1.5,1.167,2.25,3.567,2.25,7.2c0,1.767-0.25,3.5-0.75,5.2
-					c-0.2,0.367-0.45,0.65-0.75,0.85c-0.4,0.2-0.783,0.25-1.15,0.15c-0.4-0.2-0.7-0.45-0.9-0.75c-0.2-0.367-0.2-0.75,0-1.15
-					c0.4-1.367,0.6-2.8,0.6-4.3c0-2.533-0.45-4.25-1.35-5.15l-0.15-0.15c-1.667-1.867-3.133-2.65-4.4-2.35
-					c-1.467,0.4-2.9,1.917-4.3,4.55c-1.167,2.267-1.267,5.517-0.3,9.75c1,4.133,2.483,7.367,4.45,9.7
-					c1.467,1.767,3.383,2.567,5.75,2.4H192c1.267-0.1,2.633-0.4,4.1-0.9c0-0.1,0.05-0.15,0.15-0.15
-					c1.867-1.167,3.483-3.283,4.85-6.35c0.9-1.867,1.5-3.283,1.8-4.25v-0.15c0.767-1.667,1.6-3.1,2.5-4.3h0.15
-					c2.533-3.133,6.167-4.65,10.9-4.55c0.1,0,0.25,0,0.45,0c0.667,0,1.45,0.1,2.35,0.3c0.2,0,0.45,0.05,0.75,0.15
-					c-0.1-1.867-0.15-3.683-0.15-5.45c-1.867-0.7-3.5-2.033-4.9-4c-2.133-2.833-3.117-6.117-2.95-9.85c0-0.7,0.05-1.333,0.15-1.9
-					l-4.4-1.5l1.9-5.6l4.45,1.5c0.467-0.9,1.1-1.733,1.9-2.5c1.167-1.6,2.5-2.683,4-3.25c0.1-1.1,0.15-2.133,0.15-3.1
-					c0.167-3.633,0.4-7.217,0.7-10.75c-1.267-0.3-2.383-0.55-3.35-0.75l-0.9-0.3c-0.9-0.2-1.683-0.4-2.35-0.6
-					c-11.5-3.433-16.9-7.267-16.2-11.5c0.167-4,6.15-6.75,17.95-8.25h0.15c1.667,0,3.283-0.133,4.85-0.4c0.1-0.1,0.2-0.15,0.3-0.15
-					h0.3c0.3,0,0.65,0,1.05,0c0.2-2.067,0.433-4.083,0.7-6.05c0.4-2.767,0.8-5.517,1.2-8.25c1.467-9.633,3.233-19.017,5.3-28.15
-					c0-0.2,0.05-0.35,0.15-0.45l2.05-8.25H231.9 M170.75,360.5l-8.55,0.15l7.4-6.2l-2.95-14l10.75,8.25l10.3-8.65l-5,11.9l10.6,7.8
-					L179,360.2l-5.45,12.4L170.75,360.5 M138.5,391.3l-2.05-6.05l4.85,3.7l6.5-5.3l-2.1,8.25l7.4,5.15h-8.7l-1.6,5.45l-1.95-5.45
-					h-10L138.5,391.3 M184.9,397.2l-3.95,7.35l6.15,5.15h-8.95l-6.05,11.05V409.7h-9.9l9.9-5.45v-7.2l5.15,4.55L184.9,397.2z"/>
-				<path style="fill:#FFFFFF;" d="M164.45,440.95c-1.5-0.7-2.733-0.85-3.7-0.45l21.65,60.1c0.2,0,0.4,0,0.6,0h2.05L164.45,440.95
-					 M260.35,472.05c0.3,0.1,0.55,0.3,0.75,0.6c0.2,0.167,0.3,0.45,0.3,0.85c-0.3,7.167-0.4,14.2-0.3,21.1
-					c0,0.267-0.05,0.55-0.15,0.85c-0.2,0.2-0.45,0.4-0.75,0.6c-0.3,0.1-0.6,0.1-0.9,0l-15.15-3.4v7.95h20.9
-					c4.633,0,8.85-1.133,12.65-3.4c3.233-1.9,5.95-4.35,8.15-7.35l-6.35-7.65c-0.2-0.3-0.3-0.65-0.3-1.05c0-0.267,0.1-0.55,0.3-0.85
-					l8.85-11.35h-10.3c-0.4,0-0.75-0.15-1.05-0.45s-0.45-0.65-0.45-1.05c0-4.8,0.1-9.6,0.3-14.4c-0.3-0.4-0.55-0.85-0.75-1.35h-0.15
-					c-0.867-1.867-1.45-3.233-1.75-4.1c-0.1,0-0.15-0.05-0.15-0.15c-0.867-1.4-1.7-2.633-2.5-3.7c-5.1-4.7-14.383-3.467-27.85,3.7
-					v29.75l15.75-5.15C259.75,471.85,260.05,471.85,260.35,472.05 M180.95,404.55l3.95-7.35l-7.65,4.4l-5.15-4.55v7.2l-9.9,5.45h9.9
-					v11.05l6.05-11.05h8.95L180.95,404.55 M136.45,385.25l2.05,6.05l-7.65,5.75h10l1.95,5.45l1.6-5.45h8.7l-7.4-5.15l2.1-8.25
-					l-6.5,5.3L136.45,385.25 M162.2,360.65l8.55-0.15l2.8,12.1l5.45-12.4l14.3-0.45l-10.6-7.8l5-11.9l-10.3,8.65l-10.75-8.25
-					l2.95,14L162.2,360.65 M227.95,474.25h-0.6v19.9l14.3-4.45c0.1-0.1,0.2-0.15,0.3-0.15c0.267-0.267,0.6-0.35,1-0.25l15.2,3.5
-					c-0.1-5.7,0-11.483,0.3-17.35l-14.9,5c-0.3,0.1-0.6,0.1-0.9,0c-0.367,0-0.7-0.05-1-0.15L227.95,474.25 M160,427.55
-					c-3.133-0.8-5.383,0.083-6.75,2.65l3.4,9.85c0.767-1.067,1.733-1.85,2.9-2.35h0.15c1-0.5,2.183-0.6,3.55-0.3L160,427.55
-					 M230.3,410.9c-1.667-2.067-3.683-3.1-6.05-3.1c-1.567,0-3.033,0.533-4.4,1.6c-0.6,0.4-1.15,0.95-1.65,1.65
-					c-1.167,1.267-1.95,2.683-2.35,4.25c-0.1,0-0.15,0.05-0.15,0.15c-0.5,1.2-0.75,2.433-0.75,3.7v0.15
-					c-0.167,3.033,0.633,5.683,2.4,7.95c0.667,0.967,1.5,1.75,2.5,2.35c0.967,0.6,2.033,0.9,3.2,0.9c2.467,0,4.683-1.083,6.65-3.25
-					h-0.15c1.867-2.367,2.9-5.067,3.1-8.1C232.75,415.917,231.967,413.167,230.3,410.9 M234.55,447.45c0.4,0.2,0.8,0.25,1.2,0.15
-					c0.3-0.2,0.6-0.45,0.9-0.75c0.167-0.4,0.217-0.75,0.15-1.05c-0.2-0.4-0.45-0.683-0.75-0.85c-2.367-1.4-4.583-2.533-6.65-3.4
-					h0.15c-1.467-0.7-2.833-1.25-4.1-1.65h0.15c-0.533-0.233-0.983-0.367-1.35-0.4c-0.6-0.3-1.183-0.5-1.75-0.6l0.15,0.15
-					c-0.4-0.1-0.8-0.2-1.2-0.3c-0.5-0.2-0.9-0.3-1.2-0.3h-0.1l0.1,2.95c0.1,0,0.2,0.05,0.3,0.15h0.15c0.4,0.1,0.8,0.2,1.2,0.3
-					c0.4,0.1,0.833,0.25,1.3,0.45h0.15c0.3,0.067,0.7,0.2,1.2,0.4c1.067,0.3,2.3,0.8,3.7,1.5
-					C230.283,445.067,232.383,446.15,234.55,447.45 M234,399.7c0.167,0.6,0.5,0.983,1,1.15c0.4,0.1,0.85,0.017,1.35-0.25
-					c0.367-0.5,0.6-0.9,0.7-1.2c0.3-0.6,0.25-1.083-0.15-1.45c-1.867-3.367-4.217-5.15-7.05-5.35c-0.2,0-0.35,0-0.45,0h-0.15
-					c-1.767,0-3.733,0.5-5.9,1.5c-0.367,0.2-0.6,0.5-0.7,0.9c-0.2,0.567-0.2,1.1,0,1.6c0.2,0.4,0.583,0.7,1.15,0.9
-					c0.4,0.1,0.9,0.05,1.5-0.15c1.367-0.8,2.683-1.2,3.95-1.2h0.3C231.017,396.45,232.5,397.633,234,399.7 M284.8,391
-					c-0.6-0.2-1.183-0.4-1.75-0.6c-9.867-1.917-19.733-3.833-29.6-5.75c-0.3,0-0.55,0-0.75,0c-0.1,0-0.2,0-0.3,0h-0.15
-					c-0.4,0-0.8-0.05-1.2-0.15c-0.567,0-1.15,0-1.75,0l-8.7,45.25v0.3l-3.4,15.9c1.6,0.1,2.933-0.1,4-0.6
-					c15.7-8.733,26.55-9.9,32.55-3.5c0.1,0,0.15,0.05,0.15,0.15c0.9,1.167,1.833,2.533,2.8,4.1v0.15c0.1,0.3,0.25,0.6,0.45,0.9
-					c0.767-14.433,2.383-28.733,4.85-42.9c0.1-0.567,0.2-1.1,0.3-1.6c0.3-1.667,0.65-3.233,1.05-4.7c0-0.4,0.05-0.75,0.15-1.05
-					c0-0.2,0-0.35,0-0.45C283.867,394.583,284.3,392.767,284.8,391 M254.4,397.15c0.133-0.4,0.383-0.683,0.75-0.85
-					c5.467-2.633,9.9-1.75,13.3,2.65c0.233,0.3,0.333,0.667,0.3,1.1c-0.067,0.4-0.25,0.733-0.55,1c-0.333,0.233-0.7,0.333-1.1,0.3
-					c-0.433-0.067-0.767-0.25-1-0.55c-2.5-3.1-5.717-3.7-9.65-1.8c-0.367,0.2-0.75,0.233-1.15,0.1c-0.4-0.167-0.683-0.433-0.85-0.8
-					C254.25,397.933,254.233,397.55,254.4,397.15 M260.1,410.95c-0.533,4.933-2.8,10.9-6.8,17.9h8.8c0.4,0,0.75,0.15,1.05,0.45
-					s0.45,0.65,0.45,1.05c0,0.4-0.15,0.75-0.45,1.05s-0.65,0.45-1.05,0.45h-11.45c-0.367,0-0.683-0.117-0.95-0.35
-					c-0.3-0.233-0.467-0.533-0.5-0.9c-0.067-0.367,0-0.7,0.2-1c4.533-7.567,7.1-13.9,7.7-19c0.067-0.433,0.267-0.767,0.6-1
-					c0.3-0.267,0.667-0.383,1.1-0.35c0.4,0.067,0.733,0.267,1,0.6C260.033,410.15,260.133,410.517,260.1,410.95 M254.15,370.8
-					c0.3,0,0.65,0,1.05,0c11.6,1.2,21.917,2.967,30.95,5.3c0.1,0,0.2,0,0.3,0c0.05,0,0.1,0,0.15,0c0.467,0.1,0.95,0.2,1.45,0.3
-					c0.7-2.633,1.433-5.183,2.2-7.65c-1.867-1.167-3.583-2.25-5.15-3.25c-2.167-1.167-4.333-2.283-6.5-3.35
-					c-3.533-1.7-7.117-3.033-10.75-4c-12.667-3.733-26.167-3.983-40.5-0.75c-0.4,2.367-0.75,4.733-1.05,7.1
-					c-0.3,1.867-0.533,3.733-0.7,5.6c1.567-0.1,3.183-0.15,4.85-0.15C238.35,370.233,246.25,370.517,254.15,370.8 M302.05,298.9
-					h-0.15c-3.733-2.233-7.517-4.1-11.35-5.6h-0.15c-3.033,6.933-5.883,13.95-8.55,21.05c-5.067,13.433-9.433,27.1-13.1,41
-					c3.733,0.967,7.367,2.3,10.9,4c3.267-11.033,6.933-21.933,11-32.7C294.15,317.317,297.95,308.067,302.05,298.9z"/>
-			</g>
-			<g>
-				<path id="Layer0_0_1_STROKES" style="fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;" d="M178.7,500.25
-					c1,0.167,2.05,0.283,3.15,0.35"/>
-			</g>
-		</g>
-	</g>
-</switch>
-<i:pgf  id="adobe_illustrator_pgf">
-	<![CDATA[
-	eJzcvWdbIznTMHo+39fFf7AZZggGu3OAIZo45BwGBgx4wAPYjG12730+nN9+VFIHqaQODvOcfd/d
-a1norlYolSqX9Ll4cDyz/Ni6r8+YZa0w8p/Pn6vteq3bas8W6OPC1uvrR6fbhkcTR5MF3S1rALW8
-5d0GkGf1dqfRas4WdL+ss7fr8P3E38+Nbn2yMDEJj04a3dc6efjaemrdHp9t6OXOX0+TUYekgdVa
-lwD4Fd2sGJpuF3R91nQLB7sUptb8q9bpNP6HQOiO6ZnwcKX10XxsNJ9WWv+dLRgFXSu4plUwDBde
-bjaO6h0Jouz55B/T8x3LsywCb5YN8sBzXd/wHZ987JR939B9zzY90hG0tNp6+HirN7sH7dZDvdOp
-tl5b7c5sofpPrVnYrT2RN7XCZf31tfV3YeW19vBCvlnesm/XG691goe3WregmxQty1u6cbvy0Xh9
-3Pt4u68TFBk+fWze0kZPO6Q10jD8Tp+7t1tv5NFxvdslkyB9UuQebazwQyFP6b8T34/qTw26VASZ
-N5Nhy+3W+1ut/dJhcK6tFQxTC16e1N/eXwnaKX5M1yoD1uEn93sISqZDwWZ0o2wDFn3LIGizLfLE
-Ex8VXMcoO5qmmY5j6JpvFSxdfBA0GqO2/lej/vdsYa/VrAf4W253j9l6W5amsZ/Bq6OP13r7tNno
-kkkZ9JnPMLjbeqy/ki/iJtZfa0+dEEV6/DOAOKm1n+pdQimt148uJWIv6oUs0k7tnzqsNWtQd29X
-CIqbpK9ml4z6tvHz9i9G/LdP3VndDeD82/33evOkdUanNGOYfsGxfNKvbpgEqRpBme6x1fAIjvVo
-dHr8M+xw+bVbbzfJEoWdDr2HtebjbbCF649CLzbtBfoI8UB31gEhyf12gyBiluyYGcMzAmLdaDce
-Y1p1jYLHftDuywSx8I+u+4ZGNlveJ5SsfNfRbU+3jDxPAgyRle+SqUSLZ9xWd7mdpJV3j2E2ZPrV
-1hsQYYfyFFhgsr0Imwrexn/Qd6SJj/cAPYwaCM0etBtNaHjkP3vsnXd78PpBXm60Wx/vW82frZH/
-TDB+elZ/IDyTEPZjYf/+F/mDMEi6ywsn7doDaYP8HcGUa433yYwGyTzb9QJ7S76lf4b/z/P9av0n
-4VJxA+zpWvOv+mvrnWuYweVp8eC11qy1C/RF1OBO4y/ypkbwFDcJgPXuRa42Cf29E7TQVigMaj8F
-gHuVp6udRlNqgj6rtbt/t9ovsGCP9VrM3/M0evxS7z4842aDp4M0fFDrPhO5U28+diJcsD9jPAPu
-2bM8LVZrr6+Np3bt/bnxUFhpf3SeCyet1mvUuuJ91BP/jr6CL3NOAxjdfpPNR+41AMAdEhbPvvkX
-9xZ9peqJvPw/qZcQMWuPDcKiErZiKszx3zVC8zuN+1zEePzP233rtdF5i1rnnxyQndN4eK0f/9Pp
-1nPxpuMHOjgVjsRXEZ6Cxz1h6U/3Asv2s9F8JO0cfzAlO9ibrbd30HkLx8+19zrFUAh5HDdpU6HP
-ya2ZmUyJ5rN3oJV1/3mtE2FZ2W62/m7SvwqzZFDfiYSofbx2byYLlb3aW70wTWCOG0TDrEdAWmEf
-fsTqiF64qMGTI/KjTJRTIvc9zTMt39FA/Duu73iGbRtEsBONnT7RDNDPLdNzLAue+JruWJrh275n
-mE6o61wsQ7PRX//AX9/Ib7/Is7/BVtgtfL/RCo8j5CXpnI7kkQyYiai5kf8UKmQ+8AudPEEYN/Vs
-HB7UXomuUWeTPbgf9uywsk+xefE/sArYCjh4IP+txGOORtbbgu+QRoVFlhHDQPqkL11jL9n2hqb+
-n/A5aQw/TeohGHRoVxCTklDX59tK+ABoEP5sPAB6au1/ggcXuzt7xHZIeD1XmPjv22uTAMyQXdpu
-3H9060TaTlPg5Xa79r/azJB64eAenolN2q43AyijUNkiqIpew4/uP8BO6OuJL83O7V+1dmeObPRj
-0kPzSYT9q/b6EQHDi04CYJNwiQAuGE1H/PP/eFTdN6j/Qc+DKYJSYlzsUZzkQBcPPv2vmGyTWJB5
-JvraenipP+aaZAg6TKIYHBF6OiLyrXWjdv9az7Uz8qzu/++LD0zh4aPTbb39Qbbwr5hlb6xv9q/8
-swTYnij9j5LobKcGuhvIUMJo8lPq/8a+IQP6t43n/66t3Pn5979fvP8btknntfHwfw8bd01dDIhU
-juq115Tp/9147D7nWv8A8l/Bxw3dKWu+YWiWY+nECsuc5nO98fSci+VEoP+OiWbO7L/5Nu+/ZD5S
-BC9rev/kmt4//5bpFSorrVbafO5bXaJi7dR/dlkIJtf05I/+NVoGZZ/HrY/2Q50Ga/8dagaRfv+K
-cbzVu7VHon8NYTD+wIP59Bg4UXLRHActi3W8sWhMmu3lg1aj2T2qv560jhix0tFNHLQ6DfiEvtZj
-BLPtf7B8FAowG9xjuVsywsktt7v3rVr7sQCm+mmz8UAmFE6Ss7G1AIurjc77a+2f3RpEbVjHnu4W
-PM11uM5ZhzRaLWy8aJtvdcJ+A7fanmpFQxiKQTQQCO8vt+u1ZRreCmfzfbf+2Ph4K8SB7Rt5Wstb
-ul6IHGM0rlkIgqb1duGgXe/UuwVuQLqthfhe3vILu/XOc+Go1unW243/od5GrrvgE1MTPtn/6L5/
-dLM+CqemGt9Orfn0AcHSg9Y7RBPCDxg6oY/32jsZfafx9vFa4xq1DcvwooZ9CLmx9X6AvIGCUbiP
-Kd3g4LrtWrPzXiP76OGfwlO78ViAJJQA0LFt005uVC+0I99FJuhTux7t1UxgbrCZE4vHkAnKj0FP
-BAwBIA0nAgrXiSXqHMc40uPFIctJqar9V71wUv9vlwaIaveN10Y3JOsJlkPEcZiX5a31j9fXsP0g
-U4G8DUnMcB03GAYX6IVchNsj0MQ2uElpaYArMVL5BVDCHsVIjShcCbj/XnuIp2fZqcDrtYf6cvPp
-tZ4JDrJcgvYShwI5HASbhGt1a82H8ANP940CUaJ0iWXh74+7tYhlRuua47OH2ivmnBgG0nhCVHpa
-mSWAaIZup6Nq7b/dWLbk/BCQJnxn2Z5rJYxr/bXVavO0k0ZoFJijn0zYPPRDAUX6MRxDTxowzI4f
-r+35np4Ci8g9BTLPYKlyKYw1Y14/f3bqES0lLlm1/vpaJXphCGkmtgqQHNsxkoe6Cak1reYmb6cZ
-CdM/4dwiREUJqIxjT8dnGzTFbqX1X6HBCaKIpEKfc+YwJ8B0p/AzksG1ZrdRqL02ah0FoMYBtj66
-r5Ch0um2Wy/1vNBdwoND7QxrZG6Ikcf3Rhm3R4YU9mE6IZrfa4+PGPCt1nmJ+EXwrPPeivZf0AcR
-KyE7B3Vnq7D80W1FakJdMR29EKqXhZdm6+GFTIlIr5ZKJeBhG0TVqHXrRH7WaVwmXKwZxw8Wq2Dr
-Ruq6XVyGH4XrW0hYaGC6/AdaYcbWtEymSTTWGvxBt8lZrdnoPJMmedabKsVoTtVZo9NgchU4t8Dv
-XT8Hv49bOmm9813nFxlxEyvU+hRacVxDYNik2ZwtKhHi+rZeZkmAvucbZsEzdVkPV7EsOkBgHYJc
-SERwrMlvNR/r/z2uP7Sajz1+tN5odyJEWGaECF1zvXwDj1Gbe+SUmFJII+m7CEeDUlTUUN8EFbUg
-05Pr6tH6u56Vk56gQSU56Ql88z1UXlt/1dvvkHjQyfji4bXxTpRmCKP8lyjiT4TDRp9onJ3Df9Om
-bG/mL5oDWrivvXIa2xxM6qHVfqw/Kvh2obLX6orvQwVghzQampFbqyqDTjcKhPFutGuPDeCUteZj
-YOGl2nTsK5odCSlm8BXV7KWvxL70wtrBce+dsc9y9JYXLZXY71X51bov00Wtvb6GBk8HbQ8M33lp
-vN+TBXrJgGvXIU+8DiNoZ4ASWfgab7AJ2WzHH4RjJYbqE2d0pc5PcvpIgMTG5huci+w3yI761rqH
-RLQCYDknxpOme9/ovtVgY0k+ALbqPPz709tLmYju+mPr588yc2qGGmwiPK19kOBVCBKb/+jUic25
-An+GVCBkuKWsCixhnWKD954oeux0X8uPrEm6MhFxZCw7fBd8wDnd8nz0/vhGXr8284/r/TF/8yz+
-H3+iWvT393YAl7YUBCgYQLjAuqFcYgLIB5ZcPxFMiMt4ZYsKXduFIJDtJ33UgMz88iuRFH192G2F
-CqmjmWJFTOp3bW6ortfLlwKVQ84+YZaPhft/CqttIvfa6WsIzTQFZ6fc1QNGeTKUgPGUxlq8LZjS
-HIaTyIaCUY9dBpN9rHcaT03eP2ikccz7IDKR2iaFbP1sSB4PNRPuMM6Xn883ZS+0MPfXdhn2dgYI
-UVgJGXTBCEubEIBGWs49VLWF1GgowduPZWJVQymcwpGLIX8Srei51f6f0KmQAPYeOOpTCYN2/FRO
-J8YAKMyu0bVEsA54rKLWMgH/yphp5+H99eGfFEbHgB6anVSyJkBdontH9mryLMmSvdbec6AjAEyb
-AJWH9Sakt6QydADrQP5vPlqm8EwCcJslz0dkF3ShijQcTNmwE8U+kR7g40CMKkXmZwE9tFvvWTCg
-NTWIYpQF1+ZStDP7BZf7fa3dSVtSUXXhxFUO6C4/ryxgXjDl0Lm4keSA5qRlNjA/EtXO+tnslh9f
-MzgiA3pv/2w1U9khwHU+7qNdaqpWq0Om+1f9NWVMBOS+ASpy2qJ3ys36U42L5iVAgVlJ9OZOBg0B
-IJFLzYzWXnVorxb7WdXE0Cl3nmvEiKmnYQug6l2waJtkfDE+lO0hMFclDf77XhbtYFNT9UvA2pIl
-QQ1PFeiTyuhQAQYik/OWqtY2BmRO2AxQIgLTewXfL3X9CmxfBdl6f0jjOBSik7b8FOLxI0UTIhCd
-j3dKbrSoP9qo+SLNqKkMTYaYsp0ccoeC/fxoPqQRGAMKfCsRkWUIG/pRrdmM/NRqO5mCZZoyD2+8
-WjZxWj4uF87r94Vqi1j5j4XriePz/YPrycJfRoZR+UYUR169VK0TAQKrUHBlqYBCT9bD2z9prgsO
-stV9rgs++sgZsBzC8+4A3v9ux0H8g8Z/668H9fbP+gMe4fHZxjphVDutB14scm/X3u7rjywmgL1u
-UtyxWZMCARLMc+vvzcajFFwgPdFSOjDdO++1B7yRg3EeE2nAisllF6BfaLZiH2Gh0aQuQNBmMxI0
-uMwM6ldLy8YQY0YQM4Fg0bLIMXi/JG2xCg7JauCQPBIdkhh2PwgTHQtBpTgvIHDH7WNnqGtjELZq
-FVbWXlgRWLkYqaENBv2eCAw3AUgaHIJLmbCIQQBWoVBLQgs3PH7GFCZtwjqClfCXTRxsaqm5Ohw5
-w0BZpa/iJUTatuttxX4DKufCn/wGuYi2F9/UwdNPBWx4xAhiM+TN6knoiDa4Xd4kDFAg4PANLTHk
-BmTGr8j8HxqiIhSu2XHtr/rux2u3QQhgGXl15xR+Sq7eExURAt5ZdSEgNHw58p8KvA==
-	]]>
-	<![CDATA[
-	4B+B/3P5uLq15dmrdWDntOXSgn3nlhbP7itapbQ7U1p87prwm2F9PZw1oxeH0W/0xZy5eNJdWf3p
-b7xsfjqar63+1C4XordGaf7IeS5OmpvzxZnK+BHpplhaePlanNy78ovTzw3y7u5nuVj6mD0uTu9e
-rBZntF1Dq8xfTtD+7WJ18tDqGJ1dMrrVF2tx/27BXPFMz7ly3q6+ztytt9xzU3uM32qbt/Uq6abd
-Xpi/X55+3/u2tO13FrzNr+fl9daVdbbWvr7SVq/WL0/W55fnH/SpZbepVfbrp6WFyxtD+3ZwVNU2
-7+yKcVfc3Nenx5/PEkdCuskxmHZ7sfixcrf7sbu86Tzsz35pNqY27O7uEhnE2fFSpautz97sr7b8
-u+OZZfLttzft8cvlatTrO1ubjdcFf3PsF22cDPp+rVSdmToiI9pxktaGYb9s7vhjMshOp92e65wQ
-bExvaRXreAK6gT7jkXe89e6Z8aP18oWMSG/CYPbjdts3Wucradz7KC1sFL/EuClXOt6G5f2e+0WH
-Hcwm7JWuzVznun2ze31IO5Z63XB/2LNbP8rKXn+M7e0k9uo0tjcYskg3qON2+2txot3RP7fVvR7o
-19aoMTul6rUzPr07o+qVdEM6tp8nauOXa6rpttvW5YW2rk3tKnsdXX90xtyjyT1Vr9r6yfkq7ZWS
-AJ6u8+nzwfHyclKvd9rGp6tTda8bM0vjW/flC9QrdEORfP2r5gTTPRgfR0g257qvj7RXRocCQV22
-b4xve9DrpLyu5e/W/G61xNbGakkE9ePremKv9uv+aDep11r7x5fPZ6hX6CboeP3BaY47prLXzvKN
-mdTrptX6ftlS9/p1dKIz7n6Bg7BU021/3OmfJycWv9+oetXW/bWFhF6dT2PHZ+051CvtJljaG239
-ZvNIieTR9c7c55fK2bGy143pj73EXsfrT0v7IbORp1usEP30YAx6nZKW9nB9atFdKu6SXt133OuO
-u3IZ9Ho5M0F7Zd0EHTvHOy9nrNe165d1gYyvlrSd72u2stfRzd8d9+XToaPsdXeq3YDtKXYc97r0
-cltdTuj1+6R2PFvvqHvdnrnefqxPd+NeSTdcx8e3i3OJve5db35bSeq1qp2NX3jqXnc+ARc4frp/
-9JTTPdvRW4m9nm5UNl6Tet3Wzt7NpbhXmA3f8eLk2Y/zu2Vlr+eL91OJvd7eLnfPE3q9hhPWtJv9
-k0n1dPf2n35drH6dUvZ60y0fJvb6dlD6chH3SsUa3/G6dnv4+6u61/2lyfb35U5V2evarxknoVdv
-EzSb8z1th3VcG+1uiJtnsf1x/t2CXkvS5tn/NDf54+PtlvQ638a93k0djQW9vvhTsDZ8x/bzF213
-z6a9GuMLE5tir+V25+nbJ+h1RmYUO+Xi9SdnnfS61EG9gpDuXLd81vHixNo0QnJxeX1/nPV60539
-JmB48rQ0tzn/DXqtyEzxVJ9xd778Ir2uA0FjbtxuLE4Gvc4elsW5bp6ufP7ylfZqLp7u7Ahz/fS9
-Y99/P4BeNdQr6abj7flfRi+6h1ukY0Pi1e3l++Zp6bP5Vf12xRu/PN25/qZ8+1ErftW2rktdJtZU
-AOMLeq1z8En1lqzD+nTx88rYKrxVsLj7puOuj+nwtqTanpvP76FsMyTSGt1stt39m0074W236+kL
-V67qLSBtdOtLcWn/fO1Q/flWd25769unjvrttnazUyrZHwlvndu9pYWP8QBpCoDtnwez7tmM8q23
-d6WHstWYlnmlNhat5oySpzlfTmvf1xZiAOHt14mz6tfzpYS3K1PnY+3GiuotRdrO5vRt1Tm5Vn++
-u7z+a37SnFS/3Tt6/tW5XSslvL349WZ2KkaANAXA2+/WzEvdU7+9vDlwjmozhvrtzdT3iMiVSLv9
-fRYyR8XntQtjfnTaXVe/rV/srXdH9+uJSPup3TyP/9oaVX7++fzw8WyiuLeoettuz98emkuHExPw
-tiy/NVa29g9X3gKkSSypvXz71inejK8q337czU5Mff5avEt4Oz85tXQ+VYvfkm4W3ie/vsf2GzLe
-iHV5UI2MNzfdeCtObc/pxenVo/Pi9NkPYiPfPp4UJ75PAuuEPw7AnK4WZ7ZviYp08eKyLxfmWy9k
-RMdLtMO468qu1xwn1vXFBzWGCJ/9+TXq9VOlMX8/SfS+0TViDFU0TALtUWN8/mAmsIfGWrx8XPhk
-jlPTlRlD92NHLzHr5nu1Jq9VvZJuWMej6z/E9eV71dZXnP2EXonS3DTnbhN6vfxBe+V0AWG6oxtF
-O7nXjY32ZdSrKfTqbX767Xxch71uvNJeqaoeIPmGn651PMYj+XDpiOv18cuXT3GvpbnX072EXu1n
-oLl3ThcIOo6me5nc6+j6k5bYK7UrUK9MVQ+QDKbFfVKvtZReN7TZxF6pksLrAiZaWtBTTtW9fi1O
-p8116wtaV6C0aaKD0CHQ34LF2Pt4RKBquP1P9RxwlKftzxdzgLY/bl+Y54XxDZh18MXdt0W0g8m3
-0xOllVZnLzLYyR9V0A23KG5C/EZ7f2P/iGB6dzr4sahtxS6BwKllTR/xu+rgy5v2OP69GgyidrTC
-tudsa+F94vEEsynS/0rlub76GX58inqYUrnNyHC+r+pTK7/WAcRkDUQMkFLawhr/g7DJWBknDZlj
-hxzDJEP9HYIEE44HrX2zP3+mP4AizpFFEIxtP5rDamnh3tzkcMhhf+P0gPz5BdwJH1PZY+pQECZv
-1MOqND7NTtMfDKXMt0MbiumFABOs73ykY510E2H/iDfdFTNc1Ld3smZIf9QuVtEaCoYHXUZz8exk
-V7WM/BpO7wZEw0wm5QznpuI1DP0COZZRvYYbx81sKg2RdpTZ2tlANB/OhuJL+zn++2Io9NXSa2Pj
-mzHqebHWO/YreXdQ5BpKwdd9p298hVwocqYsXE43ESMiXVff+R4i6uuRC/0ADq2v3XQ2ojZMNQ43
-tr8EypoCfWvX+93U4XwK5M00/PjOu2ol9K2Bnb2dwMSV23MyeXv+WDPH5rZ3Bpzc9Sc0uWhtBHR/
-YXspCdNavXZ7mjmvyS90XvFsENlfTr+LgqO/Ka2WMbOJ9qNA8Vr9oPxFVOT5pVrYuP6dTYcMMby8
-kXDzc3biKklwH0aUEwvuUhpBaz+r5e99t4bUgHujhXdfbXTnN7VvBt+AtfUIRLmadG2m16bZj2DJ
-WKxCZon35qjAxBKWFH4E/JB6v0krKOjFJrmrJ7ZWeW6V5uWBzf5OGJjx21i58r8FMQJ5ptMrEwrt
-LG1ZXrx3tCzk29M2nRcvCBDn/ZSTC20AbtYTxFSgSpJuUrRJbpEfN0QWKysJaSuMxNqL95EuqfIq
-VWTs98WYhllgRcIXzLCSRXgv/mjimOLh0B/RvkkZ1vOnJOm5FG/e9DUMLIKNLF3v9mM87xqqFL0A
-aXmWUVzDdiS98lAE06HTWnscr631SV/I8CCtJVomvU9TRfj9Iw0pfAMiTeS8gyKNMrh+WwvcYAG5
-GSsXlzOxdQu/bQah77UhaM7dhWQOAkhDloZ6PzxtZi1GrHrL2kOwPTexwd739nzaNG4+VrbTKQ2b
-0ywwrEDQ4ufc5nTgHVSNKL9lqFavCHY2Dt6yODSnaCQtdyeLPQgjUfsFNnuyAhNHEvODSIfuBy2i
-1pk2knht5MFkMQBkPN6bk0qBtXJxC1Hc3jwwLDQa+ca5Ju9macD9iPeIT6x2M50puIcE98cWWMEb
-6WyEpYzEnCRhoxBDLVnu5xgTb0ZtDY0V/NpCrCDRL5DNCsgMv/TsF0hE/OLs4W4P/Fs9JjobQg9Z
-CgQi3lDTx8R703nWVTOkJNA7aW1cvvfi+ZhMNgp/bWk/9dHLgfFFkUVV9Z42ewq+7F6kp4wvcbPP
-d6XNrn/7SDfjwm6yPYHf8GbPdjrE6IukJ9Ghx9JHlNfmMMdmwZ2Qw5mSw5H7DSv3qZNLEgSkjYk8
-VnOaI+RbLKljZpPmC0mg+bdvWr3zcp5jSmx7SksWU9DATj1zzP8tibU+cXPbTveVBH7oT5nuHYKg
-FN+OiinwLolgNpymDVnbmqhpb2M1O6sHSc2O983s4adB0bedGNMCS7pH0fi+LYrGBLIQ5GLivpk9
-HHjfbMciMYqw98KhopEURWmYTO4xCSgofvH0szmE9SIyMJd3MJUVvG9j8adADOUCmbhJ9zDmUHND
-XQAQ5OZAUD41d3KiJGaEMIK+OB54AwaTIyxZxQVVRmEaIwS//Uzv4i923kutVfIQmcJLq2hKGwKH
-hkKPpY9cHDqVZOnK8QZr74TPkYBobPaxg2grl8owWeB+6KWh/HGO5GgUbShLFuYThLSpIMqYpXIk
-tIYc6hvHTayJwrOYeQR6msw/8jrwoLVs8RNlP2Q4aWC8KVEjZaSwlLI2J1LYVo1NXjFN425ToViL
-GRx0czo07nbWkpwpfah5oHBm8KMenPfQWnLUKC93i2xP0poxMHcj5sPx6BC4wGmf3E2itNOhcLdT
-xN342FrPDQ0jiksbErmbELrR6t3TSkBLav2AWzSWajWnJYeV+AikWncJKCIYyTixkRemRF2fdjOs
-XIqLs0RjO1bVs7VZWNUsjS2B46ryBaC1nnX+xIHRbIrEKG5OjvNz/LeVY1dDN+kbe+16tTQwe2Ak
-sJqh4eXhM2JWBWpFcA1lN5RLRVS0wjtTaEPJOyhbX0dj4hh7zvy0NPk4jbR/2EHnSDgK7u5e5eP1
-77w+kDSjEKywDImW1/lFM1P00VwmZg7tnzSl3Eay5zaD3Gqj9bEhiLXzgbX/sBVeOPYt1s4Ttf8e
-xdp5n9q/3MptG/kF+pePkJ5jJG5taq31Kh8hEX0aycc4p0Y1dT7nNod8vEhzRvN5WXFqB52/OiAJ
-Y/uRaLUK2Ix3ZkIIDwwJI9OSzrvPobVkAScKgjz7fHbC7t3pkoy0Zk+Ja4kG6AXd7j2kwSWw6dt2
-ms87IIswfTTfsJJ3a8YmC3ydSFKVFZLqchAzDgUkidmZIqlypMbx87+M8/eVLtWUfaakl5WLF6Xx
-1E9qL7T2O4eoUcZ+RoQi2aC17nBo+TKvHzohsIBWM0emLx9hT9A7quVKSqYvTxaVxDHFvk4YVopD
-OXdabKxCsCx0teHBl+5NHI25xennX8dQo7dTnPFmbhPL+dJr+ZA62H85X1yJpKrlizPvByznS6/l
-GwlOGRm4nE/da1jLN6IuXey9nC+9lm8kLF0ctJwvvZaP93UOVM5XSq3lG4lKFwcs50vsldbyjSSV
-LvZazpdeyyeQwCDlfOm1fIEgGLycL72WjzlThlDOl17LF8ekOQabXIz0nsPO5rW9sBJJkXk/tbyU
-nt6Wd0ztTIMdqGoiR61i3lRZTodOigIcfMnIX+/BQUxQdVAcBqrGlXlsgiWdF1VY+Mt5bFOoIi0h
-Ugj+z1KfVKVoahrbN30TQ3oFX6TZ5Cu7K/c5Jux+gGGJ0aBsxCeNSRtk3yC2k694Tw==
-	]]>
-	<![CDATA[
-	yoHKR7eX0+2e/IRqo3AtrWy6p/ySH2vU15zDQZzD3Xw5k1HNFFnS6TVqKOuy5/wSSgKX0+95U0xS
-y+6S3cz5HcRrPXm20FKFBB2U3WWmmGRFKwhiVNGK2PDIZ6hwrQl1FBk2D7MIhNbEBC9i2G6URM1i
-Pct0z8+ha6MX6XkTecvN1mnRa5hBnDOaPZmwC2vr6eWUvMGewwewnhoYT3a0CUgTfY0l2aPyuNFn
-DZMq6PXidfLWo2UWo33vDrGmMP1ohVt6DlTeerRMnWy3Ffu40Jh4ebMBBS/fEoaVrWaLY0rNvI9W
-MFe5lz+WpRr0UlPYTHS8517DkbCmEMc5BqEI+aAGWRfoobWMEh2uqZDZpLWWkczfI9IyinZ6maaU
-ZjAQ0jJOa8hEmugvdttSHlV3IZkfqfTJ5GjU02ZmKXG47RMbiOr2RpJKsDLbyOQ9Jzr7kV2I2V3M
-2Od5AyXAOrFHOMUeVKpoxsrl6Jf0BgIOndbGxW1uqyYBJwsdirQMgZi1SjiworCIKEFnFNtlcYFs
-dEixtX4wkkPegc8mM3a6mWPHJyurME3B9jRuOvdlUcPcyqrURRpmCkHfdJq9ODj6KdQb4aqJYh6U
-pFz+2uqzbFqhp5Fh5amazLH3jZvuxJdMPS0nqsZzkOoIV1CWjKoefUHJjq7EMr0kEZIyJoX3hjMK
-85MnjMnsaUzJYg2G1ZP3Jq08r0dHl4Aq0XuzqH/rIO+NOea/f2SlXefy3izq23mOa8lKg/s2HO8N
-86q/fRtSsiCZ3Lhqcj0mJ33r03sjGh5QDzew9wbq4XAychxY6a0erkfvzYjqfAEohRvUewOIyZHg
-n68OHhDk5CPofCmCSx9SaezsYTErRyfc2oETMsmN/b49eIXk4qn+OSsBJq8dsp1+7BndN7k9QO/b
-fR57JhA0md/85OBlbIpkCCRv8pX49X7smRxbgwq2PLnHmSV+vC3bb4oilPjlKGAJc04Uvk4RQSme
-08xtHPvnAs/tOOn90ziKyZJnE+kZnvniFixxbOANmKMyjzKbnGl7A1TmyZRGi/OGXZnXdzJsb5V5
-Kcmww6zMy5U7OHhl3kje0sXBKvM4nsYX5/XTWlplHpfRxRfnqXdQ/5V5yHPbW51I/sq8kf8oi/OG
-XZmHtmdYnNdjZV5mADlSbuudlyHUk0wtrytnPcLVreVVL6rSEcqZOGQZXcqTN6pS4kV/hWeg3OcJ
-eqXXS5218iZc5mgo3/Eb6cFiaAhZ2X3OK0nDH+mpoAwaSrauU1I/lYYH3SjJDrQcdQwov7oUkoC4
-H88G3o9RuVkZH57VZ31X1inHfK561n5cuz7LsYOSj8EZQZVel+lp2jn245nK2O5ZVQfJPpyjjmlD
-A+5H1kq0GdOzu3M0lM/iDsVaSkM9KP6JWj9jNtCaeCZO1kFZKfkSMMOSfO0BPM48AyNP9hjUQQ2l
-SPb69zCLZElrwyqSvf49nCJZfTRP1U+Wd5AWik0PrIsATyMNJZe39lBsuJtsZOXPgaIN9Wtfiawz
-/0HXWR4wuktiK1wVXs3OhsL7cXZiGu1HeJZ9fHvO/Zi7KE8Qa8n1QoMW5YkuVajL+yNFeQlIG3ZR
-Xq6A5OBFebzteZHT1O+jKI/rpqdD+XssygvXJlVp7KsoT9AYWV5nktJYLQ/p9HsmpO874nHJA5b4
-yREfKYSXM2UXat96uG9jhL/lV91ajjMZc2o29x3xCOV+IxO0lk4VAIqdKblOHoaKwxSnXqKsSEgf
-ZSV++cgiTVYE7qIgJX7HVVN1qBPSG0Tdn99/uuHF6ys7a+0f87fzJ6svenWl8u189VP92/HqYun4
-ZL51V3LIbxsHBG68un5xvf5IQ98Lo6tMPlEvMeeHPpNL0by9Rb4iDJXdfTq7POC9XWGV1Ai9Utzb
-XJitfr9MKru7SCyAgxsL9cRe6U3koi6Ayu7co8mbpLK71GK/d1PV60hY7AeXkaumy66e3rovPyVV
-hE2mXKF3YBui9BRL0egF3VGvuOwObhB9TSi7m0wv9htdr/E3TeKyu+2vBwm9Op8+W3urd0nFfrfp
-xX4bY05yrxuHn64SevU2P+83dmspxX5HKUje2z5L7nVt7XRdXNcxdqBC+FtEAu2PqflKOmgAZ1a1
-HHDa3dTssphwmQRamm1112JhSmZ9aWEVNfxtXCFgq+nB4uz8XpScP7VsT4ohplXFCTB9F/LM5ziL
-+nMU8aAqR/KdXumHpucbE9s31cQzsnqq7ktOKY0zuoZ2vZ7KF8WHiXq4Xi/38gWntuXO6Eq5KU7L
-OCxdyh0c9GY9DlViU7ztmeNmvdwzRGnBqviNUBCQNsOsRG1cf5MyrJ6KFBLHFKqDw0GV6qaQWOtM
-TK3tq7BPNUQuP21YhX0KpNHtOeTCPpWeGiNtaIV9qsmN4OM/Bi/sU1X1JcY9+y/s66kQs//Cvnip
-Yi/1IO7uhMI+lW3CEfSwCvsy066HU9iXJKSHXNiXx909hMI+VVUfm81QC/tSsoaGWdinqupLS+3t
-s7BPJU6ClJFhFvap+KwyvDpYYR8/prCqL3apDq2wT6X1j4RXVQ6vsE+1hoKDeDiFfaqqvhH1dYiD
-FPb1HSzurbBP1dSIWO85jMI+VVXf4EhLPj+4H6TlL+xTNCVlDQ2hsC85836ohX2qBkb+M/TCPtUm
-j12qQyvsU1X1jSQfmNFvYZ+qAZHZDKWwTyUNkR96GIV9Kkc2j7QhFfb1cGxOIkZ6sxHxYY3DKuxD
-Y4rknSqKm9NGXJxYbeNLim86T0q9Q0jqy1moVuyF90wmqxy/tjIvVhWWIPn6t9DcVKocg93ipzLL
-ItszE1UZt/ilF89xsbVfW1m3euZFlXyGQApPS53cajfzwl5+TCl5nTku8Ms9Jmp4DIeq0rSCEdUx
-bSnDyrymVz0midnAsOrJFkQi/xQPQsFR7JGgCk8UEorcpjxus+TL/3pJtRrg8j9F/Y3i/r+esh65
-yUVu5gG8HL1c/kfLFTLv/+vfcRNc/jdoPnTOy/+YSzXr/r9BnZDfWDfDufMo5fI/RND5ch17v/xv
-JP/ZdubiaelTnxTByZv37SHVeCzOHuKC3JGE6tVsjZxMbnZi8Gqi9+1c+R0ZNZif+VNGBqnpy1XX
-FMibtJq+QTP/oZZPkp594iajIDeOFGYlqW0PUtJEPbe4qungTTKn4dkAkk/I6yRILg+jUG2IqVbH
-Q021Ou7p+tuERD9aiDnwLoR8/8n0Cvs4TJTZUO+FvqoSLGhoGAWmk6p9qEocy2yo93s4kxLHaGtD
-qfalmR6MdUonMJNn8+mCO3f1GXlR7Y7kqffMofpBa0bem5Y4YZaUHVj/VZ/KhU3O0pz9PSLci4uy
-tokiN4mztsmzjNuqVM5CpcEOJVj93+sdl4UN83LHs9YwL3c8a/V5ggHiAp2XgW/0hWLHuSlVK4Kj
-K2dDfdRiSLYnbWgoBaZz2XUEORsSizpSbuqLuEDyfiQbJcVM7yNYDDrZlFRFMf47YzFyO+9Trv7r
-qb4sUUJwmSl592M/9/6NJNz1HV39N1hJU3jv32Cqeu57/0byXCA4+DYaYRcIDqE2KvXev5EeaqMG
-uPdPwWzEq/96ai3ONY0KN6ZD2zP96r8+kzcg96UyFJ7WSwpI2E2i/kNau81Rn5uh/AQxAmjtvl/f
-AofwpPypXryDEP/tvdpXcUYXa2jwal/SimiAc8ym54Z6OF8rmXVCQ31V36sWLSsTsvfq+xnkgqb1
-WqyboezH2YnkipkRdE9hVi0VdSX2XkiV7IGCyrQhpUgypPVi4Kda9xeJ1n1OX6eItN4LqZJsTyg+
-TTf18xRSjc+fVdJ0gR7rbsmY0sliJDpXPW/dbbU8I2mM1XLGAVFBEnmOutvLPi/DTBDSxsrFc+Jx
-Er1ehlktm5l6Wv6622o5o1JW0Gyy6m6r5TxnDObTbKSkkH4jE7TyNAgAxWKtj7pbuDsw8zLMMAcq
-37D6vgxTyIGKd7JWWb+dUXUYVrzVq+32ov6ZFQyeLLqXq1frlyerV2vtpeVN5+RbdaX8UK2uVLYh
-WfT4nSvz+fwqDjDwRaGr6U7fX7+rK/O+Fr+nXP53OHuAApJCSWBp7mF/l3dQi1fTff5abCXVA+Iq
-xIALRCWBj5XEXrX1k5XDhF6dT0K1Gu71jnSTdv/fjM/1iq+mmy11ol5xjZx18bwzF9fIwWx4JI9O
-JNbItT/u9OR6wNLXubfka/hINym3DlqX39MuxHszEnvV1lsnJ3GvI6w8juv4y079+TGp13paPeDh
-RWKvQNBre983EpEs3OuIez2U1pXs0aB/+ltA7rMqElCDzuWCs653VHBBKEIEnTxgoIHg3HEU6mi4
-g9c/XrEwVTiX+fjNkkoCainXLpS4Q/LiWp8e8tPSxPX31awUG+xMcd8TLYKDL78HThplYwKVZ0Q4
-E7KvRJFVrAQPcjHN99UciVuJTmBkFB6M95TjlowqlLWFuumtPC7r8pceyuOySiNkqlI1RXka1AD2
-kgaWNkN1DlhyimJaXWJPOWAwJt5aE4eVlRyeuwAQnMvD2TcpOWBLUW2UbAqJrKvckljX5fR7T77p
-ZBP3x9rAYdD45LsU5TZvLHAth4088p+cZvKPtWGEicj8rgf1p/1YS3SD9eRPIwvfZ/xbSOcZikd6
-TWU+SFmq+UoS89Wt5fHZQGsJaWC5/GlCHgrdnvdGC5fy1kZ30o8Vzsds7o2PoVnSOXzIQXJSjhj6
-empWXobDQM7rhEPUkg/qyuPjE90v9PCKQN7EGQkb2ffq5HTWPW7Em0yV4N/bTXVeN0dB20hwEnlm
-XeKP9KMYeqv0ytLrBB9u8pjqo2hMParqfFkWYv+pRYmBkE5eRpH991tbOsJK5TOvjcldW3o2k8Pw
-yN9aZtWR0FTgvE9sLTlU39PAmEVwlhFo7GWayihj30hT1ib1jbTMm456QpqV2JpUxZysNqbUIwpB
-r75Mplz1iCPhmSmJbeTV/pMa4LlAvyWJeesRe/BDD3LRYEjQfZYkCoNIqUfkU3v7KEnMu0ojQfVq
-nyWJ0YQz6hFHcJlPbyWJeesRKRfovyRRnpI6UptsSecqSZTVFTYcPK8RdloCr1f9icsKI4L+s5cV
-prjthnlZYZLbbsiXFaJk2D91WaEUkPwzlxUKtuefu6xwJPs0uGFcVpiReT+sywpH6P2ez/awULVj
-XavGxDj0/mmuiuW0Cw/TTeGRzFOtcl54mKOgbEgpGym3HcYJlwNeeNhjam+/Fx4KI5FuO1S5u/u6
-8DB9SmrPbR8XHqqWaiinWokXHqYnr2QmKue98DA9EStmnQNeeJimzb9vjwzhvjV64WE6KxhhR7MM
-fuFheq6UkN29MMCFh8LkpNsO+/B1qi88TKfSONVKWPhB6qCiAsC8Z973cuFh//Wew7n3JKyQHGIJ
-VOJthyNZ93vmvfAwfffF8mbACw/THRGCnjbIhYeKgWlDoDR84WG/lNbjhYdprZy1sg==
-	]]>
-	<![CDATA[
-	SCD3hYe5nPeDX3iY3kpQsTL4hYfCmKTSYDXr7OPCw3AHqW87HEEnJ/V94WF66J3504Zw4WEkzJTY
-DNZm8AsPxRRvfNth0M3gFx5G9VpKpjTSe3mc+sLD9NiHWuvs48LD9NsOh8AFTnMo9yM57ynsq+QC
-2TfDuPCwlHrbYW+lJCkXHvZWStL3hYfKRYs2I9/NQBceov24IN52mGjf9Hrh4eDlcbkuPEzX9UfC
-oqVBLzwUBibddtiHqq6+8LBnVb2/Cw/VrYSbcQATV7zwML2Vkex7Cvvaj6gV6CbDY5a7lCXltsOc
-hTG40EO+8DD9tkM5sJJa6JF84WGv5XFDu+2Zv+1wJKnwv9cLD3MU/g/jwsNc9xQOfuFh+m2HQqRw
-kAsP01vhedpAFx6KrWDfvGAUDnLhoRyXynNKPN6PmRceprvBAuf94Bcept92GIq1gS88FKeJHa4j
-0hld+QuvhAsP06372Nc54IWH6VFRDmmDXXjIr6Zs56fZnglMTH3hYbrGmOJ+6O3Cw3SNMbAIBr/w
-MP22Q2579pXAx2Mz5bZDlg89hAsP0yM+KWvT24WHqUW6l7SbYVx4WEq97RBFo/q/8DC9SFeKRvV7
-4WHimKSKlb4uPIxlxY5VlmTFjqWlVhYzSZF1Muu4Oea/VJBHWBULFTIhWbtJ+f5iESX2gIkury+C
-yUj90LyLjLLp6C4UWp8Q1mF5vKNctFahMq048X3yozhTGd8tmzv+WAiy02m3jc4y6aY49dQ+rMx8
-nv1inu/ay7ZT6jxvVVoftfHNuudPLX4fuxotbnUni8vrR5XRyx/O7NjxWWv580vzeGe8/vw+4xzv
-/L51Xx53npZe7vaet+vHvr93vfn77Fh/3/55/HzYALF2ulHZ/Ti73ZicuL2tliZ/Xdq/9t8OSnM/
-30tXS9325+OJ8XbbHCuOtuqtymdt7Hlu8mrn4azkl3YnFn6Pve1oj5+bq+324uxBcepmY7dorOy/
-luYerCVtXVtc0NZPzqGURNv41NrTNvb3ntvtxuJM++N5YbwzPr13D7MvBpWfC7/XSvPe3ndYliIt
-wNPWztzbdufp2yetsl9XcqZgbW7rQGnt9kKnu3q1vryzPr88/xBfkMluWBxf+X2kxterbh0/n479
-bi81nb3i+d52KXGu0M3HXXls6svni4Mxb+515fPB8ca38bvjrXnL/7LrlKJyVbJU12sz7s6XX4Q2
-Suud0fWtmWK7cVOBitIjImr22+KuqsbbaCSoxRU8sqBjBF7alXhysTSKkUFWxB2f/dIyrLXzld9n
-S5Xu1GrJt+4rK2vG5hJ5tvtt6efpyR7pZnnTudsr+fb84ro/dvRYvfn2aZNO11i5LK2xLU7jMgsb
-5xPw20Rpdfrzx/rE5taWvvZj9mu1UavosEDNtYeX375WuXiZMW43H6e1Su33DAj9sSDJYgY+JyJ0
-vvViLp6Olmm7Iasnv4G1pFVsa5L+SZC21CJ/zpbon2RXH/0mfy7NsD9vOvVp+ps59vXr3frt5Pdt
-auL+WHpamtsptsnIt/mhTmvNu+jFFP+i+vk+ejHNvzjVH6MX5fgFDa8+zf+M3mncRzNjW8/hi71J
-Old9Y2e0Fj0rccAbP8oP0YsZ/sX7rMbiN3uVQEjYexrUTb3pm86OAX8arPH7H5+jxg9LDOT+XYcT
-RQ5nIt4zRuhlAm7HOSwzkAenCq0c0m7gjHz9YXOfPgnafbj6rlMzRqtcrpcqu8cvJnl7Mk3fGpPO
-bISbkzLrRpsc8zTj9fjz2rQ/+WNpTjsbi8mSEfREcNwotUJlEzcQBKTJSo4mVe2JQlpoUuOa1Cuf
-Ol9Lp3NtZ+HU2lt2bx4n2K6avDouBmR8+d1YfmvtdJa3z8/vYiIzJj8ewVoLZ3/OkYyxujkPKuI5
-I3Jj9WpLpxvAWH3Yt4PfXk+N4LeP7z/otjfWJmu3wW/Gkw0N2LQB2De3V0vQ5FWZlsgYt6/EyKef
-334cBY3fTV5ENHdlcMO5m3v8Fb2wSmtnF5swm3tuNnfnxWogPefgLOajldfy09TywcPPndXtreJx
-7NnRwtMpq5FT7wvnLAyZ84r5+WOrHvZ6U2Hb/YtxagWxtTHzy9x3O/httdaIQM0A9OxtGQ9nv3py
-s776OvqwfHRyPb52P7N0DlL2K3CVCjN8Kt13Z33N2PWQ1pkg1JkasGCf/Y61EuTKopc0Lzifqx9E
-ptQvVj89fqxVbzaOLmZv9lug3FI+ujL52oaLmZ3NlTWtfDJ3tdNc2Hg9u7gmjLV4X4pOV4iOVhin
-U9enlj0a8J4M9/dBK5jIxUuJrevKxY8O1dNeRsuVxujBF6L6vHU1baLcCWjULo8TqMsZ6hqirJNe
-5xqzTp3IhgXS+OZ0tPrX5IszDZ7RJNQlyKAphxEPYEngItysJHiENzUFCRwxZrvQXfiN+SzlJYTF
-vtMR09ksLFHGPRFw9IWtimbfby8iLqtPv1e11W9fWxoB2dejrfiDLRBT4Dbmp8IZEsYKK0xJEDg0
-mcgMY6uUuxGOWgnYqXu2Wb17Wa4T4nnskDaOuMaJXCp+aJWDpSnR8f2ODD8yiIMql9q7M5+h8E2v
-Hhmg8O0VS1cTS8XSq7VenL59/AZ/ThZnvvmXxdJDea84baxXi5NTK9PFGW/mR3Gy8QqsszjTPLwG
-AK1IzLBFpjRypf0EyYQEjHF29kFwyMFuE4hhhmN7WuesvnS2Pb+1fts9Ka7dOfvP67fTm5+W95++
-7oAucLJqja3+POwcUS2iU7wZXw00vPmrT9iVlb/X1ebK/sES2cG2fUe7mfs1sbr13fm2fPwxMbr0
-dXG9HO243xTTdO9Vnj8324SWj63euwZKY9Lj4XZqae76+Xa1fHTXrv6cb97Hc86YMDQJrHtRNBS/
-sDhL/WC+RAl6/jI4amTtev037F834l9L1cb6l/bS2fjF76XWZvuyp67N5XZxVfJDc72ndn24+vPL
-+6dZs7p6v1a7e7jNgfURet17jPhrv/8175vSFmfDkzc424uxzonw5I8KvU+bqTKhJnznlRacT521
-UuPqefnk7LxNupmr++0XMt3is/t782hnrVYbL69dPY4+001JuvE+2Paceup8zrHcKoTz0rMPnDMp
-c3o7tQaGTyX2QKGpj8Tn2eSafe9Tp+Qmxdb+DLmFyUni7A1ic+hbgXyeeLzk/ao98lStOP37HU7q
-Y2y1dDg6Bxx1vzj+fjoG7/aBk44Bvz0uziybC/DjsTi9e7FZnGy3p4vTxbtxmOFZDkxQLjC0bZ9I
-gixYnLEOSwT7ay9Lzd+VO9L/0WUPzLY13Tez6WPC1GCXWV3vXadPGFR1Yc6E3M7GwCd31G23je54
-2dpcGe+z63jW0E3qxKmTJHHb5e1forR+OU46i2duux4le+9iXZE1NBQBg1BPuvkjqkwWpeVGd08T
-Jt3kmLOS3HrpOuICva60Yn8tvw1KaYNqcaQbbp9RU3vlotZN9CYS9D25szcHuz4x4xw4M+/rysrd
-3qc9+qe/5n0YG/aHfkxMwOMdYv0tbi9v2kVQOao331aPqZuNQD1Mr7V/zP7gjUL7u7ZU6bw/U8tQ
-MCioj40eyPftLTiKDBzUkQVprnim53ya3YGc26XZtXpj5WVi4nBt86ChL/1eriyvbr01OsRM1lcC
-X7K12gjXobMHRsNoaXFu4QuadWLXTEiLvb9Xqysv483r1bI73smtY3xu3VQTe2XdpMx5bnts9Xp1
-Y2P+hay0+bunXmO1ImQ2g6iUObqGbgZg8HllG+jQ2Spl3pVORDhT1XvA+ZDEWm59oiexGmqdQ9ai
-MMcDM6p/pSK3RA+ttZ747fAN9s2F2er3b6HxNn/UJ83zZlSP2Ef9p856JD56cjApAyGWA267Qcgk
-xnoQKWQexvjoMpWHsbpS1gwiRy73lqfftaXlh8O99dXFkv1tebp1qq1+1J7PaYxm6efJ+9xa++Z+
-f25RP/OoO5J0s7o4tWbSI17/iLyhrAC66Z/9Jtu0iPeOsCP0hmDTpnYdhL6zOf/YGJGyv69hK5Jd
-WP1x3YOo/fn1f1veiNKur65TJgwkgOdMmM1Mc8Z7HaLjhjKbzIkTLv8+lu4/6IPSzo3VcvnrOVGu
-b/SluW8vRwNrVsyr3qPI7X2TUYLuYZ/1SXMhpQ2yxXPQHARWetlnfU4YuumfsQxGab0wlnybLDdP
-y89dVJssoLQBWEyuTUa7ybHPaGyv9lvDIp9Pp+k6xcm9Kx/cgEvwYwVcfnv0T/AOTk6tGMWZ67Vj
-cCTugE9wG96Vi9PPv47hz/Xi5Ne92eL02Q+tT2dhVoxgSC4clJw0DI/Gn40RpGpbeWIEPZqzQ7Kk
-+9GwR+h174PomrmMHLZvhu+0Rf2z/LTBrdsMwk/zpyF1exDCB39aL+7LPrsW/WnDszT+uOdWad8p
-/Wkvo3360xxzcqZcvfnm7ZM/fx7EhgyE8IboO1s8mrpePjn99QPtdEoCqs1Of2PpiJP3TO5Sg47l
-BvRI7svUc/vyOrW+/Fr7lcN9SX9juYPF+avWAMxGH693q8/uTT0nkf+mDcFvb786t2uzfUejlvuf
-8I0qHzrv7u55wsw1xOb8XOpa5x/98bSMCVOLYBiLnD5haq0NY5HTJwxcYCiLnD7hcG2GR9XKFc7v
-HRxgwletAYJevUw40NMGX+T0CQOl9bDIzCEmhvlPhEymd/7KWFbKHGs2E4LNUW7xOKQlD/HZ1ZDu
-yud/SpWqOIc07oal4S9xCtcXu7XO9UWfjVaXRyPb5Ey4sYU1MMk3MN1YE0uwaNJ7dWxxLZbsxoR/
-acZzoM9GRxcWN8JgVmuKnz8gfHR9nUuk0OqjdkVwP9DHFxcHy1EbjQkh/5GsPs3ppnl6a9dzM5Cd
-qRNzfnUaUuhYGQh9BmmDZfbspnMLycDXnSjhcsG+7WKBzK4bMp4Oo8tqbpjSHt30BFnjo/DiUrzw
-Zjya0vPU0vlUjd71wzLv5414E09OLH6/IUO1NvCdR8FNNHRtPopxlUHR6nz/Ekl0uDLK/xQM5/V0
-T6z3XLicbgZIW5ncLoVp/Zs35dFfp5S0oRAAcgwPWtFwXrmCkNroRilAwmrnOELCNUVCRAJzH9/3
-IzygS6xKHB6+t8378H6nWZ1DQvXq8UeIhPKMgAS3zfwC6XiYGuPwsFj9ze8qyJ1kSAh6Da/iossS
-IYGRgBoPrIaH9mq6+y8BHowPPScxVGL6Jt1cFFuVNYaH9srl9xgPE/djR9cJxDA5wSHy89fiXYhI
-npriBhil4TYme2pD0cAUaoDpab21UVLtjPRtgf3QweW/A0xkRtWAvD1T2yj3PhF0eNbdZGXQiWgx
-aSG6EtTB1Db0xDZyNMAcxNOTA+7z6an0BgJBkN7GoMxmeppP6hPbyLsi0zM5GiDdCOPAbZRzrIi5
-dDgxETRQW9wXG6jwClR/pDWt5aXNEXpagrINPQcy0mTgtBE2QG/2i/dZZ3RjuyqAVg==
-	]]>
-	<![CDATA[
-	pmJQuBXvQHmpH4HLoJIQaWm4qQzKgCozyZSWl1oreaiEdJM6jkEZUEUTKa2vieRmQMmUVjEGxaaZ
-S0hvWvO71RJro71gm0IbRm8MiMkbNA5jOhsZ6YPADIgT0nmRYZR7JwsspI1KjlVNY2KGkgHlE9LU
-KCO211JHq9jz07wXb+GosX6yOHu11v5RvlredPY2q7Wnb7+gAsY2Vq5OF2k1KNU67WqZVslQpRGF
-ifTSiws3bV7+CEuFdptREc5tVKp0V1o4eKVlotNBiZ992Q6KErsT5dDwCOqm7PJ4+Js+QavVyJxd
-qCh1p1hFaW10651OiZWQrlx8b7NxBp+tV6hBU6JlTmK95/jzbVTVNMlXKfndqPxym6/tnN4pRbWd
-23xt5/QPNyqP266gbt6rcfWqzheErvwGDr3HF65unE5Ehat7fOHqxpMVFWfulenFn/rm2JIW1uLq
-mzPrsGH3dGb2bS4ewZ+HfOP3TyUg48PpoBp0zJ0NzKLpXWogrOgPM/OwIw4rQUXp4hZg7lAP/dD6
-w+EpbReuXf36CXBegpt3WRWgMTljwWY74XBjTC4uzeUpRQwPioXQt+KIsRVjcnP9a08NqVs53Jnn
-HV0rdvdgrL5xc+U9LR9/jDXWrh4PYJ+d6DHJGjcfP5aCmujLH2ZIUCcWXya66Ea0cT4T1IoeVtk9
-hfZ5JST2c9L4/Q1oh+d6WCZ4Tg85aMFvZvSbxdpYm3uD+vOroMnbB7rMV1EJ8ZUWF8naVzpfKWr8
-iAoxr0z+xerLWFBs+PLLDmdz5fRZ8hv/wPW5N1ztn/llch/wekN+XJ6D8XajR78ZPNzuk8Vmc2Mp
-RnS4fnd2WV0teZPr62u7Z15QNdh9s7X6/axDy9GjWtgrYGIudo0xzjB/ORFQ2hgxepdpHfxUiNXj
-9wCq9nsm5FDWBOVQlD1FPGWcVkhq9V91EHWbk3TfwDFx9E/y47JVDlNGjPGl4g0t0YUzO6bpXWyE
-tL5uVRoX3TKj1sb0bInyanNsbu2b6qxgc/Fsb5sxzOgHvDhl3cDlRQvuZMR5bwKGuTBfCge9HTCA
-6VO9zBhWWD/5GPN78sWOFhVx6iJPI6zLIZvoaZ/xL5gkrXslfV0vh3Wc1Wn2DK7XI39uMRCobf21
-8jraXAeWpTOWFfOoiG+xJIvg0KT/lxCe6+luwTM1p1A5+nitt/fbjadGs0AsFLKVK8tbun7afGyt
-t+v1k/p/u6uth4+3erNbmC1Ulo+rW1uevVp/aD3WC4FJcxeTxUww4qASiT86RShRooxnZfWnv/Gy
-+elovrb6U7tcwAVMk+bmPOQdQFgAcg2+slSF6ecGeXf3s1wsfcweQ5rBanFG2zUoHSaegsFCXFfO
-29XXmbv1lntuao8lMQpHS24W5u+Xp9/3vi1t+50Fb/PreXm9dWWdrbWvrzR6Szw9PCOghP36KVmx
-G0P7dnAE50LbFeOuuLkP8vAMVVnHx1IwpA12MkWOYym47Kq+T6bIcSwFi6gOdjJFjmMpGNIGO5ki
-x7EUrJvBTqYoZR9LARt/0JMpchxLAUx50JMpchxLMRIWRQ5wMkWOYymA0gY9mSLHsRSkm4FPpshx
-LAV0M+jJFDlUOLY9BzuZIsexFKABDnoyRY5jKUbgDMABT6bIcSzFCF/Z0+fJFDmOpRgJTmwf5GSK
-HMdSsNkMdjJFjmMpIH1j0JMpchxLMUIPSxrsZIockU9ROxcCl8OMfIJmIwY//0jkkyajCMHPPxL5
-ZGvDBz9LfyLyGTkEe4mM9B75jGOQYfDzj0Q+Wf4rH/z8I5FP7EKjN7MOP/IZOdKz8TBI5DNIeMjj
-Bhwk8pnHXz+EyKfor++rjTyRT4gMpeyMYUU+B4oM5Y98Jvvrhxr57Duo3lvkUxlUH37ksw9/fT+R
-T8xspqcT2hgs8qnIefkTkU8uqD49KGmlRD5zB9UHi3wGQXUu+PlHIp8JlDbsyCemtEpSiHywyCd1
-DeXe+31HPjlKq2iDTiSZAeWmtMEin4zS+ODnH4l85knfGELkc/Cgeq7IZ0ZQfViRz76EdO+RT+oa
-EoKffyTyydaGD36W/kTkM7KkOZfiH4h8Br7OCv/uD0Q+aTdC8POPRD5pqFMIfv6RyGfoVRe9XZ+R
-L6SPGKjYXhDnSmgyDIgOHA2F2WQHREuDRkODUGdGQLQ0aDR0RCzuyusW7jUaSmeTGRAtDRoNBUdX
-dkB04GgonU1mQHTgaOjIf/IERAeOho7Qq3CzAqIDR0NJNzkComI0FNIXIOZ5u9Z85OOd5PFn8ui4
-3v14pyD27Ur9qdHcqf1TJzxaL7B/NfIv/HT9gm54BcO2yR82PN0hSvAEhS7ok4UdoqhohWVQJW8r
-y+3uauOh22g1a+1/CrP02cXuzunWamG2wL65Jd/MFSbIyLRbAk5eTdKA6y2M95a2BT8u/qa/1kf+
-8yH9MvUBw1yFP/fJj7Jj+IbpGJ7m655ukEGXbcu3TN12DMswXc2hTzSd/Of7lmNZukueGJ7hO6bh
-2r7mW4ZFnpiWr+m+o7ke+dh0cz25qMEwAFEG+e/iH/jrG/ntF3n2d0HXCruF7zda4XGEvDwa+Y9t
-lD3L933Pci0yVIJo3yzbBSJNbBiRaZqOY/qWZpnBG8sta/DY0BzddVyHPtahCdfVdd0zCpZZNmzy
-2Chbtkb+cQk6TL9QHfmP6Zdd3XEcV3dt8ozA6GU7bswrmE5ZJ3+atq6btmFbBEIra+QLB9BEmi+Y
-BhmD7rllH5rWCZDn0rYNr+w7fNueXbagLcu0NdtzCMGUPegr6oysTdmDERqG53k6ISk2cNct6zZq
-XMPfukbZ1Llx6X7ZgRFppqdbju8WdMcuu3RunmG5mgsQpg//OGRopkZGaLtlGzoyNZsM2oOOZCCL
-LLHGAe2ogEzASdmG+dsOITXdIiMyyaApMj3XsRwC4ZQ98TPDLXsaGoDNVsDSbd+zYWKGVXbhiWtp
-hmmRJTHZijgO+c7zyAODrAngwrB9l/RPiKzs0I7IBjAcG9rQJZR6bHVM03d8XXeMgk6mRYkhHK9T
-tuIFNQClZI4O34zFhk/oX3NNi6wxQJgcOVOiYxPiCFZ3y65dMMoG/VizyIKarkGf2/CxbRlk+5oF
-IwQFCiCz0so6wDu6RgjUgZWQ28BAUu++z0jX123bIKOWJ0EgaJfS/H2/IGHN99hqxMuOke877AEh
-VUKJhkFXGa+hz5adoN12yUDJRDAdkO3s68JqYHKCrRqTs8vICVOl5+BmMDF7Bk+UpBkJgmxQeUYY
-iGwu3+KB2MYRN6lFHngRj7D9grTRCTPThb4YkzA9tkYSUzFNNDbMl0wNLRjlaGQnOjHZkD0EhIuZ
-IenMiHeiSTpD/JSMzSF/22SbGqZneAErJvuTEbHEu8kbcckkpk92rjgfSWBIEA9EdlhlAwZGGtJs
-33YVzdhlk+O9FkCIy247bOwwcLKYVszvPR8GbgrQOwogkzzAJEBa5VhIMpAukIUERIZvK55aZdvn
-cSNBPFCJ68MqajbhdJ7nKprRGMeNOCGBoDjXPMtyDccpWB5QoAPPTM93LPKcrm9AIPGHvsCZzYJl
-MIqJFsZiEjgQUmTfEHnDi20i8C0mJQXS9Jj0i4iYUBbsg5h/kCFzSgFhhGTaFDfRHAh5+0JHth9Q
-vfgY+IHQ/44KCO92AiFuM8K/gCTJpC3bIytUMAmNUo5BNTKikxEeKGGUbE4HEKobvkc2lA7MWRPw
-RfazCx15pu67hJwJA9ZFgUk4gKvxgyUTEeiEMhKH11YIKnSNDAf+IRAmIZUCkcNIwGtkOwvyymSy
-J9ZBtEh84VXVNU+U/TtKIF8UpwAkdUIkDtmo8EoaoY7kvjxL3aAsy/FcTQe6kZGlW6LQh1WRcE6E
-kaCCSOsG2gXsacNxycb0dXn5QY2ROsJUpJMZaLySIlEiqF3AmnTN8XTSlArCFlU6FdUTQi9TpEob
-SScrLe0/3SEbkHsib2Pd1YQuKL/A3EB3zbIfK42EPWCOQgYsNmOBMuwIMoFybMzDQK3mOqMMQeSD
-uusxaiHySyNsRGanEUS4RMBOgRPLn2IOroIQBYHUuEruSEAquQMWkcERcSBSqFGkeIMlIQBRXSY0
-qCRpyiyxBNONDHsd9qIVWGFgyxmWQ5twLU+zHA90KpttkEC5INzFo5LfsMkrYkgSCJ/1GikXZEl5
-OUV0pVCvgFcUmYFSS16ZTLEgu9ciRi79mFcAKASdNuUjLgPgFWcAoOyYaXRhN2SkmiW3bcbi0aUQ
-uG2d4+wUgGr6bPPrQeP0uYuWBxDJK+wEyOMVX8J1mRJpESPcN8GwIDzNNjnLj0gBNp5obkS7jhVR
-l3ZvYuwS08MX7FfCeqDZaIUMPTAlCD0bhga6koFwSJSqgP27ZQPW0vUIg7AA1C2bVLzYtk02BDW0
-QcwauumQsQCEx2ZBdqhug93nmmgWBm0bnnMikTwOEEZQZpuOS21lEYNgUtr0uSCC4Dk1iJktFLRO
-1WPyxuL5ErW/xeGG/NzVyTJ7EQQ3XCrRdccXOSUg2uFMHcpLbX5CRMCJrgVH1BSAbljTFn6uiT4I
-wrspWyQLQx7ZgHYHeQkcg1FX2AZsag3RKjTD6e2eDATGDvkfYSdl18fPNXE5KBBP9QDh8agDCGG/
-KCGw4a3bHp0bsSNsS9cMKjsMXgSAB0QTPAcEs6LPAti7MFPg7DwjoR3ZjClHM7JN3naGB4ziQCrp
-6LlAJGQ3Cooka94SCFwnQhGEJLFeXYMA0+48ngGRxUUUY5siZRCZLXmwAAhYNn6l22j/KCGEja9u
-3hDVDglohwEJ6FX2pfnCZHVR+oPSAw+ZbACci3uAvKJ7OXIoEdEj7EiAEIgJVkXH6JPIzXLl5zAl
-om6JUyIMWxyw4SPpSJQuzUcQ4oYjdr4AAQMwPFEOwQPP4ZRb+ArIkBjyGi8ggKJg5YFd40aB2HSO
-kgiMJayHJfp3KATVMSzbdR3TpdgTqSNsGpwYuoEkM6DM8un+CY0lCsS2D88Y4SkM29YRMwDBJG0i
-HW1korJbOmffAIQpkAGRo4gZ6IgMiH0iMwMJyOPdJhZtRqRgkI4CxkAKaI68wha45sAys8XlI0oh
-v9uJGkGVb24FyENDUpJh7UTSJECCeQHLz9tU1Lo02HPBzwiOR4GT0eY1xHU0tFJ0e3hAk74TGHHA
-uwT8+ZR1Bm+ETUDeICXbMguggwouJfoQ2/B0dGx5Qyx6ZC1jS1CnrYl8wbP5D6hz3BYJzTMDTiBu
-RE+n+y0QRJQ/eszOCWnC9ZF/CmhdQFXIRPFjF/nkAELg1kToWaLHk1CXi7EUtC3sRALEa9UWbVtQ
-El3sbQQIso7S84B4BayAracJzVuit7bgWpR5CPoIefbAUCyOlYEKWzx4Jo7YCtfe5Tmua/Fb0nEo
-k+aFLqiBgt+FKH5ib0SvE91o1M/tMFMqHL0EFAgIu+B4dF8RVZ0X3I4jkKBOWbiADw==
-	]]>
-	<![CDATA[
-	orHw24VNTwZiHZm8D8wtEH0R0aVJuhQ8IrAPTEPc60T5CmSrqYmuJqJPif5sEFw671+xGT+xNdPX
-HCpzXJg36EE+noWBAmEBkOsRnuYQ3Z5+LPBI2+JJDJZRARGYDYYtuGgKdiAbLWqpRCohqHLCihFx
-AQ9NiZ8YiMFKQLAE4OPiNz4B0nnjTQ8iFq5puJ5HrEvb5DkFbHAdT8kOlyMMmkRT8pCzkBjboo/J
-0bEjR0deKEJfMlnrOl3nyJnl4DgGQLi8Oe8avDUZeN4E3unaKNJBO0JqPWF3iAXrKMzp+pgEdEph
-5HmIJU/01Xk4bkT1B8SdeZpgWpCAJTIuBf3qon3puqGMg4gIL/BdR6JbU6R9wqCQQ1GCEHYpmRew
-SQlIQ3EeGIrP6wpkKWNdgooLCK8KjM5FkZKA+IWFcgKnVMzcFRC87WUqOnJkh7jOgkmOCmGCM9px
-MEc3xJ0MlO3Ja8ZkfrT9AEiYLGUQ/NoBBBqK6DekQ5GEbeiliPYZc9AZtrhgDnO6cCyaQIh4dFTT
-sEVeRKSLjbCB1EtCGaa4syQIJYFhIJuXCMCu8HjBgymGeg1THCxsYZnATCTwVZIU4vx8zMIzsIZI
-Nr/Ls3fPxFsbXPnwoazAEGYkKPIeDgICTxP717B2pqN0CtdhHjKwEgRRSrQjVxwYgRDzE3zMCzVk
-WII/SJ6Fhja8hjeKbiDJyDIBAmXJZTERgXjBASGtGMgp3kwhZg9GtS/ybvCTSqQhqgCais9a4p6l
-blqgTAFdoBcjQe6JDMGOfAbkjWCxsjc7TOMRvKLgM9EF3BBtSRAeRDxjFY5aNLavUMGJKig4sol8
-Rsq7SfmEgw0aWR01FSaP6YqOBsK7kPg3kf9J5j/MXgMfJWsy/FNk1TvM/BPsJ8JiEMcnFpaohuuC
-I02lv+sKXiop/hhINhdUEKKdgSEemMdC8EsomvFF296VqI5AiFpBpE1bPrLctMBpGP8mKuLs8QMz
-3QRDPv7ARH3J9ppgoEgKQmAY2grVAR6jucoQDhqWonXkMJGAdhiQxbmhgLpF3mfrog/UltQL20Db
-XVNYThbyUIBTSOBsOwwIMw4kCCyRkAFCVG5hc/hiG6HLRCBlsPdR08jRAquAdpUMoZioxotGB1KR
-kBqjgLDlxslTXVpSiFnxk7PCEL0O9iTOtCHPIY2MUyOosiExFNhwVPvzGZPyfFP3yBfUOhcH7+N8
-DNdAD8gwfROFYD0HzWWHAvFJeSYA8aEs6nES468EQlRNfJzE5Sk0WwihxOE1gi7PwZPCAVdIZhM7
-MuQZSdP2BLMagDyeCxP8EqXIjP3GZMk8arl4mMw9QxZhno5WkgCxb9FjHXl/5NaD4KFno2k7itQ6
-FZCIPQLhC8vk0OQUQtiS8KL6mI1d8Ip8Pg1p67oiVwgcuVSz5w1/UAU1YjPCE88nbMwAhRsrq6Dx
-iT5reTUByBf82DpKhQK1kIYmQ9MIIESpr/nIh6+HgiVI5wy2Gh0C8oMxWPIT64jIHUIgZNUNEkGF
-AJyOXTy6iXzjKggxIqHoyKeDdHWW0+IbYhjOxbRI9iJiMPR7H/tClNqI7qBYDR5P4AHAGJeBCBu1
-C6YtMyXQE7P7cG0UicgF5Cu8Vj7SI3RbldyK1AFdMox9HPmVIXQUkMAd0VRbWEaCZaQqsjXWJc+A
-L+4agJAVb99ACMXMFyBgHaKIPzFvkLHiIz+prnIK+QZk0iF1wUcxTVPHxjiBEPS0MAE4fBHuB3iB
-vOo+iruaPnI54nGbmAQCpAtrB1knEv4F28WUNAoCIegOpq9eXWElQA1BHVHlVvlcUMuUzbuiTQx5
-eJI2IgE5FiIZAPLEqBuwCNES9LHtgkUIZDCJRpsXeKdpehKvzhIZJQoHyBUS1DMHbxVDQ0xCmgXt
-SAay5GZ44nSwrx4gdIQuifAByAa9XTQnDc0R4iyOgdyPACBapJrsHYL8IhyikNR2ABI2gu2jpQcI
-UfvGzmSAEO0DT6YxABJ2gm0hUpU6slQdiRB48R5YRxhI7kigZAt7agyNpunbrD1PxJBcfaB54tTE
-mCxtD6UqSBCAIVHKODIQrJcOZqeJM/eDNyJL05G3GSAEkiQQulCaIENoSHd7YB1hILQ7pKFgdxqb
-hoFpjWLBEYmJKAWioUbn6or4NAxpCG5YZSH4GuG5mNLHshgh3yxGBU3bFvcKQIiJcSbyHhusWk3y
-Oxs6cpwZCu4KQALVGjjDnwKZYkvS8gAQdulbpmw1AhAmWcQoDRr6s7BYjp9LBSbhKxvlZxsGCrFa
-Nt7YIro9gJC5siEYgyYAeagZpEBa7JnYtMMWBQjQcuI9BTa7oLrQxwLjM/hsXKAuHeVy2Iq4oKHr
-oj9PiscauoHcNCbK2Td0S6R325QdDJDAKrgWUdoY2xRCANLGXgcDZwkBhETQBnK5SUABhSFHN6rB
-MlD6M6ROCzYaZLuCT1iFVMMTPZMSEK2K0FHY2sP6gmkKiw6uZV+w2CBNmEbWZEYVvZGmDrkLPL2D
-KWWK/driyFzsD4eR2RAWkrcB8HXe2y7FcwycOudJEtBATNbDCg7FsUVt8Qg5no3FmoEC2p6JCgmB
-ngTC9RTGIeXJKLQs2tMgFESfqYuSNGQIE6lbD0y2YI83l/kLWemiiUPdt4iZ6Sjtkainsl7HpI8T
-yBt+bg6uk6SChV+LMIoAIkHwl4K6iz4Fg8dxJeGKNof04UOgbfB80XElieejzBgYGDz10Hfy3jA0
-pB57eOgGUiKkYKzEZRw/1JJwqIAPP1h0hMCVI+tP3n4BROxdx8QSdCQ2g+uO6Ah57uG6uCOIvfJz
-CCrXIb/A4Teoxuek6j7NnHd4Q8ZTsk878gdC7QCfkurpmCgM8FRDSp2QMUG4CQxbFiamgTiUhTUp
-05CiUMiMMXUpScIOWZhoSrrMB0ULLnje5khqmIFi1cQa8cXlN9Amt8NeFS8kr46BK+tBsAguSlg8
-oeTDtpDRL8tHRbWmLGmVCh8qAGIp88ClmGBE/Fi3UZAjzIKCN8J2Y29CnZInYttBoRNDNwSb3sbp
-RqAGCVvSxombgRpkUzmHmIwpyipwmIi2LnJ3MR8x311gNYiuKg2dRmEg3xh1JAOtRflaAGGwIkzp
-HAvdwU5nTcxIAwjRjQdYs4UBoGFLeWeB4JCApJJQQjpi9n4AFJU3At8Rs951UwzAU2VanJFcLAIq
-jmAVQWKZkERtWDStQGcHHsTYsDSc/25ISeFKIHyshmHpQd6CkGViQB0+z5whB4HmVJKF112XVTyJ
-edamKSXA0+ImmnsghDUC9VVcTxOlOAEEKlBAGDSQVUoh8OEiABTmuArkYmDnq2mJUQdYZDHF30Qe
-uqB5wdCDZAYhkYXai2ItiIY2BsESqj+RCy2otiiMhp1zEPBUoYwNfPjiGQmGjctgUEkvQIjEEuaT
-C2NwhURhWiTE57+BEARBGxO0gwQOSDVxJI4TCi1DMGjoCz4xmwKIjTsI1SZyWAOEUOVVZdaD0I9r
-iZWnhumhmILHeKbjkoZJH2T74YIhLzwaI65A3aElqRqckATjEhRG4MpxQblLq1VNxDAwzA6zyoQt
-Bh5bVC9po33rI0UHqFrct54tL7QuVgMCjoQzi2BwQoUOUSTEbrDpTsu1MDcGD6rA/2y8xckExbop
-IliFLGAo2XVZ6bjcvCnkb0A1uFDRB/0L9hVU9AnFeoYYXHWof10WKjYV6XGhqRaoEZ5IsNRV4US5
-ehaTIyJheMJJNmzXITVPAqKkYYvGJLWjeCDYmwJP0Nk+CEpdjUImlVYpResert+xUPzsDYBsUayG
-QHFM17MR81ZBSAVwUuUTy2+W6+scVPhBi/N4xVZ3dDwAJBFonpCPKCQAilQBKPgU6qBoANHJU5ro
-0AFFVEMT04QR2qxKTuBxUD6KWHmYFQeKuMC3LB+V4qHzgeimRGViHpIy6DwChnNDLP7WA5U1ruDy
-HBTus10xMVL3PbSxbFMqFYNQFdr9zIcVc3xNNBppSpZ4npXm47Xw5Y6CjcmthSdmiVKGZ/Izslx0
-VInuoEisFUo2HYlN8L5SI1nYsSC1heJA2PiGHQr6wOxHVaQaHibjhiYq/5P8RHroQxOwgFM/CJBQ
-MmDoHkI3QPg8unVcd2naCnXflTtC1oRbttWPkcaHIB4CHV/Y+qpmjITmRY6jGjyxX0ShhZENMgIx
-P62QzTYZe5Vc0VKB7BsDEg0HXCErGaRShSx1Z2tiR6E0QyaSj4nJQloeLItAuTrV+3VbVsejN6Kd
-Ez02RGoKH0vqMHnDR9+ofeXib4XTEgBC6lRkdhj3VWa/izxTN0RWBhAi3yXcREgwAggRpfiMoaAj
-VBfriYwKIFANLzsSh7OSTf78IzCieU8KpBWKft8gjytKJ/CpO4SPlHvIG6tytWg4f9tWRIRFpyYO
-J0gxYydyrSjeyCEBIgcEtxKUAoluKw2Ru+NhNwvR2sRsbI31zx7Hfkop2AoQyKkthlQDhVB6TlNP
-aBDGxflB0XGfXEmtyYk+nR72Ibp4VaVLkN0uRGAcNAZ6NghaG5Q9jrzL6toi0pHA+D2cN7ijAjLC
-HF0PZ3sZgc8S3oieAvoGjDJRFgaPsVlvhOqRh70Fhoty+DwUJwQI8UwGj51WgZ/T5k1ke2KgHQak
-+Jw+9rM6Rr4cBPHAWpcwhZqxkJNOBSFhSZorMSrFUwsMG7k0cKIQFNXYIk/MknOBuUGLg9CRamBh
-OPQMLF0XOSA8FtRx0Ox4sac7LE0UezjBgmUywhRUZsfAyaK2qGCCiwP5Lm350AOHnRqBX+2wE2ME
-16EEBMqzoD9i6QmmBBLZ8vlx1HIWSAjLQ3qkjAQh7BDbQjoDFdBVdl6MqATpFkK8dGCMbivOiIG5
-SZYSyrgAIHQ+iwThiASp6MgN26aJw5gX2CZeFRfPR9Ie5AOa9cDbHxsWuoeH7iE+Bt5nASKkHV/G
-jIMqaSSg4OwjxefwWPRcqiCkM07kISDPD1UXxR3n8MFkQ1YX6UF+4jRkRQykkOzfF1xBDj6LRsrj
-JhDIK2/I5q2DrWQCJOayO+xYv/ioGB0fGOS4mDh0BeocjF9drKUHCKTl6qLHVckeI85Jq+RwXuQb
-eyVmekrZwUgLoBBiYq2DtHtVpidQh2DkyoXLjs7rnFS5QEX7tk+D/aoKcNsVeYpDT/cB9wtvHTm+
-fKaWo6r3tXFeKq0+QgFIevCAmISNWYGjCNABkKhFYaCdgB0Jeiw+ORsgcHkdKge0DazHIpUPdAU4
-mhbe0LOMDKl+EK01yi6iSQFSljM+7UgCCmvqLLElpPjaKLamqPCjfpF8dX34zJlgDOy8GOUrcQ7S
-yT42yux3pbM6cM2fG/pvdBspmK6J08nZcWguzkyVxJeqtAyA6Ldy6QYEaoRDbkyZrF3pDHKbntBF
-DyMMFQj+WBXyQrSxYOOJ3Ri4pAB7RqX6/kBo4hx2xZRcqYwXl5mi03SkOl+suSmpGg==
-	]]>
-	<![CDATA[
-	i1glVTsiKijjECuWHBSHcTxMNg7KuRX/Dvkp8m2BCBELrxzkBYYwmmCu6g42xh2UPBR0JPh4HBsz
-Inz6roNzSnVU46Y+NkiakSVJCIwYS5qRWtIFcpCRMRxQJoUpbFck6RAoDkLYIrOn51gLxy2AAEPO
-HZSUVGUEImQk+dj7QE/JpEeSodNzHLTzlceKOUj/9XxcbQcUyucvufjgMbwZPCssEXdQHoEXHY5m
-o/MjPOnAKpTtwvKpKDtCWYt2KJV4cg7BdXQmGk6rlU4o8wxFFRQ4/gUgk5XO8/o5MaFdwQMGkQBB
-tsd4sRwhSOpJxd+WjdI3fZR7I53l5quOAFEAyQWfEpAlnSyHHNA+zhKXTlX0VUVrCiBUk2U5ASUj
-fmwhdVd5SYdFXfNke6BjO8gyCMnpvnT6k+Vj/6kmJaQAkGgEa6iALDhMDg4lRMcjYmNIU5gOtnjg
-PuUWQpSICnLBXJI5jppdMWbmWUFWorgB3mgxsniEmmfx0WdiTXguyoL0aE/EclKlJ/u0JyhKw6LX
-F4NwOgChUladT6WBUlZckuHjQyFcbIHAELBuKAFBEbbPVzQzpUrsy/MEc5MqZOJO9VxUwu4qip4T
-UL8TCBnEJkzqhX8L/Ds8GbI3O0EclWftqrIjHWl6AISkH+iXPJsR00KBPbqm1JG8sV1T6ghpKC7F
-gPK5IDqUzXvi2UkFEzOXHQYk+CdNDe9yDwUyDUx7tA3B0+Mr1Bs8WQMz3h0GJCZeSBqyi3LUDAPX
-Y+LlkyqpgoC6YBdIQDo7gwKei5PFJCTdEVNV0KaYER/q00oCDqgbspjocde8ouOZSJ17YwWqApCP
-jU9ass0bCUQMiFVytCCbV6CASUvuIB8FNgBIdKT5uigy6Emwgn/IR4m1wNOxJ4WOV2wGZyX4GpY8
-BvJMeb7cUaBFAP8SgqnwSjgdHW5XgBYFOeJ5WJAZsoPJ8+S2ddyMeIqvXhb79uSlEMwh2g2EWHwH
-u5AIvQjJaR5OJadBH74xpdrmIex6Bj47zEN1Ap6OjzGT2lCdCyEenGYpTtAlEII7ztPwwXMe1pW1
-MPqkSSUJSMPxdJGNe9LO8VDqngRBydUUV0wC2mFAtqIDH7noPVzRDJEfHQ1B1A8eWHhItEY06XgA
-plZEsXmPZbr4lhRDlCOa0rf4Pi+5f4ltStPA7P+BIUnERngdpMT4ZKRjiGoe/rkTJ9jhmIhAVEGC
-nZiYptuITXn4gc4US8j39IXmLTle5bE7cOI7G6RgEVMeqaeeT02X8/p0U8qa1gNllcsgYdWMXAaZ
-jfP9TdyRFPQy5PiLhw+KJ0Bikp3nihcdAAB8EXnYPZxzpJuhABLzt/ABhRKl0sMchbZ9dIQAdeVj
-ZBEgIWFZ13A/OD6Ib3zwMRfXNTk+6FPfObwRPCK+h5N9pNax4aUrDC96wSNMz8DfougRyt8L83vR
-MURhm2gPGEKOhKp5KnfhuUSksoYhnanjoj0Ado5Ixh4m46y9HGR9oTpX+SZZyPpy2LmhxKoi62Za
-8i20Bpyr6fHqMuVXho2jUX54+IJtozBn8IGFNSV0PZNh47QofMsTpM7Y6LIb1VVQMpDiuimDurbV
-byz5nisYv7jtZQgb5SkqbsICvFm80FY04yN2gm/8Mhx6ea/itjDDQUXKOr5mzIA4owiBriozXE15
-yZnh6qK6IXlrjSDGoHumrkFpLlyxZrBQBbuHjTZjhomSUuFQEPcgjXo+nEgn3QFngLUu2G74HjnD
-tRHVK66jMwhGxdPb8a12BtQzi5IOeR0N0AgB+67rGz6EAxUJEkT5QunS8j197KBhMkOyjqrIq+G5
-WLhqYfKu56El0XxUkhRYCfGS4DRBCiE0r0oklIEU1x7KfXmoxk0er4fyJ6XJxqmHEqakexslbEt3
-P0qLprpCUlp76SZKTD/SbZYSGaouxZSoWbpbU9oR0v2cwXaSLveMd5rth3tL2JvSPaLS/pbuIgXO
-oLrFVOIp0mWoEl+SLlRlPE11GavED6VbXCWeKt0EK7Fm1YWyEodXNGOpHpqqO2xVskp1R64EpLqS
-VxKN4bdIpkqX/0rCWLpAWBLkqnuIJSVAbgYrEtKVyJI+El2nbEDYXSy6Q/cv051CnhAlXfMMICh8
-hTNsSZBYhN0DxenKm6Bh+4vXm0pHRcANbQKEfA+1I3YUXWHtiTStOHQKDnzjuY98bTaGkG7fho4w
-kHSP944CSLoO3PB1kZ9KV4obPjq7SHUzueHb4sJLF5yT/0QniHRJukE1eVXsxsSsV7qn3dRMUWP3
-ffIMXSwYXgVvwh1WGrd4qsvoZSA99FsqXwm2halJWVr0Y2lIVK9HYlaaCwAJ8lzCB2guYukAs4oM
-OX9LWgd6UYWg0+C11PHRChJJQC6vwL5oR4iyQI8Tirkk6tRN1UNLk08NkIBsVPijIn5ILBOLmvBm
-pddcwgPfItoCXMeO9zmo4RJKMbsAfxqVj8EttAWJ5VBnBu/ClDhXlKYvaKyIAYKDmG6EaLyYidLj
-RYUC20yDkBmOpm/i1EmUffQGQFZgfAuH9sJjwLxNpJFt+uzqaqHQJoTg9GZaEyE/11ACAllYK7C1
-U17pvpQOHb4yTDFH1NJ1VIAH1oTAwkHVFgZlyLW6FpwlKCRGGEiDtjQHhQ1MTYzQku2F9F5Tk7w2
-poXjxRhoRwWkm1LRgAkXeIp8LAeQSjMxXXzfcB4gVb2NpaGr+HIBeUbImnEfyW+UkyW7xbKzMOIz
-hhnzRwwEe0c0UHV0n0/27gp2ISse8NA5F2/xGyhWgN/FpBwvsFPDenCTOQs8mXmZjv7/tfZtu7Yd
-x3XvAvQP+0UAFdhW3y/2E3MsBXKW4cCUEz4YIE6OaVlGDmVQVBL9fbqqe87VY1Rv7u0kkGHwzFV7
-XvpSXZdRo8hdahW1ZCyOJRrt5qynDV/WxZroqGShx1HIYz29rsNEe+MVIcrqklDMmYeKWNlEwjwI
-Ykuf5EFcPb3SMHd4Jk6iHs3b7JG07fp0368LuV0rVS4AP0muGNwUCVmmKdSQioSsxUYd344nSLbV
-jSJEf5kwcRfztD6GVebH+TgLHCQreTfojTnwg2yMU4Qk+ToG3mu6mlkaYvbEwsLo1phvEDHvjCgM
-s34P3eSAWj2mic14znOmmEtM02jbbIjDZwjkaPzVcEFa9W4VhOyxCpGQrf086y5+3PtLU+YHZbsN
-hXwTlEou2GtQdgnaU+Lw7qUoKgH7KPfjjkQh2d6s4iKbPe8SkoqT3WS5hJhnAwqhIvPaKFYPJYgW
-7+4KCgO4DtM7bJgato2OyZNykBUgS3DYaXXM+ZCIbHsWU2gsM0W3yXZlYYAr0YTr0oZJYIlPcwsl
-MEzsbWYn8efaM68iAdf01hfl2YsLBga3/KoUStSdQQ4PWtrOhKPl7Gm8WemEiRQOz1SvvU47XmAf
-Xj0hZ8YzSjMQPn7gDnKSSj8Q8HfWX90KPzYOJzeqoI6NEsxGQl61maOWenXH1QfuuYiHhA7EfX5V
-9izl7XcJeVBdCdnZ3OVpBdRIE90SOipRHCC8/bJc4PbcFHohDMa+Hga8kwc5WphVS22u68/1UotJ
-MagQvKVQGOLtvbo9zxVVA94myuhWbxwb+T5KX/S5pC8KpqGoiGGkNNRPMrroxF/I+H2ua+XbzN5j
-20c0OmgLb15BhaAWtgn12AJNRiHurNhmJaLE5mBPrUR7sXDT2Mr8E1qwslVo+DxmXmTH4VYpt6HT
-DGtMx6xqlM4cKDFxRjc5nErgUVCth2RvU9j9dLSA5Eje87nyshNPbmwPk77IEfPWIhHwpKbGf3Ft
-2k1vXmFQGXr6Qso9R4OzIL5o1Ubm9maUWqBzbHH2PLX+qoTfvmOG55ddFudCn1XG8LEJzt3KRZg5
-YS/FITGrhvgVF3MrTBOuh5qZViirN/80impiPqBiD5HKJbe5oIWhagEUvCw8MJyPEvxFQ92QiUYF
-cJerCluaO889phIGVJcIQY2U6Dq0sJfVvElEUjCp2fVeE5EypVXb8pyEwqZXmTv9KdFsmYDem5OF
-KSOG8zozbz9iCKAv1Nh5ZCvpwzzi0euzt5n4/e0biIBIYgPGODRWaOfk4yoveK51abtUaFYySjDJ
-V7YlvnFBczb/JnJyrbGDlRFDohKLQosPAPvHnTZEpzI5PSzw9uU6d+zbZzIJS6Jty4g9OT+BQS8y
-NE6O4aDgE5kq+uNGBkp3evTrDr6P/mVsbQHjbme4TW7IYVU0r6aHQw5HUc8Y5queFfjEnARrWbWJ
-yC54FDnKB9QVwnzaLFSAtAD1l3oGP3hoTHisSKCnXIuVIJh33W5Pf9zIiBEcWe1sUFPCxV9wVtnv
-ZIzP7lF3ADvOkJ5cl4xKS2RRtqvbm0wExumuPyn0zs2z4TVpvJq3yZnW0C0XIdfg/Rqt7eYQuSO6
-hoxssJEAaCZDh8vekb1XO9b2HyRWcvLwS8Gt/5iaBRXqu4R0AtcvFGALUwM+916hQIYw3MC51I2/
-ZTmORYjWUKZt0RMhkcQhQjWw1tLBC+ls/LSKmRQdTYwBNszGvO1+zihvijeAFl7js/zkybxqFV22
-FKYWZ18yhekHbDvDuqTJz/V2azNzFyEfxOnk5/vAk5XNaCZDltgSKpnkKgXALh6mC5KmUX9e13Pb
-JDfhZHUG0W6HVxIqqE1EF+/nc1rleJuPZf1pe5sy24/c3S6vF8gdu2Dad87FBBntp2dq6WiHLzv0
-u+wsJAs7tJOZCppBZj2wnWRX1cHcupak+WOzmM3z107gl/8kO6GROjdjkLi8x4xjinYG5N4psYvC
-EylRPzDszBJIrLROK8ncxixI8ypmUctHzKWvr84fbfaNGTiz917RPx+eTNMiQonwZNgjU2Say8Xk
-cJ9eIlFxQzo8HVQCjbDDMJrbSKO/AguJX6V4LBqyX0TdD+aDks3F0IOi9VGBzynFmRQAxf9p7hJM
-PGdiZ0+hEGaecyF2O7KEPujgx+NtfCfFYF7Fc0EBf5HqFzZ9zVh4JrMz4+lZIZ+mxTsbh8LZlU52
-EN0wK8Rk9U8LzdzGrFfzKmbNmy/iraMP4oGpi3jy3sZmcJftfds7do5qtzgFM9WSuYTbmOUiSdTd
-KT+YFpZizy5eexveAOZVoj9/hNl0ZizMxjXj+aZG+/AsUU1isu/TE7nBl6i/1nCxGKHUKqri2AjF
-mgywsFtIqQhR4HRPssWmt4GlkBwB/6zEoWGcEapuJan1l934rYXQvqlRpr15YiZJLeLGaKs6IA1R
-+NPOTZHSQjve4Zqu5BmpBjw8+gGQmwwpnMD/do87FXq+YL9x6Uo2Gbaao5CDPCibAl8SSmkiO59R
-J0csVilx+NJR8uXDtAEwRDe+CM14WYr4KtToS7YDrPC+dtpE8tw+VK9Ua5tCx4dLvW7ZcbspUKa9
-J1s4n0JGr1y6SEOEK61O0/ertE5AeZHABXXA2xuhyo2tZXknyqq8S6itjuzyA/bxCw==
-	]]>
-	<![CDATA[
-	RD0nEmAHikkGUHiZeMQ4XfQwYkOCN7LiHPvfFqrnZV7dlNR+FD3COP6UOsYvmtnZDN1ojNmV7QGB
-ZSOh26PijLdCRc+yD0HNt0zlCqnQsdm475hu+IyxUlM2nITnqW/5SklL4ipfEk+49erfZn9wB8Ba
-ofzCWYiaMhqhJIn6fTxEHReY+UzojrriaqKLmLsPsfOyaCBSKDSCz/Pbz0UrbFiH8oy0jrp7bxKR
-ZdIDGdF/hSjBU6RXxEFbqzNUzK0B/ZQAzXV/7xKZO7eLgYM9SA/81mInQdr3gkHdLSeTb5isHxvH
-SmBj6HR6UDOHOZ5ZibseRm7Um6jXshKlXMoO5iVUXvpBkemBmdXFV9c2qleIJVJdeMAqZTmqHIZG
-AxPaiU6Tex7Y8ETr8B+T7ZQD7tEwI8UXw5Ys/oxbMQRb/SF7CFzHQP03zOEfuJFg0oLGa1wKQQ5D
-Z11LzOjKPRNh5AobfbehAgiBGIn1MJWGKIOYdh8h5CkBD0+WFzFRK1Qr9FhCwOPClS1HIS4wUwkw
-kj0xyokEOGamWfZ65QCrgWkP09BfcHiEsgM95RA2qGUmk5IHCUfkrgdC3IhNVOHUZKlycJoqTcKJ
-TCd1bd5yAE7PX4wz8XiPW/LYQzgUWdFuMStsA0s4cdNXUe/YCtuxjZcIq5LXtibFlCOv/UTljxl6
-gOit6wtRjN8qA7SgJPafnrg2NA/oyeaqSgJflNvnLiUBpkmu1NhbtcS+8zKXX6XJu2iur42NfUYP
-tVtWKFtyJSsUqGhOdAuu+s6jVKjmIhXLYZMWeujeb4kNLRkRUTjMXCNjiadXO9mCBUPgsfA6yYTc
-ipmnRBLpevmyksHjicZ2TOTDxcJjl6j2wWyvZfrAgSKdNdEcXxvvOXaBPeHj1tziD0PVUCYpUG7y
-81GI8GI5NERTBEKW58B5vWARITlkKpxfLuCdvc/cJ1lqVLCj+2J8D8N3Ta7EY6lLdv5Y3aLXD/1V
-szOsJyehRs49N2EVCUxTeOoxkV2nrLMPhkUke7KHtMZjh8+KBBX1e6zjO0g4Ox8sdDpEzOJ4l1Bm
-Bl8Rkn6s+U2hmfvx2tpmCiEtVY7EpZCZri2vGu+aRXENVXJ3RR67SLRvaC3XYc13bfYMp38eu5Ab
-MKNCyWkWR94rMB9cx5wp0hkU1Z7zDFY8236br8vSY5dfSmxPMFCZBFweWWbUqAm1T1pWLBzPWTh/
-oZw78NNLwW87GRyZ4aXHFcFCJwsjT7zx+SfqsxkbWdN5GVhXylGOB/zc6lEnxW45sHIljjXhFoCX
-yaUj8ErqSj3aD7OFxj1qiQkp1/TgsmFjSdcH2UuFTf6cK45rCeTN5DxbKdyrvzD/+oe5EKWFQaT4
-kqxbCMqZPgx5sbTf31EOQbmTkGFtPQlhP/m80LX72/D7agvvwl3G9R0q1voUNg10tPcFUhrFNmTS
-4LQ5UfyPpf4yOaHWDGLM8v5lRkEQeLpGQmLo4zuLHx7NeI7QyqJXnVdfxXtz10hcyaLaYGGcCPnz
-2CSglirzY4t2hZrtynGSrJZSPbCGmlPACJ2OCmORTNdDUh5U2EzldCtzYioKoCpPJBA2yZV9ySDP
-WUKdLC7wPFQRHoRs0aIkLzAwfxQKtp4D86rrQ7ccGJVfpsZl7IcqzrSYKp84HioATYIj223QWTl6
-Xd5unkzJmBUqF1G7vW2JWCKUDDaxUC2sSFCxmSVLVSGwyQoxvskQEO+U4zXE8LfcDW2BCkEuJXcE
-eouELOCthrIh8vWSgMq444PAWGWhx2tC8CwZmPij71sNeOjw2bVTzYIZvVWv8kwhmRmYoJTz9Bm0
-sFkFjBu0K4lx0eVOiRQu7j5txsysFe8SytaFOAohimdFi6EqAr83x6u61YDyMjOoce2qxkKjqcyQ
-y6buI1+xklWFuzJU89+J+p09ZloG0alHoXb8+7Romp7AHIPwMp3FkmWwM4mfqyLxPs5Egm7TsJjz
-INGNj2aFSjdEglbIgEBEAhHSjGSY0RGBe50+FjXO5OTW6+A/1khKvXjCYdRkcXNjwFFzcjmdSkBR
-+DBu4MmXxIaVOKD+CiPRWOjxmhA+ixHg9n0Z3s+fvd6GcDmRl1Bg7HpAmLpI0GfPGhAwKQpv9Stv
-d5X8S4CNkDtm/Zhqh25IL1PjsqDTxmzcJvtdQhOA/tpPQGAgEqjKmfrgbZNvRrZyTOhKGRy2BLVi
-QJva4LCzJLtgeBmHneMEO9yu1AmHLbGxpwr33ZYBa3AMjaXG8bVz5W8OVJxjcNY5zCTHWBLBu55s
-5W/2U+Ue6n3HPOkcjRmoresYUeVvFgphKMPnyt/sZ5Xood43Sy9DhnsBjj4Lhw5qEK33va5DLQFD
-TFXoRxWUvADRpVK9r7w9hhMPxb959WCN43tj7skW/2bhum57K2Qu/h02AKncQ/GvTBXdhop/Zboh
-gGWKf3PwGPw6Ff/KusKZ4eLfvBK7z4HhMuAcCrrvp4Jg2Rx0GyoNFn8w7qFlrgyWTUh4y6vqRXYw
-bg+uDBYJJKzlymCVQNvHll8ebkOVwSJhqAgAHCbfAVGiU5GwCOFS4yJhGS+oI+MaYRlyKhW9aoRF
-EdG3Uo2wTKqRgNGQhWFub8YrcPNdrhGWSD+qZzUxZfXioprVwrLuI4pTtbAkBsiGpWph2V2JJ4AR
-wrJPzTzigvGzPJELhuX6oio2R4RfVD1U+Klqw1YEb5fN25lKBVsGLFqPsN22DFiEEPrHZcCiGkWz
-PJcilwHnxdP/VDWHMmAZFgc6jcuAZcjFdHgeYVwGbJM+h5pgWTqmoBfAl/Y05UITzVDBgX+oUpEN
-hmksc5s4p2n7IioKllwIvawtCtZcCL4vFQVLtK4VmqOMEu1YByzhQio/oMERCZx/rgNWCdyshzPN
-3oaKYzUpAxJcESxhS3MY2S+qVHrMtcFjtGw5sBiTeasBHqNny35lQsWTexpKXANsw5qHGmBZOW5P
-0Zgi4LzAJptP51lDJzpGDvXAstITC0FxsOhfch6pOFj3U95KglUHQ4EqlwTLPsUSVi4JFgl92AWD
-OvxJY4PG0dhzVbC8aX6WAsunkUFOpcAyhh7tXgWtyfY3DsgsCpaJ6Z5uqn+iNPbDx0kh13YoClb/
-AL0VWx4sy8dQgTr0Vhwtby4PFglgiFPzCAvAO/8J8zBxUfBBYhUFH36x9b6yc1GhvkvoKgrWX0BL
-cVGwqgYIYFNNsKoFjlSb4Zecsi0EFgVMAf3CiuEtV3S6rCUyn9bsxVcil6FX8sBKDHSW1ILOx3iO
-Lbzmdyih4DjZu0yD6k6865vsNlwxB2xNRsUNA02DGNtujfMUvpzqsqqNtg/yuCqLz5w3sE0Fip96
-mz61CCgjgguV0A4XCbq7beZmb5Opfn89P2c0Q+27c0Wc3p2HIDvqsu4b+d2J4vcyG8TBUs2ZKJOK
-0QGJ6sD7Bsr3GWOmmCDIwSYaq3Re39E8Y0LpTEwZmQeLWDgsYZaUpCTZVgJDpERDnEex4bFd5wCR
-dTp8CQ4YN3SERQIrmxtCbUoyE9HtekoBuYH9Bfq+HCKRQD2VOnp+Z4k8h6iTGsqqPw/XE81/bJhY
-Vqdo90YK54zVseIVHSsTa85tf3fHklkMZmPsgfcSz6SduozQmSTeaNGRxGnkMfwii5hMVVt5KIoU
-DVEWKuJAo/Prcb3KfiInc6VSSsi86SOetSUkWiSZojKyn3me12FfghmDQiss+OmFVlUtcJ3IGO91
-lZT+N18Yhu3fe6r5eVl18VW0uy7f4Rr9NwRci+O9FOi8X0kI2CZoKxR/2NVBp/8ZLSge6VFUgoNX
-IZ+vA+/lp3V7FMrXH3t8bJ1WtxurtLWuugJ1aekmOGd1UiXlIVuSrIaIRapHe+PDE9N9sBm8oYqW
-TYNn2SU05qqnsIyTiKRGEK8sxs8t3Z5SwwhCP7dQDFsk8BwTNvrdpBcJAgOsbTEXfZnr13g9F6v9
-laWQHUZx2oaNxmSXxkRzeO9wDKdX6iwr+oM6bPGIvjkxO7q3et4MBVEpn09C1Zn09UHI42crms6D
-fRiQL0KgdHgQ1mgt7UJVn8u/FAxdxdsnzA7lwrzLdYGdBbUIqEp1O8FLKJnikbXQ55UDq5Hem9sz
-Vlp5uXhSNmx+KzKTnSCTzZBwn7kNeCOLchs+E0PM4zTC46leSIcxcryuIrkyiR0lphjJSQMf83aG
-DXqBLO68UOLkZYl4POSUjra3/cthe2NKICVaLGKGQ0xpsWvv1sa8d9VwyjN6Tn0vdJzgGB32XoXI
-dZ4aJVXTXkRnCCkPM9JLyCy7socLTOyQIYfHEOSk5bd/O2titlirbBFZ/RgyShO4KDtqMjtDmLQ0
-8n3SBPc/Z27FtrYb2qYjQ2Ho4OHwVs/37hO/elmBAuul77eoIxEi8JKj2GTlgydTH9GzBA+06Epc
-R9kQmufC4WnJ/XDAvRj610Qx4VXhtvmcFKlYE5ajTegV9pHy2t53ILjkC8lDT01sGdu+3blESkxK
-uUMJFJjLHu1CUY1o7sy9o1uliyu4JTLnT7JBwN3KgRJtYtYi/U6w6yNns/1lI+RIwYlFhP4cjTxn
-z9RkZI7CLHTxc9dkk7nqFKw3EoWOdokzWqGAHpu8CgaRC/GP5Bw4wrFA35Gt64pYPYVk+z0Z29Ce
-kIElM8uGZgzyWiwOaAsrKGnMW7CldDgz3eFw9nysL6HLnMrL8AcDFYtHGKMwJKzREtn2Wcwfl2Ev
-EgRyZIhASRPk2A24WH4ikGOnJEUx1u0sHnsCNU4SjJ05CBWDYn7bqJwA7dwKg2MITfX5KJQRi5al
-MScYWAxBFgm6hwUy55YY50146KG/3kBn58aJ00Nnmlw56XlAgx6EPOYsVOhmCz39hFYyC2lb+ebJ
-5qrcYK55Qx8mQoQc95TLquxeNkc270nCHBpG6AApswvkXUKMRD4KrYKobQVQDJyByCJA3qqFXeZW
-2FulRnh50Sw9n8MQjcbe+az51btXSk0ZgE9r5AZILS9KdN7BF+FlFkakSHoK84udHZ7SscVzNr3W
-lpEEOk3IqNFZcUhHmIURCCyA0uk06pwX4riAPohxH6Wi4hMJigZlwtR0M2AHE8sIMS74cRQieLFI
-YCKRIcpjS9veKyZI5Bj8y4DpYhhKeWeV1b749b2nuQrTV9FuUCuUwwKGFmdQN8+fOGw/f5LrGEcR
-mNLuiYqEMQJNONdVOrVzoByKEKiiXqGdepTgPjhWqGTT0EiF0PhakbCrdXtxhbZ+DZi3Lo5DTzWZ
-Q17mnZpTcjTELEETsegmfHiIWPREqQMTsejsYlXi9suGHJ8RA/ogx6CIjCBN0XgUV0t0XhqO9hoN
-JFuUL3pglei2VHNznAy/2RxD1dmha8Vev84wHHePPukl1Ogt6QAw7xAwPnyQiCuY9qZZN82/sjo2
-3XIXK8jpB13ndzFjSR3dsDRTTs8awyJNLQ9l1SUVDJIlT6QfJZGPk5g0SMLrSBPDxA==
-	]]>
-	<![CDATA[
-	OyufBU5WrFRdXBapzj0L0rAMH8ShXAFrMR9NCRSZXELBR310nemZfbpX37NnHaski6UAuttCXMlS
-g8Vv+ByLp5B4itRfeVyne3Dd/tKBoAwELIgPcgRtyvZBFKc6caCU3FEHnjhQTkLILlIWUviy0XLb
-Q6kyv5nqafNpmWTic8idut6LBMDfsCmmnw/CMuj7O6tWaCNll17fl29Jp2s0y5/WDXeh6s2YNISA
-VOZsLMyU1ZbWKJkpObtu87gnbaS7KQT/SlKfuB9o1Moq1r91RGc2trIKPG4rW7g2X2Q/oWVwINgU
-/AUaGMzTKQYNvKo8/ulKODGvJmNlpxeXwxUiRZ05HLM2P2684OQoxCEMB7oCYdEvzwBNnUfBVr/d
-CpXM87JVCVhv3i5sc5scuVC8VQRwi5EKa04/SBWw2cQ6BKDTEpHsyDACEF7wlbhaHWF1Q7E8B8UT
-cD9Qb8TiaZ0Z/riyiO4O5HOyBGFzixCQVBTudRmYkVaOo3rg79LTLtHtIzGRjaMc9oA0XN++dsxt
-Jl9iDJJ9zooVP5lDKi/2BYK/ll3oxGU2HoaKIbrTc8hzjZ6/R+KC2/eM8cWlKQLEeGc3ydk02RjN
-BN0FNk4LlpV5jDyGt2fbuxIogtiYVsKooBOJaWHAp73N+DSw0hcv8jboMePJ0U6LKDbUwlWy1aJe
-Qb9VzQ4o9GAfmHrQDXKQZ/vL8nGQZzSzTeQ67sfa97ipjO+bc7MlwEunqirp4Acm1ueTUCSC0tJJ
-2/VCrLrjA3BOxz3NW5UeMC05dBjfxplTTZlRtaSk37Cb0nEMbhIR84vAXZlOpFSq3ToLabmK+alU
-8lOlsA80v0jkt2aocCiyBR4LBRKv2OO2qOdld93kTG0ocwpL/11COe6XWx4KfZFAkanaqU4qV9br
-veE8ZKYN0vXQUIMUz05EJ2KnEon+tnB4qxyoqasj6qfCVLDVBVTxNRALXnWERJ5LcbjGRDxT91CM
-F95iesMKjKwi4QMt2gsRVn1CT/CCxt/HY/UUCW9MN18DwU6MxDB+a/BETm1vQzXbzZPBWUPEY6Vd
-ycwalDXpGcpsy2u/Xd4q4L8t9Nw88QiJAO4XltDnMFzWOYxGPaYQRLlZRt52cb1vNlfV6xh8cM7U
-x8kgYG7POQzFy0DCYlSJneRAJqPyZ4CELg2GWjI3vSwe0FS9k6VdOSzZmXNLV3jF9+3M9ypbA/V6
-IqdMthf4m91bW1R2qahAN/4d1AEgz262VWyJrAVzfrUZ3pxtEpufOq2g62xMgUto9+8aU9Lqo8Aq
-SURJa1/mQL319rG8YkjatpACfnJiN8eQKgr4ldo5JEgBPzk7qATKBvzkKDN1UogrrIVfhagcRMIE
-/OBV9EHFXl9HtYk4QmK3VAZHSs/ZfR8Ubl4ho2XKJQS+x4FWKHYR04LqrLi2onCc+1RoUog/1Vaa
-SK05xi8LMjOUMtvrVdtXqhRG21+EalcStBTHQ5owf62hHV4anJQXT2NCbyFgXTKXUF8R2juMnw2O
-zuKKVAgj484Eeg9CHvfKJYQYCE/rI9eLQsZ8yrpuRvn6KeBaf2w/RQLOZi6Qkx25x5zL5OqTCeMk
-nviXiC+qmW+fWKJg6qMsYiS+vsLGZvEzW48VKt1+feLi+qMQhYCMkEggYrVQTaNIEA7oQhmnTpXz
-pVPJWHaaKgXk4XVxhevcOY+X61+c2Z3WL7lfubv731iJkesB4g8lDLlaAL8pJ8p8+Jdpvz3LSXLl
-TsCzdciz+iAzm0yJti4nN7SLBUwFurMs3v8tH54xo2vVCQNmVG85An6WStuxMD/EmC089IpniW6S
-ZaI7EVq1ENfPlVCSzcaL2jZay967cI2guU3FaIMubNACxUwLURZJrLowdKQ0LJQuc33v6IFKC55d
-5SFxOde0zwsyHxSD5yyZ6nCsRDSYQSt02leVAoTvE3ruw9NPuCVFAkoJTdVNNdw0/irZqRNbsrOz
-YCFN5eNHocnWsCqHMshqdnmiPH81WJeMmB6RYKyjRQLUTuu2VKoPa4ZkhjdfYwPqtPlaYGwQb74W
-ERtkdlBjPO5pI64GTLDNAKQzhgxRJX6Zd88TtXFd3wFdI0LESFQRLCYSVHBL6BqRoCk6bBYjdEDX
-HIQIXVNax/VqwDVtERgeIDUCM0BkDkNqDMGrgdT0wJQoFlIz1vxxm+v1JzqGo1f408JGS8RU3Drw
-hQxcpht0+AEu01m5G7hMn8zS492z0zPMwGU6cU8f4TJG6ASXMc8qnT8q0wqvAStaSp/UZAeWP5kn
-AloU3ocdodDGG2oMRD95Q0KXxowY6A21yO4KYWSOXvIMgtcYLXFnUBhGtXRT1/KRn8xMS7Q+UnTa
-LKQamHL3sJBEiKpzaCGJhPzV6wvpkvjRhWSFmOrs8RTaFlJFMLpIIE6MLZIaGk/1+lLOI7PDVIPx
-PBYz1qWoJepGzqj1jySmZsgZcGY8JXTMQhtT8heHZayhtsxYTRKSUBt9aEE7oHpGV9dyRUd9YPQ8
-rXCJ06GJUgs69RJkfiUiUF1jvBtBzDXCpyOPr+xYK9ZkNtk4VbDzSY0IzRcBKj6cpSLbu2dG7dkA
-kRXSWp/HHD4ypV7/pZv4gArB6YD9+YKG56kkkywOmVzPNgl4SRJiX3xhz5EiAlBZRFS/6JBLUiQM
-svi0WilO5fl1TYdeqrKVvcAb2pindTXYe5pqnlrXeuY3l0/erT3JTdhwwcoZeGI9k7I7GI3AZ1RZ
-NUcXlcpBwtYKHoSSNT2CKUw/CXFhOgvJkBnG94Z6iqNjiFVq1xSb2zwjHDHrSlkvAJ1xdC1j2CQZ
-p/9SN2Oy54aINGuOg8sC4Ict45o6OhxlFZVCFVYUdNN9DrUBjgUSQ5tthVV1ph6v8RtGNIRzwTiM
-CBhaDw5TqhDV/fHrmjdxtCY4sagcdaoxXCbNnaiUxmQfxZ6HojrR/qg3UzF1uTKhhLknN3KoKOYg
-pJ1UDVPsoS5XFq4h/gMXQk9hLorJui2mW3Jpns6eCL1vZ2KfyhaUqSKoxuWRbY/hr9RomQQGaCdq
-E6D6BVSHhC57p7Rh4HJPh4SgmjbkhTTvTuQki+ZNfiGnZrGGyS/kOTkDYb6EbhSAOpyePgyYVhMf
-nIG5SFK/Etvrp6fVOQYWovIigbWoqdIcC0mvJYb8NPPNtMyoJqkasplEdKVimR5CvR9OTsXJV33F
-89hQVrKnFt/M9Eh8oNr7xudpZNbYhlShqvbxqc2EEtRAAFM4d6yF1uMfV2Nfm5Ccjm69Gz/jwSuL
-q1w4bgs7685EJ1mPfNmPGBnIT1MgMKvPhfc5/gTn2Sb0XMqZah8V/gDqwhwHi+0x29ShvDlRxSY6
-bHynom0K9smg0ccH1NKfZsYffWWhX9LJArsyE0G0zPeStid9ZFfU86sz45A8dA8p6TI+rPQPc4Ub
-ElWHf8wGYI4Ypj5IzMPRXi909Hnu4pALG1vbDhzv+88//cl/+Ief/uRn3/ziy+9/+Ovfffrhd7//
-7uP3f3r5S7lWX37x6+9+ePniq//6n7756l8+/tu3v/nTv33785c/k9/+Sv6fbOsvvx23+ONC30mb
-QllyNZexr9twhoZ92MpYhlHI3IsgOQRPGMbbtPGaubhQX9y4Nl4wj70Zx5E4DNn2ritffxyPFZW8
-Hy3eEwJ76Bkvba73hWCExp7xKc2mn6Zf8dvPmDpu+NTcAqSgW/d5CZW7QGXmhiDyrBLbrGr8es9G
-qMC+VVRCpjOEvle/zGQbVFAGCVBs1ochFAsh08cKrQkpABHCN0gFt2AIaa9akXMlYRBYJKg7zNUh
-XH7y+A7RVFQHxD7L3zvkEgzrQL9AVy8+UpA/LC34fIdoCcDlNrh6llDr0beWmj5I9noke1muAxOZ
-SHDMSr4DaVwjJRxFYm+1rhJAvyIDNp/PLqv8gq0+YjRR9DHxGgCrrahanK1S92M2JCXUDUQAGgjK
-/+JDMLb2UYjJUERoPMBPCNSd1A0x7Z10x6f7jEldGRza25bNNQRAEVbtw4qNLz2VGptersETvY9p
-CSsPOgkximPMNs2npz5XIpHxoxySJ4bFLe+asdbkJw/L3jXaGMLADrd3xNYTPDGeiISZWE8rt3uq
-2gtez2sGhAVPCMHcLR4+yKBs+iJzCYI8fgfIS9tXbJcsX4GtCq62r/ILKJ/5y5ocZZ0hMHvwzbSB
-lboHT0mpnGxJXwjUe80IPaaaAaDE5X3fkFHZy0B7mTOBkEPAwoIX7MB1vY0Vmp8eCNggieOyY49D
-pOOkcElmiNR+oCxLQ36AJX3FLOU0AyVZPTX9FAn0ZRJV/oRZmmYAlnIeZoEf71rf6yEojt21tBqX
-4MgQTUzufR5BPKh5Wq+B21Q3LuoTFQRrYG3W4KDmUSvsAGsqK6zsyrkWgoleEreOF5Y9sE90xfNt
-/OFBiNudSaFt+nkdl+c3wJw3qt0SiW2EJRlNsFvz8LE8DIpUhACgrGtIrkb6U1qUnhp6lkqP/yQ3
-bwpT4KXgG2pT87ei88GIuJe851QzF6aKhORrm/4XdJS8SCZxDsuOQJdYl1kKtLdXSedYfWOepQOg
-leDF8mk+CIVmkG3bk/xtUkTUUD2TX9oOlUOyK4AlqcVtZ+oRImbiVkAr8GLSzKHg+Dfulr00AZxV
-jRvqhkiNYlugesxh+og24d7UqtyoL4cceR4mJmbC1pvtp20nLvZRmPb7F1jVqjuxYvoFW9XJ+cQN
-kUxZs2h92BymA/qHdTRk+9NjHicwsjlQxbOYaLtDk6325PORazHW5seTloUec8vBehIh0gWZ+6WZ
-/UwJgnxoly3WCWzFxaS2b0WPHF4Xd9+mWqgN33HkPRVrZGB1lhJPkZDqeqydX5fL5cKAiky3yQHb
-PJVpT+9mSMpU9aLTCTfLhx0RIq73lPnrg2IxxnVSYes6Fz18mjedP5F+DxEdvRSpylCdxX3xDAlT
-NKUG5b4MozuYab7hfISTLZc7LujOSkuECrGpdmD41/plbvrsIobaRQKdaGcb7tjb+ED+o2Do/d7A
-0hOaIEx8oQ/Ouphvhj1meETSY9hWu0dT6KG8V88DazyxF4xcauZv3zXjS8h1o4q4IaHzK54hullu
-Rs3HvDQ/zkaJ9TgK6cvfekddCoKblbiljBlt8imOeOHDVcC0bj0e3ytkLIdPNSZczcqQUhxDIFVE
-aKiOLYgZ864sr/3mzMS+MV7nh4FTqQHsI+nkgjOZZqrJE80npYe8dRM/SD/mWTpGzdfMQ/uMuD8t
-CPPuPVtfpQcSCslupEUdsGJPSeZ1P5GkjrbuH6xUO6QtZQIpomXtT+8CJmQ8l33JOACZqo+k0mUt
-wQ4ao95Z6Tc1IlFBjQ9tkHURQg0d/JZpnkollX2SsA/1pFbV/XnoD/sbayXiHr9IL1YiLP+J7nio
-C26Rykeb2sTI6Di+tbX9OJVJDXtkRSSYb2cuIPxyI9ThvJMnFxq9IYEWQjvQk3ToPw==
-	]]>
-	<![CDATA[
-	Nt8m8YP2BEt8WbSBtbaxfkQv92i/yFgenaeu8gJ63EIrQil5ssAfJXASrTFvNHdS4MRf5yWHxKbU
-CpqDUZau9r8SjYWTKfVDZD055CtXIMDpKr68uXl2lvThJITxIZFA24q5kESCjM55a49OoSSRYImI
-RMI/pL0gEuC2GAl5EHc/MR8qo5g92aKVKuu1398W8CiRYmmaBYMQgrPFxqZrpBF6TCF0dFhopfFP
-l8GMeO0VQE1X5pLRzD695KIDx/CLW33cxi+XTOoYl31e5rjIPH61rw99K25F7X+5xVAsSYaCMOCz
-WULeMVXj1tvbYE33SYLjbMYfl0QLOC3Vk5ssOwKLrh0vtqi+ojnA5Pb3T1NHRNRlL6u58dNI8NzC
-cZh2ERxrHylUXqINwIqQMrXQT37xpTyDO/s+kfCD5FTE8T2QOXihY9lDIJmdfkmjINl/JMPESytA
-8nzX2grNKJAZoZYsDFTrZLPqQsLaON1xPjDprLMhJu+pk092bCn5yl10IcIQNQND/TwPtpQP1Aig
-7HTNao866h7kKDYnxjo29WKnUY02bs/FxF0iAXF1qQunL2K1sxKufiUpboesuT1DFmc6CnJmpg5f
-zXG5bF/dU0C+RR7q4On5HLSSWUfVwUwgutiI3bYyV5+uO0KC1MZLI1APbOEQwtEwEoGsgk9zgRPo
-jzgH5FVw4jnibF72FFjzgQB7Vv8EWsplpt0CEeyXctClgbK0hSMpOuxYw8r2B8ctSj59RuRiRN4o
-QU29UigGI9dReR4sW83pwlAa8+IggQSf9kGH8L5fhCvPAWNSMaPCrBVhJI4LjIWM472ghE8Qlx06
-T1bB1cDWB2JoFYIcmLPH1LOd4uesRamKYagWOtFn9qBeqDHJjSPIq/NLc268clLVkzsqW9gQpHhP
-UfvKjIYiIaGNZ1/HTkRH3gccpXIIfprsefF8/PtM7WkbkVPpebXv1TsJrCO8x0FypACcR/q+pKFg
-AL4F9C9FwAQxxnKz1x9LQUBs3gQLBIwDXzfr1wJ/UrrXnv2F1y3BgkWiP/OCUSWE/zQdrIPQiVc4
-E1YuUtvSzCy5PgbKId7WdBSmUyJiE7gKpvwSZaJEApN719348sFzignQUHJIkAUnWOxJli9GJDgo
-hlNrWZqo6FhIH9v3RarUW7hmUyAzPLFGN9b88nnZDZhAcLQA0sHrSNPPaAg1q7OBPGBnaqTojyK3
-pVjwYMFkR6/JQtapjAR78IKajAf7+6oruN21zMZ7Zp6pytaZkehzGJvRzvTaFyruGpXmeV0mgtC0
-eHlY4D9JbC7y5O9avDF72riFBL+sl5M0hJTJ7SN8VE9sIQq/8+7793TvSHXXetliOggmcxTDUKGM
-G1xouuJBCBaa3ClMbDsi/1xAYKEE0+UiFy7IlO1wIb+qZu4TfBaZSPgVQ7hZorbFZDUUPLwrHgl+
-gzlnYibiRxBa3UggI/f1IKgDkJMRimMVgIxosIJFThoBgjQQJ0vXftnUjB5uq4gBQhRyfXU11v9m
-PKTqE5jgCciUuSOcn6cRky2xhaFEADIOWhyT9TonsUSf69GX0fsUPxmhfaEh5lkOLcJvWuYJz/gA
-iTxgnD4SmEy0OKxCXZrJG/ShVuLAMmChx1y/oBeMkOpSBLx6qnfPM/C4du/VKO0emUS9azzlvlUC
-3B2DyjcS60G4IFjoMYUQ9GifNemaTtcLD599h4gxUNFq0CVNkc778pfF2LZ6I22uh4DkethE6Qon
-AppZG/wB6DJTRkwkcBfnclAGRLcnuUxSBrM99zpowqwO3+uPBfONyqBZROxRCCiKfKHjVSQgretF
-qiXDoWdolUyi9/GebPBWOCSnQ73KPz5rsoXC7fmwoxz1h9OqB6qUWZQaz5SL1PRybzO/OtY8l2Qh
-CMRjehOo/phG7bEcGhAqzlTviF+Am+6upPLeTWXPD3cELBflxIlgGMXFt9hPSl4IF6txRcpdgcQB
-LIZgi1AzkYxmZqgyDbaBF0j2MVF+SsOLhGCvmbJvRyEOQ8pxvOrmOdN9+PPyLqHjgC4AhKeqOe+p
-0vnz9K0N8jrRUxQnD0vbBbsgxdjYPb2zEJ2Fk6L/9Mvpz+1GfM8z5JPqKw85jKnaVTMebJb0m0P6
-+P9f5PQy/+f1f1KE1Dl0YVIrU2dRSlZ342II38qBybuaYI/qr4BzJFV0KmXykTSfZx/fM07BSiR7
-b30Brh04vMDbA7J2xPg4OHJjp1TG5ykESZpo0sEdB00kyIfsFHWI/RCn6bR2peMIRHt6gFF6iY1d
-4U5YqLj4FeUHMMai55h2Dy+BkW3mvT3HEte9RehZa2XQLZ1LmBjjoEMIaqccPO65Fr2JhXatDiqc
-KuyezEsm/9d7splhouSdMspHCTowDw+qmaxwXgKPk9Bpe/V3bAEBgEHNgNlhgj7DL4cCEEF2OjYp
-DqAkwZlCktHzqSqAVqyD61DuFRUUDtZgODTRmIDS0A8wZE6PRc7UiQQshcjNU04SGOH4NB+EQrN4
-99nty76Kp1TE/IzIGOSFMEbISjygNh15k2ehZgCpBFoXlgqHtyEYstOLilEIjkJ4iU0ZkQADMBl8
-+0ECd/h6EApxCkFfBaAvpwchsKXZ3WgelE8PghHKvPJEgkPJBkETXCGMAQs9ptDuG5ZAiafgNA4c
-uTLJUUygHILm4UL8bSFsFFIJCBpzBcNJwmKuXULcVGE1GIa5BcESKWbBagDHibqrUazvHHFm3Jlv
-GIKrnhB7QqdVaLjsIcNCkZXeY54a8DLGcFhCVdtN2XMJt/BJ4sftkg/Lon/LWP/8Thv1x2zc99nI
-r9rY/7c2+r/PWXiPr/Eur+U9/s+vXndQP/+ID/YuD+5dvuCPuJLv8UTf59O+xzt+n5/9Ho/9Rzz+
-X70n4vLZBhjeF5V4LaTxY1GQ90RR3hWPeU9k550xovdEm94TtxK9wiQ2sa61Lb+gZrpdaf4FyxIv
-+zZQacShK4ifwOAQGMRRqeaJ6A2CSsB7GwlV8FQ2HoI5J4jaU7LsuIBrNA+yycfWjcWPw/+YQrB0
-QmKfrnUM7UbHOe3W6TQ6OU+VNgMWRF9Dr5n86M3A0vceJWBmze2vod+BG0bIzGD0jKziJXQypV9Z
-wEuXeFuiOZb2amQJ7e2CVjcgJKClnUAlaCnn6t/Exl/jnVu9NROG1bIn0zQDjfimNjvDjg8eBmKY
-KXB8VucekZU9eUHuM1bZCImK8Du3iISJ2PzpAVhLvUhQyEgHROwo5zDEcRr6qzqLC2AcFayr9ulI
-uWAK0kTrQf2UnAH++UFN8yDKXJEO2Q/iXTz88WSOfSYrxwsUfAFObDhLSLwQC/ITJSiJqE57xYLr
-nDonqJ1NEglr4V5D2Q36KSnGRvo7IegrkSPeD50iRWim5RmTQAlYkSDwtpWwSoJz8J1LNw20oScD
-UWCJI17BCpnGzSKEFeKdSEaUCnFz3pqBJyY6GdsNcEizH+NVgiMA2y25pjnATsXl0S6xFg5BuewJ
-58H6yVOh9Ky30jTlfkzoVa1TKIQHnOKEXW4GS1TIEH5+faHyl/nLSs7t9SKt8vwWwqWOWSHkVKHz
-6LgCSlwrmTB7heg0emOQzJvqanlohbKuxuX8PIUwRmBQcwidnT48zmYps1/qYSkIYJbfAc/UUs3t
-KcRJ5RQWzrYeBGuucGW2SpSNT6lktnYQmauQYAsALZVQeeXNLyrECmBHpR4w1CVxtwy2e0pA+Eph
-IgpZ5lxYZI1S3gtG6DGPP8DtmeIYoVmk8hmGuxUTRTElfiIEgAoj9JhC0KSmBs4o5Mz0pEToss5i
-wR9e4AY47aqxu3Oih06kg6L/Dt9BOuBUqrhgH5UjpKoeCXfIo83MQReBnCjfTr/QsmFMlUEYisR8
-rwPykKvlWGhV5YVDndv6CSGVthiOygcrG5j2A06rmqg2XlnVwVSxkfaTng5yebUYabSbUBF9mnPK
-ZXo8uxHPrdINqpQMxHIgCTOYHSP0OCzr0qmzts8cXtUQEiN2ClfFXHt1Z6grk20Vlq52WVstmo6V
-D8Xv1fFaCEeA+hKRBscWk7x50t0nokIMYX7WIQiIJu+xBEIfoJfjXrPita7AdmyTA3GPH6gQlKmI
-BKEWiU/fl0oxDU+IwXUYVfAJPCPIqNx9EmB0eJXGKb2D11AYaigEeDhElNXRSNVeB6HH6759PLPN
-rKHbwMSz5g4Bn8xQL4BPehX2g3w/DJ0j94aF9Fw8X0bOj1fuHg5/vIJVCF00T1jm7m2aSzyPcIGM
-1/OWnsJnInr0q4vwBuOdwFJf+QUYdujrdUck9Zzc0dscWwnOANh7Zzt8BtLop3uAGGOf+HsouyAS
-61RkBKtP/M1M/uoZRZ0Lr3DbJECDAKBKMt+l8axQQd+9drJFerOpZoSWB4NAyiGUUfsombqnBnNH
-9Tg1p1JHwbfPsLehmTTAZ83AA40pI58N6dQJA20SfBLHx34JnVoBC14aFyfFf7Tcx6BDiR3NCvnG
-nLQnCYKDk4QYCo3Ke463yefLqICOnzERxfyThn3Jujw8gcl7A2uIxqiasJj/fGNktv7iG2Nd7su4
-p+77VI+OQLtTIOaXQ2TTE82iLVNVIWZe5Kzx1ebmaXsUMvm0wxE9yNaRtmrqdSJ2qOpab1I5KCXr
-vmZraa4twZSIKKQSfSe+NOCUJbGZtFfeHgeGgxACG0AjtjJjJgM3TvW7J6FFRuvYGWdgnUhg6CIb
-OEYjZskTQ61rUJlRma1JUTMQ0oyG7zFeSecPk0uNymca2o0iQZHUhmpcJCjGYxvfBM8aRMzMXSeK
-hLH+gBFAlC9ZEtYou4SeKDs+G8N1nD6tqYQoy6BHsRxFhkTt/iWc/8A8aV42bOI+EQM8m45KfYwn
-eCdW79M592FD47fMxh912fs8hbDv82rK0Cieq18Bgq0wBo+skgVFJGLwpuGPZ6GERelVskJ6ZzvN
-9oP2vbOlPVvR987fEUCdTYnpMJkEgb2pJ+uk9+VsQbMguUwm3CH90BuvAa5W6eqQeuo0JZcRbept
-o3rf2bgzN6/Yv8BT/ycRoMd4mwvqM30F2w19NgHp7C6x4R2RE4cn+DqJoBTIB0JDNy5lE4m9VFsk
-aBcF63y0TOe9LLC94tyv7OY2VZGWcct2kZrdMFOlfvHRwe21p9LNpmjs+Tf38ocbqU1VnQSi+jwB
-V1DVObYgwjMFIgbD1vm41mKlXaLFQ6C7R3wbI/SYQtn+IpfBYpBRlwTWrnIMG8unuSIx52EAErxm
-0UBUPHcyZps1lMxtZm2seb4z6HP+DI4rfprDgt/PgMg1cGZmzKCfSNfog6zQYwoBDME+S75tTwAJ
-rw5mShuntdxlezs8hZtjEhok6UmH2u1GOON2qoRoRN0+hKp5R7xN4DL+RnGUYypxbAlAeDfm5ReF
-pmk0msjG+tzhd8y7c+G0h/Jz3bJwmjjiPBIJypoHG81oExSIyfrW7b2R7bWRd6IS+Q==
-	]]>
-	<![CDATA[
-	qhwwteIYbOtktOqLgV/Wnb29iWR2j+l8HSJwHjt5SCJBD3pLfy49exlYpmAYPnUZWHgwLKEnWKKx
-HWcluNyeH7QOfLqNm14FHFyxsRXJVc/RdpZbBPjmJ+2jAiN8kqDeOiTxad7+lbsTLvEggSXNx5dv
-mAwTIbL3m30QROsMS76/iOLBOZiWpBlipqcRggbYPmE1cXu2VvKdjKaU2D8g+07bUWpTGRiQdPWc
-8pGazSckOp5M6GUP5aZGrymsy3j3bqwQBenDcGcymoPZ3hmxUmrhYlQ8RxtglF2B7e0qOoyKgWMJ
-U6aNLmVOBxgS5yUE3oQMEpRo14GBeGXmjkPpCh7lWeQOBEISv6W5iGTZcvL5XG5Ph4a+PHtEaZo/
-dwslSXORygqH5AfxzSijAbzhpNqy9Advqs0Vx43k5mkowukgKln3atMGMSGWecyeEtDRbLWZjNFJ
-F7ygvdRgs6lO7LoKXA/aJo2yuOFCLV8SH1b3KnwXEnpMZQRH6bXr7qbn8nqQUVlhNW1lAEsVAc/9
-ilHh5ArqcqcdkNqSHTMkra+RUGD5w7kc7h5542Y8yrXWB86bzF3SuJuC0lLwg3xEBhLOo+nRsLuG
-dZGLD+3ja5kt4/AxzTbIlInHhmqdcCzSUAMBzI7aQL65Sj/8v1c2v/q3v/j6bx//8Ou/fvnLly8e
-H//07ffuG/fNr379ePz85a9evvjy1959M/5oCHChtF+10V//adZJf/1PP/1Jefni5y9f/7erjvqP
-8h9/L70iSxhLo4SxhodDMAZO10uK0kY16ZrRK7KXnDRqT2nsoGG5t9DLcHBzd9q5XcEKzg9NXNv4
-41jfdeXrL6/XDet1/cvfjH//60t6+dufahcA9P8v/L132PtPAjfENzeLILyhMyXSolN19Vf/ngnx
-33z1m7//u//8y69emZX3LYB+Tc/ri+HNC198/vjD97/73//4xYv/sxen/6f/4f7x5y8/f/nFV+PH
-73778sUP33/87g///PvvP18vMd/tyx/G7//9jz98+we5L/62Xzkvsr8Z//Wvw5we02ZW3OM/jr/5
-8tf5m19+9086bH/+5+PCz/7Lx99++5vvP/7uf3z7/U9/8ts/fPyf3758/O673//w8Ydv/2389PLb
-77/9ww+///7blz/8y+//l1yRP7r/4Gc/++XfjVPk/wDCi5n8
-	]]>
-</i:pgf>
-</svg>
diff --git a/public/v2/index.html b/public/v2/index.html
deleted file mode 100644
index 3b17e6531467d789597247379ec972f03e0e9671..0000000000000000000000000000000000000000
--- a/public/v2/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><title>Fake your JSON-Schemas!</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Dosis"><link rel="shortcut icon" type="image/icon" href="img/favicon.ico"><link rel="stylesheet" href="css/app.css"><script>TIME = new Date()</script></head><body><div class="Toolbar p f"><a class="tdn tac github-ribbon" href="//github.com/json-schema-faker/json-schema-faker">Fork me on GitHub</a><h1 class="jsf-logo"><a class="dib" href="/">JSON Schema Faker</a></h1><p><b>JSON Schema Faker</b> combines JSON Schema standard with fake data generators, allowing users to generate fake data that conform to the schema.</p><iframe class="mt" src="//ghbtns.com/github-btn.html?user=json-schema-faker&amp;repo=json-schema-faker&amp;type=star&amp;count=true" frameborder="0" scrolling="0" width="120" height="20"></iframe></div><div class="sm-flx flx-m p"><div class="flx-a flx-lt"><div id="app"></div></div><div class="flx-n flx sm-no-flx jsf-about"><div class="flx-a"><h4>Reference</h4><ul class="lr"><li><a href="http://json-schema.org">JSON-Schema.org</a></li></ul><h4>Examples</h4><ul class="lr"><li><a href="#gist/da0af4611cb5622b54aff57283560da3">boolean</a></li><li><a href="#gist/4199ca90fb5cd05337824b0695d17b5e">integer</a></li><li><a href="#gist/d9e27543d84157c1672f87e93ac250cc">inner-references</a></li><li><a href="#gist/5f81f118fbd4eac01ccacf23a061a8b9">external-references</a></li><li><a href="#gist/cbb4871d1d2f44760ddafdaa056e1926">enums</a></li><li><a href="#gist/1f1196844bead96e021ffbd597edcffa">fixed values</a></li><li><a href="#gist/f4ad1818735f0d0babdc1f12b92013f1">n-times repeated</a></li><li><a href="#gist/1902737e7bef9573af02a3fc49761c13">faker-properties</a></li><li><a href="#gist/1a7db173362b127a826a5c2fa7de7561">faker.fake()</a></li><li><a href="#gist/5dd364aad2d48729efff686c5f7c44b2">chance-guid</a></li><li><a href="#gist/682f97a2e28e230b51810c55b92f4cdc">chance-name</a></li><li><a href="#gist/426c2d177243cd2c52594f92c1a7862e">chance-properties</a></li><li><a href="#gist/d3e75b22ad33e4440df19e0cc060c9f3/0.5.0-rc3">remote-schemas (^0.5.x)</a></li></ul></div><div class="flx-a"><h4>Community</h4><ul class="lr"><li><a href="//github.com/json-schema-faker/json-schema-faker/">GitHub</a></li><li><a href="//travis-ci.org/json-schema-faker/json-schema-faker">CI</a></li><li><a href="//github.com/json-schema-faker/json-schema-faker/issues/new">Contribution</a></li><li><a href="//github.com/json-schema-faker/angular-jsf">AngularJS module</a></li><li><a href="//github.com/json-schema-faker/grunt-jsonschema-faker">Grunt plugin</a></li><li><a href="//github.com/json-schema-faker/json-schema-server">JSF Server</a></li></ul></div></div></div><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-ga('create', 'UA-62699942-1', 'auto');
-ga('send', 'pageview');
-</script><script src="vendor/ractive/ractive.runtime.min.js"></script><script src="vendor/ace-builds/src-min/ace.js"></script><script src="vendor/ace-builds/src-min/mode-json.js"></script><script src="vendor/ace-builds/src-min/worker-json.js"></script><script src="vendor/ace-builds/src-min/theme-github.js"></script><script src="js/app.js"></script></body></html>
\ No newline at end of file
diff --git a/public/v2/js/app.js b/public/v2/js/app.js
deleted file mode 100644
index 35269507f26b0f4ff30effb0063fa7bdec5d6f55..0000000000000000000000000000000000000000
--- a/public/v2/js/app.js
+++ /dev/null
@@ -1,1066 +0,0 @@
-(function () {
-var tpl = function () {
-      return { v:4,
-  t:[ { t:7,
-      e:"div",
-      m:[ { n:"class",
-          f:"Dropdown f",
-          t:13 } ],
-      f:[ { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"Dropdown--arrow",
-              t:13 } ] },
-        { t:7,
-          e:"select",
-          m:[ { n:"class",
-              f:"a",
-              t:13 },
-            { n:"value",
-              f:[ { t:2,
-                  r:"~/selectedValue" } ],
-              t:13 },
-            { n:"tabindex",
-              f:"-1",
-              t:13 } ],
-          f:[ { t:4,
-              f:[ { t:7,
-                  e:"option",
-                  f:[ { t:2,
-                      r:"." } ] } ],
-              n:52,
-              r:"~/value" } ] },
-        { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"Dropdown--value nosl",
-              t:13 } ],
-          f:[ { t:7,
-              e:"input",
-              m:[ { n:"type",
-                  f:"text",
-                  t:13 },
-                { n:"input",
-                  f:"inputValue",
-                  t:70 },
-                { n:"keydown",
-                  f:"submitValue",
-                  t:70 },
-                { n:"placeholder",
-                  f:[ { t:2,
-                      r:"~/label" } ],
-                  t:13 } ] } ] },
-        { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:[ "Dropdown--actions nosl ",
-                { t:2,
-                  x:{ r:[ "~/shouldUpdate" ],
-                    s:"_0?\"-show\":\"\"" } } ],
-              t:13 } ],
-          f:[ { t:4,
-              f:[ { t:7,
-                  e:"a",
-                  m:[ { n:"class",
-                      f:"tdn",
-                      t:13 },
-                    { n:"href",
-                      f:"#",
-                      t:13 },
-                    { n:"click",
-                      f:"addValue",
-                      t:70 } ],
-                  f:[ "Add" ] },
-                { t:2,
-                  x:{ r:[ "~/hasChanged" ],
-                    s:"_0?\" or \":\"\"" } } ],
-              n:50,
-              r:"~/isNew" },
-            " ",
-            { t:4,
-              f:[ { t:7,
-                  e:"a",
-                  m:[ { n:"class",
-                      f:"tdn",
-                      t:13 },
-                    { n:"href",
-                      f:"#",
-                      t:13 },
-                    { n:"click",
-                      f:"updateValue",
-                      t:70 } ],
-                  f:[ "Update" ] } ],
-              n:50,
-              r:"~/hasChanged" },
-            " ",
-            { t:4,
-              f:[ { t:7,
-                  e:"a",
-                  m:[ { n:"class",
-                      f:"tdn",
-                      t:13 },
-                    { n:"href",
-                      f:"#",
-                      t:13 },
-                    { n:"click",
-                      f:"removeValue",
-                      t:70 } ],
-                  f:[ "Delete" ] } ],
-              n:50,
-              r:"~/canBeDeleted" } ] } ] } ],
-  e:{ "_0?\"-show\":\"\"":function (_0){return(_0?"-show":"");},
-    "_0?\" or \":\"\"":function (_0){return(_0?" or ":"");} } };
-    };
-
-
-
-var EditableDropdown = Ractive.extend({
-  isolated: true,
-  template: tpl,
-  data: function data() {
-    return {
-      value: [],
-      label: '',
-      isNew: false,
-      hasChanged: false,
-      shouldUpdate: false,
-      selectedValue: null,
-    };
-  },
-  onrender: function onrender() {
-    var this$1 = this;
-
-    var INPUT = this.find('input');
-
-    var _sync = function () {
-      this$1.set('value', this$1.get('value'));
-      this$1.fire('sync', { setValues: this$1.get('value') });
-    };
-
-    var _reset = function () {
-      this$1.set('shouldUpdate', true);
-      this$1.set('canBeDeleted', true);
-      this$1.set('hasChanged', false);
-      this$1.set('isNew', false);
-
-      INPUT.focus();
-    };
-
-    var _update = function (value) {
-      if (value) {
-        this$1.set('selectedValue', value);
-      }
-    };
-
-    this.observe('value', function (newValue) {
-      this$1.set('canBeDeleted', newValue.length > 0);
-      this$1.set('shouldUpdate', newValue.length > 0);
-
-      if (newValue.length && !INPUT.value) {
-        INPUT.value = newValue[newValue.length - 1];
-        INPUT.focus();
-      }
-
-      if (!newValue.length) {
-        INPUT.value = '';
-      }
-    });
-
-    this.on('addValue', function () {
-      if (INPUT.value && this$1.get('value').indexOf(INPUT.value) === -1) {
-        this$1.fire('sync', { addValue: INPUT.value });
-        this$1.set('selectedValue', INPUT.value);
-        this$1.push('value', INPUT.value);
-
-        _reset();
-        _sync();
-      }
-
-      return false;
-    });
-
-    this.on('updateValue', function () {
-      var _actual = this$1.get('selectedValue');
-
-      this$1.get('value').forEach(function (value, i) {
-        if (value === _actual) {
-          this$1.fire('sync', { updateValue: INPUT.value, oldValue: _actual });
-          this$1.set(("value." + i), INPUT.value);
-        }
-      });
-
-      _reset();
-      _sync();
-
-      return false;
-    });
-
-    this.on('inputValue', function (e) {
-      var _value = e.node.value;
-
-      if (!_value) {
-        this$1.set('shouldUpdate', false);
-        return;
-      }
-
-      var _new = this$1.get('value').indexOf(_value) === -1;
-      var _actual = this$1.get('selectedValue');
-      var _changed = _value !== _actual;
-
-      this$1.set('isNew', _new);
-      this$1.set('hasChanged', _actual !== null && _changed);
-      this$1.set('shouldUpdate', _new || _changed === false);
-      this$1.set('canBeDeleted', !_new && _actual !== null);
-    });
-
-    this.observe('selectedValue', function (newValue) {
-      if (newValue) {
-        this$1.fire('sync', { selectedValue: newValue });
-        INPUT.value = newValue;
-        INPUT.focus();
-      } else {
-        INPUT.value = '';
-      }
-    });
-
-    this.on('removeValue', function () {
-      var val = this$1.get('value');
-      var key = val.indexOf(this$1.get('selectedValue'));
-
-      this$1.splice('value', key, 1)
-        .then(function (ref) {
-          var old = ref[0];
-
-          return this$1.fire('sync', { removeValue: old });
-      });
-
-      _reset();
-      _sync();
-
-      if (!val.length) {
-        this$1.set('shouldUpdate', false);
-        this$1.set('selectedValue', null);
-
-        INPUT.value = '';
-
-        return false;
-      }
-
-      if (key > 0) {
-        _update(val[key - 1]);
-      } else {
-        _update(val[0]);
-      }
-
-      return false;
-    });
-
-    this.on('submitValue', function (e) {
-      switch (e.original.keyCode) {
-        case 13:
-          e.original.preventDefault();
-          this$1.fire('addValue');
-        break;
-
-        case 38:
-          if (!this$1.get('hasChanged')) {
-            var val = this$1.get('value');
-            var dec = val.indexOf(this$1.get('selectedValue'));
-
-            if (dec > 0) {
-              _update(val[dec - 1]);
-            } else {
-              _update(val[val.length - 1]);
-            }
-
-            return false;
-          }
-        break;
-
-        case 40:
-          if (!this$1.get('hasChanged')) {
-            var val$1 = this$1.get('value');
-            var inc = val$1.indexOf(this$1.get('selectedValue'));
-
-            if (inc < (val$1.length - 1)) {
-              _update(val$1[inc + 1]);
-            } else {
-              _update(val$1[0]);
-            }
-
-            return false;
-          }
-        break;
-      }
-    });
-  },
-});
-
-var tpl$1 = function () {
-      return { v:4,
-  t:[ { t:7,
-      e:"div",
-      m:[ { n:"class",
-          f:"Dropdown f",
-          t:13 } ],
-      f:[ { t:7,
-          e:"select",
-          m:[ { n:"class",
-              f:"a",
-              t:13 },
-            { n:"value",
-              f:[ { t:2,
-                  r:"~/selectedValue" } ],
-              t:13 } ],
-          f:[ { t:4,
-              f:[ { t:7,
-                  e:"option",
-                  f:[ { t:2,
-                      r:"." } ] } ],
-              n:52,
-              r:"~/value" } ] },
-        { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"Dropdown--arrow",
-              t:13 } ] },
-        { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"Dropdown--value nosl",
-              t:13 } ],
-          f:[ { t:7,
-              e:"span",
-              m:[ { n:"class",
-                  f:"db tr",
-                  t:13 } ],
-              f:[ { t:2,
-                  x:{ r:[ "~/selectedValue",
-                      "~/label" ],
-                    s:"_0||_1" } } ] } ] } ] } ],
-  e:{ "_0||_1":function (_0,_1){return(_0||_1);} } };
-    };
-
-
-
-var SimpleDropdown = Ractive.extend({
-  isolated: true,
-  template: tpl$1,
-  onrender: function onrender() {
-    var this$1 = this;
-
-    this.observe('selectedValue', function (newValue) {
-      this$1.fire('sync', newValue);
-    });
-  },
-  setValue: function setValue(selectedValue) {
-    this.set('selectedValue', selectedValue);
-  }
-});
-
-var tpl$2 = function () {
-      return { v:4,
-  t:[ { t:7,
-      e:"div",
-      m:[ { n:"class",
-          f:"AceEditor f b",
-          t:13 } ] } ] };
-    };
-
-
-
-var AceEditor = Ractive.extend({
-  isolated: true,
-  template: tpl$2,
-  onrender: function onrender() {
-    var this$1 = this;
-
-    var editor = ace.edit(this.find('.AceEditor'));
-
-    editor.setTheme('ace/theme/github');
-    editor.getSession().setMode('ace/mode/json');
-    editor.getSession().setTabSize(2);
-    editor.setShowPrintMargin(false);
-    editor.$blockScrolling = Infinity;
-
-    this.observe('value', function (newValue) {
-      editor.setValue(newValue || '');
-      editor.getSession().getSelection().clearSelection();
-    });
-
-    editor.getSession().on('change', function () {
-      this$1.fire('sync', editor.getValue());
-    });
-  },
-});
-
-var tpl$3 = function () {
-      return { v:4,
-  t:[ { t:7,
-      e:"div",
-      m:[ { n:"class",
-          f:"md-flx flx-m",
-          t:13 } ],
-      f:[ { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"flx-a md-cl-6",
-              t:13 } ],
-          f:[ { t:7,
-              e:"div",
-              m:[ { n:"class",
-                  f:"flx",
-                  t:13 } ],
-              f:[ { t:7,
-                  e:"div",
-                  m:[ { n:"class",
-                      f:"flx-a",
-                      t:13 } ],
-                  f:[ { t:7,
-                      e:"EditableDropdown",
-                      m:[ { n:"sync",
-                          f:"setPayload",
-                          t:70 },
-                        { n:"value",
-                          f:[ { t:2,
-                              r:"~/savedSchemas" } ],
-                          t:13 },
-                        { n:"label",
-                          f:"Schema identifier, e.g. User",
-                          t:13 },
-                        { n:"tabindex",
-                          f:"1",
-                          t:13 } ] } ] },
-                { t:4,
-                  f:[ { t:7,
-                      e:"div",
-                      m:[ { n:"class",
-                          f:"flx-n ml",
-                          t:13 } ],
-                      f:[ { t:7,
-                          e:"button",
-                          m:[ { n:"class",
-                              f:"a bu db nosl",
-                              t:13 },
-                            { n:"click",
-                              f:"synchronizeGist",
-                              t:70 } ],
-                          f:[ "Save as gist" ] } ] } ],
-                  n:50,
-                  r:"~/hasValues" } ] },
-            { t:4,
-              f:[ { t:7,
-                  e:"div",
-                  m:[ { n:"class",
-                      f:"mt",
-                      t:13 } ],
-                  f:[ { t:7,
-                      e:"AceEditor",
-                      m:[ { n:"value",
-                          f:[ { t:2,
-                              r:"inputJSON" } ],
-                          t:13 },
-                        { n:"sync",
-                          f:"setContent",
-                          t:70 },
-                        { n:"tabindex",
-                          f:"2",
-                          t:13 } ] } ] } ],
-              n:50,
-              r:"~/hasValues" } ] },
-        { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"flx-a md-cl-6",
-              t:13 } ],
-          f:[ { t:7,
-              e:"div",
-              m:[ { n:"class",
-                  f:"sm-flx flx-m",
-                  t:13 } ],
-              f:[ { t:7,
-                  e:"div",
-                  m:[ { n:"class",
-                      f:"flx-a flx-lt",
-                      t:13 } ],
-                  f:[ { t:7,
-                      e:"SimpleDropdown",
-                      m:[ { n:"value",
-                          f:[ { t:2,
-                              r:"~/availableAssets" } ],
-                          t:13 },
-                        { n:"sync",
-                          f:"loadVersion",
-                          t:70 },
-                        { n:"label",
-                          f:"Loading files...",
-                          t:13 },
-                        { n:"tabindex",
-                          f:"6",
-                          t:13 } ] } ] },
-                { t:7,
-                  e:"div",
-                  m:[ { n:"class",
-                      f:"flx-a flx-lt",
-                      t:13 } ],
-                  f:[ { t:7,
-                      e:"SimpleDropdown",
-                      m:[ { n:"value",
-                          f:[ { t:2,
-                              r:"~/availableVersions" } ],
-                          t:13 },
-                        { n:"sync",
-                          f:"setVersion",
-                          t:70 },
-                        { n:"label",
-                          f:"Loading versions...",
-                          t:13 },
-                        { n:"tabindex",
-                          f:"7",
-                          t:13 } ] } ] },
-                { t:4,
-                  f:[ { t:7,
-                      e:"div",
-                      m:[ { n:"class",
-                          f:"flx-n",
-                          t:13 } ],
-                      f:[ { t:7,
-                          e:"button",
-                          m:[ { n:"class",
-                              f:"a f bu db cl-12 nosl",
-                              t:13 },
-                            { n:"click",
-                              f:"generateOutput",
-                              t:70 },
-                            { n:"tabindex",
-                              f:"4",
-                              t:13 } ],
-                          f:[ "Generate example" ] } ] } ],
-                  n:50,
-                  r:"~/hasValues" } ] },
-            { t:4,
-              f:[ { t:7,
-                  e:"div",
-                  m:[ { n:"class",
-                      f:"mt",
-                      t:13 } ],
-                  f:[ { t:7,
-                      e:"AceEditor",
-                      m:[ { n:"value",
-                          f:[ { t:2,
-                              r:"outputJSON" } ],
-                          t:13 },
-                        { n:"tabindex",
-                          f:"5",
-                          t:13 } ] } ] } ],
-              n:50,
-              r:"~/hasValues" } ] } ] },
-    { t:7,
-      e:"div",
-      m:[ { n:"class",
-          f:[ "Toast ",
-            { t:4,
-              f:[ "-show" ],
-              r:"showMessage" },
-            { t:2,
-              r:"classes" } ],
-          t:13 } ],
-      f:[ { t:7,
-          e:"div",
-          m:[ { n:"class",
-              f:"sm-flx flx-m flx-c",
-              t:13 } ],
-          f:[ { t:7,
-              e:"div",
-              m:[ { n:"class",
-                  f:"flx-a",
-                  t:13 } ],
-              f:[ { t:2,
-                  r:"logMessage" } ] },
-            { t:4,
-              f:[ { t:7,
-                  e:"div",
-                  m:[ { n:"class",
-                      f:"flx-n",
-                      t:13 } ],
-                  f:[ { t:7,
-                      e:"button",
-                      m:[ { n:"class",
-                          f:"a f bu db cl-12 nosl",
-                          t:13 },
-                        { n:"click",
-                          f:"generateOutput",
-                          t:70 },
-                        { n:"tabindex",
-                          f:"6",
-                          t:13 } ],
-                      f:[ "Retry" ] } ] } ],
-              n:50,
-              r:"~/hasValues" } ] } ] } ] };
-    };
-
-var baseURL = '//api.github.com';
-
-
-
-function debounce(ms, fn, ctx) {
-  var t;
-  return function () {
-    var args = [], len = arguments.length;
-    while ( len-- ) args[ len ] = arguments[ len ];
-
-    clearTimeout(t);
-    t = setTimeout(function () {
-      fn.apply(ctx, args);
-    }, ms);
-  };
-}
-
-function throttle(ms, fn, ctx) {
-  ms = ms || 250;
-
-  var last;
-  var t;
-
-  return function () {
-    var args = [], len = arguments.length;
-    while ( len-- ) args[ len ] = arguments[ len ];
-
-    var now = +new Date();
-
-    if (last && now < last + ms) {
-      clearTimeout(t);
-      t = setTimeout(function () {
-        last = now;
-        fn.apply(ctx, args);
-      }, ms);
-    } else {
-      last = now;
-      fn.apply(ctx, args);
-    }
-  };
-}
-
-function getUrl(path) {
-  var AUTH_ID="9685733337524132a430", AUTH_SECRET="bb8e95e2d20291d29eda90f8a35e0572092b37f9";
-
-  return (baseURL + "/" + path + "?client_id=" + AUTH_ID + "&client_secret=" + AUTH_SECRET);
-}
-
-var GISTS = {
-  loadFrom: function loadFrom(uri) {
-    var tmp = uri.replace('#', '').split('/');
-
-    if (tmp.length === 1) {
-      // old style URI-based schema - supported for backward compatibility
-      // example: http://json-schema-faker.js.org/#%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
-      return Promise.resolve({
-        files: {
-          // legacy and ugly
-          'schema.json': {
-            content: decodeURIComponent(tmp[0]),
-          },
-        }
-      });
-    }
-
-    var type = tmp[0];
-    var hash = tmp[1];
-
-    switch (type) {
-      case 'gist':
-        // example: http://json-schema-faker.js.org/#gist/c347f2f6083fe81a1fe43d17b83125d7
-        return fetch(getUrl(("gists/" + hash)))
-          .then(function (res) { return res.json(); });
-
-      case 'uri':
-        // example: http://json-schema-faker.js.org/#uri/%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
-        return Promise.resolve({
-          files: {
-            Example: {
-              content: decodeURIComponent(hash),
-            },
-          },
-        });
-
-      default:
-        throw new Error('Unknown storage type');
-    }
-  },
-  save: function save(schemas) {
-    var _files = {};
-
-    Object.keys(schemas).forEach(function (key) {
-      _files[key] = { content: schemas[key].value };
-    });
-
-    return fetch(getUrl('gists'), {
-      method: 'POST',
-      body: JSON.stringify({
-        description: 'JSON Schema created by http://json-schema-faker.js.org',
-        files: _files,
-      }),
-    })
-    .then(function (res) { return res.json(); });
-  }
-};
-
-
-
-var SCHEMAS = {};
-var CURRENT = {};
-
-var _script;
-
-var app = new Ractive({
-  el: '#app',
-  template: tpl$3,
-  isolated: true,
-  components: {
-    EditableDropdown: EditableDropdown,
-    SimpleDropdown: SimpleDropdown,
-    AceEditor: AceEditor,
-  },
-  data: function data() {
-    return {
-      libInfo: null,
-      hasValues: false,
-      savedSchemas: [],
-      availableAssets: [],
-      availableVersions: [],
-      availableActions: [
-        { type: 'gist', label: 'Save as Gist' },
-        { type: 'uri', label: 'Save as URI' } ],
-    };
-  },
-  onrender: function onrender() {
-    var this$1 = this;
-
-    var _selected;
-    var _sync;
-    var _t;
-
-    var blank = {};
-
-    var _gen = function () {
-      this$1.set('outputJSON', '');
-
-      var s = new Date();
-
-      var refs = [];
-
-      Object.keys(SCHEMAS).forEach(function (schema) {
-        if (schema !== _selected) {
-          refs.push(JSON.parse(SCHEMAS[schema].value));
-        }
-      });
-
-      if (!SCHEMAS[_selected]) {
-        return;
-      }
-
-      var schema;
-
-      try {
-        schema = JSON.parse(SCHEMAS[_selected].value);
-      } catch (e) {
-        this$1.fire('logStatus', e.message || e.toString(), ['-error']);
-        return;
-      }
-
-      this$1.el.classList.add('-dis');
-
-      var syncFake = function () { return new Promise(function (resolve, reject) {
-          try { resolve((jsf.sync || jsf)(schema, refs)); }
-          catch (e) { reject(e); }
-        }); };
-
-      var asyncFake = function () { return (jsf.resolve || jsf)(schema, refs); };
-
-      // try the appropriate version
-      (parseFloat(jsf.version) >= 0.5 ? asyncFake : syncFake)()
-        .then(function (sample) {
-          this$1.el.classList.remove('-dis');
-          this$1.set('outputJSON', JSON.stringify(sample, null, 2));
-          this$1.fire('logStatus', ("Example generated in " + ((new Date() - s) / 1000) + "s"), ['-success']);
-        })
-        .catch(function (e) {
-          this$1.el.classList.remove('-dis');
-          this$1.fire('logStatus', (e.message || e.toString()).substr(0, 200), ['-error']);
-        });
-    };
-
-    var _save = debounce(500, function () {
-      if (_sync) {
-        var s = new Date();
-
-        window.localStorage._SCHEMAS = JSON.stringify(SCHEMAS);
-
-        this$1.fire('logStatus', ("Session saved in " + ((new Date() - s) / 1000) + "ms"), ['-success']);
-      }
-    });
-
-    var _select = function () {
-      var _keys = Object.keys(SCHEMAS);
-
-      this$1.set('savedSchemas', _keys);
-      this$1.set('hasValues', _keys.length > 0);
-
-      if (_keys.length) {
-        _selected = _keys[0];
-
-        this$1.set('inputJSON', SCHEMAS[_keys[0]].value);
-      }
-    };
-
-    var _loadStorage = function () {
-      if (_sync && window.localStorage._SCHEMAS) {
-        var _saved = JSON.parse(window.localStorage._SCHEMAS);
-
-        Object.keys(_saved).forEach(function (key) {
-          SCHEMAS[key] = _saved[key];
-        });
-
-        _select();
-      }
-    };
-
-    var _onHashChange = function () {
-      this$1.el.classList.add('-dis');
-
-      this$1.set('inputJSON', '');
-      this$1.set('savedSchemas', []);
-      this$1.set('hasValues', false);
-
-      Object.keys(SCHEMAS).forEach(function (key) {
-        delete SCHEMAS[key];
-      });
-
-      if (location.hash) {
-        _sync = false;
-
-        var ref = location.hash.split('/');
-        var base = ref[0];
-        var hash = ref[1];
-        var v = ref[2];
-
-        if (v && CURRENT.version !== v) {
-          CURRENT.initialVersion = v;
-          this$1.findAllComponents('SimpleDropdown')[1].setValue(v);
-          this$1.fire('setVersion', v);
-        }
-
-        GISTS.loadFrom(location.hash).then(function (result) {
-          Object.keys(result.files).forEach(function (key) {
-            SCHEMAS[key] = { value: result.files[key].content };
-          });
-
-          _select();
-
-          this$1.el.classList.remove('-dis');
-        });
-      } else {
-        _sync = true;
-
-        _loadStorage();
-
-        this$1.el.classList.remove('-dis');
-
-        if (!Object.keys(SCHEMAS).length) {
-          window.location.hash = 'gist/eb11f16c9edccf040c028dc8bd2b1756';
-        }
-      }
-    };
-
-    _onHashChange();
-
-    window.addEventListener('hashchange', _onHashChange);
-
-    fetch('//api.cdnjs.com/libraries/json-schema-faker')
-      .then(function (res) { return res.json(); })
-      .then(function (data) {
-        CURRENT.name = data.name;
-        CURRENT.files = data.assets;
-
-        this$1.set('libInfo', CURRENT.info);
-        this$1.set('availableVersions', CURRENT.files.map(function (a) { return a.version; }));
-
-        CURRENT.version = CURRENT.files.filter(function (a) { return !/beta|dev|rc/.test(a.version); })[0].version;
-        CURRENT.version = CURRENT.initialVersion || CURRENT.version;
-
-        delete CURRENT.initialVersion;
-
-        this$1.findAllComponents('SimpleDropdown')[1].setValue(CURRENT.version);
-        this$1.fire('setVersion', CURRENT.version);
-      });
-
-    function _load() {
-      clearTimeout(_load.t);
-      _load.t = setTimeout(function () {
-        if (CURRENT.version && CURRENT.file) {
-          app.el.classList.add('-dis');
-
-          var s = new Date();
-
-          var _err = function () {
-            alert(("Wrong or missing version " + (CURRENT.version) + "!"));
-          };
-
-          var _cb = function () {
-            window.jsf = window.JSONSchemaFaker || window.jsf;
-            window.jsf._loaded = true;
-            _gen();
-
-            app.fire('logStatus', ("Loaded '" + (CURRENT.file) + "@" + (CURRENT.version) + "' in " + ((new Date() - s) / 1000) + "ms"), ['-success']);
-          };
-
-          delete window.JSONSchemaFaker;
-          window.jsf = function () {
-            _err();
-          };
-
-          if (_script) {
-            _script.parentNode.removeChild(_script);
-          }
-
-          _script = document.createElement('script');
-          _script.addEventListener('load', _cb);
-          _script.addEventListener('error', _err);
-          _script.src = "//cdnjs.cloudflare.com/ajax/libs/" + (CURRENT.name) + "/" + (CURRENT.version) + "/" + (CURRENT.file);
-
-          document.getElementsByTagName('head')[0].appendChild(_script);
-        }
-      }, 100);
-    }
-
-    this.on('setVersion', function (v) {
-      this$1.set('availableAssets', CURRENT.files
-        .filter(function (a) { return a.version === v; })[0].files
-        .filter(function (f) { return f.indexOf('min') === -1; }));
-
-      CURRENT.version = v;
-
-      _load();
-    });
-
-    this.on('loadVersion', function (f) {
-      CURRENT.file = f;
-
-      _load();
-    });
-
-    this.on('setPayload', function (e) {
-      if (e.addValue) {
-        SCHEMAS[e.addValue] = {
-          value: [
-            '{',
-            ("  \"id\": \"" + (e.addValue) + "\""),
-            '}' ].join('\n')
-        };
-
-        _save();
-
-        this$1.set('outputJSON', '');
-      }
-
-      if (e.setValues) {
-        this$1.set('hasValues', e.setValues.length > 0);
-
-        if (!e.setValues.length) {
-          window.history.pushState(null, document.title, '');
-        }
-      }
-
-      if (e.selectedValue) {
-        _selected = e.selectedValue;
-
-        this$1.set('outputJSON', '');
-        this$1.set('inputJSON', SCHEMAS[_selected].value);
-
-        if (window.jsf && window.jsf._loaded) {
-          _gen();
-        }
-      }
-
-      if (e.updateValue) {
-        SCHEMAS[e.updateValue] = SCHEMAS[e.oldValue];
-        SCHEMAS[e.updateValue].value = SCHEMAS[e.updateValue].value
-          .replace(/"id"\s*:\s*"(\w+)"/g, function (_, id) {
-            if (id === e.oldValue) {
-              return ("\"id\": \"" + (e.updateValue) + "\"");
-            }
-
-            return _;
-          });
-
-        this$1.set('inputJSON', SCHEMAS[e.updateValue].value);
-
-        delete SCHEMAS[e.oldValue];
-
-        _save();
-      }
-
-      if (e.removeValue) {
-        delete SCHEMAS[e.removeValue];
-
-        _save();
-      }
-    });
-
-    this.on('setContent', function (value) {
-      if (_selected && value) {
-        if (value !== SCHEMAS[_selected].value) {
-          SCHEMAS[_selected].value = value;
-          _save();
-        }
-      }
-    });
-
-    this.on('generateOutput', throttle(500, function (e) {
-      e.node.disabled = true;
-
-      _gen();
-
-      e.node.disabled = false;
-
-      return false;
-    }));
-
-    this.on('synchronizeGist', function (e) {
-      var s = new Date();
-
-      e.node.disabled = true;
-
-      app.el.classList.add('-dis');
-
-      GISTS.save(SCHEMAS).then(function (result) {
-        e.node.disabled = false;
-
-        app.el.classList.remove('-dis');
-
-        window.history.pushState(null, document.title, ("#gist/" + (result.id) + "/" + (CURRENT.version)));
-
-        this$1.fire('logStatus', ("Gist saved in " + ((new Date() - s) / 1000) + "s"), ['-success']);
-      });
-
-      return false;
-    });
-
-    var _x;
-
-    this.on('logStatus', function (message, classList) {
-      this$1.set('classes', (" " + (classList.join(' '))));
-      this$1.set('logMessage', message);
-      this$1.set('showMessage', true);
-
-      clearTimeout(_x);
-      _x = setTimeout(function () {
-        this$1.set('showMessage', false);
-      }, 5000);
-    });
-
-    this.fire('logStatus', ("Application loaded in " + ((new Date() - TIME) / 1000) + "ms"), ['-success']);
-  },
-});
-
-}());
diff --git a/public/v2/vendor/ace-builds/src-min/ace.js b/public/v2/vendor/ace-builds/src-min/ace.js
deleted file mode 100644
index b4b7a55cb56dd034d02852877aa749234191b733..0000000000000000000000000000000000000000
--- a/public/v2/vendor/ace-builds/src-min/ace.js
+++ /dev/null
@@ -1,14 +0,0 @@
-(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE="",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim")}),define("ace/lib/dom",["require","exports","module"],function(e,t,n){"use strict";var r="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName("style"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,r,i){i=i||document;if(r&&t.hasCssString(r,i))return null;var s;r&&(n+="\n/*# sourceURL=ace/css/"+r+" */"),i.createStyleSheet?(s=i.createStyleSheet(),s.cssText=n,r&&(s.owningElement.id=r)):(s=t.createElement("style"),s.appendChild(i.createTextNode(n)),r&&(s.id=r),t.getDocumentHead(i).appendChild(s))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement("link");r.rel="stylesheet",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u};if(typeof document=="undefined"){t.importCssString=function(){};return}window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(e,t,n){"use strict";e("./fixoldbrowsers");var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((i.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0,t.isChromeOS=i.indexOf(" CrOS ")>=0}),define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addTouchMoveListener=function(e,n){if("ontouchmove"in e){var r,i;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];r=t.clientX,i=t.clientY}),t.addListener(e,"touchmove",function(e){var t=1,s=e.changedTouches[0];e.wheelX=-(s.clientX-r)/t,e.wheelY=-(s.clientY-i)/t,r=s.clientX,i=s.clientY,n(e)})}},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=function(e,t){function b(e){if(h)return;h=!0;if(k)t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}h=!1}function w(){if(h)return;n.value=f,i.isWebKit&&y.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){p&&(n.style.cssText=p,p=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},i.isOldIE?200:0)}var n=s.createElement("textarea");n.className="ace_text-input",i.isTouchPad&&n.setAttribute("x-palm-disable-auto-cap",!0),n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",i.isOldIE&&(n.style.top="-1000px"),e.insertBefore(n,e.firstChild);var f="",l=!1,c=!1,h=!1,p="",d=!0;try{var v=document.activeElement===n}catch(m){}r.addListener(n,"blur",function(e){t.onBlur(e),v=!1}),r.addListener(n,"focus",function(e){v=!0,t.onFocus(e),b()}),this.focus=function(){if(p)return n.focus();var e=n.style.top;n.style.position="fixed",n.style.top="0px",n.focus(),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return v};var g=o.delayedCall(function(){v&&b(d)}),y=o.delayedCall(function(){h||(n.value=f,v&&b())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=d&&(d=!d,g.schedule())}),w(),v&&t.onFocus();var E=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length};!n.setSelectionRange&&n.createTextRange&&(n.setSelectionRange=function(e,t){var n=this.createTextRange();n.collapse(!0),n.moveStart("character",e),n.moveEnd("character",t),n.select()},E=function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return!t||t.parentElement()!=e?!1:t.text==e.value});if(i.isOldIE){var S=!1,x=function(e){if(S)return;var t=n.value;if(h||!t||t==f)return;if(e&&t==f[0])return T.schedule();A(t),S=!0,w(),S=!1},T=o.delayedCall(x);r.addListener(n,"propertychange",x);var N={13:1,27:1};r.addListener(n,"keyup",function(e){h&&(!n.value||N[e.keyCode])&&setTimeout(F,0);if((n.value.charCodeAt(0)||0)<129)return T.call();h?j():B()}),r.addListener(n,"keydown",function(e){T.schedule(50)})}var C=function(e){l?l=!1:E(n)?(t.selectAll(),b()):k&&b(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){k&&(e=k(e),k=null),c?(b(),e&&t.onPaste(e),c=!1):e==f.charAt(0)?L?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),L&&(L=!1)},O=function(e){if(h)return;var t=n.value;A(t),w()},M=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||u)return;var i=a||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return M(e,t,!0)}},_=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(l=!0,n.value=s,n.select(),setTimeout(function(){l=!1,w(),b(),i?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var s=M(e);typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(b),r.preventDefault(e)):(n.value="",c=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",C),r.addListener(n,"input",O),r.addListener(n,"cut",D),r.addListener(n,"copy",P),r.addListener(n,"paste",H),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:P(e);break;case 86:H(e);break;case 88:D(e)}});var B=function(e){if(h||!t.onCompositionStart||t.$readOnly)return;h={},h.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(j,0),t.on("mousedown",F),h.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!h||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\x01/g,"");if(h.lastValue===e)return;t.onCompositionUpdate(e),h.lastValue&&t.undo(),h.canUndo&&(h.lastValue=e);if(h.lastValue){var r=t.selection.getRange();t.insert(h.lastValue),t.session.markUndoGroup(),h.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=h;h=!1;var s=setTimeout(function(){s=null;var e=n.value.replace(/\x01/g,"");if(h)return;e==r.lastValue?w():!r.lastValue&&e&&(w(),A(e))});k=function(n){return s&&clearTimeout(s),n=n.replace(/\x01/g,""),n==r.lastValue?"":(r.lastValue&&s&&t.undo(),n)},t.onCompositionEnd(),t.removeListener("mousedown",F),e.type=="compositionend"&&r.range&&t.selection.setRange(r.range),i.isChrome&&i.isChrome>=53&&O()},I=o.delayedCall(j,50);r.addListener(n,"compositionstart",B),i.isGecko?r.addListener(n,"text",function(){I.schedule()}):(r.addListener(n,"keyup",function(){I.schedule()}),r.addListener(n,"keydown",function(){I.schedule()})),r.addListener(n,"compositionend",F),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){L=!0,b(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){if(!o&&i.isOldIE)return;p||(p=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+"height:"+n.style.height+";"+(i.isIE?"opacity:0.1;":"");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+"px",n.style.top=Math.min(e.clientY-f-2,c)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&!i.isOldIE&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(n,"mouseup",U),r.addListener(n,"mousedown",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,"contextmenu",U),r.addListener(n,"contextmenu",U)};t.TextInput=f}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function f(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=0;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var s=r.getSelectionRange(),o=s.isEmpty();r.$blockScrolling++,(o||i==1)&&r.selection.moveToPosition(n),r.$blockScrolling--,i==2&&r.textInput.onContextMenu(e.domEvent);return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName("script");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[l(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use strict";function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column,e.column+n).split(" ").length-1==n?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:typeof a.include=="string"?a.include:"";p&&(f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),define("ace/token_iterator",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(r.prototype),t.TokenIterator=r}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return h(a,l,"{","}");if(p.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var d=u.substring(s.column,s.column+1);if(d=="}"){var v=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var m="";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat("}",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d==="}"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:"\n"+b+"\n"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return h(s,o,"(",")");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return h(s,o,"[","]");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g,y&&/string\.end/.test(v.type)&&(y=!1);else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\s;,.})\]\\]/.test(p))return null;y=!0}return{text:y?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";function r(e){var n=/\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,"\\u$&")}t.packages={},r({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../tokenizer").Tokenizer,i=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour/cstyle").CstyleBehaviour,o=e("../unicode"),u=e("../lib/lang"),a=e("../token_iterator").TokenIterator,f=e("../range").Range,l=function(){this.HighlightRules=i};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+u.escapeRegExp(c)+")"),d=new RegExp("(?:"+u.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!="string"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(l.prototype),t.Mode=l}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push("  "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){if(e.action=="insert")var t=e.start,n=e.end;else var n=e.start,t=e.end;var r=t.row,i=n.row,s=i-r,o=-t.column+n.column,u=this.ranges;for(var a=0,f=u.length;a<f;a++){var l=u[a];if(l.end.row<r)continue;if(l.start.row>r)break;l.start.row==r&&l.start.column>=t.column&&(l.start.column!=t.column||!this.$insertRight)&&(l.start.column+=o,l.start.row+=s);if(l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&a<f-1&&l.end.column>l.start.column&&l.end.column==u[a+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=s}}if(s!=0&&a<f)for(;a<f;a++){var l=u[a];l.start.row+=s,l.end.row+=s}}}).call(s.prototype),t.RangeList=s}),define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e("../range").Range,i=e("../range_list").RangeList,s=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o}throw new Error("The range has to be at least 2 characters width")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken();if(s&&/^comment|string/.test(s.type)){var u=new r,a=new RegExp(s.type.replace(/\..*/,"\\."));if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}u.start.row=i.getCurrentTokenRow(),u.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){do s=i.stepForward();while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return u.end.row=i.getCurrentTokenRow(),u.end.column=i.getCurrentTokenColumn()+s.value.length-2,u}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./config"),o=e("./lib/event_emitter").EventEmitter,u=e("./selection").Selection,a=e("./mode/text").Mode,f=e("./range").Range,l=e("./document").Document,c=e("./background_tokenizer").BackgroundTokenizer,h=e("./search_highlight").SearchHighlight,p=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++p.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new l(e);this.setDocument(e),this.selection=new u(this),s.resetOptions(this),this.setMode(t),s._signal("session",this)};(function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!e.ignore&&(this.$deltasDoc.push(e),t&&t.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null)s=n.length-1,i=this.getLine(e).length;else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"	"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new h(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new f(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new f(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new a);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,s.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new c(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group=="doc"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){return t?e.action!=="insert":e.action==="insert"}var i=e[0],s,o,u=!1;r(i)?(s=f.fromPoints(i.start,i.end),u=!0):(s=f.fromPoints(i.start,i.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.start,s.compare(o.row,o.column)==-1&&s.setStart(o),o=i.end,s.compare(o.row,o.column)==1&&s.setEnd(o),u=!0):(o=i.start,s.compare(o.row,o.column)==-1&&(s=f.fromPoints(i.start,i.start)),u=!1);if(n!=null){f.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var l=n.compareRange(s);l==1?s.setStart(n.start):l==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=f.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)=="	"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;f<o.length;f++)o[f]=u}else o=this.$getDisplayTokens(r[t].substring(s,i),a.length);a=a.concat(o)}.bind(this),f.end.row,r[f.end.row].length+1),s[f.start.row]=this.$computeWrapSplits(a,o,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(a,o,i),l++)};var e=1,t=2,n=3,u=4,l=9,p=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(h)for(var n=0;n<e.length;n++){var r=e[n];if(r==p)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return c&&h!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=e.slice(a,t),r=n.length;n.join("").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),s.length||(b=g(),s.indent=b),f+=r,s.push(f),a=t}if(e.length==0)return[];var s=[],o=e.length,a=0,f=0,c=this.$wrapAsCode,h=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||h===!1?0:Math.floor(r/2),b=0;while(o-a>r-b){var w=a+r-b;if(e[w-1]>=p&&e[w]>=p){y(w);continue}if(e[w]==n||e[w]==u){for(w;w!=a-1;w--)if(e[w]==n)break;if(w>a){y(w);continue}w=a+r;for(w;w<e.length;w++)if(e[w]!=u)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),a-1);while(w>E&&e[w]<n)w--;if(c){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==l)w--}else while(w>E&&e[w]<p)w--;if(w>E){y(++w);continue}w=a+r,e[w]==t&&w--,y(w-b)}return s},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var a=1;a<s;a++)i.push(v)}else u==32?i.push(p):u>39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}var v=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var g=Math.floor(e-o);s=m[g],g>0&&m.length&&(v=m.indent,i=m[g-1]||m[m.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t-v)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i==="	"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i;if(t.$isMultiLine)var o=n.length,u=function(t,r,u){var a=t.search(n[0]);if(a==-1)return;for(var f=1;f<o;f++){t=e.getLine(r+f);if(t.search(n[f])==-1)return}var l=t.match(n[o-1])[0].length,c=new s(r,a,r+o-1,l);n.offset==1?(c.start.row--,c.start.column=Number.MAX_VALUE):u&&(c.start.column+=u);if(i(c))return!0};else if(t.backwards)var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=o.length-1;u>=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u<o.length;u++)if(i(o[u],t,s))return!0};var a=this.$lineIterator(e,t);return{forEach:function(e){i=e,a.forEach(u)}}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return n[0]==""?(r.shift(),r.offset=1):r.offset=0,r},this.$lineIterator=function(e,t){var n=t.backwards==1,r=t.skipCurrent!=0,i=t.range,s=t.start;s||(s=i?i[n?"end":"start"]:e.selection.getRange()),s.start&&(s=s[r!=n?"end":"start"]);var o=i?i.start.row:0,u=i?i.end.row:e.getLength()-1,a=n?function(n){var r=s.row,i=e.getLine(r).substring(0,s.column);if(n(i,r))return;for(r--;r>=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r||n.isDefault?r=-100:r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:o("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:o("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:o("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"}]}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?"mac":"win",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c("")),g.resetOptions(this),g._signal("editor",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==undefined&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(g.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\r\n|\r|\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,t);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e=="	"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l="	"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"	")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s&&s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=b}),define("ace/undomanager",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines.length==1?null:e.lines,text:e.lines.length==1?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){var n=new Array(e.length);for(var r=0;r<e.length;r++){var i=e[r],s={group:i.group,deltas:new Array(i.length)};for(var o=0;o<i.deltas.length;o++){var u=i.deltas[o];s.deltas[o]=t(u)}n[r]=s}return n}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(r.prototype),t.UndoManager=r}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&v<s.end.row?m+=" ace_closed":m+=" ace_open",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+"px";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!=p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+"px";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}this.element.innerHTML=t.join("")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"",e.push("<div class='",n," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",a,"px;",i,"'></div>"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("<div class='",n," ace_br12' style='","height:",o,"px;","width:",f,"px;","top:",u,"px;","left:",s,"px;",i,"'></div>"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var l=(t.start.column?1:0)|(t.end.column?0:8);e.push("<div class='",n,l?" ace_br"+l:"","' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",s,"px;",i,"'></div>")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",f,"px;",s||"","'></div>")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")}}).call(s.prototype),t.Marker=s}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+s.stringRepeat(this.TAB_CHAR,n)+"</span>"):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i="",o="";if(this.showInvisibles){r+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(" ",this.tabSize),a=u;this.$tabStrings[" "]="<span class='"+r+i+"'>"+u+"</span>",this.$tabStrings["	"]="<span class='"+r+o+"'>"+a+"</span>"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+"px",l.innerHTML=c.join("")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(i),"px'>"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push("</div>"),i++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+s.stringRepeat(i.SPACE_CHAR,e.length)+"</span>":e;if(e=="&")return"&#38;";if(e=="<")return"&#60;";if(e==">")return"&#62;";if(e=="	"){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e=="\u3000"){var f=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,"<span class='"+f+"' style='width:"+i.config.characterWidth*2+"px'>"+l+"</span>"}return r?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]=="	"?(e.push(s.stringRepeat(this.$tabStrings["	"],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){i=c.length,c=this.renderIndentGuide(e,c,u);if(!c)continue;i-=c.length}if(i+c.length<u)a=this.$renderToken(e,a,l,c),i+=c.length;else{while(i+c.length>=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),e.push(s.stringRepeat("\u00a0",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}';i.importCssString(m,"ace_editor.css");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:w?Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},S},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var s=this.$normalizePath;i=i||s(e.toUrl("ace/worker/worker.js",null,"_"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})},this.$workerBlob=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column;else var o=t.column,u=e.column;var a=e.row<t.row;if(a)var f=e.row,l=t.row;else var f=t.row,l=e.row;o<0&&(o=0),f<0&&(f=0),f==l&&(n=!0);for(var c=f;c<=l;c++){var h=i.fromPoints(this.session.screenToDocumentPosition(c,o),this.session.screenToDocumentPosition(c,u));if(h.isEmpty()){if(p&&v(h.end,p))break;var p=h.end}h.cursor=s?h.start:h.end,r.push(h)}a&&r.reverse();if(!n){var d=r.length-1;while(r[d].isEmpty()&&d>0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }","")}),define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML="");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version="1.2.6"});
-            (function() {
-                window.require(["ace/ace"], function(a) {
-                    if (a) {
-                        a.config.init(true);
-                        a.define = window.define;
-                    }
-                    if (!window.ace)
-                        window.ace = a;
-                    for (var key in a) if (a.hasOwnProperty(key))
-                        window.ace[key] = a[key];
-                });
-            })();
-        
\ No newline at end of file
diff --git a/public/v2/vendor/ace-builds/src-min/mode-json.js b/public/v2/vendor/ace-builds/src-min/mode-json.js
deleted file mode 100644
index c919855a6c81fcf864a468d5d6047e03c65fdfb9..0000000000000000000000000000000000000000
--- a/public/v2/vendor/ace-builds/src-min/mode-json.js
+++ /dev/null
@@ -1 +0,0 @@
-define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/public/v2/vendor/ace-builds/src-min/worker-json.js b/public/v2/vendor/ace-builds/src-min/worker-json.js
deleted file mode 100644
index a443035ec39e7f8fe2e23c29caf44572f81434d7..0000000000000000000000000000000000000000
--- a/public/v2/vendor/ace-builds/src-min/worker-json.js
+++ /dev/null
@@ -1 +0,0 @@
-"no use strict";(function(e){function t(e,t){var n=e,r="";while(n){var i=t[n];if(typeof i=="string")return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var s=n.lastIndexOf("/");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!="undefined"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log("unable to load "+i);var o=t(i,e.require.tlns);return o.slice(-3)!=".js"&&(o+=".js"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require("ace/lib/es5-shim"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../document").Document,s=e("../lib/lang"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(""),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on("change",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:"insert",start:i[s],lines:i[s+1]};else var o={action:"remove",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),define("ace/mode/json/json_parse",["require","exports","module"],function(e,t,n){"use strict";var r,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"	"},o,u=function(e){throw{name:"SyntaxError",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u("Expected '"+e+"' instead of '"+i+"'"),i=o.charAt(r),r+=1,i},f=function(){var e,t="";i==="-"&&(t="-",a("-"));while(i>="0"&&i<="9")t+=i,a();if(i==="."){t+=".";while(a()&&i>="0"&&i<="9")t+=i}if(i==="e"||i==="E"){t+=i,a();if(i==="-"||i==="+")t+=i,a();while(i>="0"&&i<="9")t+=i,a()}e=+t;if(!isNaN(e))return e;u("Bad number")},l=function(){var e,t,n="",r;if(i==='"')while(a()){if(i==='"')return a(),n;if(i==="\\"){a();if(i==="u"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!="string")break;n+=s[i]}}else n+=i}u("Bad string")},c=function(){while(i&&i<=" ")a()},h=function(){switch(i){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}u("Unexpected '"+i+"'")},p,d=function(){var e=[];if(i==="["){a("["),c();if(i==="]")return a("]"),e;while(i){e.push(p()),c();if(i==="]")return a("]"),e;a(","),c()}}u("Bad array")},v=function(){var e,t={};if(i==="{"){a("{"),c();if(i==="}")return a("}"),t;while(i){e=l(),c(),a(":"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key "'+e+'"'),t[e]=p(),c();if(i==="}")return a("}"),t;a(","),c()}}u("Bad object")};return p=function(){c();switch(i){case"{":return v();case"[":return d();case'"':return l();case"-":return f();default:return i>="0"&&i<="9"?f():h()}},function(e,t){var n;return o=e,r=0,i=" ",n=p(),c(),i&&u("Syntax error"),typeof t=="function"?function s(e,n){var r,i,o=e[n];if(o&&typeof o=="object")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({"":n},""):n}}),define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("./json/json_parse"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/public/v2/vendor/ractive/ractive.runtime.min.js b/public/v2/vendor/ractive/ractive.runtime.min.js
deleted file mode 100644
index 8516b8ce0dc5c01b72a4c594257c346c761b9deb..0000000000000000000000000000000000000000
--- a/public/v2/vendor/ractive/ractive.runtime.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Ractive.js v0.8.7-c734e03d202b67fc68dd27d7ae9a9c40505543f4 - License MIT */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):function(){var n=t.Ractive,i=e();return i.noConflict=function(){return t.Ractive=n,i},t.Ractive=i}()}(this,function(){"use strict";function t(){return io.createDocumentFragment()}function e(t){var e;if(t&&"boolean"!=typeof t)return no&&io&&t?t.nodeType?t:"string"==typeof t&&(e=io.getElementById(t),!e&&io.querySelector&&(e=io.querySelector(t)),e&&e.nodeType)?e:t[0]&&t[0].nodeType?t[0]:null:null}function n(t){return t&&"unknown"!=typeof t.parentNode&&t.parentNode&&t.parentNode.removeChild(t),t}function i(t){return null!=t&&t.toString?""+t:""}function r(t){return i(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function o(t){return t.replace(Ao,function(t){return t.charAt(1).toUpperCase()})}function s(t){return t.replace(Fo,function(t){return"-"+t.toLowerCase()})}function a(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var i;return e.forEach(function(e){for(i in e)Vo.call(e,i)&&(t[i]=e[i])}),t}function h(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return e.forEach(function(e){for(var n in e)!Vo.call(e,n)||n in t||(t[n]=e[n])}),t}function u(t){return"[object Array]"===Bo.call(t)}function p(t,e){return null===t&&null===e||"object"!=typeof t&&"object"!=typeof e&&t===e}function l(t){return!isNaN(parseFloat(t))&&isFinite(t)}function c(t){return t&&"[object Object]"===Bo.call(t)}function d(){}function f(t,e){return t.replace(/%s/g,function(){return e.shift()})}function m(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];throw t=f(t,e),new Error(t)}function v(){Zr.DEBUG&&To.apply(null,arguments)}function g(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];t=f(t,e),No(t,e)}function y(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];t=f(t,e),Ko[t]||(Ko[t]=!0,No(t,e))}function b(){Zr.DEBUG&&g.apply(null,arguments)}function w(){Zr.DEBUG&&y.apply(null,arguments)}function k(t,e,n){var i=E(t,e,n);return i?i[t][n]:null}function E(t,e,n){for(;e;){if(n in e[t])return e;if(e.isolated)return null;e=e.parent}}function _(t,e,n,i){if(t===e)return null;if(i){var r=k("interpolators",n,i);if(r)return r(t,e)||null;m(Lo(i,"interpolator"))}return Do.number(t,e)||Do.array(t,e)||Do.object(t,e)||null}function x(t){return function(){return t}}function O(t,e){var n=t.indexOf(e);n===-1&&t.push(e)}function C(t,e){for(var n=0,i=t.length;n<i;n++)if(t[n]==e)return!0;return!1}function j(t,e){var n;if(!u(t)||!u(e))return!1;if(t.length!==e.length)return!1;for(n=t.length;n--;)if(t[n]!==e[n])return!1;return!0}function A(t){return"string"==typeof t?[t]:void 0===t?[]:t}function F(t){return t[t.length-1]}function T(t,e){if(t){var n=t.indexOf(e);n!==-1&&t.splice(n,1)}}function N(t){for(var e=[],n=t.length;n--;)e[n]=t[n];return e}function S(t){setTimeout(t,0)}function V(t,e){return function(){for(var n;n=t.shift();)n(e)}}function B(t,e,n,i){var r;if(e===t)throw new TypeError("A promise's fulfillment handler cannot return the same promise");if(e instanceof Ho)e.then(n,i);else if(!e||"object"!=typeof e&&"function"!=typeof e)n(e);else{try{r=e.then}catch(t){return void i(t)}if("function"==typeof r){var o,s,a;s=function(e){o||(o=!0,B(t,e,n,i))},a=function(t){o||(o=!0,i(t))};try{r.call(e,s,a)}catch(t){if(!o)return i(t),void(o=!0)}}else n(e)}}function K(t){t.detach()}function P(t){t.detachNodes()}function M(t){!t.ready||t.outros.length||t.outroChildren||(t.outrosComplete||(t.outrosComplete=!0,t.parent&&!t.parent.outrosComplete?t.parent.decrementOutros(t):t.detachNodes()),t.intros.length||t.totalChildren||("function"==typeof t.callback&&t.callback(),t.parent&&!t.notifiedTotal&&(t.notifiedTotal=!0,t.parent.decrementTotal())))}function I(t){var e,n,i=t.detachQueue,r=R(t),o=i.length,s=0;t:for(;o--;){for(e=i[o].node,s=r.length;s--;)if(n=r[s].element.node,n===e||n.contains(e)||e.contains(n))continue t;i[o].detach(),i.splice(o,1)}}function R(t,e){if(e){for(var n=t.children.length;n--;)e=R(t.children[n],e);return e=e.concat(t.outros)}e=[];for(var i=t;i.parent;)i=i.parent;return R(i,e)}function L(t){t.dispatch()}function D(){var t=Yo.immediateObservers;Yo.immediateObservers=[],t.forEach(L);var e,n=Yo.fragments.length;t=Yo.fragments,Yo.fragments=[];var i=Yo.ractives;for(Yo.ractives=[];n--;){e=t[n];var r=e.ractive;Object.keys(r.viewmodel.changes).length&&Zo.fire(r,r.viewmodel.changes),r.viewmodel.changes={},T(i,r),e.update()}for(n=i.length;n--;){var o=i[n];Zo.fire(o,o.viewmodel.changes),o.viewmodel.changes={}}Yo.transitionManager.ready(),t=Yo.deferredObservers,Yo.deferredObservers=[],t.forEach(L);var s=Yo.tasks;for(Yo.tasks=[],n=0;n<s.length;n+=1)s[n]();if(Yo.fragments.length||Yo.immediateObservers.length||Yo.deferredObservers.length||Yo.ractives.length||Yo.tasks.length)return D()}function U(t){return"string"==typeof t?t.replace(es,"\\$&"):t}function q(t){return t?t.replace(Xo,".$1"):""}function H(t){var e,n=[];for(t=q(t);e=ts.exec(t);){var i=e.index+e[1].length;n.push(t.substr(0,i)),t=t.substr(i+1)}return n.push(t),n}function W(t){return"string"==typeof t?t.replace(ns,"$1$2"):t}function Q(t,e){if(!/this/.test(t.toString()))return t;var n=t.bind(e);for(var i in t)n[i]=t[i];return n}function z(t,e){for(var n=Jo.start(t,!0),i=e.length;i--;){var r=e[i],o=r[0],s=r[1];"function"==typeof s&&(s=Q(s,t)),o.set(s)}return Jo.end(),n}function $(t,e,n){return void 0===n&&(n=t.viewmodel),is.test(e)?n.findMatches(H(e)):[n.joinAll(H(e))]}function G(t,e,n){var i=[];if(c(e)){var r=function(n){e.hasOwnProperty(n)&&i.push.apply(i,$(t,n).map(function(t){return[t,e[n]]}))};for(var o in e)r(o)}else i.push.apply(i,$(t,e).map(function(t){return[t,n]}));return i}function Y(t,e,n){if("string"!=typeof e||!l(n))throw new Error("Bad arguments");var i=G(t,e,n);return z(t,i.map(function(t){var e=t[0],n=t[1],i=e.get();if(!l(n)||!l(i))throw new Error(rs);return[e,i+n]}))}function Z(t,e){return Y(this,t,void 0===e?1:+e)}function J(t,e){t=t||{};var n;return t.easing&&(n="function"==typeof t.easing?t.easing:e.easing[t.easing]),{easing:n||ss,duration:"duration"in t?t.duration:400,complete:t.complete||d,step:t.step||d}}function X(t,e,n,i){i=J(i,t);var r=e.get();if(p(r,n))return i.complete(i.to),os;var o=_(r,n,t,i.interpolator);return o?e.animate(r,n,i,o):(Jo.start(),e.set(n),Jo.end(),os)}function tt(t,e,n){if("object"==typeof t){var i=Object.keys(t);throw new Error("ractive.animate(...) no longer supports objects. Instead of ractive.animate({\n  "+i.map(function(e){return"'"+e+"': "+t[e]}).join("\n  ")+"\n}, {...}), do\n\n"+i.map(function(e){return"ractive.animate('"+e+"', "+t[e]+", {...});"}).join("\n")+"\n")}return X(this,this.viewmodel.joinAll(H(t)),e,n)}function et(){return this.isDetached?this.el:(this.el&&T(this.el.__ractive_instances__,this),this.el=this.fragment.detach(),this.isDetached=!0,as.fire(this),this.el)}function nt(t){if(!this.el)throw new Error("Cannot call ractive.find('"+t+"') unless instance is rendered to the DOM");return this.fragment.find(t)}function it(t,e){if(t.compareDocumentPosition){var n=t.compareDocumentPosition(e);return 2&n?1:-1}return rt(t,e)}function rt(t,e){for(var n,i=st(t.component||t._ractive.proxy),r=st(e.component||e._ractive.proxy),o=F(i),s=F(r);o&&o===s;)i.pop(),r.pop(),n=o,o=F(i),s=F(r);o=o.component||o,s=s.component||s;var a=o.parentFragment,h=s.parentFragment;if(a===h){var u=a.items.indexOf(o),p=h.items.indexOf(s);return u-p||i.length-r.length}var l=n.iterations;if(l){var c=l.indexOf(a),d=l.indexOf(h);return c-d||i.length-r.length}throw new Error("An unexpected condition was met while comparing the position of two components. Please file an issue at https://github.com/ractivejs/ractive/issues - thanks!")}function ot(t){var e=t.parentFragment;return e?e.owner:t.component&&(e=t.component.parentFragment)?e.owner:void 0}function st(t){for(var e=[t],n=ot(t);n;)e.push(n),n=ot(n);return e}function at(t,e){if(!this.el)throw new Error("Cannot call ractive.findAll('"+t+"', ...) unless instance is rendered to the DOM");e=e||{};var n=this._liveQueries,i=n[t];return i?e&&e.live?i:i.slice():(i=new hs(this,t,!!e.live,!1),i.live&&(n.push(t),n["_"+t]=i),this.fragment.findAll(t,i),i.init(),i.result)}function ht(t,e){e=e||{};var n=this._liveComponentQueries,i=n[t];return i?e&&e.live?i:i.slice():(i=new hs(this,t,!!e.live,!0),i.live&&(n.push(t),n["_"+t]=i),this.fragment.findAllComponents(t,i),i.init(),i.result)}function ut(t){return this.fragment.findComponent(t)}function pt(t){return this.container?this.container.component&&this.container.component.name===t?this.container:this.container.findContainer(t):null}function lt(t){return this.parent?this.parent.component&&this.parent.component.name===t?this.parent:this.parent.findParent(t):null}function ct(t,e){t.event&&t._eventQueue.push(t.event),t.event=e}function dt(t){t._eventQueue.length?t.event=t._eventQueue.pop():t.event=null}function ft(t){var e,n,i,r,o,s;for(e=H(t),(n=ps[e.length])||(n=mt(e.length)),o=[],i=function(t,n){return t?"*":e[n]},r=n.length;r--;)s=n[r].map(i).join("."),o.hasOwnProperty(s)||(o.push(s),o[s]=!0);return o}function mt(t){var e,n,i,r,o,s,a,h,u="";if(!ps[t]){for(i=[];u.length<t;)u+=1;for(e=parseInt(u,2),r=function(t){return"1"===t},o=0;o<=e;o+=1){for(n=o.toString(2);n.length<t;)n="0"+n;for(h=[],a=n.length,s=0;s<a;s++)h.push(r(n[s]));i[o]=h}ps[t]=i}return ps[t]}function vt(t,e,n){if(void 0===n&&(n={}),e){n.event?n.event.name=e:n.event={name:e,_noArg:!0};var i=gt(e);return yt(t,i,n.event,n.args,!0)}}function gt(t){return ls.hasOwnProperty(t)?ls[t]:ls[t]=ft(t)}function yt(t,e,n,i,r){void 0===r&&(r=!1);var o,s,a=!0;for(ct(t,n),s=e.length;s>=0;s--)o=t._subs[e[s]],o&&(a=bt(t,o,n,i)&&a);if(dt(t),t.parent&&a){if(r&&t.component){var h=t.component.name+"."+e[e.length-1];e=gt(h),n&&!n.component&&(n.component=t)}yt(t.parent,e,n,i)}return a}function bt(t,e,n,i){var r=null,o=!1;n&&!n._noArg&&(i=[n].concat(i)),e=e.slice();for(var s=0,a=e.length;s<a;s+=1)e[s].off||e[s].apply(t,i)!==!1||(o=!0);return n&&!n._noArg&&o&&(r=n.original)&&(r.preventDefault&&r.preventDefault(),r.stopPropagation&&r.stopPropagation()),!o}function wt(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return vt(this,t,{args:e})}function kt(t){throw new Error("An index or key reference ("+t+") cannot have child properties")}function Et(t,e){for(var n,i,r,o=t.findContext().root,s=H(e),a=s[0];t;){if(t.isIteration){if(a===t.parent.keyRef)return s.length>1&&kt(a),t.context.getKeyModel(t.key);if(a===t.parent.indexRef)return s.length>1&&kt(a),t.context.getKeyModel(t.index)}if(((r=t.owner.aliases)||(r=t.aliases))&&r.hasOwnProperty(a)){var h=r[a];if(1===s.length)return h;if("function"==typeof h.joinAll)return h.joinAll(s.slice(1))}if(t.context&&(t.isRoot&&!t.ractive.component||(n=!0),t.context.has(a)))return i?o.createLink(a,t.context.joinKey(s.shift()),a).joinAll(s):t.context.joinAll(s);t.componentParent&&!t.ractive.isolated?(t=t.componentParent,i=!0):t=t.parent}if(!n)return o.joinAll(s)}function _t(){cs.push(us=[])}function xt(){var t=cs.pop();return us=cs[cs.length-1],t}function Ot(t){us&&us.push(t)}function Ct(t){t.bind()}function jt(t){t.cancel()}function At(t){t.handleChange()}function Ft(t){t.mark()}function Tt(t){t.marked()}function Nt(t){t.notifiedUpstream()}function St(t){t.render()}function Vt(t){t.teardown()}function Bt(t){t.unbind()}function Kt(t){t.unrender()}function Pt(t){t.unrender(!0)}function Mt(t){t.update()}function It(t){return t.toString()}function Rt(t){return t.toString(!0)}function Lt(t){t.updateFromBindings(!0)}function Dt(t){for(var e=t.length;e--;)if(t[e].bound){var n=t[e].owner;if(n){var i="checked"===n.name?n.node.checked:n.node.value;return{value:i}}}}function Ut(t){if(t){var e=vs[t];vs[t]=[];for(var n=e.length;n--;)e[n]();var i=gs[t];for(gs[t]=[],n=i.length;n--;)i[n].model.register(i[n].item)}else Ut("early"),Ut("mark")}function qt(t,e,n){var i=t.r||t;if(!i||"string"!=typeof i)return e;if("."===i||"@"===i[0]||(e||n).isKey||(e||n).isKeypath)return e;for(var r=i.split("/"),o=H(r[r.length-1]),s=e||n,a=o.length,h=!0,u=!1;s&&a--;)s.shuffling&&(u=!0),o[a]!=s.key&&(h=!1),s=s.parent;return!e&&h&&u?n:e&&!h&&u?n:e}function Ht(){Jo.start();var t,e,n=Es();for(t=0;t<_s.length;t+=1)e=_s[t],e.tick(n)||_s.splice(t--,1);Jo.end(),_s.length?ks(Ht):xs=!1}function Wt(t,e){var n,i={};if(!e)return t;e+=".";for(n in t)t.hasOwnProperty(n)&&(i[e+n]=t[n]);return i}function Qt(t){var e;return Cs[t]||(e=t?t+".":"",Cs[t]=function(n,i){var r;return"string"==typeof n?(r={},r[e+n]=i,r):"object"==typeof n?e?Wt(n,t):n:void 0}),Cs[t]}function zt(t){for(var e=[],n=0;n<t.length;n++)e[n]=(t.childByKey[n]||{}).value;return e}function $t(t,e){var n=t.findContext();if("."===e||"this"===e)return n;if(0===e.indexOf("@keypath")){var i=Ts.exec(e);if(i&&i[1]){var r=$t(t,i[1]);if(r)return r.getKeypathModel()}return n.getKeypathModel()}if(0===e.indexOf("@rootpath")){for(;n.isRoot&&n.ractive.component;)n=n.ractive.component.parentFragment.findContext();var o=Ts.exec(e);if(o&&o[1]){var s=$t(t,o[1]);if(s)return s.getKeypathModel(t.ractive.root)}return n.getKeypathModel(t.ractive.root)}if("@index"===e||"@key"===e){var a=t.findRepeatingFragment();if(!a.isIteration)return;return a.context.getKeyModel(a["i"===e[1]?"index":"key"])}if("@this"===e)return t.ractive.viewmodel.getRactiveModel();if("@global"===e)return Fs;if("~"===e[0])return t.ractive.viewmodel.joinAll(H(e.slice(2)));if("."===e[0]){for(var h=e.split("/");"."===h[0]||".."===h[0];){var u=h.shift();".."===u&&(n=n.parent)}return e=h.join("/"),"."===e[0]&&(e=e.slice(1)),n.joinAll(H(e))}return Et(t,e)}function Gt(t,e){if("string"!=typeof t)return this.viewmodel.get(!0,t);var n,i=H(t),r=i[0];return this.viewmodel.has(r)||this.component&&!this.isolated&&(n=$t(this.component.parentFragment,r),n&&this.viewmodel.map(r,n)),n=this.viewmodel.joinAll(i),n.get(!0,e)}function Yt(t){for(var e={},n={};t;){if(t.parent&&(t.parent.indexRef||t.parent.keyRef)){var i=t.parent.indexRef;!i||i in n||(n[i]=t.index),i=t.parent.keyRef,!i||i in e||(e[i]=t.key)}t=t.componentParent&&!t.ractive.isolated?t.componentParent:t.parent}return{key:e,index:n}}function Zt(t,e,n){var i,r,o,s,a,h=[];if(i=Jt(t,e,n),!i)return null;for(s=i.length-2-i[1],r=Math.min(t,i[0]),o=r+i[1],h.startIndex=r,a=0;a<r;a+=1)h.push(a);for(;a<o;a+=1)h.push(-1);for(;a<t;a+=1)h.push(a+s);return 0!==s?h.touchedFrom=i[0]:h.touchedFrom=t,h}function Jt(t,e,n){switch(e){case"splice":for(void 0!==n[0]&&n[0]<0&&(n[0]=t+Math.max(n[0],-t)),void 0===n[0]&&(n[0]=0);n.length<2;)n.push(t-n[0]);return"number"!=typeof n[1]&&(n[1]=t-n[0]),n[1]=Math.min(n[1],t-n[0]),n;case"sort":case"reverse":return null;case"pop":return t?[t-1,1]:[0,0];case"push":return[t,0].concat(n);case"shift":return[0,t?1:0];case"unshift":return[0,0].concat(n)}}function Xt(t){function e(t){for(var e=[],i=arguments.length-1;i-- >0;)e[i]=arguments[i+1];return n(this.viewmodel.joinAll(H(t)),e)}function n(e,n){var i=e.get();if(!u(i)){if(void 0===i){i=[];var r=Ns[t].apply(i,n),o=Jo.start(this,!0).then(function(){return r});return e.set(i),Jo.end(),o}throw new Error("shuffle array method "+t+" called on non-array at "+e.getKeypath())}var s=Zt(i.length,t,n),a=Ns[t].apply(i,n),h=Jo.start(this,!0).then(function(){return a});return h.result=a,s?e.shuffle(s):e.set(a),Jo.end(),h}return{path:e,model:n}}function te(t){if(!t)return null;if(t===!0)return JSON.stringify;if("function"==typeof t)return t;if("string"==typeof t)return Ss[t]||(Ss[t]=function(e){return e[t]});throw new Error("If supplied, options.compare must be a string, function, or `true`")}function ee(t,e,n,i){var r=Jo.start(t,!0),o=e.get();if(!u(o)||!u(n))throw new Error("You cannot merge an array with a non-array");var s=te(i&&i.compare);return e.merge(n,s),Jo.end(),r}function ne(t,e,n){return ee(this,this.viewmodel.joinAll(H(t)),e,n)}function ie(t,e){e.parent&&e.parent.wrapper&&e.parent.adapt();var n=Jo.start(t,!0);if(e.mark(),e.registerChange(e.getKeypath(),e.get()),!e.isRoot)for(var i=e.parent,r=e.key;i&&!i.isRoot;)i.clearUnresolveds&&i.clearUnresolveds(r),r=i.key,i=i.parent;return e.notifyUpstream(),Jo.end(),Vs.fire(t,e),n}function re(t){return t&&(t=H(t)),ie(this,t?this.viewmodel.joinAll(t):this.viewmodel)}function oe(t,e,n){var i=[];if(c(e))for(var r in e)e.hasOwnProperty(r)&&i.push([he(t,r).model,e[r]]);else i.push([he(t,e).model,n]);return i}function se(t){if(!t)return this._element.parentFragment.findContext().get(!0);var e=$t(this._element.parentFragment,t);return e?e.get(!0):void 0}function ae(t,e){var n=he(this,t),i=n.model,r=n.instance;return i?i.getKeypath(e||r):t}function he(t,e){var n=t._element.parentFragment;return"string"!=typeof e?{model:n.findContext(),instance:e}:{model:$t(n,e),instance:n.ractive}}function ue(t,e){if(void 0===e&&(e=1),!l(e))throw new Error("Bad arguments");return z(this.ractive,oe(this,t,e).map(function(t){var e=t[0],n=t[1],i=e.get();if(!l(n)||!l(i))throw new Error("Cannot add non-numeric value");return[e,i+n]}))}function pe(t,e,n){var i=he(this,t).model;return X(this.ractive,i,e,n)}function le(t,e){var n=he(this,t).model,i=he(this,e).model,r=Jo.start(this.ractive,!0);return i.link(n,t),Jo.end(),r}function ce(t,e,n){return ee(this.ractive,he(this,t).model,e,n)}function de(t){return Ks(he(this,t).model,[])}function fe(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return Bs(he(this,t).model,e)}function me(t){return Ls(he(this,t).model,[])}function ve(t,e){return z(this.ractive,oe(this,t,e))}function ge(t){return Ps(he(this,t).model,[])}function ye(t,e,n){for(var i=[],r=arguments.length-3;r-- >0;)i[r]=arguments[r+3];return i.unshift(e,n),Rs(he(this,t).model,i)}function be(t){return Is(he(this,t).model,[])}function we(t,e){if(void 0===e&&(e=1),!l(e))throw new Error("Bad arguments");return z(this.ractive,oe(this,t,e).map(function(t){var e=t[0],n=t[1],i=e.get();if(!l(n)||!l(i))throw new Error("Cannot add non-numeric value");return[e,i-n]}))}function ke(t){var e=he(this,t),n=e.model;return z(this.ractive,[[n,!n.get()]])}function Ee(t){var e=he(this,t).model,n=Jo.start(this.ractive,!0);return e.owner&&e.owner._link&&e.owner.unlink(),Jo.end(),n}function _e(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return Ms(he(this,t).model,e)}function xe(t){return ie(this.ractive,he(this,t).model)}function Oe(t,e){var n=he(this,t),i=n.model,r=Jo.start(this.ractive,!0);return i.updateFromBindings(e),Jo.end(),r}function Ce(){var t=Fe(this),e=t.model;return!!e}function je(t){var e=Fe(this),n=e.model,i=e.instance;if(n)return n.getKeypath(t||i)}function Ae(){var t=Fe(this),e=t.model;if(e)return e.get(!0)}function Fe(t){var e=t._element;return{model:e.binding&&e.binding.model,instance:e.parentFragment.ractive}}function Te(t){var e=Fe(this),n=e.model;return z(this.ractive,[[n,t]])}function Ne(){return w("Object property keypath is deprecated, please use resolve() instead."),this.resolve()}function Se(){return w("Object property rootpath is deprecated, please use resolve( ractive.root ) instead."),this.resolve(this.ractive.root)}function Ve(){return w("Object property context is deprecated, please use get() instead."),this.get()}function Be(){return w('Object property index is deprecated, you can use get( "indexName" ) instead.'),Yt(this._element.parentFragment).index}function Ke(){return w('Object property key is deprecated, you can use get( "keyName" ) instead.'),Yt(this._element.parentFragment).key}function Pe(t,e){return jo(t,{_element:{value:e},ractive:{value:e.parentFragment.ractive},resolve:{value:ae},get:{value:se},add:{value:ue},animate:{value:pe},link:{value:le},merge:{value:ce},pop:{value:de},push:{value:fe},reverse:{value:me},set:{value:ve},shift:{value:ge},sort:{value:be},splice:{value:ye},subtract:{value:we},toggle:{value:ke},unlink:{value:Ee},unshift:{value:_e},update:{value:xe},updateModel:{value:Oe},isBound:{value:Ce},getBindingPath:{value:je},getBinding:{value:Ae},setBinding:{value:Te},keypath:{get:Ne},rootpath:{get:Se},context:{get:Ve},index:{get:Be},key:{get:Ke}}),t}function Me(t){if("string"==typeof t&&Ds&&(t=Ds.call(document,t)),!t||!t._ractive)return{};var e=t._ractive;return Pe({},e.proxy)}function Ie(t){return"string"==typeof t&&(t=this.find(t)),Me(t)}function Re(t,n){if(!this.fragment.rendered)throw new Error("The API has changed - you must call `ractive.render(target[, anchor])` to render your Ractive instance. Once rendered you can use `ractive.insert()`.");if(t=e(t),n=e(n)||null,!t)throw new Error("You must specify a valid target to insert into");t.insertBefore(this.detach(),n),this.el=t,(t.__ractive_instances__||(t.__ractive_instances__=[])).push(this),this.isDetached=!1,Le(this)}function Le(t){Us.fire(t),t.findAllComponents("*").forEach(function(t){Le(t.instance)})}function De(t,e){if(e===t||0===(t+".").indexOf(e+".")||0===(e+".").indexOf(t+"."))throw new Error("A keypath cannot be linked to itself.");var n,i=Jo.start(),r=H(t);return!this.viewmodel.has(r[0])&&this.component&&(n=$t(this.component.parentFragment,r[0]),n=n.joinAll(r.slice(1))),this.viewmodel.joinAll(H(e)).link(n||this.viewmodel.joinAll(r),t),Jo.end(),i}function Ue(t,e,n){var i,r=this,o=[];if(c(t))i=t,n=e||{},Object.keys(i).forEach(function(t){var e=i[t],s=t.split(" ");s.length>1&&(s=s.filter(function(t){return t})),s.forEach(function(t){o.push(qe(r,t,e,n))})});else{var s;"function"==typeof t?(n=e,e=t,s=[""]):s=t.split(" "),s.length>1&&(s=s.filter(function(t){return t})),s.forEach(function(t){o.push(qe(r,t,e,n||{}))})}return this._observers.push.apply(this._observers,o),{cancel:function(){o.forEach(function(t){T(r._observers,t),t.cancel()})}}}function qe(t,e,n,i){var r=t.viewmodel,o=H(e),s=o.indexOf("*");if(i.keypath=e,!~s){var a,h=o[0];return""===h||r.has(h)?a=r.joinAll(o):t.component&&!t.isolated&&(a=$t(t.component.parentFragment,h),a&&(r.map(h,a),a=r.joinAll(o))),new Hs(t,a,n,i)}var u=0===s?r:r.joinAll(o.slice(0,s));return new Ws(t,u,o.splice(s),n,i)}function He(t,e,n){if("string"!=typeof t)throw new Error("ractive.observeList() must be passed a string as its first argument");var i=this.viewmodel.joinAll(H(t)),r=new Qs(this,i,e,n||{});return this._observers.push(r),{cancel:function(){r.cancel()}}}function We(){return-1}function Qe(t,e,n){return c(t)||"function"==typeof t?(n=a(e||{},zs),this.observe(t,n)):(n=a(n||{},zs),this.observe(t,e,n))}function ze(t){return t.trim()}function $e(t){return""!==t}function Ge(t,e){var n=this;if(t){var i=t.split(" ").map(ze).filter($e);i.forEach(function(t){var i=n._subs[t];if(i)if(e){e.off=!0;var r=i.indexOf(e);r!==-1&&i.splice(r,1)}else n._subs[t]=[]})}else for(t in this._subs)delete this._subs[t];return this}function Ye(t,e){var n=this;if("object"==typeof t){var i,r=[];for(i in t)t.hasOwnProperty(i)&&r.push(this.on(i,t[i]));return{cancel:function(){for(var t;t=r.pop();)t.cancel()}}}var o=t.split(" ").map(ze).filter($e);return o.forEach(function(t){(n._subs[t]||(n._subs[t]=[])).push(e)}),{cancel:function(){return n.off(t,e)}}}function Ze(t,e){var n=this.on(t,function(){e.apply(this,arguments),n.cancel()});return n}function Je(t){Zs.push(t),Js=!0}function Xe(){io&&Js&&(ta?Xs.styleSheet.cssText=tn(null):Xs.innerHTML=tn(null),Js=!1)}function tn(t){var e=t?Zs.filter(function(e){return~t.indexOf(e.id)}):Zs;return e.reduce(function(t,e){return""+t+"\n\n/* {"+e.id+"} */\n"+e.styles},Ys)}function en(t,n,i,r){var o=t.transitionsEnabled;t.noIntro&&(t.transitionsEnabled=!1);var s=Jo.start(t,!0);if(Jo.scheduleTask(function(){return ea.fire(t)},!0),t.fragment.rendered)throw new Error("You cannot call ractive.render() on an already rendered instance! Call ractive.unrender() first");if(i=e(i)||t.anchor,t.el=n,t.anchor=i,t.cssId&&Xe(),n)if((n.__ractive_instances__||(n.__ractive_instances__=[])).push(t),i){var a=io.createDocumentFragment();t.fragment.render(a),n.insertBefore(a,i)}else t.fragment.render(n,r);return Jo.end(),t.transitionsEnabled=o,s.then(function(){return na.fire(t)})}function nn(t,n){if(this.torndown)return b("ractive.render() was called on a Ractive instance that was already torn down"),Promise.resolve();if(t=e(t)||this.el,!this.append&&t){var i=t.__ractive_instances__;i&&i.forEach(Vt),this.enhance||(t.innerHTML="")}var r=this.enhance?N(t.childNodes):null,o=en(this,t,n,r);if(r)for(;r.length;)t.removeChild(r.pop());return o}function rn(t,e){for(var n=t.slice(),i=e.length;i--;)~n.indexOf(e[i])||n.push(e[i]);return n}function on(t){return t.trim()}function sn(t){return t.str}function an(t,e){for(var n,i=[];n=sa.exec(t);)i.push({str:n[0],base:n[1],modifiers:n[2]});for(var r=i.map(sn),o=[],s=i.length;s--;){var a=r.slice(),h=i[s];a[s]=h.base+e+h.modifiers||"";var u=r.slice();u[s]=e+" "+u[s],o.push(a.join(" "),u.join(" "))}return o.join(", ")}function hn(t,e){var n,i='[data-ractive-css~="{'+e+'}"]';return n=ha.test(t)?t.replace(ha,i):t.replace(oa,"").replace(ra,function(t,e){if(aa.test(e))return t;var n=e.split(",").map(on),r=n.map(function(t){return an(t,i)}).join(", ")+" ";return t.replace(e,r)})}function un(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function pn(){return un()+un()+"-"+un()+"-"+un()+"-"+un()+"-"+un()+un()+un()}function ln(t){t&&t.constructor!==Object&&("function"==typeof t||("object"!=typeof t?m("data option must be an object or a function, `"+t+"` is not valid"):b("If supplied, options.data should be a plain JavaScript object - using a non-POJO as the root object may work, but is discouraged")))}function cn(t,e){ln(e);var n="function"==typeof t,i="function"==typeof e;return e||n||(e={}),n||i?function(){var r=i?dn(e,this):e,o=n?dn(t,this):t;return fn(r,o)}:fn(e,t)}function dn(t,e){var n=t.call(e);if(n)return"object"!=typeof n&&m("Data function must return an object"),n.constructor!==Object&&w("Data function returned something other than a plain JavaScript object. This might work, but is strongly discouraged"),n}function fn(t,e){if(t&&e){for(var n in e)n in t||(t[n]=e[n]);return t}return t||e}function mn(t,e){void 0===e&&(e=0);for(var n=new Array(e);e--;)n[e]="_"+e;return new Function([],"return function ("+n.join(",")+"){return("+t+");};")()}function vn(t,e){var n,i="return ("+t.replace(ca,function(t,e){return n=!0,'__ractive.get("'+e+'")'})+");";n&&(i="var __ractive = this; "+i);var r=new Function(i);return n?r.bind(e):r}function gn(t,e){return da[t]?da[t]:da[t]=wn(t,e)}function yn(t){if(t){var e=t.e;e&&Object.keys(e).forEach(function(t){da[t]||(da[t]=e[t])})}}function bn(t,e,n){t||m("Missing Ractive.parse - cannot parse "+e+". "+n)}function wn(t,e){return bn(mn,"new expression function",va),mn(t,e)}function kn(t,e){return bn(vn,'compution string "${str}"',ga),vn(t,e)}function En(t){var e=t._config.template;if(e&&e.fn){var n=_n(t,e.fn);return n!==e.result?(e.result=n,n):void 0}}function _n(t,e){return e.call(t,{fromId:ya.fromId,isParsed:ya.isParsed,parse:function(e,n){return void 0===n&&(n=ya.getParseOptions(t)),ya.parse(e,n)}})}function xn(t,e){return"string"==typeof t?t=On(t,e):(Cn(t),yn(t)),t}function On(t,e){return"#"===t[0]&&(t=ya.fromId(t)),ya.parseFor(t,e)}function Cn(t){if(void 0==t)throw new Error("The template cannot be "+t+".");if("number"!=typeof t.v)throw new Error("The template parser was passed a non-string template, but the template doesn't have a version.  Make sure you're passing in the template you think you are.");if(t.v!==la)throw new Error("Mismatched template version (expected "+la+", got "+t.v+") Please ensure you are using the latest version of Ractive.js in your build process as well as in your app")}function jn(t,e,n){if(e)for(var i in e)!n&&t.hasOwnProperty(i)||(t[i]=e[i])}function An(t,e,n){function i(){var t=Fn(i._parent,e),r="_super"in this,o=this._super;this._super=t;var s=n.apply(this,arguments);return r?this._super=o:delete this._super,s}return/_super/.test(n)?(i._parent=t,i._method=n,i):n}function Fn(t,e){if(e in t){var n=t[e];return"function"==typeof n?n:function(){return n}}return d}function Tn(t,e,n){return"options."+t+" has been deprecated in favour of options."+e+"."+(n?" You cannot specify both options, please use options."+e+".":"")}function Nn(t,e,n){if(e in t){if(n in t)throw new Error(Tn(e,n,!0));b(Tn(e,n)),t[n]=t[e]}}function Sn(t){Nn(t,"beforeInit","onconstruct"),Nn(t,"init","onrender"),Nn(t,"complete","oncomplete"),Nn(t,"eventDefinitions","events"),u(t.adaptors)&&Nn(t,"adaptors","adapt")}function Vn(t,e,n,i){Sn(i);for(var r in i)if(Oa.hasOwnProperty(r)){var o=i[r];"el"!==r&&"function"==typeof o?b(""+r+" is a Ractive option that does not expect a function and will be ignored","init"===t?n:null):n[r]=o}if(i.append&&i.enhance)throw new Error("Cannot use append and enhance at the same time");Ea.forEach(function(r){r[t](e,n,i)}),ia[t](e,n,i),ba[t](e,n,i),ua[t](e,n,i),Bn(e.prototype,n,i)}function Bn(t,e,n){for(var i in n)if(!Ca[i]&&n.hasOwnProperty(i)){var r=n[i];"function"==typeof r&&(r=An(t,i,r)),e[i]=r}}function Kn(t){var e={};return t.forEach(function(t){return e[t]=!0}),e}function Pn(t){if(t=t||{},"object"!=typeof t)throw new Error("The reset method takes either no arguments, or an object containing new data");t=pa.init(this.constructor,this,{data:t});var e=Jo.start(this,!0),n=this.viewmodel.wrapper;n&&n.reset?n.reset(t)===!1&&this.viewmodel.set(t):this.viewmodel.set(t);for(var i,r=Aa.reset(this),o=r.length;o--;)if(Fa.indexOf(r[o])>-1){i=!0;break}return i&&(Va.fire(this),this.fragment.resetTemplate(this.template),Sa.fire(this),Ta.fire(this)),Jo.end(),Na.fire(this,t),e}function Mn(t,e,n,i){t.forEach(function(t){if(t.type===Ra&&(t.refName===e||t.name===e))return t.inAttribute=n,void i.push(t);if(t.fragment)Mn(t.fragment.iterations||t.fragment.items,e,n,i);else if(u(t.items))Mn(t.items,e,n,i);else if(t.type===Da&&t.instance){if(t.instance.partials[e])return;Mn(t.instance.fragment.items,e,n,i)}t.type===Ia&&u(t.attributes)&&Mn(t.attributes,e,!0,i)})}function In(t){t.forceResetTemplate()}function Rn(t,e){var n=[];Mn(this.fragment.items,t,!1,n);var i=Jo.start(this,!0);return this.partials[t]=e,n.forEach(In),Jo.end(),i}function Ln(t,e,n){var i=t.fragment.resolve(e,function(e){T(t.resolvers,i),t.models[n]=e,t.bubble()});t.resolvers.push(i)}function Dn(t,e){return e.r?$t(t,e.r):e.x?new oh(t,e.x):e.rx?new ah(t,e.rx):void 0}function Un(t){if(t.template.z){t.aliases={};for(var e=t.template.z,n=0;n<e.length;n++)t.aliases[e[n].n]=Dn(t.parentFragment,e[n].x)}}function qn(t,e,n){for(void 0===e&&(e=!0);t&&(t.type!==Ia||n&&t.name!==n)&&(!e||t.type!==Da);)t=t.owner?t.owner:t.component?t.containerFragment||t.component.parentFragment:t.parent?t.parent:t.parentFragment?t.parentFragment:void 0;return t}function Hn(t){var e=[];return"string"!=typeof t?{}:t.replace(lh,function(t){return"\0"+(e.push(t)-1)}).replace(ph,"").split(";").filter(function(t){return!!t.trim()}).map(function(t){return t.replace(ch,function(t,n){return e[n]})}).reduce(function(t,e){var n=e.indexOf(":"),i=e.substr(0,n).trim();return t[i]=e.substr(n+1).trim(),t},{})}function Wn(t){for(var e=t.split(uh),n=e.length;n--;)e[n]||e.splice(n,1);return e}function Qn(t){var e=t.element,n=t.name;if("id"===n)return zn;if("value"===n){if(t.interpolator&&(t.interpolator.bound=!0),"select"===e.name&&"value"===n)return e.getAttribute("multiple")?$n:Gn;if("textarea"===e.name)return Xn;if(null!=e.getAttribute("contenteditable"))return Yn;if("input"===e.name){var i=e.getAttribute("type");if("file"===i)return d;if("radio"===i&&e.binding&&"name"===e.binding.attribute.name)return Zn;if(~dh.indexOf(i))return Xn}return Jn}var r=e.node;if(t.isTwoway&&"name"===n){if("radio"===r.type)return ti;if("checkbox"===r.type)return ei}if("style"===n)return ni;if(0===n.indexOf("style-"))return ii;if("class"===n&&(!r.namespaceURI||r.namespaceURI===yo))return ri;if(0===n.indexOf("class-"))return oi;if(t.isBoolean){var o=e.getAttribute("type");return!t.interpolator||"checked"!==n||"checkbox"!==o&&"radio"!==o||(t.interpolator.bound=!0),si}return t.namespace&&t.namespace!==t.node.namespaceURI?hi:ai}function zn(t){var e=this,n=e.node,i=this.getValue();return this.ractive.nodes[n.id]===n&&delete this.ractive.nodes[n.id],t?n.removeAttribute("id"):(this.ractive.nodes[i]=n,
-void(n.id=i))}function $n(t){var e=this.getValue();u(e)||(e=[e]);var n=this.node.options,i=n.length;if(t)for(;i--;)n[i].selected=!1;else for(;i--;){var r=n[i],o=r._ractive?r._ractive.value:r.value;r.selected=C(e,o)}}function Gn(t){var e=this.getValue();if(!this.locked){this.node._ractive.value=e;var n=this.node.options,i=n.length,r=!1;if(t)for(;i--;)n[i].selected=!1;else for(;i--;){var o=n[i],s=o._ractive?o._ractive.value:o.value;if(o.disabled&&o.selected&&(r=!0),s==e)return void(o.selected=!0)}r||(this.node.selectedIndex=-1)}}function Yn(t){var e=this.getValue();this.locked||(t?this.node.innerHTML="":this.node.innerHTML=void 0===e?"":e)}function Zn(t){var e=this.node,n=e.checked,i=this.getValue();return t?e.checked=!1:(e.value=this.node._ractive.value=i,e.checked=i===this.element.getAttribute("name"),void(n&&!e.checked&&this.element.binding&&this.element.binding.rendered&&this.element.binding.group.model.set(this.element.binding.group.getValue())))}function Jn(t){if(!this.locked){if(t)return this.node.removeAttribute("value"),void(this.node.value=this.node._ractive.value=null);var e=this.getValue();this.node.value=this.node._ractive.value=e,this.node.setAttribute("value",e)}}function Xn(t){if(!this.locked){if(t)return this.node._ractive.value="",void this.node.removeAttribute("value");var e=this.getValue();this.node._ractive.value=e,this.node.value=i(e),this.node.setAttribute("value",i(e))}}function ti(t){t?this.node.checked=!1:this.node.checked=this.getValue()==this.node._ractive.value}function ei(t){var e=this,n=e.element,i=e.node,r=n.binding,o=this.getValue(),s=n.getAttribute("value");if(u(o)){for(var a=o.length;a--;)if(s==o[a])return void(r.isChecked=i.checked=!0);r.isChecked=i.checked=!1}else r.isChecked=i.checked=o==s}function ni(t){for(var e=t?{}:Hn(this.getValue()||""),n=this.node.style,i=Object.keys(e),r=this.previous||[],o=0;o<i.length;){if(i[o]in n){var s=e[i[o]].replace("!important","");n.setProperty(i[o],s,s.length!==e[i[o]].length?"important":"")}o++}for(o=r.length;o--;)!~i.indexOf(r[o])&&r[o]in n&&(n[r[o]]="");this.previous=i}function ii(t){this.styleName||(this.styleName=o(this.name.substr(6))),this.node.style[this.styleName]=t?"":this.getValue()}function ri(t){for(var e=t?[]:Wn(i(this.getValue())),n=Wn(this.node.className),r=this.previous||n.slice(0),o=0;o<e.length;)~n.indexOf(e[o])||n.push(e[o]),o++;for(o=r.length;o--;)if(!~e.indexOf(r[o])){var s=n.indexOf(r[o]);~s&&n.splice(s,1)}var a=n.join(" ");a!==this.node.className&&(this.node.className=a),this.previous=e}function oi(t){var e=this.name.substr(6),n=Wn(this.node.className),i=!t&&this.getValue();this.inlineClass||(this.inlineClass=e),i&&!~n.indexOf(e)?n.push(e):!i&&~n.indexOf(e)&&n.splice(n.indexOf(e),1),this.node.className=n.join(" ")}function si(t){if(!this.locked){if(t)return this.useProperty&&(this.node[this.propertyName]=!1),void this.node.removeAttribute(this.propertyName);this.useProperty?this.node[this.propertyName]=this.getValue():this.getValue()?this.node.setAttribute(this.propertyName,""):this.node.removeAttribute(this.propertyName)}}function ai(t){t?this.node.removeAttribute(this.name):this.node.setAttribute(this.name,i(this.getString()))}function hi(t){t?this.node.removeAttributeNS(this.namespace,this.name.slice(this.name.indexOf(":")+1)):this.node.setAttributeNS(this.namespace,this.name.slice(this.name.indexOf(":")+1),i(this.getString()))}function ui(t){return t.replace(bh,function(t,e){var n;return n="#"!==e[0]?gh[e]:"x"===e[1]?parseInt(e.substring(2),16):parseInt(e.substring(1),10),n?kh(li(n)):t})}function pi(t){return t.replace(xh,"&amp;").replace(Eh,"&lt;").replace(_h,"&gt;")}function li(t){return t?10===t?32:t<128?t:t<=159?yh[t-128]:t<55296?t:t<=57343?Oh:t<=65535?t:wh?t>=65536&&t<=131071?t:t>=131072&&t<=196607?t:Oh:Oh:Oh}function ci(t,e){for(var n="xmlns:"+e;t;){if(t.hasAttribute&&t.hasAttribute(n))return t.getAttribute(n);t=t.parentNode}return xo[e]}function di(t,e,n){0===e?t.value=!0:"true"===e?t.value=!0:"false"===e||"0"===e?t.value=!1:t.value=e;var i=t.element[t.flag];return t.element[t.flag]=t.value,n&&!t.element.attributes.binding&&i!==t.value&&t.element.recreateTwowayBinding(),t.value}function fi(){return Fh}function mi(t){Fh=!0,t(),Fh=!1}function vi(t,e){var n=e?"svg":"div";return t?(Ah.innerHTML="<"+n+" "+t+"></"+n+">")&&N(Ah.childNodes[0].attributes):[]}function gi(t,e){for(var n=t.length;n--;)if(t[n].name===e.name)return!1;return!0}function yi(t,e,n,i){var r=t.__model;i&&r.shuffle(i)}function bi(t,e,n,i){if(t.set&&t.set.__magic)return t.set.__magic.dependants.push({ractive:e,keypath:n}),t;var r,o=[{ractive:e,keypath:n}],s={get:function(){return"value"in t?t.value:t.get.call(this)},set:function(e){r||("value"in t?t.value=e:t.set.call(this,e),i.locked||(r=!0,o.forEach(function(t){var n=t.ractive,i=t.keypath;n.set(i,e)}),r=!1))},enumerable:!0};return s.set.__magic={dependants:o,originalDescriptor:t},s}function wi(t,e,n){if(!t.set||!t.set.__magic)return!0;for(var i=t.set.__magic,r=i.length;r--;){var o=i[r];if(o.ractive===e&&o.keypath===n)return i.splice(r,1),!1}}function ki(t){var e=t.replace(/^\t+/gm,function(t){return t.split("\t").join("  ")}).split("\n"),n=e.length<2?0:e.slice(1).reduce(function(t,e){return Math.min(t,/^\s*/.exec(e)[0].length)},1/0);return e.map(function(t,e){return"    "+(e?t.substring(n):t)}).join("\n")}function Ei(t){if(!t)return"";for(var e=t.split("\n"),n=Hh.name+".getValue",i=[],r=e.length,o=1;o<r;o+=1){var s=e[o];if(~s.indexOf(n))return i.join("\n");i.push(s)}}function _i(t,e,n){var i,r,o,s,a;return"function"==typeof n&&(i=Q(n,t),o=n.toString(),s=!0),"string"==typeof n&&(i=kn(n,t),o=n),"object"==typeof n&&("string"==typeof n.get?(i=kn(n.get,t),o=n.get):"function"==typeof n.get?(i=Q(n.get,t),o=n.get.toString(),s=!0):m("`%s` computation must have a `get()` method",e),"function"==typeof n.set&&(r=Q(n.set,t),a=n.set.toString())),{getter:i,setter:r,getterString:o,setterString:a,getterUseStack:s}}function xi(t,e){Zr.DEBUG&&So(),ji(t),Co(t,"data",{get:Ai}),$h.fire(t,e),Gh.forEach(function(n){t[n]=a(Oo(t.constructor[n]||null),e[n])});var n=new zh({adapt:Ci(t,t.adapt,e),data:pa.init(t.constructor,t,e),ractive:t});t.viewmodel=n;var i=a(Oo(t.constructor.prototype.computed),e.computed);for(var r in i){var o=_i(t,r,i[r]);n.compute(r,o)}}function Oi(t){for(var e=[],n=e.concat.apply(e,t),i=n.length;i--;)~e.indexOf(n[i])||e.unshift(n[i]);return e}function Ci(t,e,n){function i(e){return"string"==typeof e&&(e=k("adaptors",t,e),e||m(Lo(e,"adaptor"))),e}e=e.map(i);var r=A(n.adapt).map(i),o=[],s=[e,r];t.parent&&!t.isolated&&s.push(t.parent.viewmodel.adaptors),s.push(o);var a="magic"in n?n.magic:t.magic,h="modifyArrays"in n?n.modifyArrays:t.modifyArrays;if(a){if(!Jr)throw new Error("Getters and setters (magic mode) are not supported in this browser");h&&o.push(qh),o.push(Lh)}return h&&o.push(Mh),Oi(s)}function ji(t){t._guid="r-"+Yh++,t._subs=Oo(null),t._config={},t.nodes={},t.event=null,t._eventQueue=[],t._liveQueries=[],t._liveComponentQueries=[],t._observers=[],t.component||(t.root=t,t.parent=t.container=null)}function Ai(){throw new Error("Using `ractive.data` is no longer supported - you must use the `ractive.get()` API instead")}function Fi(t,e){return t[e._guid]||(t[e._guid]=[])}function Ti(t,e){var n=Fi(t.queue,e);for(t.hook.fire(e);n.length;)Ti(t,n.shift());delete t.queue[e._guid]}function Ni(t,n,i){Object.keys(t.viewmodel.computations).forEach(function(e){var n=t.viewmodel.computations[e];t.viewmodel.value.hasOwnProperty(e)&&n.set(t.viewmodel.value[e])}),Aa.init(t.constructor,t,n),Jh.fire(t),Xh.begin(t);var r;if(t.template){var o;(i.cssIds||t.cssId)&&(o=i.cssIds?i.cssIds.slice():[],t.cssId&&o.push(t.cssId)),t.fragment=r=new Ip({owner:t,template:t.template,cssIds:o}).bind(t.viewmodel)}if(Xh.end(t),r){var s=e(t.el);if(s){var a=t.render(s,t.append);Zr.DEBUG_PROMISES&&a.catch(function(e){throw w("Promise debugging is enabled, to help solve errors that happen asynchronously. Some browsers will log unhandled promise rejections, in which case you can safely disable promise debugging:\n  Ractive.DEBUG_PROMISES = false;"),b("An error happened during rendering",{ractive:t}),v(e),e})}}}function Si(t){var e=t.ractive;do for(var n=e._liveComponentQueries,i=n.length;i--;){var r=n[i],o=n["_"+r];o.test(t)&&(o.add(t.instance),t.liveQueries.push(o))}while(e=e.parent)}function Vi(t){for(var e=t.ractive;e;){var n=e._liveComponentQueries["_"+t.name];n&&n.remove(t),e=e.parent}}function Bi(t){t.makeDirty()}function Ki(t){var e=t.node,n=t.ractive;do for(var i=n._liveQueries,r=i.length;r--;){var o=i[r],s=i["_"+o];s.test(e)&&(s.add(e),t.liveQueries.push(s))}while(n=n.parent)}function Pi(t,e){w("The "+t+" being used for two-way binding is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",{ractive:e})}function Mi(){this._ractive.binding.handleChange()}function Ii(t,e,n){var i=""+t+"-bindingGroup";return e[i]||(e[i]=new du(i,e,n))}function Ri(){var t=this.bindings.filter(function(t){return t.node&&t.node.checked}).map(function(t){return t.element.getAttribute("value")}),e=[];return t.forEach(function(t){C(e,t)||e.push(t)}),e}function Li(){Mi.call(this);var t=this._ractive.binding.model.get();this.value=void 0==t?"":t}function Di(t){var e;return function(){var n=this;e&&clearTimeout(e),e=setTimeout(function(){var t=n._ractive.binding;t.rendered&&Mi.call(n),e=null},t)}}function Ui(t){return t.selectedOptions?N(t.selectedOptions):t.options?N(t.options).filter(function(t){return t.selected}):[]}function qi(t){return _u[t]||(_u[t]=[])}function Hi(){var t=this.bindings.filter(function(t){return t.node.checked});if(t.length>0)return t[0].element.getAttribute("value")}function Wi(t){return t&&t.template.f&&1===t.template.f.length&&t.template.f[0].t===Ka&&!t.template.f[0].s}function Qi(t){var e=t.attributeByName;if(t.getAttribute("contenteditable")||Wi(e.contenteditable))return Wi(e.value)?yu:null;if("input"===t.name){var n=t.getAttribute("type");if("radio"===n||"checkbox"===n){var i=Wi(e.name),r=Wi(e.checked);if(i&&r){if("radio"!==n)return cu;b("A radio input can have two-way binding on its name attribute, or its checked attribute - not both",{ractive:t.root})}if(i)return"radio"===n?Ou:gu;if(r)return"radio"===n?xu:cu}return"file"===n&&Wi(e.value)?wu:Wi(e.value)?"number"===n||"range"===n?Eu:bu:null}return"select"===t.name&&Wi(e.value)?t.getAttribute("multiple")?ku:Cu:"textarea"===t.name&&Wi(e.value)?bu:void 0}function zi(t){t.makeDirty()}function $i(t){var e=t.attributeByName,n=e.type,i=e.value,r=e.name;if(n&&"radio"===n.value&&i&&r.interpolator)return i.getValue()===r.interpolator.model.get()||void 0}function Gi(t){var e=t.toString();return e?" "+e:""}function Yi(t){for(var e=t.liveQueries.length;e--;){var n=t.liveQueries[e];n.remove(t.node)}}function Zi(t){var e=t.getAttribute("xmlns");if(e)return e;if("svg"===t.name)return wo;var n=t.parent;return n?"foreignobject"===n.name?yo:n.node.namespaceURI:t.ractive.el.namespaceURI}function Ji(){var t=this._ractive.proxy;Jo.start(),t.formBindings.forEach(Xi),Jo.end()}function Xi(t){t.model.set(t.resetValue)}function tr(t){return function(e){for(var n,i='"',r=!1;!r;)n=e.matchPattern(Bu)||e.matchPattern(Ku)||e.matchString(t),n?i+='"'===n?'\\"':"\\'"===n?"'":n:(n=e.matchPattern(Pu),n?i+="\\u"+("000"+n.charCodeAt(1).toString(16)).slice(-4):r=!0);return i+='"',JSON.parse(i)}}function er(t){var e,n;return e=t.pos,t.matchString('"')?(n=Ru(t),t.matchString('"')?{t:Qa,v:n}:(t.pos=e,null)):t.matchString("'")?(n=Iu(t),t.matchString("'")?{t:Qa,v:n}:(t.pos=e,null)):null}function nr(t){var e;return(e=t.matchPattern(Lu))?{t:Wa,v:e}:null}function ir(t){var e;return(e=er(t))?Uu.test(e.v)?e.v:'"'+e.v.replace(/"/g,'\\"')+'"':(e=nr(t))?e.v:(e=t.matchPattern(Du))?e:null}function rr(t){t.allowWhitespace();var e=ir(t);if(!e)return null;var n={key:e};if(t.allowWhitespace(),!t.matchString(":"))return null;t.allowWhitespace();var i=t.read();return i?(n.value=i.v,n):null}function or(t,e){var n=new Gu(t,{values:e});return n.result}function sr(t){var e=t.template.f,n=t.element.instance.viewmodel,i=n.value;1===e.length&&e[0].t===Ka?(t.model=Dn(t.parentFragment,e[0]),t.model||(w("The "+t.name+"='{{"+e[0].r+"}}' mapping is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",{ractive:t.element.instance}),t.parentFragment.ractive.get(t.name),t.model=t.parentFragment.findContext().joinKey(t.name)),t.link=n.createLink(t.name,t.model,e[0].r),void 0===t.model.get()&&t.name in i&&t.model.set(i[t.name])):(t.boundFragment=new Ip({owner:t,template:e}).bind(),t.model=n.joinKey(t.name),t.model.set(t.boundFragment.valueOf()),t.boundFragment.bubble=function(){Ip.prototype.bubble.call(t.boundFragment),Jo.scheduleTask(function(){t.boundFragment.update(),t.model.set(t.boundFragment.valueOf())})})}function ar(t,e,n){var i=hr(t,e,n||{});if(i)return i;if(i=ya.fromId(e,{noThrow:!0})){var r=ya.parseFor(i,t);return r.p&&h(t.partials,r.p),t.partials[e]=r.t}}function hr(t,e,n){var i=lr(e,n.owner);if(i)return i;var r=E("partials",t,e);if(r){i=r.partials[e];var o;if("function"==typeof i&&(o=i.bind(r),o.isOwner=r.partials.hasOwnProperty(e),i=o.call(t,ya)),!i&&""!==i)return void b(Ro,e,"partial","partial",{ractive:t});if(!ya.isParsed(i)){var s=ya.parseFor(i,r);s.p&&b("Partials ({{>%s}}) cannot contain nested inline partials",e,{ractive:t});var a=o?r:ur(r,e);a.partials[e]=i=s.t}return o&&(i._fn=o),i.v?i.t:i}}function ur(t,e){return t.partials.hasOwnProperty(e)?t:pr(t.constructor,e)}function pr(t,e){if(t)return t.partials.hasOwnProperty(e)?t:pr(t._Parent,e)}function lr(t,e){if(e){if(e.template&&e.template.p&&e.template.p[t])return e.template.p[t];if(e.parentFragment&&e.parentFragment.owner)return lr(t,e.parentFragment.owner)}}function cr(t,e,n){var i;try{i=ya.parse(e,ya.getParseOptions(n))}catch(e){b("Could not parse partial from expression '"+t+"'\n"+e.message)}return i||{t:[]}}function dr(t){return!t||u(t)&&0===t.length||c(t)&&0===Object.keys(t).length}function fr(t,e){return e||u(t)?Ya:c(t)||"function"==typeof t?Ja:void 0===t?null:$a}function mr(t,e){for(var n=t.length;n--;)if(t[n]==e)return!0}function vr(t){return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})}function gr(){ap=!io[up]}function yr(){ap=!1}function br(){ap=!0}function wr(t){return t.replace(fp,"")}function kr(t){return t?(mp.test(t)&&(t="-"+t),t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""}function Er(t,e){e?t.setAttribute("style",e):(t.getAttribute("style"),t.removeAttribute("style"))}function _r(t,e,n){var i=[];if(null==t||""===t)return i;var r,o,s;Np&&(o=Sp[e.tagName])?(r=xr("DIV"),r.innerHTML=o[0]+t+o[1],r=r.querySelector(".x"),"SELECT"===r.tagName&&(s=r.options[r.selectedIndex])):e.namespaceURI===wo?(r=xr("DIV"),r.innerHTML='<svg class="x">'+t+"</svg>",r=r.querySelector(".x")):"TEXTAREA"===e.tagName?(r=so("div"),"undefined"!=typeof r.textContent?r.textContent=t:r.innerHTML=t):(r=xr(e.tagName),r.innerHTML=t,"SELECT"===r.tagName&&(s=r.options[r.selectedIndex]));for(var a;a=r.firstChild;)i.push(a),n.appendChild(a);var h;if("SELECT"===e.tagName)for(h=i.length;h--;)i[h]!==s&&(i[h].selected=!1);return i}function xr(t){return Vp[t]||(Vp[t]=so(t))}function Or(t,e){var n,i=E("components",t,e);if(i&&(n=i.components[e],!n._Parent)){var r=n.bind(i);if(r.isOwner=i.components.hasOwnProperty(e),n=r(),!n)return void b(Ro,e,"component","component",{ractive:t});"string"==typeof n&&(n=Or(t,n)),n._fn=r,i.components[e]=n}return n}function Cr(t){if("string"==typeof t.template)return new rp(t);if(t.template.t===Ia){var e=Or(t.parentFragment.ractive,t.template.e);if(e)return new au(t,e);var n=t.template.e.toLowerCase(),i=Mp[n]||Au;return new i(t)}var r;if(t.template.t===La){var o=t.owner;(!o||o.type!==Da&&o.type!==Ia)&&(o=qn(t.parentFragment)),t.element=o,r=o.type===Da?Yu:Ch}else r=Pp[t.template.t];if(!r)throw new Error("Unrecognised item type "+t.template.t);return new r(t)}function jr(t,e,n,i){return void 0===i&&(i=0),t.map(function(t){if(t.type===Ba)return t.template;if(t.fragment)return t.fragment.iterations?t.fragment.iterations.map(function(t){return jr(t.items,e,n,i)}).join(""):jr(t.fragment.items,e,n,i);var r=""+n+"-"+i++,o=t.model||t.newModel;return e[r]=o?o.wrapper?o.wrapperValue:o.get():void 0,"${"+r+"}"}).join("")}function Ar(t){t.unrender(!0)}function Fr(e){ba.init(null,this,{template:e});var n=this.transitionsEnabled;this.transitionsEnabled=!1;var i=this.component;i&&(i.shouldDestroy=!0),this.unrender(),i&&(i.shouldDestroy=!1),this.fragment.unbind().unrender(!0),this.fragment=new Ip({template:this.template,root:this,owner:this});var r=t();this.fragment.bind(this.viewmodel).render(r),i?this.fragment.findParentNode().insertBefore(r,i.findNextNode()):this.el.insertBefore(r,this.anchor),this.transitionsEnabled=n}function Tr(t,e){var n=this;return z(n,G(n,t,e))}function Nr(t,e){return Y(this,t,void 0===e?-1:-e)}function Sr(){if(this.torndown)return b("ractive.teardown() was called on a Ractive instance that was already torn down"),$o.resolve();this.torndown=!0,this.fragment.unbind(),this.viewmodel.teardown(),this._observers.forEach(jt),this.fragment.rendered&&this.el.__ractive_instances__&&T(this.el.__ractive_instances__,this),this.shouldDestroy=!0;var t=this.fragment.rendered?this.unrender():$o.resolve();return qp.fire(this),t}function Vr(t){if("string"!=typeof t)throw new TypeError(Io);return z(this,$(this,t).map(function(t){return[t,!t.get()]}))}function Br(){var t=[this.cssId].concat(this.findAllComponents().map(function(t){return t.cssId})),e=Object.keys(t.reduce(function(t,e){return t[e]=!0,t},{}));return tn(e)}function Kr(){return this.fragment.toString(!0)}function Pr(){return this.fragment.toString(!1)}function Mr(t,e,n){e instanceof HTMLElement||c(e)&&(n=e),e=e||this.event.node,e&&e._ractive||m("No node was supplied for transition "+t),n=n||{};var i=e._ractive.proxy,r=new Tp({owner:i,parentFragment:i.parentFragment,name:t,params:n});r.bind();var o=Jo.start(this,!0);return Jo.registerTransition(r),Jo.end(),o.then(function(){return r.unbind()}),o}function Ir(t){var e=Jo.start();return this.viewmodel.joinAll(H(t),{lastLink:!1}).unlink(),Jo.end(),e}function Rr(){if(!this.fragment.rendered)return b("ractive.unrender() was called on a Ractive instance that was not rendered"),$o.resolve();var t=Jo.start(this,!0),e=!this.component||this.component.shouldDestroy||this.shouldDestroy;return this.fragment.unrender(e),T(this.el.__ractive_instances__,this),Hp.fire(this),Jo.end(),t}function Lr(t,e){var n=Jo.start(this,!0);return t?this.viewmodel.joinAll(H(t)).updateFromBindings(e!==!1):this.viewmodel.updateFromBindings(!0),Jo.end(),n}function Dr(t,e,n){return n||Ur(t,e)?function(){var n,i="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),i&&(this._super=r),n}:t}function Ur(t,e){return"function"==typeof e&&/_super/.test(t)}function qr(t){for(var e={};t;)Hr(t,e),Qr(t,e),t=t._Parent!==Zr&&t._Parent;return e}function Hr(t,e){Ea.forEach(function(n){Wr(n.useDefaults?t.prototype:t,e,n.name)})}function Wr(t,e,n){var i,r=Object.keys(t[n]);r.length&&((i=e[n])||(i=e[n]={}),r.filter(function(t){return!(t in i)}).forEach(function(e){return i[e]=t[n][e]}))}function Qr(t,e){Object.keys(t.prototype).forEach(function(n){if("computed"!==n){var i=t.prototype[n];if(n in e){if("function"==typeof e[n]&&"function"==typeof i&&e[n]._method){var r,o=i._method;o&&(i=i._method),r=Dr(e[n]._method,i),o&&(r._method=r),e[n]=r}}else e[n]=i._method?i._method:i}})}function zr(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.length?t.reduce($r,this):$r(this)}function $r(t,e){void 0===e&&(e={});var n,i;return e.prototype instanceof Zr&&(e=qr(e)),n=function(t){return this instanceof n?(xi(this,t||{}),void Ni(this,t||{},{})):new n(t)},i=Oo(t.prototype),i.constructor=n,jo(n,{defaults:{value:i},extend:{value:zr,writable:!0,configurable:!0},_Parent:{value:t}}),Aa.extend(t,i,e),pa.extend(t,i,e),e.computed&&(i.computed=a(Oo(t.prototype.computed),e.computed)),n.prototype=i,n}function Gr(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.map(U).join(".")}function Yr(t){return H(t).map(W)}function Zr(t){return this instanceof Zr?(xi(this,t||{}),void Ni(this,t||{},{})):new Zr(t)}var Jr,Xr={el:void 0,append:!1,template:null,delimiters:["{{","}}"],tripleDelimiters:["{{{","}}}"],staticDelimiters:["[[","]]"],staticTripleDelimiters:["[[[","]]]"],csp:!0,interpolate:!1,preserveWhitespace:!1,sanitize:!1,stripComments:!0,contextLines:0,data:{},computed:{},magic:!1,modifyArrays:!1,adapt:[],isolated:!1,twoway:!0,lazy:!1,noIntro:!1,transitionsEnabled:!0,complete:void 0,css:null,noCssTransform:!1},to={linear:function(t){return t},easeIn:function(t){return Math.pow(t,3)},easeOut:function(t){return Math.pow(t-1,3)+1},easeInOut:function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)}},eo=null,no="undefined"!=typeof window?window:null,io=no?document:null,ro=!!io,oo=("undefined"!=typeof navigator&&/jsDom/.test(navigator.appName),"undefined"!=typeof console&&"function"==typeof console.warn&&"function"==typeof console.warn.apply);try{Object.defineProperty({},"test",{value:0}),Jr=!0}catch(t){Jr=!1}var so,ao,ho,uo,po,lo,co,fo,mo,vo=!!io&&io.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),go=["o","ms","moz","webkit"],yo="http://www.w3.org/1999/xhtml",bo="http://www.w3.org/1998/Math/MathML",wo="http://www.w3.org/2000/svg",ko="http://www.w3.org/1999/xlink",Eo="http://www.w3.org/XML/1998/namespace",_o="http://www.w3.org/2000/xmlns",xo={html:yo,mathml:bo,svg:wo,xlink:ko,xml:Eo,xmlns:_o};if(so=vo?function(t,e,n){return e&&e!==yo?n?io.createElementNS(e,t,n):io.createElementNS(e,t):n?io.createElement(t,n):io.createElement(t)}:function(t,e,n){if(e&&e!==yo)throw"This browser does not support namespaces other than http://www.w3.org/1999/xhtml. The most likely cause of this error is that you're trying to render SVG in an older browser. See http://docs.ractivejs.org/latest/svg-and-older-browsers for more information";return n?io.createElement(t,n):io.createElement(t)},ro){for(ho=so("div"),uo=["matches","matchesSelector"],mo=function(t){return function(e,n){return e[t](n)}},co=uo.length;co--&&!ao;)if(po=uo[co],ho[po])ao=mo(po);else for(fo=go.length;fo--;)if(lo=go[co]+po.substr(0,1).toUpperCase()+po.substring(1),ho[lo]){ao=mo(lo);break}ao||(ao=function(t,e){var n,i,r;for(i=t.parentNode,i||(ho.innerHTML="",i=ho,t=t.cloneNode(),ho.appendChild(t)),n=i.querySelectorAll(e),r=n.length;r--;)if(n[r]===t)return!0;return!1})}else ao=null;var Oo,Co,jo,Ao=/(-.)/g,Fo=/[A-Z]/g;try{Object.defineProperty({},"test",{get:function(){},set:function(){}}),io&&Object.defineProperty(so("div"),"test",{value:0}),Co=Object.defineProperty}catch(t){Co=function(t,e,n){n.get?t[e]=n.get():t[e]=n.value}}try{try{Object.defineProperties({},{test:{value:0}})}catch(t){throw t}io&&Object.defineProperties(so("div"),{test:{value:0}}),jo=Object.defineProperties}catch(t){jo=function(t,e){var n;for(n in e)e.hasOwnProperty(n)&&Co(t,n,e[n])}}try{Object.create(null),Oo=Object.create}catch(t){Oo=function(){var t=function(){};return function(e,n){var i;return null===e?{}:(t.prototype=e,i=new t,n&&Object.defineProperties(i,n),i)}}()}var To,No,So,Vo=Object.prototype.hasOwnProperty,Bo=Object.prototype.toString,Ko={};if(oo){var Po=["%cRactive.js %c0.8.7 %cin debug mode, %cmore...","color: rgb(114, 157, 52); font-weight: normal;","color: rgb(85, 85, 85); font-weight: normal;","color: rgb(85, 85, 85); font-weight: normal;","color: rgb(82, 140, 224); font-weight: normal; text-decoration: underline;"],Mo="You're running Ractive 0.8.7 in debug mode - messages will be printed to the console to help you fix problems and optimise your application.\n\nTo disable debug mode, add this line at the start of your app:\n  Ractive.DEBUG = false;\n\nTo disable debug mode when your app is minified, add this snippet:\n  Ractive.DEBUG = /unminified/.test(function(){/*unminified*/});\n\nGet help and support:\n  http://docs.ractivejs.org\n  http://stackoverflow.com/questions/tagged/ractivejs\n  http://groups.google.com/forum/#!forum/ractive-js\n  http://twitter.com/ractivejs\n\nFound a bug? Raise an issue:\n  https://github.com/ractivejs/ractive/issues\n\n";So=function(){if(Zr.WELCOME_MESSAGE===!1)return void(So=d);var t="WELCOME_MESSAGE"in Zr?Zr.WELCOME_MESSAGE:Mo,e=!!console.groupCollapsed;e&&console.groupCollapsed.apply(console,Po),console.log(t),e&&console.groupEnd(Po),So=d},No=function(t,e){if(So(),"object"==typeof e[e.length-1]){var n=e.pop(),i=n?n.ractive:null;if(i){var r;i.component&&(r=i.component.name)&&(t="<"+r+"> "+t);var o;(o=n.node||i.fragment&&i.fragment.rendered&&i.find("*"))&&e.push(o)}}console.warn.apply(console,["%cRactive.js: %c"+t,"color: rgb(114, 157, 52);","color: rgb(85, 85, 85);"].concat(e))},To=function(){console.log.apply(console,arguments)}}else No=To=So=d;var Io="Bad arguments",Ro='A function was specified for "%s" %s, but no %s was returned',Lo=function(t,e){return'Missing "'+t+'" '+e+" plugin. You may need to download a plugin via http://docs.ractivejs.org/latest/plugins#"+e+"s"},Do={number:function(t,e){var n;return l(t)&&l(e)?(t=+t,e=+e,n=e-t,n?function(e){return t+e*n}:function(){return t}):null},array:function(t,e){var n,i,r,o;if(!u(t)||!u(e))return null;for(n=[],i=[],o=r=Math.min(t.length,e.length);o--;)i[o]=_(t[o],e[o]);for(o=r;o<t.length;o+=1)n[o]=t[o];for(o=r;o<e.length;o+=1)n[o]=e[o];return function(t){for(var e=r;e--;)n[e]=i[e](t);return n}},object:function(t,e){var n,i,r,o,s;if(!c(t)||!c(e))return null;n=[],o={},r={};for(s in t)Vo.call(t,s)&&(Vo.call(e,s)?(n.push(s),r[s]=_(t[s],e[s])||x(e[s])):o[s]=t[s]);for(s in e)Vo.call(e,s)&&!Vo.call(t,s)&&(o[s]=e[s]);return i=n.length,function(t){for(var e,s=i;s--;)e=n[s],o[e]=r[e](t);return o}}},Uo={construct:{deprecated:"beforeInit",replacement:"onconstruct"},render:{deprecated:"init",message:'The "init" method has been deprecated and will likely be removed in a future release. You can either use the "oninit" method which will fire only once prior to, and regardless of, any eventual ractive instance being rendered, or if you need to access the rendered DOM, use "onrender" instead. See http://docs.ractivejs.org/latest/migrating for more information.'},complete:{deprecated:"complete",replacement:"oncomplete"}},qo=function(t){this.event=t,this.method="on"+t,this.deprecate=Uo[t]};qo.prototype.call=function(t,e,n){if(e[t])return n?e[t](n):e[t](),!0},qo.prototype.fire=function(t,e){this.call(this.method,t,e),!t[this.method]&&this.deprecate&&this.call(this.deprecate.deprecated,t,e)&&(this.deprecate.message?b(this.deprecate.message):b('The method "%s" has been deprecated in favor of "%s" and will likely be removed in a future release. See http://docs.ractivejs.org/latest/migrating for more information.',this.deprecate.deprecated,this.deprecate.replacement)),e?t.fire(this.event,e):t.fire(this.event)};var Ho,Wo={},Qo={},zo={};"function"==typeof Promise?Ho=Promise:(Ho=function(t){var e,n,i,r,o,s,a=[],h=[],u=Wo;i=function(t){return function(i){u===Wo&&(e=i,u=t,n=V(u===Qo?a:h,e),S(n))}},r=i(Qo),o=i(zo);try{t(r,o)}catch(t){o(t)}return s={then:function(t,e){var i=new Ho(function(r,o){var s=function(t,e,n){"function"==typeof t?e.push(function(e){var n;try{n=t(e),B(i,n,r,o)}catch(t){o(t)}}):e.push(n)};s(t,a,r),s(e,h,o),u!==Wo&&S(n)});return i}},s.catch=function(t){return this.then(null,t)},s},Ho.all=function(t){return new Ho(function(e,n){var i,r,o,s=[];if(!t.length)return void e(s);for(o=function(t,r){t&&"function"==typeof t.then?t.then(function(t){s[r]=t,--i||e(s)},n):(s[r]=t,--i||e(s))},i=r=t.length;r--;)o(t[r],r)})},Ho.resolve=function(t){return new Ho(function(e){e(t)})},Ho.reject=function(t){return new Ho(function(e,n){n(t)})});var $o=Ho,Go=function(t,e){this.callback=t,this.parent=e,this.intros=[],this.outros=[],this.children=[],this.totalChildren=this.outroChildren=0,this.detachQueue=[],this.outrosComplete=!1,e&&e.addChild(this)};Go.prototype.add=function(t){var e=t.isIntro?this.intros:this.outros;e.push(t)},Go.prototype.addChild=function(t){this.children.push(t),this.totalChildren+=1,this.outroChildren+=1},Go.prototype.decrementOutros=function(){this.outroChildren-=1,M(this)},Go.prototype.decrementTotal=function(){this.totalChildren-=1,M(this)},Go.prototype.detachNodes=function(){this.detachQueue.forEach(K),this.children.forEach(P)},Go.prototype.ready=function(){I(this)},Go.prototype.remove=function(t){var e=t.isIntro?this.intros:this.outros;T(e,t),M(this)},Go.prototype.start=function(){this.children.forEach(function(t){return t.start()}),this.intros.concat(this.outros).forEach(function(t){return t.start()}),this.ready=!0,M(this)};var Yo,Zo=new qo("change"),Jo={start:function(t,e){var n,i;return e&&(n=new $o(function(t){return i=t})),Yo={previousBatch:Yo,transitionManager:new Go(i,Yo&&Yo.transitionManager),fragments:[],tasks:[],immediateObservers:[],deferredObservers:[],ractives:[],instance:t},n},end:function(){D(),Yo.previousBatch||Yo.transitionManager.start(),Yo=Yo.previousBatch},addFragment:function(t){O(Yo.fragments,t)},addFragmentToRoot:function(t){if(Yo){for(var e=Yo;e.previousBatch;)e=e.previousBatch;O(e.fragments,t)}},addInstance:function(t){Yo&&O(Yo.ractives,t)},addObserver:function(t,e){O(e?Yo.deferredObservers:Yo.immediateObservers,t)},registerTransition:function(t){t._manager=Yo.transitionManager,Yo.transitionManager.add(t)},detachWhenReady:function(t){Yo.transitionManager.detachQueue.push(t)},scheduleTask:function(t,e){var n;if(Yo){for(n=Yo;e&&n.previousBatch;)n=n.previousBatch;n.tasks.push(t)}else t()}},Xo=/\[\s*(\*|[0-9]|[1-9][0-9]+)\s*\]/g,ts=/([^\\](?:\\\\)*)\./,es=/\\|\./g,ns=/((?:\\)+)\1|\\(\.)/g,is=/\*/,rs="Cannot add to a non-numeric value",os=$o.resolve();Co(os,"stop",{value:d});var ss=to.linear,as=new qo("detach"),hs=function(t,e,n,i){this.ractive=t,this.selector=e,this.live=n,this.isComponentQuery=i,this.result=[],this.dirty=!0};hs.prototype.add=function(t){this.result.push(t),this.makeDirty()},hs.prototype.cancel=function(){var t=this._root[this.isComponentQuery?"liveComponentQueries":"liveQueries"],e=this.selector,n=t.indexOf(e);n!==-1&&(t.splice(n,1),t[e]=null)},hs.prototype.init=function(){this.dirty=!1},hs.prototype.makeDirty=function(){var t=this;this.dirty||(this.dirty=!0,Jo.scheduleTask(function(){return t.update()}))},hs.prototype.remove=function(t){var e=this.result.indexOf(this.isComponentQuery?t.instance:t);e!==-1&&this.result.splice(e,1)},hs.prototype.update=function(){this.result.sort(this.isComponentQuery?rt:it),this.dirty=!1},hs.prototype.test=function(t){return this.isComponentQuery?!this.selector||t.name===this.selector:t?ao(t,this.selector):null};var us,ps={},ls={},cs=[],ds=function(t,e){this.value=t,this.isReadonly=this.isKey=!0,this.deps=[],this.links=[],this.parent=e};ds.prototype.get=function(t){return t&&Ot(this),W(this.value)},ds.prototype.getKeypath=function(){return W(this.value)},ds.prototype.rebinding=function(t,e){for(var n=this,i=this.deps.length;i--;)n.deps[i].rebinding(t,e,!1);for(i=this.links.length;i--;)n.links[i].rebinding(t,e,!1)},ds.prototype.register=function(t){this.deps.push(t)},ds.prototype.registerLink=function(t){O(this.links,t)},ds.prototype.unregister=function(t){T(this.deps,t)},ds.prototype.unregisterLink=function(t){T(this.links,t)};var fs=function(t,e){this.parent=t,this.ractive=e,this.value=e?t.getKeypath(e):t.getKeypath(),this.deps=[],this.children={},this.isReadonly=this.isKeypath=!0};fs.prototype.get=function(t){return t&&Ot(this),this.value},fs.prototype.getChild=function(t){if(!(t._guid in this.children)){var e=new fs(this.parent,t);this.children[t._guid]=e,e.owner=this}return this.children[t._guid]},fs.prototype.getKeypath=function(){return this.value},fs.prototype.handleChange=function(){for(var t=this,e=Object.keys(this.children),n=e.length;n--;)t.children[e[n]].handleChange();this.deps.forEach(At)},fs.prototype.rebindChildren=function(t){for(var e=this,n=Object.keys(this.children),i=n.length;i--;){var r=e.children[n[i]];r.value=t.getKeypath(r.ractive),
-r.handleChange()}},fs.prototype.rebinding=function(t,e){for(var n=this,i=t?t.getKeypathModel(this.ractive):void 0,r=Object.keys(this.children),o=r.length;o--;)n.children[r[o]].rebinding(t,e,!1);for(o=this.deps.length;o--;)n.deps[o].rebinding(i,n,!1)},fs.prototype.register=function(t){this.deps.push(t)},fs.prototype.removeChild=function(t){t.ractive&&delete this.children[t.ractive._guid]},fs.prototype.teardown=function(){var t=this;this.owner&&this.owner.removeChild(this);for(var e=Object.keys(this.children),n=e.length;n--;)t.children[e[n]].teardown()},fs.prototype.unregister=function(t){T(this.deps,t),this.deps.length||this.teardown()};var ms=Object.prototype.hasOwnProperty,vs={early:[],mark:[]},gs={early:[],mark:[]},ys=function(t){this.deps=[],this.children=[],this.childByKey={},this.links=[],this.keyModels={},this.unresolved=[],this.unresolvedByKey={},this.bindings=[],this.patternObservers=[],t&&(this.parent=t,this.root=t.root)};ys.prototype.addUnresolved=function(t,e){this.unresolvedByKey[t]||(this.unresolved.push(t),this.unresolvedByKey[t]=[]),this.unresolvedByKey[t].push(e)},ys.prototype.addShuffleTask=function(t,e){void 0===e&&(e="early"),vs[e].push(t)},ys.prototype.addShuffleRegister=function(t,e){void 0===e&&(e="early"),gs[e].push({model:this,item:t})},ys.prototype.clearUnresolveds=function(t){for(var e=this,n=this.unresolved.length;n--;){var i=e.unresolved[n];if(!t||i===t){for(var r=e.unresolvedByKey[i],o=e.has(i),s=r.length;s--;)o&&r[s].attemptResolution(),r[s].resolved&&r.splice(s,1);r.length||(e.unresolved.splice(n,1),e.unresolvedByKey[i]=null)}}},ys.prototype.findMatches=function(t){var e,n,i=t.length,r=[this],o=function(){var i=t[n];"*"===i?(e=[],r.forEach(function(t){e.push.apply(e,t.getValueChildren(t.get()))})):e=r.map(function(t){return t.joinKey(i)}),r=e};for(n=0;n<i;n+=1)o();return e},ys.prototype.getKeyModel=function(t,e){return void 0===t||e?(t in this.keyModels||(this.keyModels[t]=new ds(U(t),this)),this.keyModels[t]):this.parent.getKeyModel(t,!0)},ys.prototype.getKeypath=function(t){return t!==this.ractive&&this._link?this._link.target.getKeypath(t):(this.keypath||(this.keypath=this.parent.isRoot?this.key:""+this.parent.getKeypath(t)+"."+U(this.key)),this.keypath)},ys.prototype.getValueChildren=function(t){var e,n=this;if(u(t))e=[],"length"in this&&this.length!==t.length&&e.push(this.joinKey("length")),t.forEach(function(t,i){e.push(n.joinKey(i))});else if(c(t)||"function"==typeof t)e=Object.keys(t).map(function(t){return n.joinKey(t)});else if(null!=t)return[];return e},ys.prototype.getVirtual=function(t){var e=this,n=this.get(t,{virtual:!1});if(c(n)){for(var i=u(n)?[]:{},r=Object.keys(n),o=r.length;o--;){var s=e.childByKey[r[o]];s?s._link?i[r[o]]=s._link.getVirtual():i[r[o]]=s.getVirtual():i[r[o]]=n[r[o]]}for(o=this.children.length;o--;){var a=e.children[o];a.key in i||!a._link||(i[a.key]=a._link.getVirtual())}return i}return n},ys.prototype.has=function(t){if(this._link)return this._link.has(t);var e=this.get();if(!e)return!1;if(t=W(t),ms.call(e,t))return!0;for(var n=e.constructor;n!==Function&&n!==Array&&n!==Object;){if(ms.call(n.prototype,t))return!0;n=n.constructor}return!1},ys.prototype.joinAll=function(t,e){for(var n=this,i=0;i<t.length;i+=1){if(e&&e.lastLink===!1&&i+1===t.length&&n.childByKey[t[i]]&&n.childByKey[t[i]]._link)return n.childByKey[t[i]];n=n.joinKey(t[i],e)}return n},ys.prototype.notifyUpstream=function(){for(var t=this.parent,e=[this.key];t;)t.patternObservers.length&&t.patternObservers.forEach(function(t){return t.notify(e.slice())}),e.unshift(t.key),t.links.forEach(Nt),t.deps.forEach(At),t=t.parent},ys.prototype.rebinding=function(t,e,n){for(var i=this,r=this.deps.length;r--;)i.deps[r].rebinding&&i.deps[r].rebinding(t,e,n);for(r=this.links.length;r--;){var o=i.links[r];o.owner._link&&o.relinking(t,!0,n)}for(r=this.children.length;r--;){var s=i.children[r];s.rebinding(t?t.joinKey(s.key):void 0,s,n)}for(r=this.unresolved.length;r--;)for(var a=i.unresolvedByKey[i.unresolved[r]],h=a.length;h--;)a[h].rebinding(t,e);for(this.keypathModel&&this.keypathModel.rebinding(t,e,!1),r=this.bindings.length;r--;)i.bindings[r].rebinding(t,e,n)},ys.prototype.register=function(t){this.deps.push(t)},ys.prototype.registerChange=function(t,e){this.isRoot?(this.changes[t]=e,Jo.addInstance(this.root.ractive)):this.root.registerChange(t,e)},ys.prototype.registerLink=function(t){O(this.links,t)},ys.prototype.registerPatternObserver=function(t){this.patternObservers.push(t),this.register(t)},ys.prototype.registerTwowayBinding=function(t){this.bindings.push(t)},ys.prototype.removeUnresolved=function(t,e){var n=this.unresolvedByKey[t];n&&T(n,e)},ys.prototype.shuffled=function(){for(var t=this,e=this.children.length;e--;)t.children[e].shuffled();this.wrapper&&(this.wrapper.teardown(),this.wrapper=null,this.rewrap=!0)},ys.prototype.unregister=function(t){T(this.deps,t)},ys.prototype.unregisterLink=function(t){T(this.links,t)},ys.prototype.unregisterPatternObserver=function(t){T(this.patternObservers,t),this.unregister(t)},ys.prototype.unregisterTwowayBinding=function(t){T(this.bindings,t)},ys.prototype.updateFromBindings=function(t){for(var e=this,n=this.bindings.length;n--;){var i=e.bindings[n].getValue();i!==e.value&&e.set(i)}if(!this.bindings.length){var r=Dt(this.deps);r&&r.value!==this.value&&this.set(r.value)}t&&(this.children.forEach(Lt),this.links.forEach(Lt),this._link&&this._link.updateFromBindings(t))},ds.prototype.addShuffleTask=ys.prototype.addShuffleTask,ds.prototype.addShuffleRegister=ys.prototype.addShuffleRegister,fs.prototype.addShuffleTask=ys.prototype.addShuffleTask,fs.prototype.addShuffleRegister=ys.prototype.addShuffleRegister;var bs=function(t){function e(e,n,i,r){t.call(this,e),this.owner=n,this.target=i,this.key=void 0===r?n.key:r,n.isLink&&(this.sourcePath=""+n.sourcePath+"."+this.key),i.registerLink(this),this.isReadonly=e.isReadonly,this.isLink=!0}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.animate=function(t,e,n,i){return this.target.animate(t,e,n,i)},e.prototype.applyValue=function(t){this.target.applyValue(t)},e.prototype.get=function(t,e){return t&&(Ot(this),e=e||{},e.unwrap=!0),this.target.get(!1,e)},e.prototype.getKeypath=function(e){return e&&e!==this.root.ractive?this.target.getKeypath(e):t.prototype.getKeypath.call(this,e)},e.prototype.getKeypathModel=function(t){return this.keypathModel||(this.keypathModel=new fs(this)),t&&t!==this.root.ractive?this.keypathModel.getChild(t):this.keypathModel},e.prototype.handleChange=function(){this.deps.forEach(At),this.links.forEach(At),this.notifyUpstream()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var n=new e(this,this,this.target.joinKey(t),t);this.children.push(n),this.childByKey[t]=n}return this.childByKey[t]},e.prototype.mark=function(){this.target.mark()},e.prototype.marked=function(){this.links.forEach(Tt),this.deps.forEach(At),this.clearUnresolveds()},e.prototype.notifiedUpstream=function(){this.links.forEach(Nt),this.deps.forEach(At)},e.prototype.relinked=function(){this.target.registerLink(this),this.children.forEach(function(t){return t.relinked()})},e.prototype.relinking=function(t,e,n){var i=this;e&&this.sourcePath&&(t=qt(this.sourcePath,t,this.target)),t&&this.target!==t&&(this.target.unregisterLink(this),this.keypathModel&&this.keypathModel.rebindChildren(t),this.target=t,this.children.forEach(function(e){e.relinking(t.joinKey(e.key),!1,n)}),e&&this.addShuffleTask(function(){i.relinked(),n||i.notifyUpstream()}))},e.prototype.set=function(t){this.target.set(t)},e.prototype.shuffle=function(t){var e=this;if(!this.shuffling)if(this.target.shuffling){this.shuffling=!0;for(var n=t.length;n--;){var i=t[n];n!==i&&(n in e.childByKey&&e.childByKey[n].rebinding(~i?e.joinKey(i):void 0,e.childByKey[n],!0),!~i&&e.keyModels[n]?e.keyModels[n].rebinding(void 0,e.keyModels[n],!1):~i&&e.keyModels[n]&&(e.keyModels[i]||e.childByKey[i].getKeyModel(i),e.keyModels[n].rebinding(e.keyModels[i],e.keyModels[n],!1)))}var r=this.source().length!==this.source().value.length;for(this.links.forEach(function(e){return e.shuffle(t)}),n=this.deps.length;n--;)e.deps[n].shuffle&&e.deps[n].shuffle(t);this.marked(),r&&this.notifyUpstream(),this.shuffling=!1}else this.target.shuffle(t)},e.prototype.source=function(){return this.target.source?this.target.source():this.target},e.prototype.teardown=function(){this._link&&this._link.teardown(),this.children.forEach(Vt)},e}(ys);ys.prototype.link=function(t,e){var n=this._link||new bs(this.parent,this,t,this.key);n.sourcePath=e,this._link&&this._link.relinking(t,!0,!1),this.rebinding(n,this,!1),Ut();var i=!this._link;return this._link=n,i&&this.parent.clearUnresolveds(),n.marked(),n},ys.prototype.unlink=function(){if(this._link){var t=this._link;this._link=void 0,t.rebinding(this,this._link),Ut(),t.teardown()}};var ws;no?(!function(t,e,n){var i,r;if(!n.requestAnimationFrame){for(i=0;i<t.length&&!n.requestAnimationFrame;++i)n.requestAnimationFrame=n[t[i]+"RequestAnimationFrame"];n.requestAnimationFrame||(r=n.setTimeout,n.requestAnimationFrame=function(t){var n,i,o;return n=Date.now(),i=Math.max(0,16-(n-e)),o=r(function(){t(n+i)},i),e=n+i,o})}}(go,0,no),ws=no.requestAnimationFrame):ws=null;var ks=ws,Es=no&&no.performance&&"function"==typeof no.performance.now?function(){return no.performance.now()}:function(){return Date.now()},_s=[],xs=!1,Os=function(t){this.duration=t.duration,this.step=t.step,this.complete=t.complete,this.easing=t.easing,this.start=Es(),this.end=this.start+this.duration,this.running=!0,_s.push(this),xs||ks(Ht)};Os.prototype.tick=function(t){if(!this.running)return!1;if(t>this.end)return this.step&&this.step(1),this.complete&&this.complete(1),!1;var e=t-this.start,n=this.easing(e/this.duration);return this.step&&this.step(n),!0},Os.prototype.stop=function(){this.abort&&this.abort(),this.running=!1};var Cs={},js=function(t){function e(e,n){t.call(this,e),this.ticker=null,e&&(this.key=W(n),this.isReadonly=e.isReadonly,e.value&&(this.value=e.value[this.key],u(this.value)&&(this.length=this.value.length),this.adapt()))}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.adapt=function(){var t=this,e=this.root.adaptors,n=e.length;if(this.rewrap=!1,0!==n){var i=this.wrapper?"newWrapperValue"in this?this.newWrapperValue:this.wrapperValue:this.value,r=this.root.ractive,o=this.getKeypath();if(this.wrapper){var s=this.wrapperValue!==i&&(!this.wrapper.reset||this.wrapper.reset(i)===!1);if(!s)return delete this.newWrapperValue,this.wrapperValue=i,void(this.value=this.wrapper.get());if(this.wrapper.teardown(),this.wrapper=null,void 0!==this.value){var a=this.parent.value||this.parent.createBranch(this.key);a[this.key]!==i&&(a[this.key]=i)}}var h;for(h=0;h<n;h+=1){var u=e[h];if(u.filter(i,o,r)){t.wrapper=u.wrap(r,i,o,Qt(o)),t.wrapperValue=i,t.wrapper.__model=t,t.value=t.wrapper.get();break}}}},e.prototype.animate=function(t,e,n,i){var r=this;this.ticker&&this.ticker.stop();var o,s=new $o(function(t){return o=t});return this.ticker=new Os({duration:n.duration,easing:n.easing,step:function(t){var e=i(t);r.applyValue(e),n.step&&n.step(t,e)},complete:function(){r.applyValue(e),n.complete&&n.complete(e),r.ticker=null,o()}}),s.stop=this.ticker.stop,s},e.prototype.applyValue=function(t){if(!p(t,this.value)){if(this.registerChange(this.getKeypath(),t),this.parent.wrapper&&this.parent.wrapper.set)this.parent.wrapper.set(this.key,t),this.parent.value=this.parent.wrapper.get(),this.value=this.parent.value[this.key],this.wrapper&&(this.newWrapperValue=this.value),this.adapt();else if(this.wrapper)this.newWrapperValue=t,this.adapt();else{var e=this.parent.value||this.parent.createBranch(this.key);e[this.key]=t,this.value=t,this.adapt()}this.parent.clearUnresolveds(),this.clearUnresolveds(),u(t)&&(this.length=t.length),this.links.forEach(At),this.children.forEach(Ft),this.deps.forEach(At),this.notifyUpstream(),"length"===this.key&&u(this.parent.value)&&(this.parent.length=this.parent.value.length)}},e.prototype.createBranch=function(t){var e=l(t)?[]:{};return this.set(e),e},e.prototype.get=function(t,e){return this._link?this._link.get(t,e):(t&&Ot(this),e&&e.virtual?this.getVirtual(!1):(t||e&&e.unwrap)&&this.wrapper?this.wrapperValue:this.value)},e.prototype.getKeypathModel=function(t){return this.keypathModel||(this.keypathModel=new fs(this)),this.keypathModel},e.prototype.joinKey=function(t,n){if(this._link)return!n||!n.lastLink!=!1||void 0!==t&&""!==t?this._link.joinKey(t):this;if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var i=new e(this,t);this.children.push(i),this.childByKey[t]=i}return this.childByKey[t]._link?this.childByKey[t]._link:this.childByKey[t]},e.prototype.mark=function(){if(this._link)return this._link.mark();var t=this.retrieve();if(!p(t,this.value)){var e=this.value;this.value=t,(e!==t||this.rewrap)&&(this.wrapper&&(this.newWrapperValue=t),this.adapt()),u(t)&&(this.length=t.length),this.children.forEach(Ft),this.links.forEach(Tt),this.deps.forEach(At),this.clearUnresolveds()}},e.prototype.merge=function(t,e){var n=this.value,i=t;n===i&&(n=zt(this)),e&&(n=n.map(e),i=i.map(e));var r=n.length,o={},s=0,a=n.map(function(t){var e,n=s;do{if(e=i.indexOf(t,n),e===-1)return-1;n=e+1}while(o[e]===!0&&n<r);return e===s&&(s+=1),o[e]=!0,e});this.parent.value[this.key]=t,this.shuffle(a)},e.prototype.retrieve=function(){return this.parent.value?this.parent.value[this.key]:void 0},e.prototype.set=function(t){this.ticker&&this.ticker.stop(),this.applyValue(t)},e.prototype.shuffle=function(t){var e=this;this.shuffling=!0;for(var n=t.length;n--;){var i=t[n];n!==i&&(n in e.childByKey&&e.childByKey[n].rebinding(~i?e.joinKey(i):void 0,e.childByKey[n],!0),!~i&&e.keyModels[n]?e.keyModels[n].rebinding(void 0,e.keyModels[n],!1):~i&&e.keyModels[n]&&(e.keyModels[i]||e.childByKey[i].getKeyModel(i),e.keyModels[n].rebinding(e.keyModels[i],e.keyModels[n],!1)))}var r=this.length!==this.value.length;for(this.links.forEach(function(e){return e.shuffle(t)}),Ut("early"),n=this.deps.length;n--;)e.deps[n].shuffle&&e.deps[n].shuffle(t);this.mark(),Ut("mark"),r&&this.notifyUpstream(),this.shuffling=!1},e.prototype.teardown=function(){this._link&&this._link.teardown(),this.children.forEach(Vt),this.wrapper&&this.wrapper.teardown(),this.keypathModel&&this.keypathModel.teardown()},e}(ys),As=function(t){function e(){t.call(this,null,"@global"),this.value="undefined"!=typeof global?global:window,this.isRoot=!0,this.root=this,this.adaptors=[]}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeypath=function(){return"@global"},e.prototype.registerChange=function(){},e}(js),Fs=new As,Ts=/^@[^\(]+\(([^\)]+)\)/,Ns=Array.prototype,Ss={},Vs=new qo("update"),Bs=Xt("push").model,Ks=Xt("pop").model,Ps=Xt("shift").model,Ms=Xt("unshift").model,Is=Xt("sort").model,Rs=Xt("splice").model,Ls=Xt("reverse").model,Ds=io&&io.querySelector,Us=new qo("insert"),qs=function(t,e,n){var i=this;for(this.fragment=t,this.reference=q(e),this.callback=n,this.keys=H(e),this.resolved=!1,this.contexts=[];t;)t.context&&(t.context.addUnresolved(i.keys[0],i),i.contexts.push(t.context)),t=t.componentParent||t.parent};qs.prototype.attemptResolution=function(){if(!this.resolved){var t=Et(this.fragment,this.reference);t&&(this.resolved=!0,this.callback(t))}},qs.prototype.forceResolution=function(){if(!this.resolved){var t=this.fragment.findContext().joinAll(this.keys);this.callback(t),this.resolved=!0}},qs.prototype.rebinding=function(t,e){var n=this;e&&e.removeUnresolved(this.keys[0],this),t&&Jo.scheduleTask(function(){return t.addUnresolved(n.keys[0],n)})},qs.prototype.unbind=function(){var t=this;this.fragment&&T(this.fragment.unresolved,this),this.resolved||this.contexts.forEach(function(e){return e.removeUnresolved(t.keys[0],t)})};var Hs=function(t,e,n,i){var r=this;this.context=i.context||t,this.callback=n,this.ractive=t,e?this.resolved(e):(this.keypath=i.keypath,this.resolver=new qs(t.fragment,i.keypath,function(t){r.resolved(t)})),i.init!==!1?(this.dirty=!0,this.dispatch()):this.oldValue=this.newValue,this.defer=i.defer,this.once=i.once,this.strict=i.strict,this.dirty=!1};Hs.prototype.cancel=function(){this.cancelled=!0,this.model?this.model.unregister(this):this.resolver.unbind()},Hs.prototype.dispatch=function(){this.cancelled||(this.callback.call(this.context,this.newValue,this.oldValue,this.keypath),this.oldValue=this.model?this.model.get():this.newValue,this.dirty=!1)},Hs.prototype.handleChange=function(){var t=this;if(!this.dirty){var e=this.model.get();if(p(e,this.oldValue))return;if(this.newValue=e,this.strict&&this.newValue===this.oldValue)return;Jo.addObserver(this,this.defer),this.dirty=!0,this.once&&Jo.scheduleTask(function(){return t.cancel()})}},Hs.prototype.rebinding=function(t,e){var n=this;return t=qt(this.keypath,t,e),t!==this.model&&(this.model&&this.model.unregister(this),void(t&&t.addShuffleTask(function(){return n.resolved(t)})))},Hs.prototype.resolved=function(t){this.model=t,this.keypath=t.getKeypath(this.ractive),this.oldValue=void 0,this.newValue=t.get(),t.register(this)};var Ws=function(t,e,n,i,r){var o=this;this.context=r.context||t,this.ractive=t,this.baseModel=e,this.keys=n,this.callback=i;var s=n.join("\\.").replace(/\*/g,"(.+)"),a=e.getKeypath(t);this.pattern=new RegExp("^"+(a?a+"\\.":"")+s+"$"),this.oldValues={},this.newValues={},this.defer=r.defer,this.once=r.once,this.strict=r.strict,this.dirty=!1,this.changed=[],this.partial=!1;var h=e.findMatches(this.keys);h.forEach(function(t){o.newValues[t.getKeypath(o.ractive)]=t.get()}),r.init!==!1?this.dispatch():this.oldValues=this.newValues,e.registerPatternObserver(this)};Ws.prototype.cancel=function(){this.baseModel.unregisterPatternObserver(this)},Ws.prototype.dispatch=function(){var t=this;if(Object.keys(this.newValues).forEach(function(e){if(!t.newKeys||t.newKeys[e]){var n=t.newValues[e],i=t.oldValues[e];if(!(t.strict&&n===i||p(n,i))){var r=[n,i,e];if(e){var o=t.pattern.exec(e);o&&(r=r.concat(o.slice(1)))}t.callback.apply(t.context,r)}}}),this.partial)for(var e in this.newValues)this.oldValues[e]=this.newValues[e];else this.oldValues=this.newValues;this.newKeys=null,this.dirty=!1},Ws.prototype.notify=function(t){this.changed.push(t)},Ws.prototype.shuffle=function(t){var e=this;if(u(this.baseModel.value)){var n=this.baseModel.getKeypath(this.ractive),i=this.baseModel.value.length,r=this.keys.length>1?"."+this.keys.slice(1).join("."):"";this.newKeys={};for(var o=0;o<t.length;o++)t[o]!==-1&&t[o]!==o&&(e.newKeys[""+n+"."+o+r]=!0);for(var s=t.touchedFrom;s<i;s++)e.newKeys[""+n+"."+s+r]=!0}},Ws.prototype.handleChange=function(){var t=this;if(!this.dirty||this.changed.length){if(this.dirty||(this.newValues={}),this.changed.length){var e=0,n=this.baseModel.isRoot?this.changed.map(function(t){return t.map(U).join(".")}):this.changed.map(function(e){return t.baseModel.getKeypath(t.ractive)+"."+e.map(U).join(".")});if(this.baseModel.findMatches(this.keys).forEach(function(i){var r=i.getKeypath(t.ractive);n.filter(function(t){return 0===r.indexOf(t)||0===t.indexOf(r)}).length&&(e++,t.newValues[r]=i.get())}),!e)return;this.partial=!0}else this.baseModel.findMatches(this.keys).forEach(function(e){var n=e.getKeypath(t.ractive);t.newValues[n]=e.get()}),this.partial=!1;Jo.addObserver(this,this.defer),this.dirty=!0,this.changed.length=0,this.once&&this.cancel()}};var Qs=function(t,e,n,i){this.context=t,this.model=e,this.keypath=e.getKeypath(),this.callback=n,this.pending=null,e.register(this),i.init!==!1?(this.sliced=[],this.shuffle([]),this.handleChange()):this.sliced=this.slice()};Qs.prototype.handleChange=function(){this.pending?(this.callback(this.pending),this.pending=null):(this.shuffle(this.sliced.map(We)),this.handleChange())},Qs.prototype.shuffle=function(t){var e,n=this,i=this.slice(),r=[],o=[],s={};t.forEach(function(t,i){s[t]=!0,t!==i&&void 0===e&&(e=i),t===-1&&o.push(n.sliced[i])}),void 0===e&&(e=t.length);for(var a=i.length,h=0;h<a;h+=1)s[h]||r.push(i[h]);this.pending={inserted:r,deleted:o,start:e},this.sliced=i},Qs.prototype.slice=function(){var t=this.model.get();return u(t)?t.slice():[]};var zs={init:!1,once:!0},$s=Xt("pop").path,Gs=Xt("push").path,Ys="/* Ractive.js component styles */",Zs=[],Js=!1,Xs=null,ta=null;!io||Xs&&Xs.parentNode||(Xs=io.createElement("style"),Xs.type="text/css",io.getElementsByTagName("head")[0].appendChild(Xs),ta=!!Xs.styleSheet);var ea=new qo("render"),na=new qo("complete"),ia={extend:function(t,e,n){e.adapt=rn(e.adapt,A(n.adapt))},init:function(){}},ra=/(?:^|\})?\s*([^\{\}]+)\s*\{/g,oa=/\/\*[\s\S]*?\*\//g,sa=/((?:(?:\[[^\]+]\])|(?:[^\s\+\>~:]))+)((?:::?[^\s\+\>\~\(:]+(?:\([^\)]+\))?)*\s*[\s\+\>\~]?)\s*/g,aa=/^(?:@|\d+%)/,ha=/\[data-ractive-css~="\{[a-z0-9-]+\}"]/g,ua={name:"css",extend:function(t,e,n){if(n.css){var i=pn(),r=n.noCssTransform?n.css:hn(n.css,i);e.cssId=i,Je({id:i,styles:r})}},init:function(t,e,n){n.css&&b("\nThe css option is currently not supported on a per-instance basis and will be discarded. Instead, we recommend instantiating from a component definition with a css option.\n\nconst Component = Ractive.extend({\n\t...\n\tcss: '/* your css */',\n\t...\n});\n\nconst componentInstance = new Component({ ... })\n\t\t")}},pa={name:"data",extend:function(t,e,n){var i,r;if(n.data&&c(n.data))for(i in n.data)r=n.data[i],r&&"object"==typeof r&&(c(r)||u(r))&&b("Passing a `data` option with object and array properties to Ractive.extend() is discouraged, as mutating them is likely to cause bugs. Consider using a data function instead:\n\n  // this...\n  data: function () {\n    return {\n      myObject: {}\n    };\n  })\n\n  // instead of this:\n  data: {\n    myObject: {}\n  }");e.data=cn(e.data,n.data)},init:function(t,e,n){var i=cn(t.prototype.data,n.data);if("function"==typeof i&&(i=i.call(e)),i&&i.constructor===Object)for(var r in i)"function"==typeof i[r]&&(i[r]=Q(i[r],e));return i||{}},reset:function(t){var e=this.init(t.constructor,t,t.viewmodel);return t.viewmodel.root.set(e),!0}},la=4,ca=/\$\{([^\}]+)\}/g,da=Oo(null),fa=null,ma=["delimiters","tripleDelimiters","staticDelimiters","staticTripleDelimiters","csp","interpolate","preserveWhitespace","sanitize","stripComments","contextLines"],va="Either preparse or use a ractive runtime source that includes the parser. ",ga="Either use:\n\n\tRactive.parse.computedStrings( component.computed )\n\nat build time to pre-convert the strings to functions, or use functions instead of strings in computed properties.",ya={fromId:function(t,e){if(!io){if(e&&e.noThrow)return;throw new Error("Cannot retrieve template #"+t+" as Ractive is not running in a browser.")}t&&(t=t.replace(/^#/,""));var n;if(!(n=io.getElementById(t))){if(e&&e.noThrow)return;throw new Error("Could not find template element with id #"+t)}if("SCRIPT"!==n.tagName.toUpperCase()){if(e&&e.noThrow)return;throw new Error("Template element with id #"+t+", must be a <script> element")}return"textContent"in n?n.textContent:n.innerHTML},isParsed:function(t){return!("string"==typeof t)},getParseOptions:function(t){return t.defaults&&(t=t.defaults),ma.reduce(function(e,n){return e[n]=t[n],e},{})},parse:function(t,e){bn(fa,"template",va);var n=fa(t,e);return yn(n),n},parseFor:function(t,e){return this.parse(t,this.getParseOptions(e))}},ba={name:"template",extend:function(t,e,n){if("template"in n){var i=n.template;"function"==typeof i?e.template=i:e.template=xn(i,e)}},init:function(t,e,n){var i="template"in n?n.template:t.prototype.template;if(i=i||{v:la,t:[]},"function"==typeof i){var r=i;i=_n(e,r),e._config.template={fn:r,result:i}}i=xn(i,e),e.template=i.t,i.p&&jn(e.partials,i.p)},reset:function(t){var e=En(t);if(e){var n=xn(e,t);return t.template=n.t,jn(t.partials,n.p,!0),!0}}},wa=["adaptors","components","computed","decorators","easing","events","interpolators","partials","transitions"],ka=function(t,e){this.name=t,this.useDefaults=e};ka.prototype.extend=function(t,e,n){this.configure(this.useDefaults?t.defaults:t,this.useDefaults?e:e.constructor,n)},ka.prototype.init=function(){},ka.prototype.configure=function(t,e,n){var i=this.name,r=n[i],o=Oo(t[i]);for(var s in r)o[s]=r[s];e[i]=o},ka.prototype.reset=function(t){var e=t[this.name],n=!1;return Object.keys(e).forEach(function(t){var i=e[t];i._fn&&(i._fn.isOwner?e[t]=i._fn:delete e[t],n=!0)}),n};var Ea=wa.map(function(t){return new ka(t,"computed"===t)}),_a={adapt:ia,css:ua,data:pa,template:ba},xa=Object.keys(Xr),Oa=Kn(xa.filter(function(t){return!_a[t]})),Ca=Kn(xa.concat(Ea.map(function(t){return t.name}))),ja=[].concat(xa.filter(function(t){return!Ea[t]&&!_a[t]}),Ea,_a.template,_a.css),Aa={extend:function(t,e,n){return Vn("extend",t,e,n)},init:function(t,e,n){return Vn("init",t,e,n)},reset:function(t){return ja.filter(function(e){return e.reset&&e.reset(t)}).map(function(t){return t.name})},order:ja},Fa=["template","partials","components","decorators","events"],Ta=new qo("complete"),Na=new qo("reset"),Sa=new qo("render"),Va=new qo("unrender"),Ba=1,Ka=2,Pa=3,Ma=4,Ia=7,Ra=8,La=13,Da=15,Ua=16,qa=18,Ha=19,Wa=20,Qa=21,za=30,$a=50,Ga=51,Ya=52,Za=53,Ja=54,Xa=70,th=71,eh=72,nh=73,ih=function(t){this.parentFragment=t.parentFragment,this.ractive=t.parentFragment.ractive,this.template=t.template,this.index=t.index,this.type=t.template.t,this.dirty=!1};ih.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.parentFragment.bubble())},ih.prototype.destroyed=function(){this.fragment&&this.fragment.destroyed()},ih.prototype.find=function(){return null},ih.prototype.findAll=function(){},ih.prototype.findComponent=function(){return null},ih.prototype.findAllComponents=function(){},ih.prototype.findNextNode=function(){return this.parentFragment.findNextNode(this)},ih.prototype.shuffled=function(){this.fragment&&this.fragment.shuffled()},ih.prototype.valueOf=function(){return this.toString()};var rh=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){t&&Ot(this);var e=this.parent.get();return e?e[this.key]:void 0},e.prototype.handleChange=function(){this.dirty=!0,this.links.forEach(Tt),this.deps.forEach(At),this.children.forEach(At),this.clearUnresolveds()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var n=new e(this,t);this.children.push(n),this.childByKey[t]=n}return this.childByKey[t]},e}(js),oh=function(t){function e(e,n){var i=this;t.call(this,e.ractive.viewmodel,null),this.fragment=e,this.template=n,this.isReadonly=!0,this.dirty=!0,this.fn=gn(n.s,n.r.length),this.resolvers=[],this.models=this.template.r.map(function(t,e){var n=$t(i.fragment,t);return n||Ln(i,t,e),n}),this.dependencies=[],this.shuffle=void 0,this.bubble()}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(t){void 0===t&&(t=!0),this.registered&&delete this.root.expressions[this.keypath],this.keypath=void 0,t&&(this.dirty=!0,this.handleChange())},e.prototype.get=function(t){return t&&Ot(this),this.dirty&&(this.dirty=!1,this.value=this.getValue(),this.wrapper&&(this.newWrapperValue=this.value),this.adapt()),t&&this.wrapper?this.wrapperValue:this.value},e.prototype.getKeypath=function(){var t=this;return this.template?(this.keypath||(this.keypath="@"+this.template.s.replace(/_(\d+)/g,function(e,n){if(n>=t.models.length)return e;var i=t.models[n];return i?i.getKeypath():"@undefined"}),this.root.expressions[this.keypath]=this,this.registered=!0),this.keypath):"@undefined"},e.prototype.getValue=function(){var t=this;_t();var e;try{var n=this.models.map(function(t){return t?t.get(!0):void 0});e=this.fn.apply(this.fragment.ractive,n)}catch(t){b("Failed to compute "+this.getKeypath()+": "+(t.message||t))}var i=xt();return this.dependencies.filter(function(t){return!~i.indexOf(t)}).forEach(function(e){e.unregister(t),T(t.dependencies,e)}),i.filter(function(e){return!~t.dependencies.indexOf(e)}).forEach(function(e){e.register(t),t.dependencies.push(e)}),e},e.prototype.handleChange=function(){this.dirty=!0,this.links.forEach(Tt),this.deps.forEach(At),this.children.forEach(At),this.clearUnresolveds()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var e=new rh(this,t);this.children.push(e),this.childByKey[t]=e}return this.childByKey[t]},e.prototype.mark=function(){this.handleChange()},e.prototype.rebinding=function(t,e,n){var i=this.models.indexOf(e);~i&&(t=qt(this.template.r[i],t,e),t!==e&&(e.unregister(this),this.models.splice(i,1,t),t&&t.addShuffleRegister(this,"mark"))),this.bubble(!n)},e.prototype.retrieve=function(){return this.get()},e.prototype.teardown=function(){var e=this;this.unbind(),this.fragment=void 0,this.dependencies&&this.dependencies.forEach(function(t){return t.unregister(e)}),t.prototype.teardown.call(this)},e.prototype.unregister=function(e){t.prototype.unregister.call(this,e),this.deps.length||this.teardown()},e.prototype.unbind=function(){this.resolvers.forEach(Bt)},e}(js),sh=function(t){function e(e,n){t.call(this,e,n)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyValue=function(t){if(!p(t,this.value))for(var e=this.parent,n=[this.key];e;){if(e.base){var i=e.model.joinAll(n);i.applyValue(t);break}n.unshift(e.key),e=e.parent}},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var n=new e(this,t);this.children.push(n),this.childByKey[t]=n}return this.childByKey[t]},e.prototype.retrieve=function(){var t=this.parent.get();return t&&this.key in t?t[this.key]:void 0},e}(js),ah=function(t){function e(e,n){var i=this;t.call(this,null,null),this.dirty=!0,this.root=e.ractive.viewmodel,this.template=n,this.resolvers=[],this.base=Dn(e,n);var r;this.base||(r=e.resolve(n.r,function(t){i.base=t,i.bubble(),T(i.resolvers,r)}),this.resolvers.push(r));var o=this.intermediary={handleChange:function(){return i.handleChange()},rebinding:function(t,e){if(e===i.base)t=qt(n,t,e),t!==i.base&&(i.base.unregister(o),i.base=t);else{var r=i.members.indexOf(e);~r&&(t=qt(n.m[r].n,t,e),t!==i.members[r]&&i.members.splice(r,1,t))}t!==e&&e.unregister(o),t&&t.addShuffleTask(function(){return t.register(o)}),i.bubble()}};this.members=n.m.map(function(t,n){if("string"==typeof t)return{get:function(){return t}};var r,s;return t.t===za?(r=$t(e,t.n),r?r.register(o):(s=e.resolve(t.n,function(t){i.members[n]=t,t.register(o),i.handleChange(),T(i.resolvers,s)}),i.resolvers.push(s)),r):(r=new oh(e,t),r.register(o),r)}),this.isUnresolved=!0,this.bubble()}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(){this.base&&(this.dirty||this.handleChange())},e.prototype.forceResolution=function(){this.resolvers.forEach(function(t){return t.forceResolution()}),this.dirty=!0,this.bubble()},e.prototype.get=function(t){var e=this;if(this.dirty){this.bubble();for(var n=this.members.length,i=!0;i&&n--;)e.members[n]||(i=!1);if(this.base&&i){var r=this.members.map(function(t){return U(String(t.get()))}),o=this.base.joinAll(r);o!==this.model&&(this.model&&(this.model.unregister(this),this.model.unregisterTwowayBinding(this)),this.model=o,this.parent=o.parent,this.model.register(this),this.model.registerTwowayBinding(this),this.keypathModel&&this.keypathModel.handleChange())}return this.value=this.model?this.model.get(t):void 0,this.dirty=!1,this.mark(),this.value}return this.model?this.model.get(t):void 0},e.prototype.getValue=function(){var t=this;this.value=this.model?this.model.get():void 0;for(var e=this.bindings.length;e--;){var n=t.bindings[e].getValue();if(n!==t.value)return n}var i=Dt(this.deps);return i?i.value:this.value},e.prototype.getKeypath=function(){return this.model?this.model.getKeypath():"@undefined"},e.prototype.handleChange=function(){this.dirty=!0,this.mark()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;
-if(!this.childByKey.hasOwnProperty(t)){var e=new sh(this,t);this.children.push(e),this.childByKey[t]=e}return this.childByKey[t]},e.prototype.mark=function(){this.dirty&&this.deps.forEach(At),this.links.forEach(Tt),this.children.forEach(Ft),this.clearUnresolveds()},e.prototype.retrieve=function(){return this.value},e.prototype.rebinding=function(){},e.prototype.set=function(t){if(!this.model)throw new Error("Unresolved reference expression. This should not happen!");this.model.set(t)},e.prototype.unbind=function(){this.resolvers.forEach(Bt),this.model&&(this.model.unregister(this),this.model.unregisterTwowayBinding(this))},e}(js),hh=function(e){function n(t){e.call(this,t),this.fragment=null}return n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.bind=function(){Un(this),this.fragment=new Ip({owner:this,template:this.template.f}).bind()},n.prototype.detach=function(){return this.fragment?this.fragment.detach():t()},n.prototype.find=function(t){if(this.fragment)return this.fragment.find(t)},n.prototype.findAll=function(t,e){this.fragment&&this.fragment.findAll(t,e)},n.prototype.findComponent=function(t){if(this.fragment)return this.fragment.findComponent(t)},n.prototype.findAllComponents=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},n.prototype.firstNode=function(t){return this.fragment&&this.fragment.firstNode(t)},n.prototype.rebinding=function(){var t=this;this.locked||(this.locked=!0,Jo.scheduleTask(function(){t.locked=!1,Un(t)}))},n.prototype.render=function(t){this.rendered=!0,this.fragment&&this.fragment.render(t)},n.prototype.toString=function(t){return this.fragment?this.fragment.toString(t):""},n.prototype.unbind=function(){this.aliases={},this.fragment&&this.fragment.unbind()},n.prototype.unrender=function(t){this.rendered&&this.fragment&&this.fragment.unrender(t),this.rendered=!1},n.prototype.update=function(){this.dirty&&(this.dirty=!1,this.fragment.update())},n}(ih),uh=/\s+/,ph=/\/\*(?:[\s\S]*?)\*\//g,lh=/url\(\s*(['"])(?:\\[\s\S]|(?!\1).)*\1\s*\)|url\((?:\\[\s\S]|[^)])*\)|(['"])(?:\\[\s\S]|(?!\1).)*\2/gi,ch=/\0(\d+)/g,dh=[void 0,"text","search","url","email","hidden","password","search","reset","submit"],fh={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor",class:"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName",for:"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},mh=/^(allowFullscreen|async|autofocus|autoplay|checked|compact|controls|declare|default|defaultChecked|defaultMuted|defaultSelected|defer|disabled|enabled|formNoValidate|hidden|indeterminate|inert|isMap|itemScope|loop|multiple|muted|noHref|noResize|noShade|noValidate|noWrap|open|pauseOnExit|readOnly|required|reversed|scoped|seamless|selected|sortable|translate|trueSpeed|typeMustMatch|visible)$/i,vh=/^(?:area|base|br|col|command|doctype|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,gh={quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},yh=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],bh=new RegExp("&(#?(?:x[\\w\\d]+|\\d+|"+Object.keys(gh).join("|")+"));?","g"),wh="function"==typeof String.fromCodePoint,kh=wh?String.fromCodePoint:String.fromCharCode,Eh=/</g,_h=/>/g,xh=/&/g,Oh=65533,Ch=function(t){function e(e){t.call(this,e),this.name=e.template.n,this.namespace=null,this.owner=e.owner||e.parentFragment.owner||e.element||qn(e.parentFragment),this.element=e.element||(this.owner.attributeByName?this.owner:qn(e.parentFragment)),this.parentFragment=e.parentFragment,this.ractive=this.parentFragment.ractive,this.rendered=!1,this.updateDelegate=null,this.fragment=null,this.element.attributeByName[this.name]=this,u(e.template.f)?this.fragment=new Ip({owner:this,template:e.template.f}):(this.value=e.template.f,0===this.value&&(this.value="")),this.interpolator=this.fragment&&1===this.fragment.items.length&&this.fragment.items[0].type===Ka&&this.fragment.items[0],this.interpolator&&(this.interpolator.owner=this)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment&&this.fragment.bind()},e.prototype.bubble=function(){this.dirty||(this.parentFragment.bubble(),this.element.bubble(),this.dirty=!0)},e.prototype.destroyed=function(){this.updateDelegate(!0)},e.prototype.getString=function(){return this.fragment?this.fragment.toString():null!=this.value?""+this.value:""},e.prototype.getValue=function(){return this.fragment?this.fragment.valueOf():!!mh.test(this.name)||this.value},e.prototype.render=function(){var t=this.element.node;if(this.node=t,t.namespaceURI&&t.namespaceURI!==xo.html||(this.propertyName=fh[this.name]||this.name,void 0!==t[this.propertyName]&&(this.useProperty=!0),(mh.test(this.name)||this.isTwoway)&&(this.isBoolean=!0),"value"===this.propertyName&&(t._ractive.value=this.value)),t.namespaceURI){var e=this.name.indexOf(":");e!==-1?this.namespace=ci(t,this.name.slice(0,e)):this.namespace=t.namespaceURI}this.rendered=!0,this.updateDelegate=Qn(this),this.updateDelegate()},e.prototype.toString=function(){var t=this.getValue();if("value"!==this.name||void 0===this.element.getAttribute("contenteditable")&&"select"!==this.element.name&&"textarea"!==this.element.name){if("name"===this.name&&"input"===this.element.name&&this.interpolator&&"radio"===this.element.getAttribute("type"))return'name="{{'+this.interpolator.model.getKeypath()+'}}"';if(this.owner!==this.element||"style"!==this.name&&"class"!==this.name&&!this.styleName&&!this.inlineClass){if(!(this.rendered||this.owner!==this.element||this.name.indexOf("style-")&&this.name.indexOf("class-")))return void(this.name.indexOf("style-")?this.inlineClass=this.name.substr(6):this.styleName=o(this.name.substr(6)));if(mh.test(this.name))return t?this.name:"";if(null==t)return"";var e=r(this.getString());return e?""+this.name+'="'+e+'"':this.name}}},e.prototype.unbind=function(){this.fragment&&this.fragment.unbind()},e.prototype.unrender=function(){this.updateDelegate(!0),this.rendered=!1},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.fragment&&this.fragment.update(),this.rendered&&this.updateDelegate(),this.isTwoway&&!this.locked&&this.interpolator.twowayBinding.lastVal(!0,this.interpolator.model.get()))},e}(ih),jh=function(t){function e(e){t.call(this,e),this.owner=e.owner||e.parentFragment.owner||qn(e.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(e.parentFragment),this.flag="l"===e.template.v?"lazy":"twoway",this.element.type===Ia&&(u(e.template.f)&&(this.fragment=new Ip({owner:this,template:e.template.f})),this.interpolator=this.fragment&&1===this.fragment.items.length&&this.fragment.items[0].type===Ka&&this.fragment.items[0])}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment&&this.fragment.bind(),di(this,this.getValue(),!0)},e.prototype.bubble=function(){this.dirty||(this.element.bubble(),this.dirty=!0)},e.prototype.getValue=function(){return this.fragment?this.fragment.valueOf():"value"in this?this.value:!("f"in this.template)||this.template.f},e.prototype.render=function(){di(this,this.getValue(),!0)},e.prototype.toString=function(){return""},e.prototype.unbind=function(){this.fragment&&this.fragment.unbind(),delete this.element[this.flag]},e.prototype.unrender=function(){this.element.rendered&&this.element.recreateTwowayBinding()},e.prototype.update=function(){this.dirty&&(this.fragment&&this.fragment.update(),di(this,this.getValue(),!0))},e}(ih),Ah=io?so("div"):null,Fh=!1,Th=function(t){function e(e){t.call(this,e),this.attributes=[],this.owner=e.owner,this.fragment=new Ip({ractive:this.ractive,owner:this,template:this.template}),this.fragment.findNextNode=d,this.dirty=!1}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment.bind()},e.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.owner.bubble())},e.prototype.render=function(){this.node=this.owner.node,this.node&&(this.isSvg=this.node.namespaceURI===wo),Fh=!0,this.rendered||this.fragment.render(),Fh=!1,this.rendered=!0,this.dirty=!0,this.update()},e.prototype.toString=function(){return this.fragment.toString()},e.prototype.unbind=function(){this.fragment.unbind()},e.prototype.unrender=function(){this.rendered=!1,this.fragment.unrender()},e.prototype.update=function(){var t,e,n=this;this.dirty&&(this.dirty=!1,Fh=!0,this.fragment.update(),Fh=!1,this.rendered&&this.node&&(t=this.fragment.toString(),e=vi(t,this.isSvg),this.attributes.filter(function(t){return gi(e,t)}).forEach(function(t){n.node.removeAttribute(t.name)}),e.forEach(function(t){n.node.setAttribute(t.name,t.value)}),this.attributes=e))},e}(ih),Nh=["pop","push","reverse","shift","sort","splice","unshift"],Sh=[];Nh.forEach(function(t){var e=function(){for(var e=this,n=[],i=arguments.length;i--;)n[i]=arguments[i];var r=Zt(this.length,t,n);this._ractive.wrappers.forEach(function(t){t.magic&&(t.magic.locked=!0)});var o=Array.prototype[t].apply(this,arguments);Jo.start(),this._ractive.setting=!0;for(var s=this._ractive.wrappers.length;s--;)yi(e._ractive.wrappers[s],e,t,r);return Jo.end(),this._ractive.setting=!1,this._ractive.wrappers.forEach(function(t){t.magic&&(t.magic.locked=!1)}),o};Co(Sh,t,{value:e,configurable:!0})});var Vh,Bh;({}).__proto__?(Vh=function(t){return t.__proto__=Sh},Bh=function(t){return t.__proto__=Array.prototype}):(Vh=function(t){for(var e=Nh.length;e--;){var n=Nh[e];Co(t,n,{value:Sh[n],configurable:!0})}},Bh=function(t){for(var e=Nh.length;e--;)delete t[Nh[e]]}),Vh.unpatch=Bh;var Kh=Vh,Ph="Something went wrong in a rather interesting way",Mh={filter:function(t){return u(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Ih(t,e,n)}},Ih=function(t,e){this.root=t,this.value=e,this.__model=null,e._ractive||(Co(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Kh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)};Ih.prototype.get=function(){return this.value},Ih.prototype.reset=function(t){return this.value===t},Ih.prototype.teardown=function(){var t,e,n,i,r;if(t=this.value,e=t._ractive,n=e.wrappers,i=e.instances,e.setting)return!1;if(r=n.indexOf(this),r===-1)throw new Error(Ph);if(n.splice(r,1),n.length){if(i[this.root._guid]-=1,!i[this.root._guid]){if(r=i.indexOf(this.root),r===-1)throw new Error(Ph);i.splice(r,1)}}else delete t._ractive,Kh.unpatch(this.value)};var Rh;try{Object.defineProperty({},"test",{get:function(){},set:function(){}}),Rh={filter:function(t){return t&&"object"==typeof t},wrap:function(t,e,n){return new Dh(t,e,n)}}}catch(t){Rh=!1}var Lh=Rh,Dh=function(t,e,n){var i=this;this.ractive=t,this.value=e,this.keypath=n,this.originalDescriptors={},Object.keys(e).forEach(function(e){var r=Object.getOwnPropertyDescriptor(i.value,e);i.originalDescriptors[e]=r;var o=n?""+n+"."+U(e):U(e),s=bi(r,t,o,i);Object.defineProperty(i.value,e,s)})};Dh.prototype.get=function(){return this.value},Dh.prototype.reset=function(t){return this.value===t},Dh.prototype.set=function(t,e){this.value[t]=e},Dh.prototype.teardown=function(){var t=this;Object.keys(this.value).forEach(function(e){var n=Object.getOwnPropertyDescriptor(t.value,e);n.set&&n.set.__magic&&(wi(n),1===n.set.__magic.dependants.length&&Object.defineProperty(t.value,e,n.set.__magic.originalDescriptor))})};var Uh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=Lh.wrap(t,e,n),this.arrayWrapper=Mh.wrap(t,e,n),this.arrayWrapper.magic=this.magicWrapper,Object.defineProperty(this,"__model",{get:function(){return this.arrayWrapper.__model},set:function(t){this.arrayWrapper.__model=t}})};Uh.prototype.get=function(){return this.value},Uh.prototype.teardown=function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},Uh.prototype.reset=function(t){return this.arrayWrapper.reset(t)&&this.magicWrapper.reset(t)};var qh={filter:function(t,e,n){return Lh.filter(t,e,n)&&Mh.filter(t)},wrap:function(t,e,n){return new Uh(t,e,n)}},Hh=function(t){function e(e,n,i){t.call(this,null,null),this.root=this.parent=e,this.signature=n,this.key=i,this.isExpression=i&&"@"===i[0],this.isReadonly=!this.signature.setter,this.context=e.computationContext,this.dependencies=[],this.children=[],this.childByKey={},this.deps=[],this.dirty=!0,this.shuffle=void 0}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return t&&Ot(this),this.dirty&&(this.dirty=!1,this.value=this.getValue(),this.wrapper&&(this.newWrapperValue=this.value),this.adapt()),t&&this.wrapper?this.wrapperValue:this.value},e.prototype.getValue=function(){_t();var t;try{t=this.signature.getter.call(this.context)}catch(t){if(b("Failed to compute "+this.getKeypath()+": "+(t.message||t)),oo){console.groupCollapsed&&console.groupCollapsed("%cshow details","color: rgb(82, 140, 224); font-weight: normal; text-decoration: underline;");var e=ki(this.signature.getterString),n=this.signature.getterUseStack?"\n\n"+Ei(t.stack):"";console.error(""+t.name+": "+t.message+"\n\n"+e+n),console.groupCollapsed&&console.groupEnd()}}var i=xt();return this.setDependencies(i),"value"in this&&t!==this.value&&this.registerChange(this.getKeypath(),t),t},e.prototype.handleChange=function(){this.dirty=!0,this.links.forEach(Tt),this.deps.forEach(At),this.children.forEach(At),this.clearUnresolveds()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var e=new rh(this,t);this.children.push(e),this.childByKey[t]=e}return this.childByKey[t]},e.prototype.mark=function(){this.handleChange()},e.prototype.rebinding=function(t,e){t!==e&&this.handleChange()},e.prototype.set=function(t){if(!this.signature.setter)throw new Error("Cannot set read-only computed value '"+this.key+"'");this.signature.setter(t),this.mark()},e.prototype.setDependencies=function(t){for(var e=this,n=this.dependencies.length;n--;){var i=e.dependencies[n];~t.indexOf(i)||i.unregister(e)}for(n=t.length;n--;){var r=t[n];~e.dependencies.indexOf(r)||r.register(e)}this.dependencies=t},e.prototype.teardown=function(){for(var e=this,n=this.dependencies.length;n--;)e.dependencies[n]&&e.dependencies[n].unregister(e);this.root.computations[this.key]===this&&delete this.root.computations[this.key],t.prototype.teardown.call(this)},e.prototype.unregister=function(e){t.prototype.unregister.call(this,e),this.isExpression&&0===this.deps.length&&this.teardown()},e}(js),Wh=function(t){function e(e){t.call(this,null,""),this.value=e,this.isRoot=!0,this.root=this,this.adaptors=[],this.ractive=e,this.changes={}}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeypath=function(){return"@this"},e}(js),Qh=Object.prototype.hasOwnProperty,zh=function(t){function e(e){t.call(this,null,null),this.changes={},this.isRoot=!0,this.root=this,this.ractive=e.ractive,this.value=e.data,this.adaptors=e.adapt,this.adapt(),this.computationContext=e.ractive,this.computations={},this.expressions={}}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyChanges=function(){return this._changeHash={},this.flush(),this._changeHash},e.prototype.compute=function(t,e){var n=new Hh(this,e,t);return this.computations[t]=n,n},e.prototype.createLink=function(t,e,n){for(var i=this,r=H(t),o=this;r.length;){var s=r.shift();o=i.childByKey[s]||i.joinKey(s)}return o.link(e,n)},e.prototype.get=function(t,e){var n=this;if(t&&Ot(this),e&&e.virtual===!1)return this.value;for(var i=this.getVirtual(),r=Object.keys(this.computations),o=r.length;o--;){var s=n.computations[r[o]];s.isExpression||(i[r[o]]=s.get())}return i},e.prototype.getKeypath=function(){return""},e.prototype.getRactiveModel=function(){return this.ractiveModel||(this.ractiveModel=new Wh(this.ractive))},e.prototype.getValueChildren=function(){var e=t.prototype.getValueChildren.call(this,this.value);this.children.forEach(function(t){if(t._link){var n=e.indexOf(t);~n?e.splice(n,1,t._link):e.push(t._link)}});for(var n in this.computations)e.push(this.computations[n]);return e},e.prototype.handleChange=function(){this.deps.forEach(At)},e.prototype.has=function(t){var e=this.value;if(t=W(t),Qh.call(e,t))return!0;if(t in this.computations||this.childByKey[t]&&this.childByKey[t]._link)return!0;if(t in this.expressions)return!0;for(var n=e.constructor;n!==Function&&n!==Array&&n!==Object;){if(Qh.call(n.prototype,t))return!0;n=n.constructor}return!1},e.prototype.joinKey=function(e,n){return"@global"===e?Fs:"@this"===e?this.getRactiveModel():this.expressions.hasOwnProperty(e)?(b("Accessing expression keypaths ("+e.substr(1)+") from the instance is deprecated. You can used a getNodeInfo or event object to access keypaths with expression context."),this.expressions[e]):this.computations.hasOwnProperty(e)?this.computations[e]:t.prototype.joinKey.call(this,e,n)},e.prototype.map=function(t,e){var n=this.joinKey(t);n.link(e)},e.prototype.rebinding=function(){},e.prototype.set=function(t){var e=this.wrapper;if(e){var n=!e.reset||e.reset(t)===!1;n&&(e.teardown(),this.wrapper=null,this.value=t,this.adapt())}else this.value=t,this.adapt();this.deps.forEach(At),this.children.forEach(Ft),this.clearUnresolveds()},e.prototype.retrieve=function(){return this.wrapper?this.wrapper.get():this.value},e.prototype.update=function(){},e}(js),$h=new qo("construct"),Gh=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Yh=0,Zh=function(t){this.hook=new qo(t),this.inProcess={},this.queue={}};Zh.prototype.begin=function(t){this.inProcess[t._guid]=!0},Zh.prototype.end=function(t){var e=t.parent;e&&this.inProcess[e._guid]?Fi(this.queue,e).push(t):Ti(this,t),delete this.inProcess[t._guid]};var Jh=new qo("config"),Xh=new Zh("init"),tu=function(t,e){t.indexOf("*")!==-1&&m('Only component proxy-events may contain "*" wildcards, <'+e.name+" on-"+t+'="..."/> is not valid'),this.name=t,this.owner=e,this.node=null,this.handler=null};tu.prototype.listen=function(t){var e=this.node=this.owner.node,n=this.name;"on"+n in e||y(Lo(n,"events")),e.addEventListener(n,this.handler=function(n){t.fire({node:e,original:n})},!1)},tu.prototype.unlisten=function(){this.node.removeEventListener(this.name,this.handler,!1)};var eu=function(t,e){this.eventPlugin=t,this.owner=e,this.handler=null};eu.prototype.listen=function(t){var e=this.owner.node;this.handler=this.eventPlugin(e,function(n){void 0===n&&(n={}),n.node=n.node||e,t.fire(n)})},eu.prototype.unlisten=function(){this.handler.teardown()};var nu=function(t,e){this.ractive=t,this.name=e,this.handler=null};nu.prototype.listen=function(t){var e=this.ractive;this.handler=e.on(this.name,function(){var n;arguments.length&&arguments[0]&&arguments[0].node&&(n=Array.prototype.shift.call(arguments),n.component=e);var i=Array.prototype.slice.call(arguments);return t.fire(n,i),!1})},nu.prototype.unlisten=function(){this.handler.cancel()};var iu=/^(event|arguments)(\..+)?$/,ru=/^\$(\d+)(\..+)?$/,ou=function(t){var e=this;this.owner=t.owner||t.parentFragment.owner||qn(t.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(t.parentFragment),this.template=t.template,this.parentFragment=t.parentFragment,this.ractive=t.parentFragment.ractive,this.events=[],this.element.type===Da?this.template.n.split("-").forEach(function(t){e.events.push(new nu(e.element.instance,t))}):this.template.n.split("-").forEach(function(t){var n=k("events",e.ractive,t);e.events.push(n?new eu(n,e.element):new tu(t,e.element))}),this.context=null,this.resolvers=null,this.models=null,this.action=null,this.args=null};ou.prototype.bind=function(){var t=this;this.context=this.parentFragment.findContext();var e=this.template.f;e.x?(this.fn=gn(e.x.s,e.x.r.length),this.resolvers=[],this.models=e.x.r.map(function(e,n){var i=iu.exec(e);if(i)return{special:i[1],keys:i[2]?H(i[2].substr(1)):[]};var r=ru.exec(e);if(r)return{special:"arguments",keys:[r[1]-1].concat(r[2]?H(r[2].substr(1)):[])};var o,s=$t(t.parentFragment,e);return s?s.register(t):(o=t.parentFragment.resolve(e,function(e){t.models[n]=e,T(t.resolvers,o),e.register(t)}),t.resolvers.push(o)),s})):(this.action="string"==typeof e?e:"string"==typeof e.n?e.n:new Ip({owner:this,template:e.n}),this.args=e.a?"string"==typeof e.a?[e.a]:e.a:e.d?new Ip({owner:this,template:e.d}):[]),this.action&&"string"!=typeof this.action&&this.action.bind(),this.args&&e.d&&this.args.bind()},ou.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.owner.bubble())},ou.prototype.destroyed=function(){this.events.forEach(function(t){return t.unlisten()})},ou.prototype.fire=function(t,e){if(void 0===e&&(e=[]),t&&!t.hasOwnProperty("_element")&&Pe(t,this.owner),this.fn){var n=[];t&&e.unshift(t),this.models&&this.models.forEach(function(i){if(!i)return n.push(void 0);if(i.special){for(var r="event"===i.special?t:e,o=i.keys.slice();o.length;)r=r[o.shift()];return n.push(r)}return i.wrapper?n.push(i.wrapperValue):void n.push(i.get())});var i=this.ractive,r=i.event;i.event=t;var o=this.fn.apply(i,n).pop();if(o===!1){var s=t?t.original:void 0;s?(s.preventDefault&&s.preventDefault(),s.stopPropagation&&s.stopPropagation()):w("handler '"+this.template.n+"' returned false, but there is no event available to cancel")}i.event=r}else{var a=this.action.toString(),h=this.template.f.d?this.args.getArgsList():this.args;e.length&&(h=h.concat(e)),t&&(t.name=a),vt(this.ractive,a,{event:t,args:h})}},ou.prototype.handleChange=function(){},ou.prototype.rebinding=function(t,e){var n=this;if(this.models){var i=this.models.indexOf(e);~i&&(this.models.splice(i,1,t),e.unregister(this),t&&t.addShuffleTask(function(){return t.register(n)}))}},ou.prototype.render=function(){var t=this;Jo.scheduleTask(function(){return t.events.forEach(function(e){return e.listen(t)},!0)})},ou.prototype.toString=function(){return""},ou.prototype.unbind=function(){var t=this,e=this.template.f;e.m?(this.resolvers&&this.resolvers.forEach(Bt),this.resolvers=[],this.models&&this.models.forEach(function(e){e.unregister&&e.unregister(t)}),this.models=null):(this.action&&this.action.unbind&&this.action.unbind(),this.args&&this.args.unbind&&this.args.unbind())},ou.prototype.unrender=function(){this.events.forEach(function(t){return t.unlisten()})},ou.prototype.update=function(){!this.method&&this.dirty&&(this.dirty=!1,this.action&&this.action.update&&this.action.update(),this.args&&this.args.update&&this.args.update())};var su=new qo("teardown"),au=function(t){function e(e,n){var i=this;t.call(this,e),this.type=Da;var r=Oo(n.prototype);this.instance=r,this.name=e.template.e,this.parentFragment=e.parentFragment,this.liveQueries=[],r.el&&b("The <"+this.name+"> component has a default 'el' property; it has been disregarded");var o=e.template.p||{};"content"in o||(o.content=e.template.f||[]),this._partials=o,this.yielders={};for(var s,a=e.parentFragment;a;){if(a.owner.type===Ua){s=a.owner.container;break}a=a.parent}r.parent=this.parentFragment.ractive,r.container=s||null,r.root=r.parent.root,r.component=this,xi(this.instance,{partials:o}),r._inlinePartials=o,this.attributeByName={},this.attributes=[];var h=[];(this.template.m||[]).forEach(function(t){switch(t.t){case La:case Xa:case eh:i.attributes.push(Cr({owner:i,parentFragment:i.parentFragment,template:t}));break;case nh:case th:break;default:h.push(t)}}),this.attributes.push(new Th({owner:this,parentFragment:this.parentFragment,template:h})),this.eventHandlers=[],this.template.v&&this.setupEvents()}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.attributes.forEach(Ct),Ni(this.instance,{partials:this._partials},{cssIds:this.parentFragment.cssIds}),this.eventHandlers.forEach(Ct),this.bound=!0},e.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.parentFragment.bubble())},e.prototype.checkYielders=function(){var t=this;Object.keys(this.yielders).forEach(function(e){if(t.yielders[e].length>1)throw Jo.end(),new Error("A component template can only have one {{yield"+(e?" "+e:"")+"}} declaration at a time")})},e.prototype.destroyed=function(){this.instance.fragment&&this.instance.fragment.destroyed()},e.prototype.detach=function(){return this.instance.fragment.detach()},e.prototype.find=function(t){return this.instance.fragment.find(t)},e.prototype.findAll=function(t,e){this.instance.fragment.findAll(t,e)},e.prototype.findComponent=function(t){return t&&this.name!==t?this.instance.fragment?this.instance.fragment.findComponent(t):void 0:this.instance},e.prototype.findAllComponents=function(t,e){e.test(this)&&(e.add(this.instance),e.live&&this.liveQueries.push(e)),this.instance.fragment.findAllComponents(t,e)},e.prototype.firstNode=function(t){return this.instance.fragment.firstNode(t)},e.prototype.render=function(t,e){en(this.instance,t,null,e),this.checkYielders(),this.attributes.forEach(St),this.eventHandlers.forEach(St),Si(this),this.rendered=!0},e.prototype.setupEvents=function(){var t=this,e=this.eventHandlers;Object.keys(this.template.v).forEach(function(n){var i=n.split("-"),r=t.template.v[n];i.forEach(function(n){var i=new nu(t.instance,n);e.push(new ou(t,i,r))})})},e.prototype.shuffled=function(){this.liveQueries.forEach(Bi),t.prototype.shuffled.call(this)},e.prototype.toString=function(){return this.instance.toHTML()},e.prototype.unbind=function(){this.bound=!1,this.attributes.forEach(Bt);var t=this.instance;t.viewmodel.teardown(),t.fragment.unbind(),t._observers.forEach(jt),Vi(this),t.fragment.rendered&&t.el.__ractive_instances__&&T(t.el.__ractive_instances__,t),su.fire(t)},e.prototype.unrender=function(t){var e=this;this.rendered=!1,this.shouldDestroy=t,this.instance.unrender(),this.attributes.forEach(Kt),this.eventHandlers.forEach(Kt),this.liveQueries.forEach(function(t){return t.remove(e.instance)})},e.prototype.update=function(){this.dirty=!1,this.instance.fragment.update(),this.checkYielders(),this.attributes.forEach(Mt),this.eventHandlers.forEach(Mt)},e}(ih),hu={update:d,teardown:d},uu=function(t){this.owner=t.owner||t.parentFragment.owner||qn(t.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(t.parentFragment),this.parentFragment=this.owner.parentFragment,this.ractive=this.owner.ractive;var e=this.template=t.template;this.dynamicName="object"==typeof e.f.n,this.dynamicArgs=!!e.f.d,this.dynamicName?this.nameFragment=new Ip({owner:this,template:e.f.n}):this.name=e.f.n||e.f,this.dynamicArgs?this.argsFragment=new Ip({owner:this,template:e.f.d}):e.f.a&&e.f.a.s?this.args=[]:this.args=e.f.a||[],this.node=null,this.intermediary=null,this.element.decorators.push(this)};uu.prototype.bind=function(){var t=this;this.dynamicName&&(this.nameFragment.bind(),this.name=this.nameFragment.toString()),this.dynamicArgs&&this.argsFragment.bind(),this.template.f.a&&this.template.f.a.s&&(this.resolvers=[],this.models=this.template.f.a.r.map(function(e,n){var i,r=$t(t.parentFragment,e);return r?r.register(t):(i=t.parentFragment.resolve(e,function(e){t.models[n]=e,T(t.resolvers,i),e.register(t)}),t.resolvers.push(i)),r}),this.argsFn=gn(this.template.f.a.s,this.template.f.a.r.length))},uu.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.owner.bubble())},uu.prototype.destroyed=function(){this.intermediary&&this.intermediary.teardown(),this.shouldDestroy=!0},uu.prototype.handleChange=function(){this.bubble()},uu.prototype.rebinding=function(t,e,n){var i=this.models.indexOf(e);~i&&(t=qt(this.template.f.a.r[i],t,e),t!==e&&(e.unregister(this),this.models.splice(i,1,t),t&&t.addShuffleRegister(this,"mark"),n||this.bubble()))},uu.prototype.render=function(){var t=this;Jo.scheduleTask(function(){var e=k("decorators",t.ractive,t.name);if(!e)return y(Lo(t.name,"decorator")),void(t.intermediary=hu);t.node=t.element.node;var n;if(t.argsFn?(n=t.models.map(function(t){if(t)return t.get()}),n=t.argsFn.apply(t.ractive,n)):n=t.dynamicArgs?t.argsFragment.getArgsList():t.args,t.intermediary=e.apply(t.ractive,[t.node].concat(n)),!t.intermediary||!t.intermediary.teardown)throw new Error("The '"+t.name+"' decorator must return an object with a teardown method");t.shouldDestroy&&t.destroyed()},!0),this.rendered=!0},uu.prototype.toString=function(){return""},uu.prototype.unbind=function(){var t=this;this.dynamicName&&this.nameFragment.unbind(),this.dynamicArgs&&this.argsFragment.unbind(),this.resolvers&&this.resolvers.forEach(Bt),this.models&&this.models.forEach(function(e){e&&e.unregister(t)})},uu.prototype.unrender=function(t){t&&!this.element.rendered||!this.intermediary||this.intermediary.teardown(),this.rendered=!1},uu.prototype.update=function(){if(this.dirty){this.dirty=!1;var t=!1;if(this.dynamicName&&this.nameFragment.dirty){var e=this.nameFragment.toString();t=e!==this.name,this.name=e}if(this.intermediary)if(t||!this.intermediary.update)this.unrender(),this.render();else if(this.dynamicArgs){if(this.argsFragment.dirty){var n=this.argsFragment.getArgsList();this.intermediary.update.apply(this.ractive,n)}}else if(this.argsFn){var i=this.models.map(function(t){if(t)return t.get()});this.intermediary.update.apply(this.ractive,this.argsFn.apply(this.ractive,i))}else this.intermediary.update.apply(this.ractive,this.args);
-this.dynamicName&&this.nameFragment.dirty&&this.nameFragment.update(),this.dynamicArgs&&this.argsFragment.dirty&&this.argsFragment.update()}};var pu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){},e.prototype.render=function(){},e.prototype.teardown=function(){},e.prototype.toString=function(){return"<!DOCTYPE"+this.template.a+">"},e.prototype.unbind=function(){},e.prototype.unrender=function(){},e.prototype.update=function(){},e}(ih),lu=function(t,e){void 0===e&&(e="value"),this.element=t,this.ractive=t.ractive,this.attribute=t.attributeByName[e];var n=this.attribute.interpolator;n.twowayBinding=this;var i=n.model;if(i){if(i.isUnresolved)i.forceResolution(),Pi("expression",this.ractive);else if(i.isReadonly){var r=i.getKeypath().replace(/^@/,"");return w("Cannot use two-way binding on <"+t.name+"> element: "+r+" is read-only. To suppress this warning use <"+t.name+" twoway='false'...>",{ractive:this.ractive}),!1}}else n.resolver.forceResolution(),i=n.model,Pi("'"+n.template.r+"' reference",this.ractive);this.attribute.isTwoway=!0,this.model=i;var o=i.get();this.wasUndefined=void 0===o,void 0===o&&this.getInitialValue&&(o=this.getInitialValue(),i.set(o)),this.lastVal(!0,o);var s=qn(this.element,!1,"form");s&&(this.resetValue=o,s.formBindings.push(this))};lu.prototype.bind=function(){this.model.registerTwowayBinding(this)},lu.prototype.handleChange=function(){var t=this,e=this.getValue();this.lastVal()!==e&&(Jo.start(this.root),this.attribute.locked=!0,this.model.set(e),this.lastVal(!0,e),this.model.get()!==e?this.attribute.locked=!1:Jo.scheduleTask(function(){return t.attribute.locked=!1}),Jo.end())},lu.prototype.lastVal=function(t,e){return t?void(this.lastValue=e):this.lastValue},lu.prototype.rebinding=function(t,e){var n=this;this.model&&this.model===e&&e.unregisterTwowayBinding(this),t&&(this.model=t,Jo.scheduleTask(function(){return t.registerTwowayBinding(n)}))},lu.prototype.render=function(){this.node=this.element.node,this.node._ractive.binding=this,this.rendered=!0},lu.prototype.setFromNode=function(t){this.model.set(t.value)},lu.prototype.unbind=function(){this.model.unregisterTwowayBinding(this)},lu.prototype.unrender=function(){};var cu=function(t){function e(e){t.call(this,e,"checked")}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1),this.node.attachEvent&&this.node.addEventListener("click",Mi,!1)},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1),this.node.removeEventListener("click",Mi,!1)},e.prototype.getInitialValue=function(){return!!this.element.getAttribute("checked")},e.prototype.getValue=function(){return this.node.checked},e.prototype.setFromNode=function(t){this.model.set(t.checked)},e}(lu),du=function(t,e,n){var i=this;this.model=e,this.hash=t,this.getValue=function(){return i.value=n.call(i),i.value},this.bindings=[]};du.prototype.add=function(t){this.bindings.push(t)},du.prototype.bind=function(){this.value=this.model.get(),this.model.registerTwowayBinding(this),this.bound=!0},du.prototype.remove=function(t){T(this.bindings,t),this.bindings.length||this.unbind()},du.prototype.unbind=function(){this.model.unregisterTwowayBinding(this),this.bound=!1,delete this.model[this.hash]};var fu,mu,vu=[].push,gu=function(t){function e(e){if(t.call(this,e,"name"),this.checkboxName=!0,this.group=Ii("checkboxes",this.model,Ri),this.group.add(this),this.noInitialValue&&(this.group.noInitialValue=!0),this.group.noInitialValue&&this.element.getAttribute("checked")){var n=this.model.get(),i=this.element.getAttribute("value");C(n,i)||vu.call(n,i)}}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.group.bound||this.group.bind()},e.prototype.changed=function(){var t=!!this.isChecked;return this.isChecked=this.node.checked,this.isChecked===t},e.prototype.getInitialValue=function(){return this.noInitialValue=!0,[]},e.prototype.getValue=function(){return this.group.value},e.prototype.handleChange=function(){this.isChecked=this.element.node.checked,this.group.value=this.model.get();var e=this.element.getAttribute("value");this.isChecked&&!C(this.group.value,e)?this.group.value.push(e):!this.isChecked&&C(this.group.value,e)&&T(this.group.value,e),this.lastValue=null,t.prototype.handleChange.call(this)},e.prototype.render=function(){t.prototype.render.call(this);var e=this.node,n=this.model.get(),i=this.element.getAttribute("value");u(n)?this.isChecked=C(n,i):this.isChecked=n==i,e.name="{{"+this.model.getKeypath()+"}}",e.checked=this.isChecked,e.addEventListener("change",Mi,!1),e.attachEvent&&e.addEventListener("click",Mi,!1)},e.prototype.setFromNode=function(t){if(this.group.bindings.forEach(function(t){return t.wasUndefined=!0}),t.checked){var e=this.group.getValue();e.push(this.element.getAttribute("value")),this.group.model.set(e)}},e.prototype.unbind=function(){this.group.remove(this)},e.prototype.unrender=function(){var t=this.element.node;t.removeEventListener("change",Mi,!1),t.removeEventListener("click",Mi,!1)},e}(lu),yu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){return this.element.fragment?this.element.fragment.toString():""},e.prototype.getValue=function(){return this.element.node.innerHTML},e.prototype.render=function(){t.prototype.render.call(this);var e=this.node;e.addEventListener("change",Mi,!1),e.addEventListener("blur",Mi,!1),this.ractive.lazy||(e.addEventListener("input",Mi,!1),e.attachEvent&&e.addEventListener("keyup",Mi,!1))},e.prototype.setFromNode=function(t){this.model.set(t.innerHTML)},e.prototype.unrender=function(){var t=this.node;t.removeEventListener("blur",Mi,!1),t.removeEventListener("change",Mi,!1),t.removeEventListener("input",Mi,!1),t.removeEventListener("keyup",Mi,!1)},e}(lu),bu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){return""},e.prototype.getValue=function(){return this.node.value},e.prototype.render=function(){t.prototype.render.call(this);var e=this.ractive.lazy,n=!1;"lazy"in this.element&&(e=this.element.lazy),l(e)&&(n=+e,e=!1),this.handler=n?Di(n):Mi;var i=this.node;i.addEventListener("change",Mi,!1),e||(i.addEventListener("input",this.handler,!1),i.attachEvent&&i.addEventListener("keyup",this.handler,!1)),i.addEventListener("blur",Li,!1)},e.prototype.unrender=function(){var t=this.element.node;this.rendered=!1,t.removeEventListener("change",Mi,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",Li,!1)},e}(lu),wu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){},e.prototype.getValue=function(){return this.node.files},e.prototype.render=function(){this.element.lazy=!1,t.prototype.render.call(this)},e.prototype.setFromNode=function(t){this.model.set(t.files)},e}(bu),ku=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.forceUpdate=function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,Jo.scheduleTask(function(){return t.attribute.locked=!1}),this.model.set(e))},e.prototype.getInitialValue=function(){return this.element.options.filter(function(t){return t.getAttribute("selected")}).map(function(t){return t.getAttribute("value")})},e.prototype.getValue=function(){for(var t=this.element.node.options,e=t.length,n=[],i=0;i<e;i+=1){var r=t[i];if(r.selected){var o=r._ractive?r._ractive.value:r.value;n.push(o)}}return n},e.prototype.handleChange=function(){var e=this.attribute,n=e.getValue(),i=this.getValue();return void 0!==n&&j(i,n)||t.prototype.handleChange.call(this),this},e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1),void 0===this.model.get()&&this.handleChange()},e.prototype.setFromNode=function(t){for(var e=Ui(t),n=e.length,i=new Array(n);n--;){var r=e[n];i[n]=r._ractive?r._ractive.value:r.value}this.model.set(i)},e.prototype.setValue=function(){throw new Error("TODO not implemented yet")},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1)},e.prototype.updateModel=function(){void 0!==this.attribute.value&&this.attribute.value.length||this.keypath.set(this.initialValue)},e}(lu),Eu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){},e.prototype.getValue=function(){var t=parseFloat(this.node.value);return isNaN(t)?void 0:t},e.prototype.setFromNode=function(t){var e=parseFloat(t.value);isNaN(e)||this.model.set(e)},e}(bu),_u={},xu=function(t){function e(e){t.call(this,e,"checked"),this.siblings=qi(this.ractive._guid+this.element.getAttribute("name")),this.siblings.push(this)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getValue=function(){return this.node.checked},e.prototype.handleChange=function(){Jo.start(this.root),this.siblings.forEach(function(t){t.model.set(t.getValue())}),Jo.end()},e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1),this.node.attachEvent&&this.node.addEventListener("click",Mi,!1)},e.prototype.setFromNode=function(t){this.model.set(t.checked)},e.prototype.unbind=function(){T(this.siblings,this)},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1),this.node.removeEventListener("click",Mi,!1)},e}(lu),Ou=function(t){function e(e){t.call(this,e,"name"),this.group=Ii("radioname",this.model,Hi),this.group.add(this),e.checked&&(this.group.value=this.getValue())}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){var t=this;this.group.bound||this.group.bind(),this.nameAttributeBinding={handleChange:function(){return t.node.name="{{"+t.model.getKeypath()+"}}"}},this.model.getKeypathModel().register(this.nameAttributeBinding)},e.prototype.getInitialValue=function(){if(this.element.getAttribute("checked"))return this.element.getAttribute("value")},e.prototype.getValue=function(){return this.element.getAttribute("value")},e.prototype.handleChange=function(){this.node.checked&&(this.group.value=this.getValue(),t.prototype.handleChange.call(this))},e.prototype.lastVal=function(t,e){if(this.group)return t?void(this.group.lastValue=e):this.group.lastValue},e.prototype.render=function(){t.prototype.render.call(this);var e=this.node;e.name="{{"+this.model.getKeypath()+"}}",e.checked=this.model.get()==this.element.getAttribute("value"),e.addEventListener("change",Mi,!1),e.attachEvent&&e.addEventListener("click",Mi,!1)},e.prototype.setFromNode=function(t){t.checked&&this.group.model.set(this.element.getAttribute("value"))},e.prototype.unbind=function(){this.group.remove(this),this.model.getKeypathModel().unregister(this.nameAttributeBinding)},e.prototype.unrender=function(){var t=this.node;t.removeEventListener("change",Mi,!1),t.removeEventListener("click",Mi,!1)},e}(lu),Cu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.forceUpdate=function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,Jo.scheduleTask(function(){return t.attribute.locked=!1}),this.model.set(e))},e.prototype.getInitialValue=function(){if(void 0===this.element.getAttribute("value")){var t=this.element.options,e=t.length;if(e){for(var n,i,r=e;r--;){var o=t[r];if(o.getAttribute("selected")){o.getAttribute("disabled")||(n=o.getAttribute("value")),i=!0;break}}if(!i)for(;++r<e;)if(!t[r].getAttribute("disabled")){n=t[r].getAttribute("value");break}return void 0!==n&&(this.element.attributeByName.value.value=n),n}}},e.prototype.getValue=function(){var t,e=this.node.options,n=e.length;for(t=0;t<n;t+=1){var i=e[t];if(e[t].selected&&!e[t].disabled)return i._ractive?i._ractive.value:i.value}},e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1)},e.prototype.setFromNode=function(t){var e=Ui(t)[0];this.model.set(e._ractive?e._ractive.value:e.value)},e.prototype.setValue=function(t){this.model.set(t)},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1)},e}(lu),ju=/;\s*$/,Au=function(t){function e(e){var n=this;if(t.call(this,e),this.liveQueries=[],this.name=e.template.e.toLowerCase(),this.isVoid=vh.test(this.name),this.parent=qn(this.parentFragment,!1),this.parent&&"option"===this.parent.name)throw new Error("An <option> element cannot contain other elements (encountered <"+this.name+">)");this.decorators=[],this.attributeByName={},this.attributes=[];var i=[];(this.template.m||[]).forEach(function(t){switch(t.t){case La:case nh:case th:case Xa:case eh:n.attributes.push(Cr({owner:n,parentFragment:n.parentFragment,template:t}));break;default:i.push(t)}}),i.length&&this.attributes.push(new Th({owner:this,parentFragment:this.parentFragment,template:i}));for(var r=this.attributes.length;r--;){var o=n.attributes[r];"type"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"max"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"min"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"class"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"value"===o.name&&n.attributes.push(n.attributes.splice(r,1)[0])}e.template.f&&!e.deferContent&&(this.fragment=new Ip({template:e.template.f,owner:this,cssIds:null})),this.binding=null}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.attributes.binding=!0,this.attributes.forEach(Ct),this.attributes.binding=!1,this.fragment&&this.fragment.bind(),this.binding||this.recreateTwowayBinding()},e.prototype.createTwowayBinding=function(){var t="twoway"in this?this.twoway:this.ractive.twoway;if(!t)return null;var e=Qi(this);if(!e)return null;var n=new e(this);return n&&n.model?n:null},e.prototype.destroyed=function(){this.attributes.forEach(function(t){return t.destroyed()}),this.fragment&&this.fragment.destroyed()},e.prototype.detach=function(){return this.rendered||this.destroyed(),n(this.node)},e.prototype.find=function(t){return this.node&&ao(this.node,t)?this.node:this.fragment?this.fragment.find(t):void 0},e.prototype.findAll=function(t,e){var n=e.test(this.node);n&&(e.add(this.node),e.live&&this.liveQueries.push(e)),this.fragment&&this.fragment.findAll(t,e)},e.prototype.findComponent=function(t){if(this.fragment)return this.fragment.findComponent(t)},e.prototype.findAllComponents=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},e.prototype.findNextNode=function(){return null},e.prototype.firstNode=function(){return this.node},e.prototype.getAttribute=function(t){var e=this.attributeByName[t];return e?e.getValue():void 0},e.prototype.recreateTwowayBinding=function(){this.binding&&(this.binding.unbind(),this.binding.unrender()),(this.binding=this.createTwowayBinding())&&(this.binding.bind(),this.rendered&&this.binding.render())},e.prototype.render=function(t,e){var i=this;this.namespace=Zi(this);var r,o=!1;if(e)for(var s;s=e.shift();){if(s.nodeName.toUpperCase()===i.template.e.toUpperCase()&&s.namespaceURI===i.namespace){i.node=r=s,o=!0;break}n(s)}if(r||(r=so(this.template.e,this.namespace,this.getAttribute("is")),this.node=r),Co(r,"_ractive",{value:{proxy:this}}),this.parentFragment.cssIds&&r.setAttribute("data-ractive-css",this.parentFragment.cssIds.map(function(t){return"{"+t+"}"}).join(" ")),o&&this.foundNode&&this.foundNode(r),this.fragment){var a=o?N(r.childNodes):void 0;this.fragment.render(r,a),a&&a.forEach(n)}if(o){this.binding&&this.binding.wasUndefined&&this.binding.setFromNode(r);for(var h=r.attributes.length;h--;){var u=r.attributes[h].name;u in i.attributeByName||r.removeAttribute(u)}}this.attributes.forEach(St),this.binding&&this.binding.render(),Ki(this),this._introTransition&&this.ractive.transitionsEnabled&&(this._introTransition.isIntro=!0,Jo.registerTransition(this._introTransition)),o||t.appendChild(r),this.rendered=!0},e.prototype.shuffled=function(){this.liveQueries.forEach(zi),t.prototype.shuffled.call(this)},e.prototype.toString=function(){var t=this.template.e,e=this.attributes.map(Gi).join("");"option"===this.name&&this.isSelected()&&(e+=" selected"),"input"===this.name&&$i(this)&&(e+=" checked");var n,i;this.attributes.forEach(function(t){"class"===t.name?i=(i||"")+(i?" ":"")+r(t.getString()):"style"===t.name?(n=(n||"")+(n?" ":"")+r(t.getString()),n&&!ju.test(n)&&(n+=";")):t.styleName?n=(n||"")+(n?" ":"")+s(t.styleName)+": "+r(t.getString())+";":t.inlineClass&&t.getValue()&&(i=(i||"")+(i?" ":"")+t.inlineClass)}),void 0!==n&&(e=" style"+(n?'="'+n+'"':"")+e),void 0!==i&&(e=" class"+(i?'="'+i+'"':"")+e);var o="<"+t+e+">";return this.isVoid?o:("textarea"===this.name&&void 0!==this.getAttribute("value")?o+=pi(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(o+=this.getAttribute("value")||""),this.fragment&&(o+=this.fragment.toString(!/^(?:script|style)$/i.test(this.template.e))),o+="</"+t+">")},e.prototype.unbind=function(){this.attributes.forEach(Bt),this.binding&&this.binding.unbind(),this.fragment&&this.fragment.unbind()},e.prototype.unrender=function(t){if(this.rendered){this.rendered=!1;var e=this._introTransition;e&&e.complete&&e.complete(),"option"===this.name?this.detach():t&&Jo.detachWhenReady(this),this.fragment&&this.fragment.unrender(),this.binding&&this.binding.unrender(),this._outroTransition&&this.ractive.transitionsEnabled&&(this._outroTransition.isIntro=!1,Jo.registerTransition(this._outroTransition)),Yi(this)}},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.attributes.forEach(Mt),this.fragment&&this.fragment.update())},e}(ih),Fu=function(t){function e(e){t.call(this,e),this.formBindings=[]}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.node.addEventListener("reset",Ji,!1)},e.prototype.unrender=function(e){this.node.removeEventListener("reset",Ji,!1),t.prototype.unrender.call(this,e)},e}(Au),Tu=function(t){function e(e){t.call(this,e),this.parentFragment=e.parentFragment,this.template=e.template,this.index=e.index,e.owner&&(this.parent=e.owner),this.isStatic=!!e.template.s,this.model=null,this.dirty=!1}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){var t=this,e=Dn(this.parentFragment,this.template),n=e?e.get():void 0;return this.isStatic?void(this.model={get:function(){return n}}):void(e?(e.register(this),this.model=e):this.resolver=this.parentFragment.resolve(this.template.r,function(e){t.model=e,e.register(t),t.handleChange(),t.resolver=null}))},e.prototype.handleChange=function(){this.bubble()},e.prototype.rebinding=function(t,e,n){return t=qt(this.template,t,e),!this.static&&(t!==this.model&&(this.model&&this.model.unregister(this),t&&t.addShuffleRegister(this,"mark"),this.model=t,n||this.handleChange(),!0))},e.prototype.unbind=function(){this.isStatic||(this.model&&this.model.unregister(this),this.model=void 0,this.resolver&&this.resolver.unbind())},e}(ih),Nu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(){this.owner&&this.owner.bubble(),t.prototype.bubble.call(this)},e.prototype.detach=function(){return n(this.node)},e.prototype.firstNode=function(){return this.node},e.prototype.getString=function(){return this.model?i(this.model.get()):""},e.prototype.render=function(t,e){if(!fi()){var n=this.getString();if(this.rendered=!0,e){var i=e[0];i&&3===i.nodeType?(e.shift(),i.nodeValue!==n&&(i.nodeValue=n)):(i=this.node=io.createTextNode(n),e[0]?t.insertBefore(i,e[0]):t.appendChild(i)),this.node=i}else this.node=io.createTextNode(n),t.appendChild(this.node)}},e.prototype.toString=function(t){var e=this.getString();return t?pi(e):e},e.prototype.unrender=function(t){t&&this.detach(),this.rendered=!1},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.rendered&&(this.node.data=this.getString()))},e.prototype.valueOf=function(){return this.model?this.model.get():void 0},e}(Tu),Su=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.node.defaultValue=this.node.value},e}(Au),Vu=/^\s+/;mu=function(t){this.name="ParseError",this.message=t;try{throw new Error(t)}catch(t){this.stack=t.stack}},mu.prototype=Error.prototype,fu=function(t,e){var n,i,r=this,o=0;for(this.str=t,this.options=e||{},this.pos=0,this.lines=this.str.split("\n"),this.lineEnds=this.lines.map(function(t){var e=o+t.length+1;return o=e,e},0),this.init&&this.init(t,e),n=[];r.pos<r.str.length&&(i=r.read());)n.push(i);this.leftover=this.remaining(),this.result=this.postProcess?this.postProcess(n,e):n},fu.prototype={read:function(t){var e,n,i,r,o=this;for(t||(t=this.converters),e=this.pos,i=t.length,n=0;n<i;n+=1)if(o.pos=e,r=t[n](o))return r;return null},getContextMessage:function(t,e){var n=this.getLinePos(t),i=n[0],r=n[1];if(this.options.contextLines===-1)return[i,r,""+e+" at line "+i+" character "+r];var o=this.lines[i-1],s="",a="";if(this.options.contextLines){var h=i-1-this.options.contextLines<0?0:i-1-this.options.contextLines;s=this.lines.slice(h,i-1-h).join("\n").replace(/\t/g,"  "),a=this.lines.slice(i,i+this.options.contextLines).join("\n").replace(/\t/g,"  "),s&&(s+="\n"),a&&(a="\n"+a)}var u=0,p=s+o.replace(/\t/g,function(t,e){return e<r&&(u+=1),"  "})+"\n"+new Array(r+u).join(" ")+"^----"+a;return[i,r,""+e+" at line "+i+" character "+r+":\n"+p]},getLinePos:function(t){for(var e,n=this,i=0,r=0;t>=n.lineEnds[i];)r=n.lineEnds[i],i+=1;return e=t-r,[i+1,e+1,t]},error:function(t){var e=this.getContextMessage(this.pos,t),n=e[0],i=e[1],r=e[2],o=new mu(r);throw o.line=n,o.character=i,o.shortMessage=t,o},matchString:function(t){if(this.str.substr(this.pos,t.length)===t)return this.pos+=t.length,t},matchPattern:function(t){var e;if(e=t.exec(this.remaining()))return this.pos+=e[0].length,e[1]||e[0]},allowWhitespace:function(){this.matchPattern(Vu)},remaining:function(){return this.str.substring(this.pos)},nextChar:function(){return this.str.charAt(this.pos)}},fu.extend=function(t){var e,n,i=this;e=function(t,e){fu.call(this,t,e)},e.prototype=Oo(i.prototype);for(n in t)Vo.call(t,n)&&(e.prototype[n]=t[n]);return e.extend=fu.extend,e};var Bu,Ku,Pu,Mu=fu;Bu=/^(?=.)[^"'\\]+?(?:(?!.)|(?=["'\\]))/,Ku=/^\\(?:['"\\bfnrt]|0(?![0-9])|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|(?=.)[^ux0-9])/,Pu=/^\\(?:\r\n|[\u000A\u000D\u2028\u2029])/;var Iu=tr('"'),Ru=tr("'"),Lu=/^(?:[+-]?)0*(?:(?:(?:[1-9]\d*)?\.\d+)|(?:(?:0|[1-9]\d*)\.)|(?:0|[1-9]\d*))(?:[eE][+-]?\d+)?/,Du=/^[a-zA-Z_$][a-zA-Z_$0-9]*/,Uu=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/,qu={true:!0,false:!1,null:null,undefined:void 0},Hu=new RegExp("^(?:"+Object.keys(qu).join("|")+")"),Wu=/^(?:[+-]?)(?:(?:(?:0|[1-9]\d*)?\.\d+)|(?:(?:0|[1-9]\d*)\.)|(?:0|[1-9]\d*))(?:[eE][+-]?\d+)?/,Qu=/\$\{([^\}]+)\}/g,zu=/^\$\{([^\}]+)\}/,$u=/^\s*$/,Gu=Mu.extend({init:function(t,e){this.values=e.values,this.allowWhitespace()},postProcess:function(t){return 1===t.length&&$u.test(this.leftover)?{value:t[0].v}:null},converters:[function(t){if(!t.values)return null;var e=t.matchPattern(zu);return e&&t.values.hasOwnProperty(e)?{v:t.values[e]}:void 0},function(t){var e=t.matchPattern(Hu);if(e)return{v:qu[e]}},function(t){var e=t.matchPattern(Wu);if(e)return{v:+e}},function(t){var e=er(t),n=t.values;return e&&n?{v:e.v.replace(Qu,function(t,e){return e in n?n[e]:e})}:e},function(t){if(!t.matchString("{"))return null;var e={};if(t.allowWhitespace(),t.matchString("}"))return{v:e};for(var n;n=rr(t);){if(e[n.key]=n.value,t.allowWhitespace(),t.matchString("}"))return{v:e};if(!t.matchString(","))return null}return null},function(t){if(!t.matchString("["))return null;var e=[];if(t.allowWhitespace(),t.matchString("]"))return{v:e};for(var n;n=t.read();){if(e.push(n.v),t.allowWhitespace(),t.matchString("]"))return{v:e};if(!t.matchString(","))return null;t.allowWhitespace()}return null}]}),Yu=function(t){function e(e){t.call(this,e),this.name=e.template.n,this.owner=e.owner||e.parentFragment.owner||e.element||qn(e.parentFragment),this.element=e.element||(this.owner.attributeByName?this.owner:qn(e.parentFragment)),this.parentFragment=this.element.parentFragment,this.ractive=this.parentFragment.ractive,this.fragment=null,this.element.attributeByName[this.name]=this,this.value=e.template.f}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment&&this.fragment.bind();var t=this.template.f,e=this.element.instance.viewmodel;if(0===t)e.joinKey(this.name).set(!0);else if("string"==typeof t){var n=or(t);e.joinKey(this.name).set(n?n.value:t)}else u(t)&&sr(this,!0)},e.prototype.render=function(){},e.prototype.unbind=function(){this.fragment&&this.fragment.unbind(),this.boundFragment&&this.boundFragment.unbind(),this.element.bound&&this.link.target===this.model&&this.link.owner.unlink()},e.prototype.unrender=function(){},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.fragment&&this.fragment.update(),this.boundFragment&&this.boundFragment.update(),this.rendered&&this.updateDelegate())},e}(ih),Zu=function(t){function e(e){var n=e.template;n.a||(n.a={}),void 0!==n.a.value||"disabled"in n.a||(n.a.value=n.f||""),t.call(this,e),this.select=qn(this.parent||this.parentFragment,!1,"select")}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){if(!this.select)return void t.prototype.bind.call(this);var e=this.attributeByName.selected;if(e&&void 0!==this.select.getAttribute("value")){var n=this.attributes.indexOf(e);this.attributes.splice(n,1),delete this.attributeByName.selected}t.prototype.bind.call(this),this.select.options.push(this)},e.prototype.bubble=function(){var e=this.getAttribute("value");this.node&&this.node.value!==e&&(this.node._ractive.value=e),t.prototype.bubble.call(this)},e.prototype.getAttribute=function(t){var e=this.attributeByName[t];return e?e.getValue():"value"===t&&this.fragment?this.fragment.valueOf():void 0},e.prototype.isSelected=function(){var t=this.getAttribute("value");if(void 0===t||!this.select)return!1;var e=this.select.getAttribute("value");if(e==t)return!0;if(this.select.getAttribute("multiple")&&u(e))for(var n=e.length;n--;)if(e[n]==t)return!0},e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.attributeByName.value||(this.node._ractive.value=this.getAttribute("value"))},e.prototype.unbind=function(){t.prototype.unbind.call(this),this.select&&T(this.select.options,this)},e}(Au),Ju=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.refName=this.template.r;var e,n=this.refName?ar(this.ractive,this.refName,this.parentFragment)||null:null;n&&(this.named=!0,this.setTemplate(this.template.r,n)),n||(t.prototype.bind.call(this),this.model&&(e=this.model.get())&&"object"==typeof e&&("string"==typeof e.template||u(e.t))?(e.template?(this.source=e.template,e=cr(this.template.r,e.template,this.ractive)):this.source=e.t,this.setTemplate(this.template.r,e.t)):this.model&&"string"==typeof this.model.get()||!this.refName?this.setTemplate(this.model.get()):this.setTemplate(this.refName,n)),this.fragment=new Ip({owner:this,template:this.partialTemplate}).bind()},e.prototype.detach=function(){return this.fragment.detach()},e.prototype.find=function(t){return this.fragment.find(t)},e.prototype.findAll=function(t,e){this.fragment.findAll(t,e)},e.prototype.findComponent=function(t){return this.fragment.findComponent(t)},e.prototype.findAllComponents=function(t,e){this.fragment.findAllComponents(t,e)},e.prototype.firstNode=function(t){return this.fragment.firstNode(t)},e.prototype.forceResetTemplate=function(){var t=this;this.partialTemplate=void 0,this.refName&&(this.partialTemplate=ar(this.ractive,this.refName,this.parentFragment)),this.partialTemplate||(this.partialTemplate=ar(this.ractive,this.name,this.parentFragment)),this.partialTemplate||(w("Could not find template for partial '"+this.name+"'"),this.partialTemplate=[]),this.inAttribute?mi(function(){return t.fragment.resetTemplate(t.partialTemplate)}):this.fragment.resetTemplate(this.partialTemplate),this.bubble()},e.prototype.render=function(t,e){this.fragment.render(t,e)},e.prototype.setTemplate=function(t,e){this.name=t,e||null===e||(e=ar(this.ractive,t,this.parentFragment)),e||w("Could not find template for partial '"+t+"'"),this.partialTemplate=e||[]},e.prototype.toString=function(t){return this.fragment.toString(t)},e.prototype.unbind=function(){t.prototype.unbind.call(this),this.fragment.unbind()},e.prototype.unrender=function(t){this.fragment.unrender(t)},e.prototype.update=function(){var t;this.dirty&&(this.dirty=!1,this.named||(this.model&&(t=this.model.get()),t&&"string"==typeof t&&t!==this.name?(this.setTemplate(t),this.fragment.resetTemplate(this.partialTemplate)):t&&"object"==typeof t&&("string"==typeof t.template||u(t.t))&&t.t!==this.source&&t.template!==this.source&&(t.template?(this.source=t.template,t=cr(this.name,t.template,this.ractive)):this.source=t.t,this.setTemplate(this.name,t.t),this.fragment.resetTemplate(this.partialTemplate))),this.fragment.update())},e}(Tu),Xu=function(t){this.parent=t.owner.parentFragment,this.parentFragment=this,this.owner=t.owner,this.ractive=this.parent.ractive,this.cssIds="cssIds"in t?t.cssIds:this.parent?this.parent.cssIds:null,this.context=null,this.rendered=!1,this.iterations=[],this.template=t.template,this.indexRef=t.indexRef,this.keyRef=t.keyRef,this.pendingNewIndices=null,this.previousIterations=null,this.isArray=!1};Xu.prototype.bind=function(t){var e=this;this.context=t;var n=t.get();if(this.isArray=u(n)){this.iterations=[];for(var i=n.length,r=0;r<i;r+=1)e.iterations[r]=e.createIteration(r,r)}else if(c(n)){if(this.isArray=!1,this.indexRef){var o=this.indexRef.split(",");this.keyRef=o[0],this.indexRef=o[1]}this.iterations=Object.keys(n).map(function(t,n){return e.createIteration(t,n)})}return this},Xu.prototype.bubble=function(){this.owner.bubble()},Xu.prototype.createIteration=function(t,e){var n=new Ip({owner:this,template:this.template});n.key=t,n.index=e,n.isIteration=!0;var i=this.context.joinKey(t);return this.owner.template.z&&(n.aliases={},n.aliases[this.owner.template.z[0].n]=i),n.bind(i)},Xu.prototype.destroyed=function(){this.iterations.forEach(function(t){return t.destroyed()})},Xu.prototype.detach=function(){var e=t();return this.iterations.forEach(function(t){return e.appendChild(t.detach())}),e},Xu.prototype.find=function(t){var e,n=this,i=this.iterations.length;for(e=0;e<i;e+=1){var r=n.iterations[e].find(t);if(r)return r}},Xu.prototype.findAll=function(t,e){var n,i=this,r=this.iterations.length;for(n=0;n<r;n+=1)i.iterations[n].findAll(t,e)},Xu.prototype.findComponent=function(t){var e,n=this,i=this.iterations.length;for(e=0;e<i;e+=1){var r=n.iterations[e].findComponent(t);if(r)return r}},Xu.prototype.findAllComponents=function(t,e){var n,i=this,r=this.iterations.length;for(n=0;n<r;n+=1)i.iterations[n].findAllComponents(t,e)},Xu.prototype.findNextNode=function(t){var e=this;if(t.index<this.iterations.length-1)for(var n=t.index+1;n<e.iterations.length;n++){var i=e.iterations[n].firstNode(!0);if(i)return i}return this.owner.findNextNode()},Xu.prototype.firstNode=function(t){return this.iterations[0]?this.iterations[0].firstNode(t):null;
-},Xu.prototype.rebinding=function(t){var e=this;this.context=t,this.iterations.forEach(function(n){var i=t?t.joinKey(n.key||n.index):void 0;n.context=i,e.owner.template.z&&(n.aliases={},n.aliases[e.owner.template.z[0].n]=i)})},Xu.prototype.render=function(t,e){this.iterations&&this.iterations.forEach(function(n){return n.render(t,e)}),this.rendered=!0},Xu.prototype.shuffle=function(t){var e=this;this.pendingNewIndices||(this.previousIterations=this.iterations.slice()),this.pendingNewIndices||(this.pendingNewIndices=[]),this.pendingNewIndices.push(t);var n=[];t.forEach(function(t,i){if(t!==-1){var r=e.iterations[i];n[t]=r,t!==i&&r&&(r.dirty=!0)}}),this.iterations=n,this.bubble()},Xu.prototype.shuffled=function(){this.iterations.forEach(function(t){return t.shuffled()})},Xu.prototype.toString=function(t){return this.iterations?this.iterations.map(t?Rt:It).join(""):""},Xu.prototype.unbind=function(){return this.iterations.forEach(Bt),this},Xu.prototype.unrender=function(t){this.iterations.forEach(t?Pt:Kt),this.pendingNewIndices&&this.previousIterations&&this.previousIterations.forEach(function(e){e.rendered&&(t?Pt(e):Kt(e))}),this.rendered=!1},Xu.prototype.update=function(){var e=this;if(this.pendingNewIndices)return void this.updatePostShuffle();if(!this.updating){this.updating=!0;var n,i,r,o=this.context.get(),s=this.isArray,a=!0;if(this.isArray=u(o))s&&(a=!1,this.iterations.length>o.length&&(n=this.iterations.splice(o.length)));else if(c(o)&&!s)for(a=!1,n=[],i={},r=this.iterations.length;r--;){var h=e.iterations[r];h.key in o?i[h.key]=!0:(e.iterations.splice(r,1),n.push(h))}a&&(n=this.iterations,this.iterations=[]),n&&n.forEach(function(t){t.unbind(),t.unrender(!0)}),this.iterations.forEach(Mt);var p,l,d=u(o)?o.length:c(o)?Object.keys(o).length:0;if(d>this.iterations.length){if(p=this.rendered?t():null,r=this.iterations.length,u(o))for(;r<o.length;)l=e.createIteration(r,r),e.iterations.push(l),e.rendered&&l.render(p),r+=1;else if(c(o)){if(this.indexRef&&!this.keyRef){var f=this.indexRef.split(",");this.keyRef=f[0],this.indexRef=f[1]}Object.keys(o).forEach(function(t){i&&t in i||(l=e.createIteration(t,r),e.iterations.push(l),e.rendered&&l.render(p),r+=1)})}if(this.rendered){var m=this.parent.findParentNode(),v=this.parent.findNextNode(this.owner);m.insertBefore(p,v)}}this.updating=!1}},Xu.prototype.updatePostShuffle=function(){var e=this,n=this.pendingNewIndices[0];this.pendingNewIndices.slice(1).forEach(function(t){n.forEach(function(e,i){n[i]=t[e]})});var i,r=this.context.get().length,o=this.previousIterations.length,s={};n.forEach(function(t,n){var i=e.previousIterations[n];if(e.previousIterations[n]=null,t===-1)s[n]=i;else if(i.index!==t){var r=e.context.joinKey(t);i.index=t,i.context=r,e.owner.template.z&&(i.aliases={},i.aliases[e.owner.template.z[0].n]=r)}}),this.previousIterations.forEach(function(t,e){t&&(s[e]=t)});var a=this.rendered?t():null,h=this.rendered?this.parent.findParentNode():null,u="startIndex"in n;for(i=u?n.startIndex:0;i<r;i++){var p=e.iterations[i];p&&u?e.rendered&&(s[i]&&a.appendChild(s[i].detach()),a.childNodes.length&&h.insertBefore(a,p.firstNode())):(p||(e.iterations[i]=e.createIteration(i,i)),e.rendered&&(s[i]&&a.appendChild(s[i].detach()),p?a.appendChild(p.detach()):e.iterations[i].render(a)))}if(this.rendered){for(i=r;i<o;i++)s[i]&&a.appendChild(s[i].detach());a.childNodes.length&&h.insertBefore(a,this.owner.findNextNode())}Object.keys(s).forEach(function(t){return s[t].unbind().unrender(!0)}),this.iterations.forEach(Mt),this.pendingNewIndices=null,this.shuffled()};var tp,ep=function(e){function n(t){e.call(this,t),this.sectionType=t.template.n||null,this.templateSectionType=this.sectionType,this.subordinate=1===t.template.l,this.fragment=null}return n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.bind=function(){e.prototype.bind.call(this),this.subordinate&&(this.sibling=this.parentFragment.items[this.parentFragment.items.indexOf(this)-1],this.sibling.nextSibling=this),this.model?(this.dirty=!0,this.update()):!this.sectionType||this.sectionType!==Ga||this.sibling&&this.sibling.isTruthy()||(this.fragment=new Ip({owner:this,template:this.template.f}).bind())},n.prototype.detach=function(){return this.fragment?this.fragment.detach():t()},n.prototype.find=function(t){if(this.fragment)return this.fragment.find(t)},n.prototype.findAll=function(t,e){this.fragment&&this.fragment.findAll(t,e)},n.prototype.findComponent=function(t){if(this.fragment)return this.fragment.findComponent(t)},n.prototype.findAllComponents=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},n.prototype.firstNode=function(t){return this.fragment&&this.fragment.firstNode(t)},n.prototype.isTruthy=function(){if(this.subordinate&&this.sibling.isTruthy())return!0;var t=this.model?this.model.isRoot?this.model.value:this.model.get():void 0;return!(!t||this.templateSectionType!==Ja&&dr(t))},n.prototype.rebinding=function(t,n,i){e.prototype.rebinding.call(this,t,n,i)&&this.fragment&&this.sectionType!==$a&&this.sectionType!==Ga&&this.fragment.rebinding(t,n)},n.prototype.render=function(t,e){this.rendered=!0,this.fragment&&this.fragment.render(t,e)},n.prototype.shuffle=function(t){this.fragment&&this.sectionType===Ya&&this.fragment.shuffle(t)},n.prototype.toString=function(t){return this.fragment?this.fragment.toString(t):""},n.prototype.unbind=function(){e.prototype.unbind.call(this),this.fragment&&this.fragment.unbind()},n.prototype.unrender=function(t){this.rendered&&this.fragment&&this.fragment.unrender(t),this.rendered=!1},n.prototype.update=function(){if(this.dirty&&(this.fragment&&this.sectionType!==$a&&this.sectionType!==Ga&&(this.fragment.context=this.model),this.model||this.sectionType===Ga)){this.dirty=!1;var e=this.model?this.model.isRoot?this.model.value:this.model.get():void 0,n=!this.subordinate||!this.sibling.isTruthy(),i=this.sectionType;null!==this.sectionType&&null!==this.templateSectionType||(this.sectionType=fr(e,this.template.i)),i&&i!==this.sectionType&&this.fragment&&(this.rendered&&this.fragment.unbind().unrender(!0),this.fragment=null);var r,o=this.sectionType===Ya||this.sectionType===Za||n&&(this.sectionType===Ga?!this.isTruthy():this.isTruthy());if(o)if(this.fragment)this.fragment.update();else if(this.sectionType===Ya)r=new Xu({owner:this,template:this.template.f,indexRef:this.template.i}).bind(this.model);else{var s=this.sectionType!==$a&&this.sectionType!==Ga?this.model:null;r=new Ip({owner:this,template:this.template.f}).bind(s)}else this.fragment&&this.rendered&&this.fragment.unbind().unrender(!0),this.fragment=null;if(r){if(this.rendered){var a=this.parentFragment.findParentNode(),h=this.parentFragment.findNextNode(this);if(h){var u=t();r.render(u),h.parentNode.insertBefore(u,h)}else r.render(a)}this.fragment=r}this.nextSibling&&(this.nextSibling.dirty=!0,this.nextSibling.update())}},n}(Tu),np=function(t){function e(e){t.call(this,e),this.options=[]}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.foundNode=function(t){if(this.binding){var e=Ui(t);e.length>0&&(this.selectedOptions=e)}},e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.sync();for(var i=this.node,r=i.options.length;r--;)i.options[r].defaultSelected=i.options[r].selected;this.rendered=!0},e.prototype.sync=function(){var t=this,e=this.node;if(e){var n=N(e.options);if(this.selectedOptions)return n.forEach(function(e){t.selectedOptions.indexOf(e)>=0?e.selected=!0:e.selected=!1}),this.binding.setFromNode(e),void delete this.selectedOptions;var i=this.getAttribute("value"),r=this.getAttribute("multiple");if(void 0!==i){var o;n.forEach(function(t){var e=t._ractive?t._ractive.value:t.value,n=r?mr(i,e):i==e;n&&(o=!0),t.selected=n}),o||r||this.binding&&this.binding.forceUpdate()}else this.binding&&this.binding.forceUpdate()}},e.prototype.update=function(){t.prototype.update.call(this),this.sync()},e}(Au),ip=function(t){function e(e){var n=e.template;e.deferContent=!0,t.call(this,e),this.attributeByName.value||(n.f&&Wi({template:n})?this.attributes.push(Cr({owner:this,template:{t:La,f:n.f,n:"value"},parentFragment:this.parentFragment})):this.fragment=new Ip({owner:this,cssIds:null,template:n.f}))}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(){var t=this;this.dirty||(this.dirty=!0,this.rendered&&!this.binding&&this.fragment&&Jo.scheduleTask(function(){t.dirty=!1,t.node.value=t.fragment.toString()}),this.parentFragment.bubble())},e}(Su),rp=function(t){function e(e){t.call(this,e),this.type=Ba}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){},e.prototype.detach=function(){return n(this.node)},e.prototype.firstNode=function(){return this.node},e.prototype.render=function(t,e){if(!fi())if(this.rendered=!0,e){var n=e[0];n&&3===n.nodeType?(e.shift(),n.nodeValue!==this.template&&(n.nodeValue=this.template)):(n=this.node=io.createTextNode(this.template),e[0]?t.insertBefore(n,e[0]):t.appendChild(n)),this.node=n}else this.node=io.createTextNode(this.template),t.appendChild(this.node)},e.prototype.toString=function(t){return t?pi(this.template):this.template},e.prototype.unbind=function(){},e.prototype.unrender=function(t){this.rendered&&t&&this.detach(),this.rendered=!1},e.prototype.update=function(){},e.prototype.valueOf=function(){return this.template},e}(ih);if(ro){var op={},sp=so("div").style;tp=function(t){if(t=vr(t),!op[t])if(void 0!==sp[t])op[t]=t;else for(var e=t.charAt(0).toUpperCase()+t.substring(1),n=go.length;n--;){var i=go[n];if(void 0!==sp[i+e]){op[t]=i+e;break}}return op[t]}}else tp=null;var ap,hp=tp,up="hidden";if(io){var pp;if(up in io)pp="";else for(var lp=go.length;lp--;){var cp=go[lp];if(up=cp+"Hidden",up in io){pp=cp;break}}void 0!==pp?(io.addEventListener(pp+"visibilitychange",gr),gr()):("onfocusout"in io?(io.addEventListener("focusout",yr),io.addEventListener("focusin",br)):(no.addEventListener("pagehide",yr),no.addEventListener("blur",yr),no.addEventListener("pageshow",br),no.addEventListener("focus",br)),ap=!0)}var dp,fp=new RegExp("^-(?:"+go.join("|")+")-"),mp=new RegExp("^(?:"+go.join("|")+")([A-Z])");if(ro){var vp,gp,yp,bp,wp,kp,Ep=so("div").style,_p=function(t){return t},xp={},Op={};void 0!==Ep.transition?(vp="transition",gp="transitionend",yp=!0):void 0!==Ep.webkitTransition?(vp="webkitTransition",gp="webkitTransitionEnd",yp=!0):yp=!1,vp&&(bp=vp+"Duration",wp=vp+"Property",kp=vp+"TimingFunction"),dp=function(t,e,n,i,r){setTimeout(function(){function o(){clearTimeout(l)}function s(){u&&p&&(t.unregisterCompleteHandler(o),t.ractive.fire(t.name+":end",t.node,t.isIntro),r())}function a(t){var e=i.indexOf(vr(wr(t.propertyName)));e!==-1&&i.splice(e,1),i.length||(clearTimeout(l),h())}function h(){d[wp]=f.property,d[kp]=f.duration,d[bp]=f.timing,t.node.removeEventListener(gp,a,!1),p=!0,s()}var u,p,l,c=(t.node.namespaceURI||"")+t.node.tagName,d=t.node.style,f={property:d[wp],timing:d[kp],duration:d[bp]};d[wp]=i.map(hp).map(kr).join(","),d[kp]=kr(n.easing||"linear"),d[bp]=n.duration/1e3+"s",t.node.addEventListener(gp,a,!1),l=setTimeout(function(){i=[],h()},n.duration+(n.delay||0)+50),t.registerCompleteHandler(o),setTimeout(function(){for(var r,o,h,l,f,m,v=i.length,g=[];v--;)l=i[v],r=c+l,yp&&!Op[r]&&(d[hp(l)]=e[l],xp[r]||(o=t.getStyle(l),xp[r]=t.getStyle(l)!=e[l],Op[r]=!xp[r],Op[r]&&(d[hp(l)]=o))),yp&&!Op[r]||(void 0===o&&(o=t.getStyle(l)),h=i.indexOf(l),h===-1?b("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):i.splice(h,1),f=/[^\d]*$/.exec(e[l])[0],m=_(parseFloat(o),parseFloat(e[l]))||function(){return e[l]},g.push({name:hp(l),interpolator:m,suffix:f}));if(g.length){var y;"string"==typeof n.easing?(y=t.ractive.easing[n.easing],y||(w(Lo(n.easing,"easing")),y=_p)):y="function"==typeof n.easing?n.easing:_p,new Os({duration:n.duration,easing:y,step:function(e){for(var n=g.length;n--;){var i=g[n];t.node.style[i.name]=i.interpolator(e)+i.suffix}},complete:function(){u=!0,s()}})}else u=!0;i.length||(t.node.removeEventListener(gp,a,!1),p=!0,s())},0)},n.delay||0)}}else dp=null;var Cp=dp,jp=no&&(no.getComputedStyle||eo.getComputedStyle),Ap=$o.resolve(),Fp={t0:"intro-outro",t1:"intro",t2:"outro"},Tp=function(t){this.owner=t.owner||t.parentFragment.owner||qn(t.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(t.parentFragment),this.ractive=this.owner.ractive,this.template=t.template,this.parentFragment=t.parentFragment,this.options=t,this.onComplete=[]};Tp.prototype.animateStyle=function(t,e,n){var i=this;if(4===arguments.length)throw new Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(!ap)return this.setStyle(t,e),Ap;var r;return"string"==typeof t?(r={},r[t]=e):(r=t,n=e),n||(w('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this),new $o(function(t){if(!n.duration)return i.setStyle(r),void t();for(var e=Object.keys(r),o=[],s=jp(i.owner.node),a=e.length;a--;){var h=e[a],u=s[hp(h)];"0px"===u&&(u=0),u!=r[h]&&(o.push(h),i.owner.node.style[hp(h)]=u)}return o.length?void Cp(i,r,n,o,t):void t()})},Tp.prototype.bind=function(){var t=this,e=this.options;e.template&&("t0"!==e.template.v&&"t1"!=e.template.v||(this.element._introTransition=this),"t0"!==e.template.v&&"t2"!=e.template.v||(this.element._outroTransition=this),this.eventName=Fp[e.template.v]);var n=this.owner.ractive;if(e.name)this.name=e.name;else{var i=e.template.f;if("string"==typeof i.n&&(i=i.n),"string"!=typeof i){var r=new Ip({owner:this.owner,template:i.n}).bind();if(i=r.toString(),r.unbind(),""===i)return}this.name=i}if(e.params)this.params=e.params;else if(e.template.f.a&&!e.template.f.a.s)this.params=e.template.f.a;else if(e.template.f.d){var o=new Ip({owner:this.owner,template:e.template.f.d}).bind();this.params=o.getArgsList(),o.unbind()}"function"==typeof this.name?(this._fn=this.name,this.name=this._fn.name):this._fn=k("transitions",n,this.name),this._fn||w(Lo(this.name,"transition"),{ractive:n}),e.template&&this.template.f.a&&this.template.f.a.s&&(this.resolvers=[],this.models=this.template.f.a.r.map(function(e,n){var i,r=$t(t.parentFragment,e);return r?r.register(t):(i=t.parentFragment.resolve(e,function(e){t.models[n]=e,T(t.resolvers,i),e.register(t)}),t.resolvers.push(i)),r}),this.argsFn=gn(this.template.f.a.s,this.template.f.a.r.length))},Tp.prototype.destroyed=function(){},Tp.prototype.getStyle=function(t){var e=jp(this.owner.node);if("string"==typeof t){var n=e[hp(t)];return"0px"===n?0:n}if(!u(t))throw new Error("Transition$getStyle must be passed a string, or an array of strings representing CSS properties");for(var i={},r=t.length;r--;){var o=t[r],s=e[hp(o)];"0px"===s&&(s=0),i[o]=s}return i},Tp.prototype.processParams=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),a({},e,t)},Tp.prototype.rebinding=function(t,e){var n=this.models.indexOf(e);~n&&(t=qt(this.template.f.a.r[n],t,e),t!==e&&(e.unregister(this),this.models.splice(n,1,t),t&&t.addShuffleRegister(this,"mark")))},Tp.prototype.registerCompleteHandler=function(t){O(this.onComplete,t)},Tp.prototype.render=function(){},Tp.prototype.setStyle=function(t,e){if("string"==typeof t)this.owner.node.style[hp(t)]=e;else{var n;for(n in t)t.hasOwnProperty(n)&&(this.owner.node.style[hp(n)]=t[n])}return this},Tp.prototype.start=function(){var t,e=this,n=this.node=this.element.node,i=n.getAttribute("style"),r=this.params;if(this.complete=function(r){t||(e.onComplete.forEach(function(t){return t()}),!r&&e.isIntro&&Er(n,i),e._manager.remove(e),t=!0)},!this._fn)return void this.complete();if(this.argsFn){var o=this.models.map(function(t){if(t)return t.get()});r=this.argsFn.apply(this.ractive,o)}var s=this._fn.apply(this.ractive,[this].concat(r));s&&s.then(this.complete)},Tp.prototype.toString=function(){return""},Tp.prototype.unbind=function(){this.resolvers&&this.resolvers.forEach(Bt)},Tp.prototype.unregisterCompleteHandler=function(t){T(this.onComplete,t)},Tp.prototype.unrender=function(){},Tp.prototype.update=function(){};var Np,Sp,Vp={};try{so("table").innerHTML="foo"}catch(t){Np=!0,Sp={TABLE:['<table class="x">',"</table>"],THEAD:['<table><thead class="x">',"</thead></table>"],TBODY:['<table><tbody class="x">',"</tbody></table>"],TR:['<table><tr class="x">',"</tr></table>"],SELECT:['<select class="x">',"</select>"]}}var Bp=function(e){function i(t){e.call(this,t)}return i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i,i.prototype.detach=function(){var e=t();return this.nodes.forEach(function(t){return e.appendChild(t)}),e},i.prototype.find=function(t){var e,n=this,i=this.nodes.length;for(e=0;e<i;e+=1){var r=n.nodes[e];if(1===r.nodeType){if(ao(r,t))return r;var o=r.querySelector(t);if(o)return o}}return null},i.prototype.findAll=function(t,e){var n,i=this,r=this.nodes.length;for(n=0;n<r;n+=1){var o=i.nodes[n];if(1===o.nodeType){e.test(o)&&e.add(o);var s=o.querySelectorAll(t);if(s){var a,h=s.length;for(a=0;a<h;a+=1)e.add(s[a])}}}},i.prototype.findComponent=function(){return null},i.prototype.firstNode=function(){return this.nodes[0]},i.prototype.render=function(t){var e=this.model?this.model.get():"";this.nodes=_r(e,this.parentFragment.findParentNode(),t),this.rendered=!0},i.prototype.toString=function(){return this.model&&null!=this.model.get()?ui(""+this.model.get()):""},i.prototype.unrender=function(){this.nodes&&this.nodes.forEach(function(t){return n(t)}),this.rendered=!1},i.prototype.update=function(){if(this.rendered&&this.dirty){this.dirty=!1,this.unrender();var e=t();this.render(e);var n=this.parentFragment.findParentNode(),i=this.parentFragment.findNextNode(this);n.insertBefore(e,i)}else this.dirty=!1},i}(Tu),Kp=function(t){function e(e){t.call(this,e),this.container=e.parentFragment.ractive,this.component=this.container.component,this.containerFragment=e.parentFragment,this.parentFragment=this.component.parentFragment,this.name=e.template.n||""}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){var t=this.name;(this.component.yielders[t]||(this.component.yielders[t]=[])).push(this);var e=this.container._inlinePartials[t||"content"];"string"==typeof e&&(e=fa(e).t),e||(b('Could not find template for partial "'+t+'"',{ractive:this.ractive}),e=[]),this.fragment=new Ip({owner:this,ractive:this.container.parent,template:e}).bind()},e.prototype.bubble=function(){this.dirty||(this.containerFragment.bubble(),this.dirty=!0)},e.prototype.detach=function(){return this.fragment.detach()},e.prototype.find=function(t){return this.fragment.find(t)},e.prototype.findAll=function(t,e){this.fragment.findAll(t,e)},e.prototype.findComponent=function(t){return this.fragment.findComponent(t)},e.prototype.findAllComponents=function(t,e){this.fragment.findAllComponents(t,e)},e.prototype.findNextNode=function(){return this.containerFragment.findNextNode(this)},e.prototype.firstNode=function(t){return this.fragment.firstNode(t)},e.prototype.render=function(t,e){return this.fragment.render(t,e)},e.prototype.setTemplate=function(t){var e=this.parentFragment.ractive.partials[t];"string"==typeof e&&(e=fa(e).t),this.partialTemplate=e||[]},e.prototype.toString=function(t){return this.fragment.toString(t)},e.prototype.unbind=function(){this.fragment.unbind(),T(this.component.yielders[this.name],this)},e.prototype.unrender=function(t){this.fragment.unrender(t)},e.prototype.update=function(){this.dirty=!1,this.fragment.update()},e}(ih),Pp={};Pp[Ha]=hh,Pp[qa]=pu,Pp[Ka]=Nu,Pp[Ra]=Ju,Pp[Ma]=ep,Pp[Pa]=Bp,Pp[Ua]=Kp,Pp[La]=Ch,Pp[nh]=jh,Pp[th]=uu,Pp[Xa]=ou,Pp[eh]=Tp;var Mp={doctype:pu,form:Fu,input:Su,option:Zu,select:np,textarea:ip},Ip=function(t){this.owner=t.owner,this.isRoot=!t.owner.parentFragment,this.parent=this.isRoot?null:this.owner.parentFragment,this.ractive=t.ractive||(this.isRoot?t.owner:this.parent.ractive),this.componentParent=this.isRoot&&this.ractive.component?this.ractive.component.parentFragment:null,this.context=null,this.rendered=!1,this.cssIds="cssIds"in t?t.cssIds:this.parent?this.parent.cssIds:null,this.resolvers=[],this.dirty=!1,this.dirtyArgs=this.dirtyValue=!0,this.template=t.template||[],this.createItems()};Ip.prototype.bind=function(t){return this.context=t,this.items.forEach(Ct),this.bound=!0,this.dirty&&this.update(),this},Ip.prototype.bubble=function(){this.dirtyArgs=this.dirtyValue=!0,this.dirty||(this.dirty=!0,this.isRoot?this.ractive.component?this.ractive.component.bubble():this.bound&&Jo.addFragment(this):this.owner.bubble())},Ip.prototype.createItems=function(){var t=this,e=this.template.length;this.items=[];for(var n=0;n<e;n++)t.items[n]=Cr({parentFragment:t,template:t.template[n],index:n})},Ip.prototype.destroyed=function(){this.items.forEach(function(t){return t.destroyed()})},Ip.prototype.detach=function(){var e=t();return this.items.forEach(function(t){return e.appendChild(t.detach())}),e},Ip.prototype.find=function(t){var e,n=this,i=this.items.length;for(e=0;e<i;e+=1){var r=n.items[e].find(t);if(r)return r}},Ip.prototype.findAll=function(t,e){var n=this;if(this.items){var i,r=this.items.length;for(i=0;i<r;i+=1){var o=n.items[i];o.findAll&&o.findAll(t,e)}}return e},Ip.prototype.findComponent=function(t){var e,n=this,i=this.items.length;for(e=0;e<i;e+=1){var r=n.items[e].findComponent(t);if(r)return r}},Ip.prototype.findAllComponents=function(t,e){var n=this;if(this.items){var i,r=this.items.length;for(i=0;i<r;i+=1){var o=n.items[i];o.findAllComponents&&o.findAllComponents(t,e)}}return e},Ip.prototype.findContext=function(){for(var t=this;t&&!t.context;)t=t.parent;return t?t.context:this.ractive.viewmodel},Ip.prototype.findNextNode=function(t){var e=this;if(t)for(var n=t.index+1;n<e.items.length;n++)if(e.items[n]){var i=e.items[n].firstNode(!0);if(i)return i}return this.isRoot?this.ractive.component?this.ractive.component.parentFragment.findNextNode(this.ractive.component):null:this.parent?this.owner.findNextNode(this):void 0},Ip.prototype.findParentNode=function(){var t=this;do{if(t.owner.type===Ia)return t.owner.node;if(t.isRoot&&!t.ractive.component)return t.ractive.el;t=t.owner.type===Ua?t.owner.containerFragment:t.componentParent||t.parent}while(t);throw new Error("Could not find parent node")},Ip.prototype.findRepeatingFragment=function(){for(var t=this;(t.parent||t.componentParent)&&!t.isIteration;)t=t.parent||t.componentParent;return t},Ip.prototype.firstNode=function(t){for(var e,n=this,i=0;i<n.items.length;i++)if(e=n.items[i].firstNode(!0))return e;return t?null:this.parent.findNextNode(this.owner)},Ip.prototype.getArgsList=function(){if(this.dirtyArgs){var t={},e=jr(this.items,t,this.ractive._guid),n=or("["+e+"]",t);this.argsList=n?n.value:[this.toString()],this.dirtyArgs=!1}return this.argsList},Ip.prototype.rebinding=function(t){this.context=t},Ip.prototype.render=function(t,e){if(this.rendered)throw new Error("Fragment is already rendered!");this.rendered=!0,this.items.forEach(function(n){return n.render(t,e)})},Ip.prototype.resetTemplate=function(e){var n=this.bound,i=this.rendered;if(n&&(i&&this.unrender(!0),this.unbind()),this.template=e,this.createItems(),n&&(this.bind(this.context),i)){var r=this.findParentNode(),o=this.findNextNode();if(o){var s=t();this.render(s),r.insertBefore(s,o)}else this.render(r)}},Ip.prototype.resolve=function(t,e){if(!this.context&&this.parent.resolve)return this.parent.resolve(t,e);var n=new qs(this,t,e);return this.resolvers.push(n),n},Ip.prototype.shuffled=function(){this.items.forEach(function(t){return t.shuffled()})},Ip.prototype.toHtml=function(){return this.toString()},Ip.prototype.toString=function(t){return this.items.map(t?Rt:It).join("")},Ip.prototype.unbind=function(){return this.items.forEach(Bt),this.bound=!1,this},Ip.prototype.unrender=function(t){this.items.forEach(t?Ar:Kt),this.rendered=!1},Ip.prototype.update=function(){this.dirty&&(this.updating?this.isRoot&&Jo.addFragmentToRoot(this):(this.dirty=!1,this.updating=!0,this.items.forEach(Mt),this.updating=!1))},Ip.prototype.valueOf=function(){if(1===this.items.length)return this.items[0].valueOf();if(this.dirtyValue){var t={},e=jr(this.items,t,this.ractive._guid),n=or(e,t);this.value=n?n.value:this.toString(),this.dirtyValue=!1}return this.value};var Rp=Xt("reverse").path,Lp=Xt("shift").path,Dp=Xt("sort").path,Up=Xt("splice").path,qp=new qo("teardown"),Hp=new qo("unrender"),Wp=Xt("unshift").path,Qp={add:Z,animate:tt,detach:et,find:nt,findAll:at,findAllComponents:ht,findComponent:ut,findContainer:pt,findParent:lt,fire:wt,get:Gt,getNodeInfo:Ie,insert:Re,link:De,merge:ne,observe:Ue,observeList:He,observeOnce:Qe,off:Ge,on:Ye,once:Ze,pop:$s,push:Gs,render:nn,reset:Pn,resetPartial:Rn,resetTemplate:Fr,reverse:Rp,set:Tr,shift:Lp,sort:Dp,splice:Up,subtract:Nr,teardown:Sr,toggle:Vr,toCSS:Br,toCss:Br,toHTML:Kr,toHtml:Kr,toText:Pr,transition:Mr,unlink:Ir,unrender:Rr,unshift:Wp,update:re,updateModel:Lr},zp="function";if(typeof Date.now!==zp||typeof String.prototype.trim!==zp||typeof Object.keys!==zp||typeof Array.prototype.indexOf!==zp||typeof Array.prototype.forEach!==zp||typeof Array.prototype.map!==zp||typeof Array.prototype.filter!==zp||no&&typeof no.addEventListener!==zp)throw new Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");return a(Zr.prototype,Qp,Xr),Zr.prototype.constructor=Zr,Zr.defaults=Zr.prototype,jo(Zr,{DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:zr},escapeKey:{value:U},getNodeInfo:{value:Me},joinKeys:{value:Gr},parse:{value:fa},splitKeypath:{value:Yr},unescapeKey:{value:W},getCSS:{value:tn},Promise:{value:$o},enhance:{writable:!0,value:!1},svg:{value:vo},magic:{value:Jr},VERSION:{value:"0.8.7"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:to},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Do},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}}),Zr});
-//# sourceMappingURL=ractive.runtime.min.js.map
diff --git a/src/lib/api/format.js b/src/lib/api/format.js
deleted file mode 100644
index cedfeecb699dccebdbac23f8fc91793b3f3ff6a8..0000000000000000000000000000000000000000
--- a/src/lib/api/format.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import Registry from '../class/Registry';
-
-// instantiate
-const registry = new Registry();
-
-/**
- * Custom format API
- *
- * @see https://github.com/json-schema-faker/json-schema-faker#custom-formats
- * @param nameOrFormatMap
- * @param callback
- * @returns {any}
- */
-function formatAPI(nameOrFormatMap, callback) {
-  if (typeof nameOrFormatMap === 'undefined') {
-    return registry.list();
-  }
-
-  if (typeof nameOrFormatMap === 'string') {
-    if (typeof callback === 'function') {
-      registry.register(nameOrFormatMap, callback);
-    } else if (callback === null || callback === false) {
-      registry.unregister(nameOrFormatMap);
-    } else {
-      return registry.get(nameOrFormatMap);
-    }
-  } else {
-    registry.registerMany(nameOrFormatMap);
-  }
-}
-
-export default formatAPI;
diff --git a/src/lib/api/option.js b/src/lib/api/option.js
deleted file mode 100644
index 97bb5920332f24ceedbbc9f8b235232b18df6cf8..0000000000000000000000000000000000000000
--- a/src/lib/api/option.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import OptionRegistry from '../class/OptionRegistry';
-
-// instantiate
-const registry = new OptionRegistry();
-
-/**
- * Custom option API
- *
- * @param nameOrOptionMap
- * @returns {any}
- */
-function optionAPI(nameOrOptionMap, optionalValue) {
-  if (typeof nameOrOptionMap === 'string') {
-    if (typeof optionalValue !== 'undefined') {
-      return registry.register(nameOrOptionMap, optionalValue);
-    }
-
-    return registry.get(nameOrOptionMap);
-  }
-
-  return registry.registerMany(nameOrOptionMap);
-}
-
-optionAPI.getDefaults = () => registry.defaults;
-
-export default optionAPI;
diff --git a/src/lib/class/Container.js b/src/lib/class/Container.js
deleted file mode 100644
index 530a548760bd055746d88fdcd260a581eede3ae3..0000000000000000000000000000000000000000
--- a/src/lib/class/Container.js
+++ /dev/null
@@ -1,147 +0,0 @@
-import util from '../core/utils';
-
-// dynamic proxy for custom generators
-function proxy(gen) {
-  return (value, schema, property, rootSchema) => {
-    let fn = value;
-    let args = [];
-
-    // support for nested object, first-key is the generator
-    if (typeof value === 'object') {
-      fn = Object.keys(value)[0];
-
-      // treat the given array as arguments,
-      if (Array.isArray(value[fn])) {
-        // if the generator is expecting arrays they should be nested, e.g. `[[1, 2, 3], true, ...]`
-        args = value[fn];
-      } else {
-        args.push(value[fn]);
-      }
-    }
-
-    // support for keypaths, e.g. "internet.email"
-    const props = fn.split('.');
-
-    // retrieve a fresh dependency
-    let ctx = gen();
-
-    while (props.length > 1) {
-      ctx = ctx[props.shift()];
-    }
-
-    // retrieve last value from context object
-    value = typeof ctx === 'object' ? ctx[props[0]] : ctx;
-
-    // invoke dynamic generators
-    if (typeof value === 'function') {
-      value = value.apply(ctx, args.map(x => util.template(x, rootSchema)));
-    }
-
-    // test for pending callbacks
-    if (Object.prototype.toString.call(value) === '[object Object]') {
-      Object.keys(value).forEach(key => {
-        if (typeof value[key] === 'function') {
-          throw new Error(`Cannot resolve value for '${property}: ${fn}', given: ${value}`);
-        }
-      });
-    }
-
-    return value;
-  };
-}
-
-/**
- * Container is used to wrap external generators (faker, chance, casual, etc.) and its dependencies.
- *
- * - `jsf.extend('faker')` will enhance or define the given dependency.
- * - `jsf.define('faker')` will provide the "faker" keyword support.
- *
- * RandExp is not longer considered an "extension".
- */
-class Container {
-  constructor() {
-    // dynamic requires - handle all dependencies
-    // they will NOT be included on the bundle
-    this.registry = {};
-    this.support = {};
-  }
-
-  /**
-   * Unregister extensions
-   * @param name
-   */
-  reset(name) {
-    if (!name) {
-      this.registry = {};
-      this.support = {};
-    } else {
-      delete this.registry[name];
-      delete this.support[name];
-    }
-  }
-
-  /**
-   * Override dependency given by name
-   * @param name
-   * @param callback
-   */
-  extend(name, callback) {
-    this.registry[name] = callback(this.registry[name]);
-
-    // built-in proxy (can be overridden)
-    if (!this.support[name]) {
-      this.support[name] = proxy(() => this.registry[name]);
-    }
-  }
-
-  /**
-   * Set keyword support by name
-   * @param name
-   * @param callback
-   */
-  define(name, callback) {
-    this.support[name] = callback;
-  }
-
-  /**
-   * Returns dependency given by name
-   * @param name
-   * @returns {Dependency}
-   */
-  get(name) {
-    if (typeof this.registry[name] === 'undefined') {
-      throw new ReferenceError(`'${name}' dependency doesn't exist.`);
-    }
-    return this.registry[name];
-  }
-
-  /**
-   * Apply a custom keyword
-   * @param schema
-   */
-  wrap(schema) {
-    const keys = Object.keys(schema);
-    const context = {};
-
-    let length = keys.length;
-
-    while (length--) { // eslint-disable-line
-      const fn = keys[length].replace(/^x-/, '');
-      const gen = this.support[fn];
-
-      if (typeof gen === 'function') {
-        Object.defineProperty(schema, 'generate', {
-          configurable: false,
-          enumerable: false,
-          writable: false,
-          value: rootSchema => gen.call(context, schema[keys[length]], schema, keys[length], rootSchema), // eslint-disable-line
-        });
-        break;
-      }
-    }
-
-    return schema;
-  }
-}
-
-export default Container;
diff --git a/src/lib/class/OptionRegistry.js b/src/lib/class/OptionRegistry.js
deleted file mode 100644
index 09595cd0bb930a48a80ec60fc37b0b9fb66c3c57..0000000000000000000000000000000000000000
--- a/src/lib/class/OptionRegistry.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import Registry from './Registry';
-
-const defaults = {};
-
-defaults.defaultInvalidTypeProduct = null;
-defaults.defaultRandExpMax = 10;
-
-defaults.ignoreProperties = [];
-defaults.ignoreMissingRefs = false;
-defaults.failOnInvalidTypes = true;
-defaults.failOnInvalidFormat = true;
-
-defaults.alwaysFakeOptionals = false;
-defaults.optionalsProbability = false;
-defaults.fixedProbabilities = false;
-defaults.useExamplesValue = false;
-defaults.useDefaultValue = false;
-defaults.requiredOnly = false;
-
-defaults.minItems = 0;
-defaults.maxItems = null;
-defaults.minLength = 0;
-defaults.maxLength = null;
-
-defaults.resolveJsonPath = false;
-defaults.reuseProperties = false;
-defaults.fillProperties = true;
-defaults.replaceEmptyByRandomValue = false;
-
-defaults.random = Math.random;
-
-/**
- * This class defines a registry for custom settings used within JSF.
- */
-class OptionRegistry extends Registry {
-  constructor() {
-    super();
-    this.data = Object.assign({}, defaults);
-    this._defaults = defaults;
-  }
-
-  get defaults() {
-    return Object.assign({}, this._defaults);
-  }
-}
-
-export default OptionRegistry;
diff --git a/src/lib/class/Registry.js b/src/lib/class/Registry.js
deleted file mode 100644
index 0eece05a067708c3f2226ea80ae9a4d05c4d6193..0000000000000000000000000000000000000000
--- a/src/lib/class/Registry.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * This class defines a registry for custom formats used within JSF.
- */
-class Registry {
-  constructor() {
-    // empty by default
-    this.data = {};
-  }
-
-  /**
-   * Unregisters custom format(s)
-   * @param name
-   */
-  unregister(name) {
-    if (!name) {
-      this.data = {};
-    } else {
-      delete this.data[name];
-    }
-  }
-
-  /**
-   * Registers custom format
-   */
-  register(name, callback) {
-    this.data[name] = callback;
-  }
-
-  /**
-   * Register many formats at one shot
-   */
-  registerMany(formats) {
-    Object.keys(formats).forEach(name => {
-      this.data[name] = formats[name];
-    });
-  }
-
-  /**
-   * Returns element by registry key
-   */
-  get(name) {
-    const format = this.data[name];
-
-    return format;
-  }
-
-  /**
-   * Returns the whole registry content
-   */
-  list() {
-    return this.data;
-  }
-}
-
-export default Registry;
diff --git a/src/lib/core/constants.js b/src/lib/core/constants.js
deleted file mode 100644
index c27af463706e38b42a6ce205604961d8fba752e2..0000000000000000000000000000000000000000
--- a/src/lib/core/constants.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const SCALAR_TYPES = ['integer', 'number', 'string', 'boolean', 'null'];
-const ALL_TYPES = ['array', 'object'].concat(SCALAR_TYPES);
-
-const MOST_NEAR_DATETIME = 2524608000000;
-
-const MIN_INTEGER = -100000000;
-const MAX_INTEGER = 100000000;
-
-const MIN_NUMBER = -100;
-const MAX_NUMBER = 100;
-
-export default {
-  SCALAR_TYPES,
-  ALL_TYPES,
-  MIN_NUMBER,
-  MAX_NUMBER,
-  MIN_INTEGER,
-  MAX_INTEGER,
-  MOST_NEAR_DATETIME,
-};
diff --git a/src/lib/core/error.js b/src/lib/core/error.js
deleted file mode 100644
index 89fecaa2c4bdca4f9f220d335790cd06205373a4..0000000000000000000000000000000000000000
--- a/src/lib/core/error.js
+++ /dev/null
@@ -1,13 +0,0 @@
-class ParseError extends Error {
-  constructor(message, path) {
-    super();
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(this, this.constructor);
-    }
-    this.name = 'ParseError';
-    this.message = message;
-    this.path = path;
-  }
-}
-
-export default ParseError;
diff --git a/src/lib/core/infer.js b/src/lib/core/infer.js
deleted file mode 100644
index 744af44533a87b973c1cfbaf0077e8b735ca6a7d..0000000000000000000000000000000000000000
--- a/src/lib/core/infer.js
+++ /dev/null
@@ -1,85 +0,0 @@
-const inferredProperties = {
-  array: [
-    'additionalItems',
-    'items',
-    'maxItems',
-    'minItems',
-    'uniqueItems',
-  ],
-  integer: [
-    'exclusiveMaximum',
-    'exclusiveMinimum',
-    'maximum',
-    'minimum',
-    'multipleOf',
-  ],
-  object: [
-    'additionalProperties',
-    'dependencies',
-    'maxProperties',
-    'minProperties',
-    'patternProperties',
-    'properties',
-    'required',
-  ],
-  string: [
-    'maxLength',
-    'minLength',
-    'pattern',
-    'format',
-  ],
-};
-
-inferredProperties.number = inferredProperties.integer;
-
-const subschemaProperties = [
-  'additionalItems',
-  'items',
-  'additionalProperties',
-  'dependencies',
-  'patternProperties',
-  'properties',
-];
-
-/**
- * Iterates through all keys of `obj` and:
- * - checks whether those keys match properties of a given inferred type
- * - makes sure that `obj` is not a subschema; _Do not attempt to infer properties named as subschema containers. The
- * reason for this is that any property name within those containers that matches one of the properties used for
- * inferring missing type values causes the container itself to get processed which leads to invalid output. (Issue 62)_
- *
- * @returns {boolean}
- */
-function matchesType(obj, lastElementInPath, inferredTypeProperties) {
-  return Object.keys(obj).filter(prop => {
-    const isSubschema = subschemaProperties.indexOf(lastElementInPath) > -1;
-    const inferredPropertyFound = inferredTypeProperties.indexOf(prop) > -1;
-
-    if (inferredPropertyFound && !isSubschema) {
-      return true;
-    }
-
-    return false;
-  }).length > 0;
-}
-
-/**
- * Checks whether given `obj` type might be inferred. The mechanism iterates through all inferred types definitions,
- * tries to match allowed properties with properties of given `obj`. Returns type name, if inferred, or null.
- *
- * @returns {string|null}
- */
-function inferType(obj, schemaPath) {
-  const keys = Object.keys(inferredProperties);
-
-  for (let i = 0; i < keys.length; i += 1) {
-    const typeName = keys[i];
-    const lastElementInPath = schemaPath[schemaPath.length - 1];
-
-    if (matchesType(obj, lastElementInPath, inferredProperties[typeName])) {
-      return typeName;
-    }
-  }
-}
-
-export default inferType;
diff --git a/src/lib/core/random.js b/src/lib/core/random.js
deleted file mode 100644
index add5d1f0f9bec6ed9c97df89242da8ec4e055cdb..0000000000000000000000000000000000000000
--- a/src/lib/core/random.js
+++ /dev/null
@@ -1,144 +0,0 @@
-import RandExp from 'randexp';
-
-import optionAPI from '../api/option';
-import env from './constants';
-
-function getRandomInteger(min, max) {
-  min = typeof min === 'undefined' ? env.MIN_INTEGER : min;
-  max = typeof max === 'undefined' ? env.MAX_INTEGER : max;
-
-  return Math.floor(optionAPI('random')() * ((max - min) + 1)) + min;
-}
-
-function _randexp(value) {
-  // set maximum default, see #193
-  RandExp.prototype.max = optionAPI('defaultRandExpMax');
-
-  // same implementation as the original except using our random
-  RandExp.prototype.randInt = (a, b) => a + Math.floor(optionAPI('random')() * (1 + (b - a)));
-
-  const re = new RandExp(value);
-
-  return re.gen();
-}
-
-/**
- * Returns random element of a collection
- *
- * @param collection
- * @returns {T}
- */
-function pick(collection) {
-  return collection[Math.floor(optionAPI('random')() * collection.length)];
-}
-
-/**
- * Returns shuffled collection of elements
- *
- * @param collection
- * @returns {T[]}
- */
-function shuffle(collection) {
-  let tmp;
-  let key;
-  let length = collection.length;
-
-  const copy = collection.slice();
-
-  for (; length > 0;) {
-    key = Math.floor(optionAPI('random')() * length);
-    // swap
-    length -= 1;
-    tmp = copy[length];
-    copy[length] = copy[key];
-    copy[key] = tmp;
-  }
-
-  return copy;
-}
-
-
-/**
- * Returns a random integer between min (inclusive) and max (inclusive)
- * Using Math.round() will give you a non-uniform distribution!
- * @see http://stackoverflow.com/a/1527820/769384
- */
-function getRandom(min, max) {
-  return (optionAPI('random')() * (max - min)) + min;
-}
-
-/**
- * Generates random number according to parameters passed
- *
- * @param min
- * @param max
- * @param defMin
- * @param defMax
- * @param hasPrecision
- * @returns {number}
- */
-function number(min, max, defMin, defMax, hasPrecision = false) {
-  defMin = typeof defMin === 'undefined' ? env.MIN_NUMBER : defMin;
-  defMax = typeof defMax === 'undefined' ? env.MAX_NUMBER : defMax;
-
-  min = typeof min === 'undefined' ? defMin : min;
-  max = typeof max === 'undefined' ? defMax : max;
-
-  if (max < min) {
-    max += min;
-  }
-
-  if (hasPrecision) {
-    return getRandom(min, max);
-  }
-
-  return getRandomInteger(min, max);
-}
-
-function by(type) {
-  switch (type) {
-    case 'seconds':
-      return number(0, 60) * 60;
-
-    case 'minutes':
-      return number(15, 50) * 612;
-
-    case 'hours':
-      return number(12, 72) * 36123;
-
-    case 'days':
-      return number(7, 30) * 86412345;
-
-    case 'weeks':
-      return number(4, 52) * 604812345;
-
-    case 'months':
-      return number(2, 13) * 2592012345;
-
-    case 'years':
-      return number(1, 20) * 31104012345;
-
-    default: break;
-  }
-}
-
-function date(step) {
-  if (step) {
-    return by(step);
-  }
-
-  const now = new Date();
-  const days = number(-1000, env.MOST_NEAR_DATETIME);
-
-  now.setTime(now.getTime() - days);
-
-  return now;
-}
-
-export default {
-  pick,
-  date,
-  shuffle,
-  number,
-  randexp: _randexp,
-};
diff --git a/src/lib/core/run.js b/src/lib/core/run.js
deleted file mode 100644
index 2194479b21b725b97edc3b819596dd8f648a77b0..0000000000000000000000000000000000000000
--- a/src/lib/core/run.js
+++ /dev/null
@@ -1,254 +0,0 @@
-import { JSONPath } from 'jsonpath-plus';
-
-import optionAPI from '../api/option';
-import traverse from './traverse';
-import random from './random';
-import utils from './utils';
-
-function isEmpty(value) {
-  return Object.prototype.toString.call(value) === '[object Object]' && !Object.keys(value).length;
-}
-
-function pick(data) {
-  return Array.isArray(data)
-    ? random.pick(data)
-    : data;
-}
-
-function cycle(data, reverse) {
-  if (!Array.isArray(data)) {
-    return data;
-  }
-
-  const value = reverse
-    ? data.pop()
-    : data.shift();
-
-  if (reverse) {
-    data.unshift(value);
-  } else {
-    data.push(value);
-  }
-
-  return value;
-}
-
-function clean(obj, isArray) {
-  if (!obj || typeof obj !== 'object') {
-    return obj;
-  }
-
-  if (Array.isArray(obj)) {
-    return obj
-      .map(value => clean(value, true))
-      .filter(value => typeof value !== 'undefined');
-  }
-
-  Object.keys(obj).forEach(k => {
-    if (!isEmpty(obj[k])) {
-      const value = clean(obj[k]);
-
-      if (!isEmpty(value)) {
-        obj[k] = value;
-      }
-    } else {
-      delete obj[k];
-    }
-  });
-
-  if (!Object.keys(obj).length && isArray) {
-    return undefined;
-  }
-
-  return obj;
-}
-
-function resolve(obj, data, values, property) {
-  if (!obj || typeof obj !== 'object') {
-    return obj;
-  }
-
-  if (!values) {
-    values = {};
-  }
-
-  if (!data) {
-    data = obj;
-  }
-
-  if (Array.isArray(obj)) {
-    return obj.map(x => resolve(x, data, values, property));
-  }
-
-  if (obj.jsonPath) {
-    const params = typeof obj.jsonPath !== 'object'
-      ? { path: obj.jsonPath }
-      : obj.jsonPath;
-
-    params.group = obj.group || params.group || property;
-    params.cycle = obj.cycle || params.cycle || false;
-    params.reverse = obj.reverse || params.reverse || false;
-    params.count = obj.count || params.count || 1;
-
-    const key = `${params.group}__${params.path}`;
-
-    if (!values[key]) {
-      if (params.count > 1) {
-        values[key] = JSONPath(params.path, data).slice(0, params.count);
-      } else {
-        values[key] = JSONPath(params.path, data);
-      }
-    }
-
-    if (params.cycle || params.reverse) {
-      return cycle(values[key], params.reverse);
-    }
-
-    return pick(values[key]);
-  }
-
-  Object.keys(obj).forEach(k => {
-    obj[k] = resolve(obj[k], data, values, k);
-  });
-
-  return obj;
-}
-
-// TODO provide types
-function run(refs, schema, container) {
-  let depth = 0;
-  let lastRef;
-
-  try {
-    const result = traverse(utils.clone(schema), [], function reduce(sub, index, rootPath) {
-      if (typeof sub.generate === 'function') {
-        return sub;
-      }
-
-      // cleanup
-      const _id = sub.$id || sub.id;
-
-      if (typeof _id === 'string') {
-        delete sub.id;
-        delete sub.$id;
-        delete sub.$schema;
-      }
-
-      if (typeof sub.$ref === 'string') {
-        // increasing depth only for repeated refs seems to be fixing #258
-        if (sub.$ref === '#' || (lastRef === sub.$ref && ++depth > random.number(0, 3))) {
-          delete sub.$ref;
-          return sub;
-        }
-
-        lastRef = sub.$ref;
-
-        let ref;
-
-        if (sub.$ref.indexOf('#/') === -1) {
-          ref = refs[sub.$ref] || null;
-        }
-
-        if (sub.$ref.indexOf('#/definitions/') === 0) {
-          ref = schema.definitions[sub.$ref.split('#/definitions/')[1]] || null;
-        }
-
-        if (typeof ref !== 'undefined') {
-          if (!ref && optionAPI('ignoreMissingRefs') !== true) {
-            throw new Error(`Reference not found: ${sub.$ref}`);
-          }
-
-          utils.merge(sub, ref || {});
-        }
-
-        // just remove the reference
-        delete sub.$ref;
-        return sub;
-      }
-
-      if (Array.isArray(sub.allOf)) {
-        const schemas = sub.allOf;
-
-        delete sub.allOf;
-
-        // this is the only case where all sub-schemas
-        // must be resolved before any merge
-        schemas.forEach(subSchema => {
-          const _sub = reduce(subSchema, null, rootPath);
-
-          // call given thunks if present
-          utils.merge(sub, typeof _sub.thunk === 'function'
-            ? _sub.thunk(sub)
-            : _sub);
-        });
-      }
-
-      if (Array.isArray(sub.oneOf || sub.anyOf)) {
-        const mix = sub.oneOf || sub.anyOf;
-
-        // test every value from the enum against each-oneOf
-        // schema, only values that validate once are kept
-        if (sub.enum && sub.oneOf) {
-          sub.enum = sub.enum.filter(x => utils.validate(x, mix));
-        }
-
-        return {
-          thunk(rootSchema) {
-            const copy = utils.omitProps(sub, ['anyOf', 'oneOf']);
-            const fixed = random.pick(mix);
-
-            utils.merge(copy, fixed);
-
-            // remove additional properties from merged schemas
-            mix.forEach(omit => {
-              if (omit.required && omit !== fixed) {
-                omit.required.forEach(key => {
-                  if (copy.properties && !copy.required.includes(key)) {
-                    delete copy.properties[key];
-                  }
-
-                  if (rootSchema && rootSchema.properties) {
-                    delete rootSchema.properties[key];
-                  }
-                });
-              }
-            });
-
-            return copy;
-          },
-        };
-      }
-
-      Object.keys(sub).forEach(prop => {
-        if ((Array.isArray(sub[prop]) || typeof sub[prop] === 'object') && !utils.isKey(prop)) {
-          sub[prop] = reduce(sub[prop], prop, rootPath.concat(prop));
-        }
-      });
-
-      // avoid extra calls on sub-schemas, fixes #458
-      if (rootPath) {
-        const lastProp = rootPath[rootPath.length - 1];
-
-        if (lastProp === 'properties' || lastProp === 'items') {
-          return sub;
-        }
-      }
-
-      return container.wrap(sub);
-    });
-
-    if (optionAPI('resolveJsonPath')) {
-      return resolve(clean(result));
-    }
-
-    return clean(result);
-  } catch (e) {
-    if (e.path) {
-      throw new Error(`${e.message} in /${e.path.join('/')}`);
-    } else {
-      throw e;
-    }
-  }
-}
-
-export default run;
diff --git a/src/lib/core/traverse.js b/src/lib/core/traverse.js
deleted file mode 100644
index 40f61df8a355d5b377bce4edba68b6eec94a27fc..0000000000000000000000000000000000000000
--- a/src/lib/core/traverse.js
+++ /dev/null
@@ -1,119 +0,0 @@
-import utils from './utils';
-import random from './random';
-import ParseError from './error';
-import inferType from './infer';
-import types from '../types/index';
-import optionAPI from '../api/option';
-
-// TODO provide types
-function traverse(schema, path, resolve, rootSchema) {
-  schema = resolve(schema, null, path);
-
-  if (!schema) {
-    return;
-  }
-
-  // default values has higher precedence
-  if (path[path.length - 1] !== 'properties') {
-    // example values have highest precedence
-    if (optionAPI('useExamplesValue') && Array.isArray(schema.examples)) {
-      // include `default` value as example too
-      const fixedExamples = schema.examples
-        .concat('default' in schema ? [schema.default] : []);
-
-      return utils.typecast(null, schema, () => random.pick(fixedExamples));
-    }
-
-    if (optionAPI('useDefaultValue') && 'default' in schema) {
-      if (schema.default !== '' || !optionAPI('replaceEmptyByRandomValue')) {
-        return schema.default;
-      }
-    }
-
-    if ('template' in schema) {
-      return utils.template(schema.template, rootSchema);
-    }
-  }
-
-  if (schema.not && typeof schema.not === 'object') {
-    schema = utils.notValue(schema.not, utils.omitProps(schema, ['not']));
-
-    // build new object value from not-schema!
-    if (schema.type && schema.type === 'object') {
-      return traverse(schema, path.concat(['not']), resolve, rootSchema);
-    }
-  }
-
-  if ('const' in schema) {
-    return schema.const;
-  }
-
-  if (Array.isArray(schema.enum)) {
-    return utils.typecast(null, schema, () => random.pick(schema.enum));
-  }
-
-  // thunks can return sub-schemas
-  if (typeof schema.thunk === 'function') {
-    return traverse(schema.thunk(rootSchema), path, resolve);
-  }
-
-  if (typeof schema.generate === 'function') {
-    return utils.typecast(null, schema, () => schema.generate(rootSchema));
-  }
-
-  // short-circuit as we don't plan generate more values!
-  if (schema.jsonPath) {
-    return schema;
-  }
-
-  // TODO remove the ugly overcome
-  let type = schema.type;
-
-  if (Array.isArray(type)) {
-    type = random.pick(type);
-  } else if (typeof type === 'undefined') {
-    // Attempt to infer the type
-    type = inferType(schema, path) || type;
-
-    if (type) {
-      schema.type = type;
-    }
-  }
-
-  if (typeof type === 'string') {
-    if (!types[type]) {
-      if (optionAPI('failOnInvalidTypes')) {
-        throw new ParseError(`unknown primitive ${utils.short(type)}`, path.concat(['type']));
-      } else {
-        return optionAPI('defaultInvalidTypeProduct');
-      }
-    } else {
-      try {
-        return types[type](schema, path, resolve, traverse);
-      } catch (e) {
-        if (typeof e.path === 'undefined') {
-          throw new ParseError(e.stack, path);
-        }
-        throw e;
-      }
-    }
-  }
-
-  let copy = {};
-
-  if (Array.isArray(schema)) {
-    copy = [];
-  }
-
-  Object.keys(schema).forEach(prop => {
-    if (typeof schema[prop] === 'object' && prop !== 'definitions') {
-      copy[prop] = traverse(schema[prop], path.concat([prop]), resolve, copy);
-    } else {
-      copy[prop] = schema[prop];
-    }
-  });
-
-  return copy;
-}
-
-export default traverse;
diff --git a/src/lib/core/utils.js b/src/lib/core/utils.js
deleted file mode 100644
index b22847d011959ca9b3baf1616d72c532b08f8ff2..0000000000000000000000000000000000000000
--- a/src/lib/core/utils.js
+++ /dev/null
@@ -1,363 +0,0 @@
-import optionAPI from '../api/option';
-import env from './constants';
-import random from './random';
-
-function getSubAttribute(obj, dotSeparatedKey) {
-  const keyElements = dotSeparatedKey.split('.');
-
-  while (keyElements.length) {
-    const prop = keyElements.shift();
-
-    if (!obj[prop]) {
-      break;
-    }
-
-    obj = obj[prop];
-  }
-  return obj;
-}
-
-/**
- * Returns true/false whether the object parameter has its own properties defined
- *
- * @param obj
- * @param properties
- * @returns {boolean}
- */
-function hasProperties(obj, ...properties) {
-  return properties.filter(key => {
-    return typeof obj[key] !== 'undefined';
-  }).length > 0;
-}
-
-/**
- * Returns typecasted value.
- * External generators (faker, chance, casual) may return data in non-expected formats, such as string, when you might expect an
- * integer. This function is used to force the typecast. This is the base formatter for all result values.
- *
- * @param type
- * @param schema
- * @param callback
- * @returns {any}
- */
-function typecast(type, schema, callback) {
-  const params = {};
-
-  // normalize constraints
-  switch (type || schema.type) {
-    case 'integer':
-    case 'number':
-      if (typeof schema.minimum !== 'undefined') {
-        params.minimum = schema.minimum;
-      }
-
-      if (typeof schema.maximum !== 'undefined') {
-        params.maximum = schema.maximum;
-      }
-
-      if (schema.enum) {
-        let min = Math.max(params.minimum || 0, 0);
-        let max = Math.min(params.maximum || Infinity, Infinity);
-
-        if (schema.exclusiveMinimum && min === schema.minimum) {
-          min += schema.multipleOf || 1;
-        }
-
-        if (schema.exclusiveMaximum && max === schema.maximum) {
-          max -= schema.multipleOf || 1;
-        }
-
-        // discard out-of-bounds enumerations
-        if (min || max !== Infinity) {
-          schema.enum = schema.enum.filter(x => {
-            if (x >= min && x <= max) {
-              return true;
-            }
-
-            return false;
-          });
-        }
-      }
-
-      break;
-
-    case 'string': {
-      if (typeof schema.minLength !== 'undefined') {
-        params.minLength = schema.minLength;
-      }
-
-      if (typeof schema.maxLength !== 'undefined') {
-        params.maxLength = schema.maxLength;
-      }
-
-      const _maxLength = optionAPI('maxLength');
-      const _minLength = optionAPI('minLength');
-
-      // Don't allow user to set max length above our maximum
-      if (_maxLength && params.maxLength > _maxLength) {
-        params.maxLength = _maxLength;
-      }
-
-      // Don't allow user to set min length above our maximum
-      if (_minLength && params.minLength < _minLength) {
-        params.minLength = _minLength;
-      }
-
-      break;
-    }
-
-    default: break;
-  }
-
-  // execute generator
-  let value = callback(params);
-
-  // normalize output value
-  switch (type || schema.type) {
-    case 'number':
-      value = parseFloat(value);
-      break;
-
-    case 'integer':
-      value = parseInt(value, 10);
-      break;
-
-    case 'boolean':
-      value = !!value;
-      break;
-
-    case 'string': {
-      value = String(value);
-
-      const min = Math.max(params.minLength || 0, 0);
-      const max = Math.min(params.maxLength || Infinity, Infinity);
-
-      while (value.length < min) {
-        if (!schema.pattern) {
-          value += `${random.pick([' ', '/', '_', '-', '+', '=', '@', '^'])}${value}`;
-        } else {
-          value += random.randexp(schema.pattern);
-        }
-      }
-
-      if (value.length > max) {
-        value = value.substr(0, max);
-      }
-
-      switch (schema.format) {
-        case 'date-time':
-        case 'datetime':
-          value = new Date(value).toISOString().replace(/([0-9])0+Z$/, '$1Z');
-          break;
-
-        case 'date':
-          value = new Date(value).toISOString().substr(0, 10);
-          break;
-
-        case 'time':
-          value = new Date(`1969-01-01 ${value}`).toISOString().substr(11);
-          break;
-
-        default:
-          break;
-      }
-      break;
-    }
-
-    default: break;
-  }
-
-  return value;
-}
-
-function merge(a, b) {
-  Object.keys(b).forEach(key => {
-    if (typeof b[key] !== 'object' || b[key] === null) {
-      a[key] = b[key];
-    } else if (Array.isArray(b[key])) {
-      a[key] = a[key] || [];
-      // fix #292 - skip duplicated values from merge object (b)
-      b[key].forEach(value => {
-        if (Array.isArray(a[key]) && a[key].indexOf(value) === -1) {
-          a[key].push(value);
-        }
-      });
-    } else if (typeof a[key] !== 'object' || a[key] === null || Array.isArray(a[key])) {
-      a[key] = merge({}, b[key]);
-    } else {
-      a[key] = merge(a[key], b[key]);
-    }
-  });
-
-  return a;
-}
-
-function clone(obj, cache = new Map()) {
-  if (!obj || typeof obj !== 'object') {
-    return obj;
-  }
-
-  if (cache.has(obj)) {
-    return cache.get(obj);
-  }
-
-  if (Array.isArray(obj)) {
-    const arr = [];
-    cache.set(obj, arr);
-
-    arr.push(...obj.map(x => clone(x, cache)));
-    return arr;
-  }
-
-  const clonedObj = {};
-  cache.set(obj, clonedObj);
-
-  return Object.keys(obj).reduce((prev, cur) => {
-    prev[cur] = clone(obj[cur], cache);
-    return prev;
-  }, clonedObj);
-}
-
-function short(schema) {
-  const s = JSON.stringify(schema);
-  const l = JSON.stringify(schema, null, 2);
-
-  return s.length > 400 ? `${l.substr(0, 400)}...` : l;
-}
-
-function anyValue() {
-  return random.pick([
-    false,
-    true,
-    null,
-    -1,
-    NaN,
-    Math.PI,
-    Infinity,
-    undefined,
-    [],
-    {},
-    // FIXME: use built-in random?
-    Math.random(),
-    Math.random().toString(36).substr(2),
-  ]);
-}
-
-function notValue(schema, parent) {
-  const copy = merge({}, parent);
-
-  if (typeof schema.minimum !== 'undefined') {
-    copy.maximum = schema.minimum;
-    copy.exclusiveMaximum = true;
-  }
-
-  if (typeof schema.maximum !== 'undefined') {
-    copy.minimum = schema.maximum > copy.maximum ? 0 : schema.maximum;
-    copy.exclusiveMinimum = true;
-  }
-
-  if (typeof schema.minLength !== 'undefined') {
-    copy.maxLength = schema.minLength;
-  }
-
-  if (typeof schema.maxLength !== 'undefined') {
-    copy.minLength = schema.maxLength > copy.maxLength ? 0 : schema.maxLength;
-  }
-
-  if (schema.type) {
-    copy.type = random.pick(env.SCALAR_TYPES.filter(x => {
-      const types = Array.isArray(schema.type) ? schema.type : [schema.type];
-
-      return types.every(type => {
-        // treat both types as _similar enough_ to be skipped equal
-        if (x === 'number' || x === 'integer') {
-          return type !== 'number' && type !== 'integer';
-        }
-
-        return x !== type;
-      });
-    }));
-  } else if (schema.enum) {
-    let value;
-
-    do {
-      value = anyValue();
-    } while (schema.enum.indexOf(value) !== -1);
-
-    copy.enum = [value];
-  }
-
-  if (schema.required && copy.properties) {
-    schema.required.forEach(prop => {
-      delete copy.properties[prop];
-    });
-  }
-
-  // TODO: explore more scenarios
-
-  return copy;
-}
-
-// FIXME: evaluate more constraints?
-function validate(value, schemas) {
-  return !schemas.every(x => {
-    if (typeof x.minimum !== 'undefined' && value >= x.minimum) {
-      return true;
-    }
-
-    if (typeof x.maximum !== 'undefined' && value <= x.maximum) {
-      return true;
-    }
-
-    return false;
-  });
-}
-
-function isKey(prop) {
-  return ['enum', 'const', 'default', 'examples', 'required', 'definitions'].indexOf(prop) !== -1;
-}
-
-function omitProps(obj, props) {
-  const copy = {};
-
-  Object.keys(obj).forEach(k => {
-    if (props.indexOf(k) === -1) {
-      if (Array.isArray(obj[k])) {
-        copy[k] = obj[k].slice();
-      } else {
-        copy[k] = obj[k] instanceof Object
-          ? merge({}, obj[k])
-          : obj[k];
-      }
-    }
-  });
-
-  return copy;
-}
-
-function template(value, schema) {
-  if (Array.isArray(value)) {
-    return value.map(x => template(x, schema));
-  }
-
-  if (typeof value === 'string') {
-    value = value.replace(/#\{([\w.-]+)\}/g, (_, $1) => schema[$1]);
-  }
-
-  return value;
-}
-
-export default {
-  getSubAttribute,
-  hasProperties,
-  omitProps,
-  typecast,
-  merge,
-  clone,
-  short,
-  notValue,
-  anyValue,
-  validate,
-  isKey,
-  template,
-};
diff --git a/src/lib/generators/boolean.js b/src/lib/generators/boolean.js
deleted file mode 100644
index 328dace6792a4976b8b4c1e812576c468b2b91a7..0000000000000000000000000000000000000000
--- a/src/lib/generators/boolean.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import optionAPI from '../api/option';
-
-/**
- * Generates randomized boolean value.
- *
- * @returns {boolean}
- */
-function booleanGenerator() {
-  return optionAPI('random')() > 0.5;
-}
-
-export default booleanGenerator;
diff --git a/src/lib/generators/coreFormat.js b/src/lib/generators/coreFormat.js
deleted file mode 100644
index 4ffccc84fa89c80135ca47e37fa1e344870fbd11..0000000000000000000000000000000000000000
--- a/src/lib/generators/coreFormat.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import random from '../core/random';
-
-const FRAGMENT = '[a-zA-Z][a-zA-Z0-9+-.]*';
-const URI_PATTERN = `https?://{hostname}(?:${FRAGMENT})+`;
-const PARAM_PATTERN = '(?:\\?([a-z]{1,7}(=\\w{1,5})?&){0,3})?';
-
-/**
- * Predefined core formats
- * @type {[key: string]: string}
- */
-const regexps = {
-  email: '[a-zA-Z\\d][a-zA-Z\\d-]{1,13}[a-zA-Z\\d]@{hostname}',
-  hostname: '[a-zA-Z]{1,33}\\.[a-z]{2,4}',
-  ipv6: '[a-f\\d]{4}(:[a-f\\d]{4}){7}',
-  uri: URI_PATTERN,
-  slug: '[a-zA-Z\\d_-]+',
-
-  // types from draft-0[67] (?)
-  'uri-reference': `${URI_PATTERN}${PARAM_PATTERN}`,
-  'uri-template': URI_PATTERN.replace('(?:', '(?:/\\{[a-z][:a-zA-Z0-9-]*\\}|'),
-  'json-pointer': `(/(?:${FRAGMENT.replace(']*', '/]*')}|~[01]))+`,
-
-  // some types from https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#data-types (?)
-  uuid: '^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$',
-};
-
-regexps.iri = regexps['uri-reference'];
-regexps['iri-reference'] = regexps['uri-reference'];
-
-regexps['idn-email'] = regexps.email;
-regexps['idn-hostname'] = regexps.hostname;
-
-const ALLOWED_FORMATS = new RegExp(`\\{(${Object.keys(regexps).join('|')})\\}`);
-
-/**
- * Generates randomized string basing on a built-in regex format
- *
- * @param coreFormat
- * @returns {string}
- */
-function coreFormatGenerator(coreFormat) {
-  return random.randexp(regexps[coreFormat]).replace(ALLOWED_FORMATS, (match, key) => {
-    return random.randexp(regexps[key]);
-  });
-}
-
-export default coreFormatGenerator;
diff --git a/src/lib/generators/date.js b/src/lib/generators/date.js
deleted file mode 100644
index 731756e42e64b181985a26cfd20785de01e39139..0000000000000000000000000000000000000000
--- a/src/lib/generators/date.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import dateTimeGenerator from './dateTime';
-
-/**
- * Generates randomized date format string.
- *
- * @returns {string}
- */
-function dateGenerator() {
-  return dateTimeGenerator().slice(0, 10);
-}
-
-export default dateGenerator;
diff --git a/src/lib/generators/dateTime.js b/src/lib/generators/dateTime.js
deleted file mode 100644
index 1690138ee58772d9f200b2c440fc1dbb1a470a45..0000000000000000000000000000000000000000
--- a/src/lib/generators/dateTime.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import random from '../core/random';
-
-/**
- * Generates randomized date time ISO format string.
- *
- * @returns {string}
- */
-function dateTimeGenerator() {
-  return random.date().toISOString();
-}
-
-export default dateTimeGenerator;
diff --git a/src/lib/generators/ipv4.js b/src/lib/generators/ipv4.js
deleted file mode 100644
index b41b57bd25b392a6b83b8cd1e8e9e5681dbd11d3..0000000000000000000000000000000000000000
--- a/src/lib/generators/ipv4.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import random from '../core/random';
-
-/**
- * Generates randomized ipv4 address.
- *
- * @returns {string}
- */
-function ipv4Generator() {
-  return [0, 0, 0, 0].map(() => {
-    return random.number(0, 255);
-  }).join('.');
-}
-
-export default ipv4Generator;
diff --git a/src/lib/generators/null.js b/src/lib/generators/null.js
deleted file mode 100644
index f47a59679155d91f25ca0459a4932f2ae2675b77..0000000000000000000000000000000000000000
--- a/src/lib/generators/null.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Generates null value.
- *
- * @returns {null}
- */
-function nullGenerator() {
-  return null;
-}
-
-export default nullGenerator;
diff --git a/src/lib/generators/thunk.js b/src/lib/generators/thunk.js
deleted file mode 100644
index ab50a6aa55071b04494b9f38804cc80977ae4fd0..0000000000000000000000000000000000000000
--- a/src/lib/generators/thunk.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import words from './words';
-import random from '../core/random';
-
-/**
- * Helper function used by thunkGenerator to produce some words for the final result.
- *
- * @returns {string}
- */
-function produce() {
-  const length = random.number(1, 5);
-
-  return words(length).join(' ');
-}
-
-/**
- * Generates randomized concatenated string based on words generator.
- *
- * @returns {string}
- */
-function thunkGenerator(min = 0, max = 140) {
-  const _min = Math.max(0, min);
-  const _max = random.number(_min, max);
-
-  let result = produce();
-
-  // append until length is reached
-  while (result.length < _min) {
-    result += produce();
-  }
-
-  // cut if needed
-  if (result.length > _max) {
-    result = result.substr(0, _max);
-  }
-
-  return result;
-}
-
-export default thunkGenerator;
diff --git a/src/lib/generators/time.js b/src/lib/generators/time.js
deleted file mode 100644
index a1d1dc89d136d78cf038be43e4b8e73fd137713a..0000000000000000000000000000000000000000
--- a/src/lib/generators/time.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import dateTimeGenerator from './dateTime';
-
-/**
- * Generates randomized time format string.
- *
- * @returns {string}
- */
-function timeGenerator() {
-  return dateTimeGenerator().slice(11);
-}
-
-export default timeGenerator;
diff --git a/src/lib/generators/words.js b/src/lib/generators/words.js
deleted file mode 100644
index eddf6ee77bfbe2b2c6137d538c0a7b98618d890d..0000000000000000000000000000000000000000
--- a/src/lib/generators/words.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import random from '../core/random';
-
-const LIPSUM_WORDS = `Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore
-et dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
-commodo consequat Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-pariatur Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est
-laborum`.split(/\W/);
-
-/**
- * Generates randomized array of single lorem ipsum words.
- *
- * @param length
- * @returns {Array.<string>}
- */
-function wordsGenerator(length) {
-  const words = random.shuffle(LIPSUM_WORDS);
-
-  return words.slice(0, length);
-}
-
-export default wordsGenerator;
diff --git a/src/lib/index.js b/src/lib/index.js
deleted file mode 100644
index ed70aba8175f5bb7d7e1d154ab0ff1c05fbe52b5..0000000000000000000000000000000000000000
--- a/src/lib/index.js
+++ /dev/null
@@ -1,154 +0,0 @@
-import $RefParser from 'json-schema-ref-parser';
-
-import Container from './class/Container';
-import format from './api/format';
-import option from './api/option';
-import env from './core/constants';
-import random from './core/random';
-import utils from './core/utils';
-import run from './core/run';
-
-const container = new Container();
-
-function setupKeywords() {
-  // built-in support
-  container.define('pattern', random.randexp);
-
-  // safe auto-increment values
-  container.define('autoIncrement', function autoIncrement(value, schema) {
-    if (!this.offset) {
-      const min = schema.minimum || 1;
-      const max = min + env.MAX_NUMBER;
-      const offset = value.initialOffset || schema.initialOffset;
-
-      this.offset = offset || random.number(min, max);
-    }
-
-    if (value === true) {
-      return this.offset++; // eslint-disable-line
-    }
-
-    return schema;
-  });
-
-  // safe-and-sequential dates
-  container.define('sequentialDate', function sequentialDate(value, schema) {
-    if (!this.now) {
-      this.now = random.date();
-    }
-
-    if (value) {
-      schema = this.now.toISOString();
-      value = value === true
-        ? 'days'
-        : value;
-
-      if (['seconds', 'minutes', 'hours', 'days', 'weeks', 'months', 'years'].indexOf(value) === -1) {
-        throw new Error(`Unsupported increment by ${utils.short(value)}`);
-      }
-
-      this.now.setTime(this.now.getTime() + random.date(value));
-    }
-
-    return schema;
-  });
-}
-
-function getRefs(refs) {
-  let $refs = {};
-
-  if (Array.isArray(refs)) {
-    refs.forEach(schema => {
-      $refs[schema.$id || schema.id] = schema;
-    });
-  } else {
-    $refs = refs || {};
-  }
-
-  return $refs;
-}
-
-const jsf = (schema, refs, cwd) => {
-  console.log('[json-schema-faker] calling JsonSchemaFaker() is deprecated, call either .generate() or .resolve()');
-
-  if (cwd) {
-    console.log('[json-schema-faker] references are only supported by calling .resolve()');
-  }
-
-  return jsf.generate(schema, refs);
-};
-
-jsf.generate = (schema, refs) => {
-  const $refs = getRefs(refs);
-
-  return run($refs, schema, container);
-};
-
-jsf.resolve = (schema, refs, cwd) => {
-  if (typeof refs === 'string') {
-    cwd = refs;
-    refs = {};
-  }
-
-  // normalize basedir (browser aware)
-  cwd = cwd || (typeof process !== 'undefined' ? process.cwd() : '');
-  cwd = `${cwd.replace(/\/+$/, '')}/`;
-
-  const $refs = getRefs(refs);
-
-  // identical setup as json-schema-sequelizer
-  const fixedRefs = {
-    order: 300,
-    canRead: true,
-    read(file, callback) {
-      try {
-        callback(null, $refs[file.url] || $refs[file.url.split('/').pop()]);
-      } catch (e) {
-        callback(e);
-      }
-    },
-  };
-
-  return $RefParser
-    .dereference(cwd, schema, {
-      resolve: {
-        file: { order: 100 },
-        http: { order: 200 },
-        fixedRefs,
-      },
-      dereference: {
-        circular: 'ignore',
-      },
-    }).then(sub => run($refs, sub, container));
-};
-
-setupKeywords();
-
-jsf.format = format;
-jsf.option = option;
-jsf.random = random;
-
-// returns itself for chaining
-jsf.extend = (name, cb) => {
-  container.extend(name, cb);
-  return jsf;
-};
-
-jsf.define = (name, cb) => {
-  container.define(name, cb);
-  return jsf;
-};
-
-jsf.reset = name => {
-  container.reset(name);
-  setupKeywords();
-  return jsf;
-};
-
-jsf.locate = name => {
-  return container.get(name);
-};
-
-jsf.version = '0.5.0-rc16';
-
-export default jsf;
diff --git a/src/lib/types/array.js b/src/lib/types/array.js
deleted file mode 100644
index c1b63e3ac9196e8c1a0b9edfe38a5518094a9bb8..0000000000000000000000000000000000000000
--- a/src/lib/types/array.js
+++ /dev/null
@@ -1,111 +0,0 @@
-import random from '../core/random';
-import utils from '../core/utils';
-import ParseError from '../core/error';
-import optionAPI from '../api/option';
-
-// TODO provide types
-function unique(path, items, value, sample, resolve, traverseCallback) {
-  const tmp = [];
-  const seen = [];
-
-  function walk(obj) {
-    const json = JSON.stringify(obj);
-
-    if (seen.indexOf(json) === -1) {
-      seen.push(json);
-      tmp.push(obj);
-
-      return true;
-    }
-
-    return false;
-  }
-
-  items.forEach(walk);
-
-  // TODO: find a better solution?
-  let limit = 100;
-
-  while (tmp.length !== items.length) {
-    if (!walk(traverseCallback(value.items || sample, path, resolve))) {
-      limit -= 1;
-    }
-
-    if (!limit) {
-      break;
-    }
-  }
-
-  return tmp;
-}
-
-// TODO provide types
-function arrayType(value, path, resolve, traverseCallback) {
-  const items = [];
-
-  if (!(value.items || value.additionalItems)) {
-    if (utils.hasProperties(value, 'minItems', 'maxItems', 'uniqueItems')) {
-      throw new ParseError(`missing items for ${utils.short(value)}`, path);
-    }
-    return items;
-  }
-
-  if (Array.isArray(value.items)) {
-    return value.items.map((item, key) => {
-      const itemSubpath = path.concat(['items', key]);
-
-      return traverseCallback(item, itemSubpath, resolve);
-    });
-  }
-
-  let minItems = value.minItems;
-  let maxItems = value.maxItems;
-
-  if (optionAPI('minItems')) {
-    // fix boundaries
-    minItems = !maxItems
-      ? optionAPI('minItems')
-      : Math.min(optionAPI('minItems'), maxItems);
-  }
-
-  if (optionAPI('maxItems')) {
-    // Don't allow user to set max items above our maximum
-    if (maxItems && maxItems > optionAPI('maxItems')) {
-      maxItems = optionAPI('maxItems');
-    }
-
-    // Don't allow user to set min items above our maximum
-    if (minItems && minItems > optionAPI('maxItems')) {
-      minItems = maxItems;
-    }
-  }
-
-  const optionalsProbability = optionAPI('alwaysFakeOptionals') === true ? 1.0 : optionAPI('optionalsProbability');
-  const fixedProbabilities = optionAPI('alwaysFakeOptionals') || optionAPI('fixedProbabilities') || false;
-
-  let length = random.number(minItems, maxItems, 1, 5);
-
-  if (optionalsProbability !== false) {
-    length = Math.max(fixedProbabilities
-      ? Math.round((maxItems || length) * optionalsProbability)
-      : Math.abs(random.number(minItems, maxItems) * optionalsProbability), minItems || 0);
-  }
-
-  // TODO below looks bad. Should additionalItems be copied as-is?
-  const sample = typeof value.additionalItems === 'object' ? value.additionalItems : {};
-
-  for (let current = items.length; current < length; current += 1) {
-    const itemSubpath = path.concat(['items', current]);
-    const element = traverseCallback(value.items || sample, itemSubpath, resolve);
-
-    items.push(element);
-  }
-
-  if (value.uniqueItems) {
-    return unique(path.concat(['items']), items, value, sample, resolve, traverseCallback);
-  }
-
-  return items;
-}
-
-export default arrayType;
diff --git a/src/lib/types/boolean.js b/src/lib/types/boolean.js
deleted file mode 100644
index be7636c90f8fe54358494630ab175a824e94606a..0000000000000000000000000000000000000000
--- a/src/lib/types/boolean.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import booleanGenerator from '../generators/boolean';
-
-const booleanType = booleanGenerator;
-
-export default booleanType;
diff --git a/src/lib/types/index.js b/src/lib/types/index.js
deleted file mode 100644
index 6b8b8a0eaf8eb7d825610e0684fb6e68bd362319..0000000000000000000000000000000000000000
--- a/src/lib/types/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import _boolean from './boolean';
-import _null from './null';
-import _array from './array';
-import _integer from './integer';
-import _number from './number';
-import _object from './object';
-import _string from './string';
-
-const typeMap = {
-  boolean: _boolean,
-  null: _null,
-  array: _array,
-  integer: _integer,
-  number: _number,
-  object: _object,
-  string: _string,
-};
-
-export default typeMap;
diff --git a/src/lib/types/integer.js b/src/lib/types/integer.js
deleted file mode 100644
index 3857b6ca06714977d6d3fbb01e8fd05078e5bcfd..0000000000000000000000000000000000000000
--- a/src/lib/types/integer.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import number from './number';
-
-// The `integer` type is just a wrapper for the `number` type. The `number` type
-// returns floating point numbers, and `integer` type truncates the fraction
-// part, leaving the result as an integer.
-
-function integerType(value) {
-  return number(Object.assign({ multipleOf: 1 }, value));
-}
-
-export default integerType;
diff --git a/src/lib/types/null.js b/src/lib/types/null.js
deleted file mode 100644
index 9e9bbb20f6b8bee7396f42942b4caa62c1d61c8e..0000000000000000000000000000000000000000
--- a/src/lib/types/null.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import nullGenerator from '../generators/null';
-
-const nullType = nullGenerator;
-
-export default nullType;
diff --git a/src/lib/types/number.js b/src/lib/types/number.js
deleted file mode 100644
index 7eeafffe65bfe21d3c095db4511411d2bd12755c..0000000000000000000000000000000000000000
--- a/src/lib/types/number.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import random from '../core/random';
-import env from '../core/constants';
-
-function numberType(value) {
-  let min = typeof value.minimum === 'undefined' ? env.MIN_INTEGER : value.minimum;
-  let max = typeof value.maximum === 'undefined' ? env.MAX_INTEGER : value.maximum;
-
-  const multipleOf = value.multipleOf;
-
-  if (multipleOf) {
-    max = Math.floor(max / multipleOf) * multipleOf;
-    min = Math.ceil(min / multipleOf) * multipleOf;
-  }
-
-  if (value.exclusiveMinimum && min === value.minimum) {
-    min += multipleOf || 1;
-  }
-
-  if (value.exclusiveMaximum && max === value.maximum) {
-    max -= multipleOf || 1;
-  }
-
-  if (min > max) {
-    return NaN;
-  }
-
-  if (multipleOf) {
-    if (String(multipleOf).indexOf('.') === -1) {
-      let base = random.number(Math.floor(min / multipleOf), Math.floor(max / multipleOf)) * multipleOf;
-
-      while (base < min) {
-        base += value.multipleOf;
-      }
-
-      return base;
-    }
-
-    const boundary = (max - min) / multipleOf;
-
-    let num;
-    let fix;
-
-    do {
-      num = random.number(0, boundary) * multipleOf;
-      fix = (num / multipleOf) % 1;
-    } while (fix !== 0);
-
-    // FIXME: https://github.com/json-schema-faker/json-schema-faker/issues/379
-
-    return num;
-  }
-
-  return random.number(min, max, undefined, undefined, true);
-}
-
-export default numberType;
diff --git a/src/lib/types/object.js b/src/lib/types/object.js
deleted file mode 100644
index 697334731cc42db58517959d77790d0711f6f9d5..0000000000000000000000000000000000000000
--- a/src/lib/types/object.js
+++ /dev/null
@@ -1,257 +0,0 @@
-import random from '../core/random';
-import words from '../generators/words';
-import utils from '../core/utils';
-import optionAPI from '../api/option';
-
-// fallback generator
-const anyType = { type: ['string', 'number', 'integer', 'boolean'] };
-
-// TODO provide types
-function objectType(value, path, resolve, traverseCallback) {
-  const props = {};
-
-  const properties = value.properties || {};
-  const patternProperties = value.patternProperties || {};
-  const requiredProperties = typeof value.required === 'boolean' ? [] : (value.required || []).slice();
-  const allowsAdditional = value.additionalProperties !== false;
-
-  const propertyKeys = Object.keys(properties);
-  const patternPropertyKeys = Object.keys(patternProperties);
-  const optionalProperties = propertyKeys.concat(patternPropertyKeys).reduce((_response, _key) => {
-    if (requiredProperties.indexOf(_key) === -1) _response.push(_key);
-    return _response;
-  }, []);
-  const allProperties = requiredProperties.concat(optionalProperties);
-
-  const additionalProperties = allowsAdditional // eslint-disable-line
-    ? (value.additionalProperties === true ? anyType : value.additionalProperties)
-    : value.additionalProperties;
-
-  if (!allowsAdditional
-    && propertyKeys.length === 0
-    && patternPropertyKeys.length === 0
-    && utils.hasProperties(value, 'minProperties', 'maxProperties', 'dependencies', 'required')
-  ) {
-    // just nothing
-    return null;
-  }
-
-  if (optionAPI('requiredOnly') === true) {
-    requiredProperties.forEach(key => {
-      if (properties[key]) {
-        props[key] = properties[key];
-      }
-    });
-
-    return traverseCallback(props, path.concat(['properties']), resolve, value);
-  }
-
-  const optionalsProbability = optionAPI('alwaysFakeOptionals') === true ? 1.0 : optionAPI('optionalsProbability');
-  const fixedProbabilities = optionAPI('alwaysFakeOptionals') || optionAPI('fixedProbabilities') || false;
-  const ignoreProperties = optionAPI('ignoreProperties') || [];
-
-  const min = Math.max(value.minProperties || 0, requiredProperties.length);
-  const max = value.maxProperties || (allProperties.length + (allowsAdditional ? random.number(1, 5) : 0));
-
-  let neededExtras = Math.max(0, allProperties.length - min);
-
-  if (allProperties.length === 1 && !requiredProperties.length) {
-    neededExtras = random.number(neededExtras, allProperties.length + (allProperties.length - min));
-  }
-
-  if (optionalsProbability !== false) {
-    if (fixedProbabilities === true) {
-      neededExtras = Math.round((min - requiredProperties.length) + (optionalsProbability * (allProperties.length - min)));
-    } else {
-      neededExtras = random.number(min - requiredProperties.length, optionalsProbability * (allProperties.length - min));
-    }
-  }
-
-  const extraPropertiesRandomOrder = random.shuffle(optionalProperties).slice(0, neededExtras);
-  const extraProperties = optionalProperties.filter(_item => {
-    return extraPropertiesRandomOrder.indexOf(_item) !== -1;
-  });
-
-  // properties are read from right-to-left
-  const _props = requiredProperties.concat(extraProperties).slice(0, max);
-  const _defns = [];
-
-  if (value.dependencies) {
-    Object.keys(value.dependencies).forEach(prop => {
-      const _required = value.dependencies[prop];
-
-      if (_props.indexOf(prop) !== -1) {
-        if (Array.isArray(_required)) {
-          // property-dependencies
-          _required.forEach(sub => {
-            if (_props.indexOf(sub) === -1) {
-              _props.push(sub);
-            }
-          });
-        } else {
-          _defns.push(_required);
-        }
-      }
-    });
-
-    // schema-dependencies
-    if (_defns.length) {
-      delete value.dependencies;
-
-      return traverseCallback({
-        allOf: _defns.concat(value),
-      }, path.concat(['properties']), resolve, value);
-    }
-  }
-
-  const skipped = [];
-  const missing = [];
-
-  _props.forEach(key => {
-    for (let i = 0; i < ignoreProperties.length; i += 1) {
-      if ((ignoreProperties[i] instanceof RegExp && ignoreProperties[i].test(key))
-        || (typeof ignoreProperties[i] === 'string' && ignoreProperties[i] === key)
-        || (typeof ignoreProperties[i] === 'function' && ignoreProperties[i](properties[key], key))) {
-        skipped.push(key);
-        return;
-      }
-    }
-
-    if (additionalProperties === false) {
-      if (requiredProperties.indexOf(key) !== -1) {
-        props[key] = properties[key];
-      }
-    }
-
-    if (properties[key]) {
-      props[key] = properties[key];
-    }
-
-    let found;
-
-    // then try patternProperties
-    patternPropertyKeys.forEach(_key => {
-      if (key.match(new RegExp(_key))) {
-        found = true;
-
-        if (props[key]) {
-          utils.merge(props[key], patternProperties[_key]);
-        } else {
-          props[random.randexp(key)] = patternProperties[_key];
-        }
-      }
-    });
-
-    if (!found) {
-      // try patternProperties again,
-      const subschema = patternProperties[key] || additionalProperties;
-
-      // FIXME: allow anyType as fallback when no subschema is given?
-
-      if (subschema && additionalProperties !== false) {
-        // otherwise we can use additionalProperties?
-        props[patternProperties[key] ? random.randexp(key) : key] = properties[key] || subschema;
-      } else {
-        missing.push(key);
-      }
-    }
-  });
-
-  const fillProps = optionAPI('fillProperties');
-  const reuseProps = optionAPI('reuseProperties');
-
-  // discard already ignored props if they're not required to be filled...
-  let current = Object.keys(props).length + (fillProps ? 0 : skipped.length);
-
-  // generate dynamic suffix for additional props...
-  const hash = suffix => random.randexp(`_?[_a-f\\d]{1,3}${suffix ? '\\$?' : ''}`);
-
-  function get(from) {
-    let one;
-
-    do {
-      if (!from.length) break;
-      one = from.shift();
-    } while (props[one]);
-
-    return one;
-  }
-
-  while (fillProps) {
-    if (!(patternPropertyKeys.length || allowsAdditional)) {
-      break;
-    }
-
-    if (current >= min) {
-      break;
-    }
-
-    if (allowsAdditional) {
-      if (reuseProps && ((propertyKeys.length - current) > min)) {
-        let count = 0;
-        let key;
-
-        do {
-          count += 1;
-
-          // skip large objects
-          if (count > 1000) {
-            break;
-          }
-
-          key = get(requiredProperties) || random.pick(propertyKeys);
-        } while (typeof props[key] !== 'undefined');
-
-        if (typeof props[key] === 'undefined') {
-          props[key] = properties[key];
-          current += 1;
-        }
-      } else if (patternPropertyKeys.length && !additionalProperties) {
-        const prop = random.pick(patternPropertyKeys);
-        const word = random.randexp(prop);
-
-        if (!props[word]) {
-          props[word] = patternProperties[prop];
-          current += 1;
-        }
-      } else {
-        const word = get(requiredProperties) || (words(1) + hash());
-
-        if (!props[word]) {
-          props[word] = additionalProperties || anyType;
-          current += 1;
-        }
-      }
-    }
-
-    for (let i = 0; current < min && i < patternPropertyKeys.length; i += 1) {
-      const _key = patternPropertyKeys[i];
-      const word = random.randexp(_key);
-
-
-      if (!props[word]) {
-        props[word] = patternProperties[_key];
-        current += 1;
-      }
-    }
-  }
-
-  // fill up-to this value and no more!
-  if (requiredProperties.length === 0 && (!allowsAdditional || optionalsProbability === false)) {
-    const maximum = random.number(min, max);
-
-    for (; current < maximum;) {
-      const word = get(propertyKeys);
-
-      if (word) {
-        props[word] = properties[word];
-      }
-
-      current += 1;
-    }
-  }
-
-  return traverseCallback(props, path.concat(['properties']), resolve, value);
-}
-
-export default objectType;
diff --git a/src/lib/types/string.js b/src/lib/types/string.js
deleted file mode 100644
index 0e4e9870862731222f5a3cb4b8b8acf2247a063f..0000000000000000000000000000000000000000
--- a/src/lib/types/string.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import thunk from '../generators/thunk';
-import ipv4 from '../generators/ipv4';
-import dateTime from '../generators/dateTime';
-import date from '../generators/date';
-import time from '../generators/time';
-import coreFormat from '../generators/coreFormat';
-import optionAPI from '../api/option';
-import format from '../api/format';
-import random from '../core/random';
-import utils from '../core/utils';
-
-function generateFormat(value, invalid) {
-  const callback = format(value.format);
-
-  if (typeof callback === 'function') {
-    return callback(value);
-  }
-
-  switch (value.format) {
-    case 'date-time':
-    case 'datetime':
-      return dateTime();
-    case 'date':
-      return date();
-    case 'time':
-      return time();
-    case 'ipv4':
-      return ipv4();
-    case 'regex':
-      // TODO: discuss
-      return '.+?';
-    case 'email':
-    case 'hostname':
-    case 'ipv6':
-    case 'uri':
-    case 'uri-reference':
-    case 'iri':
-    case 'iri-reference':
-    case 'idn-email':
-    case 'idn-hostname':
-    case 'json-pointer':
-    case 'slug':
-    case 'uri-template':
-    case 'uuid':
-      return coreFormat(value.format);
-    default:
-      if (typeof callback === 'undefined') {
-        if (optionAPI('failOnInvalidFormat')) {
-          throw new Error(`unknown registry key ${utils.short(value.format)}`);
-        } else {
-          return invalid();
-        }
-      }
-
-      throw new Error(`unsupported format '${value.format}'`);
-  }
-}
-
-function stringType(value) {
-  // here we need to force type to fix #467
-  const output = utils.typecast('string', value, opts => {
-    if (value.format) {
-      return generateFormat(value, () => thunk(opts.minLength, opts.maxLength));
-    }
-
-    if (value.pattern) {
-      return random.randexp(value.pattern);
-    }
-
-    return thunk(opts.minLength, opts.maxLength);
-  });
-
-  return output;
-}
-
-export default stringType;
diff --git a/src/main.js b/src/main.js
deleted file mode 100644
index 7c5e4fcc5274d8ff12950aac545c0e514bb44691..0000000000000000000000000000000000000000
--- a/src/main.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default } from './lib';
diff --git a/src/main.umd.js b/src/main.umd.js
deleted file mode 100644
index 9bc4b746a964dfd38738b9cd5907b1bdfc2106ca..0000000000000000000000000000000000000000
--- a/src/main.umd.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
----
-$format: umd
-$bundle: JSONSchemaFaker
----
-*/
-
-export { default } from './main';
diff --git a/src/web/css/_base/components/AceEditor.less b/src/web/css/_base/components/AceEditor.less
deleted file mode 100644
index 07546d833e62d37a5bcd7acde41a958bf11eadac..0000000000000000000000000000000000000000
--- a/src/web/css/_base/components/AceEditor.less
+++ /dev/null
@@ -1,47 +0,0 @@
-.AceEditor {
-  min-height: 200px;
-  transition: border .3s;
-  border-radius: @radius;
-
-  &.ace_focus { border: 1px solid @BLUE; }
-
-  ~ .abs {
-    padding: @padding / 2;
-    transition: all .3s;
-    opacity: .5;
-    top: 5px;
-
-    &:hover {
-      opacity: 1;
-    }
-
-    a {
-      background-color: white;
-      padding: @padding / 2;
-      text-decoration: none;
-      font-size: 13px;
-      color: @GRAY;
-
-      &.-on {
-        color: @BLUE;
-      }
-    }
-
-    .sp {
-      &:first-child a { border-radius: @radius 0 0 @radius; }
-      &:last-child a { border-radius: 0 @radius @radius 0; }
-    }
-  }
-
-  @media screen and (min-width: 280px) {
-    min-height: 300px;
-  }
-
-  @media screen and (min-width: 720px) {
-    min-height: 600px;
-  }
-
-  @media screen and (min-width: 830px) {
-    min-height: 700px;
-  }
-}
diff --git a/src/web/css/_base/components/Dropdown.less b/src/web/css/_base/components/Dropdown.less
deleted file mode 100644
index c790ff00e8d440a4a05949028fedab999e2fa59a..0000000000000000000000000000000000000000
--- a/src/web/css/_base/components/Dropdown.less
+++ /dev/null
@@ -1,113 +0,0 @@
-.Dropdown {
-  width: 100%;
-  height: @action;
-  position: relative;
-
-  select {
-    width: 100%;
-    opacity: 0;
-    z-index: 1;
-    height: @action;
-    position: absolute;
-
-    &:focus {
-      outline: 0;
-
-      ~ .Dropdown--value span {
-        border-color: @BLUE;
-      }
-    }
-  }
-
-  &--arrow {
-    display: inline-block;
-    width: @action;
-    height: @action;
-    position: absolute;
-    right: 0;
-    top: 0;
-    transition: all .3s;
-    color: @border-color;
-    line-height: @action * .8;
-    background-color: @shadow-color;
-    border: 1px solid @border-color;
-    border-left: 0;
-    border-radius: 0 @radius @radius 0;
-
-    &:before {
-      text-align: center;
-      content: '☰';
-      width: @action - 2px;
-      font-size: 20px;
-      font-weight: 100;
-      line-height: 38px;
-      position: absolute;
-    }
-
-    ~ select { z-index: 1; }
-  }
-
-  &--value {
-    background-color: @background-color;
-    position: absolute;
-    height: @action;
-    top: 0;
-    left: 0;
-    right: @action;
-
-    span, input {
-      height: @action;
-      padding: 0 5px;
-      color: @color;
-      transition: all .3s;
-      line-height: @action;
-    }
-
-    input {
-      z-index: 2;
-      width: 100%;
-      position: relative;
-      background-color: transparent;
-
-      &:focus { border: 1px solid @BLUE; }
-
-      &.-new { padding-right: 2.8em; }
-      &.-edit { padding-right: 6.2em; }
-      &.-remove { padding-right: 3.6em; }
-    }
-
-    span, input {
-      border: 1px solid @border-color;
-      border-radius: @radius 0 0 @radius;
-    }
-  }
-
-  &--actions {
-    visibility: hidden;
-    position: absolute;
-    transition: all .3s;
-    z-index: 2;
-    opacity: 0;
-    padding: 0 5px;
-    right: @action + 1px;
-    line-height: @action - 10px;
-    background-color: white;
-    top: 5px;
-
-    &.-show {
-      opacity: 1;
-      visibility: visible;
-    }
-
-    a {
-      transition: color, opacity .3s;
-      color: @color;
-      opacity: .5;
-
-      &:hover, &:focus {
-        opacity: 1;
-        color: @BLUE;
-      }
-    }
-  }
-}
diff --git a/src/web/css/_base/components/Toast.less b/src/web/css/_base/components/Toast.less
deleted file mode 100644
index f16b21b61048ee9bb55ce4e4d65addd7f20ebb76..0000000000000000000000000000000000000000
--- a/src/web/css/_base/components/Toast.less
+++ /dev/null
@@ -1,34 +0,0 @@
-.Toast {
-  box-shadow: 0 -1px 3px @shadow-color;
-  background-color: @background-color;
-  color: @color;
-
-  transition: all .3s;
-  text-align: center;
-  position: fixed;
-  bottom: -50px;
-  z-index: 6;
-  opacity: 0;
-  left: 0;
-  width: 100%;
-  padding: @padding;
-
-  &.-show {
-    bottom: 0;
-    opacity: 1;
-  }
-
-  &.-error {
-    color: @WHITE;
-    background-color: @RED;
-  }
-
-  &.-success {
-    color: @WHITE;
-    background-color: @GREEN;
-  }
-
-  button {
-    border-color: rgba(0, 0, 0, .1);
-  }
-}
diff --git a/src/web/css/_base/components/Toolbar.less b/src/web/css/_base/components/Toolbar.less
deleted file mode 100644
index db746d72c0e46ccbfaa48da64898560bc85a0129..0000000000000000000000000000000000000000
--- a/src/web/css/_base/components/Toolbar.less
+++ /dev/null
@@ -1,84 +0,0 @@
-.Toolbar {
-  position: relative;
-}
-
-.jsf-logo {
-  transition: all .3s;
-  height: 80px;
-  width: 100%;
-  background-image: url(/img/logo.svg);
-  background-repeat: no-repeat;
-
-  &:hover { opacity: .8; }
-
-  a {
-    height: 80px;
-    width: 320px;
-    overflow: hidden;
-    text-indent: -640px;
-  }
-}
-
-.jsf-about {
-  li {
-    > .menu {
-      display: none;
-      position: absolute;
-      padding: @padding;
-      box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
-      background-color: rgba(255, 255, 255, .95);
-    }
-
-    &:hover > .menu {
-      display: block;
-    }
-
-    li ~ li { margin-top: @margin; }
-
-    li:hover:before {
-      color: @BLUE;
-    }
-
-    li:before {
-      top: 4px;
-      left: -5px;
-      position: absolute;
-      transition: all .3s;
-      content: '⟀';
-      font-size: 15px;
-      color: @border-color;
-      transform: rotate(225deg);
-    }
-
-    li {
-      white-space: nowrap;
-      position: relative;
-      padding-left: 10px;
-    }
-
-    a {
-      color: @BLUE;
-      text-decoration: none;
-      border-bottom: 1px dotted @border-color;
-
-      &:hover { border-bottom: 1px dotted @BLUE; }
-    }
-  }
-
-  p, h2, h3, h4 {
-    margin-bottom: @margin;
-  }
-}
-
-.github-ribbon {
-  transform: rotate(40deg);
-  background: @border-color;
-  color: white;
-  width: 200px;
-  height: 30px;
-  line-height: 30px;
-  position: absolute;
-  z-index: 999;
-  right: -50px;
-  top: 35px;
-}
diff --git a/src/web/css/_base/elements.less b/src/web/css/_base/elements.less
deleted file mode 100644
index 67a6553d7862b91090c84d3cf0b0e5f6b73b5338..0000000000000000000000000000000000000000
--- a/src/web/css/_base/elements.less
+++ /dev/null
@@ -1,336 +0,0 @@
-/* animations */
-@keyframes spin {
-  from {
-    transform: rotate(0deg);
-  } to {
-    transform: rotate(360deg);
-  }
-}
-
-&.spin {
-  animation: spin 4s linear infinite;
-}
-
-/* flexbox */
-.flx { display: flex; }
-
-.flx-cl { flex-direction: column; }
-.flx-wp { flex-wrap: wrap; }
-
-.flx-c { align-items: center; }
-.flx-b { align-items: baseline; }
-.flx-h { align-items: stretch; }
-.flx-t { align-items: flex-start; }
-.flx-e { align-items: flex-end; }
-
-.flx-j { justify-content: space-between; }
-.flx-jc { justify-content: center; }
-
-.flx-a {
-  flex: 1 1 auto;
-  min-width: 0;
-  min-height: 0;
-}
-
-.flx-gw { flex: 1 0 auto; }
-.flx-no { flex: none; }
-
-.flx-ft { order: -1; }
-.flx-lt { order: 99999; }
-
-.flx-m {
-  > .flx-a ~ .flx-a { margin-top: @margin; }
-  > .flx-a ~ .flx-mt { margin-top: @margin; }
-  > .flx-a ~ .flx-mr { margin-top: @margin; }
-  > .flx-a ~ .flx-ml { margin-left: @margin; }
-}
-
-@media screen and (min-width: 480px) {
-  .sm-no-flx { display: block; }
-  .sm-flx {
-    display: flex;
-
-    &.flx-m {
-      > .flx-a ~ .flx-a { margin-top: 0; margin-left: @margin; }
-      > .flx-a ~ .flx-mr { margin-top: 0; margin-right: @margin; }
-      > .flx-a ~ .flx-mt { margin-top: 0; margin-left: @margin; }
-    }
-  }
-}
-
-@media screen and (min-width: 720px) {
-  .md-flx {
-    display: flex;
-
-    &.flx-m {
-      > .flx-a ~ .flx-a { margin-top: 0; margin-left: @margin; }
-      > .flx-lt ~ .flx-mr { margin-top: 0; margin-left: 0; margin-right: @margin; }
-      > .flx-lt ~ .flx-mt { margin-top: 0; margin-right: 0; margin-left: @margin; }
-    }
-  }
-}
-
-/* grid */
-.cnt {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-.cl-1 { width: 8.33333%; }
-.cl-2 { width: 16.66667%; }
-.cl-3 { width: 25%; }
-.cl-4 { width: 33.33333%; }
-.cl-5 { width: 41.66667%; }
-.cl-6 { width: 50%; }
-.cl-7 { width: 58.33333%; }
-.cl-8 { width: 66.66667%; }
-.cl-9 { width: 75%; }
-.cl-10 { width: 83.33333%; }
-.cl-11 { width: 91.66667%; }
-.cl-12 { width: 100%; }
-
-@media screen and (min-width: 480px) {
-  .sm-cl-1 { width: 8.33333%; }
-  .sm-cl-2 { width: 16.66667%; }
-  .sm-cl-3 { width: 25%; }
-  .sm-cl-4 { width: 33.33333%; }
-  .sm-cl-5 { width: 41.66667%; }
-  .sm-cl-6 { width: 50%; }
-  .sm-cl-7 { width: 58.33333%; }
-  .sm-cl-8 { width: 66.66667%; }
-  .sm-cl-9 { width: 75%; }
-  .sm-cl-10 { width: 83.33333%; }
-  .sm-cl-11 { width: 91.66667%; }
-  .sm-cl-12 { width: 100%; }
-}
-
-@media screen and (min-width: 720px) {
-  .md-cl-1 { width: 8.33333%; }
-  .md-cl-2 { width: 16.66667%; }
-  .md-cl-3 { width: 25%; }
-  .md-cl-4 { width: 33.33333%; }
-  .md-cl-5 { width: 41.66667%; }
-  .md-cl-6 { width: 50%; }
-  .md-cl-7 { width: 58.33333%; }
-  .md-cl-8 { width: 66.66667%; }
-  .md-cl-9 { width: 75%; }
-  .md-cl-10 { width: 83.33333%; }
-  .md-cl-11 { width: 91.66667%; }
-  .md-cl-12 { width: 100%; }
-}
-
-/* typography */
-.bgr { font-size: @h1; }
-.bg { font-size: @h2; }
-.hg { font-size: @h3; }
-.md { font-size: @h4; }
-.sml { font-size: @h5; }
-.smlr { font-size: @h6; }
-
-.nosl {
-  cursor: default;
-  user-select: none;
-}
-
-.ttu {
-  letter-spacing: .1em;
-  text-transform: uppercase;
-}
-
-.lt {
-  text-decoration: line-through;
-}
-
-.a {
-  cursor: pointer;
-}
-
-.tal { text-align: left; }
-.tac { text-align: center; }
-.tar { text-align: right; }
-.taj { text-align: justify; }
-
-.wsn { white-space: nowrap; }
-.wwb { word-wrap: break-word; }
-
-.tr {
-  max-width: 100%;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.lr {
-  list-style: none;
-  padding-left: 0;
-}
-
-.ln { list-style: none; }
-
-.tdu { text-decoration: underline; }
-.tdn { text-decoration: none; }
-
-/* alignment */
-.di { display: inline; }
-.db { display: block; }
-.dib { display: inline-block; }
-.dt { display: table; }
-.dtc { display: table-cell; }
-
-.dn { display: none; }
-
-.oh { overflow: hidden; }
-.os { overflow: scroll; }
-.oa { overflow: auto; }
-
-.clr:before,
-.clr:after {
-  content: ' ';
-  display: table
-}
-
-.clr:after { clear: both; }
-
-.fl { float: left; }
-.fr { float: right; }
-
-.fit { max-width: 100%; }
-
-.ab { vertical-align: baseline; }
-.at { vertical-align: top; }
-.am { vertical-align: middle; }
-.ab { vertical-align: bottom; }
-
-/* white-space */
-.m { margin: @margin; }
-.m ~ .m { margin-top: 0; }
-.mt { margin-top: @margin; }
-.mr { margin-right: @margin; }
-.mb { margin-bottom: @margin; }
-.ml { margin-left: @margin; }
-.mxa { margin-left: auto; margin-right: auto; }
-
-.p { padding: @padding; }
-.p ~ .p { padding-top: 0; }
-
-.pt { padding-top: @padding; }
-.pr { padding-right: @padding; }
-.pb { padding-bottom: @padding; }
-.pl { padding-left: @padding; }
-.py { padding-top: @padding; padding-bottom: @padding; }
-.px { padding-left: @padding; padding-right: @padding; }
-
-.sp ~ .sp { border-left: 1px solid @border-color; }
-
-.pd {
-  padding-right: @padding / 2;
-
-  ~ .pd {
-    padding-left: @padding / 2;
-  }
-}
-
-.rel { position: relative; }
-.abs { position: absolute; }
-
-.r0 { right: 0; }
-.ra { right: 0; }
-.t0 { top: 0; }
-.ta { top: 0; }
-.b0 { bottom: 0; }
-.ba { bottom: 0; }
-.l0 { left: 0; }
-.la { left: 0; }
-
-.z1 { z-index: 1; }
-.z2 { z-index: 2; }
-.z3 { z-index: 3; }
-.z4 { z-index: 4; }
-.z5 { z-index: 5; }
-
-/* borders */
-.b { border: 1px solid @border-color; }
-.b ~ .b { border-top: 0; }
-.nb { border: 0; }
-
-/* icons */
-.ic {
-  min-width: @h5;
-  min-height: @h5;
-
-  width: @h5;
-  height: @h5;
-
-  svg {
-    width: inherit;
-    height: inherit;
-    vertical-align: middle;
-  }
-
-  &.x2 {
-    width: @h3;
-    height: @h3;
-  }
-
-  &.x3 {
-    width: @h1;
-    height: @h1;
-  }
-}
-
-/* states */
-.ch {
-  display: none;
-
-  ~ span {
-    opacity: .5;
-  }
-
-  &:checked {
-    ~ span {
-      opacity: 1;
-      text-decoration: none;
-    }
-
-    ~ .on { display: inline-block; }
-    ~ .off { display: none; }
-  }
-
-  ~ .on { display: none; }
-  ~ .off { display: inline-block; }
-}
-
-/* fields */
-.bu {
-  border: 0;
-  color: @color;
-  height: @action;
-  min-width: @action;
-  line-height: @action;
-  border-radius: @radius;
-  padding: 0 10px;
-  min-height: @action;
-  line-height: @action - 2px;
-  transition: opacity .3s;
-  transition: all .3s;
-  border: 1px solid @border-color;
-  background-color: @shadow-color;
-
-  &:focus { border: 1px solid @BLUE; }
-  &:active { box-shadow: inset 0 1px 5px rgba(0, 0, 0, .2); }
-  &:disabled { opacity: .5; }
-}
-
-.f { box-shadow: 1px 1px 1px @shadow-color; }
-
-.num {
-  border: 1px solid @shadow-color;
-  width: 6em;
-}
-
-/* misc */
-
-.cln {
-  border: 0;
-  border-top: 1px dotted @border-color;
-}
diff --git a/src/web/css/_base/layout.less b/src/web/css/_base/layout.less
deleted file mode 100644
index 6684e595a291e9afa02b0b7d73077dde5dbce3ce..0000000000000000000000000000000000000000
--- a/src/web/css/_base/layout.less
+++ /dev/null
@@ -1,36 +0,0 @@
-@keyframes flick {
-  0% { opacity: .5; }
-  50% { opacity: 1; }
-  100% { opacity: .5; }
-}
-
-.-dis {
-  position: relative;
-
-  &:before, &:after {
-    position: absolute;
-    z-index: 5;
-    bottom: 0;
-    right: 0;
-    left: 0;
-    top: 0;
-  }
-
-  &:before {
-    background-color: rgba(255, 255, 255, .7);
-    animation: flick 1.6s infinite;
-    content: ' ';
-  }
-
-  &:after {
-    background-color: rgba(255, 255, 255, .9);
-    content: 'Loading...';
-    margin: auto;
-    width: 200px;
-    height: 30px;
-    line-height: 30px;
-    text-align: center;
-    border-radius: @radius;
-    box-shadow: 1px 1px 1px rgba(0, 0, 0, .1);
-  }
-}
diff --git a/src/web/css/_base/reset.less b/src/web/css/_base/reset.less
deleted file mode 100644
index 653977ae2bb5e104fb9b09986a84f8e74bf043f3..0000000000000000000000000000000000000000
--- a/src/web/css/_base/reset.less
+++ /dev/null
@@ -1,91 +0,0 @@
-html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6,
-p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img,
-ins, kbd, q, samp, small, strong, sub, sup, var, b, i,
-dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, figure, footer, header, menu, nav, section,
-time, mark, audio, video, details, summary, button, input, textarea {
-  margin: 0;
-  padding: 0;
-  line-height: 1;
-  font-size: inherit;
-  vertical-align: baseline;
-}
-
-iframe {
-  border: 0;
-}
-
-html {
-  box-sizing: border-box;
-  font-size: @font-size;
-}
-
-*,
-*:before,
-*:after {
-  box-sizing: inherit;
-}
-
-/* normalize */
-html, body {
-  width: 100%;
-  height: 100%;
-}
-
-input, button, body {
-  font-family: @font-family;
-  color: @color;
-}
-
-ul, ol {
-  list-style-position: inside;
-}
-
-/* typography */
-h1 { font-size: @h1; }
-h2 { font-size: @h2; }
-h3 { font-size: @h3; }
-h4 { font-size: @h4; }
-h5 { font-size: @h5; }
-h6 { font-size: @h6; }
-
-/* tables */
-table {
-  border-collapse: separate;
-  border-spacing: 0;
-  max-width: 100%;
-  width: 100%;
-}
-
-th {
-  text-align: left;
-  font-weight: bold;
-}
-
-th,
-td {
-  line-height: inherit;
-  padding: @padding @padding;
-}
-
-th { vertical-align: bottom; }
-td { vertical-align: top; }
-
-/* forms */
-label {
-  vertical-align: middle;
-}
-
-svg, img, input {
-  max-width: 100%;
-  background: transparent;
-}
-
-select, textarea { line-height: 1.75; }
-
-a, input, button {
-  &:focus {
-    outline: 0;
-  }
-}
diff --git a/src/web/css/_base/vars.less b/src/web/css/_base/vars.less
deleted file mode 100644
index 24715087026c71f85b27c6683fa2c51c8c76f4db..0000000000000000000000000000000000000000
--- a/src/web/css/_base/vars.less
+++ /dev/null
@@ -1,36 +0,0 @@
-@NAVY: #001f3f;
-@BLUE: #0074D9;
-@AQUA: #7FDBFF;
-@TEAL: #39CCCC;
-@OLIVE: #3D9970;
-@GREEN: #2ECC40;
-@LIME: #01FF70;
-@YELLOW: #FFDC00;
-@ORANGE: #FF851B;
-@RED: #FF4136;
-@MAROON: #85144b;
-@FUCHSIA: #F012BE;
-@PURPLE: #B10DC9;
-@BLACK: #111111;
-@GRAY: #AAAAAA;
-@SILVER: #DDDDDD;
-@WHITE: #FFFFFF;
-
-@background-color: #FFFFFF;
-@shadow-color: rgba(0, 0, 0, .1);
-@border-color: #BDC3C7;
-@color: #34495E;
-
-@font-family: Dosis, Roboto, 'SF UI Text', 'Helvetica Neue', Helvetica, sans-serif;
-@font-size: 12pt;
-@padding: 12px;
-@margin: 12px;
-@radius: 3px;
-@action: 40px;
-
-@h1: @font-size * 3.5;
-@h2: @font-size * 2.7;
-@h3: @font-size * 2.1;
-@h4: @font-size * 1.7;
-@h5: @font-size * 1.4;
-@h6: @font-size * 1.1;
diff --git a/src/web/css/app.css b/src/web/css/app.css
deleted file mode 100644
index dae64647fd34da46da384c138926ee75fea4dcab..0000000000000000000000000000000000000000
--- a/src/web/css/app.css
+++ /dev/null
@@ -1,9 +0,0 @@
-@import '_base/vars';
-@import '_base/reset';
-@import '_base/layout';
-@import '_base/elements';
-
-@import '_base/components/Toast';
-@import '_base/components/Toolbar';
-@import '_base/components/Dropdown';
-@import '_base/components/AceEditor';
diff --git a/src/web/img/favicon.ico b/src/web/img/favicon.ico
deleted file mode 100644
index a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a..0000000000000000000000000000000000000000
Binary files a/src/web/img/favicon.ico and /dev/null differ
diff --git a/src/web/img/logo.svg b/src/web/img/logo.svg
deleted file mode 100644
index d664afefe7fe8905129d78f20378768d5f2fb678..0000000000000000000000000000000000000000
--- a/src/web/img/logo.svg
+++ /dev/null
@@ -1,1083 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
-	<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
-	<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
-	<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
-	<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
-	<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
-	<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
-	<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
-]>
-<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="69 282 750 230"
-	 style="enable-background:new 69 282 750 230;" xml:space="preserve">
-<switch>
-	<foreignObject requiredExtensions="&ns_ai;" x="0" y="0" width="1" height="1">
-		<i:pgfRef  xlink:href="#adobe_illustrator_pgf">
-		</i:pgfRef>
-	</foreignObject>
-	<g i:extraneous="self">
-		<g transform="matrix( 1, 0, 0, 1, 0,0) ">
-			<g id="Layer0_0_FILL">
-				<path style="fill:#595959;" d="M121.85,318.5c-2.567,0-5.767,0.35-9.6,1.05c-3.533,0.867-7.117,2.383-10.75,4.55
-					c-3.533,2.467-6.617,6.05-9.25,10.75c-2.367,4.833-3.65,11.367-3.85,19.6v17.25c0,5.3-0.833,9.467-2.5,12.5
-					c-1.767,3.067-3.833,5.283-6.2,6.65c-2.267,1.567-4.233,2.5-5.9,2.8c-1.667,0.6-2.6,0.8-2.8,0.6v17.65c0.2,0,1.133,0.2,2.8,0.6
-					c1.667,0.5,3.633,1.433,5.9,2.8c2.367,1.567,4.433,3.783,6.2,6.65c1.667,3.133,2.5,7.25,2.5,12.35v19.75
-					c0.2,8.267,1.483,14.75,3.85,19.45c2.633,4.8,5.717,8.433,9.25,10.9c3.633,2.367,7.217,3.983,10.75,4.85
-					c3.833,0.7,7.033,1.05,9.6,1.05c1.367,0,2.5-0.1,3.4-0.3l1.15-0.3v-15.15h-0.75c-0.467,0-1.15,0-2.05,0
-					c-1.667,0-3.867-0.4-6.6-1.2c-2.767-0.867-5.283-2.933-7.55-6.2c-2.133-3.033-3.3-7.75-3.5-14.15v-23.85
-					c0-5.1-0.883-9.367-2.65-12.8c-1.667-3.433-3.533-6.083-5.6-7.95c-2.267-2.067-4.133-3.45-5.6-4.15l-2.65-1.05v-0.55l2.65-0.9
-					c1.467-0.9,3.333-2.367,5.6-4.4c2.067-1.867,3.933-4.533,5.6-8c1.767-3.433,2.65-7.65,2.65-12.65v-21.2
-					c0.2-6.5,1.367-11.317,3.5-14.45c2.267-3.033,4.783-5,7.55-5.9c2.733-0.867,4.933-1.3,6.6-1.3c0.9,0,1.583,0,2.05,0h0.75V318.8
-					h-1.15C124.35,318.6,123.217,318.5,121.85,318.5 M313.25,320c1.967-3.633,4.033-7.217,6.2-10.75c0.2-0.3,0.25-0.6,0.15-0.9
-					c-0.1-0.4-0.25-0.7-0.45-0.9L319,307.3c-5.1-4.2-10.317-7.833-15.65-10.9c-3.9-2.333-7.817-4.3-11.75-5.9
-					c-15.333-5.867-31.75-7.033-49.25-3.5c-0.267,0.1-0.45,0.25-0.55,0.45c-0.3,0.067-0.45,0.25-0.45,0.55
-					c-2.533,6.367-4.767,13.033-6.7,20c-1,3.567-1.917,7.217-2.75,10.95h0.15L230,327.2c-0.1,0.1-0.15,0.25-0.15,0.45
-					c-2.067,9.133-3.833,18.517-5.3,28.15c-0.4,2.733-0.8,5.483-1.2,8.25c-0.267,1.967-0.5,3.983-0.7,6.05c-0.4,0-0.75,0-1.05,0
-					h-0.3c-0.1,0-0.2,0.05-0.3,0.15c-1.567,0.267-3.183,0.4-4.85,0.4H216c-11.8,1.5-17.783,4.25-17.95,8.25
-					c-0.7,4.233,4.7,8.067,16.2,11.5c0.667,0.2,1.45,0.4,2.35,0.6l0.9,0.3c0.967,0.2,2.083,0.45,3.35,0.75
-					c-0.3,3.533-0.533,7.117-0.7,10.75c0,0.967-0.05,2-0.15,3.1c-1.5,0.567-2.833,1.65-4,3.25c-0.8,0.767-1.433,1.6-1.9,2.5
-					l-4.45-1.5l-1.9,5.6l4.4,1.5c-0.1,0.567-0.15,1.2-0.15,1.9c-0.167,3.733,0.817,7.017,2.95,9.85c1.4,1.967,3.033,3.3,4.9,4
-					c0,1.767,0.05,3.583,0.15,5.45c-0.3-0.1-0.55-0.15-0.75-0.15c-0.9-0.2-1.683-0.3-2.35-0.3c-0.2,0-0.35,0-0.45,0
-					c-4.733-0.1-8.367,1.417-10.9,4.55h-0.15c-0.9,1.2-1.733,2.633-2.5,4.3V447c-0.3,0.967-0.9,2.383-1.8,4.25
-					c-1.367,3.067-2.983,5.183-4.85,6.35c-0.1,0-0.15,0.05-0.15,0.15c-1.467,0.5-2.833,0.8-4.1,0.9h-0.15
-					c-2.367,0.167-4.283-0.633-5.75-2.4c-1.967-2.333-3.45-5.567-4.45-9.7c-0.967-4.233-0.867-7.483,0.3-9.75
-					c1.4-2.633,2.833-4.15,4.3-4.55c1.267-0.3,2.733,0.483,4.4,2.35l0.15,0.15c0.9,0.9,1.35,2.617,1.35,5.15
-					c0,1.5-0.2,2.933-0.6,4.3c-0.2,0.4-0.2,0.783,0,1.15c0.2,0.3,0.5,0.55,0.9,0.75c0.367,0.1,0.75,0.05,1.15-0.15
-					c0.3-0.2,0.55-0.483,0.75-0.85c0.5-1.7,0.75-3.433,0.75-5.2c0-3.633-0.75-6.033-2.25-7.2l-0.15-0.15
-					c-2.533-2.733-4.933-3.817-7.2-3.25c-2.267,0.4-4.333,2.467-6.2,6.2c-1.567,2.733-1.717,6.667-0.45,11.8
-					c1.1,4.6,2.783,8.233,5.05,10.9c2.133,2.533,4.883,3.667,8.25,3.4c1.667-0.1,3.433-0.55,5.3-1.35h0.15
-					c2.333-1.467,4.383-4.067,6.15-7.8c0.9-1.867,1.5-3.3,1.8-4.3c0.667-1.467,1.4-2.683,2.2-3.65v-0.15
-					c2.067-2.367,4.967-3.5,8.7-3.4c0.1,0,0.25,0,0.45,0c0.567,0,1.2,0.1,1.9,0.3c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0.05,0.3,0.15
-					c0.1,0,0.2,0,0.3,0h0.45c0.267,6.767,0.7,13.583,1.3,20.45l-10.6-1.15c-0.4,0-0.7,0.1-0.9,0.3c-0.4,0.2-0.6,0.483-0.6,0.85
-					c-0.167,0.3-0.167,0.65,0,1.05l4.6,8.85L188,500.2l-20.9-60.85c-0.1-0.1-0.15-0.2-0.15-0.3l-4.3-13.15
-					c-0.1-0.167-0.25-0.35-0.45-0.55c-0.167-0.2-0.35-0.3-0.55-0.3c-5.5-1.767-9.283-0.3-11.35,4.4c-0.2,0.3-0.2,0.65,0,1.05
-					l4.55,13.55c0,0.1,0.05,0.2,0.15,0.3l19.1,54.7l0.05,0.1c1.1,0.367,2.233,0.667,3.4,0.9c0.367,0.067,0.75,0.133,1.15,0.2
-					c1,0.167,2.05,0.283,3.15,0.35c0.167,0,0.35,0,0.55,0l-21.65-60.1c0.967-0.4,2.2-0.25,3.7,0.45l20.6,59.65h6.65l21.8-23.7
-					l-9.45,23.7h40.1v-7.95l15.15,3.4c0.3,0.1,0.6,0.1,0.9,0c0.3-0.2,0.55-0.4,0.75-0.6c0.1-0.3,0.15-0.583,0.15-0.85
-					c-0.1-6.9,0-13.933,0.3-21.1c0-0.4-0.1-0.683-0.3-0.85c-0.2-0.3-0.45-0.5-0.75-0.6c-0.3-0.2-0.6-0.2-0.9,0l-15.75,5.15v-29.75
-					c13.467-7.167,22.75-8.4,27.85-3.7c0.8,1.067,1.633,2.3,2.5,3.7c0,0.1,0.05,0.15,0.15,0.15c0.3,0.867,0.883,2.233,1.75,4.1h0.15
-					c0.2,0.5,0.45,0.95,0.75,1.35c-0.2,4.8-0.3,9.6-0.3,14.4c0,0.4,0.15,0.75,0.45,1.05s0.65,0.45,1.05,0.45h10.3l-8.85,11.35
-					c-0.2,0.3-0.3,0.583-0.3,0.85c0,0.4,0.1,0.75,0.3,1.05l6.35,7.65c0.2-0.3,0.4-0.583,0.6-0.85c0.167-0.3,0.35-0.6,0.55-0.9
-					l0.6-0.9l-0.05-0.05l-4.95-6l9.85-12.8c0.2-0.3,0.3-0.65,0.3-1.05c0-0.367-0.15-0.65-0.45-0.85c-0.267-0.3-0.6-0.45-1-0.45
-					h-11.8c0-3.133,0.05-6.283,0.15-9.45c1.067,1.1,2.2,1.883,3.4,2.35c1.767,0.9,3.733,1.3,5.9,1.2h0.15
-					c3.233,0.2,6.117-0.983,8.65-3.55h0.15c2.367-2.733,4.233-6.517,5.6-11.35v-0.1c1.1-5.033,0.767-8.917-1-11.65
-					c-2.067-3.633-4.283-5.6-6.65-5.9c-2.467-0.6-5.067,0.533-7.8,3.4c-1.567,1.467-2.35,4.017-2.35,7.65c0,1.667,0.15,3.333,0.45,5
-					c0.1,0.4,0.333,0.7,0.7,0.9c0.3,0.3,0.65,0.4,1.05,0.3c0.4-0.1,0.7-0.3,0.9-0.6c0.3-0.4,0.4-0.8,0.3-1.2
-					c-0.3-1.467-0.45-2.933-0.45-4.4c0-2.667,0.483-4.533,1.45-5.6c1.867-1.867,3.583-2.7,5.15-2.5c1.667,0.4,3.25,1.867,4.75,4.4
-					c1.267,2.367,1.45,5.567,0.55,9.6h0.15c-1.267,4.2-2.933,7.533-5,10v0.15c-1.967,1.867-4.167,2.7-6.6,2.5h-0.15
-					c-1.667,0.1-3.2-0.2-4.6-0.9h-0.15c-1.567-0.767-3.033-2.083-4.4-3.95c0.7-16.1,2.417-31.967,5.15-47.6
-					c0.1-0.6,0.2-1.133,0.3-1.6c0.3-1.667,0.65-3.25,1.05-4.75v-0.15c2.133,0,4.05-0.183,5.75-0.55
-					c11.567-1.1,17.45-3.717,17.65-7.85v-0.1c0.8-3.933-4.55-7.817-16.05-11.65l-0.15-0.15c-0.6-0.1-1.283-0.25-2.05-0.45
-					c-0.2-0.1-0.4-0.15-0.6-0.15c0.8-2.933,1.583-5.733,2.35-8.4l0.15-0.15c0.5-1.467,0.95-2.833,1.35-4.1
-					c1.967-6.7,4.167-13.083,6.6-19.15c0.033-0.067,0.067-0.133,0.1-0.2c2.933-7.7,6.2-14.967,9.8-21.8L313.25,320 M301.9,298.9
-					h0.15c-4.1,9.167-7.9,18.417-11.4,27.75c-4.067,10.767-7.733,21.667-11,32.7c-3.533-1.7-7.167-3.033-10.9-4
-					c3.667-13.9,8.033-27.567,13.1-41c2.667-7.1,5.517-14.117,8.55-21.05h0.15C294.383,294.8,298.167,296.667,301.9,298.9
-					 M255.2,370.8c-0.4,0-0.75,0-1.05,0c-7.9-0.283-15.8-0.567-23.7-0.85c-1.667,0-3.283,0.05-4.85,0.15
-					c0.167-1.867,0.4-3.733,0.7-5.6c0.3-2.367,0.65-4.733,1.05-7.1c14.333-3.233,27.833-2.983,40.5,0.75
-					c3.633,0.967,7.217,2.3,10.75,4c2.167,1.067,4.333,2.183,6.5,3.35c1.567,1,3.283,2.083,5.15,3.25
-					c-0.767,2.467-1.5,5.017-2.2,7.65c-0.5-0.1-0.983-0.2-1.45-0.3c-0.05,0-0.1,0-0.15,0c-0.1,0-0.2,0-0.3,0
-					C277.117,373.767,266.8,372,255.2,370.8 M283.05,390.4c0.567,0.2,1.15,0.4,1.75,0.6c-0.5,1.767-0.933,3.583-1.3,5.45
-					c0,0.1,0,0.25,0,0.45c-0.1,0.3-0.15,0.65-0.15,1.05c-0.4,1.467-0.75,3.033-1.05,4.7c-0.1,0.5-0.2,1.033-0.3,1.6
-					c-2.467,14.167-4.083,28.467-4.85,42.9c-0.2-0.3-0.35-0.6-0.45-0.9v-0.15c-0.967-1.567-1.9-2.933-2.8-4.1
-					c0-0.1-0.05-0.15-0.15-0.15c-6-6.4-16.85-5.233-32.55,3.5c-1.067,0.5-2.4,0.7-4,0.6l3.4-15.9v-0.3l8.7-45.25
-					c0.6,0,1.183,0,1.75,0c0.4,0.1,0.8,0.15,1.2,0.15h0.15c0.1,0,0.2,0,0.3,0c0.2,0,0.45,0,0.75,0
-					C263.317,386.567,273.183,388.483,283.05,390.4 M235,400.85c-0.5-0.167-0.833-0.55-1-1.15c-1.5-2.067-2.983-3.25-4.45-3.55h-0.3
-					c-1.267,0-2.583,0.4-3.95,1.2c-0.6,0.2-1.1,0.25-1.5,0.15c-0.567-0.2-0.95-0.5-1.15-0.9c-0.2-0.5-0.2-1.033,0-1.6
-					c0.1-0.4,0.333-0.7,0.7-0.9c2.167-1,4.133-1.5,5.9-1.5h0.15c0.1,0,0.25,0,0.45,0c2.833,0.2,5.183,1.983,7.05,5.35
-					c0.4,0.367,0.45,0.85,0.15,1.45c-0.1,0.3-0.333,0.7-0.7,1.2C235.85,400.867,235.4,400.95,235,400.85 M235.75,447.6
-					c-0.4,0.1-0.8,0.05-1.2-0.15c-2.167-1.3-4.267-2.383-6.3-3.25c-1.4-0.7-2.633-1.2-3.7-1.5c-0.5-0.2-0.9-0.333-1.2-0.4h-0.15
-					c-0.467-0.2-0.9-0.35-1.3-0.45c-0.4-0.1-0.8-0.2-1.2-0.3h-0.15c-0.1-0.1-0.2-0.15-0.3-0.15l-0.1-2.95h0.1c0.3,0,0.7,0.1,1.2,0.3
-					c0.4,0.1,0.8,0.2,1.2,0.3l-0.15-0.15c0.567,0.1,1.15,0.3,1.75,0.6c0.367,0.033,0.817,0.167,1.35,0.4h-0.15
-					c1.267,0.4,2.633,0.95,4.1,1.65h-0.15c2.067,0.867,4.283,2,6.65,3.4c0.3,0.167,0.55,0.45,0.75,0.85
-					c0.067,0.3,0.017,0.65-0.15,1.05C236.35,447.15,236.05,447.4,235.75,447.6 M224.25,407.8c2.367,0,4.383,1.033,6.05,3.1
-					c1.667,2.267,2.45,5.017,2.35,8.25c-0.2,3.033-1.233,5.733-3.1,8.1h0.15c-1.967,2.167-4.183,3.25-6.65,3.25
-					c-1.167,0-2.233-0.3-3.2-0.9c-1-0.6-1.833-1.383-2.5-2.35c-1.767-2.267-2.567-4.917-2.4-7.95v-0.15c0-1.267,0.25-2.5,0.75-3.7
-					c0-0.1,0.05-0.15,0.15-0.15c0.4-1.567,1.183-2.983,2.35-4.25c0.5-0.7,1.05-1.25,1.65-1.65
-					C221.217,408.333,222.683,407.8,224.25,407.8 M153.25,430.2c1.367-2.567,3.617-3.45,6.75-2.65l3.25,9.85
-					c-1.367-0.3-2.55-0.2-3.55,0.3h-0.15c-1.167,0.5-2.133,1.283-2.9,2.35L153.25,430.2 M227.35,474.25h0.6l13.7,6.05
-					c0.3,0.1,0.633,0.15,1,0.15c0.3,0.1,0.6,0.1,0.9,0l14.9-5c-0.3,5.867-0.4,11.65-0.3,17.35l-15.2-3.5
-					c-0.4-0.1-0.733-0.017-1,0.25c-0.1,0-0.2,0.05-0.3,0.15l-14.3,4.45V474.25 M253.3,428.85c4-7,6.267-12.967,6.8-17.9
-					c0.033-0.433-0.067-0.8-0.3-1.1c-0.267-0.333-0.6-0.533-1-0.6c-0.433-0.033-0.8,0.083-1.1,0.35c-0.333,0.233-0.533,0.567-0.6,1
-					c-0.6,5.1-3.167,11.433-7.7,19c-0.2,0.3-0.267,0.633-0.2,1c0.033,0.367,0.2,0.667,0.5,0.9c0.267,0.233,0.583,0.35,0.95,0.35
-					h11.45c0.4,0,0.75-0.15,1.05-0.45s0.45-0.65,0.45-1.05c0-0.4-0.15-0.75-0.45-1.05s-0.65-0.45-1.05-0.45H253.3 M255.15,396.3
-					c-0.367,0.167-0.617,0.45-0.75,0.85c-0.167,0.4-0.15,0.783,0.05,1.15c0.167,0.367,0.45,0.633,0.85,0.8
-					c0.4,0.133,0.783,0.1,1.15-0.1c3.933-1.9,7.15-1.3,9.65,1.8c0.233,0.3,0.567,0.483,1,0.55c0.4,0.033,0.767-0.067,1.1-0.3
-					c0.3-0.267,0.483-0.6,0.55-1c0.033-0.433-0.067-0.8-0.3-1.1C265.05,394.55,260.617,393.667,255.15,396.3 M335.9,319.55
-					c-3.633-0.7-6.817-1.05-9.55-1.05c-1.367,0-2.5,0.1-3.4,0.3h-1.15v15.05h0.7c0.5,0,1.2,0,2.1,0c1.867,0,4.167,0.433,6.9,1.3
-					c2.767,0.9,5.267,2.867,7.5,5.9c1.967,3.133,3.05,7.95,3.25,14.45v21.2c0.2,5,1.083,9.217,2.65,12.65
-					c1.667,3.467,3.633,6.133,5.9,8c2.067,2.033,3.933,3.5,5.6,4.4c1.567,0.6,2.4,0.9,2.5,0.9v0.55c-0.1,0-0.933,0.35-2.5,1.05
-					c-1.667,0.7-3.533,2.083-5.6,4.15c-2.267,1.867-4.233,4.517-5.9,7.95c-1.567,3.433-2.45,7.7-2.65,12.8V453
-					c-0.2,6.4-1.283,11.117-3.25,14.15c-2.233,3.267-4.733,5.333-7.5,6.2c-2.733,0.8-5.033,1.2-6.9,1.2c-0.9,0-1.6,0-2.1,0h-0.7
-					v15.15l1.15,0.3c0.9,0.2,2.033,0.3,3.4,0.3c2.733,0,5.917-0.35,9.55-1.05c3.733-0.867,7.417-2.483,11.05-4.85
-					c3.567-2.467,6.567-6.1,9-10.9c2.567-4.7,3.85-11.183,3.85-19.45V434.3c0-5.1,0.933-9.217,2.8-12.35
-					c1.667-2.867,3.633-5.083,5.9-6.65c2.233-1.367,4.283-2.3,6.15-2.8l2.55-0.6v-17.65c0,0.2-0.85,0-2.55-0.6
-					c-1.867-0.3-3.917-1.233-6.15-2.8c-2.267-1.367-4.233-3.583-5.9-6.65c-1.867-3.033-2.8-7.2-2.8-12.5v-17.25
-					c0-8.233-1.283-14.767-3.85-19.6c-2.433-4.7-5.433-8.283-9-10.75C343.317,321.933,339.633,320.417,335.9,319.55 M462.9,399.55
-					c0.6,0.533,0.9,1.35,0.9,2.45v6.55h17.95v-16.4c0-3.567-0.817-6.167-2.45-7.8c-1.633-1.7-4.267-2.55-7.9-2.55h-61.55v16.85h9.85
-					v91.05h19.9v-43.6h34.5v-16.85h-34.5v-30.6h20.85C461.517,398.65,462.333,398.95,462.9,399.55 M432.5,327.9
-					c0-1.4-0.333-2.417-1-3.05c-0.633-0.633-1.633-0.95-3-0.95h-15.3v6.55h10.2c0.433,0,0.767,0.117,1,0.35s0.35,0.55,0.35,0.95
-					v21.5c-0.033,1.533-0.3,2.75-0.8,3.65c-0.5,0.933-1.167,1.617-2,2.05c-0.833,0.4-1.733,0.6-2.7,0.6
-					c-0.933,0.033-1.833-0.167-2.7-0.6c-0.833-0.4-1.5-1.1-2-2.1c-0.533-0.967-0.817-2.283-0.85-3.95v-1.75h-7.75v2.45
-					c0.033,3.033,0.683,5.533,1.95,7.5c1.3,1.933,2.933,3.383,4.9,4.35c2.033,0.933,4.167,1.4,6.4,1.4s4.35-0.467,6.35-1.4
-					c2.033-0.933,3.7-2.367,5-4.3c1.267-1.933,1.917-4.45,1.95-7.55V327.9 M457.7,323.6c-1.433-0.3-2.8-0.45-4.1-0.45
-					c-2.733,0.033-5.15,0.55-7.25,1.55c-2.1,1.033-3.767,2.45-5,4.25c-1.2,1.767-1.8,3.8-1.8,6.1c0.033,2.167,0.517,4,1.45,5.5
-					c0.967,1.533,2.183,2.817,3.65,3.85c1.533,1.067,3.133,1.983,4.8,2.75c1.7,0.8,3.3,1.55,4.8,2.25
-					c1.5,0.733,2.717,1.517,3.65,2.35c0.967,0.867,1.467,1.883,1.5,3.05c-0.033,1.1-0.333,2.017-0.9,2.75
-					c-0.533,0.733-1.267,1.3-2.2,1.7c-0.9,0.367-1.9,0.55-3,0.55c-1.467-0.033-2.817-0.3-4.05-0.8c-1.267-0.467-2.35-1.033-3.25-1.7
-					c-0.933-0.667-1.65-1.233-2.15-1.7c-0.5-0.5-0.75-0.767-0.75-0.8l-4.4,5.5l0.95,1c0.633,0.633,1.567,1.383,2.8,2.25
-					c1.233,0.833,2.75,1.583,4.55,2.25c1.8,0.633,3.867,0.983,6.2,1.05c2.967-0.067,5.5-0.65,7.6-1.75
-					c2.067-1.133,3.667-2.633,4.8-4.5c1.067-1.867,1.617-3.933,1.65-6.2c-0.033-2.3-0.533-4.233-1.5-5.8
-					c-0.933-1.533-2.15-2.817-3.65-3.85s-3.1-1.917-4.8-2.65c-1.667-0.767-3.267-1.483-4.8-2.15c-1.5-0.633-2.717-1.367-3.65-2.2
-					c-0.933-0.8-1.433-1.8-1.5-3c0.067-1.367,0.65-2.45,1.75-3.25c1.167-0.833,2.65-1.25,4.45-1.25c0.967,0,1.867,0.133,2.7,0.4
-					c0.867,0.267,1.567,0.633,2.1,1.1c0.533,0.533,0.8,1.117,0.8,1.75v1.9h7.05v-3.9c-0.033-1.533-0.467-2.817-1.3-3.85
-					c-0.8-1.067-1.85-1.933-3.15-2.6C460.483,324.417,459.133,323.933,457.7,323.6 M504.25,326.05c-3.267-1.9-7-2.867-11.2-2.9
-					c-4.167,0.033-7.883,1-11.15,2.9c-3.3,1.9-5.883,4.467-7.75,7.7c-1.9,3.233-2.883,6.883-2.95,10.95
-					c0.067,4.167,1.05,7.917,2.95,11.25c1.867,3.333,4.45,5.967,7.75,7.9c3.267,1.933,6.983,2.933,11.15,3
-					c4.2-0.067,7.933-1.067,11.2-3c3.267-1.933,5.85-4.567,7.75-7.9c1.9-3.333,2.867-7.083,2.9-11.25
-					c-0.033-4.067-1-7.717-2.9-10.95C510.1,330.517,507.517,327.95,504.25,326.05 M504.95,337.4c1.2,2.133,1.817,4.567,1.85,7.3
-					c-0.033,2.833-0.65,5.367-1.85,7.6c-1.233,2.233-2.883,4-4.95,5.3c-2.067,1.3-4.383,1.95-6.95,1.95s-4.883-0.65-6.95-1.95
-					c-2.067-1.3-3.7-3.067-4.9-5.3c-1.233-2.233-1.867-4.767-1.9-7.6c0.033-2.733,0.667-5.167,1.9-7.3
-					c1.2-2.133,2.833-3.817,4.9-5.05c2.067-1.267,4.383-1.917,6.95-1.95c2.567,0.033,4.883,0.683,6.95,1.95
-					C502.067,333.583,503.717,335.267,504.95,337.4 M558.4,473.45c-1.067,0-1.883-0.3-2.45-0.9c-0.567-0.533-0.85-1.35-0.85-2.45
-					v-28.85c0.033-5.833-0.933-11.083-2.9-15.75c-2.033-4.6-5.5-8.25-10.4-10.95c-4.9-2.733-11.633-4.117-20.2-4.15
-					c-2.067,0-4.65,0.15-7.75,0.45c-3.167,0.333-6.317,1.05-9.45,2.15c-3.1,1.033-5.717,2.633-7.85,4.8
-					c-2.133,2.133-3.25,4.983-3.35,8.55v8.25h17.95v-4.1c0.067-1.433,0.717-2.517,1.95-3.25c1.167-0.767,2.55-1.3,4.15-1.6
-					c1.567-0.233,2.967-0.35,4.2-0.35c4.967-0.033,8.617,1.1,10.95,3.4c2.267,2.4,3.4,6.333,3.4,11.8v0.6h-2.45
-					c-2.567,0-5.783,0.133-9.65,0.4c-3.8,0.267-7.783,0.883-11.95,1.85c-4.2,0.933-8.15,2.367-11.85,4.3
-					c-3.667,1.933-6.667,4.5-9,7.7c-2.267,3.167-3.45,7.167-3.55,12c0.033,5.2,1.3,9.583,3.8,13.15c2.4,3.6,5.6,6.35,9.6,8.25
-					c4.033,1.867,8.367,2.8,13,2.8c4.367-0.1,8.05-0.817,11.05-2.15c2.967-1.333,5.367-2.883,7.2-4.65
-					c1.833-1.8,3.15-3.383,3.95-4.75c0.833-1.333,1.233-2.033,1.2-2.1h0.25l-0.05,0.9c0,0.6-0.017,1.383-0.05,2.35
-					c0,2.4,0.767,4.417,2.3,6.05c1.533,1.633,4.05,2.467,7.55,2.5h17.35v-16.25H558.4 M506.8,466.5c0.033-2.7,0.917-4.867,2.65-6.5
-					c1.7-1.633,3.883-2.867,6.55-3.7c2.667-0.767,5.483-1.3,8.45-1.6c2.967-0.267,5.733-0.4,8.3-0.4h3.35v1.85
-					c0,3.233-0.767,6.383-2.3,9.45c-1.5,3.1-3.55,5.667-6.15,7.7c-2.633,2.067-5.683,3.133-9.15,3.2c-3.967-0.1-6.9-1.117-8.8-3.05
-					C507.767,471.483,506.8,469.167,506.8,466.5 M598.7,390.65c0-3.5-0.833-5.867-2.5-7.1c-1.633-1.233-4.233-1.817-7.8-1.75H570
-					v16.4h6.1c1.067,0,1.883,0.283,2.45,0.85c0.567,0.533,0.85,1.367,0.85,2.5v88.15h19.3v-33.9h4.25
-					c1.267-0.067,2.567,0.083,3.9,0.45c1.333,0.3,2.433,1.117,3.3,2.45l12.9,24.3c1.367,2.733,2.95,4.55,4.75,5.45
-					c1.733,0.867,4.183,1.283,7.35,1.25h14.3v-16.25h-5.2c-1.767,0.067-3.117-0.133-4.05-0.6c-0.967-0.4-1.733-1.167-2.3-2.3
-					l-8.75-16.75c-1.433-2.433-2.7-4.067-3.8-4.9c-1.1-0.833-1.667-1.2-1.7-1.1v-0.4c0,0.067,0.533-0.333,1.6-1.2
-					c1.067-0.833,2.45-2.433,4.15-4.8l19.6-29.15h-21.45l-15.8,24.4c-0.867,1.2-1.967,2-3.3,2.4c-1.4,0.367-2.717,0.533-3.95,0.5
-					h-5.8V390.65 M556.95,330.8c0.2-0.233,0.517-0.35,0.95-0.35h2.55v-6.55h-7.6c-1.4,0-2.417,0.317-3.05,0.95
-					c-0.667,0.633-1,1.65-1,3.05v19.35c0,0.833,0.05,1.7,0.15,2.6c0.033,0.933,0.1,1.717,0.2,2.35c0.033,0.633,0.05,0.967,0.05,1
-					h-0.1c0-0.033-0.167-0.367-0.5-1c-0.367-0.633-0.817-1.417-1.35-2.35c-0.533-0.9-1.083-1.767-1.65-2.6l-16-23.35h-7v34.3
-					c0,0.433-0.117,0.75-0.35,0.95c-0.2,0.233-0.517,0.35-0.95,0.35h-2.55v6.6h7.6c1.4,0,2.417-0.317,3.05-0.95
-					c0.667-0.633,1-1.667,1-3.1V342.8c0-0.833-0.05-1.717-0.15-2.65c-0.067-0.9-0.133-1.667-0.2-2.3s-0.1-0.967-0.1-1h0.15
-					c0,0.033,0.167,0.367,0.5,1c0.367,0.667,0.817,1.45,1.35,2.35c0.533,0.9,1.083,1.767,1.65,2.6l16.05,23.3h6.95v-34.35
-					C556.6,331.35,556.717,331.033,556.95,330.8 M603.15,325.05c-1.267-0.633-2.617-1.117-4.05-1.45c-1.433-0.3-2.8-0.45-4.1-0.45
-					c-2.733,0.033-5.15,0.55-7.25,1.55c-2.1,1.033-3.767,2.45-5,4.25c-1.2,1.767-1.8,3.8-1.8,6.1c0.033,2.167,0.517,4,1.45,5.5
-					c0.967,1.533,2.183,2.817,3.65,3.85c1.533,1.067,3.133,1.983,4.8,2.75c1.7,0.8,3.3,1.55,4.8,2.25
-					c1.5,0.733,2.717,1.517,3.65,2.35c0.967,0.867,1.467,1.883,1.5,3.05c-0.033,1.1-0.333,2.017-0.9,2.75
-					c-0.533,0.733-1.267,1.3-2.2,1.7c-0.9,0.367-1.9,0.55-3,0.55c-1.467-0.033-2.817-0.3-4.05-0.8c-1.267-0.467-2.35-1.033-3.25-1.7
-					c-0.933-0.667-1.65-1.233-2.15-1.7c-0.5-0.5-0.75-0.767-0.75-0.8l-4.4,5.5l0.95,1c0.633,0.633,1.567,1.383,2.8,2.25
-					c1.233,0.833,2.75,1.583,4.55,2.25c1.8,0.633,3.867,0.983,6.2,1.05c2.967-0.067,5.5-0.65,7.6-1.75
-					c2.067-1.133,3.667-2.633,4.8-4.5c1.067-1.867,1.617-3.933,1.65-6.2c-0.033-2.3-0.533-4.233-1.5-5.8
-					c-0.933-1.533-2.15-2.817-3.65-3.85s-3.1-1.917-4.8-2.65c-1.667-0.767-3.267-1.483-4.8-2.15c-1.5-0.633-2.717-1.367-3.65-2.2
-					c-0.933-0.8-1.433-1.8-1.5-3c0.067-1.367,0.65-2.45,1.75-3.25c1.167-0.833,2.65-1.25,4.45-1.25c0.967,0,1.867,0.133,2.7,0.4
-					c0.867,0.267,1.567,0.633,2.1,1.1c0.533,0.533,0.8,1.117,0.8,1.75v1.9h7.05v-3.9c-0.033-1.533-0.467-2.817-1.3-3.85
-					C605.5,326.583,604.45,325.717,603.15,325.05 M705.55,337c-2-1.267-4.45-1.917-7.35-1.95c-3.067,0.033-5.733,0.717-8,2.05
-					c-2.3,1.333-4.1,3.183-5.4,5.55c-1.3,2.4-1.967,5.167-2,8.3c0.033,2.933,0.7,5.583,2,7.95c1.3,2.367,3.183,4.267,5.65,5.7
-					c2.4,1.433,5.283,2.183,8.65,2.25c1.9-0.033,3.6-0.283,5.1-0.75c1.5-0.433,2.767-0.95,3.8-1.55c1.067-0.6,1.883-1.133,2.45-1.6
-					c0.567-0.433,0.85-0.667,0.85-0.7l-3.15-5.25c0,0.033-0.367,0.333-1.1,0.9c-0.733,0.533-1.75,1.083-3.05,1.65
-					c-1.267,0.533-2.717,0.817-4.35,0.85c-1.533,0-2.95-0.3-4.25-0.9c-1.3-0.633-2.383-1.55-3.25-2.75
-					c-0.867-1.233-1.4-2.733-1.6-4.5h20.95c0-0.033,0-0.2,0-0.5c0.033-0.333,0.067-0.733,0.1-1.2c0.033-0.433,0.05-0.8,0.05-1.1
-					c0-2.7-0.517-5.133-1.55-7.3C709.067,339.983,707.55,338.267,705.55,337 M698.2,340.9c1.6,0,2.933,0.567,4,1.7
-					c1.067,1.1,1.65,2.567,1.75,4.4h-13.2c0.433-1.9,1.3-3.4,2.6-4.5C694.65,341.433,696.267,340.9,698.2,340.9 M640.6,345.45v-3.55
-					c0-1.3-0.383-2.383-1.15-3.25c-0.767-0.9-1.733-1.617-2.9-2.15c-1.133-0.533-2.317-0.9-3.55-1.1
-					c-1.233-0.233-2.367-0.35-3.4-0.35c-3.467,0.033-6.433,0.767-8.9,2.2c-2.5,1.467-4.4,3.383-5.7,5.75c-1.3,2.4-1.967,5.05-2,7.95
-					c0.033,2.967,0.717,5.65,2.05,8.05c1.333,2.367,3.233,4.267,5.7,5.7c2.433,1.367,5.317,2.083,8.65,2.15
-					c2.1-0.067,3.933-0.35,5.5-0.85c1.6-0.567,2.933-1.2,4-1.9c1.1-0.733,1.933-1.367,2.5-1.9c0.533-0.533,0.8-0.817,0.8-0.85
-					l-3.15-5.2l-0.65,0.65c-0.433,0.4-1.067,0.85-1.9,1.35c-0.8,0.567-1.75,1.05-2.85,1.45c-1.067,0.4-2.25,0.617-3.55,0.65
-					c-1.667,0-3.217-0.35-4.65-1.05c-1.4-0.7-2.55-1.75-3.45-3.15c-0.9-1.367-1.35-3.083-1.35-5.15c0-1.867,0.383-3.5,1.15-4.9
-					c0.767-1.433,1.817-2.55,3.15-3.35c1.367-0.8,2.917-1.217,4.65-1.25c0.633,0,1.283,0.083,1.95,0.25
-					c0.667,0.167,1.233,0.433,1.7,0.8c0.467,0.333,0.7,0.783,0.7,1.35v1.65H640.6 M655.1,327.85c0-1.367-0.333-2.367-1-3
-					c-0.633-0.633-1.65-0.95-3.05-0.95h-7.2v6.4h2.4c0.433,0,0.75,0.1,0.95,0.3c0.233,0.233,0.35,0.567,0.35,1v34.5h7.55v-13.9
-					c0-0.733,0.033-1.417,0.1-2.05c0.067-0.667,0.183-1.3,0.35-1.9c0.6-1.867,1.617-3.367,3.05-4.5c1.433-1.133,3.167-1.733,5.2-1.8
-					c1.867,0.033,3.133,0.617,3.8,1.75c0.7,1.1,1.033,2.583,1,4.45v13.9c0,1.433,0.317,2.467,0.95,3.1
-					c0.633,0.633,1.65,0.95,3.05,0.95h7.2v-6.35h-2.4c-0.433,0-0.75-0.117-0.95-0.35c-0.233-0.233-0.35-0.55-0.35-0.95V346.6
-					c-0.033-4-0.95-6.933-2.75-8.8c-1.833-1.833-4.433-2.75-7.8-2.75c-1.767,0.033-3.35,0.333-4.75,0.9
-					c-1.367,0.6-2.533,1.35-3.5,2.25c-0.967,0.933-1.7,1.883-2.2,2.85H655l0.05-0.7c0.033-0.467,0.05-1.083,0.05-1.85V327.85
-					 M719.85,466.5c0,0.1-0.95,0.833-2.85,2.2c-1.867,1.433-4.433,2.85-7.7,4.25c-3.267,1.367-6.967,2.1-11.1,2.2
-					c-3.967,0-7.617-0.783-10.95-2.35c-3.3-1.6-6.067-3.933-8.3-7c-2.167-3.1-3.517-6.933-4.05-11.5h53.45
-					c0-0.033,0.033-0.483,0.1-1.35c0.1-0.833,0.167-1.817,0.2-2.95c0.1-1.067,0.15-2,0.15-2.8c0-6.933-1.333-13.167-4-18.7
-					c-2.6-5.5-6.45-9.883-11.55-13.15c-5.1-3.2-11.367-4.85-18.8-4.95c-7.8,0.033-14.617,1.767-20.45,5.2
-					c-5.9,3.467-10.5,8.217-13.8,14.25c-3.333,6.067-5.017,13.1-5.05,21.1c0.033,7.467,1.733,14.25,5.1,20.35
-					c3.333,6.1,8.117,10.967,14.35,14.6c6.167,3.667,13.55,5.55,22.15,5.65c4.867-0.033,9.2-0.65,13-1.85
-					c3.867-1.133,7.133-2.467,9.8-4c2.733-1.533,4.817-2.867,6.25-4c1.367-1.133,2.083-1.75,2.15-1.85L719.85,466.5 M682.1,429.45
-					c3.3-2.7,7.417-4.083,12.35-4.15c4.067,0.067,7.467,1.533,10.2,4.4c2.7,2.8,4.183,6.55,4.45,11.25h-33.6
-					C676.567,436.05,678.767,432.217,682.1,429.45 M766.05,421.65c0-3.267-0.867-5.667-2.6-7.2c-1.733-1.467-4.3-2.2-7.7-2.2H738.1
-					v16.4h6.05c1.1,0,1.917,0.267,2.45,0.8c0.6,0.533,0.9,1.383,0.9,2.55v57.7h19.15V459c0-2.3,0.15-4.483,0.45-6.55
-					c0.3-2.133,0.7-4.167,1.2-6.1c1.233-3.8,2.983-6.917,5.25-9.35c2.233-2.367,4.75-4.117,7.55-5.25c2.8-1.1,5.583-1.65,8.35-1.65
-					c1.367,0,2.5,0.05,3.4,0.15c0.833,0.1,1.283,0.15,1.35,0.15v-18.95c-0.067,0-0.45-0.05-1.15-0.15
-					c-0.733-0.1-1.517-0.15-2.35-0.15c-4,0.033-7.633,0.917-10.9,2.65c-3.267,1.767-6.083,4.133-8.45,7.1
-					c-2.333,3.033-4.1,6.4-5.3,10.1h-0.3l0.15-1.3c0.067-0.867,0.117-2.033,0.15-3.5V421.65 M751,335.95
-					c-1.367,0.6-2.567,1.35-3.6,2.25c-1,0.967-1.767,2-2.3,3.1H745c-0.667-2.067-1.733-3.617-3.2-4.65c-1.5-1.067-3.4-1.6-5.7-1.6
-					c-1.567,0.033-3.017,0.367-4.35,1c-1.3,0.6-2.417,1.4-3.35,2.4c-0.9,0.933-1.6,1.9-2.1,2.9h-0.1v-0.4
-					c0.033-0.267,0.05-0.567,0.05-0.9v-0.85c0-1.1-0.333-1.933-1-2.5c-0.667-0.6-1.667-0.9-3-0.9h-6.95v6.4h2.4
-					c0.4,0,0.717,0.1,0.95,0.3c0.233,0.233,0.35,0.567,0.35,1v22.6h7.5v-13.35c0-0.667,0.033-1.3,0.1-1.9
-					c0.1-0.667,0.217-1.3,0.35-1.9c0.333-1.3,0.817-2.467,1.45-3.5c0.667-1.067,1.5-1.9,2.5-2.5c0.967-0.633,2.1-0.967,3.4-1
-					c1.167,0.033,2.05,0.317,2.65,0.85c0.6,0.533,0.983,1.267,1.15,2.2c0.2,0.933,0.3,1.95,0.3,3.05v18.05h7.55v-13.35
-					c0-0.667,0.033-1.333,0.1-2c0.067-0.633,0.183-1.25,0.35-1.85c0.3-1.267,0.767-2.433,1.4-3.5c0.667-1.033,1.5-1.85,2.5-2.45
-					c0.967-0.633,2.083-0.967,3.35-1c1.7,0.067,2.833,0.65,3.4,1.75c0.533,1.133,0.783,2.583,0.75,4.35v14
-					c0,1.433,0.317,2.467,0.95,3.1c0.667,0.633,1.7,0.95,3.1,0.95H769v-6.35h-2.35c-0.4,0-0.717-0.117-0.95-0.35
-					c-0.233-0.233-0.35-0.55-0.35-0.95V346.6c0-3.967-0.867-6.883-2.6-8.75c-1.7-1.867-4.133-2.8-7.3-2.8
-					C753.817,335.083,752.333,335.383,751,335.95 M802.3,359.75h-2.4c-0.433,0-0.75-0.117-0.95-0.35
-					c-0.233-0.233-0.35-0.55-0.35-0.95v-11.3c0-2.3-0.383-4.35-1.15-6.15c-0.8-1.8-2.15-3.233-4.05-4.3
-					c-1.933-1.067-4.567-1.617-7.9-1.65c-0.833,0-1.85,0.067-3.05,0.2c-1.233,0.133-2.467,0.4-3.7,0.8
-					c-1.233,0.433-2.25,1.067-3.05,1.9c-0.833,0.833-1.283,1.95-1.35,3.35v3.2h7.05v-1.55c0.033-0.567,0.283-1,0.75-1.3
-					c0.467-0.3,1.017-0.5,1.65-0.6c0.6-0.1,1.15-0.15,1.65-0.15c1.933-0.033,3.35,0.417,4.25,1.35c0.9,0.9,1.35,2.433,1.35,4.6v0.25
-					h-0.95c-1.033,0-2.3,0.033-3.8,0.1c-1.5,0.133-3.05,0.383-4.65,0.75c-1.667,0.367-3.217,0.933-4.65,1.7
-					c-1.433,0.733-2.617,1.733-3.55,3c-0.867,1.233-1.333,2.8-1.4,4.7c0.033,2.033,0.533,3.75,1.5,5.15s2.233,2.467,3.8,3.2
-					c1.567,0.767,3.25,1.15,5.05,1.15c1.7-0.067,3.15-0.35,4.35-0.85c1.167-0.533,2.1-1.15,2.8-1.85c0.733-0.7,1.25-1.317,1.55-1.85
-					c0.333-0.533,0.483-0.8,0.45-0.8h0.15l-0.05,0.35c0,0.233-0.017,0.533-0.05,0.9c0,0.933,0.3,1.717,0.9,2.35s1.6,0.967,3,1h6.8
-					V359.75 M780.75,354.5c0.633-0.633,1.483-1.117,2.55-1.45c1.033-0.333,2.133-0.55,3.3-0.65c1.167-0.1,2.25-0.15,3.25-0.15h1.3
-					v0.7c0,1.267-0.3,2.5-0.9,3.7c-0.567,1.233-1.367,2.25-2.4,3.05c-1.033,0.8-2.233,1.217-3.6,1.25
-					c-1.533-0.067-2.683-0.467-3.45-1.2c-0.733-0.767-1.1-1.683-1.1-2.75C779.7,355.967,780.05,355.133,780.75,354.5z"/>
-				<path style="fill:#DEDEDE;" d="M191.7,500.6h12.35l9.45-23.7L191.7,500.6 M301.4,345.3c-0.033,0.067-0.067,0.133-0.1,0.2
-					c-2.433,6.067-4.633,12.45-6.6,19.15c-0.4,1.267-0.85,2.633-1.35,4.1l-0.15,0.15c-0.767,2.667-1.55,5.467-2.35,8.4
-					c0.2,0,0.4,0.05,0.6,0.15c0.767,0.2,1.45,0.35,2.05,0.45l0.15,0.15c11.5,3.833,16.85,7.717,16.05,11.65v0.1
-					c-0.2,4.133-6.083,6.75-17.65,7.85c-1.7,0.367-3.617,0.55-5.75,0.55v0.15c-0.4,1.5-0.75,3.083-1.05,4.75
-					c-0.1,0.467-0.2,1-0.3,1.6c-2.733,15.633-4.45,31.5-5.15,47.6c1.367,1.867,2.833,3.183,4.4,3.95h0.15c1.4,0.7,2.933,1,4.6,0.9
-					h0.15c2.433,0.2,4.633-0.633,6.6-2.5v-0.15c2.067-2.467,3.733-5.8,5-10h-0.15c0.9-4.033,0.717-7.233-0.55-9.6
-					c-1.5-2.533-3.083-4-4.75-4.4c-1.567-0.2-3.283,0.633-5.15,2.5c-0.967,1.067-1.45,2.933-1.45,5.6c0,1.467,0.15,2.933,0.45,4.4
-					c0.1,0.4,0,0.8-0.3,1.2c-0.2,0.3-0.5,0.5-0.9,0.6c-0.4,0.1-0.75,0-1.05-0.3c-0.367-0.2-0.6-0.5-0.7-0.9
-					c-0.3-1.667-0.45-3.333-0.45-5c0-3.633,0.783-6.183,2.35-7.65c2.733-2.867,5.333-4,7.8-3.4c2.367,0.3,4.583,2.267,6.65,5.9
-					c1.767,2.733,2.1,6.617,1,11.65v0.1c-1.367,4.833-3.233,8.617-5.6,11.35h-0.15c-2.533,2.567-5.417,3.75-8.65,3.55h-0.15
-					c-2.167,0.1-4.133-0.3-5.9-1.2c-1.2-0.467-2.333-1.25-3.4-2.35c-0.1,3.167-0.15,6.317-0.15,9.45h11.8c0.4,0,0.733,0.15,1,0.45
-					c0.3,0.2,0.45,0.483,0.45,0.85c0,0.4-0.1,0.75-0.3,1.05l-9.85,12.8l4.95,6l40.55-70.2c2.267-3.933,3.35-8.117,3.25-12.55
-					c0.1-4.6-0.933-8.767-3.1-12.5L301.4,345.3 M231.9,318.95c0.833-3.733,1.75-7.383,2.75-10.95l-51.5-0.1
-					c-4.533,0.1-8.717,1.183-12.55,3.25c-3.933,2.167-6.967,5.2-9.1,9.1l-41.15,71.35c-2.433,3.833-3.6,8-3.5,12.5
-					c-0.1,4.433,1.067,8.617,3.5,12.55l41,71.3c2.233,3.833,5.217,6.917,8.95,9.25c1.233,0.733,2.5,1.35,3.8,1.85l-19.1-54.7
-					c-0.1-0.1-0.15-0.2-0.15-0.3l-4.55-13.55c-0.2-0.4-0.2-0.75,0-1.05c2.067-4.7,5.85-6.167,11.35-4.4c0.2,0,0.383,0.1,0.55,0.3
-					c0.2,0.2,0.35,0.383,0.45,0.55l4.3,13.15c0,0.1,0.05,0.2,0.15,0.3L188,500.2l25.95-28.45l-4.6-8.85
-					c-0.167-0.4-0.167-0.75,0-1.05c0-0.367,0.2-0.65,0.6-0.85c0.2-0.2,0.5-0.3,0.9-0.3l10.6,1.15c-0.6-6.867-1.033-13.683-1.3-20.45
-					h-0.45c-0.1,0-0.2,0-0.3,0c-0.1-0.1-0.2-0.15-0.3-0.15c-0.1,0-0.2,0-0.3,0c-0.7-0.2-1.333-0.3-1.9-0.3c-0.2,0-0.35,0-0.45,0
-					c-3.733-0.1-6.633,1.033-8.7,3.4v0.15c-0.8,0.967-1.533,2.183-2.2,3.65c-0.3,1-0.9,2.433-1.8,4.3
-					c-1.767,3.733-3.817,6.333-6.15,7.8h-0.15c-1.867,0.8-3.633,1.25-5.3,1.35c-3.367,0.267-6.117-0.867-8.25-3.4
-					c-2.267-2.667-3.95-6.3-5.05-10.9c-1.267-5.133-1.117-9.067,0.45-11.8c1.867-3.733,3.933-5.8,6.2-6.2
-					c2.267-0.567,4.667,0.517,7.2,3.25l0.15,0.15c1.5,1.167,2.25,3.567,2.25,7.2c0,1.767-0.25,3.5-0.75,5.2
-					c-0.2,0.367-0.45,0.65-0.75,0.85c-0.4,0.2-0.783,0.25-1.15,0.15c-0.4-0.2-0.7-0.45-0.9-0.75c-0.2-0.367-0.2-0.75,0-1.15
-					c0.4-1.367,0.6-2.8,0.6-4.3c0-2.533-0.45-4.25-1.35-5.15l-0.15-0.15c-1.667-1.867-3.133-2.65-4.4-2.35
-					c-1.467,0.4-2.9,1.917-4.3,4.55c-1.167,2.267-1.267,5.517-0.3,9.75c1,4.133,2.483,7.367,4.45,9.7
-					c1.467,1.767,3.383,2.567,5.75,2.4H192c1.267-0.1,2.633-0.4,4.1-0.9c0-0.1,0.05-0.15,0.15-0.15
-					c1.867-1.167,3.483-3.283,4.85-6.35c0.9-1.867,1.5-3.283,1.8-4.25v-0.15c0.767-1.667,1.6-3.1,2.5-4.3h0.15
-					c2.533-3.133,6.167-4.65,10.9-4.55c0.1,0,0.25,0,0.45,0c0.667,0,1.45,0.1,2.35,0.3c0.2,0,0.45,0.05,0.75,0.15
-					c-0.1-1.867-0.15-3.683-0.15-5.45c-1.867-0.7-3.5-2.033-4.9-4c-2.133-2.833-3.117-6.117-2.95-9.85c0-0.7,0.05-1.333,0.15-1.9
-					l-4.4-1.5l1.9-5.6l4.45,1.5c0.467-0.9,1.1-1.733,1.9-2.5c1.167-1.6,2.5-2.683,4-3.25c0.1-1.1,0.15-2.133,0.15-3.1
-					c0.167-3.633,0.4-7.217,0.7-10.75c-1.267-0.3-2.383-0.55-3.35-0.75l-0.9-0.3c-0.9-0.2-1.683-0.4-2.35-0.6
-					c-11.5-3.433-16.9-7.267-16.2-11.5c0.167-4,6.15-6.75,17.95-8.25h0.15c1.667,0,3.283-0.133,4.85-0.4c0.1-0.1,0.2-0.15,0.3-0.15
-					h0.3c0.3,0,0.65,0,1.05,0c0.2-2.067,0.433-4.083,0.7-6.05c0.4-2.767,0.8-5.517,1.2-8.25c1.467-9.633,3.233-19.017,5.3-28.15
-					c0-0.2,0.05-0.35,0.15-0.45l2.05-8.25H231.9 M170.75,360.5l-8.55,0.15l7.4-6.2l-2.95-14l10.75,8.25l10.3-8.65l-5,11.9l10.6,7.8
-					L179,360.2l-5.45,12.4L170.75,360.5 M138.5,391.3l-2.05-6.05l4.85,3.7l6.5-5.3l-2.1,8.25l7.4,5.15h-8.7l-1.6,5.45l-1.95-5.45
-					h-10L138.5,391.3 M184.9,397.2l-3.95,7.35l6.15,5.15h-8.95l-6.05,11.05V409.7h-9.9l9.9-5.45v-7.2l5.15,4.55L184.9,397.2z"/>
-				<path style="fill:#FFFFFF;" d="M164.45,440.95c-1.5-0.7-2.733-0.85-3.7-0.45l21.65,60.1c0.2,0,0.4,0,0.6,0h2.05L164.45,440.95
-					 M260.35,472.05c0.3,0.1,0.55,0.3,0.75,0.6c0.2,0.167,0.3,0.45,0.3,0.85c-0.3,7.167-0.4,14.2-0.3,21.1
-					c0,0.267-0.05,0.55-0.15,0.85c-0.2,0.2-0.45,0.4-0.75,0.6c-0.3,0.1-0.6,0.1-0.9,0l-15.15-3.4v7.95h20.9
-					c4.633,0,8.85-1.133,12.65-3.4c3.233-1.9,5.95-4.35,8.15-7.35l-6.35-7.65c-0.2-0.3-0.3-0.65-0.3-1.05c0-0.267,0.1-0.55,0.3-0.85
-					l8.85-11.35h-10.3c-0.4,0-0.75-0.15-1.05-0.45s-0.45-0.65-0.45-1.05c0-4.8,0.1-9.6,0.3-14.4c-0.3-0.4-0.55-0.85-0.75-1.35h-0.15
-					c-0.867-1.867-1.45-3.233-1.75-4.1c-0.1,0-0.15-0.05-0.15-0.15c-0.867-1.4-1.7-2.633-2.5-3.7c-5.1-4.7-14.383-3.467-27.85,3.7
-					v29.75l15.75-5.15C259.75,471.85,260.05,471.85,260.35,472.05 M180.95,404.55l3.95-7.35l-7.65,4.4l-5.15-4.55v7.2l-9.9,5.45h9.9
-					v11.05l6.05-11.05h8.95L180.95,404.55 M136.45,385.25l2.05,6.05l-7.65,5.75h10l1.95,5.45l1.6-5.45h8.7l-7.4-5.15l2.1-8.25
-					l-6.5,5.3L136.45,385.25 M162.2,360.65l8.55-0.15l2.8,12.1l5.45-12.4l14.3-0.45l-10.6-7.8l5-11.9l-10.3,8.65l-10.75-8.25
-					l2.95,14L162.2,360.65 M227.95,474.25h-0.6v19.9l14.3-4.45c0.1-0.1,0.2-0.15,0.3-0.15c0.267-0.267,0.6-0.35,1-0.25l15.2,3.5
-					c-0.1-5.7,0-11.483,0.3-17.35l-14.9,5c-0.3,0.1-0.6,0.1-0.9,0c-0.367,0-0.7-0.05-1-0.15L227.95,474.25 M160,427.55
-					c-3.133-0.8-5.383,0.083-6.75,2.65l3.4,9.85c0.767-1.067,1.733-1.85,2.9-2.35h0.15c1-0.5,2.183-0.6,3.55-0.3L160,427.55
-					 M230.3,410.9c-1.667-2.067-3.683-3.1-6.05-3.1c-1.567,0-3.033,0.533-4.4,1.6c-0.6,0.4-1.15,0.95-1.65,1.65
-					c-1.167,1.267-1.95,2.683-2.35,4.25c-0.1,0-0.15,0.05-0.15,0.15c-0.5,1.2-0.75,2.433-0.75,3.7v0.15
-					c-0.167,3.033,0.633,5.683,2.4,7.95c0.667,0.967,1.5,1.75,2.5,2.35c0.967,0.6,2.033,0.9,3.2,0.9c2.467,0,4.683-1.083,6.65-3.25
-					h-0.15c1.867-2.367,2.9-5.067,3.1-8.1C232.75,415.917,231.967,413.167,230.3,410.9 M234.55,447.45c0.4,0.2,0.8,0.25,1.2,0.15
-					c0.3-0.2,0.6-0.45,0.9-0.75c0.167-0.4,0.217-0.75,0.15-1.05c-0.2-0.4-0.45-0.683-0.75-0.85c-2.367-1.4-4.583-2.533-6.65-3.4
-					h0.15c-1.467-0.7-2.833-1.25-4.1-1.65h0.15c-0.533-0.233-0.983-0.367-1.35-0.4c-0.6-0.3-1.183-0.5-1.75-0.6l0.15,0.15
-					c-0.4-0.1-0.8-0.2-1.2-0.3c-0.5-0.2-0.9-0.3-1.2-0.3h-0.1l0.1,2.95c0.1,0,0.2,0.05,0.3,0.15h0.15c0.4,0.1,0.8,0.2,1.2,0.3
-					c0.4,0.1,0.833,0.25,1.3,0.45h0.15c0.3,0.067,0.7,0.2,1.2,0.4c1.067,0.3,2.3,0.8,3.7,1.5
-					C230.283,445.067,232.383,446.15,234.55,447.45 M234,399.7c0.167,0.6,0.5,0.983,1,1.15c0.4,0.1,0.85,0.017,1.35-0.25
-					c0.367-0.5,0.6-0.9,0.7-1.2c0.3-0.6,0.25-1.083-0.15-1.45c-1.867-3.367-4.217-5.15-7.05-5.35c-0.2,0-0.35,0-0.45,0h-0.15
-					c-1.767,0-3.733,0.5-5.9,1.5c-0.367,0.2-0.6,0.5-0.7,0.9c-0.2,0.567-0.2,1.1,0,1.6c0.2,0.4,0.583,0.7,1.15,0.9
-					c0.4,0.1,0.9,0.05,1.5-0.15c1.367-0.8,2.683-1.2,3.95-1.2h0.3C231.017,396.45,232.5,397.633,234,399.7 M284.8,391
-					c-0.6-0.2-1.183-0.4-1.75-0.6c-9.867-1.917-19.733-3.833-29.6-5.75c-0.3,0-0.55,0-0.75,0c-0.1,0-0.2,0-0.3,0h-0.15
-					c-0.4,0-0.8-0.05-1.2-0.15c-0.567,0-1.15,0-1.75,0l-8.7,45.25v0.3l-3.4,15.9c1.6,0.1,2.933-0.1,4-0.6
-					c15.7-8.733,26.55-9.9,32.55-3.5c0.1,0,0.15,0.05,0.15,0.15c0.9,1.167,1.833,2.533,2.8,4.1v0.15c0.1,0.3,0.25,0.6,0.45,0.9
-					c0.767-14.433,2.383-28.733,4.85-42.9c0.1-0.567,0.2-1.1,0.3-1.6c0.3-1.667,0.65-3.233,1.05-4.7c0-0.4,0.05-0.75,0.15-1.05
-					c0-0.2,0-0.35,0-0.45C283.867,394.583,284.3,392.767,284.8,391 M254.4,397.15c0.133-0.4,0.383-0.683,0.75-0.85
-					c5.467-2.633,9.9-1.75,13.3,2.65c0.233,0.3,0.333,0.667,0.3,1.1c-0.067,0.4-0.25,0.733-0.55,1c-0.333,0.233-0.7,0.333-1.1,0.3
-					c-0.433-0.067-0.767-0.25-1-0.55c-2.5-3.1-5.717-3.7-9.65-1.8c-0.367,0.2-0.75,0.233-1.15,0.1c-0.4-0.167-0.683-0.433-0.85-0.8
-					C254.25,397.933,254.233,397.55,254.4,397.15 M260.1,410.95c-0.533,4.933-2.8,10.9-6.8,17.9h8.8c0.4,0,0.75,0.15,1.05,0.45
-					s0.45,0.65,0.45,1.05c0,0.4-0.15,0.75-0.45,1.05s-0.65,0.45-1.05,0.45h-11.45c-0.367,0-0.683-0.117-0.95-0.35
-					c-0.3-0.233-0.467-0.533-0.5-0.9c-0.067-0.367,0-0.7,0.2-1c4.533-7.567,7.1-13.9,7.7-19c0.067-0.433,0.267-0.767,0.6-1
-					c0.3-0.267,0.667-0.383,1.1-0.35c0.4,0.067,0.733,0.267,1,0.6C260.033,410.15,260.133,410.517,260.1,410.95 M254.15,370.8
-					c0.3,0,0.65,0,1.05,0c11.6,1.2,21.917,2.967,30.95,5.3c0.1,0,0.2,0,0.3,0c0.05,0,0.1,0,0.15,0c0.467,0.1,0.95,0.2,1.45,0.3
-					c0.7-2.633,1.433-5.183,2.2-7.65c-1.867-1.167-3.583-2.25-5.15-3.25c-2.167-1.167-4.333-2.283-6.5-3.35
-					c-3.533-1.7-7.117-3.033-10.75-4c-12.667-3.733-26.167-3.983-40.5-0.75c-0.4,2.367-0.75,4.733-1.05,7.1
-					c-0.3,1.867-0.533,3.733-0.7,5.6c1.567-0.1,3.183-0.15,4.85-0.15C238.35,370.233,246.25,370.517,254.15,370.8 M302.05,298.9
-					h-0.15c-3.733-2.233-7.517-4.1-11.35-5.6h-0.15c-3.033,6.933-5.883,13.95-8.55,21.05c-5.067,13.433-9.433,27.1-13.1,41
-					c3.733,0.967,7.367,2.3,10.9,4c3.267-11.033,6.933-21.933,11-32.7C294.15,317.317,297.95,308.067,302.05,298.9z"/>
-			</g>
-			<g>
-				<path id="Layer0_0_1_STROKES" style="fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;" d="M178.7,500.25
-					c1,0.167,2.05,0.283,3.15,0.35"/>
-			</g>
-		</g>
-	</g>
-</switch>
-<i:pgf  id="adobe_illustrator_pgf">
-	<![CDATA[
-	eJzcvWdbIznTMHo+39fFf7AZZggGu3OAIZo45BwGBgx4wAPYjG12730+nN9+VFIHqaQODvOcfd/d
-a1norlYolSqX9Ll4cDyz/Ni6r8+YZa0w8p/Pn6vteq3bas8W6OPC1uvrR6fbhkcTR5MF3S1rALW8
-5d0GkGf1dqfRas4WdL+ss7fr8P3E38+Nbn2yMDEJj04a3dc6efjaemrdHp9t6OXOX0+TUYekgdVa
-lwD4Fd2sGJpuF3R91nQLB7sUptb8q9bpNP6HQOiO6ZnwcKX10XxsNJ9WWv+dLRgFXSu4plUwDBde
-bjaO6h0Jouz55B/T8x3LsywCb5YN8sBzXd/wHZ987JR939B9zzY90hG0tNp6+HirN7sH7dZDvdOp
-tl5b7c5sofpPrVnYrT2RN7XCZf31tfV3YeW19vBCvlnesm/XG691goe3WregmxQty1u6cbvy0Xh9
-3Pt4u68TFBk+fWze0kZPO6Q10jD8Tp+7t1tv5NFxvdslkyB9UuQebazwQyFP6b8T34/qTw26VASZ
-N5Nhy+3W+1ut/dJhcK6tFQxTC16e1N/eXwnaKX5M1yoD1uEn93sISqZDwWZ0o2wDFn3LIGizLfLE
-Ex8VXMcoO5qmmY5j6JpvFSxdfBA0GqO2/lej/vdsYa/VrAf4W253j9l6W5amsZ/Bq6OP13r7tNno
-kkkZ9JnPMLjbeqy/ki/iJtZfa0+dEEV6/DOAOKm1n+pdQimt148uJWIv6oUs0k7tnzqsNWtQd29X
-CIqbpK9ml4z6tvHz9i9G/LdP3VndDeD82/33evOkdUanNGOYfsGxfNKvbpgEqRpBme6x1fAIjvVo
-dHr8M+xw+bVbbzfJEoWdDr2HtebjbbCF649CLzbtBfoI8UB31gEhyf12gyBiluyYGcMzAmLdaDce
-Y1p1jYLHftDuywSx8I+u+4ZGNlveJ5SsfNfRbU+3jDxPAgyRle+SqUSLZ9xWd7mdpJV3j2E2ZPrV
-1hsQYYfyFFhgsr0Imwrexn/Qd6SJj/cAPYwaCM0etBtNaHjkP3vsnXd78PpBXm60Wx/vW82frZH/
-TDB+elZ/IDyTEPZjYf/+F/mDMEi6ywsn7doDaYP8HcGUa433yYwGyTzb9QJ7S76lf4b/z/P9av0n
-4VJxA+zpWvOv+mvrnWuYweVp8eC11qy1C/RF1OBO4y/ypkbwFDcJgPXuRa42Cf29E7TQVigMaj8F
-gHuVp6udRlNqgj6rtbt/t9ovsGCP9VrM3/M0evxS7z4842aDp4M0fFDrPhO5U28+diJcsD9jPAPu
-2bM8LVZrr6+Np3bt/bnxUFhpf3SeCyet1mvUuuJ91BP/jr6CL3NOAxjdfpPNR+41AMAdEhbPvvkX
-9xZ9peqJvPw/qZcQMWuPDcKiErZiKszx3zVC8zuN+1zEePzP233rtdF5i1rnnxyQndN4eK0f/9Pp
-1nPxpuMHOjgVjsRXEZ6Cxz1h6U/3Asv2s9F8JO0cfzAlO9ibrbd30HkLx8+19zrFUAh5HDdpU6HP
-ya2ZmUyJ5rN3oJV1/3mtE2FZ2W62/m7SvwqzZFDfiYSofbx2byYLlb3aW70wTWCOG0TDrEdAWmEf
-fsTqiF64qMGTI/KjTJRTIvc9zTMt39FA/Duu73iGbRtEsBONnT7RDNDPLdNzLAue+JruWJrh275n
-mE6o61wsQ7PRX//AX9/Ib7/Is7/BVtgtfL/RCo8j5CXpnI7kkQyYiai5kf8UKmQ+8AudPEEYN/Vs
-HB7UXomuUWeTPbgf9uywsk+xefE/sArYCjh4IP+txGOORtbbgu+QRoVFlhHDQPqkL11jL9n2hqb+
-n/A5aQw/TeohGHRoVxCTklDX59tK+ABoEP5sPAB6au1/ggcXuzt7xHZIeD1XmPjv22uTAMyQXdpu
-3H9060TaTlPg5Xa79r/azJB64eAenolN2q43AyijUNkiqIpew4/uP8BO6OuJL83O7V+1dmeObPRj
-0kPzSYT9q/b6EQHDi04CYJNwiQAuGE1H/PP/eFTdN6j/Qc+DKYJSYlzsUZzkQBcPPv2vmGyTWJB5
-JvraenipP+aaZAg6TKIYHBF6OiLyrXWjdv9az7Uz8qzu/++LD0zh4aPTbb39Qbbwr5hlb6xv9q/8
-swTYnij9j5LobKcGuhvIUMJo8lPq/8a+IQP6t43n/66t3Pn5979fvP8btknntfHwfw8bd01dDIhU
-juq115Tp/9147D7nWv8A8l/Bxw3dKWu+YWiWY+nECsuc5nO98fSci+VEoP+OiWbO7L/5Nu+/ZD5S
-BC9rev/kmt4//5bpFSorrVbafO5bXaJi7dR/dlkIJtf05I/+NVoGZZ/HrY/2Q50Ga/8dagaRfv+K
-cbzVu7VHon8NYTD+wIP59Bg4UXLRHActi3W8sWhMmu3lg1aj2T2qv560jhix0tFNHLQ6DfiEvtZj
-BLPtf7B8FAowG9xjuVsywsktt7v3rVr7sQCm+mmz8UAmFE6Ss7G1AIurjc77a+2f3RpEbVjHnu4W
-PM11uM5ZhzRaLWy8aJtvdcJ+A7fanmpFQxiKQTQQCO8vt+u1ZRreCmfzfbf+2Ph4K8SB7Rt5Wstb
-ul6IHGM0rlkIgqb1duGgXe/UuwVuQLqthfhe3vILu/XOc+Go1unW243/od5GrrvgE1MTPtn/6L5/
-dLM+CqemGt9Orfn0AcHSg9Y7RBPCDxg6oY/32jsZfafx9vFa4xq1DcvwooZ9CLmx9X6AvIGCUbiP
-Kd3g4LrtWrPzXiP76OGfwlO78ViAJJQA0LFt005uVC+0I99FJuhTux7t1UxgbrCZE4vHkAnKj0FP
-BAwBIA0nAgrXiSXqHMc40uPFIctJqar9V71wUv9vlwaIaveN10Y3JOsJlkPEcZiX5a31j9fXsP0g
-U4G8DUnMcB03GAYX6IVchNsj0MQ2uElpaYArMVL5BVDCHsVIjShcCbj/XnuIp2fZqcDrtYf6cvPp
-tZ4JDrJcgvYShwI5HASbhGt1a82H8ANP940CUaJ0iWXh74+7tYhlRuua47OH2ivmnBgG0nhCVHpa
-mSWAaIZup6Nq7b/dWLbk/BCQJnxn2Z5rJYxr/bXVavO0k0ZoFJijn0zYPPRDAUX6MRxDTxowzI4f
-r+35np4Ci8g9BTLPYKlyKYw1Y14/f3bqES0lLlm1/vpaJXphCGkmtgqQHNsxkoe6Cak1reYmb6cZ
-CdM/4dwiREUJqIxjT8dnGzTFbqX1X6HBCaKIpEKfc+YwJ8B0p/AzksG1ZrdRqL02ah0FoMYBtj66
-r5Ch0um2Wy/1vNBdwoND7QxrZG6Ikcf3Rhm3R4YU9mE6IZrfa4+PGPCt1nmJ+EXwrPPeivZf0AcR
-KyE7B3Vnq7D80W1FakJdMR29EKqXhZdm6+GFTIlIr5ZKJeBhG0TVqHXrRH7WaVwmXKwZxw8Wq2Dr
-Ruq6XVyGH4XrW0hYaGC6/AdaYcbWtEymSTTWGvxBt8lZrdnoPJMmedabKsVoTtVZo9NgchU4t8Dv
-XT8Hv49bOmm9813nFxlxEyvU+hRacVxDYNik2ZwtKhHi+rZeZkmAvucbZsEzdVkPV7EsOkBgHYJc
-SERwrMlvNR/r/z2uP7Sajz1+tN5odyJEWGaECF1zvXwDj1Gbe+SUmFJII+m7CEeDUlTUUN8EFbUg
-05Pr6tH6u56Vk56gQSU56Ql88z1UXlt/1dvvkHjQyfji4bXxTpRmCKP8lyjiT4TDRp9onJ3Df9Om
-bG/mL5oDWrivvXIa2xxM6qHVfqw/Kvh2obLX6orvQwVghzQampFbqyqDTjcKhPFutGuPDeCUteZj
-YOGl2nTsK5odCSlm8BXV7KWvxL70wtrBce+dsc9y9JYXLZXY71X51bov00Wtvb6GBk8HbQ8M33lp
-vN+TBXrJgGvXIU+8DiNoZ4ASWfgab7AJ2WzHH4RjJYbqE2d0pc5PcvpIgMTG5huci+w3yI761rqH
-RLQCYDknxpOme9/ovtVgY0k+ALbqPPz709tLmYju+mPr588yc2qGGmwiPK19kOBVCBKb/+jUic25
-An+GVCBkuKWsCixhnWKD954oeux0X8uPrEm6MhFxZCw7fBd8wDnd8nz0/vhGXr8284/r/TF/8yz+
-H3+iWvT393YAl7YUBCgYQLjAuqFcYgLIB5ZcPxFMiMt4ZYsKXduFIJDtJ33UgMz88iuRFH192G2F
-CqmjmWJFTOp3bW6ortfLlwKVQ84+YZaPhft/CqttIvfa6WsIzTQFZ6fc1QNGeTKUgPGUxlq8LZjS
-HIaTyIaCUY9dBpN9rHcaT03eP2ikccz7IDKR2iaFbP1sSB4PNRPuMM6Xn883ZS+0MPfXdhn2dgYI
-UVgJGXTBCEubEIBGWs49VLWF1GgowduPZWJVQymcwpGLIX8Srei51f6f0KmQAPYeOOpTCYN2/FRO
-J8YAKMyu0bVEsA54rKLWMgH/yphp5+H99eGfFEbHgB6anVSyJkBdontH9mryLMmSvdbec6AjAEyb
-AJWH9Sakt6QydADrQP5vPlqm8EwCcJslz0dkF3ShijQcTNmwE8U+kR7g40CMKkXmZwE9tFvvWTCg
-NTWIYpQF1+ZStDP7BZf7fa3dSVtSUXXhxFUO6C4/ryxgXjDl0Lm4keSA5qRlNjA/EtXO+tnslh9f
-MzgiA3pv/2w1U9khwHU+7qNdaqpWq0Om+1f9NWVMBOS+ASpy2qJ3ys36U42L5iVAgVlJ9OZOBg0B
-IJFLzYzWXnVorxb7WdXE0Cl3nmvEiKmnYQug6l2waJtkfDE+lO0hMFclDf77XhbtYFNT9UvA2pIl
-QQ1PFeiTyuhQAQYik/OWqtY2BmRO2AxQIgLTewXfL3X9CmxfBdl6f0jjOBSik7b8FOLxI0UTIhCd
-j3dKbrSoP9qo+SLNqKkMTYaYsp0ccoeC/fxoPqQRGAMKfCsRkWUIG/pRrdmM/NRqO5mCZZoyD2+8
-WjZxWj4uF87r94Vqi1j5j4XriePz/YPrycJfRoZR+UYUR169VK0TAQKrUHBlqYBCT9bD2z9prgsO
-stV9rgs++sgZsBzC8+4A3v9ux0H8g8Z/668H9fbP+gMe4fHZxjphVDutB14scm/X3u7rjywmgL1u
-UtyxWZMCARLMc+vvzcajFFwgPdFSOjDdO++1B7yRg3EeE2nAisllF6BfaLZiH2Gh0aQuQNBmMxI0
-uMwM6ldLy8YQY0YQM4Fg0bLIMXi/JG2xCg7JauCQPBIdkhh2PwgTHQtBpTgvIHDH7WNnqGtjELZq
-FVbWXlgRWLkYqaENBv2eCAw3AUgaHIJLmbCIQQBWoVBLQgs3PH7GFCZtwjqClfCXTRxsaqm5Ohw5
-w0BZpa/iJUTatuttxX4DKufCn/wGuYi2F9/UwdNPBWx4xAhiM+TN6knoiDa4Xd4kDFAg4PANLTHk
-BmTGr8j8HxqiIhSu2XHtr/rux2u3QQhgGXl15xR+Sq7eExURAt5ZdSEgNHw58p8KvA==
-	]]>
-	<![CDATA[
-	4B+B/3P5uLq15dmrdWDntOXSgn3nlhbP7itapbQ7U1p87prwm2F9PZw1oxeH0W/0xZy5eNJdWf3p
-b7xsfjqar63+1C4XordGaf7IeS5OmpvzxZnK+BHpplhaePlanNy78ovTzw3y7u5nuVj6mD0uTu9e
-rBZntF1Dq8xfTtD+7WJ18tDqGJ1dMrrVF2tx/27BXPFMz7ly3q6+ztytt9xzU3uM32qbt/Uq6abd
-Xpi/X55+3/u2tO13FrzNr+fl9daVdbbWvr7SVq/WL0/W55fnH/SpZbepVfbrp6WFyxtD+3ZwVNU2
-7+yKcVfc3Nenx5/PEkdCuskxmHZ7sfixcrf7sbu86Tzsz35pNqY27O7uEhnE2fFSpautz97sr7b8
-u+OZZfLttzft8cvlatTrO1ubjdcFf3PsF22cDPp+rVSdmToiI9pxktaGYb9s7vhjMshOp92e65wQ
-bExvaRXreAK6gT7jkXe89e6Z8aP18oWMSG/CYPbjdts3Wucradz7KC1sFL/EuClXOt6G5f2e+0WH
-Hcwm7JWuzVznun2ze31IO5Z63XB/2LNbP8rKXn+M7e0k9uo0tjcYskg3qON2+2txot3RP7fVvR7o
-19aoMTul6rUzPr07o+qVdEM6tp8nauOXa6rpttvW5YW2rk3tKnsdXX90xtyjyT1Vr9r6yfkq7ZWS
-AJ6u8+nzwfHyclKvd9rGp6tTda8bM0vjW/flC9QrdEORfP2r5gTTPRgfR0g257qvj7RXRocCQV22
-b4xve9DrpLyu5e/W/G61xNbGakkE9ePremKv9uv+aDep11r7x5fPZ6hX6CboeP3BaY47prLXzvKN
-mdTrptX6ftlS9/p1dKIz7n6Bg7BU021/3OmfJycWv9+oetXW/bWFhF6dT2PHZ+051CvtJljaG239
-ZvNIieTR9c7c55fK2bGy143pj73EXsfrT0v7IbORp1usEP30YAx6nZKW9nB9atFdKu6SXt133OuO
-u3IZ9Ho5M0F7Zd0EHTvHOy9nrNe165d1gYyvlrSd72u2stfRzd8d9+XToaPsdXeq3YDtKXYc97r0
-cltdTuj1+6R2PFvvqHvdnrnefqxPd+NeSTdcx8e3i3OJve5db35bSeq1qp2NX3jqXnc+ARc4frp/
-9JTTPdvRW4m9nm5UNl6Tet3Wzt7NpbhXmA3f8eLk2Y/zu2Vlr+eL91OJvd7eLnfPE3q9hhPWtJv9
-k0n1dPf2n35drH6dUvZ60y0fJvb6dlD6chH3SsUa3/G6dnv4+6u61/2lyfb35U5V2evarxknoVdv
-EzSb8z1th3VcG+1uiJtnsf1x/t2CXkvS5tn/NDf54+PtlvQ638a93k0djQW9vvhTsDZ8x/bzF213
-z6a9GuMLE5tir+V25+nbJ+h1RmYUO+Xi9SdnnfS61EG9gpDuXLd81vHixNo0QnJxeX1/nPV60539
-JmB48rQ0tzn/DXqtyEzxVJ9xd778Ir2uA0FjbtxuLE4Gvc4elsW5bp6ufP7ylfZqLp7u7Ahz/fS9
-Y99/P4BeNdQr6abj7flfRi+6h1ukY0Pi1e3l++Zp6bP5Vf12xRu/PN25/qZ8+1ErftW2rktdJtZU
-AOMLeq1z8En1lqzD+nTx88rYKrxVsLj7puOuj+nwtqTanpvP76FsMyTSGt1stt39m0074W236+kL
-V67qLSBtdOtLcWn/fO1Q/flWd25769unjvrttnazUyrZHwlvndu9pYWP8QBpCoDtnwez7tmM8q23
-d6WHstWYlnmlNhat5oySpzlfTmvf1xZiAOHt14mz6tfzpYS3K1PnY+3GiuotRdrO5vRt1Tm5Vn++
-u7z+a37SnFS/3Tt6/tW5XSslvL349WZ2KkaANAXA2+/WzEvdU7+9vDlwjmozhvrtzdT3iMiVSLv9
-fRYyR8XntQtjfnTaXVe/rV/srXdH9+uJSPup3TyP/9oaVX7++fzw8WyiuLeoettuz98emkuHExPw
-tiy/NVa29g9X3gKkSSypvXz71inejK8q337czU5Mff5avEt4Oz85tXQ+VYvfkm4W3ie/vsf2GzLe
-iHV5UI2MNzfdeCtObc/pxenVo/Pi9NkPYiPfPp4UJ75PAuuEPw7AnK4WZ7ZviYp08eKyLxfmWy9k
-RMdLtMO468qu1xwn1vXFBzWGCJ/9+TXq9VOlMX8/SfS+0TViDFU0TALtUWN8/mAmsIfGWrx8XPhk
-jlPTlRlD92NHLzHr5nu1Jq9VvZJuWMej6z/E9eV71dZXnP2EXonS3DTnbhN6vfxBe+V0AWG6oxtF
-O7nXjY32ZdSrKfTqbX767Xxch71uvNJeqaoeIPmGn651PMYj+XDpiOv18cuXT3GvpbnX072EXu1n
-oLl3ThcIOo6me5nc6+j6k5bYK7UrUK9MVQ+QDKbFfVKvtZReN7TZxF6pksLrAiZaWtBTTtW9fi1O
-p8116wtaV6C0aaKD0CHQ34LF2Pt4RKBquP1P9RxwlKftzxdzgLY/bl+Y54XxDZh18MXdt0W0g8m3
-0xOllVZnLzLYyR9V0A23KG5C/EZ7f2P/iGB6dzr4sahtxS6BwKllTR/xu+rgy5v2OP69GgyidrTC
-tudsa+F94vEEsynS/0rlub76GX58inqYUrnNyHC+r+pTK7/WAcRkDUQMkFLawhr/g7DJWBknDZlj
-hxzDJEP9HYIEE44HrX2zP3+mP4AizpFFEIxtP5rDamnh3tzkcMhhf+P0gPz5BdwJH1PZY+pQECZv
-1MOqND7NTtMfDKXMt0MbiumFABOs73ykY510E2H/iDfdFTNc1Ld3smZIf9QuVtEaCoYHXUZz8exk
-V7WM/BpO7wZEw0wm5QznpuI1DP0COZZRvYYbx81sKg2RdpTZ2tlANB/OhuJL+zn++2Io9NXSa2Pj
-mzHqebHWO/YreXdQ5BpKwdd9p298hVwocqYsXE43ESMiXVff+R4i6uuRC/0ADq2v3XQ2ojZMNQ43
-tr8EypoCfWvX+93U4XwK5M00/PjOu2ol9K2Bnb2dwMSV23MyeXv+WDPH5rZ3Bpzc9Sc0uWhtBHR/
-YXspCdNavXZ7mjmvyS90XvFsENlfTr+LgqO/Ka2WMbOJ9qNA8Vr9oPxFVOT5pVrYuP6dTYcMMby8
-kXDzc3biKklwH0aUEwvuUhpBaz+r5e99t4bUgHujhXdfbXTnN7VvBt+AtfUIRLmadG2m16bZj2DJ
-WKxCZon35qjAxBKWFH4E/JB6v0krKOjFJrmrJ7ZWeW6V5uWBzf5OGJjx21i58r8FMQJ5ptMrEwrt
-LG1ZXrx3tCzk29M2nRcvCBDn/ZSTC20AbtYTxFSgSpJuUrRJbpEfN0QWKysJaSuMxNqL95EuqfIq
-VWTs98WYhllgRcIXzLCSRXgv/mjimOLh0B/RvkkZ1vOnJOm5FG/e9DUMLIKNLF3v9mM87xqqFL0A
-aXmWUVzDdiS98lAE06HTWnscr631SV/I8CCtJVomvU9TRfj9Iw0pfAMiTeS8gyKNMrh+WwvcYAG5
-GSsXlzOxdQu/bQah77UhaM7dhWQOAkhDloZ6PzxtZi1GrHrL2kOwPTexwd739nzaNG4+VrbTKQ2b
-0ywwrEDQ4ufc5nTgHVSNKL9lqFavCHY2Dt6yODSnaCQtdyeLPQgjUfsFNnuyAhNHEvODSIfuBy2i
-1pk2knht5MFkMQBkPN6bk0qBtXJxC1Hc3jwwLDQa+ca5Ju9macD9iPeIT6x2M50puIcE98cWWMEb
-6WyEpYzEnCRhoxBDLVnu5xgTb0ZtDY0V/NpCrCDRL5DNCsgMv/TsF0hE/OLs4W4P/Fs9JjobQg9Z
-CgQi3lDTx8R703nWVTOkJNA7aW1cvvfi+ZhMNgp/bWk/9dHLgfFFkUVV9Z42ewq+7F6kp4wvcbPP
-d6XNrn/7SDfjwm6yPYHf8GbPdjrE6IukJ9Ghx9JHlNfmMMdmwZ2Qw5mSw5H7DSv3qZNLEgSkjYk8
-VnOaI+RbLKljZpPmC0mg+bdvWr3zcp5jSmx7SksWU9DATj1zzP8tibU+cXPbTveVBH7oT5nuHYKg
-FN+OiinwLolgNpymDVnbmqhpb2M1O6sHSc2O983s4adB0bedGNMCS7pH0fi+LYrGBLIQ5GLivpk9
-HHjfbMciMYqw98KhopEURWmYTO4xCSgofvH0szmE9SIyMJd3MJUVvG9j8adADOUCmbhJ9zDmUHND
-XQAQ5OZAUD41d3KiJGaEMIK+OB54AwaTIyxZxQVVRmEaIwS//Uzv4i923kutVfIQmcJLq2hKGwKH
-hkKPpY9cHDqVZOnK8QZr74TPkYBobPaxg2grl8owWeB+6KWh/HGO5GgUbShLFuYThLSpIMqYpXIk
-tIYc6hvHTayJwrOYeQR6msw/8jrwoLVs8RNlP2Q4aWC8KVEjZaSwlLI2J1LYVo1NXjFN425ToViL
-GRx0czo07nbWkpwpfah5oHBm8KMenPfQWnLUKC93i2xP0poxMHcj5sPx6BC4wGmf3E2itNOhcLdT
-xN342FrPDQ0jiksbErmbELrR6t3TSkBLav2AWzSWajWnJYeV+AikWncJKCIYyTixkRemRF2fdjOs
-XIqLs0RjO1bVs7VZWNUsjS2B46ryBaC1nnX+xIHRbIrEKG5OjvNz/LeVY1dDN+kbe+16tTQwe2Ak
-sJqh4eXhM2JWBWpFcA1lN5RLRVS0wjtTaEPJOyhbX0dj4hh7zvy0NPk4jbR/2EHnSDgK7u5e5eP1
-77w+kDSjEKywDImW1/lFM1P00VwmZg7tnzSl3Eay5zaD3Gqj9bEhiLXzgbX/sBVeOPYt1s4Ttf8e
-xdp5n9q/3MptG/kF+pePkJ5jJG5taq31Kh8hEX0aycc4p0Y1dT7nNod8vEhzRvN5WXFqB52/OiAJ
-Y/uRaLUK2Ix3ZkIIDwwJI9OSzrvPobVkAScKgjz7fHbC7t3pkoy0Zk+Ja4kG6AXd7j2kwSWw6dt2
-ms87IIswfTTfsJJ3a8YmC3ydSFKVFZLqchAzDgUkidmZIqlypMbx87+M8/eVLtWUfaakl5WLF6Xx
-1E9qL7T2O4eoUcZ+RoQi2aC17nBo+TKvHzohsIBWM0emLx9hT9A7quVKSqYvTxaVxDHFvk4YVopD
-OXdabKxCsCx0teHBl+5NHI25xennX8dQo7dTnPFmbhPL+dJr+ZA62H85X1yJpKrlizPvByznS6/l
-GwlOGRm4nE/da1jLN6IuXey9nC+9lm8kLF0ctJwvvZaP93UOVM5XSq3lG4lKFwcs50vsldbyjSSV
-LvZazpdeyyeQwCDlfOm1fIEgGLycL72WjzlThlDOl17LF8ekOQabXIz0nsPO5rW9sBJJkXk/tbyU
-nt6Wd0ztTIMdqGoiR61i3lRZTodOigIcfMnIX+/BQUxQdVAcBqrGlXlsgiWdF1VY+Mt5bFOoIi0h
-Ugj+z1KfVKVoahrbN30TQ3oFX6TZ5Cu7K/c5Jux+gGGJ0aBsxCeNSRtk3yC2k694Tw==
-	]]>
-	<![CDATA[
-	yoHKR7eX0+2e/IRqo3AtrWy6p/ySH2vU15zDQZzD3Xw5k1HNFFnS6TVqKOuy5/wSSgKX0+95U0xS
-y+6S3cz5HcRrPXm20FKFBB2U3WWmmGRFKwhiVNGK2PDIZ6hwrQl1FBk2D7MIhNbEBC9i2G6URM1i
-Pct0z8+ha6MX6XkTecvN1mnRa5hBnDOaPZmwC2vr6eWUvMGewwewnhoYT3a0CUgTfY0l2aPyuNFn
-DZMq6PXidfLWo2UWo33vDrGmMP1ohVt6DlTeerRMnWy3Ffu40Jh4ebMBBS/fEoaVrWaLY0rNvI9W
-MFe5lz+WpRr0UlPYTHS8517DkbCmEMc5BqEI+aAGWRfoobWMEh2uqZDZpLWWkczfI9IyinZ6maaU
-ZjAQ0jJOa8hEmugvdttSHlV3IZkfqfTJ5GjU02ZmKXG47RMbiOr2RpJKsDLbyOQ9Jzr7kV2I2V3M
-2Od5AyXAOrFHOMUeVKpoxsrl6Jf0BgIOndbGxW1uqyYBJwsdirQMgZi1SjiworCIKEFnFNtlcYFs
-dEixtX4wkkPegc8mM3a6mWPHJyurME3B9jRuOvdlUcPcyqrURRpmCkHfdJq9ODj6KdQb4aqJYh6U
-pFz+2uqzbFqhp5Fh5amazLH3jZvuxJdMPS0nqsZzkOoIV1CWjKoefUHJjq7EMr0kEZIyJoX3hjMK
-85MnjMnsaUzJYg2G1ZP3Jq08r0dHl4Aq0XuzqH/rIO+NOea/f2SlXefy3izq23mOa8lKg/s2HO8N
-86q/fRtSsiCZ3Lhqcj0mJ33r03sjGh5QDzew9wbq4XAychxY6a0erkfvzYjqfAEohRvUewOIyZHg
-n68OHhDk5CPofCmCSx9SaezsYTErRyfc2oETMsmN/b49eIXk4qn+OSsBJq8dsp1+7BndN7k9QO/b
-fR57JhA0md/85OBlbIpkCCRv8pX49X7smRxbgwq2PLnHmSV+vC3bb4oilPjlKGAJc04Uvk4RQSme
-08xtHPvnAs/tOOn90ziKyZJnE+kZnvniFixxbOANmKMyjzKbnGl7A1TmyZRGi/OGXZnXdzJsb5V5
-Kcmww6zMy5U7OHhl3kje0sXBKvM4nsYX5/XTWlplHpfRxRfnqXdQ/5V5yHPbW51I/sq8kf8oi/OG
-XZmHtmdYnNdjZV5mADlSbuudlyHUk0wtrytnPcLVreVVL6rSEcqZOGQZXcqTN6pS4kV/hWeg3OcJ
-eqXXS5218iZc5mgo3/Eb6cFiaAhZ2X3OK0nDH+mpoAwaSrauU1I/lYYH3SjJDrQcdQwov7oUkoC4
-H88G3o9RuVkZH57VZ31X1inHfK561n5cuz7LsYOSj8EZQZVel+lp2jn245nK2O5ZVQfJPpyjjmlD
-A+5H1kq0GdOzu3M0lM/iDsVaSkM9KP6JWj9jNtCaeCZO1kFZKfkSMMOSfO0BPM48AyNP9hjUQQ2l
-SPb69zCLZElrwyqSvf49nCJZfTRP1U+Wd5AWik0PrIsATyMNJZe39lBsuJtsZOXPgaIN9Wtfiawz
-/0HXWR4wuktiK1wVXs3OhsL7cXZiGu1HeJZ9fHvO/Zi7KE8Qa8n1QoMW5YkuVajL+yNFeQlIG3ZR
-Xq6A5OBFebzteZHT1O+jKI/rpqdD+XssygvXJlVp7KsoT9AYWV5nktJYLQ/p9HsmpO874nHJA5b4
-yREfKYSXM2UXat96uG9jhL/lV91ajjMZc2o29x3xCOV+IxO0lk4VAIqdKblOHoaKwxSnXqKsSEgf
-ZSV++cgiTVYE7qIgJX7HVVN1qBPSG0Tdn99/uuHF6ys7a+0f87fzJ6svenWl8u189VP92/HqYun4
-ZL51V3LIbxsHBG68un5xvf5IQ98Lo6tMPlEvMeeHPpNL0by9Rb4iDJXdfTq7POC9XWGV1Ai9Utzb
-XJitfr9MKru7SCyAgxsL9cRe6U3koi6Ayu7co8mbpLK71GK/d1PV60hY7AeXkaumy66e3rovPyVV
-hE2mXKF3YBui9BRL0egF3VGvuOwObhB9TSi7m0wv9htdr/E3TeKyu+2vBwm9Op8+W3urd0nFfrfp
-xX4bY05yrxuHn64SevU2P+83dmspxX5HKUje2z5L7nVt7XRdXNcxdqBC+FtEAu2PqflKOmgAZ1a1
-HHDa3dTssphwmQRamm1112JhSmZ9aWEVNfxtXCFgq+nB4uz8XpScP7VsT4ohplXFCTB9F/LM5ziL
-+nMU8aAqR/KdXumHpucbE9s31cQzsnqq7ktOKY0zuoZ2vZ7KF8WHiXq4Xi/38gWntuXO6Eq5KU7L
-OCxdyh0c9GY9DlViU7ztmeNmvdwzRGnBqviNUBCQNsOsRG1cf5MyrJ6KFBLHFKqDw0GV6qaQWOtM
-TK3tq7BPNUQuP21YhX0KpNHtOeTCPpWeGiNtaIV9qsmN4OM/Bi/sU1X1JcY9+y/s66kQs//Cvnip
-Yi/1IO7uhMI+lW3CEfSwCvsy066HU9iXJKSHXNiXx909hMI+VVUfm81QC/tSsoaGWdinqupLS+3t
-s7BPJU6ClJFhFvap+KwyvDpYYR8/prCqL3apDq2wT6X1j4RXVQ6vsE+1hoKDeDiFfaqqvhH1dYiD
-FPb1HSzurbBP1dSIWO85jMI+VVXf4EhLPj+4H6TlL+xTNCVlDQ2hsC85836ohX2qBkb+M/TCPtUm
-j12qQyvsU1X1jSQfmNFvYZ+qAZHZDKWwTyUNkR96GIV9Kkc2j7QhFfb1cGxOIkZ6sxHxYY3DKuxD
-Y4rknSqKm9NGXJxYbeNLim86T0q9Q0jqy1moVuyF90wmqxy/tjIvVhWWIPn6t9DcVKocg93ipzLL
-ItszE1UZt/ilF89xsbVfW1m3euZFlXyGQApPS53cajfzwl5+TCl5nTku8Ms9Jmp4DIeq0rSCEdUx
-bSnDyrymVz0midnAsOrJFkQi/xQPQsFR7JGgCk8UEorcpjxus+TL/3pJtRrg8j9F/Y3i/r+esh65
-yUVu5gG8HL1c/kfLFTLv/+vfcRNc/jdoPnTOy/+YSzXr/r9BnZDfWDfDufMo5fI/RND5ch17v/xv
-JP/ZdubiaelTnxTByZv37SHVeCzOHuKC3JGE6tVsjZxMbnZi8Gqi9+1c+R0ZNZif+VNGBqnpy1XX
-FMibtJq+QTP/oZZPkp594iajIDeOFGYlqW0PUtJEPbe4qungTTKn4dkAkk/I6yRILg+jUG2IqVbH
-Q021Ou7p+tuERD9aiDnwLoR8/8n0Cvs4TJTZUO+FvqoSLGhoGAWmk6p9qEocy2yo93s4kxLHaGtD
-qfalmR6MdUonMJNn8+mCO3f1GXlR7Y7kqffMofpBa0bem5Y4YZaUHVj/VZ/KhU3O0pz9PSLci4uy
-tokiN4mztsmzjNuqVM5CpcEOJVj93+sdl4UN83LHs9YwL3c8a/V5ggHiAp2XgW/0hWLHuSlVK4Kj
-K2dDfdRiSLYnbWgoBaZz2XUEORsSizpSbuqLuEDyfiQbJcVM7yNYDDrZlFRFMf47YzFyO+9Trv7r
-qb4sUUJwmSl592M/9/6NJNz1HV39N1hJU3jv32Cqeu57/0byXCA4+DYaYRcIDqE2KvXev5EeaqMG
-uPdPwWzEq/96ai3ONY0KN6ZD2zP96r8+kzcg96UyFJ7WSwpI2E2i/kNau81Rn5uh/AQxAmjtvl/f
-AofwpPypXryDEP/tvdpXcUYXa2jwal/SimiAc8ym54Z6OF8rmXVCQ31V36sWLSsTsvfq+xnkgqb1
-WqyboezH2YnkipkRdE9hVi0VdSX2XkiV7IGCyrQhpUgypPVi4Kda9xeJ1n1OX6eItN4LqZJsTyg+
-TTf18xRSjc+fVdJ0gR7rbsmY0sliJDpXPW/dbbU8I2mM1XLGAVFBEnmOutvLPi/DTBDSxsrFc+Jx
-Er1ehlktm5l6Wv6622o5o1JW0Gyy6m6r5TxnDObTbKSkkH4jE7TyNAgAxWKtj7pbuDsw8zLMMAcq
-37D6vgxTyIGKd7JWWb+dUXUYVrzVq+32ov6ZFQyeLLqXq1frlyerV2vtpeVN5+RbdaX8UK2uVLYh
-WfT4nSvz+fwqDjDwRaGr6U7fX7+rK/O+Fr+nXP53OHuAApJCSWBp7mF/l3dQi1fTff5abCXVA+Iq
-xIALRCWBj5XEXrX1k5XDhF6dT0K1Gu71jnSTdv/fjM/1iq+mmy11ol5xjZx18bwzF9fIwWx4JI9O
-JNbItT/u9OR6wNLXubfka/hINym3DlqX39MuxHszEnvV1lsnJ3GvI6w8juv4y079+TGp13paPeDh
-RWKvQNBre983EpEs3OuIez2U1pXs0aB/+ltA7rMqElCDzuWCs653VHBBKEIEnTxgoIHg3HEU6mi4
-g9c/XrEwVTiX+fjNkkoCainXLpS4Q/LiWp8e8tPSxPX31awUG+xMcd8TLYKDL78HThplYwKVZ0Q4
-E7KvRJFVrAQPcjHN99UciVuJTmBkFB6M95TjlowqlLWFuumtPC7r8pceyuOySiNkqlI1RXka1AD2
-kgaWNkN1DlhyimJaXWJPOWAwJt5aE4eVlRyeuwAQnMvD2TcpOWBLUW2UbAqJrKvckljX5fR7T77p
-ZBP3x9rAYdD45LsU5TZvLHAth4088p+cZvKPtWGEicj8rgf1p/1YS3SD9eRPIwvfZ/xbSOcZikd6
-TWU+SFmq+UoS89Wt5fHZQGsJaWC5/GlCHgrdnvdGC5fy1kZ30o8Vzsds7o2PoVnSOXzIQXJSjhj6
-empWXobDQM7rhEPUkg/qyuPjE90v9PCKQN7EGQkb2ffq5HTWPW7Em0yV4N/bTXVeN0dB20hwEnlm
-XeKP9KMYeqv0ytLrBB9u8pjqo2hMParqfFkWYv+pRYmBkE5eRpH991tbOsJK5TOvjcldW3o2k8Pw
-yN9aZtWR0FTgvE9sLTlU39PAmEVwlhFo7GWayihj30hT1ib1jbTMm456QpqV2JpUxZysNqbUIwpB
-r75Mplz1iCPhmSmJbeTV/pMa4LlAvyWJeesRe/BDD3LRYEjQfZYkCoNIqUfkU3v7KEnMu0ojQfVq
-nyWJ0YQz6hFHcJlPbyWJeesRKRfovyRRnpI6UptsSecqSZTVFTYcPK8RdloCr1f9icsKI4L+s5cV
-prjthnlZYZLbbsiXFaJk2D91WaEUkPwzlxUKtuefu6xwJPs0uGFcVpiReT+sywpH6P2ez/awULVj
-XavGxDj0/mmuiuW0Cw/TTeGRzFOtcl54mKOgbEgpGym3HcYJlwNeeNhjam+/Fx4KI5FuO1S5u/u6
-8DB9SmrPbR8XHqqWaiinWokXHqYnr2QmKue98DA9EStmnQNeeJimzb9vjwzhvjV64WE6KxhhR7MM
-fuFheq6UkN29MMCFh8LkpNsO+/B1qi88TKfSONVKWPhB6qCiAsC8Z973cuFh//Wew7n3JKyQHGIJ
-VOJthyNZ93vmvfAwfffF8mbACw/THRGCnjbIhYeKgWlDoDR84WG/lNbjhYdprZy1sg==
-	]]>
-	<![CDATA[
-	SCD3hYe5nPeDX3iY3kpQsTL4hYfCmKTSYDXr7OPCw3AHqW87HEEnJ/V94WF66J3504Zw4WEkzJTY
-DNZm8AsPxRRvfNth0M3gFx5G9VpKpjTSe3mc+sLD9NiHWuvs48LD9NsOh8AFTnMo9yM57ynsq+QC
-2TfDuPCwlHrbYW+lJCkXHvZWStL3hYfKRYs2I9/NQBceov24IN52mGjf9Hrh4eDlcbkuPEzX9UfC
-oqVBLzwUBibddtiHqq6+8LBnVb2/Cw/VrYSbcQATV7zwML2Vkex7Cvvaj6gV6CbDY5a7lCXltsOc
-hTG40EO+8DD9tkM5sJJa6JF84WGv5XFDu+2Zv+1wJKnwv9cLD3MU/g/jwsNc9xQOfuFh+m2HQqRw
-kAsP01vhedpAFx6KrWDfvGAUDnLhoRyXynNKPN6PmRceprvBAuf94Bcept92GIq1gS88FKeJHa4j
-0hld+QuvhAsP06372Nc54IWH6VFRDmmDXXjIr6Zs56fZnglMTH3hYbrGmOJ+6O3Cw3SNMbAIBr/w
-MP22Q2579pXAx2Mz5bZDlg89hAsP0yM+KWvT24WHqUW6l7SbYVx4WEq97RBFo/q/8DC9SFeKRvV7
-4WHimKSKlb4uPIxlxY5VlmTFjqWlVhYzSZF1Muu4Oea/VJBHWBULFTIhWbtJ+f5iESX2gIkury+C
-yUj90LyLjLLp6C4UWp8Q1mF5vKNctFahMq048X3yozhTGd8tmzv+WAiy02m3jc4y6aY49dQ+rMx8
-nv1inu/ay7ZT6jxvVVoftfHNuudPLX4fuxotbnUni8vrR5XRyx/O7NjxWWv580vzeGe8/vw+4xzv
-/L51Xx53npZe7vaet+vHvr93vfn77Fh/3/55/HzYALF2ulHZ/Ti73ZicuL2tliZ/Xdq/9t8OSnM/
-30tXS9325+OJ8XbbHCuOtuqtymdt7Hlu8mrn4azkl3YnFn6Pve1oj5+bq+324uxBcepmY7dorOy/
-luYerCVtXVtc0NZPzqGURNv41NrTNvb3ntvtxuJM++N5YbwzPr13D7MvBpWfC7/XSvPe3ndYliIt
-wNPWztzbdufp2yetsl9XcqZgbW7rQGnt9kKnu3q1vryzPr88/xBfkMluWBxf+X2kxterbh0/n479
-bi81nb3i+d52KXGu0M3HXXls6svni4Mxb+515fPB8ca38bvjrXnL/7LrlKJyVbJU12sz7s6XX4Q2
-Suud0fWtmWK7cVOBitIjImr22+KuqsbbaCSoxRU8sqBjBF7alXhysTSKkUFWxB2f/dIyrLXzld9n
-S5Xu1GrJt+4rK2vG5hJ5tvtt6efpyR7pZnnTudsr+fb84ro/dvRYvfn2aZNO11i5LK2xLU7jMgsb
-5xPw20Rpdfrzx/rE5taWvvZj9mu1UavosEDNtYeX375WuXiZMW43H6e1Su33DAj9sSDJYgY+JyJ0
-vvViLp6Olmm7Iasnv4G1pFVsa5L+SZC21CJ/zpbon2RXH/0mfy7NsD9vOvVp+ps59vXr3frt5Pdt
-auL+WHpamtsptsnIt/mhTmvNu+jFFP+i+vk+ejHNvzjVH6MX5fgFDa8+zf+M3mncRzNjW8/hi71J
-Old9Y2e0Fj0rccAbP8oP0YsZ/sX7rMbiN3uVQEjYexrUTb3pm86OAX8arPH7H5+jxg9LDOT+XYcT
-RQ5nIt4zRuhlAm7HOSwzkAenCq0c0m7gjHz9YXOfPgnafbj6rlMzRqtcrpcqu8cvJnl7Mk3fGpPO
-bISbkzLrRpsc8zTj9fjz2rQ/+WNpTjsbi8mSEfREcNwotUJlEzcQBKTJSo4mVe2JQlpoUuOa1Cuf
-Ol9Lp3NtZ+HU2lt2bx4n2K6avDouBmR8+d1YfmvtdJa3z8/vYiIzJj8ewVoLZ3/OkYyxujkPKuI5
-I3Jj9WpLpxvAWH3Yt4PfXk+N4LeP7z/otjfWJmu3wW/Gkw0N2LQB2De3V0vQ5FWZlsgYt6/EyKef
-334cBY3fTV5ENHdlcMO5m3v8Fb2wSmtnF5swm3tuNnfnxWogPefgLOajldfy09TywcPPndXtreJx
-7NnRwtMpq5FT7wvnLAyZ84r5+WOrHvZ6U2Hb/YtxagWxtTHzy9x3O/httdaIQM0A9OxtGQ9nv3py
-s776OvqwfHRyPb52P7N0DlL2K3CVCjN8Kt13Z33N2PWQ1pkg1JkasGCf/Y61EuTKopc0Lzifqx9E
-ptQvVj89fqxVbzaOLmZv9lug3FI+ujL52oaLmZ3NlTWtfDJ3tdNc2Hg9u7gmjLV4X4pOV4iOVhin
-U9enlj0a8J4M9/dBK5jIxUuJrevKxY8O1dNeRsuVxujBF6L6vHU1baLcCWjULo8TqMsZ6hqirJNe
-5xqzTp3IhgXS+OZ0tPrX5IszDZ7RJNQlyKAphxEPYEngItysJHiENzUFCRwxZrvQXfiN+SzlJYTF
-vtMR09ksLFHGPRFw9IWtimbfby8iLqtPv1e11W9fWxoB2dejrfiDLRBT4Dbmp8IZEsYKK0xJEDg0
-mcgMY6uUuxGOWgnYqXu2Wb17Wa4T4nnskDaOuMaJXCp+aJWDpSnR8f2ODD8yiIMql9q7M5+h8E2v
-Hhmg8O0VS1cTS8XSq7VenL59/AZ/ThZnvvmXxdJDea84baxXi5NTK9PFGW/mR3Gy8QqsszjTPLwG
-AK1IzLBFpjRypf0EyYQEjHF29kFwyMFuE4hhhmN7WuesvnS2Pb+1fts9Ka7dOfvP67fTm5+W95++
-7oAucLJqja3+POwcUS2iU7wZXw00vPmrT9iVlb/X1ebK/sES2cG2fUe7mfs1sbr13fm2fPwxMbr0
-dXG9HO243xTTdO9Vnj8324SWj63euwZKY9Lj4XZqae76+Xa1fHTXrv6cb97Hc86YMDQJrHtRNBS/
-sDhL/WC+RAl6/jI4amTtev037F834l9L1cb6l/bS2fjF76XWZvuyp67N5XZxVfJDc72ndn24+vPL
-+6dZs7p6v1a7e7jNgfURet17jPhrv/8175vSFmfDkzc424uxzonw5I8KvU+bqTKhJnznlRacT521
-UuPqefnk7LxNupmr++0XMt3is/t782hnrVYbL69dPY4+001JuvE+2Paceup8zrHcKoTz0rMPnDMp
-c3o7tQaGTyX2QKGpj8Tn2eSafe9Tp+Qmxdb+DLmFyUni7A1ic+hbgXyeeLzk/ao98lStOP37HU7q
-Y2y1dDg6Bxx1vzj+fjoG7/aBk44Bvz0uziybC/DjsTi9e7FZnGy3p4vTxbtxmOFZDkxQLjC0bZ9I
-gixYnLEOSwT7ay9Lzd+VO9L/0WUPzLY13Tez6WPC1GCXWV3vXadPGFR1Yc6E3M7GwCd31G23je54
-2dpcGe+z63jW0E3qxKmTJHHb5e1forR+OU46i2duux4le+9iXZE1NBQBg1BPuvkjqkwWpeVGd08T
-Jt3kmLOS3HrpOuICva60Yn8tvw1KaYNqcaQbbp9RU3vlotZN9CYS9D25szcHuz4x4xw4M+/rysrd
-3qc9+qe/5n0YG/aHfkxMwOMdYv0tbi9v2kVQOao331aPqZuNQD1Mr7V/zP7gjUL7u7ZU6bw/U8tQ
-MCioj40eyPftLTiKDBzUkQVprnim53ya3YGc26XZtXpj5WVi4nBt86ChL/1eriyvbr01OsRM1lcC
-X7K12gjXobMHRsNoaXFu4QuadWLXTEiLvb9Xqysv483r1bI73smtY3xu3VQTe2XdpMx5bnts9Xp1
-Y2P+hay0+bunXmO1ImQ2g6iUObqGbgZg8HllG+jQ2Spl3pVORDhT1XvA+ZDEWm59oiexGmqdQ9ai
-MMcDM6p/pSK3RA+ttZ747fAN9s2F2er3b6HxNn/UJ83zZlSP2Ef9p856JD56cjApAyGWA267Qcgk
-xnoQKWQexvjoMpWHsbpS1gwiRy73lqfftaXlh8O99dXFkv1tebp1qq1+1J7PaYxm6efJ+9xa++Z+
-f25RP/OoO5J0s7o4tWbSI17/iLyhrAC66Z/9Jtu0iPeOsCP0hmDTpnYdhL6zOf/YGJGyv69hK5Jd
-WP1x3YOo/fn1f1veiNKur65TJgwkgOdMmM1Mc8Z7HaLjhjKbzIkTLv8+lu4/6IPSzo3VcvnrOVGu
-b/SluW8vRwNrVsyr3qPI7X2TUYLuYZ/1SXMhpQ2yxXPQHARWetlnfU4YuumfsQxGab0wlnybLDdP
-y89dVJssoLQBWEyuTUa7ybHPaGyv9lvDIp9Pp+k6xcm9Kx/cgEvwYwVcfnv0T/AOTk6tGMWZ67Vj
-cCTugE9wG96Vi9PPv47hz/Xi5Ne92eL02Q+tT2dhVoxgSC4clJw0DI/Gn40RpGpbeWIEPZqzQ7Kk
-+9GwR+h174PomrmMHLZvhu+0Rf2z/LTBrdsMwk/zpyF1exDCB39aL+7LPrsW/WnDszT+uOdWad8p
-/Wkvo3360xxzcqZcvfnm7ZM/fx7EhgyE8IboO1s8mrpePjn99QPtdEoCqs1Of2PpiJP3TO5Sg47l
-BvRI7svUc/vyOrW+/Fr7lcN9SX9juYPF+avWAMxGH693q8/uTT0nkf+mDcFvb786t2uzfUejlvuf
-8I0qHzrv7u55wsw1xOb8XOpa5x/98bSMCVOLYBiLnD5haq0NY5HTJwxcYCiLnD7hcG2GR9XKFc7v
-HRxgwletAYJevUw40NMGX+T0CQOl9bDIzCEmhvlPhEymd/7KWFbKHGs2E4LNUW7xOKQlD/HZ1ZDu
-yud/SpWqOIc07oal4S9xCtcXu7XO9UWfjVaXRyPb5Ey4sYU1MMk3MN1YE0uwaNJ7dWxxLZbsxoR/
-acZzoM9GRxcWN8JgVmuKnz8gfHR9nUuk0OqjdkVwP9DHFxcHy1EbjQkh/5GsPs3ppnl6a9dzM5Cd
-qRNzfnUaUuhYGQh9BmmDZfbspnMLycDXnSjhcsG+7WKBzK4bMp4Oo8tqbpjSHt30BFnjo/DiUrzw
-Zjya0vPU0vlUjd71wzLv5414E09OLH6/IUO1NvCdR8FNNHRtPopxlUHR6nz/Ekl0uDLK/xQM5/V0
-T6z3XLicbgZIW5ncLoVp/Zs35dFfp5S0oRAAcgwPWtFwXrmCkNroRilAwmrnOELCNUVCRAJzH9/3
-IzygS6xKHB6+t8378H6nWZ1DQvXq8UeIhPKMgAS3zfwC6XiYGuPwsFj9ze8qyJ1kSAh6Da/iossS
-IYGRgBoPrIaH9mq6+y8BHowPPScxVGL6Jt1cFFuVNYaH9srl9xgPE/djR9cJxDA5wSHy89fiXYhI
-npriBhil4TYme2pD0cAUaoDpab21UVLtjPRtgf3QweW/A0xkRtWAvD1T2yj3PhF0eNbdZGXQiWgx
-aSG6EtTB1Db0xDZyNMAcxNOTA+7z6an0BgJBkN7GoMxmeppP6hPbyLsi0zM5GiDdCOPAbZRzrIi5
-dDgxETRQW9wXG6jwClR/pDWt5aXNEXpagrINPQcy0mTgtBE2QG/2i/dZZ3RjuyqAVg==
-	]]>
-	<![CDATA[
-	pmJQuBXvQHmpH4HLoJIQaWm4qQzKgCozyZSWl1oreaiEdJM6jkEZUEUTKa2vieRmQMmUVjEGxaaZ
-S0hvWvO71RJro71gm0IbRm8MiMkbNA5jOhsZ6YPADIgT0nmRYZR7JwsspI1KjlVNY2KGkgHlE9LU
-KCO211JHq9jz07wXb+GosX6yOHu11v5RvlredPY2q7Wnb7+gAsY2Vq5OF2k1KNU67WqZVslQpRGF
-ifTSiws3bV7+CEuFdptREc5tVKp0V1o4eKVlotNBiZ992Q6KErsT5dDwCOqm7PJ4+Js+QavVyJxd
-qCh1p1hFaW10651OiZWQrlx8b7NxBp+tV6hBU6JlTmK95/jzbVTVNMlXKfndqPxym6/tnN4pRbWd
-23xt5/QPNyqP266gbt6rcfWqzheErvwGDr3HF65unE5Ehat7fOHqxpMVFWfulenFn/rm2JIW1uLq
-mzPrsGH3dGb2bS4ewZ+HfOP3TyUg48PpoBp0zJ0NzKLpXWogrOgPM/OwIw4rQUXp4hZg7lAP/dD6
-w+EpbReuXf36CXBegpt3WRWgMTljwWY74XBjTC4uzeUpRQwPioXQt+KIsRVjcnP9a08NqVs53Jnn
-HV0rdvdgrL5xc+U9LR9/jDXWrh4PYJ+d6DHJGjcfP5aCmujLH2ZIUCcWXya66Ea0cT4T1IoeVtk9
-hfZ5JST2c9L4/Q1oh+d6WCZ4Tg85aMFvZvSbxdpYm3uD+vOroMnbB7rMV1EJ8ZUWF8naVzpfKWr8
-iAoxr0z+xerLWFBs+PLLDmdz5fRZ8hv/wPW5N1ztn/llch/wekN+XJ6D8XajR78ZPNzuk8Vmc2Mp
-RnS4fnd2WV0teZPr62u7Z15QNdh9s7X6/axDy9GjWtgrYGIudo0xzjB/ORFQ2hgxepdpHfxUiNXj
-9wCq9nsm5FDWBOVQlD1FPGWcVkhq9V91EHWbk3TfwDFx9E/y47JVDlNGjPGl4g0t0YUzO6bpXWyE
-tL5uVRoX3TKj1sb0bInyanNsbu2b6qxgc/Fsb5sxzOgHvDhl3cDlRQvuZMR5bwKGuTBfCge9HTCA
-6VO9zBhWWD/5GPN78sWOFhVx6iJPI6zLIZvoaZ/xL5gkrXslfV0vh3Wc1Wn2DK7XI39uMRCobf21
-8jraXAeWpTOWFfOoiG+xJIvg0KT/lxCe6+luwTM1p1A5+nitt/fbjadGs0AsFLKVK8tbun7afGyt
-t+v1k/p/u6uth4+3erNbmC1Ulo+rW1uevVp/aD3WC4FJcxeTxUww4qASiT86RShRooxnZfWnv/Gy
-+elovrb6U7tcwAVMk+bmPOQdQFgAcg2+slSF6ecGeXf3s1wsfcweQ5rBanFG2zUoHSaegsFCXFfO
-29XXmbv1lntuao8lMQpHS24W5u+Xp9/3vi1t+50Fb/PreXm9dWWdrbWvrzR6Szw9PCOghP36KVmx
-G0P7dnAE50LbFeOuuLkP8vAMVVnHx1IwpA12MkWOYym47Kq+T6bIcSwFi6gOdjJFjmMpGNIGO5ki
-x7EUrJvBTqYoZR9LARt/0JMpchxLAUx50JMpchxLMRIWRQ5wMkWOYymA0gY9mSLHsRSkm4FPpshx
-LAV0M+jJFDlUOLY9BzuZIsexFKABDnoyRY5jKUbgDMABT6bIcSzFCF/Z0+fJFDmOpRgJTmwf5GSK
-HMdSsNkMdjJFjmMpIH1j0JMpchxLMUIPSxrsZIockU9ROxcCl8OMfIJmIwY//0jkkyajCMHPPxL5
-ZGvDBz9LfyLyGTkEe4mM9B75jGOQYfDzj0Q+Wf4rH/z8I5FP7EKjN7MOP/IZOdKz8TBI5DNIeMjj
-Bhwk8pnHXz+EyKfor++rjTyRT4gMpeyMYUU+B4oM5Y98Jvvrhxr57Duo3lvkUxlUH37ksw9/fT+R
-T8xspqcT2hgs8qnIefkTkU8uqD49KGmlRD5zB9UHi3wGQXUu+PlHIp8JlDbsyCemtEpSiHywyCd1
-DeXe+31HPjlKq2iDTiSZAeWmtMEin4zS+ODnH4l85knfGELkc/Cgeq7IZ0ZQfViRz76EdO+RT+oa
-EoKffyTyydaGD36W/kTkM7KkOZfiH4h8Br7OCv/uD0Q+aTdC8POPRD5pqFMIfv6RyGfoVRe9XZ+R
-L6SPGKjYXhDnSmgyDIgOHA2F2WQHREuDRkODUGdGQLQ0aDR0RCzuyusW7jUaSmeTGRAtDRoNBUdX
-dkB04GgonU1mQHTgaOjIf/IERAeOho7Qq3CzAqIDR0NJNzkComI0FNIXIOZ5u9Z85OOd5PFn8ui4
-3v14pyD27Ur9qdHcqf1TJzxaL7B/NfIv/HT9gm54BcO2yR82PN0hSvAEhS7ok4UdoqhohWVQJW8r
-y+3uauOh22g1a+1/CrP02cXuzunWamG2wL65Jd/MFSbIyLRbAk5eTdKA6y2M95a2BT8u/qa/1kf+
-8yH9MvUBw1yFP/fJj7Jj+IbpGJ7m655ukEGXbcu3TN12DMswXc2hTzSd/Of7lmNZukueGJ7hO6bh
-2r7mW4ZFnpiWr+m+o7ke+dh0cz25qMEwAFEG+e/iH/jrG/ntF3n2d0HXCruF7zda4XGEvDwa+Y9t
-lD3L933Pci0yVIJo3yzbBSJNbBiRaZqOY/qWZpnBG8sta/DY0BzddVyHPtahCdfVdd0zCpZZNmzy
-2Chbtkb+cQk6TL9QHfmP6Zdd3XEcV3dt8ozA6GU7bswrmE5ZJ3+atq6btmFbBEIra+QLB9BEmi+Y
-BhmD7rllH5rWCZDn0rYNr+w7fNueXbagLcu0NdtzCMGUPegr6oysTdmDERqG53k6ISk2cNct6zZq
-XMPfukbZ1Llx6X7ZgRFppqdbju8WdMcuu3RunmG5mgsQpg//OGRopkZGaLtlGzoyNZsM2oOOZCCL
-LLHGAe2ogEzASdmG+dsOITXdIiMyyaApMj3XsRwC4ZQ98TPDLXsaGoDNVsDSbd+zYWKGVXbhiWtp
-hmmRJTHZijgO+c7zyAODrAngwrB9l/RPiKzs0I7IBjAcG9rQJZR6bHVM03d8XXeMgk6mRYkhHK9T
-tuIFNQClZI4O34zFhk/oX3NNi6wxQJgcOVOiYxPiCFZ3y65dMMoG/VizyIKarkGf2/CxbRlk+5oF
-IwQFCiCz0so6wDu6RgjUgZWQ28BAUu++z0jX123bIKOWJ0EgaJfS/H2/IGHN99hqxMuOke877AEh
-VUKJhkFXGa+hz5adoN12yUDJRDAdkO3s68JqYHKCrRqTs8vICVOl5+BmMDF7Bk+UpBkJgmxQeUYY
-iGwu3+KB2MYRN6lFHngRj7D9grTRCTPThb4YkzA9tkYSUzFNNDbMl0wNLRjlaGQnOjHZkD0EhIuZ
-IenMiHeiSTpD/JSMzSF/22SbGqZneAErJvuTEbHEu8kbcckkpk92rjgfSWBIEA9EdlhlAwZGGtJs
-33YVzdhlk+O9FkCIy247bOwwcLKYVszvPR8GbgrQOwogkzzAJEBa5VhIMpAukIUERIZvK55aZdvn
-cSNBPFCJ68MqajbhdJ7nKprRGMeNOCGBoDjXPMtyDccpWB5QoAPPTM93LPKcrm9AIPGHvsCZzYJl
-MIqJFsZiEjgQUmTfEHnDi20i8C0mJQXS9Jj0i4iYUBbsg5h/kCFzSgFhhGTaFDfRHAh5+0JHth9Q
-vfgY+IHQ/44KCO92AiFuM8K/gCTJpC3bIytUMAmNUo5BNTKikxEeKGGUbE4HEKobvkc2lA7MWRPw
-RfazCx15pu67hJwJA9ZFgUk4gKvxgyUTEeiEMhKH11YIKnSNDAf+IRAmIZUCkcNIwGtkOwvyymSy
-J9ZBtEh84VXVNU+U/TtKIF8UpwAkdUIkDtmo8EoaoY7kvjxL3aAsy/FcTQe6kZGlW6LQh1WRcE6E
-kaCCSOsG2gXsacNxycb0dXn5QY2ROsJUpJMZaLySIlEiqF3AmnTN8XTSlArCFlU6FdUTQi9TpEob
-SScrLe0/3SEbkHsib2Pd1YQuKL/A3EB3zbIfK42EPWCOQgYsNmOBMuwIMoFybMzDQK3mOqMMQeSD
-uusxaiHySyNsRGanEUS4RMBOgRPLn2IOroIQBYHUuEruSEAquQMWkcERcSBSqFGkeIMlIQBRXSY0
-qCRpyiyxBNONDHsd9qIVWGFgyxmWQ5twLU+zHA90KpttkEC5INzFo5LfsMkrYkgSCJ/1GikXZEl5
-OUV0pVCvgFcUmYFSS16ZTLEgu9ciRi79mFcAKASdNuUjLgPgFWcAoOyYaXRhN2SkmiW3bcbi0aUQ
-uG2d4+wUgGr6bPPrQeP0uYuWBxDJK+wEyOMVX8J1mRJpESPcN8GwIDzNNjnLj0gBNp5obkS7jhVR
-l3ZvYuwS08MX7FfCeqDZaIUMPTAlCD0bhga6koFwSJSqgP27ZQPW0vUIg7AA1C2bVLzYtk02BDW0
-QcwauumQsQCEx2ZBdqhug93nmmgWBm0bnnMikTwOEEZQZpuOS21lEYNgUtr0uSCC4Dk1iJktFLRO
-1WPyxuL5ErW/xeGG/NzVyTJ7EQQ3XCrRdccXOSUg2uFMHcpLbX5CRMCJrgVH1BSAbljTFn6uiT4I
-wrspWyQLQx7ZgHYHeQkcg1FX2AZsag3RKjTD6e2eDATGDvkfYSdl18fPNXE5KBBP9QDh8agDCGG/
-KCGw4a3bHp0bsSNsS9cMKjsMXgSAB0QTPAcEs6LPAti7MFPg7DwjoR3ZjClHM7JN3naGB4ziQCrp
-6LlAJGQ3Cooka94SCFwnQhGEJLFeXYMA0+48ngGRxUUUY5siZRCZLXmwAAhYNn6l22j/KCGEja9u
-3hDVDglohwEJ6FX2pfnCZHVR+oPSAw+ZbACci3uAvKJ7OXIoEdEj7EiAEIgJVkXH6JPIzXLl5zAl
-om6JUyIMWxyw4SPpSJQuzUcQ4oYjdr4AAQMwPFEOwQPP4ZRb+ArIkBjyGi8ggKJg5YFd40aB2HSO
-kgiMJayHJfp3KATVMSzbdR3TpdgTqSNsGpwYuoEkM6DM8un+CY0lCsS2D88Y4SkM29YRMwDBJG0i
-HW1korJbOmffAIQpkAGRo4gZ6IgMiH0iMwMJyOPdJhZtRqRgkI4CxkAKaI68wha45sAys8XlI0oh
-v9uJGkGVb24FyENDUpJh7UTSJECCeQHLz9tU1Lo02HPBzwiOR4GT0eY1xHU0tFJ0e3hAk74TGHHA
-uwT8+ZR1Bm+ETUDeICXbMguggwouJfoQ2/B0dGx5Qyx6ZC1jS1CnrYl8wbP5D6hz3BYJzTMDTiBu
-RE+n+y0QRJQ/eszOCWnC9ZF/CmhdQFXIRPFjF/nkAELg1kToWaLHk1CXi7EUtC3sRALEa9UWbVtQ
-El3sbQQIso7S84B4BayAracJzVuit7bgWpR5CPoIefbAUCyOlYEKWzx4Jo7YCtfe5Tmua/Fb0nEo
-k+aFLqiBgt+FKH5ib0SvE91o1M/tMFMqHL0EFAgIu+B4dF8RVZ0X3I4jkKBOWbiADw==
-	]]>
-	<![CDATA[
-	orHw24VNTwZiHZm8D8wtEH0R0aVJuhQ8IrAPTEPc60T5CmSrqYmuJqJPif5sEFw671+xGT+xNdPX
-HCpzXJg36EE+noWBAmEBkOsRnuYQ3Z5+LPBI2+JJDJZRARGYDYYtuGgKdiAbLWqpRCohqHLCihFx
-AQ9NiZ8YiMFKQLAE4OPiNz4B0nnjTQ8iFq5puJ5HrEvb5DkFbHAdT8kOlyMMmkRT8pCzkBjboo/J
-0bEjR0deKEJfMlnrOl3nyJnl4DgGQLi8Oe8avDUZeN4E3unaKNJBO0JqPWF3iAXrKMzp+pgEdEph
-5HmIJU/01Xk4bkT1B8SdeZpgWpCAJTIuBf3qon3puqGMg4gIL/BdR6JbU6R9wqCQQ1GCEHYpmRew
-SQlIQ3EeGIrP6wpkKWNdgooLCK8KjM5FkZKA+IWFcgKnVMzcFRC87WUqOnJkh7jOgkmOCmGCM9px
-MEc3xJ0MlO3Ja8ZkfrT9AEiYLGUQ/NoBBBqK6DekQ5GEbeiliPYZc9AZtrhgDnO6cCyaQIh4dFTT
-sEVeRKSLjbCB1EtCGaa4syQIJYFhIJuXCMCu8HjBgymGeg1THCxsYZnATCTwVZIU4vx8zMIzsIZI
-Nr/Ls3fPxFsbXPnwoazAEGYkKPIeDgICTxP717B2pqN0CtdhHjKwEgRRSrQjVxwYgRDzE3zMCzVk
-WII/SJ6Fhja8hjeKbiDJyDIBAmXJZTERgXjBASGtGMgp3kwhZg9GtS/ybvCTSqQhqgCais9a4p6l
-blqgTAFdoBcjQe6JDMGOfAbkjWCxsjc7TOMRvKLgM9EF3BBtSRAeRDxjFY5aNLavUMGJKig4sol8
-Rsq7SfmEgw0aWR01FSaP6YqOBsK7kPg3kf9J5j/MXgMfJWsy/FNk1TvM/BPsJ8JiEMcnFpaohuuC
-I02lv+sKXiop/hhINhdUEKKdgSEemMdC8EsomvFF296VqI5AiFpBpE1bPrLctMBpGP8mKuLs8QMz
-3QRDPv7ARH3J9ppgoEgKQmAY2grVAR6jucoQDhqWonXkMJGAdhiQxbmhgLpF3mfrog/UltQL20Db
-XVNYThbyUIBTSOBsOwwIMw4kCCyRkAFCVG5hc/hiG6HLRCBlsPdR08jRAquAdpUMoZioxotGB1KR
-kBqjgLDlxslTXVpSiFnxk7PCEL0O9iTOtCHPIY2MUyOosiExFNhwVPvzGZPyfFP3yBfUOhcH7+N8
-DNdAD8gwfROFYD0HzWWHAvFJeSYA8aEs6nES468EQlRNfJzE5Sk0WwihxOE1gi7PwZPCAVdIZhM7
-MuQZSdP2BLMagDyeCxP8EqXIjP3GZMk8arl4mMw9QxZhno5WkgCxb9FjHXl/5NaD4KFno2k7itQ6
-FZCIPQLhC8vk0OQUQtiS8KL6mI1d8Ip8Pg1p67oiVwgcuVSz5w1/UAU1YjPCE88nbMwAhRsrq6Dx
-iT5reTUByBf82DpKhQK1kIYmQ9MIIESpr/nIh6+HgiVI5wy2Gh0C8oMxWPIT64jIHUIgZNUNEkGF
-AJyOXTy6iXzjKggxIqHoyKeDdHWW0+IbYhjOxbRI9iJiMPR7H/tClNqI7qBYDR5P4AHAGJeBCBu1
-C6YtMyXQE7P7cG0UicgF5Cu8Vj7SI3RbldyK1AFdMox9HPmVIXQUkMAd0VRbWEaCZaQqsjXWJc+A
-L+4agJAVb99ACMXMFyBgHaKIPzFvkLHiIz+prnIK+QZk0iF1wUcxTVPHxjiBEPS0MAE4fBHuB3iB
-vOo+iruaPnI54nGbmAQCpAtrB1knEv4F28WUNAoCIegOpq9eXWElQA1BHVHlVvlcUMuUzbuiTQx5
-eJI2IgE5FiIZAPLEqBuwCNES9LHtgkUIZDCJRpsXeKdpehKvzhIZJQoHyBUS1DMHbxVDQ0xCmgXt
-SAay5GZ44nSwrx4gdIQuifAByAa9XTQnDc0R4iyOgdyPACBapJrsHYL8IhyikNR2ABI2gu2jpQcI
-UfvGzmSAEO0DT6YxABJ2gm0hUpU6slQdiRB48R5YRxhI7kigZAt7agyNpunbrD1PxJBcfaB54tTE
-mCxtD6UqSBCAIVHKODIQrJcOZqeJM/eDNyJL05G3GSAEkiQQulCaIENoSHd7YB1hILQ7pKFgdxqb
-hoFpjWLBEYmJKAWioUbn6or4NAxpCG5YZSH4GuG5mNLHshgh3yxGBU3bFvcKQIiJcSbyHhusWk3y
-Oxs6cpwZCu4KQALVGjjDnwKZYkvS8gAQdulbpmw1AhAmWcQoDRr6s7BYjp9LBSbhKxvlZxsGCrFa
-Nt7YIro9gJC5siEYgyYAeagZpEBa7JnYtMMWBQjQcuI9BTa7oLrQxwLjM/hsXKAuHeVy2Iq4oKHr
-oj9PiscauoHcNCbK2Td0S6R325QdDJDAKrgWUdoY2xRCANLGXgcDZwkBhETQBnK5SUABhSFHN6rB
-MlD6M6ROCzYaZLuCT1iFVMMTPZMSEK2K0FHY2sP6gmkKiw6uZV+w2CBNmEbWZEYVvZGmDrkLPL2D
-KWWK/driyFzsD4eR2RAWkrcB8HXe2y7FcwycOudJEtBATNbDCg7FsUVt8Qg5no3FmoEC2p6JCgmB
-ngTC9RTGIeXJKLQs2tMgFESfqYuSNGQIE6lbD0y2YI83l/kLWemiiUPdt4iZ6Sjtkainsl7HpI8T
-yBt+bg6uk6SChV+LMIoAIkHwl4K6iz4Fg8dxJeGKNof04UOgbfB80XElieejzBgYGDz10Hfy3jA0
-pB57eOgGUiKkYKzEZRw/1JJwqIAPP1h0hMCVI+tP3n4BROxdx8QSdCQ2g+uO6Ah57uG6uCOIvfJz
-CCrXIb/A4Teoxuek6j7NnHd4Q8ZTsk878gdC7QCfkurpmCgM8FRDSp2QMUG4CQxbFiamgTiUhTUp
-05CiUMiMMXUpScIOWZhoSrrMB0ULLnje5khqmIFi1cQa8cXlN9Amt8NeFS8kr46BK+tBsAguSlg8
-oeTDtpDRL8tHRbWmLGmVCh8qAGIp88ClmGBE/Fi3UZAjzIKCN8J2Y29CnZInYttBoRNDNwSb3sbp
-RqAGCVvSxombgRpkUzmHmIwpyipwmIi2LnJ3MR8x311gNYiuKg2dRmEg3xh1JAOtRflaAGGwIkzp
-HAvdwU5nTcxIAwjRjQdYs4UBoGFLeWeB4JCApJJQQjpi9n4AFJU3At8Rs951UwzAU2VanJFcLAIq
-jmAVQWKZkERtWDStQGcHHsTYsDSc/25ISeFKIHyshmHpQd6CkGViQB0+z5whB4HmVJKF112XVTyJ
-edamKSXA0+ImmnsghDUC9VVcTxOlOAEEKlBAGDSQVUoh8OEiABTmuArkYmDnq2mJUQdYZDHF30Qe
-uqB5wdCDZAYhkYXai2ItiIY2BsESqj+RCy2otiiMhp1zEPBUoYwNfPjiGQmGjctgUEkvQIjEEuaT
-C2NwhURhWiTE57+BEARBGxO0gwQOSDVxJI4TCi1DMGjoCz4xmwKIjTsI1SZyWAOEUOVVZdaD0I9r
-iZWnhumhmILHeKbjkoZJH2T74YIhLzwaI65A3aElqRqckATjEhRG4MpxQblLq1VNxDAwzA6zyoQt
-Bh5bVC9po33rI0UHqFrct54tL7QuVgMCjoQzi2BwQoUOUSTEbrDpTsu1MDcGD6rA/2y8xckExbop
-IliFLGAo2XVZ6bjcvCnkb0A1uFDRB/0L9hVU9AnFeoYYXHWof10WKjYV6XGhqRaoEZ5IsNRV4US5
-ehaTIyJheMJJNmzXITVPAqKkYYvGJLWjeCDYmwJP0Nk+CEpdjUImlVYpResert+xUPzsDYBsUayG
-QHFM17MR81ZBSAVwUuUTy2+W6+scVPhBi/N4xVZ3dDwAJBFonpCPKCQAilQBKPgU6qBoANHJU5ro
-0AFFVEMT04QR2qxKTuBxUD6KWHmYFQeKuMC3LB+V4qHzgeimRGViHpIy6DwChnNDLP7WA5U1ruDy
-HBTus10xMVL3PbSxbFMqFYNQFdr9zIcVc3xNNBppSpZ4npXm47Xw5Y6CjcmthSdmiVKGZ/Izslx0
-VInuoEisFUo2HYlN8L5SI1nYsSC1heJA2PiGHQr6wOxHVaQaHibjhiYq/5P8RHroQxOwgFM/CJBQ
-MmDoHkI3QPg8unVcd2naCnXflTtC1oRbttWPkcaHIB4CHV/Y+qpmjITmRY6jGjyxX0ShhZENMgIx
-P62QzTYZe5Vc0VKB7BsDEg0HXCErGaRShSx1Z2tiR6E0QyaSj4nJQloeLItAuTrV+3VbVsejN6Kd
-Ez02RGoKH0vqMHnDR9+ofeXib4XTEgBC6lRkdhj3VWa/izxTN0RWBhAi3yXcREgwAggRpfiMoaAj
-VBfriYwKIFANLzsSh7OSTf78IzCieU8KpBWKft8gjytKJ/CpO4SPlHvIG6tytWg4f9tWRIRFpyYO
-J0gxYydyrSjeyCEBIgcEtxKUAoluKw2Ru+NhNwvR2sRsbI31zx7Hfkop2AoQyKkthlQDhVB6TlNP
-aBDGxflB0XGfXEmtyYk+nR72Ibp4VaVLkN0uRGAcNAZ6NghaG5Q9jrzL6toi0pHA+D2cN7ijAjLC
-HF0PZ3sZgc8S3oieAvoGjDJRFgaPsVlvhOqRh70Fhoty+DwUJwQI8UwGj51WgZ/T5k1ke2KgHQak
-+Jw+9rM6Rr4cBPHAWpcwhZqxkJNOBSFhSZorMSrFUwsMG7k0cKIQFNXYIk/MknOBuUGLg9CRamBh
-OPQMLF0XOSA8FtRx0Ox4sac7LE0UezjBgmUywhRUZsfAyaK2qGCCiwP5Lm350AOHnRqBX+2wE2ME
-16EEBMqzoD9i6QmmBBLZ8vlx1HIWSAjLQ3qkjAQh7BDbQjoDFdBVdl6MqATpFkK8dGCMbivOiIG5
-SZYSyrgAIHQ+iwThiASp6MgN26aJw5gX2CZeFRfPR9Ie5AOa9cDbHxsWuoeH7iE+Bt5nASKkHV/G
-jIMqaSSg4OwjxefwWPRcqiCkM07kISDPD1UXxR3n8MFkQ1YX6UF+4jRkRQykkOzfF1xBDj6LRsrj
-JhDIK2/I5q2DrWQCJOayO+xYv/ioGB0fGOS4mDh0BeocjF9drKUHCKTl6qLHVckeI85Jq+RwXuQb
-eyVmekrZwUgLoBBiYq2DtHtVpidQh2DkyoXLjs7rnFS5QEX7tk+D/aoKcNsVeYpDT/cB9wtvHTm+
-fKaWo6r3tXFeKq0+QgFIevCAmISNWYGjCNABkKhFYaCdgB0Jeiw+ORsgcHkdKge0DazHIpUPdAU4
-mhbe0LOMDKl+EK01yi6iSQFSljM+7UgCCmvqLLElpPjaKLamqPCjfpF8dX34zJlgDOy8GOUrcQ7S
-yT42yux3pbM6cM2fG/pvdBspmK6J08nZcWguzkyVxJeqtAyA6Ldy6QYEaoRDbkyZrF3pDHKbntBF
-DyMMFQj+WBXyQrSxYOOJ3Ri4pAB7RqX6/kBo4hx2xZRcqYwXl5mi03SkOl+suSmpGg==
-	]]>
-	<![CDATA[
-	i1glVTsiKijjECuWHBSHcTxMNg7KuRX/Dvkp8m2BCBELrxzkBYYwmmCu6g42xh2UPBR0JPh4HBsz
-Inz6roNzSnVU46Y+NkiakSVJCIwYS5qRWtIFcpCRMRxQJoUpbFck6RAoDkLYIrOn51gLxy2AAEPO
-HZSUVGUEImQk+dj7QE/JpEeSodNzHLTzlceKOUj/9XxcbQcUyucvufjgMbwZPCssEXdQHoEXHY5m
-o/MjPOnAKpTtwvKpKDtCWYt2KJV4cg7BdXQmGk6rlU4o8wxFFRQ4/gUgk5XO8/o5MaFdwQMGkQBB
-tsd4sRwhSOpJxd+WjdI3fZR7I53l5quOAFEAyQWfEpAlnSyHHNA+zhKXTlX0VUVrCiBUk2U5ASUj
-fmwhdVd5SYdFXfNke6BjO8gyCMnpvnT6k+Vj/6kmJaQAkGgEa6iALDhMDg4lRMcjYmNIU5gOtnjg
-PuUWQpSICnLBXJI5jppdMWbmWUFWorgB3mgxsniEmmfx0WdiTXguyoL0aE/EclKlJ/u0JyhKw6LX
-F4NwOgChUladT6WBUlZckuHjQyFcbIHAELBuKAFBEbbPVzQzpUrsy/MEc5MqZOJO9VxUwu4qip4T
-UL8TCBnEJkzqhX8L/Ds8GbI3O0EclWftqrIjHWl6AISkH+iXPJsR00KBPbqm1JG8sV1T6ghpKC7F
-gPK5IDqUzXvi2UkFEzOXHQYk+CdNDe9yDwUyDUx7tA3B0+Mr1Bs8WQMz3h0GJCZeSBqyi3LUDAPX
-Y+LlkyqpgoC6YBdIQDo7gwKei5PFJCTdEVNV0KaYER/q00oCDqgbspjocde8ouOZSJ17YwWqApCP
-jU9ass0bCUQMiFVytCCbV6CASUvuIB8FNgBIdKT5uigy6Emwgn/IR4m1wNOxJ4WOV2wGZyX4GpY8
-BvJMeb7cUaBFAP8SgqnwSjgdHW5XgBYFOeJ5WJAZsoPJ8+S2ddyMeIqvXhb79uSlEMwh2g2EWHwH
-u5AIvQjJaR5OJadBH74xpdrmIex6Bj47zEN1Ap6OjzGT2lCdCyEenGYpTtAlEII7ztPwwXMe1pW1
-MPqkSSUJSMPxdJGNe9LO8VDqngRBydUUV0wC2mFAtqIDH7noPVzRDJEfHQ1B1A8eWHhItEY06XgA
-plZEsXmPZbr4lhRDlCOa0rf4Pi+5f4ltStPA7P+BIUnERngdpMT4ZKRjiGoe/rkTJ9jhmIhAVEGC
-nZiYptuITXn4gc4US8j39IXmLTle5bE7cOI7G6RgEVMeqaeeT02X8/p0U8qa1gNllcsgYdWMXAaZ
-jfP9TdyRFPQy5PiLhw+KJ0Bikp3nihcdAAB8EXnYPZxzpJuhABLzt/ABhRKl0sMchbZ9dIQAdeVj
-ZBEgIWFZ13A/OD6Ib3zwMRfXNTk+6FPfObwRPCK+h5N9pNax4aUrDC96wSNMz8DfougRyt8L83vR
-MURhm2gPGEKOhKp5KnfhuUSksoYhnanjoj0Ado5Ixh4m46y9HGR9oTpX+SZZyPpy2LmhxKoi62Za
-8i20Bpyr6fHqMuVXho2jUX54+IJtozBn8IGFNSV0PZNh47QofMsTpM7Y6LIb1VVQMpDiuimDurbV
-byz5nisYv7jtZQgb5SkqbsICvFm80FY04yN2gm/8Mhx6ea/itjDDQUXKOr5mzIA4owiBriozXE15
-yZnh6qK6IXlrjSDGoHumrkFpLlyxZrBQBbuHjTZjhomSUuFQEPcgjXo+nEgn3QFngLUu2G74HjnD
-tRHVK66jMwhGxdPb8a12BtQzi5IOeR0N0AgB+67rGz6EAxUJEkT5QunS8j197KBhMkOyjqrIq+G5
-WLhqYfKu56El0XxUkhRYCfGS4DRBCiE0r0oklIEU1x7KfXmoxk0er4fyJ6XJxqmHEqakexslbEt3
-P0qLprpCUlp76SZKTD/SbZYSGaouxZSoWbpbU9oR0v2cwXaSLveMd5rth3tL2JvSPaLS/pbuIgXO
-oLrFVOIp0mWoEl+SLlRlPE11GavED6VbXCWeKt0EK7Fm1YWyEodXNGOpHpqqO2xVskp1R64EpLqS
-VxKN4bdIpkqX/0rCWLpAWBLkqnuIJSVAbgYrEtKVyJI+El2nbEDYXSy6Q/cv051CnhAlXfMMICh8
-hTNsSZBYhN0DxenKm6Bh+4vXm0pHRcANbQKEfA+1I3YUXWHtiTStOHQKDnzjuY98bTaGkG7fho4w
-kHSP944CSLoO3PB1kZ9KV4obPjq7SHUzueHb4sJLF5yT/0QniHRJukE1eVXsxsSsV7qn3dRMUWP3
-ffIMXSwYXgVvwh1WGrd4qsvoZSA99FsqXwm2halJWVr0Y2lIVK9HYlaaCwAJ8lzCB2guYukAs4oM
-OX9LWgd6UYWg0+C11PHRChJJQC6vwL5oR4iyQI8Tirkk6tRN1UNLk08NkIBsVPijIn5ILBOLmvBm
-pddcwgPfItoCXMeO9zmo4RJKMbsAfxqVj8EttAWJ5VBnBu/ClDhXlKYvaKyIAYKDmG6EaLyYidLj
-RYUC20yDkBmOpm/i1EmUffQGQFZgfAuH9sJjwLxNpJFt+uzqaqHQJoTg9GZaEyE/11ACAllYK7C1
-U17pvpQOHb4yTDFH1NJ1VIAH1oTAwkHVFgZlyLW6FpwlKCRGGEiDtjQHhQ1MTYzQku2F9F5Tk7w2
-poXjxRhoRwWkm1LRgAkXeIp8LAeQSjMxXXzfcB4gVb2NpaGr+HIBeUbImnEfyW+UkyW7xbKzMOIz
-hhnzRwwEe0c0UHV0n0/27gp2ISse8NA5F2/xGyhWgN/FpBwvsFPDenCTOQs8mXmZjv7/tfZtu7Yd
-x3XvAvQP+0UAFdhW3y/2E3MsBXKW4cCUEz4YIE6OaVlGDmVQVBL9fbqqe87VY1Rv7u0kkGHwzFV7
-XvpSXZdRo8hdahW1ZCyOJRrt5qynDV/WxZroqGShx1HIYz29rsNEe+MVIcrqklDMmYeKWNlEwjwI
-Ykuf5EFcPb3SMHd4Jk6iHs3b7JG07fp0368LuV0rVS4AP0muGNwUCVmmKdSQioSsxUYd344nSLbV
-jSJEf5kwcRfztD6GVebH+TgLHCQreTfojTnwg2yMU4Qk+ToG3mu6mlkaYvbEwsLo1phvEDHvjCgM
-s34P3eSAWj2mic14znOmmEtM02jbbIjDZwjkaPzVcEFa9W4VhOyxCpGQrf086y5+3PtLU+YHZbsN
-hXwTlEou2GtQdgnaU+Lw7qUoKgH7KPfjjkQh2d6s4iKbPe8SkoqT3WS5hJhnAwqhIvPaKFYPJYgW
-7+4KCgO4DtM7bJgato2OyZNykBUgS3DYaXXM+ZCIbHsWU2gsM0W3yXZlYYAr0YTr0oZJYIlPcwsl
-MEzsbWYn8efaM68iAdf01hfl2YsLBga3/KoUStSdQQ4PWtrOhKPl7Gm8WemEiRQOz1SvvU47XmAf
-Xj0hZ8YzSjMQPn7gDnKSSj8Q8HfWX90KPzYOJzeqoI6NEsxGQl61maOWenXH1QfuuYiHhA7EfX5V
-9izl7XcJeVBdCdnZ3OVpBdRIE90SOipRHCC8/bJc4PbcFHohDMa+Hga8kwc5WphVS22u68/1UotJ
-MagQvKVQGOLtvbo9zxVVA94myuhWbxwb+T5KX/S5pC8KpqGoiGGkNNRPMrroxF/I+H2ua+XbzN5j
-20c0OmgLb15BhaAWtgn12AJNRiHurNhmJaLE5mBPrUR7sXDT2Mr8E1qwslVo+DxmXmTH4VYpt6HT
-DGtMx6xqlM4cKDFxRjc5nErgUVCth2RvU9j9dLSA5Eje87nyshNPbmwPk77IEfPWIhHwpKbGf3Ft
-2k1vXmFQGXr6Qso9R4OzIL5o1Ubm9maUWqBzbHH2PLX+qoTfvmOG55ddFudCn1XG8LEJzt3KRZg5
-YS/FITGrhvgVF3MrTBOuh5qZViirN/80impiPqBiD5HKJbe5oIWhagEUvCw8MJyPEvxFQ92QiUYF
-cJerCluaO889phIGVJcIQY2U6Dq0sJfVvElEUjCp2fVeE5EypVXb8pyEwqZXmTv9KdFsmYDem5OF
-KSOG8zozbz9iCKAv1Nh5ZCvpwzzi0euzt5n4/e0biIBIYgPGODRWaOfk4yoveK51abtUaFYySjDJ
-V7YlvnFBczb/JnJyrbGDlRFDohKLQosPAPvHnTZEpzI5PSzw9uU6d+zbZzIJS6Jty4g9OT+BQS8y
-NE6O4aDgE5kq+uNGBkp3evTrDr6P/mVsbQHjbme4TW7IYVU0r6aHQw5HUc8Y5queFfjEnARrWbWJ
-yC54FDnKB9QVwnzaLFSAtAD1l3oGP3hoTHisSKCnXIuVIJh33W5Pf9zIiBEcWe1sUFPCxV9wVtnv
-ZIzP7lF3ADvOkJ5cl4xKS2RRtqvbm0wExumuPyn0zs2z4TVpvJq3yZnW0C0XIdfg/Rqt7eYQuSO6
-hoxssJEAaCZDh8vekb1XO9b2HyRWcvLwS8Gt/5iaBRXqu4R0AtcvFGALUwM+916hQIYw3MC51I2/
-ZTmORYjWUKZt0RMhkcQhQjWw1tLBC+ls/LSKmRQdTYwBNszGvO1+zihvijeAFl7js/zkybxqFV22
-FKYWZ18yhekHbDvDuqTJz/V2azNzFyEfxOnk5/vAk5XNaCZDltgSKpnkKgXALh6mC5KmUX9e13Pb
-JDfhZHUG0W6HVxIqqE1EF+/nc1rleJuPZf1pe5sy24/c3S6vF8gdu2Dad87FBBntp2dq6WiHLzv0
-u+wsJAs7tJOZCppBZj2wnWRX1cHcupak+WOzmM3z107gl/8kO6GROjdjkLi8x4xjinYG5N4psYvC
-EylRPzDszBJIrLROK8ncxixI8ypmUctHzKWvr84fbfaNGTiz917RPx+eTNMiQonwZNgjU2Say8Xk
-cJ9eIlFxQzo8HVQCjbDDMJrbSKO/AguJX6V4LBqyX0TdD+aDks3F0IOi9VGBzynFmRQAxf9p7hJM
-PGdiZ0+hEGaecyF2O7KEPujgx+NtfCfFYF7Fc0EBf5HqFzZ9zVh4JrMz4+lZIZ+mxTsbh8LZlU52
-EN0wK8Rk9U8LzdzGrFfzKmbNmy/iraMP4oGpi3jy3sZmcJftfds7do5qtzgFM9WSuYTbmOUiSdTd
-KT+YFpZizy5eexveAOZVoj9/hNl0ZizMxjXj+aZG+/AsUU1isu/TE7nBl6i/1nCxGKHUKqri2AjF
-mgywsFtIqQhR4HRPssWmt4GlkBwB/6zEoWGcEapuJan1l934rYXQvqlRpr15YiZJLeLGaKs6IA1R
-+NPOTZHSQjve4Zqu5BmpBjw8+gGQmwwpnMD/do87FXq+YL9x6Uo2Gbaao5CDPCibAl8SSmkiO59R
-J0csVilx+NJR8uXDtAEwRDe+CM14WYr4KtToS7YDrPC+dtpE8tw+VK9Ua5tCx4dLvW7ZcbspUKa9
-J1s4n0JGr1y6SEOEK61O0/ertE5AeZHABXXA2xuhyo2tZXknyqq8S6itjuzyA/bxCw==
-	]]>
-	<![CDATA[
-	RD0nEmAHikkGUHiZeMQ4XfQwYkOCN7LiHPvfFqrnZV7dlNR+FD3COP6UOsYvmtnZDN1ojNmV7QGB
-ZSOh26PijLdCRc+yD0HNt0zlCqnQsdm475hu+IyxUlM2nITnqW/5SklL4ipfEk+49erfZn9wB8Ba
-ofzCWYiaMhqhJIn6fTxEHReY+UzojrriaqKLmLsPsfOyaCBSKDSCz/Pbz0UrbFiH8oy0jrp7bxKR
-ZdIDGdF/hSjBU6RXxEFbqzNUzK0B/ZQAzXV/7xKZO7eLgYM9SA/81mInQdr3gkHdLSeTb5isHxvH
-SmBj6HR6UDOHOZ5ZibseRm7Um6jXshKlXMoO5iVUXvpBkemBmdXFV9c2qleIJVJdeMAqZTmqHIZG
-AxPaiU6Tex7Y8ETr8B+T7ZQD7tEwI8UXw5Ys/oxbMQRb/SF7CFzHQP03zOEfuJFg0oLGa1wKQQ5D
-Z11LzOjKPRNh5AobfbehAgiBGIn1MJWGKIOYdh8h5CkBD0+WFzFRK1Qr9FhCwOPClS1HIS4wUwkw
-kj0xyokEOGamWfZ65QCrgWkP09BfcHiEsgM95RA2qGUmk5IHCUfkrgdC3IhNVOHUZKlycJoqTcKJ
-TCd1bd5yAE7PX4wz8XiPW/LYQzgUWdFuMStsA0s4cdNXUe/YCtuxjZcIq5LXtibFlCOv/UTljxl6
-gOit6wtRjN8qA7SgJPafnrg2NA/oyeaqSgJflNvnLiUBpkmu1NhbtcS+8zKXX6XJu2iur42NfUYP
-tVtWKFtyJSsUqGhOdAuu+s6jVKjmIhXLYZMWeujeb4kNLRkRUTjMXCNjiadXO9mCBUPgsfA6yYTc
-ipmnRBLpevmyksHjicZ2TOTDxcJjl6j2wWyvZfrAgSKdNdEcXxvvOXaBPeHj1tziD0PVUCYpUG7y
-81GI8GI5NERTBEKW58B5vWARITlkKpxfLuCdvc/cJ1lqVLCj+2J8D8N3Ta7EY6lLdv5Y3aLXD/1V
-szOsJyehRs49N2EVCUxTeOoxkV2nrLMPhkUke7KHtMZjh8+KBBX1e6zjO0g4Ox8sdDpEzOJ4l1Bm
-Bl8Rkn6s+U2hmfvx2tpmCiEtVY7EpZCZri2vGu+aRXENVXJ3RR67SLRvaC3XYc13bfYMp38eu5Ab
-MKNCyWkWR94rMB9cx5wp0hkU1Z7zDFY8236br8vSY5dfSmxPMFCZBFweWWbUqAm1T1pWLBzPWTh/
-oZw78NNLwW87GRyZ4aXHFcFCJwsjT7zx+SfqsxkbWdN5GVhXylGOB/zc6lEnxW45sHIljjXhFoCX
-yaUj8ErqSj3aD7OFxj1qiQkp1/TgsmFjSdcH2UuFTf6cK45rCeTN5DxbKdyrvzD/+oe5EKWFQaT4
-kqxbCMqZPgx5sbTf31EOQbmTkGFtPQlhP/m80LX72/D7agvvwl3G9R0q1voUNg10tPcFUhrFNmTS
-4LQ5UfyPpf4yOaHWDGLM8v5lRkEQeLpGQmLo4zuLHx7NeI7QyqJXnVdfxXtz10hcyaLaYGGcCPnz
-2CSglirzY4t2hZrtynGSrJZSPbCGmlPACJ2OCmORTNdDUh5U2EzldCtzYioKoCpPJBA2yZV9ySDP
-WUKdLC7wPFQRHoRs0aIkLzAwfxQKtp4D86rrQ7ccGJVfpsZl7IcqzrSYKp84HioATYIj223QWTl6
-Xd5unkzJmBUqF1G7vW2JWCKUDDaxUC2sSFCxmSVLVSGwyQoxvskQEO+U4zXE8LfcDW2BCkEuJXcE
-eouELOCthrIh8vWSgMq444PAWGWhx2tC8CwZmPij71sNeOjw2bVTzYIZvVWv8kwhmRmYoJTz9Bm0
-sFkFjBu0K4lx0eVOiRQu7j5txsysFe8SytaFOAohimdFi6EqAr83x6u61YDyMjOoce2qxkKjqcyQ
-y6buI1+xklWFuzJU89+J+p09ZloG0alHoXb8+7Romp7AHIPwMp3FkmWwM4mfqyLxPs5Egm7TsJjz
-INGNj2aFSjdEglbIgEBEAhHSjGSY0RGBe50+FjXO5OTW6+A/1khKvXjCYdRkcXNjwFFzcjmdSkBR
-+DBu4MmXxIaVOKD+CiPRWOjxmhA+ixHg9n0Z3s+fvd6GcDmRl1Bg7HpAmLpI0GfPGhAwKQpv9Stv
-d5X8S4CNkDtm/Zhqh25IL1PjsqDTxmzcJvtdQhOA/tpPQGAgEqjKmfrgbZNvRrZyTOhKGRy2BLVi
-QJva4LCzJLtgeBmHneMEO9yu1AmHLbGxpwr33ZYBa3AMjaXG8bVz5W8OVJxjcNY5zCTHWBLBu55s
-5W/2U+Ue6n3HPOkcjRmoresYUeVvFgphKMPnyt/sZ5Xood43Sy9DhnsBjj4Lhw5qEK33va5DLQFD
-TFXoRxWUvADRpVK9r7w9hhMPxb959WCN43tj7skW/2bhum57K2Qu/h02AKncQ/GvTBXdhop/Zboh
-gGWKf3PwGPw6Ff/KusKZ4eLfvBK7z4HhMuAcCrrvp4Jg2Rx0GyoNFn8w7qFlrgyWTUh4y6vqRXYw
-bg+uDBYJJKzlymCVQNvHll8ebkOVwSJhqAgAHCbfAVGiU5GwCOFS4yJhGS+oI+MaYRlyKhW9aoRF
-EdG3Uo2wTKqRgNGQhWFub8YrcPNdrhGWSD+qZzUxZfXioprVwrLuI4pTtbAkBsiGpWph2V2JJ4AR
-wrJPzTzigvGzPJELhuX6oio2R4RfVD1U+Klqw1YEb5fN25lKBVsGLFqPsN22DFiEEPrHZcCiGkWz
-PJcilwHnxdP/VDWHMmAZFgc6jcuAZcjFdHgeYVwGbJM+h5pgWTqmoBfAl/Y05UITzVDBgX+oUpEN
-hmksc5s4p2n7IioKllwIvawtCtZcCL4vFQVLtK4VmqOMEu1YByzhQio/oMERCZx/rgNWCdyshzPN
-3oaKYzUpAxJcESxhS3MY2S+qVHrMtcFjtGw5sBiTeasBHqNny35lQsWTexpKXANsw5qHGmBZOW5P
-0Zgi4LzAJptP51lDJzpGDvXAstITC0FxsOhfch6pOFj3U95KglUHQ4EqlwTLPsUSVi4JFgl92AWD
-OvxJY4PG0dhzVbC8aX6WAsunkUFOpcAyhh7tXgWtyfY3DsgsCpaJ6Z5uqn+iNPbDx0kh13YoClb/
-AL0VWx4sy8dQgTr0Vhwtby4PFglgiFPzCAvAO/8J8zBxUfBBYhUFH36x9b6yc1GhvkvoKgrWX0BL
-cVGwqgYIYFNNsKoFjlSb4Zecsi0EFgVMAf3CiuEtV3S6rCUyn9bsxVcil6FX8sBKDHSW1ILOx3iO
-Lbzmdyih4DjZu0yD6k6865vsNlwxB2xNRsUNA02DGNtujfMUvpzqsqqNtg/yuCqLz5w3sE0Fip96
-mz61CCgjgguV0A4XCbq7beZmb5Opfn89P2c0Q+27c0Wc3p2HIDvqsu4b+d2J4vcyG8TBUs2ZKJOK
-0QGJ6sD7Bsr3GWOmmCDIwSYaq3Re39E8Y0LpTEwZmQeLWDgsYZaUpCTZVgJDpERDnEex4bFd5wCR
-dTp8CQ4YN3SERQIrmxtCbUoyE9HtekoBuYH9Bfq+HCKRQD2VOnp+Z4k8h6iTGsqqPw/XE81/bJhY
-Vqdo90YK54zVseIVHSsTa85tf3fHklkMZmPsgfcSz6SduozQmSTeaNGRxGnkMfwii5hMVVt5KIoU
-DVEWKuJAo/Prcb3KfiInc6VSSsi86SOetSUkWiSZojKyn3me12FfghmDQiss+OmFVlUtcJ3IGO91
-lZT+N18Yhu3fe6r5eVl18VW0uy7f4Rr9NwRci+O9FOi8X0kI2CZoKxR/2NVBp/8ZLSge6VFUgoNX
-IZ+vA+/lp3V7FMrXH3t8bJ1WtxurtLWuugJ1aekmOGd1UiXlIVuSrIaIRapHe+PDE9N9sBm8oYqW
-TYNn2SU05qqnsIyTiKRGEK8sxs8t3Z5SwwhCP7dQDFsk8BwTNvrdpBcJAgOsbTEXfZnr13g9F6v9
-laWQHUZx2oaNxmSXxkRzeO9wDKdX6iwr+oM6bPGIvjkxO7q3et4MBVEpn09C1Zn09UHI42crms6D
-fRiQL0KgdHgQ1mgt7UJVn8u/FAxdxdsnzA7lwrzLdYGdBbUIqEp1O8FLKJnikbXQ55UDq5Hem9sz
-Vlp5uXhSNmx+KzKTnSCTzZBwn7kNeCOLchs+E0PM4zTC46leSIcxcryuIrkyiR0lphjJSQMf83aG
-DXqBLO68UOLkZYl4POSUjra3/cthe2NKICVaLGKGQ0xpsWvv1sa8d9VwyjN6Tn0vdJzgGB32XoXI
-dZ4aJVXTXkRnCCkPM9JLyCy7socLTOyQIYfHEOSk5bd/O2titlirbBFZ/RgyShO4KDtqMjtDmLQ0
-8n3SBPc/Z27FtrYb2qYjQ2Ho4OHwVs/37hO/elmBAuul77eoIxEi8JKj2GTlgydTH9GzBA+06Epc
-R9kQmufC4WnJ/XDAvRj610Qx4VXhtvmcFKlYE5ajTegV9pHy2t53ILjkC8lDT01sGdu+3blESkxK
-uUMJFJjLHu1CUY1o7sy9o1uliyu4JTLnT7JBwN3KgRJtYtYi/U6w6yNns/1lI+RIwYlFhP4cjTxn
-z9RkZI7CLHTxc9dkk7nqFKw3EoWOdokzWqGAHpu8CgaRC/GP5Bw4wrFA35Gt64pYPYVk+z0Z29Ce
-kIElM8uGZgzyWiwOaAsrKGnMW7CldDgz3eFw9nysL6HLnMrL8AcDFYtHGKMwJKzREtn2Wcwfl2Ev
-EgRyZIhASRPk2A24WH4ikGOnJEUx1u0sHnsCNU4SjJ05CBWDYn7bqJwA7dwKg2MITfX5KJQRi5al
-MScYWAxBFgm6hwUy55YY50146KG/3kBn58aJ00Nnmlw56XlAgx6EPOYsVOhmCz39hFYyC2lb+ebJ
-5qrcYK55Qx8mQoQc95TLquxeNkc270nCHBpG6AApswvkXUKMRD4KrYKobQVQDJyByCJA3qqFXeZW
-2FulRnh50Sw9n8MQjcbe+az51btXSk0ZgE9r5AZILS9KdN7BF+FlFkakSHoK84udHZ7SscVzNr3W
-lpEEOk3IqNFZcUhHmIURCCyA0uk06pwX4riAPohxH6Wi4hMJigZlwtR0M2AHE8sIMS74cRQieLFI
-YCKRIcpjS9veKyZI5Bj8y4DpYhhKeWeV1b749b2nuQrTV9FuUCuUwwKGFmdQN8+fOGw/f5LrGEcR
-mNLuiYqEMQJNONdVOrVzoByKEKiiXqGdepTgPjhWqGTT0EiF0PhakbCrdXtxhbZ+DZi3Lo5DTzWZ
-Q17mnZpTcjTELEETsegmfHiIWPREqQMTsejsYlXi9suGHJ8RA/ogx6CIjCBN0XgUV0t0XhqO9hoN
-JFuUL3pglei2VHNznAy/2RxD1dmha8Vev84wHHePPukl1Ogt6QAw7xAwPnyQiCuY9qZZN82/sjo2
-3XIXK8jpB13ndzFjSR3dsDRTTs8awyJNLQ9l1SUVDJIlT6QfJZGPk5g0SMLrSBPDxA==
-	]]>
-	<![CDATA[
-	OyufBU5WrFRdXBapzj0L0rAMH8ShXAFrMR9NCRSZXELBR310nemZfbpX37NnHaski6UAuttCXMlS
-g8Vv+ByLp5B4itRfeVyne3Dd/tKBoAwELIgPcgRtyvZBFKc6caCU3FEHnjhQTkLILlIWUviy0XLb
-Q6kyv5nqafNpmWTic8idut6LBMDfsCmmnw/CMuj7O6tWaCNll17fl29Jp2s0y5/WDXeh6s2YNISA
-VOZsLMyU1ZbWKJkpObtu87gnbaS7KQT/SlKfuB9o1Moq1r91RGc2trIKPG4rW7g2X2Q/oWVwINgU
-/AUaGMzTKQYNvKo8/ulKODGvJmNlpxeXwxUiRZ05HLM2P2684OQoxCEMB7oCYdEvzwBNnUfBVr/d
-CpXM87JVCVhv3i5sc5scuVC8VQRwi5EKa04/SBWw2cQ6BKDTEpHsyDACEF7wlbhaHWF1Q7E8B8UT
-cD9Qb8TiaZ0Z/riyiO4O5HOyBGFzixCQVBTudRmYkVaOo3rg79LTLtHtIzGRjaMc9oA0XN++dsxt
-Jl9iDJJ9zooVP5lDKi/2BYK/ll3oxGU2HoaKIbrTc8hzjZ6/R+KC2/eM8cWlKQLEeGc3ydk02RjN
-BN0FNk4LlpV5jDyGt2fbuxIogtiYVsKooBOJaWHAp73N+DSw0hcv8jboMePJ0U6LKDbUwlWy1aJe
-Qb9VzQ4o9GAfmHrQDXKQZ/vL8nGQZzSzTeQ67sfa97ipjO+bc7MlwEunqirp4Acm1ueTUCSC0tJJ
-2/VCrLrjA3BOxz3NW5UeMC05dBjfxplTTZlRtaSk37Cb0nEMbhIR84vAXZlOpFSq3ToLabmK+alU
-8lOlsA80v0jkt2aocCiyBR4LBRKv2OO2qOdld93kTG0ocwpL/11COe6XWx4KfZFAkanaqU4qV9br
-veE8ZKYN0vXQUIMUz05EJ2KnEon+tnB4qxyoqasj6qfCVLDVBVTxNRALXnWERJ5LcbjGRDxT91CM
-F95iesMKjKwi4QMt2gsRVn1CT/CCxt/HY/UUCW9MN18DwU6MxDB+a/BETm1vQzXbzZPBWUPEY6Vd
-ycwalDXpGcpsy2u/Xd4q4L8t9Nw88QiJAO4XltDnMFzWOYxGPaYQRLlZRt52cb1vNlfV6xh8cM7U
-x8kgYG7POQzFy0DCYlSJneRAJqPyZ4CELg2GWjI3vSwe0FS9k6VdOSzZmXNLV3jF9+3M9ypbA/V6
-IqdMthf4m91bW1R2qahAN/4d1AEgz262VWyJrAVzfrUZ3pxtEpufOq2g62xMgUto9+8aU9Lqo8Aq
-SURJa1/mQL319rG8YkjatpACfnJiN8eQKgr4ldo5JEgBPzk7qATKBvzkKDN1UogrrIVfhagcRMIE
-/OBV9EHFXl9HtYk4QmK3VAZHSs/ZfR8Ubl4ho2XKJQS+x4FWKHYR04LqrLi2onCc+1RoUog/1Vaa
-SK05xi8LMjOUMtvrVdtXqhRG21+EalcStBTHQ5owf62hHV4anJQXT2NCbyFgXTKXUF8R2juMnw2O
-zuKKVAgj484Eeg9CHvfKJYQYCE/rI9eLQsZ8yrpuRvn6KeBaf2w/RQLOZi6Qkx25x5zL5OqTCeMk
-nviXiC+qmW+fWKJg6qMsYiS+vsLGZvEzW48VKt1+feLi+qMQhYCMkEggYrVQTaNIEA7oQhmnTpXz
-pVPJWHaaKgXk4XVxhevcOY+X61+c2Z3WL7lfubv731iJkesB4g8lDLlaAL8pJ8p8+Jdpvz3LSXLl
-TsCzdciz+iAzm0yJti4nN7SLBUwFurMs3v8tH54xo2vVCQNmVG85An6WStuxMD/EmC089IpniW6S
-ZaI7EVq1ENfPlVCSzcaL2jZay967cI2guU3FaIMubNACxUwLURZJrLowdKQ0LJQuc33v6IFKC55d
-5SFxOde0zwsyHxSD5yyZ6nCsRDSYQSt02leVAoTvE3ruw9NPuCVFAkoJTdVNNdw0/irZqRNbsrOz
-YCFN5eNHocnWsCqHMshqdnmiPH81WJeMmB6RYKyjRQLUTuu2VKoPa4ZkhjdfYwPqtPlaYGwQb74W
-ERtkdlBjPO5pI64GTLDNAKQzhgxRJX6Zd88TtXFd3wFdI0LESFQRLCYSVHBL6BqRoCk6bBYjdEDX
-HIQIXVNax/VqwDVtERgeIDUCM0BkDkNqDMGrgdT0wJQoFlIz1vxxm+v1JzqGo1f408JGS8RU3Drw
-hQxcpht0+AEu01m5G7hMn8zS492z0zPMwGU6cU8f4TJG6ASXMc8qnT8q0wqvAStaSp/UZAeWP5kn
-AloU3ocdodDGG2oMRD95Q0KXxowY6A21yO4KYWSOXvIMgtcYLXFnUBhGtXRT1/KRn8xMS7Q+UnTa
-LKQamHL3sJBEiKpzaCGJhPzV6wvpkvjRhWSFmOrs8RTaFlJFMLpIIE6MLZIaGk/1+lLOI7PDVIPx
-PBYz1qWoJepGzqj1jySmZsgZcGY8JXTMQhtT8heHZayhtsxYTRKSUBt9aEE7oHpGV9dyRUd9YPQ8
-rXCJ06GJUgs69RJkfiUiUF1jvBtBzDXCpyOPr+xYK9ZkNtk4VbDzSY0IzRcBKj6cpSLbu2dG7dkA
-kRXSWp/HHD4ypV7/pZv4gArB6YD9+YKG56kkkywOmVzPNgl4SRJiX3xhz5EiAlBZRFS/6JBLUiQM
-svi0WilO5fl1TYdeqrKVvcAb2pindTXYe5pqnlrXeuY3l0/erT3JTdhwwcoZeGI9k7I7GI3AZ1RZ
-NUcXlcpBwtYKHoSSNT2CKUw/CXFhOgvJkBnG94Z6iqNjiFVq1xSb2zwjHDHrSlkvAJ1xdC1j2CQZ
-p/9SN2Oy54aINGuOg8sC4Ict45o6OhxlFZVCFVYUdNN9DrUBjgUSQ5tthVV1ph6v8RtGNIRzwTiM
-CBhaDw5TqhDV/fHrmjdxtCY4sagcdaoxXCbNnaiUxmQfxZ6HojrR/qg3UzF1uTKhhLknN3KoKOYg
-pJ1UDVPsoS5XFq4h/gMXQk9hLorJui2mW3Jpns6eCL1vZ2KfyhaUqSKoxuWRbY/hr9RomQQGaCdq
-E6D6BVSHhC57p7Rh4HJPh4SgmjbkhTTvTuQki+ZNfiGnZrGGyS/kOTkDYb6EbhSAOpyePgyYVhMf
-nIG5SFK/Etvrp6fVOQYWovIigbWoqdIcC0mvJYb8NPPNtMyoJqkasplEdKVimR5CvR9OTsXJV33F
-89hQVrKnFt/M9Eh8oNr7xudpZNbYhlShqvbxqc2EEtRAAFM4d6yF1uMfV2Nfm5Ccjm69Gz/jwSuL
-q1w4bgs7685EJ1mPfNmPGBnIT1MgMKvPhfc5/gTn2Sb0XMqZah8V/gDqwhwHi+0x29ShvDlRxSY6
-bHynom0K9smg0ccH1NKfZsYffWWhX9LJArsyE0G0zPeStid9ZFfU86sz45A8dA8p6TI+rPQPc4Ub
-ElWHf8wGYI4Ypj5IzMPRXi909Hnu4pALG1vbDhzv+88//cl/+Ief/uRn3/ziy+9/+Ovfffrhd7//
-7uP3f3r5S7lWX37x6+9+ePniq//6n7756l8+/tu3v/nTv33785c/k9/+Sv6fbOsvvx23+ONC30mb
-QllyNZexr9twhoZ92MpYhlHI3IsgOQRPGMbbtPGaubhQX9y4Nl4wj70Zx5E4DNn2ritffxyPFZW8
-Hy3eEwJ76Bkvba73hWCExp7xKc2mn6Zf8dvPmDpu+NTcAqSgW/d5CZW7QGXmhiDyrBLbrGr8es9G
-qMC+VVRCpjOEvle/zGQbVFAGCVBs1ochFAsh08cKrQkpABHCN0gFt2AIaa9akXMlYRBYJKg7zNUh
-XH7y+A7RVFQHxD7L3zvkEgzrQL9AVy8+UpA/LC34fIdoCcDlNrh6llDr0beWmj5I9noke1muAxOZ
-SHDMSr4DaVwjJRxFYm+1rhJAvyIDNp/PLqv8gq0+YjRR9DHxGgCrrahanK1S92M2JCXUDUQAGgjK
-/+JDMLb2UYjJUERoPMBPCNSd1A0x7Z10x6f7jEldGRza25bNNQRAEVbtw4qNLz2VGptersETvY9p
-CSsPOgkximPMNs2npz5XIpHxoxySJ4bFLe+asdbkJw/L3jXaGMLADrd3xNYTPDGeiISZWE8rt3uq
-2gtez2sGhAVPCMHcLR4+yKBs+iJzCYI8fgfIS9tXbJcsX4GtCq62r/ILKJ/5y5ocZZ0hMHvwzbSB
-lboHT0mpnGxJXwjUe80IPaaaAaDE5X3fkFHZy0B7mTOBkEPAwoIX7MB1vY0Vmp8eCNggieOyY49D
-pOOkcElmiNR+oCxLQ36AJX3FLOU0AyVZPTX9FAn0ZRJV/oRZmmYAlnIeZoEf71rf6yEojt21tBqX
-4MgQTUzufR5BPKh5Wq+B21Q3LuoTFQRrYG3W4KDmUSvsAGsqK6zsyrkWgoleEreOF5Y9sE90xfNt
-/OFBiNudSaFt+nkdl+c3wJw3qt0SiW2EJRlNsFvz8LE8DIpUhACgrGtIrkb6U1qUnhp6lkqP/yQ3
-bwpT4KXgG2pT87ei88GIuJe851QzF6aKhORrm/4XdJS8SCZxDsuOQJdYl1kKtLdXSedYfWOepQOg
-leDF8mk+CIVmkG3bk/xtUkTUUD2TX9oOlUOyK4AlqcVtZ+oRImbiVkAr8GLSzKHg+Dfulr00AZxV
-jRvqhkiNYlugesxh+og24d7UqtyoL4cceR4mJmbC1pvtp20nLvZRmPb7F1jVqjuxYvoFW9XJ+cQN
-kUxZs2h92BymA/qHdTRk+9NjHicwsjlQxbOYaLtDk6325PORazHW5seTloUec8vBehIh0gWZ+6WZ
-/UwJgnxoly3WCWzFxaS2b0WPHF4Xd9+mWqgN33HkPRVrZGB1lhJPkZDqeqydX5fL5cKAiky3yQHb
-PJVpT+9mSMpU9aLTCTfLhx0RIq73lPnrg2IxxnVSYes6Fz18mjedP5F+DxEdvRSpylCdxX3xDAlT
-NKUG5b4MozuYab7hfISTLZc7LujOSkuECrGpdmD41/plbvrsIobaRQKdaGcb7tjb+ED+o2Do/d7A
-0hOaIEx8oQ/Ouphvhj1meETSY9hWu0dT6KG8V88DazyxF4xcauZv3zXjS8h1o4q4IaHzK54hullu
-Rs3HvDQ/zkaJ9TgK6cvfekddCoKblbiljBlt8imOeOHDVcC0bj0e3ytkLIdPNSZczcqQUhxDIFVE
-aKiOLYgZ864sr/3mzMS+MV7nh4FTqQHsI+nkgjOZZqrJE80npYe8dRM/SD/mWTpGzdfMQ/uMuD8t
-CPPuPVtfpQcSCslupEUdsGJPSeZ1P5GkjrbuH6xUO6QtZQIpomXtT+8CJmQ8l33JOACZqo+k0mUt
-wQ4ao95Z6Tc1IlFBjQ9tkHURQg0d/JZpnkollX2SsA/1pFbV/XnoD/sbayXiHr9IL1YiLP+J7nio
-C26Rykeb2sTI6Di+tbX9OJVJDXtkRSSYb2cuIPxyI9ThvJMnFxq9IYEWQjvQk3ToPw==
-	]]>
-	<![CDATA[
-	Nt8m8YP2BEt8WbSBtbaxfkQv92i/yFgenaeu8gJ63EIrQil5ssAfJXASrTFvNHdS4MRf5yWHxKbU
-CpqDUZau9r8SjYWTKfVDZD055CtXIMDpKr68uXl2lvThJITxIZFA24q5kESCjM55a49OoSSRYImI
-RMI/pL0gEuC2GAl5EHc/MR8qo5g92aKVKuu1398W8CiRYmmaBYMQgrPFxqZrpBF6TCF0dFhopfFP
-l8GMeO0VQE1X5pLRzD695KIDx/CLW33cxi+XTOoYl31e5rjIPH61rw99K25F7X+5xVAsSYaCMOCz
-WULeMVXj1tvbYE33SYLjbMYfl0QLOC3Vk5ssOwKLrh0vtqi+ojnA5Pb3T1NHRNRlL6u58dNI8NzC
-cZh2ERxrHylUXqINwIqQMrXQT37xpTyDO/s+kfCD5FTE8T2QOXihY9lDIJmdfkmjINl/JMPESytA
-8nzX2grNKJAZoZYsDFTrZLPqQsLaON1xPjDprLMhJu+pk092bCn5yl10IcIQNQND/TwPtpQP1Aig
-7HTNao866h7kKDYnxjo29WKnUY02bs/FxF0iAXF1qQunL2K1sxKufiUpboesuT1DFmc6CnJmpg5f
-zXG5bF/dU0C+RR7q4On5HLSSWUfVwUwgutiI3bYyV5+uO0KC1MZLI1APbOEQwtEwEoGsgk9zgRPo
-jzgH5FVw4jnibF72FFjzgQB7Vv8EWsplpt0CEeyXctClgbK0hSMpOuxYw8r2B8ctSj59RuRiRN4o
-QU29UigGI9dReR4sW83pwlAa8+IggQSf9kGH8L5fhCvPAWNSMaPCrBVhJI4LjIWM472ghE8Qlx06
-T1bB1cDWB2JoFYIcmLPH1LOd4uesRamKYagWOtFn9qBeqDHJjSPIq/NLc268clLVkzsqW9gQpHhP
-UfvKjIYiIaGNZ1/HTkRH3gccpXIIfprsefF8/PtM7WkbkVPpebXv1TsJrCO8x0FypACcR/q+pKFg
-AL4F9C9FwAQxxnKz1x9LQUBs3gQLBIwDXzfr1wJ/UrrXnv2F1y3BgkWiP/OCUSWE/zQdrIPQiVc4
-E1YuUtvSzCy5PgbKId7WdBSmUyJiE7gKpvwSZaJEApN719348sFzignQUHJIkAUnWOxJli9GJDgo
-hlNrWZqo6FhIH9v3RarUW7hmUyAzPLFGN9b88nnZDZhAcLQA0sHrSNPPaAg1q7OBPGBnaqTojyK3
-pVjwYMFkR6/JQtapjAR78IKajAf7+6oruN21zMZ7Zp6pytaZkehzGJvRzvTaFyruGpXmeV0mgtC0
-eHlY4D9JbC7y5O9avDF72riFBL+sl5M0hJTJ7SN8VE9sIQq/8+7793TvSHXXetliOggmcxTDUKGM
-G1xouuJBCBaa3ClMbDsi/1xAYKEE0+UiFy7IlO1wIb+qZu4TfBaZSPgVQ7hZorbFZDUUPLwrHgl+
-gzlnYibiRxBa3UggI/f1IKgDkJMRimMVgIxosIJFThoBgjQQJ0vXftnUjB5uq4gBQhRyfXU11v9m
-PKTqE5jgCciUuSOcn6cRky2xhaFEADIOWhyT9TonsUSf69GX0fsUPxmhfaEh5lkOLcJvWuYJz/gA
-iTxgnD4SmEy0OKxCXZrJG/ShVuLAMmChx1y/oBeMkOpSBLx6qnfPM/C4du/VKO0emUS9azzlvlUC
-3B2DyjcS60G4IFjoMYUQ9GifNemaTtcLD599h4gxUNFq0CVNkc778pfF2LZ6I22uh4DkethE6Qon
-AppZG/wB6DJTRkwkcBfnclAGRLcnuUxSBrM99zpowqwO3+uPBfONyqBZROxRCCiKfKHjVSQgretF
-qiXDoWdolUyi9/GebPBWOCSnQ73KPz5rsoXC7fmwoxz1h9OqB6qUWZQaz5SL1PRybzO/OtY8l2Qh
-CMRjehOo/phG7bEcGhAqzlTviF+Am+6upPLeTWXPD3cELBflxIlgGMXFt9hPSl4IF6txRcpdgcQB
-LIZgi1AzkYxmZqgyDbaBF0j2MVF+SsOLhGCvmbJvRyEOQ8pxvOrmOdN9+PPyLqHjgC4AhKeqOe+p
-0vnz9K0N8jrRUxQnD0vbBbsgxdjYPb2zEJ2Fk6L/9Mvpz+1GfM8z5JPqKw85jKnaVTMebJb0m0P6
-+P9f5PQy/+f1f1KE1Dl0YVIrU2dRSlZ342II38qBybuaYI/qr4BzJFV0KmXykTSfZx/fM07BSiR7
-b30Brh04vMDbA7J2xPg4OHJjp1TG5ykESZpo0sEdB00kyIfsFHWI/RCn6bR2peMIRHt6gFF6iY1d
-4U5YqLj4FeUHMMai55h2Dy+BkW3mvT3HEte9RehZa2XQLZ1LmBjjoEMIaqccPO65Fr2JhXatDiqc
-KuyezEsm/9d7splhouSdMspHCTowDw+qmaxwXgKPk9Bpe/V3bAEBgEHNgNlhgj7DL4cCEEF2OjYp
-DqAkwZlCktHzqSqAVqyD61DuFRUUDtZgODTRmIDS0A8wZE6PRc7UiQQshcjNU04SGOH4NB+EQrN4
-99nty76Kp1TE/IzIGOSFMEbISjygNh15k2ehZgCpBFoXlgqHtyEYstOLilEIjkJ4iU0ZkQADMBl8
-+0ECd/h6EApxCkFfBaAvpwchsKXZ3WgelE8PghHKvPJEgkPJBkETXCGMAQs9ptDuG5ZAiafgNA4c
-uTLJUUygHILm4UL8bSFsFFIJCBpzBcNJwmKuXULcVGE1GIa5BcESKWbBagDHibqrUazvHHFm3Jlv
-GIKrnhB7QqdVaLjsIcNCkZXeY54a8DLGcFhCVdtN2XMJt/BJ4sftkg/Lon/LWP/8Thv1x2zc99nI
-r9rY/7c2+r/PWXiPr/Eur+U9/s+vXndQP/+ID/YuD+5dvuCPuJLv8UTf59O+xzt+n5/9Ho/9Rzz+
-X70n4vLZBhjeF5V4LaTxY1GQ90RR3hWPeU9k550xovdEm94TtxK9wiQ2sa61Lb+gZrpdaf4FyxIv
-+zZQacShK4ifwOAQGMRRqeaJ6A2CSsB7GwlV8FQ2HoI5J4jaU7LsuIBrNA+yycfWjcWPw/+YQrB0
-QmKfrnUM7UbHOe3W6TQ6OU+VNgMWRF9Dr5n86M3A0vceJWBmze2vod+BG0bIzGD0jKziJXQypV9Z
-wEuXeFuiOZb2amQJ7e2CVjcgJKClnUAlaCnn6t/Exl/jnVu9NROG1bIn0zQDjfimNjvDjg8eBmKY
-KXB8VucekZU9eUHuM1bZCImK8Du3iISJ2PzpAVhLvUhQyEgHROwo5zDEcRr6qzqLC2AcFayr9ulI
-uWAK0kTrQf2UnAH++UFN8yDKXJEO2Q/iXTz88WSOfSYrxwsUfAFObDhLSLwQC/ITJSiJqE57xYLr
-nDonqJ1NEglr4V5D2Q36KSnGRvo7IegrkSPeD50iRWim5RmTQAlYkSDwtpWwSoJz8J1LNw20oScD
-UWCJI17BCpnGzSKEFeKdSEaUCnFz3pqBJyY6GdsNcEizH+NVgiMA2y25pjnATsXl0S6xFg5BuewJ
-58H6yVOh9Ky30jTlfkzoVa1TKIQHnOKEXW4GS1TIEH5+faHyl/nLSs7t9SKt8vwWwqWOWSHkVKHz
-6LgCSlwrmTB7heg0emOQzJvqanlohbKuxuX8PIUwRmBQcwidnT48zmYps1/qYSkIYJbfAc/UUs3t
-KcRJ5RQWzrYeBGuucGW2SpSNT6lktnYQmauQYAsALZVQeeXNLyrECmBHpR4w1CVxtwy2e0pA+Eph
-IgpZ5lxYZI1S3gtG6DGPP8DtmeIYoVmk8hmGuxUTRTElfiIEgAoj9JhC0KSmBs4o5Mz0pEToss5i
-wR9e4AY47aqxu3Oih06kg6L/Dt9BOuBUqrhgH5UjpKoeCXfIo83MQReBnCjfTr/QsmFMlUEYisR8
-rwPykKvlWGhV5YVDndv6CSGVthiOygcrG5j2A06rmqg2XlnVwVSxkfaTng5yebUYabSbUBF9mnPK
-ZXo8uxHPrdINqpQMxHIgCTOYHSP0OCzr0qmzts8cXtUQEiN2ClfFXHt1Z6grk20Vlq52WVstmo6V
-D8Xv1fFaCEeA+hKRBscWk7x50t0nokIMYX7WIQiIJu+xBEIfoJfjXrPita7AdmyTA3GPH6gQlKmI
-BKEWiU/fl0oxDU+IwXUYVfAJPCPIqNx9EmB0eJXGKb2D11AYaigEeDhElNXRSNVeB6HH6759PLPN
-rKHbwMSz5g4Bn8xQL4BPehX2g3w/DJ0j94aF9Fw8X0bOj1fuHg5/vIJVCF00T1jm7m2aSzyPcIGM
-1/OWnsJnInr0q4vwBuOdwFJf+QUYdujrdUck9Zzc0dscWwnOANh7Zzt8BtLop3uAGGOf+HsouyAS
-61RkBKtP/M1M/uoZRZ0Lr3DbJECDAKBKMt+l8axQQd+9drJFerOpZoSWB4NAyiGUUfsombqnBnNH
-9Tg1p1JHwbfPsLehmTTAZ83AA40pI58N6dQJA20SfBLHx34JnVoBC14aFyfFf7Tcx6BDiR3NCvnG
-nLQnCYKDk4QYCo3Ke463yefLqICOnzERxfyThn3Jujw8gcl7A2uIxqiasJj/fGNktv7iG2Nd7su4
-p+77VI+OQLtTIOaXQ2TTE82iLVNVIWZe5Kzx1ebmaXsUMvm0wxE9yNaRtmrqdSJ2qOpab1I5KCXr
-vmZraa4twZSIKKQSfSe+NOCUJbGZtFfeHgeGgxACG0AjtjJjJgM3TvW7J6FFRuvYGWdgnUhg6CIb
-OEYjZskTQ61rUJlRma1JUTMQ0oyG7zFeSecPk0uNymca2o0iQZHUhmpcJCjGYxvfBM8aRMzMXSeK
-hLH+gBFAlC9ZEtYou4SeKDs+G8N1nD6tqYQoy6BHsRxFhkTt/iWc/8A8aV42bOI+EQM8m45KfYwn
-eCdW79M592FD47fMxh912fs8hbDv82rK0Cieq18Bgq0wBo+skgVFJGLwpuGPZ6GERelVskJ6ZzvN
-9oP2vbOlPVvR987fEUCdTYnpMJkEgb2pJ+uk9+VsQbMguUwm3CH90BuvAa5W6eqQeuo0JZcRbept
-o3rf2bgzN6/Yv8BT/ycRoMd4mwvqM30F2w19NgHp7C6x4R2RE4cn+DqJoBTIB0JDNy5lE4m9VFsk
-aBcF63y0TOe9LLC94tyv7OY2VZGWcct2kZrdMFOlfvHRwe21p9LNpmjs+Tf38ocbqU1VnQSi+jwB
-V1DVObYgwjMFIgbD1vm41mKlXaLFQ6C7R3wbI/SYQtn+IpfBYpBRlwTWrnIMG8unuSIx52EAErxm
-0UBUPHcyZps1lMxtZm2seb4z6HP+DI4rfprDgt/PgMg1cGZmzKCfSNfog6zQYwoBDME+S75tTwAJ
-rw5mShuntdxlezs8hZtjEhok6UmH2u1GOON2qoRoRN0+hKp5R7xN4DL+RnGUYypxbAlAeDfm5ReF
-pmk0msjG+tzhd8y7c+G0h/Jz3bJwmjjiPBIJypoHG81oExSIyfrW7b2R7bWRd6IS+Q==
-	]]>
-	<![CDATA[
-	qhwwteIYbOtktOqLgV/Wnb29iWR2j+l8HSJwHjt5SCJBD3pLfy49exlYpmAYPnUZWHgwLKEnWKKx
-HWcluNyeH7QOfLqNm14FHFyxsRXJVc/RdpZbBPjmJ+2jAiN8kqDeOiTxad7+lbsTLvEggSXNx5dv
-mAwTIbL3m30QROsMS76/iOLBOZiWpBlipqcRggbYPmE1cXu2VvKdjKaU2D8g+07bUWpTGRiQdPWc
-8pGazSckOp5M6GUP5aZGrymsy3j3bqwQBenDcGcymoPZ3hmxUmrhYlQ8RxtglF2B7e0qOoyKgWMJ
-U6aNLmVOBxgS5yUE3oQMEpRo14GBeGXmjkPpCh7lWeQOBEISv6W5iGTZcvL5XG5Ph4a+PHtEaZo/
-dwslSXORygqH5AfxzSijAbzhpNqy9Advqs0Vx43k5mkowukgKln3atMGMSGWecyeEtDRbLWZjNFJ
-F7ygvdRgs6lO7LoKXA/aJo2yuOFCLV8SH1b3KnwXEnpMZQRH6bXr7qbn8nqQUVlhNW1lAEsVAc/9
-ilHh5ArqcqcdkNqSHTMkra+RUGD5w7kc7h5542Y8yrXWB86bzF3SuJuC0lLwg3xEBhLOo+nRsLuG
-dZGLD+3ja5kt4/AxzTbIlInHhmqdcCzSUAMBzI7aQL65Sj/8v1c2v/q3v/j6bx//8Ou/fvnLly8e
-H//07ffuG/fNr379ePz85a9evvjy1959M/5oCHChtF+10V//adZJf/1PP/1Jefni5y9f/7erjvqP
-8h9/L70iSxhLo4SxhodDMAZO10uK0kY16ZrRK7KXnDRqT2nsoGG5t9DLcHBzd9q5XcEKzg9NXNv4
-41jfdeXrL6/XDet1/cvfjH//60t6+dufahcA9P8v/L132PtPAjfENzeLILyhMyXSolN19Vf/ngnx
-33z1m7//u//8y69emZX3LYB+Tc/ri+HNC198/vjD97/73//4xYv/sxen/6f/4f7x5y8/f/nFV+PH
-73778sUP33/87g///PvvP18vMd/tyx/G7//9jz98+we5L/62Xzkvsr8Z//Wvw5we02ZW3OM/jr/5
-8tf5m19+9086bH/+5+PCz/7Lx99++5vvP/7uf3z7/U9/8ts/fPyf3758/O673//w8Ydv/2389PLb
-77/9ww+///7blz/8y+//l1yRP7r/4Gc/++XfjVPk/wDCi5n8
-	]]>
-</i:pgf>
-</svg>
diff --git a/src/web/index.pug b/src/web/index.pug
deleted file mode 100644
index 8ebe34858f173c45959d897319924f0608cd9dad..0000000000000000000000000000000000000000
--- a/src/web/index.pug
+++ /dev/null
@@ -1,159 +0,0 @@
-doctype html
-html
-  head
-    meta(charset='utf-8')
-    title Fake your JSON-Schemas!
-    meta(name='viewport' content='width=device-width, initial-scale=1')
-    link(rel='stylesheet' href='//fonts.googleapis.com/css?family=Dosis')
-    link(rel='shortcut icon' type='image/icon' href='img/favicon.ico')
-    link(rel='stylesheet' href='css/app.css')
-    script(src='vendor/chance/dist/chance.min.js')
-    script(src='vendor/Faker/build/build/faker.js')
-    script(src='vendor/yaml.js/dist/yaml.js')
-    script(src='vendor/vue/dist/vue.runtime.js')
-    script(src='vendor/ace-builds/src-min/ace.js')
-    script(src='vendor/ace-builds/src-min/mode-json.js')
-    script(src='vendor/ace-builds/src-min/worker-json.js')
-    script(src='vendor/ace-builds/src-min/theme-github.js')
-    script.
-      window.Buffer = Function
-      window.TIME = new Date()
-    script(src='js/app.js' defer)
-    if env.NODE_ENV === 'production'
-      script(src='//unpkg.com/json-schema-faker')
-    else
-      script(src='bundle.js' defer)
-  body
-    .Toolbar.f
-      .p.oh.rel
-        a.tdn.tac.github-ribbon(href='//github.com/json-schema-faker/json-schema-faker') Fork me on GitHub
-        h1.jsf-logo: a.dib(href='/') JSON Schema Faker
-        p.pr #[b JSON Schema Faker] combines JSON Schema standard with fake data generators, allowing users to generate fake data that conform to the schema.
-        a.tdn(href=`https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=${BUTTON_ID}` target='_blank')
-          img.mr(src='https://img.shields.io/badge/Donate-PayPal-green.svg')
-        img.mr(src='https://travis-ci.org/json-schema-faker/json-schema-faker.svg?branch=master')
-        img.mr(src='https://badge.fury.io/js/json-schema-faker.svg')
-        iframe.mt(src='//ghbtns.com/github-btn.html?user=json-schema-faker&repo=json-schema-faker&type=star&count=true' frameborder=0 scrolling=0 width=120 height=20)
-
-      .p.sm-flx.nosl
-        ul.lr.ln.mt.jsf-about
-          li.sp.pd.dib
-            a.a Options
-            .z5.menu
-              p Reference: #[a(href='https://github.com/json-schema-faker/json-schema-faker/tree/master/docs#available-options' target='_blank') available options]
-
-              .sm-flx.flx-m
-                ul.lr.flx-a
-                  li: label
-                    span defaultRandExpMax
-                    input.f.num(type='number' name='jsfOptions.defaultRandExpMax')
-
-                  li: label
-                    span optionalsProbability
-                    input.f.num(type='number' name='jsfOptions.optionalsProbability' step='0.1')
-
-                  li: label
-                    span minItems
-                    input.f.num(type='number' name='jsfOptions.minItems')
-
-                  li: label
-                    span maxItems
-                    input.f.num(type='number' name='jsfOptions.maxItems')
-
-                  li: label
-                    span minLength
-                    input.f.num(type='number' name='jsfOptions.minLength')
-
-                  li: label
-                    span maxLength
-                    input.f.num(type='number' name='jsfOptions.maxLength')
-
-                  li: label
-                    span random
-                    input.f.num(type='number' name='jsfOptions.random')
-
-                ul.lr.flx-a
-                  li: label
-                    span resolveJsonPath
-                    input(type='checkbox' name='jsfOptions.resolveJsonPath')
-
-                  li: label
-                    span ignoreMissingRefs
-                    input(type='checkbox' name='jsfOptions.ignoreMissingRefs')
-
-                  li: label
-                    span failOnInvalidTypes
-                    input(checked type='checkbox' name='jsfOptions.failOnInvalidTypes')
-
-                  li: label
-                    span failOnInvalidFormat
-                    input(checked type='checkbox' name='jsfOptions.failOnInvalidFormat')
-
-                  li: label
-                    span alwaysFakeOptionals
-                    input(type='checkbox' name='jsfOptions.alwaysFakeOptionals')
-
-                  li: label
-                    span fixedProbabilities
-                    input(type='checkbox' name='jsfOptions.fixedProbabilities')
-
-                  li: label
-                    span useExamplesValue
-                    input(type='checkbox' name='jsfOptions.useExamplesValue')
-
-                  li: label
-                    span useDefaultValue
-                    input(type='checkbox' name='jsfOptions.useDefaultValue')
-
-                  li: label
-                    span requiredOnly
-                    input(type='checkbox' name='jsfOptions.requiredOnly')
-
-                  li: label
-                    span reuseProperties
-                    input(type='checkbox' name='jsfOptions.reuseProperties')
-
-                  li: label
-                    span fillProperties
-                    input(checked type='checkbox' name='jsfOptions.fillProperties')
-
-          li.sp.pd.dib
-            a.a Examples
-            ul.lr.z5.menu
-              li: a(href='#gist/da0af4611cb5622b54aff57283560da3') boolean
-              li: a(href='#gist/4199ca90fb5cd05337824b0695d17b5e') integer
-              li: a(href='#gist/d9e27543d84157c1672f87e93ac250cc') inner-references
-              li: a(href='#gist/5f81f118fbd4eac01ccacf23a061a8b9') external-references
-              li: a(href='#gist/cbb4871d1d2f44760ddafdaa056e1926') enums
-              li: a(href='#gist/1f1196844bead96e021ffbd597edcffa') fixed values
-              li: a(href='#gist/f4ad1818735f0d0babdc1f12b92013f1') n-times repeated
-              li: a(href='#gist/1902737e7bef9573af02a3fc49761c13') faker-properties
-              li: a(href='#gist/1a7db173362b127a826a5c2fa7de7561') faker.fake()
-              li: a(href='#gist/5dd364aad2d48729efff686c5f7c44b2') chance-guid
-              li: a(href='#gist/682f97a2e28e230b51810c55b92f4cdc') chance-name
-              li: a(href='#gist/426c2d177243cd2c52594f92c1a7862e') chance-properties
-              li: a(href='#gist/d3e75b22ad33e4440df19e0cc060c9f3/0.5.0-rc3') remote-schemas (^0.5.x)
-
-          li.sp.pd.dib
-            a.a Community
-            ul.lr.z5.menu
-              li: a(href='http://json-schema.org' target='_blank') JSON-Schema.org
-              li: a(href='//github.com/json-schema-faker/json-schema-faker/' target='_blank') GitHub / #[a(href='//travis-ci.org/json-schema-faker/json-schema-faker' target='_blank') CI]
-              li: a(href='//github.com/json-schema-faker/json-schema-faker/issues/new' target='_blank') Contribution
-              li: a(href='//github.com/json-schema-faker/angular-jsf' target='_blank') AngularJS module
-              li: a(href='//github.com/json-schema-faker/grunt-jsonschema-faker' target='_blank') Grunt plugin
-              li: a(href='//github.com/json-schema-faker/json-schema-server' target='_blank') JSF Server
-
-    .sm-flx.flx-m.p
-      .flx-a.flx-lt
-        #app
-
-    if env.NODE_ENV === 'production'
-      script.
-        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-        ga('create', '#{UA_TOKEN}', 'auto');
-        ga('send', 'pageview');
diff --git a/src/web/js/_core.js b/src/web/js/_core.js
deleted file mode 100644
index 1889d0015cca1fcdd33ab79f3baa938257bc2819..0000000000000000000000000000000000000000
--- a/src/web/js/_core.js
+++ /dev/null
@@ -1,322 +0,0 @@
-import { GISTS, throttle, debounce } from './_util';
-
-/* global TIME, fetch, jsf */
-
-// https://github.com/google/closure-compiler/issues/1875
-window.JSCOMPILER_PRESERVE = () => null;
-
-const SKIP_VERSIONS = [
-  '0.5.0-rc13',
-  '0.5.0-rc14',
-];
-
-const SETTINGS = {};
-const SCHEMAS = {};
-
-let _selected;
-let _vm;
-let _t;
-
-function configureJSF() {
-  if (window.jsf && window.jsf.option) {
-    window.jsf.option(SETTINGS);
-  }
-}
-
-function generateOutput() {
-  if (!window.jsf) {
-    setTimeout(generateOutput, 1000);
-    return;
-  }
-
-  const s = new Date();
-  const refs = [];
-
-  Object.keys(SCHEMAS).forEach(schema => {
-    if (schema !== _selected) {
-      refs.push(JSON.parse(SCHEMAS[schema].value));
-    }
-  });
-
-  if (!SCHEMAS[_selected]) {
-    return;
-  }
-
-  let schema;
-
-  try {
-    schema = JSON.parse(SCHEMAS[_selected].value);
-  } catch (e) {
-    _vm.logStatus(e.message || e.toString(), ['-error']);
-    return;
-  }
-
-  _vm.$el.classList.add('-dis');
-
-  const syncFake = () =>
-    new Promise((resolve, reject) => {
-      try {
-        resolve((window.jsf.generate || window.jsf.sync || window.jsf)(schema, refs));
-      } catch (e) { reject(e); }
-    });
-
-  const asyncFake = () => (window.jsf.resolve || window.jsf)(schema, refs);
-
-  // try the appropriate version
-  (parseFloat(window.jsf.version) >= 0.5 ? asyncFake : syncFake)()
-    .then(sample => {
-      _vm.$el.classList.remove('-dis');
-      _vm.outputJSON = JSON.stringify(sample, null, 2);
-      _vm.logStatus(`Example generated in ${(new Date() - s) / 1000}s`, ['-success']);
-    })
-    .catch(e => {
-      _vm.$el.classList.remove('-dis');
-      _vm.logStatus((e.message || e.toString()).substr(0, 200), ['-error']);
-    });
-}
-
-function saveSession() {
-  const s = new Date();
-
-  window.localStorage._SCHEMAS = JSON.stringify(SCHEMAS);
-
-  _vm.logStatus(`Session saved in ${(new Date() - s) / 1000}ms`, ['-success']);
-}
-
-function loadSession() {
-  const _keys = Object.keys(SCHEMAS);
-
-  _vm.savedSchemas = _keys;
-  _vm.hasValues = _keys.length > 0;
-
-  if (_keys.length) {
-    _selected = _keys[0];
-    _vm.inputJSON = SCHEMAS[_keys[0]].value;
-    _vm.$refs.schemas.selectedValue = _selected;
-  }
-
-  _vm.$el.classList.remove('-dis');
-}
-
-function loadStorage() {
-  if (window.localStorage._SCHEMAS) {
-    const _saved = JSON.parse(window.localStorage._SCHEMAS);
-
-    Object.keys(_saved).forEach(key => {
-      SCHEMAS[key] = _saved[key];
-    });
-  }
-
-  loadSession();
-}
-
-function onHashChange() {
-  _vm.$el.classList.add('-dis');
-  _vm.inputJSON = '';
-  _vm.savedSchemas = [];
-  _vm.hasValues = false;
-
-  Object.keys(SCHEMAS).forEach(key => {
-    delete SCHEMAS[key];
-  });
-
-  if (location.hash) {
-    const [,, v] = location.hash.split('/');
-
-    GISTS.loadFrom(location.hash).then(result => {
-      Object.keys(result.files).forEach(key => {
-        SCHEMAS[key] = { value: result.files[key].content };
-      });
-
-      loadSession();
-    }).catch(e => {
-      _vm.$el.classList.remove('-dis');
-      _vm.logStatus(e.message || e.toString(), ['-error']);
-    });
-  } else {
-    loadStorage();
-  }
-}
-
-function onLoadError() {
-  /* eslint-disable no-alert */
-  alert('This should not happen! Please reload the page, sorry.');
-}
-
-function onLoadEnd(start) {
-  if (jsf.extend) {
-    jsf.extend('faker', () => window.faker);
-    jsf.extend('chance', () => window.chance);
-  }
-
-  _vm.logStatus(`Loaded in ${(new Date() - start) / 1000}ms`, ['-success']);
-
-  configureJSF();
-  generateOutput();
-}
-
-window.addEventListener('hashchange', onHashChange);
-
-function onScripts() {
-  clearTimeout(_t);
-  _t = setTimeout(() => {
-    const s = new Date();
-
-    window.jsf = window.JSONSchemaFaker || window.jsf;
-    window.jsf._loaded = true;
-
-    delete window.JSONSchemaFaker;
-
-    if (typeof jsf !== 'undefined')  {
-      onLoadEnd(s)
-    } else {
-      onScripts();
-    }
-  }, 1000);
-}
-
-document.body.addEventListener('change', e => {
-  if (e.target.name.indexOf('jsfOptions.') === 0) {
-    const option = e.target.name.replace('jsfOptions.', '');
-
-    if (e.target.type === 'checkbox') {
-      SETTINGS[e.target.name.substr(11)] = e.target.checked;
-    } else {
-      if (option === 'random') {
-        SETTINGS.random = e.target.value !== '' ? (() => parseFloat(e.target.value)) : Math.random;
-      }  else {
-        SETTINGS[e.target.name.substr(11)] = e.value;
-      }
-    }
-  }
-
-  configureJSF();
-  generateOutput();
-});
-
-const matches = location.search && location.search.indexOf('code=') !== -1
-  ? location.search.match(/\bcode=([\w]{20})/)[1]
-  : null;
-
-if (matches) {
-  window.history.replaceState(null, document.title, '/');
-
-  GISTS.auth(matches, () => {
-    if (_vm) {
-      _vm.$forceUpdate();
-    }
-  });
-}
-
-export default {
-  init(ui) {
-    _vm = ui;
-
-    setTimeout(() => {
-      onScripts();
-      onHashChange();
-    }, 200);
-
-    _vm.logStatus(`Application loaded in ${(new Date() - TIME) / 1000}ms`, ['-success']);
-    _vm.$on('generateOutput', throttle(200, e => {
-      e.target.disabled = true;
-      generateOutput();
-      e.target.disabled = false;
-    }));
-
-    _vm.$on('setPayload', e => {
-      if (e.addValue) {
-        SCHEMAS[e.addValue] = {
-          value: [
-            '{',
-            `  "id": "${e.addValue}"`,
-            '}',
-          ].join('\n'),
-        };
-
-        saveSession();
-
-        _vm.outputJSON = '';
-      }
-
-      if (e.setValues) {
-        _vm.hasValues = e.setValues.length > 0;
-
-        if (!e.setValues.length) {
-          window.history.pushState(null, document.title, '');
-        }
-      }
-
-      if (e.selectedValue) {
-        _selected = e.selectedValue;
-
-        _vm.outputJSON = '';
-        _vm.inputJSON = SCHEMAS[_selected].value;
-
-        if (window.jsf && window.jsf._loaded) {
-          generateOutput();
-        }
-      }
-
-      if (e.updateValue) {
-        SCHEMAS[e.updateValue] = SCHEMAS[e.oldValue];
-        SCHEMAS[e.updateValue].value = SCHEMAS[e.updateValue].value
-          .replace(/"id"\s*:\s*"(\w+)"/g, (_, id) => {
-            if (id === e.oldValue) {
-              return `"id": "${e.updateValue}"`;
-            }
-
-            return _;
-          });
-
-        _vm.inputJSON = SCHEMAS[e.updateValue].value;
-
-        delete SCHEMAS[e.oldValue];
-
-        saveSession();
-      }
-
-      if (e.removeValue) {
-        delete SCHEMAS[e.removeValue];
-
-        if (!Object.keys(SCHEMAS).length) {
-          window.history.pushState(null, document.title, '#');
-        }
-
-        saveSession();
-      }
-    });
-
-    _vm.$on('inputChange', debounce(200, schema => {
-      if (_selected && schema.value) {
-        SCHEMAS[_selected].value = JSON.stringify(schema.value);
-        generateOutput();
-        saveSession();
-      }
-    }));
-
-    _vm.$on('synchronizeGist', e => {
-      const s = new Date();
-
-      e.target.disabled = true;
-
-      _vm.$el.classList.add('-dis');
-
-      GISTS.save(SCHEMAS).then(result => {
-        e.target.disabled = false;
-
-        _vm.$el.classList.remove('-dis');
-        _vm.logStatus(`Gist saved in ${(new Date() - s) / 1000}s`, ['-success']);
-
-        window.history.pushState(null, document.title, `#gist/${result.id}`);
-      }).catch(err => {
-        e.target.disabled = false;
-
-        _vm.$el.classList.remove('-dis');
-        _vm.logStatus(err.message || err.toString(), ['-error']);
-      });
-
-      return false;
-    });
-  },
-};
diff --git a/src/web/js/_util.js b/src/web/js/_util.js
deleted file mode 100644
index 099df53b5d4d0ec81a081b1d8a64f4702ce24ed5..0000000000000000000000000000000000000000
--- a/src/web/js/_util.js
+++ /dev/null
@@ -1,156 +0,0 @@
-// FIXME: how-to-do a proper api-call?
-const PROXY_URL = 'https://cors-anywhere.herokuapp.com/';
-
-/* global AUTH_ID, AUTH_SECRET */
-/* global Promise, fetch */
-
-export function debounce(ms, fn, ctx) {
-  let t;
-  return (...args) => {
-    clearTimeout(t);
-    t = setTimeout(() => {
-      fn.apply(ctx, args);
-    }, ms);
-  };
-}
-
-export function throttle(ms, fn, ctx) {
-  ms = ms || 250;
-
-  let last;
-  let t;
-
-  return (...args) => {
-    const now = +new Date();
-
-    if (last && now < last + ms) {
-      clearTimeout(t);
-      t = setTimeout(() => {
-        last = now;
-        fn.apply(ctx, args);
-      }, ms);
-    } else {
-      last = now;
-      fn.apply(ctx, args);
-    }
-  };
-}
-
-function getUrl(x, path, params) {
-  const url = `${x}${path}?client_id=${AUTH_ID}&client_secret=${AUTH_SECRET}`;
-  const redirect = `redirect_uri=${encodeURIComponent(`${location.protocol}//${location.host}/`)}`;
-
-  return params
-    ? `${url}&${Object.keys(params).map(k => `${k}=${params[k]}`).join('&')}&${redirect}`
-    : `${url}${params !== false ? `&${redirect}` : ''}`;
-}
-
-export const GISTS = {
-  BASE_URL: 'https://github.com',
-  API_URL: 'https://api.github.com',
-
-  loadFrom(uri) {
-    const tmp = uri.replace('#', '').split('/');
-
-    if (tmp.length === 1) {
-      // old style URI-based schema - supported for backward compatibility
-      // example: http://json-schema-faker.js.org/#%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
-      return Promise.resolve({
-        files: {
-          // legacy and ugly
-          'schema.json': {
-            content: decodeURIComponent(tmp[0]),
-          },
-        },
-      });
-    }
-
-    const [type, hash] = tmp;
-
-    switch (type) {
-      case 'gist':
-        // example: http://json-schema-faker.js.org/#gist/c347f2f6083fe81a1fe43d17b83125d7
-        return fetch(getUrl(GISTS.API_URL, `/gists/${hash}`))
-          .then(res => res.json());
-
-      case 'uri':
-        // example: http://json-schema-faker.js.org/#uri/%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
-        return Promise.resolve({
-          files: {
-            Example: {
-              content: decodeURIComponent(hash),
-            },
-          },
-        });
-
-      default:
-        throw new Error('Unknown storage type');
-    }
-  },
-  save(schemas) {
-    const _files = {};
-
-    Object.keys(schemas).forEach(key => {
-      _files[key] = { content: schemas[key].value };
-    });
-
-    const tokenId = window.localStorage._AUTH;
-
-    if (tokenId) {
-      const url = getUrl(GISTS.API_URL, '/gists', false);
-      const fixedUrl = `${PROXY_URL}${url}`;
-
-      return fetch(fixedUrl, {
-        method: 'POST',
-        headers: {
-          Authorization: `bearer ${tokenId}`,
-          Accept: 'application/json',
-        },
-        body: JSON.stringify({
-          description: 'JSON Schema created by http://json-schema-faker.js.org',
-          files: _files,
-        }),
-      }).then(res => res.json())
-        .then(data => {
-          if (data.message) {
-            throw new Error(data.message);
-          }
-
-          return data;
-        });
-    }
-  },
-  auth(tokenId, callback) {
-    window.localStorage._AUTH = '';
-
-    const url = getUrl(GISTS.BASE_URL, '/login/oauth/access_token', {
-      code: tokenId,
-    });
-
-    const fixedUrl = `${PROXY_URL}${url}`;
-
-    fetch(fixedUrl, {
-      method: 'POST',
-      headers: {
-        Accept: 'application/json',
-      },
-    }).then(res => res.json())
-      .then(result => {
-        if (result.access_token) {
-          window.localStorage._AUTH = result.access_token;
-          setTimeout(callback, 260);
-        }
-      });
-  },
-  url() {
-    return getUrl(GISTS.BASE_URL, '/login/oauth/authorize', {
-      scope: 'gist',
-    });
-  },
-};
-
-export default {
-  GISTS,
-  throttle,
-  debounce,
-};
diff --git a/src/web/js/_views/App.vue b/src/web/js/_views/App.vue
deleted file mode 100644
index edfb141feb0b5c5de7c2d30a870138a036d2b537..0000000000000000000000000000000000000000
--- a/src/web/js/_views/App.vue
+++ /dev/null
@@ -1,112 +0,0 @@
-<template lang="pug">
-  .md-flx.flx-m
-    .flx-a.md-cl-6
-      .flx.flx-m
-        .flx-a
-          EditableDropdown(:value='savedSchemas' @change='setPayload' placeholder='Schema identifier, e.g. User' tabindex=1 ref='schemas')
-        .flx-ml(v-if='hasValues')
-          button.a.bu.db.nosl(@click='loginAction' v-if='!loggedIn') GitHub login
-          button.a.bu.db.nosl(@click='synchronizeGist' v-else tabindex=2) Save as gist
-
-      .mt(v-if='hasValues')
-        JSONEditor(:value='inputJSON' @change='inputChange')
-
-    .flx-a.md-cl-6
-      .sm-flx.flx-m
-        .flx-mt(v-if='hasValues')
-          button.a.f.bu.db.cl-12.nosl(@click='generateOutput' tabindex=5) Generate example
-
-      .mt(v-if='hasValues')
-        JSONEditor(:value='outputJSON' readonly)
-
-    .Toast(:class='[classes, { "-show": showMessage }]')
-      .sm-flx.flx-m.flx-c
-        .flx-a {{logMessage}}
-        .flx-mr(v-if='hasValues')
-          button.a.f.bu.db.cl-12.nosl(@click='closeLog' tabindex=6) OK
-</template>
-
-<script>
-import { GISTS } from '../_util';
-
-import JSONEditor from './components/JSONEditor.vue';
-import SimpleDropdown from './components/SimpleDropdown.vue';
-import EditableDropdown from './components/EditableDropdown.vue';
-
-export default {
-  data()  {
-    return {
-      libInfo: null,
-      hasValues: false,
-      showMessage: false,
-      logMessage: '',
-      classes: '',
-      inputJSON: '',
-      outputJSON: '',
-      savedSchemas: [],
-      availableAssets: [],
-    };
-  },
-  computed: {
-    loggedIn() {
-      return typeof window.localStorage._AUTH !== 'undefined'
-        && window.localStorage._AUTH !== '';
-    },
-    availableVersions() {
-      return this.libInfo
-        ? this.libInfo.files.map(x => x.version)
-        : [];
-    },
-  },
-  methods: {
-    closeLog() {
-      this.showMessage = false;
-    },
-    loginAction() {
-      location.href = GISTS.url();
-    },
-    synchronizeGist(e) {
-      this.$emit('synchronizeGist', e);
-    },
-    generateOutput(e) {
-      this.$emit('generateOutput', e);
-    },
-    inputChange(value) {
-      this.$emit('inputChange', value);
-    },
-    setFile(value) {
-      this.$emit('setFile', value);
-    },
-    setVersion(value) {
-      this.availableAssets = this.libInfo
-        ? this.libInfo.files
-          .filter(x => x.version === value)[0].files
-          .filter(x => x.indexOf('.min') === -1)
-        : [];
-
-      this.$refs.assets.selectedValue = this.availableAssets[0];
-      this.$refs.versions.selectedValue = value;
-      this.$emit('setVersion', value);
-    },
-    setPayload(e) {
-      this.$emit('setPayload', e);
-    },
-    logStatus(message, classList) {
-      this.classes = classList;
-      this.logMessage = message;
-      this.showMessage = true;
-
-      clearTimeout(this._timeout);
-
-      this._timeout = setTimeout(() => {
-        this.showMessage = false;
-      }, 5000);
-    }
-  },
-  components: {
-    JSONEditor,
-    SimpleDropdown,
-    EditableDropdown,
-  },
-};
-</script>
diff --git a/src/web/js/_views/components/EditableDropdown.vue b/src/web/js/_views/components/EditableDropdown.vue
deleted file mode 100644
index 4ed7933ea507b237c7d65b89e8c33cdbde3410aa..0000000000000000000000000000000000000000
--- a/src/web/js/_views/components/EditableDropdown.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-<template lang="pug">
-  .Dropdown.f
-    .Dropdown--arrow
-
-    select.a(v-model='selectedValue' tabindex=-1)
-      option(v-for='x in value') {{x}}
-
-    .Dropdown--value.nosl
-      input(
-        @input='inputValue'
-        @keydown='submitValue'
-        :class='shouldUpdate && { "-new": isNew, "-edit": hasChanged, "-remove": canBeDeleted }'
-        :tabindex='tabindex'
-        :placeholder='placeholder'
-        ref='input')
-    .Dropdown--actions.nosl(v-bind:class='{ "-show": shouldUpdate }')
-      a.a.tdn.sp.pd(tabindex=-1 @click='addValue' v-if='isNew') Add
-      a.a.tdn.sp.pd(tabindex=-1 @click='updateValue' v-if='hasChanged') Update
-      a.a.tdn.sp.pd(tabindex=-1 @click='removeValue' v-if='canBeDeleted') Delete
-</template>
-
-<script>
-export default {
-  props: [
-    'value',
-    'tabindex',
-    'placeholder',
-  ],
-  data() {
-    return {
-      label: '',
-      isNew: false,
-      hasChanged: false,
-      shouldUpdate: false,
-      canBeDeleted: false,
-      selectedValue: null,
-    };
-  },
-  methods: {
-    change() {
-      this.$emit('change', { setValues: this.value });
-    },
-    reset() {
-      this.shouldUpdate = true;
-      this.canBeDeleted = true;
-      this.hasChanged = false;
-      this.isNew = false;
-
-      this.$refs.input.focus();
-    },
-    update(value) {
-      if (value) {
-        this.selectedValue = value;
-      }
-    },
-    inputValue(e) {
-      const _value = e.target.value;
-
-      if (!_value) {
-        this.shouldUpdate = false;
-        return;
-      }
-
-      const _new = this.value.indexOf(_value) === -1;
-      const _actual = this.selectedValue;
-      const _changed = _value !== _actual;
-
-      this.isNew = _new;
-      this.hasChanged = _actual !== null && _changed;
-      this.shouldUpdate = _new || _changed === false;
-      this.canBeDeleted = !_new && _actual !== null;
-    },
-    submitValue(e) {
-      switch (e.key) {
-        case 'Enter':
-          this.addValue();
-        break;
-
-        case 'ArrowUp':
-          if (!this.hasChanged) {
-            const val = this.value;
-            const dec = val.indexOf(this.selectedValue);
-
-            if (dec > 0) {
-              this.update(val[dec - 1]);
-            } else {
-              this.update(val[val.length - 1]);
-            }
-          }
-        break;
-
-        case 'ArrowDown':
-          if (!this.hasChanged) {
-            const val = this.value;
-            const inc = val.indexOf(this.selectedValue);
-
-            if (inc < (val.length - 1)) {
-              this.update(val[inc + 1]);
-            } else {
-              this.update(val[0]);
-            }
-          }
-        break;
-      }
-    },
-    addValue() {
-      if (this.$refs.input.value && this.value.indexOf(this.$refs.input.value) === -1) {
-        this.$emit('change', { addValue: this.$refs.input.value });
-        this.selectedValue = this.$refs.input.value;
-        this.value.push(this.$refs.input.value);
-        this.reset();
-        this.change();
-      }
-    },
-    updateValue() {
-      const _actual = this.selectedValue;
-      const _value = this.$refs.input.value;
-
-      this.value.forEach((value, i) => {
-        if (value === _actual) {
-          this.$emit('change', { updateValue: _value, oldValue: _actual });
-          this.value[i] = _value;
-        }
-      });
-
-      this.reset();
-      this.change();
-    },
-    removeValue() {
-      const val = this.value;
-      const key = val.indexOf(this.selectedValue);
-
-      this.$emit('change', { removeValue: this.value.splice(key, 1) });
-      this.reset();
-      this.change();
-
-      if (!val.length) {
-        this.shouldUpdate = false;
-        this.selectedValue = null;
-        this.$refs.input.value = '';
-
-        return false;
-      }
-
-      if (key > 0) {
-        this.update(val[key - 1]);
-      } else {
-        this.update(val[0]);
-      }
-    },
-  },
-  watch: {
-    value(newValue) {
-      this.canBeDeleted = newValue.length > 0;
-      this.shouldUpdate = newValue.length > 0;
-
-      if (newValue.length && !this.$refs.input.value) {
-        this.$refs.input.value = newValue[newValue.length - 1];
-        this.$refs.input.focus();
-      }
-
-      if (!newValue.length) {
-        this.$refs.input.value = '';
-      }
-    },
-    selectedValue(newValue) {
-      if (newValue) {
-        this.$emit('change', { selectedValue: newValue });
-        this.$refs.input.value = newValue;
-        this.$refs.input.focus();
-      } else {
-        this.$refs.input.value = '';
-      }
-    },
-  },
-};
-</script>
diff --git a/src/web/js/_views/components/JSONEditor.vue b/src/web/js/_views/components/JSONEditor.vue
deleted file mode 100644
index ea2c1a27a47212f0c96e8adb5386b1c52b22460f..0000000000000000000000000000000000000000
--- a/src/web/js/_views/components/JSONEditor.vue
+++ /dev/null
@@ -1,99 +0,0 @@
-<template lang="pug">
-  .rel
-    .AceEditor.nosl.f.b(ref='editor')
-    .abs.t0.r0.z1.nosl(v-if='!readonly')
-      ul.lr.ln.flx
-        li.sp: a.a(:class='{ "-on": !yaml }' @click='disable') JSON
-        li.sp: a.a(:class='{ "-on": yaml }' @click='enable') YAML
-</template>
-
-<script>
-/* global ace, YAML */
-
-export default {
-  props: [
-    'value',
-    'readonly',
-  ],
-  data() {
-    return {
-      yaml: false,
-    };
-  },
-  mounted() {
-    this.$e = ace.edit(this.$refs.editor);
-
-    this.$e.setTheme('ace/theme/github');
-    this.$e.getSession().setTabSize(2);
-    this.$e.setShowPrintMargin(false);
-
-    this.$e.$blockScrolling = Infinity;
-
-    this._isWatching = false;
-    this._backupObj = null;
-
-    this.change(this.value);
-    this.setMode();
-
-    if (this.readonly) {
-      this.$e.setReadOnly(true);
-      return;
-    }
-
-    this.$e.getSession().on('change', () => {
-      if (!this._isWatching) {
-        this.change(this.$e.getValue());
-      }
-    });
-  },
-  methods: {
-    disable() {
-      this.yaml = false;
-      this.setMode();
-    },
-    enable() {
-      this.yaml = true;
-      this.setMode();
-    },
-    change(value) {
-      const _old = this._backupObj;
-
-      try {
-        if (this.yaml) {
-          this._backupObj = YAML.parse(value) || this._backupObj;
-        } else {
-          this._backupObj = JSON.parse(value) || this._backupObj;
-        }
-      } catch (e) {
-        // eslint-disable-line
-      }
-
-      if (_old !== this._backupObj) {
-        this.$emit('change', {
-          value: this._backupObj,
-          source: value,
-        });
-      }
-    },
-    update() {
-      if (this.value) {
-        this.$e.setValue(this.yaml
-          ? YAML.dump(this._backupObj, 6, 2)
-          : JSON.stringify(this._backupObj, null, 2));
-      }
-    },
-    setMode() {
-      this.$e.getSession().setMode(`ace/mode/${this.yaml ? 'yaml' : 'json'}`);
-      this.update();
-    },
-  },
-  watch: {
-    value() {
-      this._isWatching = true;
-      this.change(this.value);
-      this.update();
-      this._isWatching = false;
-    },
-  },
-};
-</script>
diff --git a/src/web/js/_views/components/SimpleDropdown.vue b/src/web/js/_views/components/SimpleDropdown.vue
deleted file mode 100644
index c789934bcf39406081f77bf72ae9de5ec7657a66..0000000000000000000000000000000000000000
--- a/src/web/js/_views/components/SimpleDropdown.vue
+++ /dev/null
@@ -1,29 +0,0 @@
-<template lang="pug">
-  .Dropdown.f
-    select.a(v-model='selectedValue' :tabindex='tabindex' @change='onChange')
-      option(v-for='x in value') {{x}}
-
-    .Dropdown--arrow
-    .Dropdown--value.nosl
-      span.db.tr {{selectedValue || placeholder}}
-</template>
-
-<script>
-export default {
-  props: [
-    'value',
-    'tabindex',
-    'placeholder',
-  ],
-  data() {
-    return {
-      selectedValue: null,
-    };
-  },
-  methods: {
-    onChange() {
-      this.$emit('change', this.selectedValue);
-    },
-  },
-};
-</script>
diff --git a/src/web/js/app.js b/src/web/js/app.js
deleted file mode 100644
index 362c89a03a840553d33c801c8b9df8799e8e90f0..0000000000000000000000000000000000000000
--- a/src/web/js/app.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import App from './_views/App.vue';
-import Core from './_core';
-
-/* global Vue */
-/* eslint-disable no-new */
-
-const vm = new Vue({
-  el: '#app',
-  render(h) {
-    return h(App, {
-      ref: 'UI',
-    });
-  },
-});
-
-Core.init(vm.$refs.UI);
diff --git a/tests/schema/core/define/autoIncrement.json b/tests/schema/core/define/autoIncrement.json
deleted file mode 100644
index bec2e658535a208d010d6e702c5f9348884a67ee..0000000000000000000000000000000000000000
--- a/tests/schema/core/define/autoIncrement.json
+++ /dev/null
@@ -1,33 +0,0 @@
-[
-  {
-    "description": "autoIncrement keyword",
-    "tests": [
-      {
-        "description": "should handle initialOffset",
-        "schema": {
-          "items": {
-            "id": {
-              "type": "integer",
-              "autoIncrement": true,
-              "initialOffset": 100001
-            }
-          },
-          "minItems": 3,
-          "maxItems": 3
-        },
-        "repeat": 1,
-        "equal": [
-          {
-            "id": 100001
-          },
-          {
-            "id": 100002
-          },
-          {
-            "id": 100003
-          }
-        ]
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/dependencies.json b/tests/schema/core/dependencies.json
deleted file mode 100644
index dc0086923fc7e65ad311bed894f3d864a5093894..0000000000000000000000000000000000000000
--- a/tests/schema/core/dependencies.json
+++ /dev/null
@@ -1,69 +0,0 @@
-[
-  {
-    "description": "dependencies support",
-    "tests": [
-      {
-        "description": "should handle property-dependencies",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "name": {
-              "type": "string"
-            },
-            "credit_card": {
-              "type": "number"
-            },
-            "billing_address": {
-              "type": "string"
-            }
-          },
-          "required": [
-            "name"
-          ],
-          "dependencies": {
-            "credit_card": [
-              "billing_address"
-            ]
-          }
-        },
-        "valid": true,
-        "set": {
-          "alwaysFakeOptionals": true
-        }
-      },
-      {
-        "description": "should handle schema-dependencies",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "name": {
-              "type": "string"
-            },
-            "credit_card": {
-              "type": "number"
-            }
-          },
-          "required": [
-            "name"
-          ],
-          "dependencies": {
-            "credit_card": {
-              "properties": {
-                "billing_address": {
-                  "type": "string"
-                }
-              },
-              "required": [
-                "billing_address"
-              ]
-            }
-          }
-        },
-        "valid": true,
-        "set": {
-          "alwaysFakeOptionals": true
-        }
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/extend/chance-extend.js b/tests/schema/core/extend/chance-extend.js
deleted file mode 100644
index e607c7d77a1d00bd475a37873d682cd186006f4e..0000000000000000000000000000000000000000
--- a/tests/schema/core/extend/chance-extend.js
+++ /dev/null
@@ -1,21 +0,0 @@
-module.exports = {
-  extend() {
-    const Chance = require('chance');
-    const chance = new Chance();
-
-    chance.mixin({
-      user() {
-        return {
-          first: chance.first(),
-          last: chance.last(),
-          email: chance.email(),
-        };
-      },
-    });
-
-    return chance;
-  },
-  register(jsf) {
-    return jsf.extend('chance', this.extend);
-  },
-};
diff --git a/tests/schema/core/extend/chance.json b/tests/schema/core/extend/chance.json
deleted file mode 100644
index d19a8dc3b3b03e5028ee82148bba4aa9badf8492..0000000000000000000000000000000000000000
--- a/tests/schema/core/extend/chance.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "description": "chance extension",
-    "tests": [
-      {
-        "description": "should handle chance.user",
-        "schema": {
-          "chance": "user",
-          "type": "object",
-          "properties": {
-            "first": { "type": "string" },
-            "last": { "type": "string" },
-            "email": { "type": "string" }
-          },
-          "required": ["first", "last", "email"]
-        },
-        "valid": true,
-        "require": "core/extend/chance-extend"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/extend/faker-extend.js b/tests/schema/core/extend/faker-extend.js
deleted file mode 100644
index 21c93c9e4a142edf0edebd86a0bcf641ddd03d14..0000000000000000000000000000000000000000
--- a/tests/schema/core/extend/faker-extend.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
-  extend() {
-    const faker = require('faker/locale/de');
-
-    faker.mixin = (namespace, fnObject) => {
-      faker[namespace] = fnObject;
-    };
-
-    faker.mixin('custom', {
-      statement(length) {
-        return `${faker.name.firstName()} has ${faker.finance.amount()} on ${faker.finance.account(length)}.`;
-      },
-    });
-
-    return faker;
-  },
-  register(jsf) {
-    return jsf.extend('faker', this.extend);
-  },
-};
diff --git a/tests/schema/core/extend/faker.json b/tests/schema/core/extend/faker.json
deleted file mode 100644
index 418c39e460ce02c9047e1c0e4b96222eb3e759b4..0000000000000000000000000000000000000000
--- a/tests/schema/core/extend/faker.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "description": "faker extension",
-    "tests": [
-      {
-        "description": "should handle faker.custom.statement",
-        "schema": {
-          "type": "string",
-          "faker": {
-              "custom.statement": [19]
-          }
-        },
-        "valid": true,
-        "require": "core/extend/faker-extend"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/formats.json b/tests/schema/core/formats.json
deleted file mode 100644
index 462080be918559f8e29cd9bc98cdd90862a7e739..0000000000000000000000000000000000000000
--- a/tests/schema/core/formats.json
+++ /dev/null
@@ -1,31 +0,0 @@
-[
-  {
-    "description": "format keywords",
-    "tests": [
-      {
-        "description": "should handle datetime",
-        "schema": {
-          "type": "string",
-          "format": "datetime"
-        },
-        "type": "string"
-      },
-      {
-        "description": "should handle date",
-        "schema": {
-          "type": "string",
-          "format": "date"
-        },
-        "type": "string"
-      },
-      {
-        "description": "should handle time",
-        "schema": {
-          "type": "string",
-          "format": "time"
-        },
-        "type": "string"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/formats/semver.js b/tests/schema/core/formats/semver.js
deleted file mode 100644
index 932d896023bedf706603c3a78709f5312149b9f1..0000000000000000000000000000000000000000
--- a/tests/schema/core/formats/semver.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.format({
-      semver() {
-        return jsf.random.randexp('\\d\\.\\d\\.[1-9]\\d?');
-      },
-    });
-  },
-};
diff --git a/tests/schema/core/issues/all-of-one-of-nested.json b/tests/schema/core/issues/all-of-one-of-nested.json
deleted file mode 100644
index c255e808fc8e7879d8a6f9a2e3cf32156b11e9c5..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/all-of-one-of-nested.json
+++ /dev/null
@@ -1,41 +0,0 @@
-[
-  {
-    "description": "allOf and oneOf nested",
-    "schemas": [{
-      "$schema": "http://json-schema.org/draft-04/schema#",
-      "type": "object",
-      "additionalProperties": false,
-      "properties": {
-        "date_of_birth": {
-          "type": "string",
-          "minimum": 10,
-          "maximum": 10
-        },
-        "age_group": {
-          "type": "string",
-          "minLength": 5,
-          "maxLength": 5
-        }
-      },
-
-      "allOf": [{
-        "oneOf": [{
-          "required": [
-            "age_group"
-          ]
-        }, {
-          "required": [
-            "date_of_birth"
-          ]
-        }]
-      }]
-    }],
-    "tests": [
-      {
-        "description": "should combine recursively",
-        "schema": "schemas.0",
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/allOf.json b/tests/schema/core/issues/allOf.json
deleted file mode 100644
index 1d01ad7f55456cb06c5b3c76d08ed16807424f2d..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/allOf.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
-  {
-    "description": "sub-schema mixins",
-    "schemas": [
-      {
-        "type": "object",
-        "definitions": {
-          "inner": {
-            "aString": {
-              "allOf": [
-                { "type": "string" },
-                { "$ref": "#/definitions/rules" }
-              ]
-            }
-          },
-          "rules": {
-            "allOf": [
-              { "$ref": "#/definitions/twoChars" },
-              { "$ref": "#/definitions/asEmail" }
-            ]
-          },
-          "twoChars": {
-            "minLength": 10
-          },
-          "asEmail": {
-            "faker": "internet.email"
-          }
-        },
-        "properties": {
-          "anArray": {
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "allOf": [
-                  { "$ref": "#/definitions/inner" }
-                ]
-              },
-              "required": ["aString"]
-            }
-          }
-        },
-        "required": ["anArray"]
-      }
-    ],
-    "tests": [
-      {
-        "description": "should combine recursively",
-        "schema": "schemas.0",
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/anonymous.json b/tests/schema/core/issues/anonymous.json
deleted file mode 100644
index df42c3b4e6591c6fa6eebda1d227e79cbe148be2..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/anonymous.json
+++ /dev/null
@@ -1,19 +0,0 @@
-[
-  {
-    "description": "anonymous schemas",
-    "tests": [
-      {
-        "description": "should not work as expected",
-        "schema": {
-          "x": {
-            "enum": ["y"]
-          }
-        },
-        "valid": true,
-        "equal": {
-          "x": "y"
-        }
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/chance-and-faker.json b/tests/schema/core/issues/chance-and-faker.json
deleted file mode 100644
index 8e7d19fa07766aeac8f07392c59632cc53bf39c2..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/chance-and-faker.json
+++ /dev/null
@@ -1,15 +0,0 @@
-[
-  {
-    "description": "chance and faker",
-    "tests": [
-      {
-        "description": "should throw error when both defined",
-        "schema": {
-          "chance": "url",
-          "faker": "internet.email"
-        },
-        "throws": "ambiguous generator .+: .+?"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/chance.json b/tests/schema/core/issues/chance.json
deleted file mode 100644
index 916b8a2f689ac56ab9d6d8fe56cad2ed13156ef2..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/chance.json
+++ /dev/null
@@ -1,27 +0,0 @@
-[
-  {
-    "description": "chance issues",
-    "tests": [
-      {
-        "description": "should allow url-format (0.7.1+)",
-        "schema": {
-          "type": "string",
-          "chance": "url"
-        },
-        "valid": true
-      },
-      {
-        "description": "should execute chance generator before default boolean type generator",
-        "schema": {
-          "type": "boolean",
-          "chance": {
-            "bool": {
-              "likelihood": 100
-            }
-          }
-        },
-        "equal": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/cleanup.json b/tests/schema/core/issues/cleanup.json
deleted file mode 100644
index dbd1eba8a0560464d3ef726346db1f1bd9b60717..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/cleanup.json
+++ /dev/null
@@ -1,56 +0,0 @@
-[
-  {
-    "description": "should solve #243",
-    "schemas": [
-      {
-        "type": "array",
-        "minItems": 10,
-        "maxItems": 20,
-        "items": {
-          "type": "object",
-          "properties": {
-            "salary": {
-              "type": "object",
-              "properties": {
-                "amount": {
-                  "type": "number",
-                  "faker": {
-                    "random.number": {
-                      "min": 2000,
-                      "max": 5000,
-                      "precision": 100
-                    }
-                  }
-                },
-                "currency": {
-                  "enum": ["GBP", "USD", "EUR", "PLN"]
-                }
-              },
-              "required": [
-                "amount",
-                "currency"
-              ]
-            },
-            "hiredAt": {
-              "faker": {
-                "date.between": ["1990-01-01", "2012-12-29"]
-              }
-            }
-          },
-          "required": [
-            "salary",
-            "hiredAt"
-          ]
-        }
-      }
-    ],
-    "tests": [
-      {
-        "description": "should keep faker props",
-        "schema": "schemas.0",
-        "valid": true,
-        "hasProps": ["salary", "hiredAt"]
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/errors.json b/tests/schema/core/issues/errors.json
deleted file mode 100644
index cca1a1183477f04d1a22e3de240e2a1aba3f3532..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/errors.json
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    "description": "error reporting",
-    "tests": [
-      {
-        "description": "should report paths",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "test": {
-              "type": "unknown"
-            }
-          },
-          "required": ["test"]
-        },
-        "throws": "unknown primitive .+? in \\/properties\\/test\\/type"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/format.json b/tests/schema/core/issues/format.json
deleted file mode 100644
index dfc8a4517f2a70020e24c0732958f765a86385ff..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/format.json
+++ /dev/null
@@ -1,42 +0,0 @@
-[
-  {
-    "description": "using formats",
-    "tests": [
-      {
-        "description": "should support core only",
-        "schema": {
-          "type": "string",
-          "format": "not_exists"
-        },
-        "throws": "unknown registry key"
-      },
-      {
-        "description": "should support custom formats",
-        "schema": {
-          "type": "string",
-          "format": "semver"
-        },
-        "valid": true,
-        "repeat": 100,
-        "require": "core/formats/semver"
-      },
-      {
-        "description": "should support faker/chance on numeric types",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "chanceNumber": {
-              "type": "integer",
-              "chance": "natural"
-            },
-            "fakerNumber": {
-              "type": "integer",
-              "faker": "random.number"
-            }
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/inferred.json b/tests/schema/core/issues/inferred.json
deleted file mode 100644
index 6d49feefcd4df85fe02146963718f664fd52ec77..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/inferred.json
+++ /dev/null
@@ -1,47 +0,0 @@
-[
-  {
-    "description": "inferred-types keyword issues",
-    "tests": [
-      {
-        "description": "should work for non-reserved words",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "foo": {
-              "type": "array",
-              "items": [
-                {"enum":["bar"]}
-              ],
-              "minItems": 1,
-              "maxItems": 1
-            }
-          },
-          "required": ["foo"]
-        },
-        "equal": {
-          "foo": ["bar"]
-        }
-      },
-      {
-        "description": "should work for reserved words",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "items": {
-              "type": "array",
-              "items": [
-                {"enum":["bar"]}
-              ],
-              "minItems": 1,
-              "maxItems": 1
-            }
-          },
-          "required": ["items"]
-        },
-        "equal": {
-          "items": ["bar"]
-        }
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-115.json b/tests/schema/core/issues/issue-115.json
deleted file mode 100644
index f7bf48b65627bd37f1731be95189e6dc2b253440..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-115.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
-  {
-    "description": "support for x-*",
-    "tests": [
-      {
-        "description": "should handle x-faker",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "name": {
-              "type": "string",
-              "x-faker": "name.findName"
-            },
-            "email": {
-              "type": "string",
-              "x-faker": "internet.email"
-            }
-          },
-          "required": [
-            "name",
-            "email"
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle x-chance",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "userId": {
-              "type": "string",
-              "x-chance": "guid"
-            },
-            "emailAddr": {
-              "type": "string",
-              "x-chance": {
-                "email": {
-                  "domain": "fake.com"
-                }
-              },
-              "pattern": ".+@fake.com"
-            }
-          },
-          "required": [
-            "userId",
-            "emailAddr"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-158.json b/tests/schema/core/issues/issue-158.json
deleted file mode 100644
index 41fe2aed4775f8ea994b9a785046bdf7ca62dbc0..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-158.json
+++ /dev/null
@@ -1,40 +0,0 @@
-[
-  {
-    "description": "merge and shuffling properties",
-    "tests": [
-      {
-        "description": "should fake all properties as expected",
-        "schema": {
-          "properties": {
-            "test": {
-              "type": "string"
-            },
-            "count": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": {
-            "type": "string",
-            "faker": "internet.email"
-          },
-          "patternProperties": {
-            "^ignored": {
-              "type": "string"
-            },
-            "prop$": {
-              "faker": "name.findName"
-            }
-          },
-          "required": [
-            "test",
-            "count",
-            "dropped",
-            "ignored-prop"
-          ]
-        },
-        "valid": true,
-        "repeat": 100
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-171.json b/tests/schema/core/issues/issue-171.json
deleted file mode 100644
index 451d23751b56287d3aec88be45585aaaf9929d1b..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-171.json
+++ /dev/null
@@ -1,31 +0,0 @@
-[
-  {
-    "description": "support passing array as a single parameter (instead of multiple params)",
-    "tests": [
-      {
-        "description": "should pass an array, when encountered double square brackets",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "title": {
-              "type": "string",
-              "chance": {
-                "pickone": [
-                  [
-                    "one",
-                    "two",
-                    "three"
-                  ]
-                ]
-              }
-            }
-          },
-          "required": [
-            "title"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-193.json b/tests/schema/core/issues/issue-193.json
deleted file mode 100644
index 5d495d9f2a12623e7ded082d88130232aeaa731b..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-193.json
+++ /dev/null
@@ -1,25 +0,0 @@
-[
-  {
-    "description": "pattern and min/max length constraints",
-    "tests": [
-      {
-        "description": "should support minLength",
-        "schema": {
-          "type": "string",
-          "pattern": ".+",
-          "minLength": 21
-        },
-        "valid": true
-      },
-      {
-        "description": "should support maxLength",
-        "schema": {
-          "type": "string",
-          "pattern": ".+",
-          "maxLength": 2
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-224.json b/tests/schema/core/issues/issue-224.json
deleted file mode 100644
index b956fde107bcc02fefbc8a16f7e309f7f6f51b26..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-224.json
+++ /dev/null
@@ -1,40 +0,0 @@
-[
-  {
-    "description": "special cases with enums",
-    "tests": [
-      {
-        "description": "should apply oneOf for minimum/maximum",
-        "schema": {
-          "type": "integer",
-          "enum": [
-            1,
-            10,
-            100,
-            1000,
-            10000
-          ],
-          "oneOf": [
-            {
-              "maximum": 1000
-            },
-            {
-              "minimum": 10
-            }
-          ]
-        },
-        "repeat": 10,
-        "valid": true
-      },
-      {
-        "description": "should filter out non valid values",
-        "schema": {
-          "type":  "number",
-          "enum": [1, 2, 3, 4, 5, 6, 7, 8],
-          "minimum": 3.5
-        },
-        "repeat": 10,
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-238.json b/tests/schema/core/issues/issue-238.json
deleted file mode 100644
index 5a314e47e519b333c707232c7fbdefe7fd2f8ee3..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-238.json
+++ /dev/null
@@ -1,64 +0,0 @@
-[
-  {
-    "description": "allow empty arrays and null values as result",
-    "tests": [
-      {
-        "description": "should not filter out null elements from array",
-        "schema": {
-          "properties": {
-            "myArrayWithNullValue": {
-              "type": [
-                "array"
-              ],
-              "items": {
-                "type": [
-                  "null"
-                ]
-              },
-              "minimum": 1,
-              "minItems": 1,
-              "maxItems": 1
-            }
-          },
-          "required": [
-            "myArrayWithNullValue"
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should create array without elements",
-        "schema": {
-          "type": "array",
-          "items": {
-            "type": [
-              "null"
-            ]
-          },
-          "minimum": 1,
-          "maximum": 1,
-          "minItems": 0,
-          "maxItems": 0
-        },
-        "valid": true
-      },
-      {
-        "description": "should create null value",
-        "schema": {
-          "id": "fooNull",
-          "properties": {
-            "fooNull": {
-              "type": [
-                "null"
-              ]
-            }
-          },
-          "required": [
-            "fooNull"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-252.json b/tests/schema/core/issues/issue-252.json
deleted file mode 100644
index c415aa0d2d665b8104a26af4a7ce9dc357309862..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-252.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "description": "regression for decimal numbers and multiples",
-    "tests": [
-      {
-        "description": "should apply multipleOf correctly",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "num": {
-              "type": "number",
-              "minimum": 0,
-              "maximum": 1,
-              "multipleOf": 0.01
-            }
-          },
-          "required": [
-            "num"
-          ]
-        },
-        "repeat": 100,
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-258.json b/tests/schema/core/issues/issue-258.json
deleted file mode 100644
index c54c40796ef35dd59ecc1a17b3e25c7444bac263..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-258.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "description": "recursive schemas (self-references)",
-  "schemas": [
-    {
-      "type": "object",
-      "properties": {
-        "user": {
-          "type": "object",
-          "properties": {
-            "id": {
-              "type": "integer"
-            },
-            "name": {
-              "type": "string",
-              "faker": "name.findName"
-            },
-            "children": {
-              "$ref": "#/definitions/node"
-            }
-          },
-          "required": [
-            "id",
-            "name"
-          ]
-        }
-      },
-      "required": [
-        "user"
-      ],
-      "definitions": {
-        "node": {
-          "type": "array",
-          "items": {
-            "Id": {
-              "type": "integer"
-            },
-            "Label": {
-              "type": "string"
-            },
-            "Children": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/node"
-              },
-              "minItems": 5
-            }
-          }
-        }
-      }
-    }
-  ],
-  "tests": [
-    {
-      "description": "should work as expected",
-      "schema": "schemas.0",
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-274.json b/tests/schema/core/issues/issue-274.json
deleted file mode 100644
index f58e285501b3cdaf2a6bb9d7683056ab5d1f769b..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-274.json
+++ /dev/null
@@ -1,43 +0,0 @@
-[
-  {
-    "description": "allOf does not work if array item contains oneOf property",
-    "tests": [
-      {
-        "description": "should combine sub-schemas on merging allOf",
-        "schema": {
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "type": "object",
-          "allOf": [
-            {
-              "oneOf": [
-                {
-                  "type": "object",
-                  "properties": {
-                    "b": {
-                      "type": "boolean"
-                    }
-                  },
-                  "required": [
-                    "b"
-                  ]
-                }
-              ]
-            },
-            {
-              "type": "object",
-              "properties": {
-                "a": {
-                  "type": "string"
-                }
-              },
-              "required": [
-                "a"
-              ]
-            }
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-304.json b/tests/schema/core/issues/issue-304.json
deleted file mode 100644
index e4edd0047c675cba57496df1f4ecd54afa87ab3e..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-304.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[
-  {
-    "description": "regression for decimal numbers and multiples",
-    "tests": [
-      {
-        "description": "should apply multipleOf correctly",
-        "schema": {
-          "type": "object",
-          "allOf": [
-            {
-              "type": "object",
-              "properties": {
-                "a": {
-                  "type": "string"
-                },
-                "b": {
-                  "type": "integer"
-                }
-              },
-              "required": [
-                "a",
-                "b"
-              ]
-            },
-            {
-              "type": "object",
-              "properties": {
-                "b": {
-                  "type": "integer"
-                },
-                "c": {
-                  "type": "boolean"
-                }
-              },
-              "required": [
-                "b",
-                "c"
-              ]
-            }
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-329.json b/tests/schema/core/issues/issue-329.json
deleted file mode 100644
index af9c521c35a5490f3012a667af8c5ff509081c85..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-329.json
+++ /dev/null
@@ -1,200 +0,0 @@
-[
-  {
-    "description": "backward-compat issues with RC1",
-    "tests": [
-      {
-        "description": "should resolve the schema (without $refs)",
-        "timeout": 30000,
-        "online": true,
-        "schema": {
-          "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-          "title": "#AccountService.v1_2_1.AccountService",
-          "$ref": "#/definitions/AccountService",
-          "definitions": {
-            "AccountService": {
-              "type": "object",
-              "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                  "type": [
-                    "array",
-                    "boolean",
-                    "number",
-                    "null",
-                    "object",
-                    "string"
-                  ],
-                  "description": "This property shall specify a valid odata or Redfish property."
-                }
-              },
-              "additionalProperties": false,
-              "properties": {
-                "@odata.context": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                  "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                  "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                  "readonly": true
-                },
-                "Description": {
-                  "anyOf": [
-                    {
-                      "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                    },
-                    {
-                      "type": "null"
-                    }
-                  ],
-                  "readonly": true
-                },
-                "Name": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                  "readonly": true
-                },
-                "Status": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "ServiceEnabled": {
-                  "type": [
-                    "boolean",
-                    "null"
-                  ],
-                  "readonly": false,
-                  "description": "This indicates whether this service is enabled.  If this is set to false, the AccountService is disabled.  This means no users can be created, deleted or modified.  Any service attempting to access the Account Service, like the Session Service, will fail accessing.  Thus new sessions cannot be started with the service disabled (though established sessions may still continue operating).  Note: this does not affect Basic AUTH connections.",
-                  "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.  If this is set to false, the AccountService is disabled.  This means no users can be created, deleted or modified.  Any service attempting to access the Account Service, like the Session Service, will fail accessing.  Thus new sessions cannot be started with the service disabled (though established sessions may still continue operating).  Note: this does not affect Basic AUTH connections."
-                },
-                "AuthFailureLoggingThreshold": {
-                  "type": "number",
-                  "minimum": 0,
-                  "readonly": false,
-                  "description": "This is the number of authorization failures that need to occur before the failure attempt is logged to the manager log.",
-                  "longDescription": "This property shall reference the threshold for when an authorization failure is logged.  This represents a modulo function value, thus the failure shall be logged every nth occurrence where n represents the value of this property."
-                },
-                "MinPasswordLength": {
-                  "type": "number",
-                  "minimum": 0,
-                  "readonly": true,
-                  "description": "This is the minimum password length for this service.",
-                  "longDescription": "This property shall reference the minimum password length that the implementation will allow a password to be set to."
-                },
-                "MaxPasswordLength": {
-                  "type": "number",
-                  "minimum": 0,
-                  "readonly": true,
-                  "description": "This is the maximum password length for this service.",
-                  "longDescription": "This property shall reference the maximum password length that the implementation will allow a password to be set to."
-                },
-                "AccountLockoutThreshold": {
-                  "type": [
-                    "number",
-                    "null"
-                  ],
-                  "minimum": 0,
-                  "readonly": false,
-                  "description": "The number of failed login attempts before a user account is locked for a specified duration (0=never locked).",
-                  "longDescription": "This property shall reference the threshold of failed login attempts at which point the user's account is locked.  If set to 0, no lockout shall ever occur."
-                },
-                "AccountLockoutDuration": {
-                  "type": [
-                    "number",
-                    "null"
-                  ],
-                  "minimum": 0,
-                  "units": "s",
-                  "readonly": false,
-                  "description": "The time in seconds an account is locked after the account lockout threshold is met. Must be >= AccountLockoutResetAfter. If set to 0, no lockout will occur.",
-                  "longDescription": "This property shall reference the period of time in seconds that an account is locked after the number of failed login attempts reaches the threshold referenced by AccountLockoutThreshold, within the window of time referenced by AccountLockoutCounterResetAfter.  The value shall be greater than or equal to the value of AccountLockoutResetAfter.  If set to 0, no lockout shall occur."
-                },
-                "AccountLockoutCounterResetAfter": {
-                  "type": "number",
-                  "minimum": 0,
-                  "units": "s",
-                  "readonly": false,
-                  "description": "The interval of time in seconds since the last failed login attempt at which point the lockout threshold counter for the account is reset to zero. Must be less than or equal to AccountLockoutDuration.",
-                  "longDescription": "This property shall reference the threshold of time in seconds from the last failed login attempt at which point the AccountLockoutThreshold counter (that counts number of failed login attempts) is reset back to zero (at which point AccountLockoutThreshold failures would be required before the account is locked).  This value shall be less than or equal to AccountLockoutDuration. The threshold counter also resets to zero after each successful login."
-                },
-                "Accounts": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerAccountCollection.json#/definitions/ManagerAccountCollection",
-                  "readonly": true,
-                  "description": "Link to a collection of Manager Accounts.",
-                  "longDescription": "This property shall contain the link to a collection of type ManagerAccountCollection."
-                },
-                "Roles": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/RoleCollection.json#/definitions/RoleCollection",
-                  "readonly": true,
-                  "description": "Link to a collection of Roles.",
-                  "longDescription": "This property shall contain the link to a collection of type RoleCollection."
-                },
-                "PrivilegeMap": {
-                  "$ref": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.json#/definitions/PrivilegeRegistry",
-                  "readonly": true,
-                  "description": "A reference to the Privilege mapping defining the privileges needed to perform a requested operation on a URI associated with this service.",
-                  "longDescription": "The value of this property shall be a link to a resource of type PrivilegeMappoing that defines the privileges a user context needs in order to perform a requested operation on a URI associated with this service."
-                },
-                "Actions": {
-                  "type": "object",
-                  "patternProperties": {
-                    "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                      "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                      ],
-                      "description": "This property shall specify a valid odata or Redfish property."
-                    }
-                  },
-                  "additionalProperties": false,
-                  "properties": {
-                    "Oem": {
-                      "type": "object",
-                      "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                          "type": [
-                            "array",
-                            "boolean",
-                            "number",
-                            "null",
-                            "object",
-                            "string"
-                          ],
-                          "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                      },
-                      "additionalProperties": true,
-                      "properties": {},
-                      "description": "The available OEM specific actions for this resource.",
-                      "longDescription": "This type shall contain any additional OEM actions for this resource."
-                    }
-                  },
-                  "description": "The available actions for this resource.",
-                  "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-              },
-              "required": [
-                "Id",
-                "Name"
-              ],
-              "description": "Account Service contains properties common to all user accounts, such as password requirements, and control features such as account lockout.  It also contains links to the collections of Manager Accounts and Roles.",
-              "longDescription": "This resource shall be used to represent a management account service for a Redfish implementation."
-            }
-          },
-          "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-        },
-        "hasProps": ["Id", "Name"]
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-331.json b/tests/schema/core/issues/issue-331.json
deleted file mode 100644
index f8e0f17a9077096e6693b8c34106860af2fd9eed..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-331.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
-  {
-    "description": "regression for non-empty arrays",
-    "tests": [
-      {
-        "description": "should allow empty arrays if they are required",
-        "schema": {
-          "type": "array",
-          "items": {
-            "type": "object",
-            "properties": {
-              "n": {
-                "type": "number"
-              },
-              "a": {
-                "type": "array",
-                "items": {
-                  "type": "object"
-                }
-              }
-            },
-            "required": [
-              "n",
-              "a"
-            ]
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-336.json b/tests/schema/core/issues/issue-336.json
deleted file mode 100644
index d4f86280d91a49556f3b372ab0eb17ee2ee9ba7f..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-336.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
-  {
-    "description": "regression for oneOf mixins",
-    "tests": [
-      {
-        "description": "should pick just one property",
-        "schema": {
-          "title": "timesync",
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "type": "object",
-          "properties": {
-            "sntp": {
-              "type": "boolean"
-            },
-            "timep": {
-              "type": "boolean"
-            },
-            "timep-or-sntp": {
-              "type": "boolean"
-            },
-            "ntp": {
-              "type": "boolean"
-            }
-          },
-          "oneOf": [
-            {
-              "required": [
-                "sntp"
-              ]
-            },
-            {
-              "required": [
-                "timep"
-              ]
-            },
-            {
-              "required": [
-                "timep-or-sntp"
-              ]
-            },
-            {
-              "required": [
-                "ntp"
-              ]
-            }
-          ],
-          "additionalProperties": false
-        },
-        "repeat": 100,
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-338.json b/tests/schema/core/issues/issue-338.json
deleted file mode 100644
index 6a6b5725a2c01f385be40814e5424af1b46bb760..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-338.json
+++ /dev/null
@@ -1,19 +0,0 @@
-[
-  {
-    "description": "regression for decimal numbers and multiples",
-    "tests": [
-      {
-        "description": "should apply multipleOf correctly",
-        "schema": {
-          "title": "Resource 217 - default_representation",
-          "type": "object",
-          "properties": {},
-          "additionalProperties": false,
-          "id": "http://json-schema.org/schema#"
-        },
-        "equal": {},
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-345.json b/tests/schema/core/issues/issue-345.json
deleted file mode 100644
index 7a0d4f765b901684a5b6944024085b102639702d..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-345.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "description": "Invalid JSON generated with cyclic reference",
-  "tests": [
-    {
-      "description": "it will work as expected",
-      "schema": {
-        "type": "object",
-        "definitions": {
-          "DefaultCyclic_106": {
-            "type": "object",
-            "properties": {
-              "id": {
-                "type": "integer"
-              },
-              "me": {
-                "type": "object",
-                "$ref": "#/definitions/DefaultCyclic_106"
-              }
-            },
-            "additionalProperties": false,
-            "required": [
-              "id"
-            ]
-          }
-        },
-        "properties": {
-          "id": {
-            "type": "integer"
-          },
-          "me": {
-            "type": "object",
-            "$ref": "#/definitions/DefaultCyclic_106"
-          }
-        },
-        "required": [
-          "id"
-        ],
-        "additionalProperties": false
-      },
-      "set": {
-        "optionalsProbability": 0.75
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-369.json b/tests/schema/core/issues/issue-369.json
deleted file mode 100644
index 9b9a152bdd19a6811baacfee0025470519f7070c..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-369.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "description": "Creates unnecessary fields that not described in schema but exists in required section",
-  "tests": [
-    {
-      "description": "should take missing props from required ones",
-      "schema": {
-        "$schema": "http://json-schema.org/draft-04/schema#",
-        "title": "Customer",
-        "description": "Customer",
-        "type": "object",
-        "properties": {
-          "emails": {
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "address": {
-                  "type": "string"
-                },
-                "typeCode": {
-                  "type": "string"
-                },
-                "isPrimary": {
-                  "type": "boolean"
-                }
-              },
-              "required": [
-                "address",
-                "typeCode",
-                "isPrimary"
-              ]
-            },
-            "minItems": 1,
-            "maxItems": 1
-          }
-        },
-        "required": [
-          "name",
-          "birthDate",
-          "addresses",
-          "emails"
-        ]
-      },
-      "count": 4,
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-379.json b/tests/schema/core/issues/issue-379.json
deleted file mode 100644
index 6740930e5cf0ef4f09f87079759d5b77de12843e..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-379.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "description": "Floating point when using multipleOf",
-  "tests": [
-    {
-      "description": "should truncate up to given decimals",
-      "schema": {
-        "type": "number",
-        "multipleOf": 0.01
-      },
-      "seed": 0.25546874766962246,
-      "equal": 51093749.53,
-      "valid": true
-    },
-    {
-      "description": "should truncate up to given decimals (large decimals)",
-      "schema": {
-        "type": "number",
-        "multipleOf": 0.01
-      },
-      "seed": 0.06559633646612273,
-      "equal": 13119267.290000001,
-      "valid": false
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-386.json b/tests/schema/core/issues/issue-386.json
deleted file mode 100644
index ae499a8b0d24384f28d2bd270c9a672cb3700436..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-386.json
+++ /dev/null
@@ -1,69 +0,0 @@
-[
-  {
-    "description": "OneOf/AnyOf Json Schema Validation not working",
-    "tests": [
-      {
-        "description": "should eventually generate a valid value",
-        "schema": {
-          "title": "timesync",
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "type": "object",
-          "properties": {
-            "sntp": {
-              "type": "boolean",
-              "default": false,
-              "description": "Update the system clock using SNTP."
-            },
-            "timep": {
-              "type": "boolean",
-              "default": false,
-              "description": "Update the system clock using TIMEP."
-            },
-            "timep-or-sntp": {
-              "type": "boolean",
-              "default": true,
-              "description": "Update the system clock using TIMEP or SNTP."
-            },
-            "ntp": {
-              "type": "boolean",
-              "default": false,
-              "description": "Update the system clock using NTP."
-            },
-            "uri": {
-              "type": "string",
-              "description": "The URI of the configuration entity",
-              "readonly": true
-            }
-          },
-          "oneOf": [
-            {
-              "required": [
-                "sntp"
-              ]
-            },
-            {
-              "required": [
-                "timep"
-              ]
-            },
-            {
-              "required": [
-                "timep-or-sntp"
-              ]
-            },
-            {
-              "required": [
-                "ntp"
-              ]
-            }
-          ],
-          "additionalProperties": false
-        },
-        "set": {
-          "alwaysFakeOptionals": true
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-400.json b/tests/schema/core/issues/issue-400.json
deleted file mode 100644
index e19db7102f01ab8172b96efceb4273c7bccde229..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-400.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
-  "description": "jsonPath only returns the first item in data set",
-  "tests": [
-    {
-      "description": "should randomize values from json-path references",
-      "schema": {
-        "type": "object",
-        "properties": {
-          "users": {
-            "type": "array",
-            "minItems": 5,
-            "maxItems": 10,
-            "items": {
-              "type": "object",
-              "properties": {
-                "emplId": {
-                  "type": "integer",
-                  "minimum": 1000000,
-                  "maximum": 1500000
-                },
-                "empDeptId": {
-                  "type": "integer",
-                  "jsonPath": "$..departments[*].id"
-                }
-              },
-              "required": [
-                "emplId",
-                "empDeptId"
-              ]
-            }
-          },
-          "departments": {
-            "type": "array",
-            "minItems": 3,
-            "maxItems": 5,
-            "items": {
-              "type": "object",
-              "properties": {
-                "id": {
-                  "type": "integer",
-                  "minimum": 1000,
-                  "maximum": 9999
-                },
-                "name": {
-                  "type": "string",
-                  "faker": "name.jobArea"
-                }
-              },
-              "required": [
-                "id",
-                "name"
-              ]
-            }
-          }
-        },
-        "required": [
-          "users",
-          "departments"
-        ]
-      },
-      "require": "core/extend/faker-extend",
-      "set": {
-        "resolveJsonPath": true
-      },
-      "valid": true
-    },
-    {
-      "description": "should randomize values from json-path references (example 2)",
-      "schema": {
-        "type": "object",
-        "properties": {
-          "hunches": {
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "id": {
-                  "type": "string",
-                  "faker": "random.uuid"
-                }
-              },
-              "required": ["id"]
-            }
-          },
-          "boxes": {
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "id": {
-                  "type": "string",
-                  "faker": "random.uuid"
-                },
-                "hunchIds": {
-                  "type": "array",
-                  "items": {
-                    "type": "string",
-                    "jsonPath": "$..hunches[*].id"
-                  }
-                }
-              },
-              "required": ["id", "hunchIds"]
-            }
-          }
-        },
-        "required": ["hunches", "boxes"]
-      },
-      "require": "core/extend/faker-extend",
-      "set": {
-        "resolveJsonPath": true
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-405.json b/tests/schema/core/issues/issue-405.json
deleted file mode 100644
index 630ebe5cab2e82b934c02106593780f01d09925a..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-405.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "description": "Enum with negative number is not generated",
-  "tests": [
-    {
-      "description": "should pick anything from enum values",
-      "schema": {
-        "type": "integer",
-        "enum": [
-          -4
-        ]
-      },
-      "equal": -4,
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-416.json b/tests/schema/core/issues/issue-416.json
deleted file mode 100644
index 9679a47c81151751287227ba6a09cd9293b1b0c9..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-416.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "description": "Weird output using patternProperties and minProperties",
-  "tests": [
-    {
-      "description": "it will generate only given props when additionalProperties is false",
-      "schema": {
-        "type": "object",
-        "patternProperties": {
-          "[a-z0-9]": {
-            "type": "object",
-            "properties": {
-              "example": {
-                "type": "string"
-              }
-            },
-            "required": [
-              "example"
-            ]
-          }
-        },
-        "minProperties": 10,
-        "maxProperties": 10
-      },
-      "count": 10,
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-419.json b/tests/schema/core/issues/issue-419.json
deleted file mode 100644
index 9590fe8863394988169c5d1894ca562ac68d6299..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-419.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-  "description": "Having two properties that have the same value",
-  "tests": [
-    {
-      "description": "should resolve values from siblings",
-      "schema": {
-        "type": "object",
-        "properties": {
-          "cards": {
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "id": {
-                  "type": "string",
-                  "default": "osom"
-                },
-                "slug": {
-                  "type": "string",
-                  "template": "#{id}"
-                }
-              },
-              "required": [
-                "id",
-                "slug"
-              ]
-            },
-            "minItems": 1,
-            "maxItems": 1
-          }
-        },
-        "required": [
-          "cards"
-        ]
-      },
-      "set": {
-        "useDefaultValue": true
-      },
-      "equal": {
-        "cards": [
-          {
-            "id": "osom",
-            "slug": "osom"
-          }
-        ]
-      },
-      "valid": true
-    },
-    {
-      "description": "should access generated values if they're sorted",
-      "schema": {
-        "type": "object",
-        "properties": {
-          "z": {
-            "type": "string",
-            "faker": "name.findName"
-          },
-          "b": {
-            "type": "string",
-            "faker": "name.lastName"
-          },
-          "c": {
-            "template": "#{b} II"
-          },
-          "y": {
-            "faker": {
-              "internet.email": ["#{z}", "#{c}", "#{b}.com"]
-            }
-          }
-        },
-        "required": ["z", "b", "c", "y"]
-      },
-      "require": "core/extend/faker-extend",
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-425.json b/tests/schema/core/issues/issue-425.json
deleted file mode 100644
index ba64ac56fddbdd8449f0c3b65f6c599275aa3983..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-425.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "description": "optionalsProbability not recalculated for each record in an array?",
-  "tests": [
-    {
-      "description": "it will eventually generate phone property",
-      "schema": {
-        "type": "object",
-        "properties": {
-          "records": {
-            "type": "array",
-            "minItems": 5,
-            "maxItems": 20,
-            "items": {
-              "type": "object",
-              "properties": {
-                "name": {
-                  "type": "string",
-                  "faker": "name.findName"
-                },
-                "phone": {
-                  "type": "string",
-                  "faker": "phone.phoneNumber"
-                },
-                "email": {
-                  "type": "string",
-                  "faker": "internet.email"
-                }
-              },
-              "required": [
-                "name",
-                "email"
-              ]
-            }
-          }
-        },
-        "required": [
-          "records"
-        ]
-      },
-      "set": {
-        "optionalsProbability": 0.6
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-427.json b/tests/schema/core/issues/issue-427.json
deleted file mode 100644
index d75b79078e561ed882769ce583d1a3ec1dcc1558..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-427.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
-  "description": "Circular referencies not working?",
-  "tests": [
-    {
-      "description": "should eventually generate nested values",
-      "schema": {
-        "additionalProperties": false,
-        "type": "object",
-        "properties": {
-          "a": {
-            "type": "object",
-            "additionalProperties": false,
-            "properties": {
-              "prop1": {
-                "type": "string"
-              },
-              "prop2": {
-                "type": "number"
-              }
-            },
-            "required": [
-              "prop1"
-            ]
-          },
-          "b": {
-            "$ref": "#/definitions/B"
-          }
-        },
-        "required": [
-          "a",
-          "b"
-        ],
-        "definitions": {
-          "B": {
-            "type": "object",
-            "additionalProperties": false,
-            "properties": {
-              "b1": {
-                "type": "number"
-              },
-              "b2": {
-                "type": "boolean"
-              },
-              "b3": {
-                "anyOf": [
-                  {
-                    "$ref": "#/definitions/C"
-                  },
-                  {
-                    "$ref": "#/definitions/D"
-                  }
-                ]
-              }
-            },
-            "required": [
-              "b1",
-              "b2",
-              "b3"
-            ]
-          },
-          "C": {
-            "type": "object",
-            "additionalProperties": false,
-            "properties": {
-              "c1": {
-                "type": "string"
-              },
-              "c2": {
-                "type": "boolean"
-              }
-            },
-            "required": [
-              "c1"
-            ]
-          },
-          "D": {
-            "type": "object",
-            "additionalProperties": false,
-            "properties": {
-              "d1": {
-                "type": "string"
-              },
-              "d2": {
-                "$ref": "#/definitions/B"
-              }
-            },
-            "required": [
-              "d1",
-              "d2"
-            ]
-          }
-        }
-      },
-      "set": {
-        "optionalsProbability": 0.6
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-442.json b/tests/schema/core/issues/issue-442.json
deleted file mode 100644
index 3b8666b521e9056ed683e475817227046990f86d..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-442.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "description": "useDefaultValue should use default, not properties.default",
-  "tests": [
-    {
-      "description": "Setting useDefaultValue should not pick from properties.default",
-      "schema": {
-        "type": "object",
-        "required": ["default", "other"],
-        "properties": {
-          "default": {
-            "type": "boolean",
-            "default": false
-          },
-          "other": {
-            "type": "string",
-            "enum": ["value"]
-          }
-        }
-      },
-      "set": {
-        "useDefaultValue": true
-      },
-      "equal": {
-        "default": false,
-        "other": "value"
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-443.json b/tests/schema/core/issues/issue-443.json
deleted file mode 100644
index c1fb0bd259a86e13e05ccb1198cc61570218bd4f..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-443.json
+++ /dev/null
@@ -1,441 +0,0 @@
-[
-  {
-    "description": "OptionalsProbability not working as expected #443",
-    "schemas": [
-      {
-        "title": "name",
-        "$schema": "http://json-schema.org/draft-04/schema#",
-        "type": "object",
-        "properties": {
-          "name": {
-            "type": "object",
-            "required": [
-              "name_value"
-            ],
-            "properties": {
-              "name_value": {
-                "type": "string",
-                "pattern": "^(\"){1}[a-zA-Z0-9]{1,}(\"){1}$"
-              },
-              "name_reference": {
-                "$ref": "#/definitions/name_ref_1"
-              }
-            }
-          },
-          "uri": {
-            "type": "string",
-            "description": "The URI of the configuration entity",
-            "readonly": true
-          }
-        },
-        "required": [
-          "name"
-        ],
-        "definitions": {
-          "portal-profile_ref_3": {
-            "type": "object",
-            "required": [
-              "profile"
-            ],
-            "properties": {
-              "profile": {
-                "type": "string",
-                "pattern": "^(\"){1}[a-zA-Z0-9]{1,}(\"){1}$"
-              }
-            }
-          },
-          "policy_ref_4": {
-            "type": "object",
-            "required": [
-              "policy"
-            ],
-            "properties": {
-              "policy": {
-                "type": "string"
-              }
-            }
-          },
-          "reauth-period_ref_5": {
-            "type": "object",
-            "required": [
-              "reauth-period"
-            ],
-            "properties": {
-              "reauth-period": {
-                "type": "integer",
-                "default": 0,
-                "minimum": 0,
-                "maximum": 999999999
-              }
-            }
-          },
-          "user-id_ref_6": {
-            "type": "object",
-            "required": [
-              "user-id"
-            ],
-            "properties": {
-              "user-id": {
-                "type": "integer",
-                "minimum": 1,
-                "maximum": 4094
-              }
-            }
-          },
-          "user-name_ref_7": {
-            "type": "object",
-            "required": [
-              "user"
-            ],
-            "properties": {
-              "user": {
-                "type": "string"
-              }
-            }
-          },
-          "user-id-tagged_ref_8": {
-            "type": "object",
-            "required": [
-              "user-id-tagged"
-            ],
-            "properties": {
-              "user-id-tagged": {
-                "type": "integer",
-                "minimum": 1,
-                "maximum": 4094
-              }
-            }
-          },
-          "user-name-tagged_ref_9": {
-            "type": "object",
-            "required": [
-              "user"
-            ],
-            "properties": {
-              "user": {
-                "type": "string"
-              }
-            }
-          },
-          "secondary-role_ref_11": {
-            "type": "object",
-            "required": [
-              "role"
-            ],
-            "properties": {
-              "role": {
-                "type": "string",
-                "pattern": "^(\"){1}[a-zA-Z0-9]{1,}(\"){1}$"
-              }
-            }
-          },
-          "server-redirect_ref_10": {
-            "type": "object",
-            "anyOf": [
-              {
-                "required": [
-                  "secondary-role"
-                ]
-              },
-              {
-                "required": [
-                  "vsa"
-                ]
-              }
-            ],
-            "properties": {
-              "secondary-role": {
-                "$ref": "#/definitions/secondary-role_ref_11"
-              },
-              "vsa": {
-                "type": "boolean"
-              }
-            }
-          },
-          "name_ref_1": {
-            "type": "object",
-            "properties": {
-              "portal-profile": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "portal-profile_reference": {
-                    "$ref": "#/definitions/portal-profile_ref_3"
-                  }
-                },
-                "oneOf": [
-                  {
-                    "required": [
-                      "portal-profile_reference"
-                    ]
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ]
-                  }
-                ]
-              },
-              "user-id-tagged": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "user-id-tagged_reference": {
-                    "$ref": "#/definitions/user-id-tagged_ref_8"
-                  }
-                },
-                "oneOf": [
-                  {
-                    "required": [
-                      "user-id-tagged_reference"
-                    ]
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ]
-                  }
-                ]
-              },
-              "server-redirect": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "server-redirect_reference": {
-                    "$ref": "#/definitions/server-redirect_ref_10"
-                  }
-                },
-                "anyOf": [
-                  {
-                    "required": [
-                      "server-redirect_reference"
-                    ],
-                    "not": {
-                      "required": [
-                        "cmd_no_form"
-                      ]
-                    }
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ],
-                    "not": {
-                      "required": [
-                        "server-redirect_reference"
-                      ]
-                    }
-                  }
-                ]
-              },
-              "policy": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "policy_reference": {
-                    "$ref": "#/definitions/policy_ref_4"
-                  }
-                },
-                "oneOf": [
-                  {
-                    "required": [
-                      "policy_reference"
-                    ]
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ]
-                  }
-                ]
-              },
-              "reauth-period": {
-                "$ref": "#/definitions/reauth-period_ref_5"
-              },
-              "user-id": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "user-id_reference": {
-                    "$ref": "#/definitions/user-id_ref_6"
-                  }
-                },
-                "oneOf": [
-                  {
-                    "required": [
-                      "user-id_reference"
-                    ]
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ]
-                  }
-                ]
-              },
-              "user-name-tagged": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "user-name-tagged_reference": {
-                    "$ref": "#/definitions/user-name-tagged_ref_9"
-                  }
-                },
-                "oneOf": [
-                  {
-                    "required": [
-                      "user-name-tagged_reference"
-                    ]
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ]
-                  }
-                ]
-              },
-              "user-name": {
-                "type": "object",
-                "properties": {
-                  "cmd_no_form": {
-                    "type": "boolean",
-                    "enum": [
-                      false
-                    ]
-                  },
-                  "user-name_reference": {
-                    "$ref": "#/definitions/user-name_ref_7"
-                  }
-                },
-                "oneOf": [
-                  {
-                    "required": [
-                      "user-name_reference"
-                    ]
-                  },
-                  {
-                    "required": [
-                      "cmd_no_form"
-                    ]
-                  }
-                ]
-              }
-            },
-            "anyOf": [
-              {
-                "required": [
-                  "portal-profile"
-                ],
-                "not": {
-                  "required": [
-                    "server-redirect"
-                  ]
-                }
-              },
-              {
-                "required": [
-                  "policy"
-                ]
-              },
-              {
-                "required": [
-                  "reauth-period"
-                ]
-              },
-              {
-                "required": [
-                  "user-id"
-                ],
-                "not": {
-                  "required": [
-                    "user-name"
-                  ]
-                }
-              },
-              {
-                "required": [
-                  "user-name"
-                ],
-                "not": {
-                  "required": [
-                    "user-id"
-                  ]
-                }
-              },
-              {
-                "required": [
-                  "user-id-tagged"
-                ],
-                "not": {
-                  "required": [
-                    "user-name-tagged"
-                  ]
-                }
-              },
-              {
-                "required": [
-                  "user-name-tagged"
-                ],
-                "not": {
-                  "required": [
-                    "user-id-tagged"
-                  ]
-                }
-              },
-              {
-                "required": [
-                  "server-redirect"
-                ],
-                "not": {
-                  "required": [
-                    "portal-profile"
-                  ]
-                }
-              }
-            ]
-          }
-        }
-      }
-    ],
-    "tests": [
-      {
-        "description": "it will eventually generate more values",
-        "schema": "schemas.0",
-        "set": {
-          "optionalsProbability": 0.1
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-446.json b/tests/schema/core/issues/issue-446.json
deleted file mode 100644
index 8dad4ccd69c5f3e77fd108deafba0cf8064e4a1f..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-446.json
+++ /dev/null
@@ -1,41 +0,0 @@
-[
-  {
-    "description": "oneOf/anyOf/allOf is deleted after one item generation",
-    "schemas": [
-      {
-        "definitions": {
-          "Element": {
-            "anyOf": [
-              {
-                "enum": [
-                  "123"
-                ]
-              },
-              {
-                "enum": [
-                  "456"
-                ]
-              }
-            ]
-          }
-        },
-        "items": [
-          {
-            "$ref": "#/definitions/Element"
-          },
-          {
-            "$ref": "#/definitions/Element"
-          }
-        ]
-      }
-    ],
-    "tests": [
-      {
-        "description": "it will always generate two items",
-        "schema": "schemas.0",
-        "count": 2,
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-453.json b/tests/schema/core/issues/issue-453.json
deleted file mode 100644
index f75335b1f715a29dbbee43945ba2b8dce7df9686..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-453.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "description": "Example using $ref not working",
-    "schemas": [
-      {
-        "id": "otherSchema",
-        "type": "string"
-      }
-    ],
-    "tests": [
-      {
-        "description": "it will eventually generate a value",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "someValue": {
-              "$ref": "otherSchema"
-            }
-          }
-        },
-        "refs": ["schemas.0"],
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-455.json b/tests/schema/core/issues/issue-455.json
deleted file mode 100644
index 34290c6f1a717a19c4230542226c1ea4eef92e1b..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-455.json
+++ /dev/null
@@ -1,23 +0,0 @@
-[
-  {
-    "description": "use faker or chance as object properties",
-    "tests": [
-      {
-        "description": "should allow both keywords",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "faker": {
-              "type": "string",
-              "format": "email"
-            }
-          },
-          "required": [
-            "faker"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-456.json b/tests/schema/core/issues/issue-456.json
deleted file mode 100644
index afe92314ab5460a9f2fb01562429549d7d9e51ed..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-456.json
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-  {
-    "description": "Optional maxItems, minItems and maxLength doesn't work",
-    "tests": [
-      {
-        "description": "minItems/maxItems will override schema",
-        "schema": {
-          "type": "array",
-          "minItems": 100,
-          "maxItems": 200,
-          "items": {
-            "type": "integer"
-          }
-        },
-        "set": {
-          "minItems": 1,
-          "maxItems": 1
-        },
-        "count": 1
-      },
-      {
-        "description": "setting maxLength should truncate schema, not override",
-        "schema": {
-          "type": "string",
-          "minLength": 1,
-          "maxLength": 1,
-          "faker": "name.findName"
-        },
-        "require": "core/extend/faker-extend",
-        "set": {
-          "maxLength": 20
-        },
-        "count": 1
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-458.json b/tests/schema/core/issues/issue-458.json
deleted file mode 100644
index f36c79ee323cd299919a84737b37ae9adfb313a0..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-458.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "description": "when defining object with property called 'pattern'",
-    "tests": [
-      {
-        "description": "should fake all properties as expected",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "pattern": {
-              "type": "string"
-            }
-          },
-          "required": [
-            "pattern"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-467.json b/tests/schema/core/issues/issue-467.json
deleted file mode 100644
index 21be4bf4193c474145a4fbb67cf45bb7a9895ad2..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-467.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "description": "String maxLength is ignored after 0.5.0-rc12",
-  "tests": [
-    {
-      "description": "generated strings must not exceed 10 chars",
-      "schema": {
-        "type": "object",
-        "properties": {
-          "user": {
-            "type": "object",
-            "properties": {
-              "name": {
-                "type": [
-                  "string",
-                  "null"
-                ],
-                "maxLength": 10
-              }
-            },
-            "required": [
-              "name"
-            ]
-          }
-        },
-        "required": [
-          "user"
-        ]
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-470.json b/tests/schema/core/issues/issue-470.json
deleted file mode 100644
index 4738515354e8e854a0f5a5818355bbf36e37eb5c..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-470.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "description": "Missing property 'array of object' in object",
-  "tests": [
-    {
-      "description": "xxx",
-      "schema": {
-        "additionalProperties": false,
-        "properties": {
-          "offer": {
-            "type": "object",
-            "properties": {
-              "multiplier_for_durations": {
-                "items": {
-                  "type": "object"
-                },
-                "type": "array"
-              }
-            },
-            "required": [
-              "multiplier_for_durations"
-            ]
-          }
-        },
-        "required": [
-          "offer"
-        ],
-        "type": "object"
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-486.json b/tests/schema/core/issues/issue-486.json
deleted file mode 100644
index 9ea4aae523160fab612891347dea4bdfae4f9a0d..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-486.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "description": "pattern constraints",
-    "tests": [
-      {
-        "description": "should fullfil minLength/maxLength constraints",
-        "schema": {
-          "type": "string",
-          "minLength": 8,
-          "maxLength": 20,
-          "pattern": "^[a-zA-Z0-9_]+$"
-        },
-        "valid": true
-      },
-      {
-        "description": "would fail on complex patterns",
-        "schema": {
-          "type": "string",
-          "pattern": "^A[CD]{1,6}B$",
-          "minLength": 6
-        },
-        "throws": "String does not match pattern"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-489.json b/tests/schema/core/issues/issue-489.json
deleted file mode 100644
index 8f7578526db397db87ca4bbb38d7d443e153a68a..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-489.json
+++ /dev/null
@@ -1,55 +0,0 @@
-[
-  {
-    "description": "support consider patternProperties",
-    "tests": [
-      {
-        "description": "ensure first schema passes",
-        "schema": {
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "patternProperties": {
-            "test": {
-              "type": "null"
-            }
-          },
-          "properties": {
-            "test": {
-              "title": "short description"
-            }
-          },
-          "required": ["test"]
-        },
-        "valid": true
-      },
-      {
-        "description": "merge both properties definitions",
-        "schema": {
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "patternProperties": {
-            ".*_int$": {
-              "type": "integer"
-            }
-          },
-          "properties": {
-            "big_int": {
-              "title": "short description",
-              "minimum": 100
-            },
-            "normal_int": {
-              "title": "short description"
-            },
-            "small_int": {
-              "title": "short description",
-              "maximum": 100
-            }
-          },
-          "required": [
-            "big_int",
-            "normal_int",
-            "small_int"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-494.json b/tests/schema/core/issues/issue-494.json
deleted file mode 100644
index 489bf020e5c9275a0be004e1b848c4b858ef0454..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-494.json
+++ /dev/null
@@ -1,67 +0,0 @@
-[
-  {
-    "description": "will use alwaysFakeOptionals",
-    "tests": [
-      {
-        "description": "should work if enabled",
-        "schema": {
-          "account-response": {
-            "title": "Account Response",
-            "type": "object",
-            "properties": {
-              "current": {
-                "type": "array",
-                "items": {
-                  "$ref": "#/definitions/current-account"
-                }
-              },
-              "escrow": {
-                "type": "array",
-                "items": {
-                  "$ref": "#/definitions/current-account"
-                }
-              }
-            },
-            "required": [
-              "current"
-            ]
-          },
-          "definitions": {
-            "current-account": {
-              "title": "Current Account",
-              "type": "object",
-              "properties": {
-                "number": {
-                  "type": "string"
-                },
-                "name": {
-                  "type": "string"
-                },
-                "balance": {
-                  "type": "number"
-                },
-                "currency": {
-                  "type": "string"
-                }
-              },
-              "required": [
-                "number",
-                "name",
-                "balance",
-                "currency"
-              ]
-            }
-          }
-        },
-        "set": {
-          "alwaysFakeOptionals": true
-        },
-        "notEmpty": [
-          "account-response.current",
-          "account-response.escrow"
-        ],
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-498.json b/tests/schema/core/issues/issue-498.json
deleted file mode 100644
index c77c342117658e962625a8450b543c65b4c3d98b..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-498.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "description": "support consider patternProperties",
-    "tests": [
-      {
-        "description": "ensure first schema passes",
-        "schema": {
-          "required": [
-            "longitude"
-          ],
-          "type": "object",
-          "properties": {
-            "longitude": {
-              "title": "Longitude",
-              "type": "string",
-              "format": "decimal"
-            }
-          }
-        },
-        "set": {
-          "failOnInvalidFormat": false
-        }
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-502.json b/tests/schema/core/issues/issue-502.json
deleted file mode 100644
index 176ca2b600bd827c5ccbe21c866256e74a972fef..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-502.json
+++ /dev/null
@@ -1,50 +0,0 @@
-[
-  {
-    "description": "will use alwaysFakeOptionals (regression)",
-    "tests": [
-      {
-        "description": "will fix #502",
-        "schema": {
-          "title": "Forum",
-          "type": "object",
-          "properties": {
-            "Id": {
-              "type": "string"
-            },
-            "Topics": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Topic"
-              }
-            }
-          },
-          "definitions": {
-            "Topic": {
-              "type": "object",
-              "properties": {
-                "Id": {
-                  "type": "string"
-                },
-                "Posts": {
-                  "type": "array",
-                  "items": {
-                    "$ref": "#/definitions/Post"
-                  }
-                }
-              }
-            },
-            "Post": {
-              "type": "object",
-              "properties": {
-                "Id": {
-                  "type": "string"
-                }
-              }
-            }
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-504.json b/tests/schema/core/issues/issue-504.json
deleted file mode 100644
index df424470cd4f47a826e3380855f246836acf8579..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-504.json
+++ /dev/null
@@ -1,27 +0,0 @@
-[
-  {
-    "description": "pattern and min/max length constraints",
-    "tests": [
-      {
-        "description": "should support minLength",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "rodo": {
-              "type": "string"
-            }
-          },
-          "required": [
-            "rodo"
-          ],
-          "minProperties": 1,
-          "maxProperties": 3,
-          "additionalProperties": {
-            "type": "boolean"
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-506.json b/tests/schema/core/issues/issue-506.json
deleted file mode 100644
index 6a3974a2870f34df2446c910d8d6fce02ae7cca4..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-506.json
+++ /dev/null
@@ -1,31 +0,0 @@
-[
-  {
-    "description": "about uniqueItems and enum",
-    "tests": [
-      {
-        "description": "should not take forever",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "test": {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "enum": [
-                  "a",
-                  "b",
-                  "c",
-                  "d",
-                  "e"
-                ]
-              },
-              "maxItems": 10,
-              "uniqueItems": true
-            }
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-508.json b/tests/schema/core/issues/issue-508.json
deleted file mode 100644
index 043028f3a63f0d7f3aaa3120f34a5b1a6b0f6837..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-508.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "description": "null issues",
-    "tests": [
-      {
-        "description": "should not iterate nulls",
-        "schema": {
-          "anyOf": [
-            {
-              "type": "boolean"
-            },
-            {
-              "type": "null"
-            }
-          ],
-          "default": null
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-509.json b/tests/schema/core/issues/issue-509.json
deleted file mode 100644
index 1ac42deb1faee00e4dd445431a207896287f4935..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-509.json
+++ /dev/null
@@ -1,771 +0,0 @@
-[
-  {
-    "description": "Complex schema, with recent formats, draft-07 (not working yet)",
-    "schemas": [
-      {
-        "$schema": "http://json-schema.org/draft-07/schema#",
-        "$id": "http://oasis-open.org/openc2/oc2ls/v1.0/schema.json",
-        "title": "oc2sl version 1.0 json schema",
-        "description": "this schema is intended to validate all posible derived content for the openc2 language specification version 1.0. it is meant to be used as a template that can be more strickly tuned when creating actuator profile specific schema. ",
-        "type": "object",
-        "oneOf": [
-          {
-            "$ref": "#/definitions/openc2_command",
-            "description": "a message defined by an action-target pair that is sent from a producer and received by a consumer."
-          },
-          {
-            "$ref": "#/definitions/openc2_response",
-            "description": "a message from a consumer to a producer acknowledging a command or returning the requested resources or status to a previously received command."
-          }
-        ],
-        "definitions": {
-          "action": {
-            "title": "openc2 action",
-            "type": "string",
-            "oneOf": [
-              {
-                "const": "scan",
-                "description": "systematic examination of some aspect of the entity or its environment."
-              },
-              {
-                "const": "locate",
-                "description": "find an object physically, logically, functionally, or by organization."
-              },
-              {
-                "const": "query",
-                "description": "initiate a request for information."
-              },
-              {
-                "const": "deny",
-                "description": "prevent a certain event or action from completion, such as preventing a flow from reaching a destination or preventing access."
-              },
-              {
-                "const": "contain",
-                "description": "isolate a file, process, or entity so that it cannot modify or access assets or processes."
-              },
-              {
-                "const": "allow",
-                "description": "permit access to or execution of a target."
-              },
-              {
-                "const": "start",
-                "description": "initiate a process, application, system, or activity."
-              },
-              {
-                "const": "stop",
-                "description": "halt a system or end an activity."
-              },
-              {
-                "const": "restart",
-                "description": "stop then start a system or an activity."
-              },
-              {
-                "const": "cancel",
-                "description": "invalidate a previously issued action."
-              },
-              {
-                "const": "set",
-                "description": "change a value, configuration, or state of a managed entity."
-              },
-              {
-                "const": "update",
-                "description": "instruct a component to retrieve, install, process, and operate in accordance with a software update, reconfiguration, or other update."
-              },
-              {
-                "const": "redirect",
-                "description": "change the flow of traffic to a destination other than its original destination."
-              },
-              {
-                "const": "create",
-                "description": "add a new entity of a known type (e.g., data, files, directories)."
-              },
-              {
-                "const": "delete",
-                "description": "remove an entity (e.g., data, files, flows)."
-              },
-              {
-                "const": "detonate",
-                "description": "execute and observe the behavior of a target (e.g., file, hyperlink) in an isolated environment."
-              },
-              {
-                "const": "restore",
-                "description": "return a system to a previously known state."
-              },
-              {
-                "const": "copy",
-                "description": "duplicate an object, file, data flow, or artifact."
-              },
-              {
-                "const": "investigate",
-                "description": "task the recipient to aggregate and report information as it pertains to a security event or incident."
-              },
-              {
-                "const": "remediate",
-                "description": "task the recipient to eliminate a vulnerability or attack point."
-              }
-            ]
-          },
-          "actuator": {
-            "title": "openc2 actuator",
-            "type": "object",
-            "patternProperties": {
-              "^\\w+$|^x-\\w+$": {
-                "type": [
-                  "array",
-                  "boolean",
-                  "integer",
-                  "number",
-                  "object",
-                  "string"
-                ],
-                "description": "langauge specification validator for committee approved and custom actuators. in practice actuators should be a static property and this catch all should be removed."
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "args": {
-            "title": "openc2 args",
-            "type": "object",
-            "properties": {
-              "start_time": {
-                "type": "integer",
-                "minimum": 0,
-                "description": "the specific date/time to initiate the command. if only start_time is specified then end_time is never and duration is infinity."
-              },
-              "stop_time": {
-                "type": "integer",
-                "minimum": 0,
-                "description": "the specific date/time to terminate the command. if only stop_time is specified then start_time is now and duration is derived. "
-              },
-              "duration": {
-                "type": "integer",
-                "minimum": 0,
-                "description": "the length of time for an command to be in effect. if only duration is specified then start_time is now and end-time is derived."
-              },
-              "response_requested": {
-                "description": "the type of response required for the command.",
-                "type": "string",
-                "oneOf": [
-                  {
-                    "const": "none",
-                    "description": "the consumer should not send a response."
-                  },
-                  {
-                    "const": "ack",
-                    "description": "the consumer should send a response acknowledging receipt of the command."
-                  },
-                  {
-                    "const": "status",
-                    "description": "the consumer should send a response containing the current status of command execution."
-                  },
-                  {
-                    "const": "complete",
-                    "description": "the consumer should send a response containing the status or results upon completion of command execution. "
-                  }
-                ]
-              }
-            },
-            "patternProperties": {
-              "^\\w+$|^x-\\w+$": {
-                "type": [
-                  "array",
-                  "boolean",
-                  "integer",
-                  "number",
-                  "object",
-                  "string"
-                ],
-                "description": "langauge specification validator for committee approved and custom args extensions. in practice args extension should be a static property and this catch all should be removed."
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "artifact": {
-            "title": "openc2 artifact",
-            "type": "object",
-            "properties": {
-              "mime_type": {
-                "description": "permitted values specified in the iana media types registry, rfc 6838.",
-                "type": "string",
-                "pattern": "^\\w+\\/[-+.\\w]+$"
-              },
-              "payload": {
-                "description": "choice of literal content or url.",
-                "$ref": "#/definitions/payload"
-              },
-              "hashes": {
-                "description": "hashes of the payload content.",
-                "$ref": "#/definitions/hashes"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "binary": {
-            "title": "openc2 binary",
-            "type": "string",
-            "contentEncoding": "base64"
-          },
-          "command_id": {
-            "title": "openc2 command identifier",
-            "type": "string"
-          },
-          "device": {
-            "title": "openc2 device",
-            "type": "object",
-            "properties": {
-              "hostname": {
-                "description": "a hostname that can be used to connect to this device over a network.",
-                "$ref": "#/definitions/hostname"
-              },
-              "idn_hostname": {
-                "description": "an internationalized hostname that can be used to connect to this device over a network.",
-                "$ref": "#/definitions/idn_hostname"
-              },
-              "device_id": {
-                "description": "an identifier that refers to this device within an inventory or management system",
-                "type": "string"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "domain_name": {
-            "title": "openc2 domain name",
-            "type": "string",
-            "format": "hostname"
-          },
-          "email_addr": {
-            "title": "openc2 email address",
-            "type": "string",
-            "format": "email"
-          },
-          "features": {
-            "title": "openc2 features items",
-            "type": "array",
-            "items": {
-              "description": "an array of zero to ten names used to query an actuator for its supported capabilities.",
-              "type": "string",
-              "oneOf": [
-                {
-                  "const": "versions",
-                  "description": "list of openc2 language versions supported by this actuator."
-                },
-                {
-                  "const": "profiles",
-                  "description": "list of profiles supported by this actuator."
-                },
-                {
-                  "const": "pairs",
-                  "description": "list of supported actions and applicable targets."
-                },
-                {
-                  "const": "rate_limit",
-                  "description": "maximum number of commands per minute supported by design or policy."
-                }
-              ]
-            },
-            "minItems": 1,
-            "uniqueItems": true
-          },
-          "file": {
-            "title": "openc2 file",
-            "type": "object",
-            "properties": {
-              "name": {
-                "description": "the name of the file as defined in the file system.",
-                "type": "string"
-              },
-              "path": {
-                "description": "the absolute path to the location of the file in the file system.",
-                "type": "string"
-              },
-              "hashes": {
-                "description": "one or more cryptographic hash codes of the file contents.",
-                "$ref": "#/definitions/hashes"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "hashes": {
-            "title": "openc2 hashes",
-            "type": "object",
-            "properties": {
-              "md5": {
-                "description": "md5 hash as defined in rfc 1321.",
-                "$ref": "#/definitions/binary"
-              },
-              "sha1": {
-                "description": "sha1 hash as defined in rfc 6234.",
-                "$ref": "#/definitions/binary"
-              },
-              "sha256": {
-                "description": "sha256 hash as defined in rfc 6234.",
-                "$ref": "#/definitions/binary"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "hostname": {
-            "title": "openc2 hostname",
-            "type": "string",
-            "format": "hostname"
-          },
-          "idn_domain_name": {
-            "title": "openc2 internationalized domain name",
-            "type": "string",
-            "format": "idn-hostname"
-          },
-          "idn_email_addr": {
-            "title": "openc2 internationalized email address",
-            "type": "string",
-            "format": "idn-email"
-          },
-          "idn_hostname": {
-            "title": "openc2 internationalized hostname",
-            "type": "string",
-            "format": "idn-hostname"
-          },
-          "ipv4_connection": {
-            "title": "openc2 ipv4 connection",
-            "type": "object",
-            "properties": {
-              "src_addr": {
-                "description": "ipv4 source address range.",
-                "$ref": "#/definitions/ipv4_net"
-              },
-              "src_port": {
-                "description": "source service per rfc 6335.",
-                "$ref": "#/definitions/port"
-              },
-              "dst_addr": {
-                "description": "ipv4 destination address range.",
-                "$ref": "#/definitions/ipv4_net"
-              },
-              "dst_port": {
-                "description": "destination service per rfc 6335.",
-                "$ref": "#/definitions/port"
-              },
-              "protocol": {
-                "description": "layer 4 protocol (e.g., tcp) - see l4_protocol section.",
-                "$ref": "#/definitions/l4_protocol"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "ipv6_connection": {
-            "title": "openc2 ipv6 connection",
-            "type": "object",
-            "properties": {
-              "src_addr": {
-                "description": "ipv6 source address range.",
-                "$ref": "#/definitions/ipv6_net"
-              },
-              "src_port": {
-                "description": "source service per rfc 6335.",
-                "$ref": "#/definitions/port"
-              },
-              "dst_addr": {
-                "description": "ipv6 destination address range.",
-                "$ref": "#/definitions/ipv6_net"
-              },
-              "dst_port": {
-                "description": "destination service per rfc 6335.",
-                "$ref": "#/definitions/port"
-              },
-              "protocol": {
-                "description": "layer 4 protocol (e.g., tcp) - see l4_protocol section.",
-                "$ref": "#/definitions/l4_protocol"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "ipv4_net": {
-            "title": "openc2 ipv4 net",
-            "type": "string",
-            "pattern": "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\\/(\\d|[12]\\d|3[01]))?$"
-          },
-          "ipv6_net": {
-            "title": "openc2 ipv6 net",
-            "type": "string",
-            "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(%.+)?s*(\\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$"
-          },
-          "iri": {
-            "title": "openc2 iri",
-            "type": "string",
-            "format": "iri"
-          },
-          "l4_protocol": {
-            "title": "openc2 layer four protocol",
-            "type": "string",
-            "oneOf": [
-              {
-                "const": "icmp",
-                "description": "internet control message protocol."
-              },
-              {
-                "const": "tcp",
-                "description": "transmission control protocol."
-              },
-              {
-                "const": "udp",
-                "description": "user datagram protocol."
-              },
-              {
-                "const": "sctp",
-                "description": "stream control transmission protocol."
-              }
-            ]
-          },
-          "mac_addr": {
-            "title": "openc2 mac address",
-            "type": "string",
-            "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$"
-          },
-          "openc2_command": {
-            "title": "openc2 command",
-            "type": "object",
-            "properties": {
-              "action": {
-                "$ref": "#/definitions/action",
-                "description": "the task or activity to be performed (i.e., the 'verb')."
-              },
-              "target": {
-                "$ref": "#/definitions/target",
-                "description": "the object of the action. the action is performed on the target."
-              },
-              "args": {
-                "$ref": "#/definitions/args",
-                "description": "additional information that applies to the command."
-              },
-              "actuator": {
-                "$ref": "#/definitions/actuator",
-                "description": "the subject of the action. the actuator executes the action on the target."
-              },
-              "command_id": {
-                "$ref": "#/definitions/command_id",
-                "description": "an identifier of this command."
-              }
-            },
-            "required": [
-              "action",
-              "target"
-            ],
-            "additionalProperties": false
-          },
-          "openc2_response": {
-            "title": "openc2 response",
-            "type": "object",
-            "properties": {
-              "status": {
-                "$ref": "#/definitions/status",
-                "description": "an integer status code."
-              },
-              "status_text": {
-                "type": "string",
-                "description": "a free-form human-readable description of the response status."
-              },
-              "results": {
-                "$ref": "#/definitions/results",
-                "description": "map of key:value pairs that contain additional results based on the invoking command."
-              }
-            },
-            "required": [
-              "status"
-            ],
-            "additionalProperties": false
-          },
-          "pairs": {
-            "title": "openc2 pairs",
-            "type": "object",
-            "patternProperties": {
-              "^scan$|^locate$|^query$|^deny$|^contain$|^allow$|^start$|^stop$|^restart$|^cancel$|^set$|^update$|^redirect$|^create$|^delete$|^detonate$|^restore$|^copy$|^investigate$|^remediate$": {
-                "description": "map of each action supported by this actuator to the list of targets applicable to that action. in practice both action properties and target items should be narrowed to fit the scope of actuator profile schema. It would be best to do this with static action properties each of which have static target items.",
-                "type": "array",
-                "minItems": 1,
-                "uniqueItems": true,
-                "items": {
-                  "description": "openc2 pairs target items.",
-                  "type": "string",
-                  "pattern": "^artifact$|^command$|^device$|^domain_name$|^email_addr$|^features$|^file$|^idn_domain_name$|^idn_email_addr$|^ipv4_net$|^ipv6_net$|^ipv4_connection$|^ipv6_connection$|^iri$|^mac_addr$|^process$|^properties$|^uri$|^\\w+:\\w+$|^x-\\w+:\\w+$"
-                }
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "payload": {
-            "title": "openc2 payload",
-            "type": "object",
-            "properties": {
-              "bin": {
-                "description": "specifies the data contained in the artifact.",
-                "$ref": "#/definitions/binary"
-              },
-              "url": {
-                "description": "must be a valid url that resolves to the un-encoded content.",
-                "$ref": "#/definitions/uri"
-              }
-            },
-            "minProperties": 1,
-            "maxProperties": 1,
-            "additionalProperties": false
-          },
-          "port": {
-            "title": "openc2 port",
-            "type": "integer",
-            "minimum": 0,
-            "maximum": 65535
-          },
-          "process": {
-            "title": "openc2 process",
-            "type": "object",
-            "properties": {
-              "pid": {
-                "description": "process id of the process.",
-                "type": "integer",
-                "minimum": 0
-              },
-              "name": {
-                "description": "name of the process.",
-                "type": "string"
-              },
-              "cwd": {
-                "description": "current working directory of the process.",
-                "type": "string"
-              },
-              "executable": {
-                "description": "executable that was executed to start the process.",
-                "$ref": "#/definitions/file"
-              },
-              "parent": {
-                "description": "process that spawned this one.",
-                "$ref": "#/definitions/process"
-              },
-              "command_line": {
-                "description": "the full command line invocation used to start this process, including all arguments.",
-                "type": "string"
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "properties": {
-            "title": "openc2 properties",
-            "type": "array",
-            "items": {
-              "description": "a list of names that uniquely identify properties of an actuator. in practice this should be a \"oneOf\" list of \"const\" that contains static values for that specific actuator profile.",
-              "type": "string"
-            },
-            "minItems": 1,
-            "uniqueItems": true
-          },
-          "results": {
-            "title": "openc2 response results",
-            "type": "object",
-            "properties": {
-              "versions": {
-                "description": "list of openc2 language versions supported by this actuator.",
-                "type": "array",
-                "items": {
-                  "description": "openc2 version items.",
-                  "type": "string"
-                },
-                "uniqueItems": true,
-                "minItems": 1
-              },
-              "profiles": {
-                "description": "list of profiles supported by this actuator.",
-                "type": "array",
-                "items": {
-                  "description": "openc2 profile items.",
-                  "type": "string",
-                  "pattern": "^\\w+$|^x-\\w+$"
-                },
-                "uniqueItems": true,
-                "minItems": 1
-              },
-              "pairs": {
-                "$ref": "#/definitions/pairs",
-                "description": "list of targets applicable to each supported action."
-              },
-              "rate_limit": {
-                "description": "maximum number of requests per minute supported by design or policy",
-                "type": "number",
-                "minimum": 0
-              }
-            },
-            "patternProperties": {
-              "^\\w+$|^x-\\w+$": {
-                "type": [
-                  "array",
-                  "boolean",
-                  "integer",
-                  "number",
-                  "object",
-                  "string"
-                ],
-                "description": "langauge specification validator for committee approved and custom results extensions. in practice results extension should be a static property and this catch all should be removed."
-              }
-            },
-            "minProperties": 1,
-            "additionalProperties": false
-          },
-          "status": {
-            "title": "openc2 status code",
-            "type": "integer",
-            "oneOf": [
-              {
-                "const": 102,
-                "description": "processing - an interim response used to inform the producer that the consumer has accepted the command but has not yet completed it."
-              },
-              {
-                "const": 200,
-                "description": "ok - the command has succeeded."
-              },
-              {
-                "const": 400,
-                "description": "bad request - the consumer cannot process the command due to something that is perceived to be a producer error (e.g., malformed command syntax)."
-              },
-              {
-                "const": 401,
-                "description": "unauthorized - the command message lacks valid authentication credentials for the target resource or authorization has been refused for the submitted credentials."
-              },
-              {
-                "const": 403,
-                "description": "forbidden - the consumer understood the command but refuses to authorize it."
-              },
-              {
-                "const": 404,
-                "description": "not found - the consumer has not found anything matching the command."
-              },
-              {
-                "const": 500,
-                "description": "internal error - the consumer encountered an unexpected condition that prevented it from performing the command."
-              },
-              {
-                "const": 501,
-                "description": "not implemented - the consumer does not support the functionality required to perform the command."
-              },
-              {
-                "const": 503,
-                "description": "service unavailable - the consumer is currently unable to perform the command due to a temporary overloading or maintenance of the consumer."
-              }
-            ]
-          },
-          "target": {
-            "title": "openc2 target",
-            "type": "object",
-            "properties": {
-              "artifact": {
-                "$ref": "#/definitions/artifact",
-                "description": "an array of bytes representing a file-like object or a link to that object."
-              },
-              "command": {
-                "$ref": "#/definitions/command_id",
-                "description": "a reference to a previously issued command."
-              },
-              "device": {
-                "$ref": "#/definitions/device",
-                "description": "the properties of a hardware device."
-              },
-              "domain_name": {
-                "$ref": "#/definitions/domain_name",
-                "description": "a network domain name."
-              },
-              "email_addr": {
-                "$ref": "#/definitions/email_addr",
-                "description": "a single email address."
-              },
-              "features": {
-                "$ref": "#/definitions/features",
-                "description": "a set of items used with the query action to determine an actuator's capabilities."
-              },
-              "file": {
-                "$ref": "#/definitions/file",
-                "description": "properties of a file."
-              },
-              "idn_domain_name": {
-                "$ref": "#/definitions/idn_domain_name",
-                "description": "an internationalized domain name."
-              },
-              "idn_email_addr": {
-                "$ref": "#/definitions/idn_email_addr",
-                "description": "a single internationalized email address."
-              },
-              "ipv4_net": {
-                "$ref": "#/definitions/ipv4_net",
-                "description": "an ipv4 address range including cidr prefix length."
-              },
-              "ipv6_net": {
-                "$ref": "#/definitions/ipv6_net",
-                "description": "an ipv6 address range including prefix length."
-              },
-              "ipv4_connection": {
-                "$ref": "#/definitions/ipv4_connection",
-                "description": "a 5-tuple of source and destination ipv4 address ranges, source and destination ports, and protocol."
-              },
-              "ipv6_connection": {
-                "$ref": "#/definitions/ipv6_connection",
-                "description": "a 5-tuple of source and destination ipv6 address ranges, source and destination ports, and protocol."
-              },
-              "iri": {
-                "$ref": "#/definitions/uri",
-                "description": "an internationalized resource identifier (iri)."
-              },
-              "mac_addr": {
-                "$ref": "#/definitions/mac_addr",
-                "description": "a media access control (mac) address - eui-48 or eui-64."
-              },
-              "process": {
-                "$ref": "#/definitions/process",
-                "description": "common properties of an instance of a computer program as executed on an operating system."
-              },
-              "properties": {
-                "$ref": "#/definitions/properties",
-                "description": "data attribute associated with an actuator."
-              },
-              "uri": {
-                "$ref": "#/definitions/uri",
-                "description": "a uniform resource identifier(uri)."
-              }
-            },
-            "patternProperties": {
-              "^\\w+:\\w+$|^x-\\w+:\\w+$": {
-                "type": [
-                  "array",
-                  "boolean",
-                  "integer",
-                  "number",
-                  "object",
-                  "string"
-                ],
-                "description": "langauge specification validator for committee approved and custom target extensions. in practice target extension should be a static property and this catch all should be removed."
-              }
-            },
-            "minProperties": 1,
-            "maxProperties": 1,
-            "additionalProperties": false
-          },
-          "uri": {
-            "title": "openc2 uri",
-            "type": "string",
-            "format": "uri"
-          }
-        }
-      }
-    ],
-    "tests": [
-      {
-        "description": "should generate values, but not enough valid",
-        "schema": "schemas.0"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-510.json b/tests/schema/core/issues/issue-510.json
deleted file mode 100644
index 3f887ea9ea7e9898348a90e2a0bcc8fc29ed92b1..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-510.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "description": "AlwaysFakeOptionals doesn't work anymore",
-    "schemas": [
-      {
-        "type": "object",
-        "properties": {
-          "foo": {
-            "type": "string"
-          },
-          "bar": {
-            "type": "string"
-          }
-        },
-        "additionalProperties": false
-      }
-    ],
-    "tests": [
-      {
-        "description": "make sure foo or bar are generated, optionally",
-        "schema": "schemas.0",
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/issue-529.json b/tests/schema/core/issues/issue-529.json
deleted file mode 100644
index 53fdff197dbcb2f6d59e90901d81fae4e8afcd3a..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-529.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-  "description": "repeated properties between oneOf sub schemas",
-  "tests": [
-    {
-      "description": "should not skip required properties",
-      "schema": {
-        "$schema": "http://json-schema.org/draft-06/schema#",
-        "type": "object",
-        "required": [
-          "filters"
-        ],
-        "properties": {
-          "filters": {
-            "type": "array",
-            "items": {
-              "oneOf": [
-                {
-                  "$ref": "#/definitions/FilterAgc"
-                },
-                {
-                  "$ref": "#/definitions/FilterSubspace"
-                }
-              ]
-            }
-          }
-        },
-        "definitions": {
-          "FilterAgc": {
-            "type": "object",
-            "required": [
-              "params"
-            ],
-            "properties": {
-              "params": {
-                "$ref": "#/definitions/FilterAgcParams"
-              },
-              "enabled": {
-                "type": "boolean"
-              }
-            }
-          },
-          "FilterAgcParams": {
-            "type": "object",
-            "required": [
-              "window_length_seconds"
-            ],
-            "properties": {
-              "window_length_seconds": {
-                "type": "number"
-              }
-            }
-          },
-          "FilterSubspace": {
-            "type": "object",
-            "required": [
-              "params"
-            ],
-            "properties": {
-              "params": {
-                "$ref": "#/definitions/FilterSubspaceParams"
-              },
-              "enabled": {
-                "type": "boolean"
-              }
-            }
-          },
-          "FilterSubspaceParams": {
-            "type": "object",
-            "required": [
-              "iterations"
-            ],
-            "properties": {
-              "iterations": {
-                "type": "integer"
-              }
-            }
-          }
-        }
-      },
-      "valid": true
-    }
-  ]
-}
diff --git a/tests/schema/core/issues/issue-57.json b/tests/schema/core/issues/issue-57.json
deleted file mode 100644
index 568b4a68d2e114f828ffc96a1f398647cf36c270..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/issue-57.json
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-  {
-    "description": "mixin issues with allOf",
-    "tests": [
-      {
-        "description": "should get combined as expected",
-        "schema": {
-          "definitions": {
-            "address": {
-              "type": "object",
-              "properties": {
-                "street_address": { "type": "string" },
-                "city":           { "type": "string" },
-                "state":          { "type": "string" }
-              },
-              "required": ["street_address", "city", "state"]
-            }
-          },
-          "type": "object",
-          "properties": {
-            "billing_address": { "$ref": "#/definitions/address" },
-            "shipping_address": {
-              "allOf": [
-                { "$ref": "#/definitions/address" },
-                { "properties":
-                  { "type": { "enum": [ "residential", "business" ] } },
-                  "required": ["type"]
-                }
-              ]
-            }
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/number-min-greater-than-max.json b/tests/schema/core/issues/number-min-greater-than-max.json
deleted file mode 100644
index be2d898541db268e65804c3e6d7328a0d19a3495..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/number-min-greater-than-max.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "description": "number from an invalid range (min > max)",
-    "tests": [
-      {
-        "description": "should return NaN",
-        "schema": {
-          "type": "integer",
-          "minimum": 600,
-          "maximum": 500
-        },
-        "valid": false
-      },
-      {
-        "description": "should return NaN",
-        "schema": {
-          "type": "integer",
-          "minimum": 600,
-          "maximum": 500,
-          "multipleOf": 7
-        },
-        "valid": false
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/number-min-max.json b/tests/schema/core/issues/number-min-max.json
deleted file mode 100644
index 2d91789f2e8a2832a5f635296ab7292362daf711..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/number-min-max.json
+++ /dev/null
@@ -1,73 +0,0 @@
-[
-  {
-    "description": "generated number obeying min/max, 6 times to account for random test pass",
-    "tests": [
-      {
-        "description": "should handle one possible value min/max number",
-        "schema": {
-          "type": "number",
-          "minimum": 1,
-          "maximum": 1
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle one possible value min/max number",
-        "schema": {
-          "type": "number",
-          "minimum": 1,
-          "maximum": 1
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle one possible value min/max number",
-        "schema": {
-          "type": "number",
-          "minimum": 1,
-          "maximum": 1
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle one possible value min/max number",
-        "schema": {
-          "type": "number",
-          "minimum": 1,
-          "maximum": 1
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle one possible value min/max number",
-        "schema": {
-          "type": "number",
-          "minimum": 1,
-          "maximum": 1
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle one possible value min/max number",
-        "schema": {
-          "type": "number",
-          "minimum": 1,
-          "maximum": 1
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/issues/reserved.json b/tests/schema/core/issues/reserved.json
deleted file mode 100644
index fd0ed7adbf6036e1cbe8fc4c1e7fab550ce43923..0000000000000000000000000000000000000000
--- a/tests/schema/core/issues/reserved.json
+++ /dev/null
@@ -1,33 +0,0 @@
-[
-  {
-    "description": "reserved words",
-    "tests": [
-      {
-        "description": "should allow type-keyword",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "type": {
-              "type": "string"
-            }
-          },
-          "required": ["type"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should allow enum-keyword",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "enum": {
-              "type": "boolean"
-            }
-          },
-          "required": ["enum"]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/jsonpath.json b/tests/schema/core/jsonpath.json
deleted file mode 100644
index 26f17f39dadc7e4d3fd30442b0995c8ac215c7d9..0000000000000000000000000000000000000000
--- a/tests/schema/core/jsonpath.json
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-  {
-    "description": "jsonpath support",
-    "tests": [
-      {
-        "description": "should enable jsonPath queries",
-        "schema": {
-          "test": {
-            "type": "object",
-            "properties": {
-              "value": {
-                "jsonPath": "$.foo.bar.baz"
-              }
-            },
-            "required": ["value"]
-          },
-          "foo": {
-            "bar": {
-              "baz": "buzz"
-            }
-          }
-        },
-        "equal": {
-          "test": {
-            "value": "buzz"
-          },
-          "foo": {
-            "bar": {
-              "baz": "buzz"
-            }
-          }
-        },
-        "require": "core/option/enable-jsonpath"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/keywords.json b/tests/schema/core/keywords.json
deleted file mode 100644
index 971c2050e201a9a614b7d7990a8e56b90dd02d3b..0000000000000000000000000000000000000000
--- a/tests/schema/core/keywords.json
+++ /dev/null
@@ -1,63 +0,0 @@
-[
-  {
-    "description": "instance keywords",
-    "tests": [
-      {
-        "description": "should handle array of types",
-        "schema": {
-          "type": ["string", "integer"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle enum values",
-        "schema": {
-          "enum": ["", [], {}, false, null, -1]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle allOf values",
-        "schema": {
-          "allOf": [
-            {
-              "type": "string"
-            },
-            {
-              "enum": ["a", "value"]
-            }
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle anyof values",
-        "schema": {
-          "anyOf": [
-            {
-              "type": "integer"
-            },
-            {
-              "type": "array"
-            }
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle oneOf values",
-        "schema": {
-          "oneOf": [
-            {
-              "type": "boolean"
-            },
-            {
-              "type": "null"
-            }
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/alwaysFakeOptionals.js b/tests/schema/core/option/alwaysFakeOptionals.js
deleted file mode 100644
index 258db1219526b5a72807079cde76c3d40501978f..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/alwaysFakeOptionals.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      useDefaultValue: true,
-      fixedProbabilities: true,
-      alwaysFakeOptionals: true,
-    });
-  },
-};
diff --git a/tests/schema/core/option/alwaysFakeOptionals.json b/tests/schema/core/option/alwaysFakeOptionals.json
deleted file mode 100644
index 609d6e3a1220bed337c5b32d5da648d7a898c208..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/alwaysFakeOptionals.json
+++ /dev/null
@@ -1,44 +0,0 @@
-[
-  {
-    "description": "alwaysFakeOptionals option",
-    "tests": [
-      {
-        "description": "should handle alwaysFakeOptionals option (= true) for objects",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "optionalProperty1": { "type": "number", "default": 1 },
-            "optionalProperty2": { "type": "number", "default": 1 },
-            "optionalProperty3": { "type": "number", "default": 1 },
-            "optionalProperty4": { "type": "number", "default": 1 },
-            "optionalProperty5": { "type": "number", "default": 1 }
-          }
-        },
-        "valid": true,
-        "equal": {
-          "optionalProperty1": 1,
-          "optionalProperty2": 1,
-          "optionalProperty3": 1,
-          "optionalProperty4": 1,
-          "optionalProperty5": 1
-        },
-        "require": "core/option/alwaysFakeOptionals"
-      },
-      {
-        "description": "should handle alwaysFakeOptionals option (= true) for arrays",
-        "schema": {
-          "type": "array",
-          "items": {
-            "type": "string",
-            "enum": ["a"]
-          },
-          "maxItems": 5,
-          "minItems": 0
-        },
-        "valid": true,
-        "equal": ["a", "a", "a", "a", "a"],
-        "require": "core/option/alwaysFakeOptionals"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/alwaysFakeOptionalsNoAdditional.json b/tests/schema/core/option/alwaysFakeOptionalsNoAdditional.json
deleted file mode 100644
index cac7b1689bcf30a8b0995fd55e98083126520ed3..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/alwaysFakeOptionalsNoAdditional.json
+++ /dev/null
@@ -1,33 +0,0 @@
-[
-  {
-    "description": "alwaysFakeOptionals option with additionalProperties: false",
-    "tests": [
-      {
-        "description": "should handle alwaysFakeOptionals option (= true) for objects",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "optionalProperty1": { "type": "number", "default": 1 },
-            "optionalProperty2": { "type": "number", "default": 1 },
-            "optionalProperty3": { "type": "number", "default": 1 },
-            "optionalProperty4": { "type": "number", "default": 1 },
-            "optionalProperty5": { "type": "number", "default": 1 }
-          },
-          "additionalProperties": false
-        },
-        "valid": true,
-        "equal": {
-          "optionalProperty1": 1,
-          "optionalProperty2": 1,
-          "optionalProperty3": 1,
-          "optionalProperty4": 1,
-          "optionalProperty5": 1
-        },
-        "set": {
-          "alwaysFakeOptionals": true,
-          "useDefaultValue": true
-        }
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/enable-jsonpath.js b/tests/schema/core/option/enable-jsonpath.js
deleted file mode 100644
index 228dcfdb5163b44db8a163427e80ad5e521257e0..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/enable-jsonpath.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      resolveJsonPath: true,
-    });
-  },
-};
diff --git a/tests/schema/core/option/failOnInvalidType.js b/tests/schema/core/option/failOnInvalidType.js
deleted file mode 100644
index 5470f91ff5e1b0fdf4822ed6b0a4414a26552774..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/failOnInvalidType.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      failOnInvalidTypes: false,
-    });
-  },
-};
diff --git a/tests/schema/core/option/failOnInvalidType.json b/tests/schema/core/option/failOnInvalidType.json
deleted file mode 100644
index 13f6d17a94339904312d00eaa34a72ddb553603c..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/failOnInvalidType.json
+++ /dev/null
@@ -1,15 +0,0 @@
-[
-  {
-    "description": "failOnInvalidType option",
-    "tests": [
-      {
-        "description": "should handle failOnInvalidType option",
-        "schema": {
-          "type": "nonExistentType"
-        },
-        "valid": false,
-        "require": "core/option/failOnInvalidType"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/falsy-defaults.json b/tests/schema/core/option/falsy-defaults.json
deleted file mode 100644
index 9c1f57c2bf94f81a8985ee26e658de47b5262a09..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/falsy-defaults.json
+++ /dev/null
@@ -1,66 +0,0 @@
-[
-  {
-    "description": "falsy defaults",
-    "tests": [
-      {
-        "description": "boolean can be false",
-        "schema": {
-          "type": "boolean",
-          "default": false
-        },
-        "equal": false,
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "number can be 0",
-        "schema": {
-          "type": "number",
-          "default": 0
-        },
-        "equal": 0,
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "integer can be 0",
-        "schema": {
-          "type": "integer",
-          "default": 0
-        },
-        "equal": 0,
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "string can be empty",
-        "schema": {
-          "type": "string",
-          "default": ""
-        },
-        "equal": "",
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "objects can be null",
-        "schema": {
-          "type": "object",
-          "default": null
-        },
-        "equal": null,
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "array of booleans all being false",
-        "schema": {
-          "type": "array",
-          "minItems": 5,
-          "maxItems": 5,
-          "items": {
-            "type": "boolean",
-            "default": false
-          }
-        },
-        "equal": [ false, false, false, false, false ],
-        "require": "core/option/useDefaultValue"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/ignoreProperties.js b/tests/schema/core/option/ignoreProperties.js
deleted file mode 100644
index 86c38d561a2636a5169adea1b703243bab804140..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/ignoreProperties.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      fillProperties: false,
-      ignoreProperties: ['foo', /^b/, x => x.default === 42],
-    });
-  },
-};
diff --git a/tests/schema/core/option/ignoreProperties.json b/tests/schema/core/option/ignoreProperties.json
deleted file mode 100644
index bee14ebbfc29f8dd66b36347ec0f173603b1e6ca..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/ignoreProperties.json
+++ /dev/null
@@ -1,42 +0,0 @@
-[
-  {
-    "description": "ignoreProperties option",
-    "tests": [
-      {
-        "description": "should skip generating from ignoreProperties",
-        "schema": {
-          "properties": {
-            "id": {
-              "type": "integer"
-            },
-            "key": {
-              "type": "string"
-            },
-            "foo": {
-              "enum": ["bar", "baz"]
-            },
-            "bar": {
-              "type": "boolean"
-            },
-            "buzz": {
-              "type": "array"
-            },
-            "truth": {
-              "default": 42
-            }
-          },
-          "required": [
-            "id",
-            "key",
-            "foo",
-            "bar",
-            "buzz",
-            "truth"
-          ]
-        },
-        "onlyProps": ["id", "key"],
-        "require": "core/option/ignoreProperties"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/optionalsProbability.json b/tests/schema/core/option/optionalsProbability.json
deleted file mode 100644
index a1aed836c98504c86df62b9f0be2d7924b2c07d5..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/optionalsProbability.json
+++ /dev/null
@@ -1,153 +0,0 @@
-[
-  {
-    "description": "optionalsProbability option",
-    "schemas": [
-      {
-        "type": "object",
-        "properties": {
-          "optionalProperty1": { "type": "number", "default": 1 },
-          "optionalProperty2": { "type": "number", "default": 1 },
-          "optionalProperty3": { "type": "number", "default": 1 },
-          "optionalProperty4": { "type": "number", "default": 1 },
-          "optionalProperty5": { "type": "number", "default": 1 }
-        }
-      }
-    ],
-    "tests": [
-      {
-        "description": "should handle optionalsProbability option (default = false) for objects",
-        "schema": "schemas.0",
-        "valid": true
-      },
-      {
-        "description": "should handle optionalsProbability option (= 0) for objects",
-        "schema": "schemas.0",
-        "valid": true,
-        "equal": {},
-        "require": "core/option/optionalsProbabilityEquals0"
-      },
-      {
-        "description": "should handle optionalsProbability option (= 1) for objects",
-        "schema": "schemas.0",
-        "valid": true,
-        "equal": {
-          "optionalProperty1": 1,
-          "optionalProperty2": 1,
-          "optionalProperty3": 1,
-          "optionalProperty4": 1,
-          "optionalProperty5": 1
-        },
-        "require": "core/option/optionalsProbabilityEquals1"
-      },
-      {
-        "description": "should handle optionalsProbability option (= 1) for arrays",
-        "schema": {
-          "type": "array",
-          "items": {
-            "type": "string",
-            "enum": ["a"]
-          },
-          "maxItems": 5,
-          "minItems": 0
-        },
-        "valid": true,
-        "equal": ["a", "a", "a", "a", "a"],
-        "require": "core/option/optionalsProbabilityEquals1"
-      },
-      {
-        "description": "should handle optionalsProbability option (= 0) overwritten by alwaysFakeOptionals for objects",
-        "schema": "schemas.0",
-        "valid": true,
-        "equal": {
-          "optionalProperty1": 1,
-          "optionalProperty2": 1,
-          "optionalProperty3": 1,
-          "optionalProperty4": 1,
-          "optionalProperty5": 1
-        },
-        "require": "core/option/optionalsProbabilityOverwritten"
-      },
-      {
-        "description": "should handle optionalsProbability option (= 0) overwritten by alwaysFakeOptionals for objects",
-        "schema": {
-          "type": "array",
-          "items": {
-            "type": "string",
-            "enum": ["a"]
-          },
-          "maxItems": 5,
-          "minItems": 0
-        },
-        "valid": true,
-        "equal": ["a", "a", "a", "a", "a"],
-        "require": "core/option/optionalsProbabilityOverwritten"
-      },
-      {
-        "description": "should generate just zero properties if optionalsProbability is 0%",
-        "schema": "schemas.0",
-        "valid": true,
-        "count": 0,
-        "set": {
-          "useDefaultValue": true,
-          "fixedProbabilities": true,
-          "optionalsProbability": 0.0
-        }
-      },
-      {
-        "description": "should generate just one property if optionalsProbability is 20%",
-        "schema": "schemas.0",
-        "valid": true,
-        "count": 1,
-        "set": {
-          "useDefaultValue": true,
-          "fixedProbabilities": true,
-          "optionalsProbability": 0.2
-        }
-      },
-      {
-        "description": "should generate just two properties if optionalsProbability is 40%",
-        "schema": "schemas.0",
-        "valid": true,
-        "count": 2,
-        "set": {
-          "useDefaultValue": true,
-          "fixedProbabilities": true,
-          "optionalsProbability": 0.4
-        }
-      },
-      {
-        "description": "should generate just three properties if optionalsProbability is 60%",
-        "schema": "schemas.0",
-        "valid": true,
-        "count": 3,
-        "set": {
-          "useDefaultValue": true,
-          "fixedProbabilities": true,
-          "optionalsProbability": 0.6
-        }
-      },
-      {
-        "description": "should generate just four properties if optionalsProbability is 80%",
-        "schema": "schemas.0",
-        "valid": true,
-        "count": 4,
-        "set": {
-          "useDefaultValue": true,
-          "fixedProbabilities": true,
-          "optionalsProbability": 0.8
-        }
-      },
-      {
-        "description": "should generate all properties if optionalsProbability is 100%",
-        "schema": "schemas.0",
-        "valid": true,
-        "count": 5,
-        "set": {
-          "useDefaultValue": true,
-          "fixedProbabilities": true,
-          "optionalsProbability": 1.0
-        }
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/optionalsProbabilityEquals0.js b/tests/schema/core/option/optionalsProbabilityEquals0.js
deleted file mode 100644
index 96dfa9a4bc63a521a345ac3c503a9e7266aee672..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/optionalsProbabilityEquals0.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      useDefaultValue: true,
-      optionalsProbability: 0.0,
-    });
-  },
-};
diff --git a/tests/schema/core/option/optionalsProbabilityEquals1.js b/tests/schema/core/option/optionalsProbabilityEquals1.js
deleted file mode 100644
index 81fc7484da7931fd50c05544636ca8716903610e..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/optionalsProbabilityEquals1.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      useDefaultValue: true,
-      fixedProbabilities: true,
-      optionalsProbability: 1.0,
-    });
-  },
-};
diff --git a/tests/schema/core/option/optionalsProbabilityOverwritten.js b/tests/schema/core/option/optionalsProbabilityOverwritten.js
deleted file mode 100644
index e7d1f3ffa21e785df8606a3f970aef23432f51f6..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/optionalsProbabilityOverwritten.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      useDefaultValue: true,
-      fixedProbabilities: true,
-      alwaysFakeOptionals: true,
-      optionalsProbability: 0.0,
-    });
-  },
-};
diff --git a/tests/schema/core/option/random.js b/tests/schema/core/option/random.js
deleted file mode 100644
index 6fba248d60247e41cbfca1e4824687ce7fd8cdfc..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/random.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const seedrandom = require('seedrandom');
-
-module.exports = {
-  register(jsf) {
-    return jsf.option('random', seedrandom('some seed'));
-  },
-};
diff --git a/tests/schema/core/option/random.json b/tests/schema/core/option/random.json
deleted file mode 100644
index 6ee53c6ed8b189ad7d5d64780835b3d6dffe1356..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/random.json
+++ /dev/null
@@ -1,35 +0,0 @@
-[
-  {
-    "description": "random option",
-    "tests": [
-      {
-        "description": "should allow pseudorandom value generation",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "a": {
-              "type": "integer",
-              "minimum": 0,
-              "maximum": 100
-            },
-            "b": {
-              "type": "string"
-            },
-            "c": {
-              "pattern": "^[a-z]{2}[0-9]{3}$"
-            }
-          },
-          "required": ["a", "b", "c"]
-        },
-        "valid": true,
-        "equal": {
-          "a": 54,
-          "b": "minim amet in dolor laborum",
-          "c": "pf922"
-        },
-        "repeat": 1,
-        "require": "core/option/random"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/replaceEmptyByRandomValue.js b/tests/schema/core/option/replaceEmptyByRandomValue.js
deleted file mode 100644
index 753d7db988e211ca3c63d06ae575d0f117c29849..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/replaceEmptyByRandomValue.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      replaceEmptyByRandomValue: true,
-    });
-  },
-};
diff --git a/tests/schema/core/option/useDefaultValue.js b/tests/schema/core/option/useDefaultValue.js
deleted file mode 100644
index fe027ba0ec3f022f46ac41d7233b99c878c892fe..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/useDefaultValue.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      useDefaultValue: true,
-    });
-  },
-};
diff --git a/tests/schema/core/option/useDefaultValue.json b/tests/schema/core/option/useDefaultValue.json
deleted file mode 100644
index 6f6d5895f4b02bd39fc72ac683d5f8c957a5d64c..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/useDefaultValue.json
+++ /dev/null
@@ -1,40 +0,0 @@
-[
-  {
-    "description": "useDefaultValue option",
-    "tests": [
-      {
-        "description": "should handle useDefaultValue option",
-        "schema": {
-          "type": "string",
-          "default": "Hello"
-        },
-        "equal": "Hello",
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "should handle useDefaultValue option with an empty default value",
-        "schema": {
-          "type": "string",
-          "default": ""
-        },
-        "equal": "",
-        "require": "core/option/useDefaultValue"
-      },
-      {
-        "description": "should handle useDefaultValue & replaceEmptyByRandomValue option",
-        "schema": {
-          "test-response": {
-            "type": "string",
-            "default": ""
-          }
-        },
-        "valid": true,
-        "notEmpty": ["test-response"],
-        "require": [
-          "core/option/useDefaultValue",
-          "core/option/replaceEmptyByRandomValue"
-        ]
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/option/useExamplesValue.js b/tests/schema/core/option/useExamplesValue.js
deleted file mode 100644
index 4ad2e79cdfbe839655529e1a6f0c972ded5d34ef..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/useExamplesValue.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
-  register(jsf) {
-    return jsf.option({
-      useExamplesValue: true,
-    });
-  },
-};
diff --git a/tests/schema/core/option/useExamplesValue.json b/tests/schema/core/option/useExamplesValue.json
deleted file mode 100644
index 24debe563e2d28be1d1a3ae998b8b3c9e227cee8..0000000000000000000000000000000000000000
--- a/tests/schema/core/option/useExamplesValue.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "description": "useExamplesValue option",
-    "tests": [
-      {
-        "description": "should handle useExamplesValue option",
-        "schema": {
-          "type": "string",
-          "examples": [
-            "World"
-          ]
-        },
-        "equal": "World",
-        "require": "core/option/useExamplesValue"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/primitives.json b/tests/schema/core/primitives.json
deleted file mode 100644
index 2001b8bd76054222dfc48c7847b2e2ad1484b5c0..0000000000000000000000000000000000000000
--- a/tests/schema/core/primitives.json
+++ /dev/null
@@ -1,63 +0,0 @@
-[
-  {
-    "description": "primitive values",
-    "tests": [
-      {
-        "description": "should generate arrays",
-        "schema": {
-          "type": "array"
-        },
-        "type": "array",
-        "valid": true
-      },
-      {
-        "description": "should generate booleans",
-        "schema": {
-          "type": "boolean"
-        },
-        "type": "boolean",
-        "valid": true
-      },
-      {
-        "description": "should generate integers",
-        "schema": {
-          "type": "integer"
-        },
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should generate numbers",
-        "schema": {
-          "type": "number"
-        },
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should generate nulls",
-        "schema": {
-          "type": "null"
-        },
-        "type": "null",
-        "valid": true
-      },
-      {
-        "description": "should generate objects",
-        "schema": {
-          "type": "object"
-        },
-        "type": "object",
-        "valid": true
-      },
-      {
-        "description": "should generate strings",
-        "schema": {
-          "type": "string"
-        },
-        "type": "string",
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/references.json b/tests/schema/core/references.json
deleted file mode 100644
index f9f9879108fcd2b0de96ae9b53af7af10c966e5e..0000000000000000000000000000000000000000
--- a/tests/schema/core/references.json
+++ /dev/null
@@ -1,64 +0,0 @@
-[
-  {
-    "description": "schema references",
-    "tests": [
-      {
-        "description": "should handle internal $refs",
-        "schema": {
-          "definitions": {
-            "integer": {
-              "type": "integer"
-            },
-            "positive": {
-              "minimum": 0,
-              "maximum": 100
-            }
-          },
-          "type": "object",
-          "properties": {
-            "weakNumber": {
-              "$ref": "#/definitions/integer"
-            },
-            "multipleOf5": {
-              "allOf": [
-                {
-                  "$ref": "#/definitions/positive"
-                },
-                {
-                  "$ref": "#/definitions/integer"
-                },
-                {
-                  "multipleOf": 5
-                }
-              ]
-            }
-          },
-          "required": ["weakNumber", "multipleOf5"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle provided $refs only",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "stringValues": {
-              "type": "array",
-              "items": {
-                "$ref": "a://str"
-              }
-            }
-          },
-          "required": ["stringValues"]
-        },
-        "refs": [
-          {
-            "id": "a://str",
-            "type": "string"
-          }
-        ],
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/refs/sync.json b/tests/schema/core/refs/sync.json
deleted file mode 100644
index 82578bdb7759c2cf01c33fdf32b98b1502b50d90..0000000000000000000000000000000000000000
--- a/tests/schema/core/refs/sync.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
-  {
-    "description": "should work on async mode (by default)",
-    "timeout": 30000,
-    "online": true,
-    "tests": [
-      {
-        "description": "should resolve all references",
-        "schema": {
-          "type": "object",
-          "required": ["value", "other"],
-          "properties": {
-            "value": {
-              "$ref": "#/definitions/test"
-            },
-            "other": {
-              "$ref": "#/definitions/other"
-            }
-          },
-          "definitions": {
-            "test": {
-              "type": "string"
-            },
-            "other": {
-              "$ref": "https://gist.githubusercontent.com/anonymous/eb11f16c9edccf040c028dc8bd2b1756/raw/cbac21f18550ff559b5bec4187aa813e59a8d825/User"
-            }
-          }
-        },
-        "FIXME": "this eventually fails, but because other is resolved to undefined; it just happen when repeating too much (too many requests?)",
-        "_repeat": 100,
-        "skip": true,
-        "valid": true
-      },
-      {
-        "description": "should resolve only local references",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "value": {
-              "$ref": "#/definitions/test"
-            }
-          },
-          "definitions": {
-            "test": {
-              "type": "string"
-            }
-          }
-        },
-        "valid": true
-      },
-      {
-        "description": "should fail on undefined/unreachable references",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "value": {
-              "$ref": "LocalIfOrRemoteURL"
-            }
-          }
-        },
-        "throws": "Reference not found"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/typecast/chance/bool.json b/tests/schema/core/typecast/chance/bool.json
deleted file mode 100644
index fa2b9d4f7c81473d0d6ea5e6b65e0678180ba679..0000000000000000000000000000000000000000
--- a/tests/schema/core/typecast/chance/bool.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "description": "should typecast chance.bool when generated value type is different than defined",
-    "tests": [
-      {
-        "description": "should generate the value with default type provided by chance.js (no explicit typedef)",
-        "schema": {
-          "chance": "bool"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast to string",
-        "schema": {
-          "type": "string",
-          "chance": "bool"
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/typecast/chance/year.json b/tests/schema/core/typecast/chance/year.json
deleted file mode 100644
index 23fda053ad1b5c87d86cd17ed57c9c48b2919bb8..0000000000000000000000000000000000000000
--- a/tests/schema/core/typecast/chance/year.json
+++ /dev/null
@@ -1,35 +0,0 @@
-[
-  {
-    "description": "should typecast chance.year when generated value type is different than defined",
-    "tests": [
-      {
-        "description": "should generate the value with default type provided by chance.js (no explicit typedef)",
-        "schema": {
-          "chance": "year"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast to string",
-        "schema": {
-          "type": "string",
-          "chance": "year"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast parametrized generator to string",
-        "schema": {
-          "type": "string",
-          "chance": {
-            "year": {
-              "min": 1939,
-              "max": 1945
-            }
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/typecast/faker/address-latitude-longitude.json b/tests/schema/core/typecast/faker/address-latitude-longitude.json
deleted file mode 100644
index a100f06bfc41dd9c5b09dd0ae07b87ff8f67c80a..0000000000000000000000000000000000000000
--- a/tests/schema/core/typecast/faker/address-latitude-longitude.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
-  {
-    "description": "should typecast faker.address.latitude and faker.address.longitude when generated value type is different than defined",
-    "tests": [
-      {
-        "description": "should generate the value with default type provided by faker.js (no explicit typedef)",
-        "schema": {
-          "faker": "address.longitude"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast to number",
-        "schema": {
-          "type": "number",
-          "faker": "address.longitude"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast to integer",
-        "schema": {
-          "type": "integer",
-          "faker": "address.longitude"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast array elements to number",
-        "schema": {
-          "type": "array",
-          "items": [
-            {
-              "type": "number",
-              "faker": "address.latitude"
-            },
-            {
-              "type": "number",
-              "faker": "address.longitude"
-            }
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast object properties values to number",
-        "schema": {
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "description": "A geographical coordinate",
-          "type": "object",
-          "properties": {
-            "latitude": {
-              "type": "number",
-              "faker": "address.latitude"
-            },
-            "longitude": {
-              "type": "number",
-              "faker": "address.longitude"
-            }
-          },
-          "required": [
-            "latitude",
-            "longitude"
-          ]
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/typecast/faker/finance-amount.json b/tests/schema/core/typecast/faker/finance-amount.json
deleted file mode 100644
index a06036c57e25346a28b0408e7514bf83c1516d8f..0000000000000000000000000000000000000000
--- a/tests/schema/core/typecast/faker/finance-amount.json
+++ /dev/null
@@ -1,38 +0,0 @@
-[
-  {
-    "description": "should typecast faker.finance.amount when generated value type is different than defined",
-    "tests": [
-      {
-        "description": "should generate the value with default type provided by faker.js (no explicit typedef)",
-        "schema": {
-          "faker": "finance.amount"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast to string",
-        "schema": {
-          "type": "string",
-          "faker": "finance.amount"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast faker.finance.amount to number",
-        "schema": {
-          "type": "number",
-          "faker": "finance.amount"
-        },
-        "valid": true
-      },
-      {
-        "description": "should cast faker.finance.amount to integer",
-        "schema": {
-          "type": "integer",
-          "faker": "finance.amount"
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/types/array.json b/tests/schema/core/types/array.json
deleted file mode 100644
index 0b58260a672cd442ae53517c741d722dd6664c3c..0000000000000000000000000000000000000000
--- a/tests/schema/core/types/array.json
+++ /dev/null
@@ -1,169 +0,0 @@
-[
-  {
-    "description": "array generator",
-    "schemas": [
-      {
-        "allOf": [
-          {
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "value": {
-                  "type": "string"
-                }
-              },
-              "required": ["value"]
-            }
-          },
-          {
-            "$ref": "some://rules"
-          }
-        ]
-      }
-    ],
-    "tests": [
-      {
-        "description": "should handle maxItems",
-        "schema": "schemas.0",
-        "refs": [
-          {
-            "id": "some://rules",
-            "maxItems": 3
-          }
-        ],
-        "valid": true
-      },
-      {
-        "description": "should handle minItems",
-        "schema": "schemas.0",
-        "refs": [
-          {
-            "id": "some://rules",
-            "maxItems": 3,
-            "minItems": 2
-          }
-        ],
-        "valid": true
-      },
-      {
-        "description": "should handle uniqueItems",
-        "schema": {
-          "type": "array",
-          "items": {
-            "type": "string",
-            "enum": ["a", "b", "c", "d", "e"]
-          },
-          "uniqueItems": true,
-          "maxItems": 3,
-          "minItems": 2
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle fixed arrays",
-        "schema": {
-          "type": "array",
-          "items": [
-            {
-              "type": "integer"
-            },
-            {
-              "type": "boolean"
-            },
-            {
-              "type": "string"
-            }
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle additionalItems",
-        "schema": {
-          "type": "array",
-          "minItems": 20,
-          "maxItems": 30,
-          "additionalItems": { "type": ["string", "boolean"] }
-        },
-        "valid": true
-      },
-      {
-        "description": "should validate items using all options",
-        "schema": {
-          "type": "array",
-          "minItems": 20,
-          "maxItems": 30,
-          "uniqueItems": true,
-          "additionalItems": false
-        },
-        "throws": "missing items for [\\s\\S]+ in \\/"
-      },
-      {
-        "description": "should handle inferred type (when possible)",
-        "schema": {
-          "items": {
-            "type": "string"
-          }
-        },
-        "type": "array"
-      },
-      {
-        "description": "should handle property name matching inferrable object properties (Issue 62)",
-        "schema": {
-          "id": "matches",
-          "type": "object",
-          "required": ["items"],
-          "properties": {
-            "items": {
-              "items": {
-                "type": "string"
-              },
-              "minItems": 1,
-              "maxItems": 10
-            }
-          }
-        },
-        "type": "object"
-      },
-      {
-        "description": "should handle nested property name matching inferrable object properties (Issue 62)",
-        "schema": {
-          "id": "matches",
-          "type": "object",
-          "required": ["items"],
-          "properties": {
-            "items": {
-              "items": {
-                "required": ["items"],
-                "properties": {
-                  "items": {
-                    "items": {
-                      "type": "string"
-                    },
-                    "minItems": 1,
-                    "maxItems": 10
-                  }
-                }
-              },
-              "minItems": 1,
-              "maxItems": 10
-            }
-          }
-        },
-        "type": "object"
-      },
-      {
-        "description": "should allow minItems > 5",
-        "schema": {
-          "type": "array",
-          "minItems": 10,
-          "items": {
-            "type": "string"
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/types/integer.json b/tests/schema/core/types/integer.json
deleted file mode 100644
index 76289aa97a256f0feaa09ed0ef802c6c54a2e7e4..0000000000000000000000000000000000000000
--- a/tests/schema/core/types/integer.json
+++ /dev/null
@@ -1,110 +0,0 @@
-[
-  {
-    "description": "integer generator",
-    "tests": [
-      {
-        "description": "should handle minimum",
-        "schema": {
-          "type": "integer",
-          "minimum": 10
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle maximum",
-        "schema": {
-          "type": "integer",
-          "minimum": 20,
-          "maximum": 30
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle multipleOf",
-        "schema": {
-          "type": "integer",
-          "minimum": 40,
-          "maximum": 50,
-          "multipleOf": 6
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle exclusiveMinimum",
-        "schema": {
-          "type": "integer",
-          "minimum": 60,
-          "maximum": 70,
-          "multipleOf": 7,
-          "exclusiveMinimum": true
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle exclusiveMaximum",
-        "schema": {
-          "type": "integer",
-          "minimum": 80,
-          "maximum": 90,
-          "multipleOf": 8,
-          "exclusiveMinimum": true,
-          "exclusiveMaximum": true
-        },
-        "hasNot": ".",
-        "type": "number",
-        "valid": true
-      },
-      {
-        "description": "should handle inferred type (when possible)",
-        "schema": {
-          "maximum": 5
-        },
-        "type": "number"
-      },
-      {
-        "description": "should generate negative values for negative min and negative max",
-        "schema": {
-          "type": "integer",
-          "minimum": -10,
-          "maximum": -5
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle negative minimum and 0 as maximum",
-        "schema": {
-          "type": "integer",
-          "minimum": -100,
-          "maximum": 0
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle negative minimum and 1 as maximum",
-        "schema": {
-          "type": "integer",
-          "minimum": -100,
-          "maximum": 1
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle -1 as minimum and 1 as maximum",
-        "schema": {
-          "type": "integer",
-          "minimum": -1,
-          "maximum": 1
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/types/not.json b/tests/schema/core/types/not.json
deleted file mode 100644
index a49fe92a6b0647179ab2a5cacad72a47b269848f..0000000000000000000000000000000000000000
--- a/tests/schema/core/types/not.json
+++ /dev/null
@@ -1,130 +0,0 @@
-[
-  {
-    "description": "notValue generator",
-    "tests": [
-      {
-        "description": "should generate from not schemas",
-        "schema": {
-          "properties": {
-            "notString": {
-              "not": {
-                "type": "string"
-              }
-            },
-            "notNumber": {
-              "not": {
-                "type": "number"
-              }
-            },
-            "notBoolean": {
-              "not": {
-                "type": "boolean"
-              }
-            }
-          },
-          "required": [
-            "notString",
-            "notNumber",
-            "notBoolean"
-          ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should generate complex not schemas",
-        "schema": {
-          "title": "ro",
-          "$schema": "http://json-schema.org/draft-04/schema#",
-          "type": "object",
-          "properties": {
-            "enable": {
-              "type": "boolean",
-              "default": false,
-              "description": "Enable"
-            },
-            "disable": {
-              "type": "boolean",
-              "default": false,
-              "description": "Disable"
-            },
-            "action": {
-              "description": "Configure the action.",
-              "$ref": "#/definitions/action_ref_1"
-            },
-            "uri": {
-              "type": "string",
-              "description": "The URI",
-              "readonly": true
-            }
-          },
-          "anyOf": [
-            {
-              "required": [
-                "enable"
-              ],
-              "not": {
-                "required": [
-                  "disable"
-                ]
-              }
-            },
-            {
-              "required": [
-                "disable"
-              ],
-              "not": {
-                "required": [
-                  "enable"
-                ]
-              }
-            },
-            {
-              "required": [
-                "action"
-              ]
-            }
-          ],
-          "definitions": {
-            "action_ref_1": {
-              "type": "object",
-              "properties": {
-                "block": {
-                  "type": "boolean",
-                  "default": true,
-                  "description": "Block and log."
-                },
-                "log": {
-                  "type": "boolean",
-                  "description": "Log traffic."
-                }
-              },
-              "oneOf": [
-                {
-                  "required": [
-                    "block"
-                  ],
-                  "not": {
-                    "required": [
-                      "log"
-                    ]
-                  }
-                },
-                {
-                  "required": [
-                    "log"
-                  ],
-                  "not": {
-                    "required": [
-                      "block"
-                    ]
-                  }
-                }
-              ]
-            }
-          }
-        },
-        "valid": true
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/types/object.json b/tests/schema/core/types/object.json
deleted file mode 100644
index 433a326699c7762667256fb44b594e4981636eff..0000000000000000000000000000000000000000
--- a/tests/schema/core/types/object.json
+++ /dev/null
@@ -1,291 +0,0 @@
-[
-  {
-    "description": "object generator",
-    "tests": [
-      {
-        "description": "addP === false && !props && !patternProps",
-        "schema": {
-          "type": "object",
-          "additionalProperties": false
-        },
-        "valid": true
-      },
-      {
-        "description": "addP === false && props && !patternProps",
-        "schema": {
-          "type": "object",
-          "properties": {
-              "count": {
-                  "type": "integer"
-              }
-          },
-          "additionalProperties": false
-        },
-        "valid": true
-      },
-      {
-        "description": "addP === false && !props && patternProps",
-        "schema": {
-          "type": "object",
-          "patternProperties": {
-              "count": {
-                  "type": "integer"
-              }
-          },
-          "additionalProperties": false
-        },
-        "valid": true
-      },
-      {
-        "description": "addP === false && props && patternProps",
-        "schema": {
-          "type": "object",
-          "properties": {
-              "count": {
-                  "type": "integer"
-              }
-          },
-          "patternProperties": {
-              "v-[0-3]": {
-                  "type": "integer"
-              }
-          },
-          "additionalProperties": false
-        },
-        "valid": true
-      },
-      {
-        "description": "addP === false && !props && !patternProps && minProperties",
-        "schema": {
-          "type": "object",
-          "minProperties": 2,
-          "additionalProperties": false
-        },
-        "throws": "missing properties for:\n[\\s\\S]+? in \\/"
-      },
-      {
-        "description": "addP === undef || props",
-        "schema": {
-          "type": "object",
-          "minProperties": 2,
-          "properties": {
-              "count": {
-                  "type": "integer"
-              }
-          }
-        },
-        "valid": true
-      },
-      {
-        "description": "should skip some non-required properties",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "one": { "type": "string" },
-            "two": { "type": "string" },
-            "three": { "type": "string" }
-          },
-          "required": ["one", "three"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle patternProperties",
-        "schema": {
-          "type": "object",
-          "patternProperties": {
-            "a\\w{4,12}": { "type": "string" },
-            "xy-[a-f\\d]{4}-n[pqrz]": { "type": "string" }
-          }
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle minProperties",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "x": { "type": "string" },
-            "y": { "type": "string" }
-          },
-          "required": ["x", "y"],
-          "minProperties": 2
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle maxProperties",
-        "schema": {
-          "type": "object",
-          "patternProperties": {
-            "a+": { "type": "string" },
-            "b+": { "type": "string" },
-            "c+": { "type": "string" }
-          },
-          "minProperties": 1,
-          "maxProperties": 2
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle additionalProperties (exact number)",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "example": { "type": "string" }
-          },
-          "minProperties": 5,
-          "maxProperties": 5,
-          "additionalProperties": { "type": "string" }
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle additionalProperties (random number)",
-        "schema": {
-          "type": "object",
-          "minProperties": 20,
-          "maxProperties": 30,
-          "additionalProperties": { "type": "string" }
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle absence of property definitions",
-        "schema": {
-          "type": "object",
-          "minProperties": 20,
-          "maxProperties": 30
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle conflicting pattern definitions",
-        "schema": {
-          "type": "object",
-          "patternProperties": {
-              "^hyb": {
-                  "type": "integer"
-              },
-              "rid$": {
-                  "type": "string"
-              }
-          },
-          "required": [ "hybrid" ]
-        },
-        "valid": false
-      },
-      {
-        "description": "should handle required properties with missing properties field",
-        "schema": {
-          "type": "object",
-          "additionalProperties": {
-              "type": "string"
-          },
-          "required": [ "hybrid", "other" ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle required properties with empty properties field",
-        "schema": {
-          "type": "object",
-          "properties": {},
-          "additionalProperties": false,
-          "required": [ "hybrid", "other" ]
-        },
-        "throws": "missing properties for:\n[\\s\\S]+? in \\/"
-      },
-      {
-        "description": "should handle required properties with empty properties field and no additionalProperties provided",
-        "schema": {
-          "type": "object",
-          "properties": {},
-          "required": [ "hybrid", "other" ]
-        },
-        "valid": false
-      },
-      {
-        "description": "should handle required properties with patternProperties and minProperties field",
-        "schema": {
-          "type": "object",
-          "patternProperties": {
-              "^hybrid.*": {
-                  "type": "string"
-              },
-              ".*other$": {
-                  "type": "integer"
-              }
-          },
-          "minProperties": 20,
-          "additionalProperties": false,
-          "required": [ "hybrid", "other" ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle additionalProperties being false with no properties or patternProperties",
-        "schema": {
-          "type": "object",
-          "additionalProperties": false
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle superposition of patternProperties and additionalProperties",
-        "schema": {
-          "type": "object",
-          "patternProperties": {
-              "^hyb": {
-                  "type": "integer"
-              },
-              "rid$": {
-                  "maximum": 3
-              },
-              "^not-relevant$": {
-                  "type": "string"
-              }
-          },
-          "additionalProperties": {
-              "type": "string"
-          },
-          "required": [ "hybrid", "other" ]
-        },
-        "valid": true
-      },
-      {
-        "description": "should validate properties using all options",
-        "schema": {
-          "type": "object",
-          "minProperties": 20,
-          "maxProperties": 30,
-          "additionalProperties": false
-        },
-        "throws": "missing properties for:\n[\\s\\S]+? in \\/"
-      },
-      {
-        "description": "should throw if it couldnt generate enough keys",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "$count": {
-              "type": "string"
-            }
-          },
-          "minProperties": 20,
-          "additionalProperties": false
-        },
-        "throws": "properties '\\$count' were not found while additionalProperties is false"
-      },
-      {
-        "description": "should handle inferred type (when possible)",
-        "schema": {
-          "properties": {
-            "name": { "type": "string" }
-          }
-        },
-        "type": "object"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/core/types/string.json b/tests/schema/core/types/string.json
deleted file mode 100644
index 612bdcc1f74872018fdbf49cd62616473aafcb33..0000000000000000000000000000000000000000
--- a/tests/schema/core/types/string.json
+++ /dev/null
@@ -1,142 +0,0 @@
-[
-  {
-    "description": "string generator",
-    "tests": [
-      {
-        "description": "should handle minLength",
-        "schema": {
-          "type": "string",
-          "minLength": 10
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle maxLength",
-        "schema": {
-          "type": "string",
-          "minLength": 20,
-          "maxLength": 30
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle pattern",
-        "schema": {
-          "type": "string",
-          "pattern": "\\w+@\\w+\\.\\w+"
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle format (core)",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "a": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "b": {
-              "type": "string",
-              "format": "email"
-            },
-            "c": {
-              "type": "string",
-              "format": "hostname"
-            },
-            "d": {
-              "type": "string",
-              "format": "ipv4"
-            },
-            "e": {
-              "type": "string",
-              "format": "ipv6"
-            },
-            "f": {
-              "type": "string",
-              "format": "uri"
-            }
-          },
-          "required": ["a", "b", "c", "d", "e", "f"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle format (faker)",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "name": {
-              "type": "string",
-              "faker": "name.findName"
-            },
-            "email": {
-              "type": "string",
-              "faker": "internet.email"
-            }
-          },
-          "required": ["name", "email"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should handle format (chance)",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "userId": {
-              "type": "string",
-              "chance": "guid"
-            },
-            "emailAddr": {
-              "type": "string",
-              "chance": {
-                "email": {
-                  "domain": "fake.com"
-                }
-              },
-              "pattern": ".+@fake.com"
-            }
-          },
-          "required": ["userId", "emailAddr"]
-        },
-        "valid": true
-      },
-      {
-        "description": "should validate core formats",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "test": {
-              "type": "string",
-              "format": "unknown"
-            }
-          },
-          "required": ["test"]
-        },
-        "throws": "Error: unknown registry key .+?"
-      },
-      {
-        "description": "should validate custom formats",
-        "schema": {
-          "type": "object",
-          "properties": {
-            "test": {
-              "type": "string",
-              "faker": "not.exists"
-            }
-          },
-          "required": ["test"]
-        },
-        "throws": "cannot resolve faker-generator for .+? in \\/properties\\/test"
-      },
-      {
-        "description": "should handle inferred type (when possible)",
-        "schema": {
-          "maxLength": 5
-        },
-        "type": "string"
-      }
-    ]
-  }
-]
diff --git a/tests/schema/helpers.js b/tests/schema/helpers.js
deleted file mode 100644
index 897cfaa03dcc65251b42691aee2d6c40b4f2fe09..0000000000000000000000000000000000000000
--- a/tests/schema/helpers.js
+++ /dev/null
@@ -1,141 +0,0 @@
-import fs from 'fs';
-import glob from 'glob';
-import { expect } from 'chai';
-import _jsf from '../../src/lib';
-import { checkType, checkSchema } from './validator';
-
-export const jsf = _jsf;
-
-export function pick(obj, key) {
-  const parts = key.split('.');
-
-  let out = obj;
-
-  while (parts.length) {
-    out = out[parts.shift()];
-  }
-
-  return out;
-}
-
-export function getTests(srcDir) {
-  const only = [];
-  const all = [];
-
-  glob.sync(`${srcDir}/**/*.json`).forEach(file => {
-    let suite;
-
-    try {
-      suite = JSON.parse(fs.readFileSync(file));
-    } catch (e) {
-      console.log(`Invalid JSON: ${file}`);
-      console.log(e.message);
-      process.exit(1);
-    }
-
-    (Array.isArray(suite) ? suite : [suite]).forEach(x => {
-      if (x.xdescription) return;
-
-      let _only = false;
-
-      suite = Object.assign({ file }, x);
-
-      suite.tests = suite.tests.sort((a, b) => {
-        if (a.only) return -1;
-        if (b.only) return 1;
-        return 0;
-      }).filter(y => {
-        if ((_only && !y.only) || y.xdescription) return false;
-        if (y.only) _only = true;
-        return true;
-      });
-
-      if (x.only || _only) only.push(suite);
-
-      all.push(suite);
-    });
-  });
-
-  return { only, all };
-}
-
-export function tryTest(nth, max, test, refs, schema) {
-  return _jsf.resolve(schema, refs).then(sample => {
-    if (test.dump) {
-      console.log(JSON.stringify(sample, null, 2));
-      return;
-    }
-
-    try {
-      if (test.type) {
-        checkType(sample, test.type);
-      }
-
-      if (test.valid) {
-        checkSchema(sample, schema, refs);
-      }
-    } catch (e) {
-      const _e = new Error(`${e.message.split('\n')[0]} (${nth} of ${max})`);
-
-      _e.stack = e.stack.split('\n').slice(1).join('\n');
-
-      throw _e;
-    }
-
-    if (test.length) {
-      expect(sample.length).to.eql(test.length);
-    }
-
-    if (test.notEmpty) {
-      test.notEmpty.forEach(x => {
-        const value = pick(sample, x);
-
-        if (value === undefined || (Array.isArray(value) && !value.length)) {
-          throw new Error(`${x} should not be empty`);
-        }
-      });
-    }
-
-    if (test.hasProps) {
-      test.hasProps.forEach(prop => {
-        if (Array.isArray(sample)) {
-          sample.forEach(s => {
-            expect(s[prop]).not.to.eql(undefined);
-          });
-        } else {
-          expect(sample[prop]).not.to.eql(undefined);
-        }
-      });
-    }
-
-    if (test.onlyProps) {
-      expect(Object.keys(sample)).to.eql(test.onlyProps);
-    }
-
-    if (test.count) {
-      expect((Array.isArray(sample) ? sample : Object.keys(sample)).length).to.eql(test.count);
-    }
-
-    if (test.hasNot) {
-      expect(JSON.stringify(sample)).not.to.contain(test.hasNot);
-    }
-
-    if ('equal' in test) {
-      expect(sample).to.eql(test.equal);
-    }
-  }).catch(error => {
-    if (typeof test.throws === 'string') {
-      expect(error).to.match(new RegExp(test.throws, 'im'));
-      return;
-    }
-
-    if (typeof test.throws === 'boolean') {
-      if (test.throws !== true) {
-        throw error;
-      }
-      return;
-    }
-
-    throw error;
-  });
-}
diff --git a/tests/schema/main.spec.js b/tests/schema/main.spec.js
deleted file mode 100644
index 0e9b67799e39db31fc69dcfb7a71e90fd8b45762..0000000000000000000000000000000000000000
--- a/tests/schema/main.spec.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import {
-  jsf, pick, tryTest, getTests,
-} from './helpers';
-
-const { only, all } = getTests(__dirname);
-
-/* global describe, it */
-
-const seeds = [];
-
-function seed() {
-  const value = Math.random();
-  seeds.push(value);
-  return value;
-}
-
-(only.length ? only : all).forEach(suite => {
-  describe(`${suite.description} (${suite.file.replace(`${process.cwd()}/`, '')})`, () => {
-    suite.tests.forEach(test => {
-      if (!process.env.CI && test.online) return;
-      if (process.argv.includes('--skip')) {
-        if (!test.skip) return;
-        delete test.skip;
-      }
-
-      it(test.description, () => {
-        jsf.option(jsf.option.getDefaults());
-
-        if (test.set) {
-          jsf.option(test.set);
-        }
-
-        jsf.option({
-          random: () => ((test.seed && (Array.isArray(test.seed) ? test.seed.shift() : test.seed)) || seed()),
-        });
-
-        if (test.require) {
-          test.require = Array.isArray(test.require) ? test.require : [test.require];
-
-          test.require.map(toRequire => {
-            return require(`./${toRequire}`).register(jsf);
-          });
-        }
-
-        const schema = typeof test.schema === 'string'
-          ? pick(suite, test.schema)
-          : test.schema;
-
-        const refs = (test.refs || []).map(ref => {
-          return typeof ref === 'string'
-            ? pick(suite, ref)
-            : ref;
-        });
-
-        // support for "exhaustive" testing, increase or set in .json spec
-        // for detecting more bugs quickly by executing the same test N-times
-        const max = test.repeat || (process.CI ? 100 : 10);
-
-        let nth = max;
-
-        const tasks = [];
-
-        while (nth) {
-          if (!test.skip) {
-            tasks.push(tryTest(nth, max, test, refs, schema));
-          }
-
-          nth -= 1;
-        }
-
-        return Promise.all(tasks).catch(e => {
-          if (test.online) {
-            console.log('---> failed due connectivity issues?');
-            console.log(e.message);
-            return;
-          }
-
-          // FIXME: find a way to debug this
-          console.log('---> Used seeds:', seeds.slice(-10).join(', ') || test.seed);
-          throw e;
-        });
-      }).timeout(suite.timeout || test.timeout || (process.CI ? 30000 : 10000));
-    });
-  });
-});
diff --git a/tests/schema/validator.js b/tests/schema/validator.js
deleted file mode 100644
index fb3bab99eda2d29bf674e7ead9201a4fec57ef2f..0000000000000000000000000000000000000000
--- a/tests/schema/validator.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import { inspect } from 'util';
-import is from 'is-my-json-valid';
-import Ajv from 'ajv';
-import tv4 from 'tv4';
-import clone from 'clone';
-import semver from 'semver';
-import ZSchema from 'z-schema';
-
-function addValidators(v) {
-  const registry = v.addFormat || v.registerFormat;
-  const msgOnFail = !v.registerFormat;
-
-  registry.call(v, 'idn-hostname', () => true);
-  registry.call(v, 'idn-email', () => true);
-  registry.call(v, 'semver', value => {
-    let pass;
-    let err;
-
-    try {
-      pass = semver.valid(value) === value;
-    } catch (e) {
-      err = e.message;
-    }
-
-    if (msgOnFail) {
-      // tv4, Jayschema
-      if (pass) return null;
-      return err;
-    }
-
-    // ZSchema
-    return pass;
-  });
-}
-
-export function checkType(sample, type) {
-  const test = Object.prototype.toString.call(sample).match(/object (\w+)/);
-
-  if (test[1].toLowerCase() !== type) {
-    throw new Error(`Expected ${JSON.stringify(sample)} to be ${type}`);
-  }
-}
-
-export function checkSchema(sample, schema, refs) {
-  const fail = [];
-  const fixed = {};
-
-  if (refs) {
-    refs.forEach(s => {
-      fixed[s.id ? s.id.split('#')[0] : ''] = clone(s);
-    });
-  }
-
-  // is-my-json-valid
-  const v = is(schema, {
-    formats: {
-      semver: semver.valid,
-      'idn-hostname': () => true,
-      'idn-email': () => true,
-    },
-    schemas: fixed,
-  });
-
-  if (!v(sample)) {
-    // FIXME: https://github.com/mafintosh/is-my-json-valid/issues/172
-    if (v.errors[0].field !== 'data.num') {
-      v.errors.forEach(e => {
-        fail.push(`${e.field.replace('data.', '')} ${e.message}`);
-      });
-    }
-  }
-
-  // z-schema
-  const validator = new ZSchema({
-    ignoreUnresolvableReferences: true,
-  });
-
-  Object.keys(fixed).forEach(k => {
-    validator.setRemoteReference(k, fixed[k]);
-  });
-
-  let valid;
-
-  try {
-    valid = validator.validate(clone(sample), clone(schema));
-  } catch (e) {
-    fail.push(`[z-schema] ${e.message}`);
-  }
-
-  const errors = validator.getLastErrors();
-
-  if (errors || !valid) {
-    fail.push(errors.map(e => {
-      if (e.code === 'PARENT_SCHEMA_VALIDATION_FAILED') {
-        return e.inner.map(x => `[z-schema] ${x.message}`).join('\n');
-      }
-
-      return `[z-schema] ${e.message}`;
-    }).join('\n') || `[z-schema] Invalid schema ${JSON.stringify(sample)}`);
-  }
-
-  // tv4
-  const api = tv4.freshApi();
-
-  api.banUnknown = false;
-  api.cyclicCheck = false;
-
-  Object.keys(fixed).forEach(k => {
-    api.addSchema(k, fixed[k]);
-  });
-
-  const result = api.validateResult(sample, clone(schema), api.cyclicCheck, api.banUnknown);
-
-  if (result.missing.length) {
-    fail.push(`[tv4] Missing ${result.missing.join(', ')}`);
-  }
-
-  if (result.error) {
-    fail.push(`[tv4] ${result.error}`);
-  }
-
-  // ajv
-  const ajv = new Ajv({
-    validateSchema: false,
-    jsonPointers: true,
-    logger: false,
-    formats: {
-      semver: semver.valid,
-      'idn-hostname': () => true,
-      'idn-email': () => true,
-    },
-  });
-
-  Object.keys(fixed).forEach(id => {
-    ajv.addSchema(fixed[id], id);
-  });
-
-  if (!ajv.validate(schema, sample)) {
-    ajv.errors.forEach(x => {
-      fail.push(`[ajv] ${x.message}`);
-    });
-  }
-
-  if (fail.length) {
-    const a = inspect(sample, true, 15);
-    const b = inspect(schema, true, 15);
-
-    throw new Error(`Given sample does not match schema.\n${fail.join('\n')}\n---\n${a}\n---\n${b}\n---\n`);
-  }
-}
-
-[tv4, ZSchema].map(addValidators);
diff --git a/tests/unit/core/infer.spec.js b/tests/unit/core/infer.spec.js
deleted file mode 100644
index 0dcb49c32cb97a75bfd331a02df2ed0ea5cef483..0000000000000000000000000000000000000000
--- a/tests/unit/core/infer.spec.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { expect } from 'chai';
-import infer from '../../../src/core/infer';
-
-/* global describe, it */
-
-describe('Infer', () => {
-  it('should infer `array` type when `additionalItems` property exists on top-level schema', () => {
-    const schema = {
-      additionalItems: true,
-    };
-
-    expect(infer(schema, '')).to.eql('array');
-  });
-});
diff --git a/tests/unit/core/randomGeneration.spec.js b/tests/unit/core/randomGeneration.spec.js
deleted file mode 100644
index 8f7e5e56ccf44e4c27b391a1d942e8af6bd01a94..0000000000000000000000000000000000000000
--- a/tests/unit/core/randomGeneration.spec.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { expect } from 'chai';
-import jsf from '../../../src';
-
-/* global describe, it */
-
-describe('Random Generation', () => {
-  it('should generate all the fields with alwaysFakeOptionals option and additionalProperties: true', () => {
-    jsf.option({
-      alwaysFakeOptionals: true,
-    });
-
-    const schema = {
-      type: 'object',
-      properties: {
-        foo: { type: 'string' },
-        bar: { type: 'string' },
-      },
-      required: [],
-      additionalProperties: true,
-    };
-
-    return jsf.resolve(schema).then(resolved => {
-      expect(Object.keys(resolved).length).to.be.at.least(2);
-    });
-  });
-  it('should generate all the fields with alwaysFakeOptionals option and additionalProperties: false', () => {
-    jsf.option({
-      alwaysFakeOptionals: true,
-    });
-
-    const schema = {
-      type: 'object',
-      properties: {
-        foo: { type: 'string' },
-        bar: { type: 'string' },
-      },
-      required: [],
-      additionalProperties: false,
-    };
-
-    return jsf.resolve(schema).then(resolved => {
-      expect(Object.keys(resolved).length).is.eql(2);
-    });
-  });
-});
diff --git a/tests/unit/core/utils.spec.js b/tests/unit/core/utils.spec.js
deleted file mode 100644
index dcef485936080b96d936fbc85fb875954468a199..0000000000000000000000000000000000000000
--- a/tests/unit/core/utils.spec.js
+++ /dev/null
@@ -1,126 +0,0 @@
-import { expect } from 'chai';
-import utils from '../../../src/core/utils';
-import optionAPI from '../../../src/api/option';
-
-/* global describe, it */
-
-describe('Utils', () => {
-  describe('hasProperties function', () => {
-    const bigObject = {
-      some: 'keys',
-      existing: 'on',
-      the: 'object',
-    };
-
-    const smallObject = {
-      some: 'keys',
-    };
-
-    it('should return true when one key being checked', () => {
-      expect(utils.hasProperties(bigObject, 'some')).to.eql(true);
-      expect(utils.hasProperties(bigObject, 'existing')).to.eql(true);
-      expect(utils.hasProperties(bigObject, 'the')).to.eql(true);
-      expect(utils.hasProperties(smallObject, 'some')).to.eql(true);
-    });
-
-    it('should return true when all keys being checked', () => {
-      expect(utils.hasProperties(bigObject, 'some', 'existing', 'the')).to.eql(true);
-      expect(utils.hasProperties(smallObject, 'some', 'existing', 'the')).to.eql(true);
-    });
-
-    it('should return false when no keys exist on object', () => {
-      expect(utils.hasProperties(bigObject, 'different')).to.eql(false);
-      expect(utils.hasProperties(smallObject, 'different')).to.eql(false);
-    });
-  });
-
-  describe('getSubAttribute function', () => {
-    const object = {
-      outer: {
-        inner: {
-          key: 'value',
-        },
-      },
-    };
-
-    it('should return a leaf if chain is long enough', () => {
-      expect(utils.getSubAttribute(object, 'outer.inner.key')).to.eql('value');
-      expect(utils.getSubAttribute(object, 'outer.inner.key.help.me')).to.eql('value');
-    });
-
-    it('should return a subobject if the chain doesn\'t reach a leaf (is shorter)', () => {
-      expect(utils.getSubAttribute(object, 'outer.inner')).to.eql({ key: 'value' });
-    });
-
-    it('should return a subobject of the valid chain part (and ignore the invalid chain part)', () => {
-      expect(utils.getSubAttribute(object, 'outer.help.me')).to.eql({ inner: { key: 'value' } });
-      expect(utils.getSubAttribute(object, 'help.me')).to.eql(object);
-    });
-  });
-
-  describe('typecast function', () => {
-    it('should normalize constraints and format final values', () => {
-      utils.typecast(null, {}, opts => {
-        expect(opts).to.eql({});
-      });
-
-      const schema = {
-        type: 'integer',
-        enum: [1, 2, 3],
-        minimum: 2,
-      };
-
-      utils.typecast(null, schema, opts => {
-        expect(schema.enum).to.eql([2, 3]);
-        expect(opts).to.eql({ minimum: 2 });
-      });
-    });
-
-    it('should normalize constraints with global options', () => {
-      optionAPI({
-        maxLength: 4,
-      });
-
-      utils.typecast(null, {
-        type: 'string',
-        maxLength: 10,
-      }, opts => {
-        expect(opts).to.eql({ maxLength: 4 });
-      });
-    });
-
-    it('should accept custom types for typecasting', () => {
-      optionAPI({
-        maxLength: 5,
-      });
-
-      utils.typecast('string', {
-        maxLength: 10,
-      }, opts => {
-        expect(opts).to.eql({ maxLength: 5 });
-      });
-    });
-  });
-
-  describe('clone function', () => {
-    it('should handle circular refs in objects', () => {
-      const a = {};
-      const b = {
-        a,
-      };
-      a.b = b;
-
-      const clone = utils.clone(a);
-      expect(clone.b.a).to.eql(clone);
-    });
-
-    it('should handle circular refs in arrays', () => {
-      const a = [];
-      const b = [a];
-      a.push(b);
-
-      const clone = utils.clone(a);
-      expect(clone[0][0]).to.eql(clone);
-    });
-  });
-});
diff --git a/tests/unit/generators/boolean.spec.js b/tests/unit/generators/boolean.spec.js
deleted file mode 100644
index 03b5b10f3dad1f7b94c7f5023d40df854bc1a691..0000000000000000000000000000000000000000
--- a/tests/unit/generators/boolean.spec.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { expect } from 'chai';
-import booleanGenerator from '../../../src/generators/boolean';
-
-/* global describe, it */
-
-describe('Boolean Generator', () => {
-  it('should always return a boolean type', () => {
-    expect(typeof booleanGenerator()).to.eql('boolean');
-  });
-});
diff --git a/tests/unit/generators/ipv4.spec.js b/tests/unit/generators/ipv4.spec.js
deleted file mode 100644
index cab8ed10b8b0cdb9dfe69f87f43157e91de397e9..0000000000000000000000000000000000000000
--- a/tests/unit/generators/ipv4.spec.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { expect } from 'chai';
-import ipv4Generator from '../../../src/generators/ipv4';
-
-/* global describe, it */
-
-describe('IPv4 Generator', () => {
-  it('should always match the IPv4 regex', () => {
-    expect(ipv4Generator()).to.match(/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/);
-  });
-});
diff --git a/tests/unit/generators/null.spec.js b/tests/unit/generators/null.spec.js
deleted file mode 100644
index 24f656db0d942a59a304d98585559516859eeb1d..0000000000000000000000000000000000000000
--- a/tests/unit/generators/null.spec.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { expect } from 'chai';
-import nullGenerator from '../../../src/generators/null';
-
-/* global describe, it */
-
-describe('Null Generator', () => {
-  it('should always return `null` value', () => {
-    expect(nullGenerator()).to.eql(null);
-  });
-});
diff --git a/tests/unit/generators/number.spec.js b/tests/unit/generators/number.spec.js
deleted file mode 100644
index e54af465864f4e9decfcda43975dcb502a2639a2..0000000000000000000000000000000000000000
--- a/tests/unit/generators/number.spec.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { expect } from 'chai';
-import numberType from '../../../src/types/number';
-
-/* global describe, it */
-
-describe('Number Generator', () => {
-  it('should return number with a fractional part', () => {
-    const n = numberType({});
-    const m = Math.floor(n);
-
-    expect(n).not.to.eql(m);
-  });
-});
diff --git a/vendor/Faker/build/build/faker.js b/vendor/Faker/build/build/faker.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4698332836f226e5ae52b4411bed0a6a6ca69f9
--- /dev/null
+++ b/vendor/Faker/build/build/faker.js
@@ -0,0 +1,70655 @@
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.faker=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+// since we are requiring the top level of faker, load all locales by default
+var Faker = require('./lib');
+var faker = new Faker({ locales: require('./lib/locales') });
+module['exports'] = faker;
+},{"./lib":13,"./lib/locales":15}],2:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.address
+ */
+function Address (faker) {
+  var f = faker.fake,
+      Helpers = faker.helpers;
+
+  /**
+   * Generates random zipcode from format. If format is not specified, the
+   * locale's zip format is used.
+   *
+   * @method faker.address.zipCode
+   * @param {String} format
+   */
+  this.zipCode = function(format) {
+    // if zip format is not specified, use the zip format defined for the locale
+    if (typeof format === 'undefined') {
+      var localeFormat = faker.definitions.address.postcode;
+      if (typeof localeFormat === 'string') {
+        format = localeFormat;
+      } else {
+        format = faker.random.arrayElement(localeFormat);
+      }
+    }
+    return Helpers.replaceSymbols(format);
+  }
+
+  /**
+   * Generates a random localized city name. The format string can contain any
+   * method provided by faker wrapped in `{{}}`, e.g. `{{name.firstName}}` in
+   * order to build the city name.
+   *
+   * If no format string is provided one of the following is randomly used:
+   * 
+   * * `{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}`
+   * * `{{address.cityPrefix}} {{name.firstName}}`
+   * * `{{name.firstName}}{{address.citySuffix}}`
+   * * `{{name.lastName}}{{address.citySuffix}}`
+   *
+   * @method faker.address.city
+   * @param {String} format
+   */
+  this.city = function (format) {
+    var formats = [
+      '{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}',
+      '{{address.cityPrefix}} {{name.firstName}}',
+      '{{name.firstName}}{{address.citySuffix}}',
+      '{{name.lastName}}{{address.citySuffix}}'
+    ];
+
+    if (typeof format !== "number") {
+      format = faker.random.number(formats.length - 1);
+    }
+
+    return f(formats[format]);
+
+  }
+
+  /**
+   * Return a random localized city prefix
+   * @method faker.address.cityPrefix
+   */
+  this.cityPrefix = function () {
+    return faker.random.arrayElement(faker.definitions.address.city_prefix);
+  }
+
+  /**
+   * Return a random localized city suffix
+   *
+   * @method faker.address.citySuffix
+   */
+  this.citySuffix = function () {
+    return faker.random.arrayElement(faker.definitions.address.city_suffix);
+  }
+
+  /**
+   * Returns a random localized street name
+   *
+   * @method faker.address.streetName
+   */
+  this.streetName = function () {
+      var result;
+      var suffix = faker.address.streetSuffix();
+      if (suffix !== "") {
+          suffix = " " + suffix
+      }
+
+      switch (faker.random.number(1)) {
+      case 0:
+          result = faker.name.lastName() + suffix;
+          break;
+      case 1:
+          result = faker.name.firstName() + suffix;
+          break;
+      }
+      return result;
+  }
+
+  //
+  // TODO: change all these methods that accept a boolean to instead accept an options hash.
+  //
+  /**
+   * Returns a random localized street address
+   *
+   * @method faker.address.streetAddress
+   * @param {Boolean} useFullAddress
+   */
+  this.streetAddress = function (useFullAddress) {
+      if (useFullAddress === undefined) { useFullAddress = false; }
+      var address = "";
+      switch (faker.random.number(2)) {
+      case 0:
+          address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName();
+          break;
+      case 1:
+          address = Helpers.replaceSymbolWithNumber("####") +  " " + faker.address.streetName();
+          break;
+      case 2:
+          address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName();
+          break;
+      }
+      return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address;
+  }
+
+  /**
+   * streetSuffix
+   *
+   * @method faker.address.streetSuffix
+   */
+  this.streetSuffix = function () {
+      return faker.random.arrayElement(faker.definitions.address.street_suffix);
+  }
+  
+  /**
+   * streetPrefix
+   *
+   * @method faker.address.streetPrefix
+   */
+  this.streetPrefix = function () {
+      return faker.random.arrayElement(faker.definitions.address.street_prefix);
+  }
+
+  /**
+   * secondaryAddress
+   *
+   * @method faker.address.secondaryAddress
+   */
+  this.secondaryAddress = function () {
+      return Helpers.replaceSymbolWithNumber(faker.random.arrayElement(
+          [
+              'Apt. ###',
+              'Suite ###'
+          ]
+      ));
+  }
+
+  /**
+   * county
+   *
+   * @method faker.address.county
+   */
+  this.county = function () {
+    return faker.random.arrayElement(faker.definitions.address.county);
+  }
+
+  /**
+   * country
+   *
+   * @method faker.address.country
+   */
+  this.country = function () {
+    return faker.random.arrayElement(faker.definitions.address.country);
+  }
+
+  /**
+   * countryCode
+   *
+   * @method faker.address.countryCode
+   */
+  this.countryCode = function () {
+    return faker.random.arrayElement(faker.definitions.address.country_code);
+  }
+
+  /**
+   * state
+   *
+   * @method faker.address.state
+   * @param {Boolean} useAbbr
+   */
+  this.state = function (useAbbr) {
+      return faker.random.arrayElement(faker.definitions.address.state);
+  }
+
+  /**
+   * stateAbbr
+   *
+   * @method faker.address.stateAbbr
+   */
+  this.stateAbbr = function () {
+      return faker.random.arrayElement(faker.definitions.address.state_abbr);
+  }
+
+  /**
+   * latitude
+   *
+   * @method faker.address.latitude
+   */
+  this.latitude = function () {
+      return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4);
+  }
+
+  /**
+   * longitude
+   *
+   * @method faker.address.longitude
+   */
+  this.longitude = function () {
+      return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4);
+  }
+  
+  return this;
+}
+
+
+module.exports = Address;
+
+},{}],3:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.commerce
+ */
+var Commerce = function (faker) {
+  var self = this;
+
+  /**
+   * color
+   *
+   * @method faker.commerce.color
+   */
+  self.color = function() {
+      return faker.random.arrayElement(faker.definitions.commerce.color);
+  };
+
+  /**
+   * department
+   *
+   * @method faker.commerce.department
+   */
+  self.department = function() {
+      return faker.random.arrayElement(faker.definitions.commerce.department);
+  };
+
+  /**
+   * productName
+   *
+   * @method faker.commerce.productName
+   */
+  self.productName = function() {
+      return faker.commerce.productAdjective() + " " +
+              faker.commerce.productMaterial() + " " +
+              faker.commerce.product();
+  };
+
+  /**
+   * price
+   *
+   * @method faker.commerce.price
+   * @param {number} min
+   * @param {number} max
+   * @param {number} dec
+   * @param {string} symbol
+   *
+   * @return {string}
+   */
+  self.price = function(min, max, dec, symbol) {
+      min = min || 0;
+      max = max || 1000;
+      dec = dec === undefined ? 2 : dec;
+      symbol = symbol || '';
+
+      if (min < 0 || max < 0) {
+          return symbol + 0.00;
+      }
+
+      var randValue = faker.random.number({ max: max, min: min });
+
+      return symbol + (Math.round(randValue * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec);
+  };
+
+  /*
+  self.categories = function(num) {
+      var categories = [];
+
+      do {
+          var category = faker.random.arrayElement(faker.definitions.commerce.department);
+          if(categories.indexOf(category) === -1) {
+              categories.push(category);
+          }
+      } while(categories.length < num);
+
+      return categories;
+  };
+
+  */
+  /*
+  self.mergeCategories = function(categories) {
+      var separator = faker.definitions.separator || " &";
+      // TODO: find undefined here
+      categories = categories || faker.definitions.commerce.categories;
+      var commaSeparated = categories.slice(0, -1).join(', ');
+
+      return [commaSeparated, categories[categories.length - 1]].join(separator + " ");
+  };
+  */
+
+  /**
+   * productAdjective
+   *
+   * @method faker.commerce.productAdjective
+   */
+  self.productAdjective = function() {
+      return faker.random.arrayElement(faker.definitions.commerce.product_name.adjective);
+  };
+
+  /**
+   * productMaterial
+   *
+   * @method faker.commerce.productMaterial
+   */
+  self.productMaterial = function() {
+      return faker.random.arrayElement(faker.definitions.commerce.product_name.material);
+  };
+
+  /**
+   * product
+   *
+   * @method faker.commerce.product
+   */
+  self.product = function() {
+      return faker.random.arrayElement(faker.definitions.commerce.product_name.product);
+  };
+
+  return self;
+};
+
+module['exports'] = Commerce;
+
+},{}],4:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.company
+ */
+var Company = function (faker) {
+  
+  var self = this;
+  var f = faker.fake;
+  
+  /**
+   * suffixes
+   *
+   * @method faker.company.suffixes
+   */
+  this.suffixes = function () {
+    // Don't want the source array exposed to modification, so return a copy
+    return faker.definitions.company.suffix.slice(0);
+  }
+
+  /**
+   * companyName
+   *
+   * @method faker.company.companyName
+   * @param {string} format
+   */
+  this.companyName = function (format) {
+
+    var formats = [
+      '{{name.lastName}} {{company.companySuffix}}',
+      '{{name.lastName}} - {{name.lastName}}',
+      '{{name.lastName}}, {{name.lastName}} and {{name.lastName}}'
+    ];
+
+    if (typeof format !== "number") {
+      format = faker.random.number(formats.length - 1);
+    }
+
+    return f(formats[format]);
+  }
+
+  /**
+   * companySuffix
+   *
+   * @method faker.company.companySuffix
+   */
+  this.companySuffix = function () {
+      return faker.random.arrayElement(faker.company.suffixes());
+  }
+
+  /**
+   * catchPhrase
+   *
+   * @method faker.company.catchPhrase
+   */
+  this.catchPhrase = function () {
+    return f('{{company.catchPhraseAdjective}} {{company.catchPhraseDescriptor}} {{company.catchPhraseNoun}}')
+  }
+
+  /**
+   * bs
+   *
+   * @method faker.company.bs
+   */
+  this.bs = function () {
+    return f('{{company.bsAdjective}} {{company.bsBuzz}} {{company.bsNoun}}');
+  }
+
+  /**
+   * catchPhraseAdjective
+   *
+   * @method faker.company.catchPhraseAdjective
+   */
+  this.catchPhraseAdjective = function () {
+      return faker.random.arrayElement(faker.definitions.company.adjective);
+  }
+
+  /**
+   * catchPhraseDescriptor
+   *
+   * @method faker.company.catchPhraseDescriptor
+   */
+  this.catchPhraseDescriptor = function () {
+      return faker.random.arrayElement(faker.definitions.company.descriptor);
+  }
+
+  /**
+   * catchPhraseNoun
+   *
+   * @method faker.company.catchPhraseNoun
+   */
+  this.catchPhraseNoun = function () {
+      return faker.random.arrayElement(faker.definitions.company.noun);
+  }
+
+  /**
+   * bsAdjective
+   *
+   * @method faker.company.bsAdjective
+   */
+  this.bsAdjective = function () {
+      return faker.random.arrayElement(faker.definitions.company.bs_adjective);
+  }
+
+  /**
+   * bsBuzz
+   *
+   * @method faker.company.bsBuzz
+   */
+  this.bsBuzz = function () {
+      return faker.random.arrayElement(faker.definitions.company.bs_verb);
+  }
+
+  /**
+   * bsNoun
+   *
+   * @method faker.company.bsNoun
+   */
+  this.bsNoun = function () {
+      return faker.random.arrayElement(faker.definitions.company.bs_noun);
+  }
+  
+}
+
+module['exports'] = Company;
+},{}],5:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.database
+ */
+var Database = function (faker) {
+  var self = this;
+  /**
+   * column
+   *
+   * @method faker.database.column
+   */
+  self.column = function () {
+      return faker.random.arrayElement(faker.definitions.database.column);
+  };
+
+  self.column.schema = {
+    "description": "Generates a column name.",
+    "sampleResults": ["id", "title", "createdAt"]
+  };
+
+  /**
+   * type
+   *
+   * @method faker.database.type
+   */
+  self.type = function () {
+      return faker.random.arrayElement(faker.definitions.database.type);
+  };
+
+  self.type.schema = {
+    "description": "Generates a column type.",
+    "sampleResults": ["byte", "int", "varchar", "timestamp"]
+  };
+
+  /**
+   * collation
+   *
+   * @method faker.database.collation
+   */
+  self.collation = function () {
+      return faker.random.arrayElement(faker.definitions.database.collation);
+  };
+
+  self.collation.schema = {
+    "description": "Generates a collation.",
+    "sampleResults": ["utf8_unicode_ci", "utf8_bin"]
+  };
+
+  /**
+   * engine
+   *
+   * @method faker.database.engine
+   */
+  self.engine = function () {
+      return faker.random.arrayElement(faker.definitions.database.engine);
+  };
+
+  self.engine.schema = {
+    "description": "Generates a storage engine.",
+    "sampleResults": ["MyISAM", "InnoDB"]
+  };
+};
+
+module["exports"] = Database;
+
+},{}],6:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.date
+ */
+var _Date = function (faker) {
+  var self = this;
+  /**
+   * past
+   *
+   * @method faker.date.past
+   * @param {number} years
+   * @param {date} refDate
+   */
+  self.past = function (years, refDate) {
+      var date = (refDate) ? new Date(Date.parse(refDate)) : new Date();
+      var range = {
+        min: 1000,
+        max: (years || 1) * 365 * 24 * 3600 * 1000
+      };
+
+      var past = date.getTime();
+      past -= faker.random.number(range); // some time from now to N years ago, in milliseconds
+      date.setTime(past);
+
+      return date;
+  };
+
+  /**
+   * future
+   *
+   * @method faker.date.future
+   * @param {number} years
+   * @param {date} refDate
+   */
+  self.future = function (years, refDate) {
+      var date = (refDate) ? new Date(Date.parse(refDate)) : new Date();
+      var range = {
+        min: 1000,
+        max: (years || 1) * 365 * 24 * 3600 * 1000
+      };
+
+      var future = date.getTime();
+      future += faker.random.number(range); // some time from now to N years later, in milliseconds
+      date.setTime(future);
+
+      return date;
+  };
+
+  /**
+   * between
+   *
+   * @method faker.date.between
+   * @param {date} from
+   * @param {date} to
+   */
+  self.between = function (from, to) {
+      var fromMilli = Date.parse(from);
+      var dateOffset = faker.random.number(Date.parse(to) - fromMilli);
+
+      var newDate = new Date(fromMilli + dateOffset);
+
+      return newDate;
+  };
+
+  /**
+   * recent
+   *
+   * @method faker.date.recent
+   * @param {number} days
+   */
+  self.recent = function (days) {
+      var date = new Date();
+      var range = {
+        min: 1000,
+        max: (days || 1) * 24 * 3600 * 1000
+      };
+
+      var future = date.getTime();
+      future -= faker.random.number(range); // some time from now to N days ago, in milliseconds
+      date.setTime(future);
+
+      return date;
+  };
+
+  /**
+   * month
+   *
+   * @method faker.date.month
+   * @param {object} options
+   */
+  self.month = function (options) {
+      options = options || {};
+
+      var type = 'wide';
+      if (options.abbr) {
+          type = 'abbr';
+      }
+      if (options.context && typeof faker.definitions.date.month[type + '_context'] !== 'undefined') {
+          type += '_context';
+      }
+
+      var source = faker.definitions.date.month[type];
+
+      return faker.random.arrayElement(source);
+  };
+
+  /**
+   * weekday
+   *
+   * @param {object} options
+   * @method faker.date.weekday
+   */
+  self.weekday = function (options) {
+      options = options || {};
+
+      var type = 'wide';
+      if (options.abbr) {
+          type = 'abbr';
+      }
+      if (options.context && typeof faker.definitions.date.weekday[type + '_context'] !== 'undefined') {
+          type += '_context';
+      }
+
+      var source = faker.definitions.date.weekday[type];
+
+      return faker.random.arrayElement(source);
+  };
+  
+  return self;
+  
+};
+
+module['exports'] = _Date;
+},{}],7:[function(require,module,exports){
+/*
+  fake.js - generator method for combining faker methods based on string input
+
+*/
+
+function Fake (faker) {
+  
+  /**
+   * Generator method for combining faker methods based on string input
+   *
+   * __Example:__
+   *
+   * ```
+   * console.log(faker.fake('{{name.lastName}}, {{name.firstName}} {{name.suffix}}'));
+   * //outputs: "Marks, Dean Sr."
+   * ```
+   *
+   * This will interpolate the format string with the value of methods
+   * [name.lastName]{@link faker.name.lastName}, [name.firstName]{@link faker.name.firstName},
+   * and [name.suffix]{@link faker.name.suffix}
+   *
+   * @method faker.fake
+   * @param {string} str
+   */
+  this.fake = function fake (str) {
+    // setup default response as empty string
+    var res = '';
+
+    // if incoming str parameter is not provided, return error message
+    if (typeof str !== 'string' || str.length === 0) {
+      res = 'string parameter is required!';
+      return res;
+    }
+
+    // find first matching {{ and }}
+    var start = str.search('{{');
+    var end = str.search('}}');
+
+    // if no {{ and }} is found, we are done
+    if (start === -1 && end === -1) {
+      return str;
+    }
+
+    // console.log('attempting to parse', str);
+
+    // extract method name from between the {{ }} that we found
+    // for example: {{name.firstName}}
+    var token = str.substr(start + 2,  end - start - 2);
+    var method = token.replace('}}', '').replace('{{', '');
+
+    // console.log('method', method)
+
+    // extract method parameters
+    var regExp = /\(([^)]+)\)/;
+    var matches = regExp.exec(method);
+    var parameters = '';
+    if (matches) {
+      method = method.replace(regExp, '');
+      parameters = matches[1];
+    }
+
+    // split the method into module and function
+    var parts = method.split('.');
+
+    if (typeof faker[parts[0]] === "undefined") {
+      throw new Error('Invalid module: ' + parts[0]);
+    }
+
+    if (typeof faker[parts[0]][parts[1]] === "undefined") {
+      throw new Error('Invalid method: ' + parts[0] + "." + parts[1]);
+    }
+
+    // assign the function from the module.function namespace
+    var fn = faker[parts[0]][parts[1]];
+
+    // If parameters are populated here, they are always going to be of string type
+    // since we might actually be dealing with an object or array,
+    // we always attempt to the parse the incoming parameters into JSON
+    var params;
+    // Note: we experience a small performance hit here due to JSON.parse try / catch
+    // If anyone actually needs to optimize this specific code path, please open a support issue on github
+    try {
+      params = JSON.parse(parameters)
+    } catch (err) {
+      // since JSON.parse threw an error, assume parameters was actually a string
+      params = parameters;
+    }
+
+    var result;
+    if (typeof params === "string" && params.length === 0) {
+      result = fn.call(this);
+    } else {
+      result = fn.call(this, params);
+    }
+
+    // replace the found tag with the returned fake value
+    res = str.replace('{{' + token + '}}', result);
+
+    // return the response recursively until we are done finding all tags
+    return fake(res);    
+  }
+  
+  return this;
+  
+  
+}
+
+module['exports'] = Fake;
+},{}],8:[function(require,module,exports){
+/**
+ * @namespace faker.finance
+ */
+var Finance = function (faker) {
+  var ibanLib = require("./iban");
+  var Helpers = faker.helpers,
+      self = this;
+
+  /**
+   * account
+   *
+   * @method faker.finance.account
+   * @param {number} length
+   */
+  self.account = function (length) {
+
+      length = length || 8;
+
+      var template = '';
+
+      for (var i = 0; i < length; i++) {
+          template = template + '#';
+      }
+      length = null;
+      return Helpers.replaceSymbolWithNumber(template);
+  };
+
+  /**
+   * accountName
+   *
+   * @method faker.finance.accountName
+   */
+  self.accountName = function () {
+
+      return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' ');
+  };
+
+  /**
+   * mask
+   *
+   * @method faker.finance.mask
+   * @param {number} length
+   * @param {boolean} parens
+   * @param {boolean} ellipsis
+   */
+  self.mask = function (length, parens, ellipsis) {
+
+      //set defaults
+      length = (length == 0 || !length || typeof length == 'undefined') ? 4 : length;
+      parens = (parens === null) ? true : parens;
+      ellipsis = (ellipsis === null) ? true : ellipsis;
+
+      //create a template for length
+      var template = '';
+
+      for (var i = 0; i < length; i++) {
+          template = template + '#';
+      }
+
+      //prefix with ellipsis
+      template = (ellipsis) ? ['...', template].join('') : template;
+
+      template = (parens) ? ['(', template, ')'].join('') : template;
+
+      //generate random numbers
+      template = Helpers.replaceSymbolWithNumber(template);
+
+      return template;
+  };
+
+  //min and max take in minimum and maximum amounts, dec is the decimal place you want rounded to, symbol is $, €, £, etc
+  //NOTE: this returns a string representation of the value, if you want a number use parseFloat and no symbol
+
+  /**
+   * amount
+   *
+   * @method faker.finance.amount
+   * @param {number} min
+   * @param {number} max
+   * @param {number} dec
+   * @param {string} symbol
+   *
+   * @return {string}
+   */
+  self.amount = function (min, max, dec, symbol) {
+
+      min = min || 0;
+      max = max || 1000;
+      dec = dec === undefined ? 2 : dec;
+      symbol = symbol || '';
+      var randValue = faker.random.number({ max: max, min: min, precision: Math.pow(10, -dec) });
+
+      return symbol + randValue.toFixed(dec);
+  };
+
+  /**
+   * transactionType
+   *
+   * @method faker.finance.transactionType
+   */
+  self.transactionType = function () {
+      return Helpers.randomize(faker.definitions.finance.transaction_type);
+  };
+
+  /**
+   * currencyCode
+   *
+   * @method faker.finance.currencyCode
+   */
+  self.currencyCode = function () {
+      return faker.random.objectElement(faker.definitions.finance.currency)['code'];
+  };
+
+  /**
+   * currencyName
+   *
+   * @method faker.finance.currencyName
+   */
+  self.currencyName = function () {
+      return faker.random.objectElement(faker.definitions.finance.currency, 'key');
+  };
+
+  /**
+   * currencySymbol
+   *
+   * @method faker.finance.currencySymbol
+   */
+  self.currencySymbol = function () {
+      var symbol;
+
+      while (!symbol) {
+          symbol = faker.random.objectElement(faker.definitions.finance.currency)['symbol'];
+      }
+      return symbol;
+  };
+
+  /**
+   * bitcoinAddress
+   *
+   * @method  faker.finance.bitcoinAddress
+   */
+  self.bitcoinAddress = function () {
+    var addressLength = faker.random.number({ min: 27, max: 34 });
+
+    var address = faker.random.arrayElement(['1', '3']);
+
+    for (var i = 0; i < addressLength - 1; i++)
+      address += faker.random.alphaNumeric().toUpperCase();
+
+    return address;
+  };
+
+  /**
+   * iban
+   *
+   * @method  faker.finance.iban
+   */
+  self.iban = function (formatted) {
+      var ibanFormat = faker.random.arrayElement(ibanLib.formats);
+      var s = "";
+      var count = 0;
+      for (var b = 0; b < ibanFormat.bban.length; b++) {
+          var bban = ibanFormat.bban[b];
+          var c = bban.count;
+          count += bban.count;
+          while (c > 0) {
+              if (bban.type == "a") {
+                  s += faker.random.arrayElement(ibanLib.alpha);
+              } else if (bban.type == "c") {
+                  if (faker.random.number(100) < 80) {
+                      s += faker.random.number(9);
+                  } else {
+                      s += faker.random.arrayElement(ibanLib.alpha);
+                  }
+              } else {
+                  if (c >= 3 && faker.random.number(100) < 30) {
+                      if (faker.random.boolean()) {
+                          s += faker.random.arrayElement(ibanLib.pattern100);
+                          c -= 2;
+                      } else {
+                          s += faker.random.arrayElement(ibanLib.pattern10);
+                          c--;
+                      }
+                  } else {
+                      s += faker.random.number(9);
+                  }
+              }
+              c--;
+          }
+          s = s.substring(0, count);
+      }
+      var checksum = 98 - ibanLib.mod97(ibanLib.toDigitString(s + ibanFormat.country + "00"));
+      if (checksum < 10) {
+          checksum = "0" + checksum;
+      }
+      var iban = ibanFormat.country + checksum + s;
+      return formatted ? iban.match(/.{1,4}/g).join(" ") : iban;
+  };
+
+  /**
+   * bic
+   *
+   * @method  faker.finance.bic
+   */
+  self.bic = function () {
+      var vowels = ["A", "E", "I", "O", "U"];
+      var prob = faker.random.number(100);
+      return Helpers.replaceSymbols("???") +
+          faker.random.arrayElement(vowels) +
+          faker.random.arrayElement(ibanLib.iso3166) +
+          Helpers.replaceSymbols("?") + "1" +
+          (prob < 10 ?
+              Helpers.replaceSymbols("?" + faker.random.arrayElement(vowels) + "?") :
+          prob < 40 ?
+              Helpers.replaceSymbols("###") : "");
+  };
+};
+
+module['exports'] = Finance;
+
+},{"./iban":11}],9:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.hacker
+ */
+var Hacker = function (faker) {
+  var self = this;
+  
+  /**
+   * abbreviation
+   *
+   * @method faker.hacker.abbreviation
+   */
+  self.abbreviation = function () {
+    return faker.random.arrayElement(faker.definitions.hacker.abbreviation);
+  };
+
+  /**
+   * adjective
+   *
+   * @method faker.hacker.adjective
+   */
+  self.adjective = function () {
+    return faker.random.arrayElement(faker.definitions.hacker.adjective);
+  };
+
+  /**
+   * noun
+   *
+   * @method faker.hacker.noun
+   */
+  self.noun = function () {
+    return faker.random.arrayElement(faker.definitions.hacker.noun);
+  };
+
+  /**
+   * verb
+   *
+   * @method faker.hacker.verb
+   */
+  self.verb = function () {
+    return faker.random.arrayElement(faker.definitions.hacker.verb);
+  };
+
+  /**
+   * ingverb
+   *
+   * @method faker.hacker.ingverb
+   */
+  self.ingverb = function () {
+    return faker.random.arrayElement(faker.definitions.hacker.ingverb);
+  };
+
+  /**
+   * phrase
+   *
+   * @method faker.hacker.phrase
+   */
+  self.phrase = function () {
+
+    var data = {
+      abbreviation: self.abbreviation,
+      adjective: self.adjective,
+      ingverb: self.ingverb,
+      noun: self.noun,
+      verb: self.verb
+    };
+
+    var phrase = faker.random.arrayElement([ "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!",
+      "We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!",
+      "Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!",
+      "You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!",
+      "Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!",
+      "The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!",
+      "{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!",
+      "I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!"
+   ]);
+
+   return faker.helpers.mustache(phrase, data);
+
+  };
+  
+  return self;
+};
+
+module['exports'] = Hacker;
+},{}],10:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.helpers
+ */
+var Helpers = function (faker) {
+
+  var self = this;
+
+  /**
+   * backword-compatibility
+   *
+   * @method faker.helpers.randomize
+   * @param {array} array
+   */
+  self.randomize = function (array) {
+      array = array || ["a", "b", "c"];
+      return faker.random.arrayElement(array);
+  };
+
+  /**
+   * slugifies string
+   *
+   * @method faker.helpers.slugify
+   * @param {string} string
+   */
+  self.slugify = function (string) {
+      string = string || "";
+      return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, '');
+  };
+
+  /**
+   * parses string for a symbol and replace it with a random number from 1-10
+   *
+   * @method faker.helpers.replaceSymbolWithNumber
+   * @param {string} string
+   * @param {string} symbol defaults to `"#"`
+   */
+  self.replaceSymbolWithNumber = function (string, symbol) {
+      string = string || "";
+      // default symbol is '#'
+      if (symbol === undefined) {
+          symbol = '#';
+      }
+
+      var str = '';
+      for (var i = 0; i < string.length; i++) {
+          if (string.charAt(i) == symbol) {
+              str += faker.random.number(9);
+          } else {
+              str += string.charAt(i);
+          }
+      }
+      return str;
+  };
+
+  /**
+   * parses string for symbols (numbers or letters) and replaces them appropriately
+   *
+   * @method faker.helpers.replaceSymbols
+   * @param {string} string
+   */
+  self.replaceSymbols = function (string) {
+      string = string || "";
+      var alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
+      var str = '';
+
+      for (var i = 0; i < string.length; i++) {
+          if (string.charAt(i) == "#") {
+              str += faker.random.number(9);
+          } else if (string.charAt(i) == "?") {
+              str += faker.random.arrayElement(alpha);
+          } else {
+              str += string.charAt(i);
+          }
+      }
+      return str;
+  };
+
+  /**
+   * takes an array and returns it randomized
+   *
+   * @method faker.helpers.shuffle
+   * @param {array} o
+   */
+  self.shuffle = function (o) {
+      if (typeof o === 'undefined' || o.length === 0) {
+        return [];
+      }
+      o = o || ["a", "b", "c"];
+      for (var j, x, i = o.length-1; i; j = faker.random.number(i), x = o[--i], o[i] = o[j], o[j] = x);
+      return o;
+  };
+
+  /**
+   * mustache
+   *
+   * @method faker.helpers.mustache
+   * @param {string} str
+   * @param {object} data
+   */
+  self.mustache = function (str, data) {
+    if (typeof str === 'undefined') {
+      return '';
+    }
+    for(var p in data) {
+      var re = new RegExp('{{' + p + '}}', 'g')
+      str = str.replace(re, data[p]);
+    }
+    return str;
+  };
+
+  /**
+   * createCard
+   *
+   * @method faker.helpers.createCard
+   */
+  self.createCard = function () {
+      return {
+          "name": faker.name.findName(),
+          "username": faker.internet.userName(),
+          "email": faker.internet.email(),
+          "address": {
+              "streetA": faker.address.streetName(),
+              "streetB": faker.address.streetAddress(),
+              "streetC": faker.address.streetAddress(true),
+              "streetD": faker.address.secondaryAddress(),
+              "city": faker.address.city(),
+              "state": faker.address.state(),
+              "country": faker.address.country(),
+              "zipcode": faker.address.zipCode(),
+              "geo": {
+                  "lat": faker.address.latitude(),
+                  "lng": faker.address.longitude()
+              }
+          },
+          "phone": faker.phone.phoneNumber(),
+          "website": faker.internet.domainName(),
+          "company": {
+              "name": faker.company.companyName(),
+              "catchPhrase": faker.company.catchPhrase(),
+              "bs": faker.company.bs()
+          },
+          "posts": [
+              {
+                  "words": faker.lorem.words(),
+                  "sentence": faker.lorem.sentence(),
+                  "sentences": faker.lorem.sentences(),
+                  "paragraph": faker.lorem.paragraph()
+              },
+              {
+                  "words": faker.lorem.words(),
+                  "sentence": faker.lorem.sentence(),
+                  "sentences": faker.lorem.sentences(),
+                  "paragraph": faker.lorem.paragraph()
+              },
+              {
+                  "words": faker.lorem.words(),
+                  "sentence": faker.lorem.sentence(),
+                  "sentences": faker.lorem.sentences(),
+                  "paragraph": faker.lorem.paragraph()
+              }
+          ],
+          "accountHistory": [faker.helpers.createTransaction(), faker.helpers.createTransaction(), faker.helpers.createTransaction()]
+      };
+  };
+
+  /**
+   * contextualCard
+   *
+   * @method faker.helpers.contextualCard
+   */
+  self.contextualCard = function () {
+    var name = faker.name.firstName(),
+        userName = faker.internet.userName(name);
+    return {
+        "name": name,
+        "username": userName,
+        "avatar": faker.internet.avatar(),
+        "email": faker.internet.email(userName),
+        "dob": faker.date.past(50, new Date("Sat Sep 20 1992 21:35:02 GMT+0200 (CEST)")),
+        "phone": faker.phone.phoneNumber(),
+        "address": {
+            "street": faker.address.streetName(true),
+            "suite": faker.address.secondaryAddress(),
+            "city": faker.address.city(),
+            "zipcode": faker.address.zipCode(),
+            "geo": {
+                "lat": faker.address.latitude(),
+                "lng": faker.address.longitude()
+            }
+        },
+        "website": faker.internet.domainName(),
+        "company": {
+            "name": faker.company.companyName(),
+            "catchPhrase": faker.company.catchPhrase(),
+            "bs": faker.company.bs()
+        }
+    };
+  };
+
+
+  /**
+   * userCard
+   *
+   * @method faker.helpers.userCard
+   */
+  self.userCard = function () {
+      return {
+          "name": faker.name.findName(),
+          "username": faker.internet.userName(),
+          "email": faker.internet.email(),
+          "address": {
+              "street": faker.address.streetName(true),
+              "suite": faker.address.secondaryAddress(),
+              "city": faker.address.city(),
+              "zipcode": faker.address.zipCode(),
+              "geo": {
+                  "lat": faker.address.latitude(),
+                  "lng": faker.address.longitude()
+              }
+          },
+          "phone": faker.phone.phoneNumber(),
+          "website": faker.internet.domainName(),
+          "company": {
+              "name": faker.company.companyName(),
+              "catchPhrase": faker.company.catchPhrase(),
+              "bs": faker.company.bs()
+          }
+      };
+  };
+
+  /**
+   * createTransaction
+   *
+   * @method faker.helpers.createTransaction
+   */
+  self.createTransaction = function(){
+    return {
+      "amount" : faker.finance.amount(),
+      "date" : new Date(2012, 1, 2),  //TODO: add a ranged date method
+      "business": faker.company.companyName(),
+      "name": [faker.finance.accountName(), faker.finance.mask()].join(' '),
+      "type" : self.randomize(faker.definitions.finance.transaction_type),
+      "account" : faker.finance.account()
+    };
+  };
+
+  return self;
+
+};
+
+
+/*
+String.prototype.capitalize = function () { //v1.0
+    return this.replace(/\w+/g, function (a) {
+        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
+    });
+};
+*/
+
+module['exports'] = Helpers;
+
+},{}],11:[function(require,module,exports){
+module["exports"] = {
+  alpha: [
+    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
+  ],
+  pattern10: [
+    "01", "02", "03", "04", "05", "06", "07", "08", "09"
+  ],
+  pattern100: [
+    "001", "002", "003", "004", "005", "006", "007", "008", "009"
+  ],
+  toDigitString: function (str) {
+      return str.replace(/[A-Z]/gi, function(match) {
+          return match.toUpperCase().charCodeAt(0) - 55;
+      });
+  },
+  mod97: function (digitStr) {
+      var m = 0;
+      for (var i = 0; i < digitStr.length; i++) {
+          m = ((m * 10) + (digitStr[i] |0)) % 97;
+      }
+      return m;
+  },
+  formats: [
+    {
+      country: "AL",
+      total: 28,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "c",
+          count: 16
+        }
+      ],
+      format: "ALkk bbbs sssx cccc cccc cccc cccc"
+    },
+    {
+      country: "AD",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "c",
+          count: 12
+        }
+      ],
+      format: "ADkk bbbb ssss cccc cccc cccc"
+    },
+    {
+      country: "AT",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "n",
+          count: 11
+        }
+      ],
+      format: "ATkk bbbb bccc cccc cccc"
+    },
+    {
+      country: "AZ",
+      total: 28,
+      bban: [
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 20
+        }
+      ],
+      format: "AZkk bbbb cccc cccc cccc cccc cccc"
+    },
+    {
+      country: "BH",
+      total: 22,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 14
+        }
+      ],
+      format: "BHkk bbbb cccc cccc cccc cc"
+    },
+    {
+      country: "BE",
+      total: 16,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 9
+        }
+      ],
+      format: "BEkk bbbc cccc ccxx"
+    },
+    {
+      country: "BA",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "BAkk bbbs sscc cccc ccxx"
+    },
+    {
+      country: "BR",
+      total: 29,
+      bban: [
+        {
+          type: "n",
+          count: 13
+        },
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "a",
+          count: 1
+        },
+        {
+          type: "c",
+          count: 1
+        }
+      ],
+      format: "BRkk bbbb bbbb ssss sccc cccc ccct n"
+    },
+    {
+      country: "BG",
+      total: 22,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "c",
+          count: 8
+        }
+      ],
+      format: "BGkk bbbb ssss ddcc cccc cc"
+    },
+    {
+      country: "CR",
+      total: 21,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 14
+        }
+      ],
+      format: "CRkk bbbc cccc cccc cccc c"
+    },
+    {
+      country: "HR",
+      total: 21,
+      bban: [
+        {
+          type: "n",
+          count: 7
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "HRkk bbbb bbbc cccc cccc c"
+    },
+    {
+      country: "CY",
+      total: 28,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "c",
+          count: 16
+        }
+      ],
+      format: "CYkk bbbs ssss cccc cccc cccc cccc"
+    },
+    {
+      country: "CZ",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "CZkk bbbb ssss sscc cccc cccc"
+    },
+    {
+      country: "DK",
+      total: 18,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "DKkk bbbb cccc cccc cc"
+    },
+    {
+      country: "DO",
+      total: 28,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 20
+        }
+      ],
+      format: "DOkk bbbb cccc cccc cccc cccc cccc"
+    },
+    {
+      country: "TL",
+      total: 23,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "TLkk bbbc cccc cccc cccc cxx"
+    },
+    {
+      country: "EE",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 12
+        }
+      ],
+      format: "EEkk bbss cccc cccc cccx"
+    },
+    {
+      country: "FO",
+      total: 18,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "FOkk bbbb cccc cccc cx"
+    },
+    {
+      country: "FI",
+      total: 18,
+      bban: [
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "n",
+          count: 8
+        }
+      ],
+      format: "FIkk bbbb bbcc cccc cx"
+    },
+    {
+      country: "FR",
+      total: 27,
+      bban: [
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "c",
+          count: 11
+        },
+        {
+          type: "n",
+          count: 2
+        }
+      ],
+      format: "FRkk bbbb bggg ggcc cccc cccc cxx"
+    },
+    {
+      country: "GE",
+      total: 22,
+      bban: [
+        {
+          type: "c",
+          count: 2
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "GEkk bbcc cccc cccc cccc cc"
+    },
+    {
+      country: "DE",
+      total: 22,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "DEkk bbbb bbbb cccc cccc cc"
+    },
+    {
+      country: "GI",
+      total: 23,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 15
+        }
+      ],
+      format: "GIkk bbbb cccc cccc cccc ccc"
+    },
+    {
+      country: "GR",
+      total: 27,
+      bban: [
+        {
+          type: "n",
+          count: 7
+        },
+        {
+          type: "c",
+          count: 16
+        }
+      ],
+      format: "GRkk bbbs sssc cccc cccc cccc ccc"
+    },
+    {
+      country: "GL",
+      total: 18,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "GLkk bbbb cccc cccc cc"
+    },
+    {
+      country: "GT",
+      total: 28,
+      bban: [
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 16
+        }
+      ],
+      format: "GTkk bbbb mmtt cccc cccc cccc cccc"
+    },
+    {
+      country: "HU",
+      total: 28,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "HUkk bbbs sssk cccc cccc cccc cccx"
+    },
+    {
+      country: "IS",
+      total: 26,
+      bban: [
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "ISkk bbbb sscc cccc iiii iiii ii"
+    },
+    {
+      country: "IE",
+      total: 22,
+      bban: [
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "n",
+          count: 8
+        }
+      ],
+      format: "IEkk aaaa bbbb bbcc cccc cc"
+    },
+    {
+      country: "IL",
+      total: 23,
+      bban: [
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "n",
+          count: 13
+        }
+      ],
+      format: "ILkk bbbn nncc cccc cccc ccc"
+    },
+    {
+      country: "IT",
+      total: 27,
+      bban: [
+        {
+          type: "a",
+          count: 1
+        },
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "c",
+          count: 12
+        }
+      ],
+      format: "ITkk xaaa aabb bbbc cccc cccc ccc"
+    },
+    {
+      country: "JO",
+      total: 30,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 18
+        }
+      ],
+      format: "JOkk bbbb nnnn cccc cccc cccc cccc cc"
+    },
+    {
+      country: "KZ",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "c",
+          count: 13
+        }
+      ],
+      format: "KZkk bbbc cccc cccc cccc"
+    },
+    {
+      country: "XK",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 12
+        }
+      ],
+      format: "XKkk bbbb cccc cccc cccc"
+    },
+    {
+      country: "KW",
+      total: 30,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 22
+        }
+      ],
+      format: "KWkk bbbb cccc cccc cccc cccc cccc cc"
+    },
+    {
+      country: "LV",
+      total: 21,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 13
+        }
+      ],
+      format: "LVkk bbbb cccc cccc cccc c"
+    },
+    {
+      country: "LB",
+      total: 28,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 20
+        }
+      ],
+      format: "LBkk bbbb cccc cccc cccc cccc cccc"
+    },
+    {
+      country: "LI",
+      total: 21,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "c",
+          count: 12
+        }
+      ],
+      format: "LIkk bbbb bccc cccc cccc c"
+    },
+    {
+      country: "LT",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "n",
+          count: 11
+        }
+      ],
+      format: "LTkk bbbb bccc cccc cccc"
+    },
+    {
+      country: "LU",
+      total: 20,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "c",
+          count: 13
+        }
+      ],
+      format: "LUkk bbbc cccc cccc cccc"
+    },
+    {
+      country: "MK",
+      total: 19,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "c",
+          count: 10
+        },
+        {
+          type: "n",
+          count: 2
+        }
+      ],
+      format: "MKkk bbbc cccc cccc cxx"
+    },
+    {
+      country: "MT",
+      total: 31,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "c",
+          count: 18
+        }
+      ],
+      format: "MTkk bbbb ssss sccc cccc cccc cccc ccc"
+    },
+    {
+      country: "MR",
+      total: 27,
+      bban: [
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "n",
+          count: 13
+        }
+      ],
+      format: "MRkk bbbb bsss sscc cccc cccc cxx"
+    },
+    {
+      country: "MU",
+      total: 30,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 15
+        },
+        {
+          type: "a",
+          count: 3
+        }
+      ],
+      format: "MUkk bbbb bbss cccc cccc cccc 000d dd"
+    },
+    {
+      country: "MC",
+      total: 27,
+      bban: [
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "c",
+          count: 11
+        },
+        {
+          type: "n",
+          count: 2
+        }
+      ],
+      format: "MCkk bbbb bsss sscc cccc cccc cxx"
+    },
+    {
+      country: "MD",
+      total: 24,
+      bban: [
+        {
+          type: "c",
+          count: 2
+        },
+        {
+          type: "c",
+          count: 18
+        }
+      ],
+      format: "MDkk bbcc cccc cccc cccc cccc"
+    },
+    {
+      country: "ME",
+      total: 22,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 15
+        }
+      ],
+      format: "MEkk bbbc cccc cccc cccc xx"
+    },
+    {
+      country: "NL",
+      total: 18,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "NLkk bbbb cccc cccc cc"
+    },
+    {
+      country: "NO",
+      total: 15,
+      bban: [
+        {
+          type: "n",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 7
+        }
+      ],
+      format: "NOkk bbbb cccc ccx"
+    },
+    {
+      country: "PK",
+      total: 24,
+      bban: [
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "PKkk bbbb cccc cccc cccc cccc"
+    },
+    {
+      country: "PS",
+      total: 29,
+      bban: [
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 9
+        },
+        {
+          type: "n",
+          count: 12
+        }
+      ],
+      format: "PSkk bbbb xxxx xxxx xccc cccc cccc c"
+    },
+    {
+      country: "PL",
+      total: 28,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "PLkk bbbs sssx cccc cccc cccc cccc"
+    },
+    {
+      country: "PT",
+      total: 25,
+      bban: [
+        {
+          type: "n",
+          count: 8
+        },
+        {
+          type: "n",
+          count: 13
+        }
+      ],
+      format: "PTkk bbbb ssss cccc cccc cccx x"
+    },
+    {
+      country: "QA",
+      total: 29,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 21
+        }
+      ],
+      format: "QAkk bbbb cccc cccc cccc cccc cccc c"
+    },
+    {
+      country: "RO",
+      total: 24,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "c",
+          count: 16
+        }
+      ],
+      format: "ROkk bbbb cccc cccc cccc cccc"
+    },
+    {
+      country: "SM",
+      total: 27,
+      bban: [
+        {
+          type: "a",
+          count: 1
+        },
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "c",
+          count: 12
+        }
+      ],
+      format: "SMkk xaaa aabb bbbc cccc cccc ccc"
+    },
+    {
+      country: "SA",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 2
+        },
+        {
+          type: "c",
+          count: 18
+        }
+      ],
+      format: "SAkk bbcc cccc cccc cccc cccc"
+    },
+    {
+      country: "RS",
+      total: 22,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 15
+        }
+      ],
+      format: "RSkk bbbc cccc cccc cccc xx"
+    },
+    {
+      country: "SK",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "SKkk bbbb ssss sscc cccc cccc"
+    },
+    {
+      country: "SI",
+      total: 19,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "SIkk bbss sccc cccc cxx"
+    },
+    {
+      country: "ES",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 10
+        },
+        {
+          type: "n",
+          count: 10
+        }
+      ],
+      format: "ESkk bbbb gggg xxcc cccc cccc"
+    },
+    {
+      country: "SE",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 17
+        }
+      ],
+      format: "SEkk bbbc cccc cccc cccc cccc"
+    },
+    {
+      country: "CH",
+      total: 21,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "c",
+          count: 12
+        }
+      ],
+      format: "CHkk bbbb bccc cccc cccc c"
+    },
+    {
+      country: "TN",
+      total: 24,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "n",
+          count: 15
+        }
+      ],
+      format: "TNkk bbss sccc cccc cccc cccc"
+    },
+    {
+      country: "TR",
+      total: 26,
+      bban: [
+        {
+          type: "n",
+          count: 5
+        },
+        {
+          type: "c",
+          count: 1
+        },
+        {
+          type: "c",
+          count: 16
+        }
+      ],
+      format: "TRkk bbbb bxcc cccc cccc cccc cc"
+    },
+    {
+      country: "AE",
+      total: 23,
+      bban: [
+        {
+          type: "n",
+          count: 3
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "AEkk bbbc cccc cccc cccc ccc"
+    },
+    {
+      country: "GB",
+      total: 22,
+      bban: [
+        {
+          type: "a",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 6
+        },
+        {
+          type: "n",
+          count: 8
+        }
+      ],
+      format: "GBkk bbbb ssss sscc cccc cc"
+    },
+    {
+      country: "VG",
+      total: 24,
+      bban: [
+        {
+          type: "c",
+          count: 4
+        },
+        {
+          type: "n",
+          count: 16
+        }
+      ],
+      format: "VGkk bbbb cccc cccc cccc cccc"
+    }
+  ],
+  iso3166: [
+    "AC", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS",
+    "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI",
+    "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BY",
+    "BZ", "CA", "CC", "CD", "CE", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN",
+    "CO", "CP", "CR", "CS", "CS", "CU", "CV", "CW", "CX", "CY", "CZ", "DD", "DE",
+    "DG", "DJ", "DK", "DM", "DO", "DZ", "EA", "EC", "EE", "EG", "EH", "ER", "ES",
+    "ET", "EU", "FI", "FJ", "FK", "FM", "FO", "FR", "FX", "GA", "GB", "GD", "GE",
+    "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU",
+    "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "IC", "ID", "IE", "IL", "IM",
+    "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH",
+    "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK",
+    "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH",
+    "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW",
+    "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR",
+    "NT", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN",
+    "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB",
+    "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR",
+    "SS", "ST", "SU", "SV", "SX", "SY", "SZ", "TA", "TC", "TD", "TF", "TG", "TH",
+    "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG",
+    "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS",
+    "YE", "YT", "YU", "ZA", "ZM", "ZR", "ZW"
+  ]
+}
+},{}],12:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.image
+ */
+var Image = function (faker) {
+
+  var self = this;
+
+  /**
+   * image
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.image
+   */
+  self.image = function (width, height, randomize) {
+    var categories = ["abstract", "animals", "business", "cats", "city", "food", "nightlife", "fashion", "people", "nature", "sports", "technics", "transport"];
+    return self[faker.random.arrayElement(categories)](width, height, randomize);
+  };
+  /**
+   * avatar
+   *
+   * @method faker.image.avatar
+   */
+  self.avatar = function () {
+    return faker.internet.avatar();
+  };
+  /**
+   * imageUrl
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {string} category
+   * @param {boolean} randomize
+   * @method faker.image.imageUrl
+   */
+  self.imageUrl = function (width, height, category, randomize, https) {
+      var width = width || 640;
+      var height = height || 480;
+      var protocol = 'http://';
+      if (typeof https !== 'undefined' && https === true) {
+        protocol = 'https://';
+      }
+      var url = protocol + 'lorempixel.com/' + width + '/' + height;
+      if (typeof category !== 'undefined') {
+        url += '/' + category;
+      }
+
+      if (randomize) {
+        url += '?' + faker.random.number()
+      }
+
+      return url;
+  };
+  /**
+   * abstract
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.abstract
+   */
+  self.abstract = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'abstract', randomize);
+  };
+  /**
+   * animals
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.animals
+   */
+  self.animals = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'animals', randomize);
+  };
+  /**
+   * business
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.business
+   */
+  self.business = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'business', randomize);
+  };
+  /**
+   * cats
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.cats
+   */
+  self.cats = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'cats', randomize);
+  };
+  /**
+   * city
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.city
+   */
+  self.city = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'city', randomize);
+  };
+  /**
+   * food
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.food
+   */
+  self.food = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'food', randomize);
+  };
+  /**
+   * nightlife
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.nightlife
+   */
+  self.nightlife = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'nightlife', randomize);
+  };
+  /**
+   * fashion
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.fashion
+   */
+  self.fashion = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'fashion', randomize);
+  };
+  /**
+   * people
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.people
+   */
+  self.people = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'people', randomize);
+  };
+  /**
+   * nature
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.nature
+   */
+  self.nature = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'nature', randomize);
+  };
+  /**
+   * sports
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.sports
+   */
+  self.sports = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'sports', randomize);
+  };
+  /**
+   * technics
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.technics
+   */
+  self.technics = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'technics', randomize);
+  };
+  /**
+   * transport
+   *
+   * @param {number} width
+   * @param {number} height
+   * @param {boolean} randomize
+   * @method faker.image.transport
+   */
+  self.transport = function (width, height, randomize) {
+    return faker.image.imageUrl(width, height, 'transport', randomize);
+  };
+  /**
+   * dataUri
+   *
+   * @param {number} width
+   * @param {number} height
+   * @method faker.image.dataurl
+   */
+  self.dataUri = function (width, height) {
+    var rawPrefix = 'data:image/svg+xml;charset=UTF-8,';
+    var svgString = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" width="' + width + '" height="' + height + '"> <rect width="100%" height="100%" fill="grey"/>  <text x="0" y="20" font-size="20" text-anchor="start" fill="white">' + width + 'x' + height + '</text> </svg>';
+    return rawPrefix + encodeURIComponent(svgString);
+  };
+}
+
+module["exports"] = Image;
+},{}],13:[function(require,module,exports){
+/*
+
+   this index.js file is used for including the faker library as a CommonJS module, instead of a bundle
+
+   you can include the faker library into your existing node.js application by requiring the entire /faker directory
+
+    var faker = require(./faker);
+    var randomName = faker.name.findName();
+
+   you can also simply include the "faker.js" file which is the auto-generated bundled version of the faker library
+
+    var faker = require(./customAppPath/faker);
+    var randomName = faker.name.findName();
+
+
+  if you plan on modifying the faker library you should be performing your changes in the /lib/ directory
+
+*/
+
+/**
+ *
+ * @namespace faker
+ */
+function Faker (opts) {
+
+  var self = this;
+
+  opts = opts || {};
+
+  // assign options
+  var locales = self.locales || opts.locales || {};
+  var locale = self.locale || opts.locale || "en";
+  var localeFallback = self.localeFallback || opts.localeFallback || "en";
+
+  self.locales = locales;
+  self.locale = locale;
+  self.localeFallback = localeFallback;
+
+  self.definitions = {};
+
+  function bindAll(obj) {
+      Object.keys(obj).forEach(function(meth) {
+          if (typeof obj[meth] === 'function') {
+              obj[meth] = obj[meth].bind(obj);
+          }
+      });
+      return obj;
+  }
+
+  var Fake = require('./fake');
+  self.fake = new Fake(self).fake;
+
+  var Random = require('./random');
+  self.random = bindAll(new Random(self));
+
+  var Helpers = require('./helpers');
+  self.helpers = new Helpers(self);
+
+  var Name = require('./name');
+  self.name = bindAll(new Name(self));
+
+  var Address = require('./address');
+  self.address = bindAll(new Address(self));
+
+  var Company = require('./company');
+  self.company = bindAll(new Company(self));
+
+  var Finance = require('./finance');
+  self.finance = bindAll(new Finance(self));
+
+  var Image = require('./image');
+  self.image = bindAll(new Image(self));
+
+  var Lorem = require('./lorem');
+  self.lorem = bindAll(new Lorem(self));
+
+  var Hacker = require('./hacker');
+  self.hacker = bindAll(new Hacker(self));
+
+  var Internet = require('./internet');
+  self.internet = bindAll(new Internet(self));
+
+  var Database = require('./database');
+  self.database = bindAll(new Database(self));
+
+  var Phone = require('./phone_number');
+  self.phone = bindAll(new Phone(self));
+
+  var _Date = require('./date');
+  self.date = bindAll(new _Date(self));
+
+  var Commerce = require('./commerce');
+  self.commerce = bindAll(new Commerce(self));
+
+  var System = require('./system');
+  self.system = bindAll(new System(self));
+
+  var _definitions = {
+    "name": ["first_name", "last_name", "prefix", "suffix", "title", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"],
+    "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "postcode"],
+    "company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb", "suffix"],
+    "lorem": ["words"],
+    "hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb"],
+    "phone_number": ["formats"],
+    "finance": ["account_type", "transaction_type", "currency", "iban"],
+    "internet": ["avatar_uri", "domain_suffix", "free_email", "example_email", "password"],
+    "commerce": ["color", "department", "product_name", "price", "categories"],
+    "database": ["collation", "column", "engine", "type"],
+    "system": ["mimeTypes"],
+    "date": ["month", "weekday"],
+    "title": "",
+    "separator": ""
+  };
+
+  // Create a Getter for all definitions.foo.bar properties
+  Object.keys(_definitions).forEach(function(d){
+    if (typeof self.definitions[d] === "undefined") {
+      self.definitions[d] = {};
+    }
+
+    if (typeof _definitions[d] === "string") {
+        self.definitions[d] = _definitions[d];
+      return;
+    }
+
+    _definitions[d].forEach(function(p){
+      Object.defineProperty(self.definitions[d], p, {
+        get: function () {
+          if (typeof self.locales[self.locale][d] === "undefined" || typeof self.locales[self.locale][d][p] === "undefined") {
+            // certain localization sets contain less data then others.
+            // in the case of a missing definition, use the default localeFallback to substitute the missing set data
+            // throw new Error('unknown property ' + d + p)
+            return self.locales[localeFallback][d][p];
+          } else {
+            // return localized data
+            return self.locales[self.locale][d][p];
+          }
+        }
+      });
+    });
+  });
+
+};
+
+Faker.prototype.seed = function(value) {
+  var Random = require('./random');
+  this.seedValue = value;
+  this.random = new Random(this, this.seedValue);
+}
+module['exports'] = Faker;
+
+},{"./address":2,"./commerce":3,"./company":4,"./database":5,"./date":6,"./fake":7,"./finance":8,"./hacker":9,"./helpers":10,"./image":12,"./internet":14,"./lorem":1042,"./name":1043,"./phone_number":1044,"./random":1045,"./system":1046}],14:[function(require,module,exports){
+var random_ua = require('../vendor/user-agent');
+
+/**
+ *
+ * @namespace faker.internet
+ */
+var Internet = function (faker) {
+  var self = this;
+  /**
+   * avatar
+   *
+   * @method faker.internet.avatar
+   */
+  self.avatar = function () {
+      return faker.random.arrayElement(faker.definitions.internet.avatar_uri);
+  };
+
+  self.avatar.schema = {
+    "description": "Generates a URL for an avatar.",
+    "sampleResults": ["https://s3.amazonaws.com/uifaces/faces/twitter/igorgarybaldi/128.jpg"]
+  };
+
+  /**
+   * email
+   *
+   * @method faker.internet.email
+   * @param {string} firstName
+   * @param {string} lastName
+   * @param {string} provider
+   */
+  self.email = function (firstName, lastName, provider) {
+      provider = provider || faker.random.arrayElement(faker.definitions.internet.free_email);
+      return  faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider;
+  };
+
+  self.email.schema = {
+    "description": "Generates a valid email address based on optional input criteria",
+    "sampleResults": ["foo.bar@gmail.com"],
+    "properties": {
+      "firstName": {
+        "type": "string",
+        "required": false,
+        "description": "The first name of the user"
+      },
+      "lastName": {
+        "type": "string",
+        "required": false,
+        "description": "The last name of the user"
+      },
+      "provider": {
+        "type": "string",
+        "required": false,
+        "description": "The domain of the user"
+      }
+    }
+  };
+  /**
+   * exampleEmail
+   *
+   * @method faker.internet.exampleEmail
+   * @param {string} firstName
+   * @param {string} lastName
+   */
+  self.exampleEmail = function (firstName, lastName) {
+      var provider = faker.random.arrayElement(faker.definitions.internet.example_email);
+      return self.email(firstName, lastName, provider);
+  };
+
+  /**
+   * userName
+   *
+   * @method faker.internet.userName
+   * @param {string} firstName
+   * @param {string} lastName
+   */
+  self.userName = function (firstName, lastName) {
+      var result;
+      firstName = firstName || faker.name.firstName();
+      lastName = lastName || faker.name.lastName();
+      switch (faker.random.number(2)) {
+      case 0:
+          result = firstName + faker.random.number(99);
+          break;
+      case 1:
+          result = firstName + faker.random.arrayElement([".", "_"]) + lastName;
+          break;
+      case 2:
+          result = firstName + faker.random.arrayElement([".", "_"]) + lastName + faker.random.number(99);
+          break;
+      }
+      result = result.toString().replace(/'/g, "");
+      result = result.replace(/ /g, "");
+      return result;
+  };
+
+  self.userName.schema = {
+    "description": "Generates a username based on one of several patterns. The pattern is chosen randomly.",
+    "sampleResults": [
+      "Kirstin39",
+      "Kirstin.Smith",
+      "Kirstin.Smith39",
+      "KirstinSmith",
+      "KirstinSmith39",
+    ],
+    "properties": {
+      "firstName": {
+        "type": "string",
+        "required": false,
+        "description": "The first name of the user"
+      },
+      "lastName": {
+        "type": "string",
+        "required": false,
+        "description": "The last name of the user"
+      }
+    }
+  };
+
+  /**
+   * protocol
+   *
+   * @method faker.internet.protocol
+   */
+  self.protocol = function () {
+      var protocols = ['http','https'];
+      return faker.random.arrayElement(protocols);
+  };
+
+  self.protocol.schema = {
+    "description": "Randomly generates http or https",
+    "sampleResults": ["https", "http"]
+  };
+
+  /**
+   * url
+   *
+   * @method faker.internet.url
+   */
+  self.url = function () {
+      return faker.internet.protocol() + '://' + faker.internet.domainName();
+  };
+
+  self.url.schema = {
+    "description": "Generates a random URL. The URL could be secure or insecure.",
+    "sampleResults": [
+      "http://rashawn.name",
+      "https://rashawn.name"
+    ]
+  };
+
+  /**
+   * domainName
+   *
+   * @method faker.internet.domainName
+   */
+  self.domainName = function () {
+      return faker.internet.domainWord() + "." + faker.internet.domainSuffix();
+  };
+
+  self.domainName.schema = {
+    "description": "Generates a random domain name.",
+    "sampleResults": ["marvin.org"]
+  };
+
+  /**
+   * domainSuffix
+   *
+   * @method faker.internet.domainSuffix
+   */
+  self.domainSuffix = function () {
+      return faker.random.arrayElement(faker.definitions.internet.domain_suffix);
+  };
+
+  self.domainSuffix.schema = {
+    "description": "Generates a random domain suffix.",
+    "sampleResults": ["net"]
+  };
+
+  /**
+   * domainWord
+   *
+   * @method faker.internet.domainWord
+   */
+  self.domainWord = function () {
+      return faker.name.firstName().replace(/([\\~#&*{}/:<>?|\"'])/ig, '').toLowerCase();
+  };
+
+  self.domainWord.schema = {
+    "description": "Generates a random domain word.",
+    "sampleResults": ["alyce"]
+  };
+
+  /**
+   * ip
+   *
+   * @method faker.internet.ip
+   */
+  self.ip = function () {
+      var randNum = function () {
+          return (faker.random.number(255)).toFixed(0);
+      };
+
+      var result = [];
+      for (var i = 0; i < 4; i++) {
+          result[i] = randNum();
+      }
+
+      return result.join(".");
+  };
+
+  self.ip.schema = {
+    "description": "Generates a random IP.",
+    "sampleResults": ["97.238.241.11"]
+  };
+
+  /**
+   * ipv6
+   *
+   * @method faker.internet.ipv6
+   */
+  self.ipv6 = function () {
+      var randHash = function () {
+          var result = "";
+          for (var i = 0; i < 4; i++) {
+            result += (faker.random.arrayElement(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"]));
+          }
+          return result
+      };
+
+      var result = [];
+      for (var i = 0; i < 8; i++) {
+        result[i] = randHash();
+      }
+      return result.join(":");
+  };
+
+  self.ipv6.schema = {
+    "description": "Generates a random IPv6 address.",
+    "sampleResults": ["2001:0db8:6276:b1a7:5213:22f1:25df:c8a0"]
+  };
+
+  /**
+   * userAgent
+   *
+   * @method faker.internet.userAgent
+   */
+  self.userAgent = function () {
+    return random_ua.generate();
+  };
+
+  self.userAgent.schema = {
+    "description": "Generates a random user agent.",
+    "sampleResults": ["Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_5 rv:6.0; SL) AppleWebKit/532.0.1 (KHTML, like Gecko) Version/7.1.6 Safari/532.0.1"]
+  };
+
+  /**
+   * color
+   *
+   * @method faker.internet.color
+   * @param {number} baseRed255
+   * @param {number} baseGreen255
+   * @param {number} baseBlue255
+   */
+  self.color = function (baseRed255, baseGreen255, baseBlue255) {
+      baseRed255 = baseRed255 || 0;
+      baseGreen255 = baseGreen255 || 0;
+      baseBlue255 = baseBlue255 || 0;
+      // based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette
+      var red = Math.floor((faker.random.number(256) + baseRed255) / 2);
+      var green = Math.floor((faker.random.number(256) + baseGreen255) / 2);
+      var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2);
+      var redStr = red.toString(16);
+      var greenStr = green.toString(16);
+      var blueStr = blue.toString(16);
+      return '#' +
+        (redStr.length === 1 ? '0' : '') + redStr +
+        (greenStr.length === 1 ? '0' : '') + greenStr +
+        (blueStr.length === 1 ? '0': '') + blueStr;
+
+  };
+
+  self.color.schema = {
+    "description": "Generates a random hexadecimal color.",
+    "sampleResults": ["#06267f"],
+    "properties": {
+      "baseRed255": {
+        "type": "number",
+        "required": false,
+        "description": "The red value. Valid values are 0 - 255."
+      },
+      "baseGreen255": {
+        "type": "number",
+        "required": false,
+        "description": "The green value. Valid values are 0 - 255."
+      },
+      "baseBlue255": {
+        "type": "number",
+        "required": false,
+        "description": "The blue value. Valid values are 0 - 255."
+      }
+    }
+  };
+
+  /**
+   * mac
+   *
+   * @method faker.internet.mac
+   */
+  self.mac = function(){
+      var i, mac = "";
+      for (i=0; i < 12; i++) {
+          mac+= faker.random.number(15).toString(16);
+          if (i%2==1 && i != 11) {
+              mac+=":";
+          }
+      }
+      return mac;
+  };
+
+  self.mac.schema = {
+    "description": "Generates a random mac address.",
+    "sampleResults": ["78:06:cc:ae:b3:81"]
+  };
+
+  /**
+   * password
+   *
+   * @method faker.internet.password
+   * @param {number} len
+   * @param {boolean} memorable
+   * @param {string} pattern
+   * @param {string} prefix
+   */
+   self.password = function (len, memorable, pattern, prefix) {
+     len = len || 15;
+     if (typeof memorable === "undefined") {
+       memorable = false;
+     }
+     /*
+      * password-generator ( function )
+      * Copyright(c) 2011-2013 Bermi Ferrer <bermi@bermilabs.com>
+      * MIT Licensed
+      */
+     var consonant, letter, password, vowel;
+     letter = /[a-zA-Z]$/;
+     vowel = /[aeiouAEIOU]$/;
+     consonant = /[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/;
+     var _password = function (length, memorable, pattern, prefix) {
+       var char, n;
+       if (length == null) {
+         length = 10;
+       }
+       if (memorable == null) {
+         memorable = true;
+       }
+       if (pattern == null) {
+         pattern = /\w/;
+       }
+       if (prefix == null) {
+         prefix = '';
+       }
+       if (prefix.length >= length) {
+         return prefix;
+       }
+       if (memorable) {
+         if (prefix.match(consonant)) {
+           pattern = vowel;
+         } else {
+           pattern = consonant;
+         }
+       }
+       n = faker.random.number(94) + 33;
+       char = String.fromCharCode(n);
+       if (memorable) {
+         char = char.toLowerCase();
+       }
+       if (!char.match(pattern)) {
+         return _password(length, memorable, pattern, prefix);
+       }
+       return _password(length, memorable, pattern, "" + prefix + char);
+     };
+     return _password(len, memorable, pattern, prefix);
+   }
+
+  self.password.schema = {
+    "description": "Generates a random password.",
+    "sampleResults": [
+      "AM7zl6Mg",
+      "susejofe"
+    ],
+    "properties": {
+      "length": {
+        "type": "number",
+        "required": false,
+        "description": "The number of characters in the password."
+      },
+      "memorable": {
+        "type": "boolean",
+        "required": false,
+        "description": "Whether a password should be easy to remember."
+      },
+      "pattern": {
+        "type": "regex",
+        "required": false,
+        "description": "A regex to match each character of the password against. This parameter will be negated if the memorable setting is turned on."
+      },
+      "prefix": {
+        "type": "string",
+        "required": false,
+        "description": "A value to prepend to the generated password. The prefix counts towards the length of the password."
+      }
+    }
+  };
+
+};
+
+
+module["exports"] = Internet;
+
+},{"../vendor/user-agent":1048}],15:[function(require,module,exports){
+exports['az'] = require('./locales/az');
+exports['cz'] = require('./locales/cz');
+exports['de'] = require('./locales/de');
+exports['de_AT'] = require('./locales/de_AT');
+exports['de_CH'] = require('./locales/de_CH');
+exports['en'] = require('./locales/en');
+exports['en_AU'] = require('./locales/en_AU');
+exports['en_BORK'] = require('./locales/en_BORK');
+exports['en_CA'] = require('./locales/en_CA');
+exports['en_GB'] = require('./locales/en_GB');
+exports['en_IE'] = require('./locales/en_IE');
+exports['en_IND'] = require('./locales/en_IND');
+exports['en_US'] = require('./locales/en_US');
+exports['en_au_ocker'] = require('./locales/en_au_ocker');
+exports['es'] = require('./locales/es');
+exports['es_MX'] = require('./locales/es_MX');
+exports['fa'] = require('./locales/fa');
+exports['fr'] = require('./locales/fr');
+exports['fr_CA'] = require('./locales/fr_CA');
+exports['ge'] = require('./locales/ge');
+exports['id_ID'] = require('./locales/id_ID');
+exports['it'] = require('./locales/it');
+exports['ja'] = require('./locales/ja');
+exports['ko'] = require('./locales/ko');
+exports['nb_NO'] = require('./locales/nb_NO');
+exports['nep'] = require('./locales/nep');
+exports['nl'] = require('./locales/nl');
+exports['pl'] = require('./locales/pl');
+exports['pt_BR'] = require('./locales/pt_BR');
+exports['ru'] = require('./locales/ru');
+exports['sk'] = require('./locales/sk');
+exports['sv'] = require('./locales/sv');
+exports['tr'] = require('./locales/tr');
+exports['uk'] = require('./locales/uk');
+exports['vi'] = require('./locales/vi');
+exports['zh_CN'] = require('./locales/zh_CN');
+exports['zh_TW'] = require('./locales/zh_TW');
+
+},{"./locales/az":40,"./locales/cz":79,"./locales/de":117,"./locales/de_AT":150,"./locales/de_CH":169,"./locales/en":249,"./locales/en_AU":281,"./locales/en_BORK":289,"./locales/en_CA":297,"./locales/en_GB":310,"./locales/en_IE":320,"./locales/en_IND":332,"./locales/en_US":344,"./locales/en_au_ocker":364,"./locales/es":396,"./locales/es_MX":440,"./locales/fa":459,"./locales/fr":485,"./locales/fr_CA":505,"./locales/ge":531,"./locales/id_ID":560,"./locales/it":597,"./locales/ja":619,"./locales/ko":640,"./locales/nb_NO":670,"./locales/nep":690,"./locales/nl":714,"./locales/pl":754,"./locales/pt_BR":783,"./locales/ru":820,"./locales/sk":860,"./locales/sv":907,"./locales/tr":933,"./locales/uk":966,"./locales/vi":993,"./locales/zh_CN":1016,"./locales/zh_TW":1035}],16:[function(require,module,exports){
+module["exports"] = [
+  "###"
+];
+
+},{}],17:[function(require,module,exports){
+module["exports"] = [
+  "#{Address.city_name}"
+];
+
+},{}],18:[function(require,module,exports){
+module["exports"] = [
+  "Ağcabədi",
+  "Ağdam",
+  "Ağdaş",
+  "Ağdərə",
+  "Ağstafa",
+  "Ağsu",
+  "Astara",
+  "Bakı",
+  "Balakən",
+  "Beyləqan",
+  "Bərdə",
+  "Biləsuvar",
+  "Cəbrayıl",
+  "Cəlilabad",
+  "Culfa",
+  "Daşkəsən",
+  "Dəliməmmədli",
+  "Füzuli",
+  "Gədəbəy",
+  "Gəncə",
+  "Goranboy",
+  "Göyçay",
+  "Göygöl",
+  "Göytəpə",
+  "Hacıqabul",
+  "Horadiz",
+  "Xaçmaz",
+  "Xankəndi",
+  "Xocalı",
+  "Xocavənd",
+  "Xırdalan",
+  "Xızı",
+  "Xudat",
+  "İmişli",
+  "İsmayıllı",
+  "Kəlbəcər",
+  "Kürdəmir",
+  "Qax",
+  "Qazax",
+  "Qəbələ",
+  "Qobustan",
+  "Qovlar",
+  "Quba",
+  "Qubadlı",
+  "Qusar",
+  "Laçın",
+  "Lerik",
+  "Lənkəran",
+  "Liman",
+  "Masallı",
+  "Mingəçevir",
+  "Naftalan",
+  "Naxçıvan (şəhər)",
+  "Neftçala",
+  "Oğuz",
+  "Ordubad",
+  "Saatlı",
+  "Sabirabad",
+  "Salyan",
+  "Samux",
+  "Siyəzən",
+  "Sumqayıt",
+  "Şabran",
+  "Şahbuz",
+  "Şamaxı",
+  "Şəki",
+  "Şəmkir",
+  "Şərur",
+  "Şirvan",
+  "Şuşa",
+  "Tərtər",
+  "Tovuz",
+  "Ucar",
+  "Yardımlı",
+  "Yevlax",
+  "Zaqatala",
+  "Zəngilan",
+  "Zərdab"
+];
+
+},{}],19:[function(require,module,exports){
+module["exports"] = [
+  "Akrotiri və Dekeliya",
+  "Aland adaları",
+  "Albaniya",
+  "Almaniya",
+  "Amerika Samoası",
+  "Andorra",
+  "Angilya",
+  "Anqola",
+  "Antiqua və Barbuda",
+  "Argentina",
+  "Aruba",
+  "Avstraliya",
+  "Avstriya",
+  "Azərbaycan",
+  "Baham adaları",
+  "Banqladeş",
+  "Barbados",
+  "Belçika",
+  "Beliz",
+  "Belarus",
+  "Benin",
+  "Bermud adaları",
+  "BƏƏ",
+  "ABŞ",
+  "Boliviya",
+  "Bolqarıstan",
+  "Bosniya və Herseqovina",
+  "Botsvana",
+  "Böyük Britaniya",
+  "Braziliya",
+  "Bruney",
+  "Burkina-Faso",
+  "Burundi",
+  "Butan",
+  "Bəhreyn",
+  "Cersi",
+  "Cəbəli-Tariq",
+  "CAR",
+  "Cənubi Sudan",
+  "Cənubi Koreya",
+  "Cibuti",
+  "Çad",
+  "Çexiya",
+  "Monteneqro",
+  "Çili",
+  "ÇXR",
+  "Danimarka",
+  "Dominika",
+  "Dominikan Respublikası",
+  "Efiopiya",
+  "Ekvador",
+  "Ekvatorial Qvineya",
+  "Eritreya",
+  "Ermənistan",
+  "Estoniya",
+  "Əfqanıstan",
+  "Əlcəzair",
+  "Farer adaları",
+  "Fələstin Dövləti",
+  "Fici",
+  "Kot-d’İvuar",
+  "Filippin",
+  "Finlandiya",
+  "Folklend adaları",
+  "Fransa",
+  "Fransa Polineziyası",
+  "Gernsi",
+  "Gürcüstan",
+  "Haiti",
+  "Hindistan",
+  "Honduras",
+  "Honkonq",
+  "Xorvatiya",
+  "İndoneziya",
+  "İordaniya",
+  "İraq",
+  "İran",
+  "İrlandiya",
+  "İslandiya",
+  "İspaniya",
+  "İsrail",
+  "İsveç",
+  "İsveçrə",
+  "İtaliya",
+  "Kabo-Verde",
+  "Kamboca",
+  "Kamerun",
+  "Kanada",
+  "Kayman adaları",
+  "Keniya",
+  "Kipr",
+  "Kiribati",
+  "Kokos adaları",
+  "Kolumbiya",
+  "Komor adaları",
+  "Konqo Respublikası",
+  "KDR",
+  "Kosovo",
+  "Kosta-Rika",
+  "Kuba",
+  "Kuk adaları",
+  "Küveyt",
+  "Qabon",
+  "Qambiya",
+  "Qana",
+  "Qətər",
+  "Qayana",
+  "Qazaxıstan",
+  "Qərbi Sahara",
+  "Qırğızıstan",
+  "Qrenada",
+  "Qrenlandiya",
+  "Quam",
+  "Qvatemala",
+  "Qvineya",
+  "Qvineya-Bisau",
+  "Laos",
+  "Latviya",
+  "Lesoto",
+  "Liberiya",
+  "Litva",
+  "Livan",
+  "Liviya",
+  "Lixtenşteyn",
+  "Lüksemburq",
+  "Macarıstan",
+  "Madaqaskar",
+  "Makao",
+  "Makedoniya",
+  "Malavi",
+  "Malayziya",
+  "Maldiv adaları",
+  "Mali",
+  "Malta",
+  "Marşall adaları",
+  "Mavriki",
+  "Mavritaniya",
+  "Mayotta",
+  "Meksika",
+  "Men adası",
+  "Mərakeş",
+  "MAR",
+  "Mikroneziya",
+  "Milad adası",
+  "Misir",
+  "Myanma",
+  "Moldova",
+  "Monako",
+  "Monqolustan",
+  "Montserrat",
+  "Mozambik",
+  "Müqəddəs Yelena, Askenson və Tristan-da-Kunya adaları",
+  "Namibiya",
+  "Nauru",
+  "Nepal",
+  "Niderland",
+  "Niderland Antil adaları",
+  "Niger",
+  "Nigeriya",
+  "Nikaraqua",
+  "Niue",
+  "Norfolk adası",
+  "Norveç",
+  "Oman",
+  "Özbəkistan",
+  "Pakistan",
+  "Palau",
+  "Panama",
+  "Papua-Yeni Qvineya",
+  "Paraqvay",
+  "Peru",
+  "Pitkern adaları",
+  "Polşa",
+  "Portuqaliya",
+  "Prednestroviya",
+  "Puerto-Riko",
+  "Ruanda",
+  "Rumıniya",
+  "Rusiya",
+  "Salvador",
+  "Samoa",
+  "San-Marino",
+  "San-Tome və Prinsipi",
+  "Seneqal",
+  "Sen-Bartelemi",
+  "Sent-Kits və Nevis",
+  "Sent-Lüsiya",
+  "Sen-Marten",
+  "Sen-Pyer və Mikelon",
+  "Sent-Vinsent və Qrenadina",
+  "Serbiya",
+  "Seyşel adaları",
+  "Səudiyyə Ərəbistanı",
+  "Sinqapur",
+  "Slovakiya",
+  "Sloveniya",
+  "Solomon adaları",
+  "Somali",
+  "Somalilend",
+  "Sudan",
+  "Surinam",
+  "Suriya",
+  "Svazilend",
+  "Syerra-Leone",
+  "Şərqi Timor",
+  "Şimali Marian adaları",
+  "Şpisbergen və Yan-Mayen",
+  "Şri-Lanka",
+  "Tacikistan",
+  "Tanzaniya",
+  "Tailand",
+  "Çin Respublikası",
+  "Törks və Kaykos adaları",
+  "Tokelau",
+  "Tonqa",
+  "Toqo",
+  "Trinidad və Tobaqo",
+  "Tunis",
+  "Tuvalu",
+  "Türkiyə",
+  "Türkmənistan",
+  "Ukrayna",
+  "Uollis və Futuna",
+  "Uqanda",
+  "Uruqvay",
+  "Vanuatu",
+  "Vatikan",
+  "Venesuela",
+  "Amerika Virgin adaları",
+  "Britaniya Virgin adaları",
+  "Vyetnam",
+  "Yamayka",
+  "Yaponiya",
+  "Yeni Kaledoniya",
+  "Yeni Zelandiya",
+  "Yəmən",
+  "Yunanıstan",
+  "Zambiya",
+  "Zimbabve"
+];
+
+},{}],20:[function(require,module,exports){
+module["exports"] = [
+  "Azərbaycan"
+];
+
+},{}],21:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.street_title = require("./street_title");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":16,"./city":17,"./city_name":18,"./country":19,"./default_country":20,"./postcode":22,"./secondary_address":23,"./state":24,"./street_address":25,"./street_name":26,"./street_suffix":27,"./street_title":28}],22:[function(require,module,exports){
+module["exports"] = [
+  "AZ####"
+];
+
+},{}],23:[function(require,module,exports){
+module["exports"] = [
+  "m. ###"
+];
+
+},{}],24:[function(require,module,exports){
+module["exports"] = [
+
+];
+
+},{}],25:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name}, #{building_number}"
+];
+
+},{}],26:[function(require,module,exports){
+module["exports"] = [
+  "#{street_suffix} #{Address.street_title}",
+  "#{Address.street_title} #{street_suffix}"
+];
+
+},{}],27:[function(require,module,exports){
+module["exports"] = [
+  "küç.",
+  "küçəsi",
+  "prospekti",
+  "pr.",
+  "sahəsi",
+  "sh."
+];
+
+},{}],28:[function(require,module,exports){
+module["exports"] = [
+  "Abbas Fətullayev",
+  "Abbas Mirzə Şərifzadə",
+  "Abbas Səhhət",
+  "Abdulla Şaiq",
+  "Afiyəddin Cəlilov",
+  "Axundov",
+  "Ağa Nemətulla",
+  "Ağadadaş Qurbanov",
+  "Akademik Həsən Əliyev",
+  "Akademik Lətif İmanov",
+  "Alı Mustafayev",
+  "Almas İldırım",
+  "Asəf Zeynallı",
+  "Asif Əsədullayev",
+  "Aşıq Alı",
+  "Aşıq Ələsgər",
+  "Azadlıq prospekti",
+  "Bakıxanov",
+  "Balababa Məcidov",
+  "Balaəmi Dadaşov",
+  "Behbud Şaxtantinski",
+  "Bəkir Çobanzadə",
+  "Bəsti Bağırova",
+  "Bəşir Səfəroğlu",
+  "Böyük Qala",
+  "Cabir Əliyev",
+  "Camal Hacıəliyev",
+  "Cavadxan",
+  "Cavanşir",
+  "Ceyhun Səlimov",
+  "Ceyhunbəy Hacıbəyli",
+  "Cəbiyev",
+  "Cəfər Xəndan",
+  "Cəfər Cabbarlı",
+  "Cəlal Qurbanov",
+  "Cəlil Məmmədquluzadə",
+  "Çingiz Mustafayev",
+  "Çobanzadə",
+  "Dadaş Bünyadzadə",
+  "Dağlı Yunus",
+  "Dilarə Əliyeva",
+  "Elçin Əzimov",
+  "Eldar və Abdulla Əlibəyovlar",
+  "Elxan Həsənov",
+  "Elşən Mehdiyev",
+  "Elşən Süleymanov",
+  "Etibar Bəkirov",
+  "Əbdüləzəl Dəmirçizadə",
+  "Əbdülhəsən Anaplı",
+  "Əbdülkərim Əlizadə",
+  "Əhməd bəy Ağaoğlu",
+  "Əhməd Cavad",
+  "Əhməd Cəmil",
+  "Əhməd Mehbalıyev",
+  "Əhməd Rəcəbli",
+  "Əjdər Xanbabayev",
+  "Əkrəm Cəfərov",
+  "Ələsgər Qayıbov",
+  "Əliağa Vahid",
+  "Əli Bəy Hüseynzadə",
+  "Əlimərdan bəy Topçubaşov",
+  "Əliyar Əliyev",
+  "Əlövsət Abdulrəhimov",
+  "Əlövsət Quliyev",
+  "Əmir Bağırov",
+  "Əsəd Əhmədov",
+  "Əşrəf Yunusov",
+  "Əzim Əzimzadə",
+  "Əziz Əliyev",
+  "Heybət Heybətov",
+  "Həqiqət Rzayeva",
+  "Həmid Araslı",
+  "Hənifə Ələsgərova",
+  "Hərbçilər",
+  "Həsənoğu",
+  "Həsən Seyidbəyli",
+  "Hətəm Allahverdiyev",
+  "Həzi Aslanov",
+  "Hüsü Hacıyev",
+  "Hüseynqulu Sarabski",
+  "Fətəli xan Xoyski",
+  "Fəzail Bayramov",
+  "Fikrət Əmirov",
+  "Fuad İbrahimbəyov",
+  "Fuad Yusifov",
+  "General Əliağa Şıxlinski",
+  "Gülayə Qədirbəyova",
+  "Gənclik",
+  "Xaqani",
+  "Xan Şuşinski",
+  "Xanlar",
+  "Xudu Məmmədov",
+  "İbrahimpaşa Dadaşov",
+  "İdris Süleymanov",
+  "İlqar Abbasov",
+  "İlqar İsmayılov",
+  "İmran Qasımov",
+  "İnqilab İsmayılov",
+  "İsfəndiyar Zülalov",
+  "İslam Abışov",
+  "İslam Səfərli",
+  "İsmayıl bəy Qutqaşınlı",
+  "İsmayıl Mirzəgülov",
+  "İstiqlaliyyət",
+  "28 May",
+  "İsgəndərov",
+  "İvan Turgenev",
+  "İzmir",
+  "İzzət Həmidov",
+  "İzzət Orucova",
+  "Kamal Rəhimov",
+  "Kazım Kazımzadə",
+  "Kazımağa Kərimov",
+  "Kərəm İsmayılov",
+  "Kiçik Qala",
+  "Koroğlu Rəhimov",
+  "Qaçaq Nəbi",
+  "Qarabağ",
+  "Qədirbəyov",
+  "Qəzənfər Musabəyov",
+  "Qəzənfər Vəliyev",
+  "Leyla Məmmədbəyova",
+  "Mahmud İbrahimov",
+  "Malik Məmmədov",
+  "Mehdi Abbasov",
+  "Mehdi Mehdizadə",
+  "Məhəmməd Əmin Rəsulzadə",
+  "Məhəmməd Hadi",
+  "Məhəmməd Xiyabani",
+  "Məhəmməd ibn Hinduşah Naxçıvani",
+  "Məhsəti Gəncəvi",
+  "Məmmədyarov",
+  "Mərdanov qardaşları",
+  "Mətləb Ağayev",
+  "Məşədi Hilal",
+  "Məzahir Rüstəmov",
+  "Mikayıl Müşviq",
+  "Mingəçevir",
+  "Mirəli Qaşqay",
+  "Mirəli Seyidov",
+  "Mirzağa Əliyev",
+  "Mirzə İbrahimov",
+  "Mirzə Mənsur",
+  "Mirzə Mustafayev",
+  "Murtuza Muxtarov",
+  "Mustafa Topçubaşov",
+  "Müqtədir Aydınbəyov",
+  "Müslüm Maqomayev",
+  "Müzəffər Həsənov",
+  "Nabat Aşurbəyova",
+  "Naxçıvani",
+  "Naximov",
+  "Nazim İsmaylov",
+  "Neapol",
+  "Neftçi Qurban Abbasov",
+  "Neftçilər prospekti",
+  "Nəcəfbəy Vəzirov",
+  "Nəcəfqulu Rəfiyev",
+  "Nəriman Nərimanov",
+  "Nəsirəddin Tusi",
+  "Nigar Rəfibəyli",
+  "Niyazi",
+  "Nizami",
+  "Nizami Abdullayev",
+  "Nobel prospekti",
+  "Novruz",
+  "Novruzov qardaşları",
+  "Oqtay Vəliyev",
+  "Parlament",
+  "Puşkin",
+  "Rafiq Ağayev",
+  "Ramiz Qəmbərov",
+  "Rəşid Behbudov",
+  "Rəşid Məcidov",
+  "Ruhulla Axundov",
+  "Ruslan Allahverdiyev",
+  "Rüstəm Rüstəmov",
+  "Tahir Bağırov",
+  "Tarzan Hacı Məmmədov",
+  "Tbilisi prospekti",
+  "Təbriz (Bakı)",
+  "Təbriz Xəlilbəyli",
+  "Tofiq Məmmədov",
+  "Tolstoy",
+  "Sabit Orucov",
+  "Sabit Rəhman",
+  "Sahib Hümmətov",
+  "Salatın Əsgərova",
+  "Sarayevo",
+  "Seyid Əzim Şirvani",
+  "Seyid Şuşinski",
+  "Seyidov",
+  "Səməd bəy Mehmandarov",
+  "Səməd Vurğun",
+  "Səttar Bəhlulzadə",
+  "Sona xanım Vəlixanlı",
+  "Sübhi Salayev",
+  "Süleyman Əhmədov",
+  "Süleyman Rəhimov",
+  "Süleyman Rüstəm",
+  "Süleyman Sani Axundov",
+  "Süleyman Vəzirov",
+  "Şahin Səmədov",
+  "Şamil Əzizbəyov",
+  "Şamil Kamilov",
+  "Şeyx Şamil",
+  "Şəfayət Mehdiyev",
+  "Şəmsi Bədəlbəyli",
+  "Şirin Mirzəyev",
+  "Şıxəli Qurbanov",
+  "Şövkət Ələkbərova",
+  "Ülvi Bünyadzadə",
+  "Üzeyir Hacıbəyov",
+  "Vasif Əliyev",
+  "Vəli Məmmədov",
+  "Vladislav Plotnikov",
+  "Vüqar Quliyev",
+  "Vunq Tau",
+  "Yaqub Əliyev",
+  "Yaşar Abdullayev",
+  "Yaşar Əliyev",
+  "Yavər Əliyev",
+  "Yesenin",
+  "Yəhya Hüseynov",
+  "Yılmaz Axundzadə",
+  "Yüsif Eyvazov",
+  "Yusif Qasımov",
+  "Yusif Məmmədəliyev",
+  "Yusif Səfərov",
+  "Yusif Vəzir Çəmənzəminli",
+  "Zahid Əliyev",
+  "Zahid Xəlilov",
+  "Zaur Kərimov",
+  "Zavod",
+  "Zərgərpalan"
+];
+
+},{}],29:[function(require,module,exports){
+module["exports"] = [
+  "ala",
+  "açıq bənövşəyi",
+  "ağ",
+  "mavi",
+  "boz",
+  "bənövşəyi",
+  "göy rəng",
+  "gümüşü",
+  "kardinal",
+  "narıncı",
+  "qara",
+  "qırmızı",
+  "qəhvəyi",
+  "tünd göy",
+  "tünd qırmızı",
+  "xlorofil",
+  "yaşıl",
+  "çəhrayı"
+];
+
+},{}],30:[function(require,module,exports){
+module["exports"] = [
+  "Kitablar",
+  "Filmlər",
+  "musiqi",
+  "oyunlar",
+  "Elektronika",
+  "Kompyuterlər",
+  "Ev",
+  "садинструмент",
+  "Səhiyyə",
+  "gözəllik",
+  "Oyuncaqlar",
+  "uşaq üçün",
+  "Geyim",
+  "Ayyaqqabı",
+  "bəzək",
+  "İdman",
+  "turizm",
+  "Avtomobil",
+];
+
+},{}],31:[function(require,module,exports){
+var commerce = {};
+module['exports'] = commerce;
+commerce.color = require("./color");
+commerce.department = require("./department");
+commerce.product_name = require("./product_name");
+
+},{"./color":29,"./department":30,"./product_name":32}],32:[function(require,module,exports){
+module["exports"] = {
+  "adjective": [
+    "Balaca",
+    "Ergonomik",
+    "Kobud",
+    "İntellektual",
+    "Möhtəşəm",
+    "İnanılmaz",
+    "Fantastik",
+    "Əlverişli",
+    "Parlaq",
+    "Mükəmməl"
+  ],
+  "material": [
+    "Polad",
+    "Ağac",
+    "Beton",
+    "Plastik",
+    "Pambıq",
+    "Qranit",
+    "Rezin"
+  ],
+  "product": [
+    "Stul",
+    "Avtomobil",
+    "Kompyuter",
+    "Beret",
+    "Kulon",
+    "Stol",
+    "Sviter",
+    "Kəmər",
+  ]
+};
+
+},{}],33:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.prefix = require("./prefix");
+company.suffix = require("./suffix");
+company.name = require("./name");
+
+},{"./name":34,"./prefix":35,"./suffix":36}],34:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{Name.female_first_name}",
+  "#{prefix} #{Name.male_first_name}",
+  "#{prefix} #{Name.male_last_name}",
+  "#{prefix} #{suffix}#{suffix}",
+  "#{prefix} #{suffix}#{suffix}#{suffix}",
+  "#{prefix} #{Address.city_name}#{suffix}",
+  "#{prefix} #{Address.city_name}#{suffix}#{suffix}",
+  "#{prefix} #{Address.city_name}#{suffix}#{suffix}#{suffix}"
+];
+
+},{}],35:[function(require,module,exports){
+module["exports"] = [
+  "ASC",
+  "MMC",
+  "QSC",
+];
+
+},{}],36:[function(require,module,exports){
+module.exports=require(24)
+},{"/Users/a/dev/faker.js/lib/locales/az/address/state.js":24}],37:[function(require,module,exports){
+var date = {};
+module["exports"] = date;
+date.month = require("./month");
+date.weekday = require("./weekday");
+
+},{"./month":38,"./weekday":39}],38:[function(require,module,exports){
+// source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/ru.xml#L1734
+module["exports"] = {
+  wide: [
+    "yanvar",
+    "fevral",
+    "mart",
+    "aprel",
+    "may",
+    "iyun",
+    "iyul",
+    "avqust",
+    "sentyabr",
+    "oktyabr",
+    "noyabr",
+    "dekabr"
+  ],
+  wide_context: [
+    "января",
+    "февраля",
+    "марта",
+    "апреля",
+    "мая",
+    "июня",
+    "июля",
+    "августа",
+    "сентября",
+    "октября",
+    "ноября",
+    "декабря"
+  ],
+  abbr: [
+    "янв.",
+    "февр.",
+    "март",
+    "апр.",
+    "май",
+    "июнь",
+    "июль",
+    "авг.",
+    "сент.",
+    "окт.",
+    "нояб.",
+    "дек."
+  ],
+  abbr_context: [
+    "янв.",
+    "февр.",
+    "марта",
+    "апр.",
+    "мая",
+    "июня",
+    "июля",
+    "авг.",
+    "сент.",
+    "окт.",
+    "нояб.",
+    "дек."
+  ]
+};
+
+},{}],39:[function(require,module,exports){
+// source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/ru.xml#L1825
+module["exports"] = {
+  wide: [
+    "Bazar",
+    "Bazar ertəsi",
+    "Çərşənbə axşamı",
+    "Çərşənbə",
+    "Cümə axşamı",
+    "Cümə",
+    "Şənbə"
+  ],
+  wide_context: [
+    "воскресенье",
+    "понедельник",
+    "вторник",
+    "среда",
+    "четверг",
+    "пятница",
+    "суббота"
+  ],
+  abbr: [
+    "Ba",
+    "BE",
+    "ÇA",
+    "Çə",
+    "CA",
+    "Cü",
+    "Şə"
+  ],
+  abbr_context: [
+    "вс",
+    "пн",
+    "вт",
+    "ср",
+    "чт",
+    "пт",
+    "сб"
+  ]
+};
+
+},{}],40:[function(require,module,exports){
+var az = {};
+module['exports'] = az;
+az.title = "Azerbaijani";
+az.separator = " və ";
+az.address = require("./address");
+az.internet = require("./internet");
+az.name = require("./name");
+az.phone_number = require("./phone_number");
+az.commerce = require("./commerce");
+az.company = require("./company");
+az.date = require("./date");
+
+},{"./address":21,"./commerce":31,"./company":33,"./date":37,"./internet":43,"./name":46,"./phone_number":53}],41:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "az",
+  "com.az",
+  "info",
+  "net",
+  "org"
+];
+
+},{}],42:[function(require,module,exports){
+module["exports"] = [
+  "box.az",
+  "mail.az",
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com"
+];
+
+},{}],43:[function(require,module,exports){
+var internet = {};
+module['exports'] = internet;
+internet.free_email = require("./free_email");
+internet.domain_suffix = require("./domain_suffix");
+
+},{"./domain_suffix":41,"./free_email":42}],44:[function(require,module,exports){
+module["exports"] = [
+  "Anna",
+  "Adeliya",
+  "Afaq",
+  "Afət",
+  "Afərim",
+  "Aidə",
+  "Aygün",
+  "Aynur",
+  "Alsu",
+  "Ayan",
+  "Aytən",
+  "Aygül",
+  "Aydan",
+  "Aylin",
+  "Bahar",
+  "Banu",
+  "Bəyaz",
+  "Billurə",
+  "Cansu",
+  "Ceyla",
+  "Damla",
+  "Dəniz",
+  "Diana",
+  "Dilarə",
+  "Ella",
+  "Elza",
+  "Elyanora",
+  "Ellada",
+  "Elvira",
+  "Elnarə",
+  "Esmira",
+  "Estella",
+  "Fatimə",
+  "Fəxriyyə",
+  "Fərəh",
+  "Fərqanə",
+  "Fidan",
+  "Firuzə",
+  "Gövhər",
+  "Günay",
+  "Gülay",
+  "Gülçin",
+  "Gülər",
+  "Gülsüm",
+  "Humay",
+  "Hüriyə",
+  "Hülya",
+  "Jalə",
+  "Jasmin",
+  "Kübra",
+  "Ləman",
+  "Lamiyə",
+  "Lalə",
+  "Liliya",
+  "Laura",
+  "Leyla",
+  "Maya",
+  "Mehriban",
+  "Mələk",
+  "Nuray",
+  "Nurgün",
+  "Nərgiz",
+  "Nigar",
+  "Ofelya",
+  "Pəri",
+  "Röya",
+  "Səbinə",
+  "Selcan",
+  "Tansu",
+  "Tuba",
+  "Ülviyyə",
+  "Ulduz",
+  "Ülkər"
+];
+
+},{}],45:[function(require,module,exports){
+module["exports"] = [
+  "Qasımova",
+  "Əfəndiyeva",
+  "Soltanova",
+  "Abdullayeva",
+  "Rəşidova",
+  "Ələkbərova",
+  "Əliyeva",
+  "Tahirova",
+  "Seyidova",
+  "Vəsiyeva"
+];
+
+},{}],46:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.male_first_name = require("./male_first_name");
+name.male_last_name = require("./male_last_name");
+name.female_first_name = require("./female_first_name");
+name.female_last_name = require("./female_last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.name = require("./name");
+
+},{"./female_first_name":44,"./female_last_name":45,"./male_first_name":47,"./male_last_name":48,"./name":49,"./prefix":50,"./suffix":51}],47:[function(require,module,exports){
+module["exports"] = [
+  "Anar",
+  "Amid",
+  "Afəl",
+  "Abbas",
+  "Abdulla",
+  "Adil",
+  "Akif",
+  "Aqil",
+  "Bəhram",
+  "Nurlan",
+  "Rafiq",
+  "Tərlan",
+  "Zaur",
+  "Emin",
+  "Emil",
+  "Kamran",
+  "Elnur",
+  "Natiq",
+  "Rəşad",
+  "Rəşid",
+  "Tahir",
+  "Əhməd",
+  "Zahir",
+  "İlham",
+  "İlqar",
+  "Nahid",
+  "Nihad",
+  "Faiq",
+  "İxtiyar",
+  "Şəhriyar",
+  "Şaiq",
+  "Bəxtiyar",
+  "Bəhruz",
+  "Tunar",
+  "Nadir"
+];
+
+},{}],48:[function(require,module,exports){
+module["exports"] = [
+  "Əhmədov",
+  "Ələkbərov",
+  "Əliyev",
+  "Vəliyev",
+  "Soltanov",
+  "Quliyev",
+  "Məmmədov",
+  "Xəlilov",
+  "Nəzərov",
+  "Rəhimov"
+];
+
+},{}],49:[function(require,module,exports){
+module["exports"] = [
+  "#{male_first_name}",
+  "#{male_last_name} #{male_first_name}",
+  "#{male_first_name} #{male_last_name}",
+  "#{female_first_name}",
+  "#{female_first_name} #{female_last_name}",
+  "#{female_last_name} #{female_first_name}",
+];
+
+},{}],50:[function(require,module,exports){
+module["exports"] = [];
+
+},{}],51:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],52:[function(require,module,exports){
+module["exports"] = [
+  "(9##)###-##-##"
+];
+
+},{}],53:[function(require,module,exports){
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.formats = require("./formats");
+
+},{"./formats":52}],54:[function(require,module,exports){
+module["exports"] = [
+  "#",
+  "##",
+  "###"
+];
+
+},{}],55:[function(require,module,exports){
+module["exports"] = [
+  "#{city_name}"
+];
+
+},{}],56:[function(require,module,exports){
+module["exports"] = [
+  "Abertamy",
+  "Adamov",
+  "Andělská Hora",
+  "Aš",
+  "Bakov nad Jizerou",
+  "Bavorov",
+  "Bechyně",
+  "Bečov nad Teplou",
+  "Bělá nad Radbuzou",
+  "Bělá pod Bezdězem",
+  "Benátky nad Jizerou",
+  "Benešov",
+  "Benešov nad Ploučnicí",
+  "Beroun",
+  "Bezdružice",
+  "Bílina",
+  "Bílovec",
+  "Blansko",
+  "Blatná",
+  "Blovice",
+  "Blšany",
+  "Bochov",
+  "Bohumín",
+  "Bohušovice nad Ohří",
+  "Bojkovice",
+  "Bor",
+  "Borohrádek",
+  "Borovany",
+  "Boskovice",
+  "Boží Dar",
+  "Brandýs nad Labem-Stará Boleslav",
+  "Brandýs nad Orlicí",
+  "Brno",
+  "Broumov",
+  "Brtnice",
+  "Brumov-Bylnice",
+  "Bruntál",
+  "Brušperk",
+  "Břeclav",
+  "Březnice",
+  "Březová",
+  "Březová nad Svitavou",
+  "Břidličná",
+  "Bučovice",
+  "Budišov nad Budišovkou",
+  "Budyně nad Ohří",
+  "Buštěhrad",
+  "Bystré",
+  "Bystřice",
+  "Bystřice nad Pernštejnem",
+  "Bystřice pod Hostýnem",
+  "Bzenec",
+  "Chabařovice",
+  "Cheb",
+  "Chlumec",
+  "Chlumec nad Cidlinou",
+  "Choceň",
+  "Chodov",
+  "Chomutov",
+  "Chotěboř",
+  "Chrast",
+  "Chrastava",
+  "Chropyně",
+  "Chrudim",
+  "Chřibská",
+  "Chvaletice",
+  "Chýnov",
+  "Chyše",
+  "Cvikov",
+  "Čáslav",
+  "Čelákovice",
+  "Černošice",
+  "Černošín",
+  "Černovice",
+  "Červená Řečice",
+  "Červený Kostelec",
+  "Česká Kamenice",
+  "Česká Lípa",
+  "Česká Skalice",
+  "Česká Třebová",
+  "České Budějovice",
+  "České Velenice",
+  "Český Brod",
+  "Český Dub",
+  "Český Krumlov",
+  "Český Těšín",
+  "Dačice",
+  "Dašice",
+  "Děčín",
+  "Desná",
+  "Deštná",
+  "Dobrovice",
+  "Dobruška",
+  "Dobřany",
+  "Dobřichovice",
+  "Dobříš",
+  "Doksy",
+  "Dolní Benešov",
+  "Dolní Bousov",
+  "Dolní Kounice",
+  "Dolní Poustevna",
+  "Domažlice",
+  "Dubá",
+  "Dubí",
+  "Dubňany",
+  "Duchcov",
+  "Dvůr Králové nad Labem",
+  "Františkovy Lázně",
+  "Frenštát pod Radhoštěm",
+  "Frýdek-Místek",
+  "Frýdlant",
+  "Frýdlant nad Ostravicí",
+  "Fryšták",
+  "Fulnek",
+  "Golčův Jeníkov",
+  "Habartov",
+  "Habry",
+  "Hanušovice",
+  "Harrachov",
+  "Hartmanice",
+  "Havířov",
+  "Havlíčkův Brod",
+  "Hejnice",
+  "Heřmanův Městec",
+  "Hlinsko",
+  "Hluboká nad Vltavou",
+  "Hlučín",
+  "Hluk",
+  "Hodkovice nad Mohelkou",
+  "Hodonín",
+  "Holešov",
+  "Holice",
+  "Holýšov",
+  "Hora Svaté Kateřiny",
+  "Horažďovice",
+  "Horní Benešov",
+  "Horní Blatná",
+  "Horní Bříza",
+  "Horní Cerekev",
+  "Horní Jelení",
+  "Horní Jiřetín",
+  "Horní Planá",
+  "Horní Slavkov",
+  "Horšovský Týn",
+  "Hořice",
+  "Hořovice",
+  "Hostinné",
+  "Hostivice",
+  "Hostomice",
+  "Hostouň",
+  "Hoštka",
+  "Hradec Králové",
+  "Hradec nad Moravicí",
+  "Hrádek",
+  "Hrádek nad Nisou",
+  "Hranice (okres Cheb)",
+  "Hranice (okres Přerov)",
+  "Hrob",
+  "Hrochův Týnec",
+  "Hronov",
+  "Hrotovice",
+  "Hroznětín",
+  "Hrušovany nad Jevišovkou",
+  "Hulín",
+  "Humpolec",
+  "Husinec",
+  "Hustopeče",
+  "Ivančice",
+  "Ivanovice na Hané",
+  "Jablonec nad Jizerou",
+  "Jablonec nad Nisou",
+  "Jablonné nad Orlicí",
+  "Jablonné v Podještědí",
+  "Jablunkov",
+  "Jáchymov",
+  "Janov",
+  "Janovice nad Úhlavou",
+  "Janské Lázně",
+  "Jaroměř",
+  "Jaroměřice nad Rokytnou",
+  "Javorník",
+  "Jemnice",
+  "Jesenice (okres Rakovník)",
+  "Jeseník",
+  "Jevíčko",
+  "Jevišovice",
+  "Jičín",
+  "Jihlava",
+  "Jilemnice",
+  "Jílové",
+  "Jílové u Prahy",
+  "Jindřichův Hradec",
+  "Jirkov",
+  "Jiříkov",
+  "Jistebnice",
+  "Kadaň",
+  "Kamenice nad Lipou",
+  "Kamenický Šenov",
+  "Kaplice",
+  "Kardašova Řečice",
+  "Karlovy Vary",
+  "Karolinka",
+  "Karviná",
+  "Kasejovice",
+  "Kašperské Hory",
+  "Kaznějov",
+  "Kdyně",
+  "Kelč",
+  "Kladno",
+  "Kladruby",
+  "Klášterec nad Ohří",
+  "Klatovy",
+  "Klecany",
+  "Klimkovice",
+  "Klobouky u Brna",
+  "Kojetín",
+  "Kolín",
+  "Konice",
+  "Kopidlno",
+  "Kopřivnice",
+  "Koryčany",
+  "Kosmonosy",
+  "Kostelec na Hané",
+  "Kostelec nad Černými lesy",
+  "Kostelec nad Labem",
+  "Kostelec nad Orlicí",
+  "Košťany",
+  "Kouřim",
+  "Kožlany",
+  "Králíky",
+  "Kralovice",
+  "Kralupy nad Vltavou",
+  "Králův Dvůr",
+  "Kraslice",
+  "Krásná Hora nad Vltavou",
+  "Krásná Lípa",
+  "Krásné Údolí",
+  "Krásno",
+  "Kravaře",
+  "Krnov",
+  "Kroměříž",
+  "Krupka",
+  "Kryry",
+  "Kunovice",
+  "Kunštát",
+  "Kuřim",
+  "Kutná Hora",
+  "Kyjov",
+  "Kynšperk nad Ohří",
+  "Lanškroun",
+  "Lanžhot",
+  "Lázně Bělohrad",
+  "Lázně Bohdaneč",
+  "Lázně Kynžvart",
+  "Ledeč nad Sázavou",
+  "Ledvice",
+  "Letohrad",
+  "Letovice",
+  "Libáň",
+  "Libčice nad Vltavou",
+  "Liběchov",
+  "Liberec",
+  "Libochovice",
+  "Libušín",
+  "Lipník nad Bečvou",
+  "Lišov",
+  "Litoměřice",
+  "Litomyšl",
+  "Litovel",
+  "Litvínov",
+  "Loket",
+  "Lom",
+  "Lomnice nad Lužnicí",
+  "Lomnice nad Popelkou",
+  "Loštice",
+  "Loučná pod Klínovcem",
+  "Louny",
+  "Lovosice",
+  "Luby",
+  "Lučany nad Nisou",
+  "Luhačovice",
+  "Luže",
+  "Lysá nad Labem",
+  "Manětín",
+  "Mariánské Lázně",
+  "Mašťov",
+  "Měčín",
+  "Mělník",
+  "Městec Králové",
+  "Město Albrechtice",
+  "Město Touškov",
+  "Meziboří",
+  "Meziměstí",
+  "Mikulášovice",
+  "Mikulov",
+  "Miletín",
+  "Milevsko",
+  "Milovice",
+  "Mimoň",
+  "Miroslav",
+  "Mirošov",
+  "Mirotice",
+  "Mirovice",
+  "Mladá Boleslav",
+  "Mladá Vožice",
+  "Mnichovice",
+  "Mnichovo Hradiště",
+  "Mníšek pod Brdy",
+  "Modřice",
+  "Mohelnice",
+  "Moravská Třebová",
+  "Moravské Budějovice",
+  "Moravský Beroun",
+  "Moravský Krumlov",
+  "Morkovice-Slížany",
+  "Most",
+  "Mšeno",
+  "Mýto",
+  "Náchod",
+  "Nalžovské Hory",
+  "Náměšť nad Oslavou",
+  "Napajedla",
+  "Nasavrky",
+  "Nechanice",
+  "Nejdek",
+  "Němčice nad Hanou",
+  "Nepomuk",
+  "Neratovice",
+  "Netolice",
+  "Neveklov",
+  "Nová Bystřice",
+  "Nová Paka",
+  "Nová Role",
+  "Nová Včelnice",
+  "Nové Hrady",
+  "Nové Město na Moravě",
+  "Nové Město nad Metují",
+  "Nové Město pod Smrkem",
+  "Nové Sedlo",
+  "Nové Strašecí",
+  "Nový Bor",
+  "Nový Bydžov",
+  "Nový Jičín",
+  "Nový Knín",
+  "Nymburk",
+  "Nýrsko",
+  "Nýřany",
+  "Odolena Voda",
+  "Odry",
+  "Olešnice",
+  "Olomouc",
+  "Oloví",
+  "Opava",
+  "Opočno",
+  "Orlová",
+  "Osečná",
+  "Osek",
+  "Oslavany",
+  "Ostrava",
+  "Ostrov",
+  "Otrokovice",
+  "Pacov",
+  "Pardubice",
+  "Paskov",
+  "Pec pod Sněžkou",
+  "Pečky",
+  "Pelhřimov",
+  "Petřvald",
+  "Pilníkov",
+  "Písek",
+  "Planá",
+  "Planá nad Lužnicí",
+  "Plánice",
+  "Plasy",
+  "Plesná",
+  "Plumlov",
+  "Plzeň",
+  "Poběžovice",
+  "Počátky",
+  "Podbořany",
+  "Poděbrady",
+  "Podivín",
+  "Pohořelice",
+  "Police nad Metují",
+  "Polička",
+  "Polná",
+  "Postoloprty",
+  "Potštát",
+  "Prachatice",
+  "Praha",
+  "Proseč",
+  "Prostějov",
+  "Protivín",
+  "Přebuz",
+  "Přelouč",
+  "Přerov",
+  "Přeštice",
+  "Příbor",
+  "Příbram",
+  "Přibyslav",
+  "Přimda",
+  "Pyšely",
+  "Rabí",
+  "Radnice",
+  "Rájec-Jestřebí",
+  "Rajhrad",
+  "Rakovník",
+  "Ralsko",
+  "Raspenava",
+  "Rejštejn",
+  "Rokycany",
+  "Rokytnice nad Jizerou",
+  "Rokytnice v Orlických horách",
+  "Ronov nad Doubravou",
+  "Rosice",
+  "Rotava",
+  "Roudnice nad Labem",
+  "Rousínov",
+  "Rovensko pod Troskami",
+  "Roztoky",
+  "Rožďalovice",
+  "Rožmberk nad Vltavou",
+  "Rožmitál pod Třemšínem",
+  "Rožnov pod Radhoštěm",
+  "Rtyně v Podkrkonoší",
+  "Rudná",
+  "Rudolfov",
+  "Rumburk",
+  "Rychnov nad Kněžnou",
+  "Rychnov u Jablonce nad Nisou",
+  "Rychvald",
+  "Rýmařov",
+  "Řevnice",
+  "Říčany",
+  "Sadská",
+  "Sázava",
+  "Seč",
+  "Sedlčany",
+  "Sedlec-Prčice",
+  "Sedlice",
+  "Semily",
+  "Sezemice",
+  "Sezimovo Ústí",
+  "Skalná",
+  "Skuteč",
+  "Slaný",
+  "Slatiňany",
+  "Slavičín",
+  "Slavkov u Brna",
+  "Slavonice",
+  "Slušovice",
+  "Smečno",
+  "Smiřice",
+  "Smržovka",
+  "Soběslav",
+  "Sobotka",
+  "Sokolov",
+  "Solnice",
+  "Spálené Poříčí",
+  "Staňkov",
+  "Staré Město (okres Šumperk)",
+  "Staré Město (okres Uherské Hradiště)",
+  "Stárkov",
+  "Starý Plzenec",
+  "Stochov",
+  "Stod",
+  "Strakonice",
+  "Stráž nad Nežárkou",
+  "Stráž pod Ralskem",
+  "Strážnice",
+  "Strážov",
+  "Strmilov",
+  "Stříbro",
+  "Studénka",
+  "Suchdol nad Lužnicí",
+  "Sušice",
+  "Světlá nad Sázavou",
+  "Svitavy",
+  "Svoboda nad Úpou",
+  "Svratka",
+  "Šenov",
+  "Šlapanice",
+  "Šluknov",
+  "Špindlerův Mlýn",
+  "Šternberk",
+  "Štětí",
+  "Štíty",
+  "Štramberk",
+  "Šumperk",
+  "Švihov",
+  "Tábor",
+  "Tachov",
+  "Tanvald",
+  "Telč",
+  "Teplá",
+  "Teplice",
+  "Teplice nad Metují",
+  "Terezín",
+  "Tišnov",
+  "Toužim",
+  "Tovačov",
+  "Trhové Sviny",
+  "Trhový Štěpánov",
+  "Trmice",
+  "Trutnov",
+  "Třebechovice pod Orebem",
+  "Třebenice",
+  "Třebíč",
+  "Třeboň",
+  "Třemošná",
+  "Třemošnice",
+  "Třešť",
+  "Třinec",
+  "Turnov",
+  "Týn nad Vltavou",
+  "Týnec nad Labem",
+  "Týnec nad Sázavou",
+  "Týniště nad Orlicí",
+  "Uherské Hradiště",
+  "Uherský Brod",
+  "Uherský Ostroh",
+  "Uhlířské Janovice",
+  "Újezd u Brna",
+  "Unhošť",
+  "Uničov",
+  "Úpice",
+  "Úsov",
+  "Ústí nad Labem",
+  "Ústí nad Orlicí",
+  "Úštěk",
+  "Úterý",
+  "Úvaly",
+  "Valašské Klobouky",
+  "Valašské Meziříčí",
+  "Valtice",
+  "Vamberk",
+  "Varnsdorf",
+  "Vejprty",
+  "Velešín",
+  "Velká Bíteš",
+  "Velká Bystřice",
+  "Velké Bílovice",
+  "Velké Hamry",
+  "Velké Meziříčí",
+  "Velké Opatovice",
+  "Velké Pavlovice",
+  "Velký Šenov",
+  "Veltrusy",
+  "Velvary",
+  "Verneřice",
+  "Veselí nad Lužnicí",
+  "Veselí nad Moravou",
+  "Vidnava",
+  "Vimperk",
+  "Vítkov",
+  "Vizovice",
+  "Vlachovo Březí",
+  "Vlašim",
+  "Vodňany",
+  "Volary",
+  "Volyně",
+  "Votice",
+  "Vracov",
+  "Vratimov",
+  "Vrbno pod Pradědem",
+  "Vrchlabí",
+  "Vroutek",
+  "Vsetín",
+  "Všeruby",
+  "Výsluní",
+  "Vysoké Mýto",
+  "Vysoké nad Jizerou",
+  "Vysoké Veselí",
+  "Vyškov",
+  "Vyšší Brod",
+  "Zábřeh",
+  "Zákupy",
+  "Zásmuky",
+  "Zbiroh",
+  "Zbýšov",
+  "Zdice",
+  "Zlaté Hory",
+  "Zlín",
+  "Zliv",
+  "Znojmo",
+  "Zruč nad Sázavou",
+  "Zubří",
+  "Žacléř",
+  "Žamberk",
+  "Žandov",
+  "Žatec",
+  "Ždánice",
+  "Žďár nad Sázavou",
+  "Ždírec nad Doubravou",
+  "Žebrák",
+  "Železná Ruda",
+  "Železnice",
+  "Železný Brod",
+  "Židlochovice",
+  "Žirovnice",
+  "Žlutice",
+  "Žulová",
+];
+
+},{}],57:[function(require,module,exports){
+module["exports"] = [
+  "Afghánistán",
+  "Albánie",
+  "Alžírsko",
+  "Andorra",
+  "Angola",
+  "Antigua a Barbuda",
+  "Argentina",
+  "Arménie",
+  "Austrálie",
+  "Ázerbájdžán",
+  "Bahamy",
+  "Bahrajn",
+  "Bangladéš",
+  "Barbados",
+  "Belgie",
+  "Belize",
+  "Benin",
+  "Bělorusko",
+  "Bhútán",
+  "Bolívie",
+  "Bosna a Hercegovina",
+  "Botswana",
+  "Brazílie",
+  "Brunej",
+  "Bulharsko",
+  "Burkina Faso",
+  "Burundi",
+  "Čad",
+  "Černá Hora",
+  "Česko",
+  "Čína",
+  "Dánsko",
+  "DR Kongo",
+  "Dominika",
+  "Dominik",
+  "Džibutsko",
+  "Egypt",
+  "Ekvádor",
+  "Eritrea",
+  "Estonsko",
+  "Etiopie",
+  "Fidži",
+  "Filipíny",
+  "Finsko",
+  "Francie",
+  "Gabon",
+  "Gambie",
+  "Gruzie",
+  "Německo",
+  "Ghana",
+  "Grenada",
+  "Guatemala",
+  "Guinea",
+  "Guinea-Bissau",
+  "Guyana",
+  "Haiti",
+  "Honduras",
+  "Chile",
+  "Chorvatsko",
+  "Indie",
+  "Indonésie",
+  "Irák",
+  "Írán",
+  "Irsko",
+  "Island",
+  "Itálie",
+  "Izrael",
+  "Jamajka",
+  "Japonsko",
+  "Jemen",
+  "Jihoaf",
+  "Jižní Korea",
+  "Jižní Súdán",
+  "Jordánsko",
+  "Kambodža",
+  "Kamerun",
+  "Kanada",
+  "Kapverdy",
+  "Katar",
+  "Kazachstán",
+  "Keňa",
+  "Kiribati",
+  "Kolumbie",
+  "Komory",
+  "Kongo",
+  "Kostarika",
+  "Kuba",
+  "Kuvajt",
+  "Kypr",
+  "Kyrgyzstán",
+  "Laos",
+  "Lesotho",
+  "Libanon",
+  "Libérie",
+  "Libye",
+  "Lichtenštejnsko",
+  "Litva",
+  "Lotyšsko",
+  "Lucembursko",
+  "Madagaskar",
+  "Maďarsko",
+  "Makedonie",
+  "Malajsie",
+  "Malawi",
+  "Maledivy",
+  "Mali",
+  "Malta",
+  "Maroko",
+  "Marshallovy ostrovy",
+  "Mauritánie",
+  "Mauricius",
+  "Mexiko",
+  "Mikronésie",
+  "Moldavsko",
+  "Monako",
+  "Mongolsko",
+  "Mosambik",
+  "Myanmar (Barma)",
+  "Namibie",
+  "Nauru",
+  "Nepál",
+  "Niger",
+  "Nigérie",
+  "Nikaragua",
+  "Nizozemsko",
+  "Norsko",
+  "Nový Zéland",
+  "Omán",
+  "Pákistán",
+  "Palau",
+  "Palestina",
+  "Panama",
+  "Papua-Nová Guinea",
+  "Paraguay",
+  "Peru",
+  "Pobřeží slonoviny",
+  "Polsko",
+  "Portugalsko",
+  "Rakousko",
+  "Rovníková Guinea",
+  "Rumunsko",
+  "Rusko",
+  "Rwanda",
+  "Řecko",
+  "Salvador",
+  "Samoa",
+  "San Marino",
+  "Saúdská Arábie",
+  "Senegal",
+  "Severní Korea",
+  "Seychely",
+  "Sierra Leone",
+  "Singapur",
+  "Slovensko",
+  "Slovinsko",
+  "Srbsko",
+  "Středo",
+  "Somálsko",
+  "Surinam",
+  "Súdán",
+  "Svatá Lucie",
+  "Svatý Kryštof a Nevis",
+  "Svatý Tomáš a Princův ostrov",
+  "Svatý Vincenc a Grenadiny",
+  "Svazijsko",
+  "Spojené arabské emiráty",
+  "Spojené království",
+  "Spojené státy americké",
+  "Sýrie",
+  "Šalamounovy ostrovy",
+  "Španělsko",
+  "Srí Lanka",
+  "Švédsko",
+  "Švýcarsko",
+  "Tádžikistán",
+  "Tanzanie",
+  "Thajsko",
+  "Togo",
+  "Tonga",
+  "Trinidad a Tobago",
+  "Tunisko",
+  "Turecko",
+  "Turkmenistán",
+  "Tuvalu",
+  "Uganda",
+  "Ukrajina",
+  "Uruguay",
+  "Uzbekistán",
+  "Vanuatu",
+  "Vatikán",
+  "Venezuela",
+  "Vietnam",
+  "Východní Timor",
+  "Zambie",
+  "Zimbabwe",
+];
+
+},{}],58:[function(require,module,exports){
+module["exports"] = [
+  "Česká republika"
+];
+
+},{}],59:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.time_zone = require("./time_zone");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street = require("./street");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":54,"./city":55,"./city_name":56,"./country":57,"./default_country":58,"./postcode":60,"./secondary_address":61,"./state":62,"./state_abbr":63,"./street":64,"./street_address":65,"./street_name":66,"./time_zone":67}],60:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "### ##",
+  "###-##"
+];
+
+},{}],61:[function(require,module,exports){
+module["exports"] = [
+  "Apt. ###",
+  "Suite ###"
+];
+
+},{}],62:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],63:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],64:[function(require,module,exports){
+module["exports"] = [
+  "17. Listopadu",
+  "17. Listopadu",
+  "28. Pluku",
+  "28. Října",
+  "28. Října",
+  "5. Května",
+  "5. Května",
+  "5. Máje",
+  "7. Května",
+  "8. Listopadu",
+  "9. Května",
+  "Achátová",
+  "Adamova",
+  "Adamovská",
+  "Adélčina",
+  "Africká",
+  "Akademická",
+  "Aksamitova",
+  "Akátová",
+  "Alabastrová",
+  "Albertov",
+  "Albrechtická",
+  "Albánská",
+  "Albíny Hochové",
+  "Aldašínská",
+  "Alej Českých Exulantů",
+  "Aleny Santarové",
+  "Aloisovská",
+  "Aloisovská",
+  "Aloisovská",
+  "Altajská",
+  "Alšovo Nábř.",
+  "Alšovo Nábřeží",
+  "Alšovy Sady",
+  "Alžírská",
+  "Ambrožova",
+  "Americká",
+  "Ametystová",
+  "Amforová",
+  "Amortova",
+  "Ampérova",
+  "Amurská",
+  "Anastázova",
+  "Anderleho",
+  "Andersenova",
+  "Andrštova",
+  "Andělova",
+  "Anenská",
+  "Anenské Nám.",
+  "Anenské Náměstí",
+  "Anežky Malé",
+  "Anežská",
+  "Angelovova",
+  "Anglická",
+  "Angolská",
+  "Anhaltova",
+  "Ankarská",
+  "Anny Drabíkové",
+  "Anny Letenské",
+  "Anny Rybníčkové",
+  "Anny Čížkové",
+  "Anny Čížkové",
+  "Antala Staška",
+  "Antonína Hodného",
+  "Antonína Čermáka",
+  "Antonínská",
+  "Anýzová",
+  "Apolinářská",
+  "Arabská",
+  "Aranžérská",
+  "Arbesovo Nám.",
+  "Arbesovo Náměstí",
+  "Archangelská",
+  "Archeologická",
+  "Archimédova",
+  "Archivní",
+  "Argentinská",
+  "Aristotelova",
+  "Arkalycká",
+  "Armádní",
+  "Armádního Sboru",
+  "Armády",
+  "Arménská",
+  "Arnošta Valenty",
+  "Astlova",
+  "Athénská",
+  "Atletická",
+  "Aubrechtové",
+  "Augustinova",
+  "Augustova",
+  "Austova",
+  "Aviatická",
+  "Axmanova",
+  "Azalková",
+  "Azuritová",
+  "Ašská",
+  "Baarova",
+  "Babická",
+  "Babiččina",
+  "Babočková",
+  "Babská",
+  "Babylonská",
+  "Babákova",
+  "Bachmačské Nám.",
+  "Bachmačské Náměstí",
+  "Bachova",
+  "Bacháčkova",
+  "Badeniho",
+  "Badeniho",
+  "Bajgarova",
+  "Bajkalská",
+  "Bajkonurská",
+  "Bakalářská",
+  "Bakovská",
+  "Bakurinova",
+  "Balabánova",
+  "Balbínova",
+  "Banskobystrická",
+  "Baranova",
+  "Barchovická",
+  "Barešova",
+  "Barrandova",
+  "Barrandovská",
+  "Bartolomějská",
+  "Bartoňkova",
+  "Bartoňova",
+  "Bartoškova",
+  "Bartoškova",
+  "Bartoškova",
+  "Bartákova",
+  "Bartůňkova",
+  "Barunčina",
+  "Barvířská",
+  "Barákova",
+  "Basilejské Nám.",
+  "Basilejské Náměstí",
+  "Bassova",
+  "Batelovská",
+  "Batličkova",
+  "Bavorovská",
+  "Bavorská",
+  "Bazalková",
+  "Bazovského",
+  "Bačetínská",
+  "Baňská",
+  "Baškirská",
+  "Bašteckého",
+  "Baštýřská",
+  "Bažantní",
+  "Beaufortova",
+  "Bechlínská",
+  "Bechyňova",
+  "Bechyňská",
+  "Beckovská",
+  "Bedlová",
+  "Bednářská",
+  "Bedrnova",
+  "Bedřichovská",
+  "Beethovenova",
+  "Beldova",
+  "Belgická",
+  "Bellova",
+  "Bellušova",
+  "Bendlova",
+  "Bendova",
+  "Benecká",
+  "Benediktská",
+  "Benešovská",
+  "Benická",
+  "Benkova",
+  "Benákova",
+  "Benátská",
+  "Benáčanova",
+  "Beníškové",
+  "Beranových",
+  "Bergerova",
+  "Bergmanova",
+  "Berkovská",
+  "Berlínská",
+  "Bermanova",
+  "Bernartická",
+  "Bernolákova",
+  "Berounská",
+  "Bertrámová",
+  "Berylová",
+  "Besední",
+  "Beskydská",
+  "Betlémská",
+  "Betlémské Nám.",
+  "Betlémské Náměstí",
+  "Betáňská",
+  "Bezdrevská",
+  "Bezděkovská",
+  "Bezinková",
+  "Bezová",
+  "Bezprašná",
+  "Bečovská",
+  "Bečvářova",
+  "Bečvářská",
+  "Bečvářská",
+  "Beřkovická",
+  "Bešťákova",
+  "Bieblova",
+  "Binarova",
+  "Biskupcova",
+  "Biskupská",
+  "Biskupský Dvůr",
+  "Blachutova",
+  "Blahníkova",
+  "Blahoslavova",
+  "Blanická",
+  "Blatenská",
+  "Blatnická",
+  "Blatovská",
+  "Blatská",
+  "Blattného",
+  "Blažimská",
+  "Blažkova",
+  "Blažíčkova",
+  "Blešnovská",
+  "Blodkova",
+  "Bludovická",
+  "Blériotova",
+  "Blšanecká",
+  "Bobkova",
+  "Bochovská",
+  "Bodláková",
+  "Bohdalec",
+  "Bohdalec",
+  "Bohdalecká",
+  "Bohdalecká",
+  "Bohdanečská",
+  "Bohdašínská",
+  "Bohnická",
+  "Bohrova",
+  "Bohumínská",
+  "Bohuslava Martinů",
+  "Bohuslava Martinů",
+  "Bohuslava Ze Švamberka",
+  "Bohuslavická",
+  "Bohušovická",
+  "Bohušovická",
+  "Boháčova",
+  "Bohúňova",
+  "Bojanovická",
+  "Bojasova",
+  "Bojetická",
+  "Boješická",
+  "Bojkovická",
+  "Bojovská",
+  "Bojínková",
+  "Bojčenkova",
+  "Bolebořská",
+  "Boleratická",
+  "Boleslavova",
+  "Boleslavská",
+  "Boletická",
+  "Bolevecká",
+  "Bolinská",
+  "Boloňská",
+  "Bolzanova",
+  "Bolívarova",
+  "Borecká",
+  "Borečkova",
+  "Borodinská",
+  "Borotínská",
+  "Borovanská",
+  "Borovanského",
+  "Borovnická",
+  "Borovská",
+  "Borová",
+  "Borošova",
+  "Borská",
+  "Borského",
+  "Boršov",
+  "Boršovská",
+  "Borůvková",
+  "Boseňská",
+  "Botevova",
+  "Botičská",
+  "Botičská",
+  "Boudova",
+  "Bousovská",
+  "Boučkova",
+  "Bouřilova",
+  "Boušova",
+  "Bozděchova",
+  "Boční I",
+  "Boční Ii",
+  "Bořanovická",
+  "Bořetická",
+  "Bořetínská",
+  "Bořivojova",
+  "Bořivojova",
+  "Boříkova",
+  "Bošická",
+  "Bošilecká",
+  "Bošínská",
+  "Božanovská",
+  "Božecká",
+  "Božejovická",
+  "Boženy Hofmeisterové",
+  "Boženy Jandlové",
+  "Boženy Němcové",
+  "Boženy Němcové",
+  "Boženy Stárkové",
+  "Božetická",
+  "Božetěchova",
+  "Božkova",
+  "Božkovská",
+  "Božídarská",
+  "Brabcova",
+  "Bramboříková",
+  "Branaldova",
+  "Brandejsova",
+  "Brandejsovo Nám.",
+  "Brandejsovo Náměstí",
+  "Brandlova",
+  "Brandýská",
+  "Branická",
+  "Branická",
+  "Branické Nám.",
+  "Branické Náměstí",
+  "Branislavova",
+  "Branišovská",
+  "Branská",
+  "Bratislavská",
+  "Bratranců Veverkových",
+  "Bratří Dohalských",
+  "Bratří Venclíků",
+  "Bratří Čapků",
+  "Bratříkovská",
+  "Braunerova",
+  "Braunova",
+  "Braškovská",
+  "Brdecká",
+  "Brdičkova",
+  "Brdlíkova",
+  "Brechtova",
+  "Brechtova",
+  "Brehmova",
+  "Breitcetlova",
+  "Brichtova",
+  "Brigádnická",
+  "Brigádníků",
+  "Brixiho",
+  "Brodecká",
+  "Brodecká",
+  "Brodského",
+  "Bromova",
+  "Bronzová",
+  "Broskvoňová",
+  "Broumarská",
+  "Broumovská",
+  "Brozánská",
+  "Brožíkova",
+  "Brtecká",
+  "Brtnická",
+  "Brumovická",
+  "Brunclíkova",
+  "Brunelova",
+  "Brunnerova",
+  "Bruselská",
+  "Brusinková",
+  "Bruslařská",
+  "Bryksova",
+  "Brzická",
+  "Brzorádových",
+  "Brázdimská",
+  "Brňovská",
+  "Bubenečská",
+  "Bubenečská",
+  "Bubenská",
+  "Bubenské Nábř.",
+  "Bubenské Nábřeží",
+  "Bubeníčkova",
+  "Bublavská",
+  "Bublíkova",
+  "Bubnova",
+  "Bucharova",
+  "Buchlovská",
+  "Buchovcova",
+  "Budapešťská",
+  "Budečská",
+  "Budilova",
+  "Budilovská",
+  "Budovatelská",
+  "Budyňská",
+  "Budyšínská",
+  "Budínova",
+  "Budčická",
+  "Budějovická",
+  "Budějovická",
+  "Bukolská",
+  "Bukovecká",
+  "Bukovinská",
+  "Buková",
+  "Bulharská",
+  "Buližníková",
+  "Bulovka",
+  "Burdova",
+  "Burešova",
+  "Burianova",
+  "Butovická",
+  "Butovická",
+  "Buzulucká",
+  "Buštěhradská",
+  "Bydhošťská",
+  "Bydžovská",
+  "Bydžovského",
+  "Bylanská",
+  "Bystrá",
+  "Bystřická",
+  "Bystřičná",
+  "Byšická",
+  "Byškovická",
+  "Bzenecká",
+  "Bártlova",
+  "Bášťská",
+  "Bílenecké Nám.",
+  "Bílenecké Náměstí",
+  "Bílinská",
+  "Bílkova",
+  "Bílkova",
+  "Bílovská",
+  "Bílá",
+  "Bílčická",
+  "Bínova",
+  "Bítovská",
+  "Böhmova",
+  "Býšovská",
+  "Běchorská",
+  "Běchovická",
+  "Běhounkova",
+  "Bělehradská",
+  "Bělehradská",
+  "Bělehradská",
+  "Bělečská",
+  "Bělinského",
+  "Bělocerkevská",
+  "Bělocká",
+  "Bělohorská",
+  "Bělohorská",
+  "Bělomlýnská",
+  "Bělomlýnská",
+  "Běloveská",
+  "Běluňská",
+  "Bělušická",
+  "Bělásková",
+  "Bělčická",
+  "Bělčická",
+  "Běžecká",
+  "Běžná",
+  "Břeclavská",
+  "Břehová",
+  "Břehová",
+  "Břetislavova",
+  "Břevnovská",
+  "Březanova",
+  "Březecká",
+  "Březenská",
+  "Březinova",
+  "Březiněveská",
+  "Březnická",
+  "Březnová",
+  "Březovická",
+  "Březovského",
+  "Březová",
+  "Břečťanová",
+  "Břežanská",
+  "Břežánecká",
+  "Břidlicová",
+  "Břidličná",
+  "Břízova",
+  "Bříšťanská",
+  "Cafourkova",
+  "Cedrová",
+  "Celetná",
+  "Celniční",
+  "Celsiova",
+  "Cementářská",
+  "Ceplechova",
+  "Cerhenická",
+  "Cerhýnská",
+  "Cetyňská",
+  "Chabařovická",
+  "Chaberská",
+  "Chabeřická",
+  "Chabská",
+  "Chalabalova",
+  "Chaloupeckého",
+  "Chaloupky",
+  "Chaltická",
+  "Chalupkova",
+  "Chalupnická",
+  "Chaplinovo Nám.",
+  "Chaplinovo Náměstí",
+  "Charkovská",
+  "Charlese De Gaulla",
+  "Charvátova",
+  "Chatařská",
+  "Chatová",
+  "Chebská",
+  "Chelčického",
+  "Chemická",
+  "Chilská",
+  "Chittussiho",
+  "Chladírenská",
+  "Chlebovická",
+  "Chlumecká",
+  "Chlumecká",
+  "Chlumecká",
+  "Chlumova",
+  "Chlumínská",
+  "Chlumčanského",
+  "Chlupova",
+  "Chlupáčova",
+  "Chládkova",
+  "Chmelařská",
+  "Chmelická",
+  "Chmelová",
+  "Chmelířova",
+  "Choceradská",
+  "Choceňská",
+  "Chocholouškova",
+  "Chocholova",
+  "Chodecká",
+  "Chodovecké Nám.",
+  "Chodovecké Náměstí",
+  "Chodovická",
+  "Chodovská",
+  "Chodovská",
+  "Chodovská",
+  "Chodská",
+  "Cholupická",
+  "Chomutovická",
+  "Chomutovská",
+  "Chopinova",
+  "Choratická",
+  "Chorošová",
+  "Chorušická",
+  "Chorvatská",
+  "Chotečská",
+  "Chotkova",
+  "Chotouchovská",
+  "Chotouňská",
+  "Chotovická",
+  "Chotutická",
+  "Chotěbuzská",
+  "Chotěnovská",
+  "Chotětovská",
+  "Chotěšovská",
+  "Chovatelská",
+  "Chrastavská",
+  "Chrobolská",
+  "Chrpová",
+  "Chrudimská",
+  "Chráněná",
+  "Chrášťanská",
+  "Chuchelská",
+  "Chudenická",
+  "Chudoměřická",
+  "Churnajevova",
+  "Churáňovská",
+  "Chvaletická",
+  "Chvaletická",
+  "Chvalečská",
+  "Chvalkovická",
+  "Chvalova",
+  "Chvalská",
+  "Chvalská",
+  "Chvalšovická",
+  "Chvatěrubská",
+  "Chvojenecká",
+  "Chyjická",
+  "Chýnická",
+  "Chýnovská",
+  "Chýňská",
+  "Chřibská",
+  "Cibulka",
+  "Cidlinská",
+  "Cigánkova",
+  "Cihelná",
+  "Cihlářova",
+  "Cihlářská",
+  "Cimburkova",
+  "Ciolkovského",
+  "Cirkusová",
+  "Cisterciácká",
+  "Citolibská",
+  "Coriových",
+  "Ctiborova",
+  "Ctiněveská",
+  "Ctiradova",
+  "Ctěnická",
+  "Cukerní",
+  "Cukrovarnická",
+  "Cukrovarská",
+  "Cuřínova",
+  "Cvikovská",
+  "Cvičebná",
+  "Cvrčkova",
+  "Cvrčkova",
+  "Cvrčkova",
+  "Cyprichova",
+  "Cíglerova",
+  "Cílkova",
+  "Cínovecká",
+  "Církova",
+  "Církvická",
+  "Církvičná",
+  "Císařská Louka",
+  "Císařský Ostrov",
+  "Císařský Ostrov",
+  "Císařský Ostrov",
+  "Cítovská",
+  "Daimlerova",
+  "Dalejská",
+  "Dalejská",
+  "Dalešická",
+  "Daliborova",
+  "Dalimilova",
+  "Dalovická",
+  "Dandova",
+  "Danielova",
+  "Dany Medřické",
+  "Darwinova",
+  "Dasnická",
+  "Davelská",
+  "Davidovičova",
+  "Davídkova",
+  "Davídkova",
+  "Dačická",
+  "Dačického",
+  "Daňkova",
+  "Dašická",
+  "Daškova",
+  "Dehtínská",
+  "Dejvická",
+  "Dejvická",
+  "Demlova",
+  "Demoliční",
+  "Desenská",
+  "Destinnové",
+  "Destinové",
+  "Devonská",
+  "Deylova",
+  "Deštná",
+  "Dešťová",
+  "Diabasová",
+  "Diamantová",
+  "Diblíkova",
+  "Diblíkova",
+  "Dienzenhoferovy Sady",
+  "Dieselova",
+  "Diskařská",
+  "Diskařská",
+  "Dismanova",
+  "Dittrichova",
+  "Divadelní",
+  "Divadelní",
+  "Divecká",
+  "Diviznová",
+  "Divišova",
+  "Divišovská",
+  "Divoká Šárka",
+  "Divoká Šárka",
+  "Dlabačov",
+  "Dlabačov",
+  "Dlouhá",
+  "Dlážděná",
+  "Do Blatin",
+  "Do Borovin",
+  "Do Chuchle",
+  "Do Dolnic",
+  "Do Dubin",
+  "Do Dubče",
+  "Do Hlinek",
+  "Do Klukovic",
+  "Do Kopečka",
+  "Do Koutů",
+  "Do Koutů",
+  "Do Lipan",
+  "Do Lipin",
+  "Do Lipin",
+  "Do Luk",
+  "Do Panenek",
+  "Do Podkovy",
+  "Do Polí",
+  "Do Potoků",
+  "Do Píšovic",
+  "Do Roklí",
+  "Do Rybníčků",
+  "Do Svépravic",
+  "Do Vozovny",
+  "Do Vrchu",
+  "Do Vršku",
+  "Do Zahrádek I",
+  "Do Zahrádek I",
+  "Do Zahrádek I",
+  "Do Zahrádek Ii",
+  "Do Zahrádek Ii",
+  "Do Zátiší",
+  "Do Údolí",
+  "Do Újezda",
+  "Do Čertous",
+  "Do Čtvrti",
+  "Do Říčan",
+  "Dobevská",
+  "Dobnerova",
+  "Dobratická",
+  "Dobronická",
+  "Dobronická",
+  "Dobropolská",
+  "Dobrovická",
+  "Dobrovolného",
+  "Dobrovolského",
+  "Dobrovského",
+  "Dobrovízská",
+  "Dobročovická",
+  "Dobrošovská",
+  "Dobrušská",
+  "Dobřanská",
+  "Dobřejovická",
+  "Dobřenická",
+  "Dobřichovská",
+  "Dobšická",
+  "Dobšínská",
+  "Dohalická",
+  "Doksanská",
+  "Dolanská",
+  "Dolejškova",
+  "Doležalova",
+  "Dolina",
+  "Dolnobranská",
+  "Dolnobřežanská",
+  "Dolnocholupická",
+  "Dolnojirčanská",
+  "Dolnokrčská",
+  "Dolnokřeslická",
+  "Dolnomlýnská",
+  "Dolnoměcholupská",
+  "Dolnoměcholupská",
+  "Dolnopočernická",
+  "Dolnočernošická",
+  "Dolní",
+  "Dolní",
+  "Dolní Chaloupky",
+  "Dolomitová",
+  "Dolská",
+  "Dolákova",
+  "Dolínecká",
+  "Dolňanská",
+  "Domanovická",
+  "Domašínská",
+  "Domažlická",
+  "Dominova",
+  "Dominínská",
+  "Domkovská",
+  "Domkářská",
+  "Domousnická",
+  "Donatellova",
+  "Donovalská",
+  "Donská",
+  "Donátova",
+  "Donínská",
+  "Dopplerova",
+  "Dopravní",
+  "Dopraváků",
+  "Dopraváků",
+  "Dostihová",
+  "Dostojevského",
+  "Doubecká",
+  "Doubická",
+  "Doubravická",
+  "Doubravská",
+  "Doubravínova",
+  "Doubravčická",
+  "Doudlebská",
+  "Doudova",
+  "Doupovská",
+  "Dr. Marodyho",
+  "Dr. Zikmunda Wintra",
+  "Dr.Zikmunda Wintra",
+  "Dragounská",
+  "Drahanská",
+  "Drahanská",
+  "Drahelická",
+  "Drahelčická",
+  "Drahobejlova",
+  "Drahorádova",
+  "Drahotická",
+  "Drahotínská",
+  "Drahovská",
+  "Drahovská",
+  "Drahoňovského",
+  "Draženovská",
+  "Draženovská",
+  "Dražetická",
+  "Dražická",
+  "Dražického",
+  "Dražického Nám.",
+  "Dražického Náměstí",
+  "Dražkovská",
+  "Dreyerova",
+  "Drimlova",
+  "Drnovská",
+  "Drobná",
+  "Drtikolova",
+  "Drtinova",
+  "Druhanická",
+  "Druhého Odboje",
+  "Družicová",
+  "Družnosti",
+  "Družná",
+  "Družstevní",
+  "Družstevní Ochoz",
+  "Družstevní Ochoz",
+  "Drážní",
+  "Drůbežnická",
+  "Drůbežářská",
+  "Dubanská",
+  "Dubenecká",
+  "Dubečská",
+  "Dubečské Horky",
+  "Dubinská",
+  "Dubnická",
+  "Dubnova",
+  "Dubovická",
+  "Dubová",
+  "Dubrovnická",
+  "Dubská",
+  "Duchcovská",
+  "Duchoslávka",
+  "Dudkova",
+  "Dudínská",
+  "Duhová",
+  "Dukelská",
+  "Dukelských Hrdinů",
+  "Dunajevského",
+  "Dunajská",
+  "Dunická",
+  "Dunovského",
+  "Durychova",
+  "Durychova",
+  "Dusíkova",
+  "Duškova",
+  "Duškova",
+  "Dušní",
+  "Dušní",
+  "Dvorecká",
+  "Dvorecké Nám.",
+  "Dvorecké Náměstí",
+  "Dvorní",
+  "Dvorská",
+  "Dvoudílná",
+  "Dvouletky",
+  "Dvouramenná",
+  "Dvořeckého",
+  "Dvořišťská",
+  "Dvořákova",
+  "Dvořákovo Nábř.",
+  "Dvořákovo Nábřeží",
+  "Dygrýnova",
+  "Dyjská",
+  "Dykova",
+  "Dářská",
+  "Dürerova",
+  "Dýšinská",
+  "Děbolínská",
+  "Dědická",
+  "Dědinova",
+  "Dědinská",
+  "Děkanská",
+  "Děkanská Vinice I",
+  "Děkanská Vinice Ii",
+  "Dělená",
+  "Dělnická",
+  "Dělostřelecká",
+  "Dětenická",
+  "Dětská",
+  "Dětský Ostrov",
+  "Děvínská",
+  "Děčínská",
+  "Děčínská",
+  "Dřevařská",
+  "Dřevnická",
+  "Dřevná",
+  "Dřevčická",
+  "Dřínovská",
+  "Dřínová",
+  "Dřítenská",
+  "Eberlova",
+  "Ebrova",
+  "Edisonova",
+  "Edvardova",
+  "Egyptská",
+  "Eichlerova",
+  "Einsteinova",
+  "Ejpovická",
+  "Ekonomická",
+  "Eledrova",
+  "Elektrárenská",
+  "Eliášova",
+  "Eliášova",
+  "Elišky Junkové",
+  "Elišky Krásnohorské",
+  "Elišky Krásnohorské",
+  "Elišky Peškové",
+  "Elišky Přemyslovny",
+  "Ellnerové",
+  "Elsnicovo Náměstí",
+  "Emilie Hyblerové",
+  "Emlerova",
+  "Engelmüllerova",
+  "Engelova",
+  "Engelova",
+  "Englerova",
+  "Erbenova",
+  "Erbenova",
+  "Estonská",
+  "Etiopská",
+  "Euklidova",
+  "Evropská",
+  "Evropská",
+  "Evropská",
+  "Evropská",
+  "Evropská",
+  "Evy Olmerové",
+  "Exnárova",
+  "F.V.Veselého",
+  "Fabiánova",
+  "Fabiánská",
+  "Fadějevova",
+  "Fajmanové",
+  "Fajtlova",
+  "Falcká",
+  "Faltysova",
+  "Famfulíkova",
+  "Fantova",
+  "Faradayova",
+  "Farkašova",
+  "Farní",
+  "Farská",
+  "Farského",
+  "Fastrova",
+  "Federova",
+  "Fejfarova",
+  "Felberova",
+  "Fenyklová",
+  "Fetrovská",
+  "Feřtekova",
+  "Fialková",
+  "Fibichova",
+  "Fikerova",
+  "Filipova",
+  "Filipovského",
+  "Filipíny Welserové",
+  "Fillova",
+  "Filmařská",
+  "Filosofská",
+  "Fingerova",
+  "Finkovská",
+  "Finská",
+  "Firkušného",
+  "Fischlova",
+  "Fišerova",
+  "Flemingovo Nám.",
+  "Flemingovo Náměstí",
+  "Flájská",
+  "Flöglova",
+  "Foerstrova",
+  "Folmavská",
+  "Formanská",
+  "Formánkova",
+  "Fořtova",
+  "Fragnerova",
+  "Francouzská",
+  "Francouzská",
+  "Francouzská",
+  "Františka Diviše",
+  "Františka Jansy",
+  "Františka Kadlece",
+  "Františka Křížka",
+  "Františka Černého",
+  "Františka Červeného",
+  "Františka Šimáčka",
+  "Františkova",
+  "Franty Kocourka",
+  "Frančíkova",
+  "Freiwaldova",
+  "Freyova",
+  "Frimlova",
+  "Fričova",
+  "Froncova",
+  "Frostova",
+  "Froňkova",
+  "Frydrychova",
+  "Fryčovická",
+  "Fráni Šrámka",
+  "Frézařská",
+  "Frýdecká",
+  "Frýdlantská",
+  "Fuchsova",
+  "Fügnerovo Nám.",
+  "Fügnerovo Náměstí",
+  "Gabinova",
+  "Gabčíkova",
+  "Gagarinova",
+  "Galandova",
+  "Galileova",
+  "Gallašova",
+  "Galvaniho",
+  "Gaussova",
+  "Gdaňská",
+  "Generála Janouška",
+  "Generála Mejstříka",
+  "Generála Píky",
+  "Generála Šišky",
+  "Generála Šišky",
+  "Gensovská",
+  "Geologická",
+  "Gercenova",
+  "Gerstnerova",
+  "Ginzova",
+  "Glazunovova",
+  "Glinkova",
+  "Glowackého",
+  "Goetheho",
+  "Gogolova",
+  "Golfová",
+  "Gollova",
+  "Golčova",
+  "Gončarenkova",
+  "Gončarenkova",
+  "Gorazdova",
+  "Gotthardská",
+  "Goyova",
+  "Gočárova",
+  "Grafická",
+  "Grafitová",
+  "Grammova",
+  "Granátová",
+  "Gregorova",
+  "Grussova",
+  "Gruzínská",
+  "Gutfreundova",
+  "Gutova",
+  "Gymnasijní",
+  "Gymnastická",
+  "Habartická",
+  "Habartická",
+  "Habartovská",
+  "Haberfeldova",
+  "Habrovská",
+  "Habrová",
+  "Habřická",
+  "Habřická",
+  "Hackerova",
+  "Hadovitá",
+  "Hadravská",
+  "Hajní",
+  "Hakenova",
+  "Halasova",
+  "Halenkovská",
+  "Halštatská",
+  "Hamerská",
+  "Hamplova",
+  "Hamrová",
+  "Hamsíkova",
+  "Hankova",
+  "Hanouškova",
+  "Hanusova",
+  "Hanušova",
+  "Hanzelkova",
+  "Hanzlíkova",
+  "Harantova",
+  "Harcovská",
+  "Harlacherova",
+  "Harmonická",
+  "Harrachovská",
+  "Hartenberská",
+  "Hasičská",
+  "Hasičů",
+  "Hasova",
+  "Hastrmanská",
+  "Haunerova",
+  "Hauptova",
+  "Hausmannova",
+  "Havanská",
+  "Havelská",
+  "Havelská Ulička",
+  "Havlovického",
+  "Havlovického",
+  "Havlovská",
+  "Havlínova",
+  "Havlíčkova",
+  "Havlíčkovo Nám.",
+  "Havlíčkovo Náměstí",
+  "Havlíčkovy Sady",
+  "Havlůjové",
+  "Havlůjové",
+  "Havranická",
+  "Havraní",
+  "Havránkova",
+  "Havířovská",
+  "Havířská",
+  "Haškova",
+  "Hašlerova",
+  "Haštalská",
+  "Haštalské Nám.",
+  "Haštalské Náměstí",
+  "Heckelova",
+  "Heineho",
+  "Heinemannova",
+  "Hejnická",
+  "Hejnická",
+  "Hejplíkova",
+  "Hejtmanská",
+  "Hejtmánkova",
+  "Hekova",
+  "Hekrova",
+  "Heldova",
+  "Heleny Malířové",
+  "Hellichova",
+  "Helmova",
+  "Helsinská",
+  "Helénská",
+  "Hennerova",
+  "Heranova",
+  "Herbenova",
+  "Herdovská",
+  "Herlíkovická",
+  "Hermanická",
+  "Hermelínská",
+  "Hermíny Týrlové",
+  "Heroldovy Sady",
+  "Herrmannova",
+  "Herrova",
+  "Hertzova",
+  "Herálecká I",
+  "Herálecká Ii",
+  "Herálecká Iii",
+  "Herálecká Iv",
+  "Herčíkova",
+  "Hevlínská",
+  "Heydukova",
+  "Heyrovského Nám.",
+  "Heyrovského Nám.",
+  "Heyrovského Náměstí",
+  "Heyrovského Náměstí",
+  "Hečkova",
+  "Heřmanova",
+  "Heřmánková",
+  "Hildy Čihákové",
+  "Hillebrantova",
+  "Hilmarova",
+  "Hiršlova",
+  "Hlavatého",
+  "Hlavenecká",
+  "Hlavní",
+  "Hlavova",
+  "Hlaváčkova",
+  "Hlaváčova",
+  "Hlaďova",
+  "Hledíková",
+  "Hlinská",
+  "Hlivická",
+  "Hlohová",
+  "Hloubětínská",
+  "Hloubětínská",
+  "Hlubocká",
+  "Hluboká",
+  "Hlubočepská",
+  "Hlušičkova",
+  "Hládkov",
+  "Hládkov",
+  "Hlávkova",
+  "Hněvkovská",
+  "Hněvkovského",
+  "Hnězdenská",
+  "Hoblířská",
+  "Hodkovická",
+  "Hodkovská",
+  "Hodonínská",
+  "Hodčina",
+  "Hodějovská",
+  "Hodějovská",
+  "Hoděšovická",
+  "Hofbauerova",
+  "Hoffmannova",
+  "Hokejová",
+  "Hokešovo Nám.",
+  "Hokešovo Náměstí",
+  "Holandská",
+  "Holekova",
+  "Holenická",
+  "Holenská",
+  "Holečkova",
+  "Holečkova",
+  "Holešovické Nábřeží",
+  "Holešovický Přístav",
+  "Holická",
+  "Hollarovo Nám.",
+  "Hollarovo Náměstí",
+  "Holohlavská",
+  "Holotínská",
+  "Holoubkova",
+  "Holoubkovská",
+  "Holubická",
+  "Holubinková",
+  "Holubkova",
+  "Holubova",
+  "Holubí",
+  "Holušická",
+  "Holyňská",
+  "Holátova",
+  "Holínská",
+  "Holýšovská",
+  "Holčovická",
+  "Holšická",
+  "Homolová",
+  "Homérova",
+  "Honzíkova",
+  "Hornická",
+  "Hornocholupická",
+  "Hornocholupická",
+  "Hornofova",
+  "Hornokrčská",
+  "Hornokřeslická",
+  "Hornomlýnská",
+  "Hornoměcholupská",
+  "Hornoměcholupská",
+  "Hornopočernická",
+  "Horní",
+  "Horní Chaloupky",
+  "Horní Hrdlořezská",
+  "Horní Stromky",
+  "Horníčkova",
+  "Horolezecká",
+  "Horoměřická",
+  "Horoměřická",
+  "Horoušanská",
+  "Horoušanská",
+  "Horovo Nám.",
+  "Horovo Náměstí",
+  "Horská",
+  "Horusická",
+  "Horymírovo Nám.",
+  "Horymírovo Náměstí",
+  "Horákova",
+  "Horáčkova",
+  "Horčičkova",
+  "Horňátecká",
+  "Horšovská",
+  "Horšovská",
+  "Hospodářská",
+  "Hostavická",
+  "Hostavická",
+  "Hostinského",
+  "Hostivařská",
+  "Hostivařské Nám.",
+  "Hostivařské Náměstí",
+  "Hostivická",
+  "Hostivítova",
+  "Hostišovská",
+  "Hostouňská",
+  "Hostošova",
+  "Hostýnská",
+  "Hostýnská",
+  "Houbařská",
+  "Houdova",
+  "Hovorčovická",
+  "Hořanská",
+  "Hořejší Náb.",
+  "Hořejší Nábřeží",
+  "Hořejšího",
+  "Hořelická",
+  "Hořická",
+  "Hořovského",
+  "Hořínecká",
+  "Hoškova",
+  "Hoštická",
+  "Hošťálkova",
+  "Hrabačovská",
+  "Hrabákova",
+  "Hrachovská",
+  "Hrad I. Nádvoří",
+  "Hrad Ii. Nádvoří",
+  "Hrad Iii. Nádvoří",
+  "Hradební",
+  "Hradecká",
+  "Hradeckých",
+  "Hradečkova",
+  "Hradešínská",
+  "Hradčanské Nám.",
+  "Hradčanské Náměstí",
+  "Hraniční",
+  "Hrazanská",
+  "Hrazanská",
+  "Hrdinova",
+  "Hrdličkova",
+  "Hrdlořezská",
+  "Hrdoňovická",
+  "Hroncova",
+  "Hronovská",
+  "Hronětická",
+  "Hrozenkovská",
+  "Hroznová",
+  "Hrozného",
+  "Hrubého",
+  "Hrubínova",
+  "Hrudičkova",
+  "Hrusická",
+  "Hruškovská",
+  "Hruškovská",
+  "Hrušovanské Nám.",
+  "Hrušovanské Náměstí",
+  "Hrušovická",
+  "Hrušovská",
+  "Hrušínského",
+  "Hrušňová",
+  "Hrušňová",
+  "Hrádková",
+  "Hráského",
+  "Huberova",
+  "Hubičkova",
+  "Hubáčkova",
+  "Hudcova",
+  "Hudební",
+  "Hudečkova",
+  "Hudečkova",
+  "Hugo Haase",
+  "Hulanova",
+  "Hulická",
+  "Humenecká",
+  "Humpolecká",
+  "Huntířovská",
+  "Hurbanova",
+  "Husařská",
+  "Husinecká",
+  "Husitská",
+  "Husitská",
+  "Husníkova",
+  "Husova",
+  "Husovo Nám.",
+  "Husovo Náměstí",
+  "Hustopečská",
+  "Hutnická",
+  "Huťská",
+  "Hviezdoslavova",
+  "Hviezdoslavova",
+  "Hvozdecká",
+  "Hvozdnická",
+  "Hvozdíková",
+  "Hvožďanská",
+  "Hvězdonická",
+  "Hvězdova",
+  "Hvězdářská",
+  "Hyacintová",
+  "Hybernská",
+  "Hybešova",
+  "Hynaisova",
+  "Hypšmanova",
+  "Hábova",
+  "Hájecká",
+  "Hájenská",
+  "Hájkova",
+  "Hájovna U Podjezdu",
+  "Hájovna V Šárce",
+  "Hájová",
+  "Hájíčkova",
+  "Hájčí",
+  "Hákova",
+  "Hálkova",
+  "Hálova",
+  "Hálův Statek",
+  "Högerova",
+  "Hübnerové",
+  "Hřbitovní",
+  "Hřebenová",
+  "Hřebíkova",
+  "Hřenská",
+  "Hřibojedská",
+  "Hřibská",
+  "Hříbková",
+  "Hřídelecká",
+  "Hůlkova",
+  "Hůlkova",
+  "Hůrská",
+  "Ibsenova",
+  "Imrychova",
+  "Ingrišova",
+  "Internacionální",
+  "Irkutská",
+  "Irská",
+  "Irvingova",
+  "Italská",
+  "Italská",
+  "Italská",
+  "Ivančická",
+  "Izraelská",
+  "Izraelská",
+  "Jabkenická",
+  "Jablonecká",
+  "Jablonecká",
+  "Jablonského",
+  "Jabloňová",
+  "Jablunkovská",
+  "Jagellonská",
+  "Jagellonská",
+  "Jahodnická",
+  "Jahodová",
+  "Jakobiho",
+  "Jakubovská",
+  "Jakubská",
+  "Jakutská",
+  "Jalodvorská",
+  "Jalovcová",
+  "Jaltská",
+  "Jamborova",
+  "Jamská",
+  "Jana Bílka",
+  "Jana Jindřicha",
+  "Jana Karafiáta",
+  "Jana Kašpara",
+  "Jana Marka",
+  "Jana Masaryka",
+  "Jana Ouřady",
+  "Jana Přibíka",
+  "Jana Růžičky",
+  "Jana Srba",
+  "Jana Zajíce",
+  "Jana Čerstvého",
+  "Jana Želivského",
+  "Janderova",
+  "Jandova",
+  "Janečkova",
+  "Jankovcova",
+  "Jankovská",
+  "Janouchova",
+  "Janouškova",
+  "Janovická",
+  "Janovská",
+  "Janovského",
+  "Jansenova",
+  "Janského",
+  "Jansova",
+  "Jantarová",
+  "Janákova",
+  "Janáčkovo Nábř.",
+  "Janáčkovo Nábř.",
+  "Janáčkovo Nábřeží",
+  "Janáčkovo Nábřeží",
+  "Janýrova",
+  "Jančova",
+  "Jarešova",
+  "Jarkovská",
+  "Jarmily Novotné",
+  "Jarní",
+  "Jarníkova",
+  "Jaromíra Jindry",
+  "Jaromíra Vejvody",
+  "Jaromírova",
+  "Jaroměřská",
+  "Jaroslava Foglara",
+  "Jaroslava Švehly",
+  "Jaroslavická",
+  "Jasanová",
+  "Jaselská",
+  "Jaselská",
+  "Jasenická",
+  "Jasenná",
+  "Jasmínová",
+  "Jasná I",
+  "Jasná Ii",
+  "Jaspisová",
+  "Jateční",
+  "Jaurisova",
+  "Jaurisova",
+  "Javorenská",
+  "Javornická",
+  "Javorová",
+  "Javorská",
+  "Javořická",
+  "Jašíkova",
+  "Jažlovická",
+  "Jedlová",
+  "Jednostranná",
+  "Jednostranná",
+  "Jednotného Zemědělského Družstva",
+  "Jednořadá",
+  "Jelenovská",
+  "Jelení",
+  "Jelínkova",
+  "Jemenská",
+  "Jemnická",
+  "Jenerálka",
+  "Jenečská",
+  "Jenišovská",
+  "Jenská",
+  "Jeníkovická",
+  "Jenštejnská",
+  "Jeremenkova",
+  "Jeremenkova",
+  "Jeremenkova",
+  "Jeremiášova",
+  "Jeremiášova",
+  "Jerevanská",
+  "Jeronýmova",
+  "Jeruzalémská",
+  "Jesenická",
+  "Jeseniova",
+  "Jestřebická",
+  "Jetelová",
+  "Jetřichovická",
+  "Jevanská",
+  "Jezdecká",
+  "Jezdovická",
+  "Jezerní",
+  "Jezerská",
+  "Jezevčí",
+  "Ječná",
+  "Jeřabinová",
+  "Jeřabinová",
+  "Jeřická",
+  "Jeřábkova",
+  "Jeřábnická",
+  "Jeřábová",
+  "Ješetická",
+  "Ještědská",
+  "Ježdíkova",
+  "Ježkova",
+  "Ježovická",
+  "Ježovická",
+  "Ježovská",
+  "Jihlavská",
+  "Jihovýchodní I",
+  "Jihovýchodní Ii",
+  "Jihovýchodní Iii",
+  "Jihovýchodní Iv",
+  "Jihovýchodní Ix",
+  "Jihovýchodní V",
+  "Jihovýchodní Vi",
+  "Jihovýchodní Vii",
+  "Jihovýchodní Viii",
+  "Jihozápadní I",
+  "Jihozápadní Ii",
+  "Jihozápadní Iii",
+  "Jihozápadní Iv",
+  "Jihozápadní V",
+  "Jihozápadní Vi",
+  "Jihočeská",
+  "Jilemnická",
+  "Jilemnická",
+  "Jilemnického",
+  "Jilmová",
+  "Jilská",
+  "Jindrova",
+  "Jindřicha Jindřicha",
+  "Jindřicha Plachty",
+  "Jindřichova",
+  "Jindřišská",
+  "Jinolická",
+  "Jinonická",
+  "Jinonická",
+  "Jinočanská",
+  "Jirenská",
+  "Jirečkova",
+  "Jirkovská",
+  "Jirsákova",
+  "Jirsíkova",
+  "Jiránkova",
+  "Jiráskovo Nám.",
+  "Jiráskovo Náměstí",
+  "Jirčanská",
+  "Jiskrova",
+  "Jistebnická",
+  "Jitkovská",
+  "Jitravská",
+  "Jitravská",
+  "Jitrocelová",
+  "Jitřní",
+  "Jivenská",
+  "Jizerská",
+  "Jičínská",
+  "Jičínská",
+  "Jiřická",
+  "Jiřinková",
+  "Jiřiny Štěpničkové",
+  "Jiřská",
+  "Jiřího Jandy",
+  "Jiřího Mašína",
+  "Jiřího Ze Vtelna",
+  "Jiříčkova",
+  "Jiříčkové",
+  "Jižní I",
+  "Jižní Ii",
+  "Jižní Iii",
+  "Jižní Iv",
+  "Jižní Ix",
+  "Jižní Nám.",
+  "Jižní Náměstí",
+  "Jižní Spojka",
+  "Jižní Spojka",
+  "Jižní Spojka",
+  "Jižní Spojka",
+  "Jižní V",
+  "Jižní Vi",
+  "Jižní Vii",
+  "Jižní Viii",
+  "Jižní Xi",
+  "Jižní Xii",
+  "Jižní Xiii",
+  "Jižní Xiv",
+  "Jižní Xv",
+  "Jižní Xvi",
+  "Jižní Xvii",
+  "Johanitská",
+  "Jordana Jovkova",
+  "Jordánská",
+  "Josefa Bíbrdlíka",
+  "Josefa Houdka",
+  "Josefa Houdka",
+  "Josefa Kočího",
+  "Josefa Němce",
+  "Josefa Vašíčka",
+  "Josefa Šimůnka",
+  "Josefská",
+  "José Martího",
+  "Juarézova",
+  "Jugoslávská",
+  "Jugoslávských Partyzánů",
+  "Jugoslávských Partyzánů",
+  "Jungmannova",
+  "Jungmannova",
+  "Jungmannovo Náměstí",
+  "Junácká",
+  "Jupiterova",
+  "Jurkovičova",
+  "Juárezova",
+  "Jzd",
+  "Jáchymova",
+  "Jáchymova",
+  "Jáchymovská",
+  "Jánošíkova",
+  "Jánská",
+  "Jánský Vršek",
+  "Jíchova",
+  "Jílkova",
+  "Jílovická",
+  "Jílovišťská",
+  "Jílovská",
+  "Jílovská",
+  "Jílová",
+  "Jírova",
+  "Jírovcovo Nám.",
+  "Jírovcovo Náměstí",
+  "Jívanská",
+  "Jívová",
+  "K Austisu",
+  "K Avii",
+  "K Barrandovu",
+  "K Bateriím",
+  "K Bažantnici",
+  "K Belvederu",
+  "K Berance",
+  "K Beranovu",
+  "K Berounce",
+  "K Beránku",
+  "K Betonárně",
+  "K Betáni",
+  "K Blatovu",
+  "K Bohnicím",
+  "K Borovíčku",
+  "K Botiči",
+  "K Brance",
+  "K Brnkám",
+  "K Brusce",
+  "K Brusce",
+  "K Brůdku",
+  "K Bílému Vrchu",
+  "K Běchovicům",
+  "K Březince",
+  "K Březiněvsi",
+  "K Břečkám",
+  "K Celinám",
+  "K Cementárně",
+  "K Chabům",
+  "K Chabům",
+  "K Chaloupce",
+  "K Chaloupkám",
+  "K Chatám",
+  "K Chmelnici",
+  "K Chumberku",
+  "K Cihelně",
+  "K Cikánce",
+  "K Cíli",
+  "K Dalejím",
+  "K Dobré Vodě",
+  "K Dobré Vodě",
+  "K Dolům",
+  "K Drahani",
+  "K Drahani",
+  "K Drazdům",
+  "K Drsnici",
+  "K Dubinám",
+  "K Dubovému Mlýnu",
+  "K Dubu",
+  "K Dubči",
+  "K Dálnici",
+  "K Dálnici",
+  "K Dýmači",
+  "K Děrám",
+  "K Fantovu Mlýnu",
+  "K Farkám",
+  "K Fialce",
+  "K Fišpance",
+  "K Habrovce",
+  "K Habru",
+  "K Haltýři",
+  "K Havlínu",
+  "K Hluboké Cestě",
+  "K Hlásku",
+  "K Holyni",
+  "K Holému Vrchu",
+  "K Holému Vrchu",
+  "K Homolce",
+  "K Horkám",
+  "K Horkám",
+  "K Horkám",
+  "K Horním Počernicím",
+  "K Horoměřicům",
+  "K Hořavce",
+  "K Hradišti",
+  "K Hrnčířům",
+  "K Hrušovu",
+  "K Hrušovu",
+  "K Hrázi",
+  "K Hutím",
+  "K Hutím",
+  "K Hutím",
+  "K Hádku",
+  "K Háječku",
+  "K Háji",
+  "K Háji",
+  "K Hájku",
+  "K Hájovně",
+  "K Hájovně",
+  "K Hájovně",
+  "K Hájům",
+  "K Hárunce",
+  "K Interně",
+  "K Jalovce",
+  "K Jasánkám",
+  "K Jelenu",
+  "K Jelenám",
+  "K Jezeru",
+  "K Jezeru",
+  "K Jezu",
+  "K Jezírku",
+  "K Jihu",
+  "K Jihu",
+  "K Jinočanům",
+  "K Jinočanům",
+  "K Jižnímu Městu",
+  "K Juliáně",
+  "K Jízdárně",
+  "K Labeškám",
+  "K Ladům",
+  "K Lahovičkám",
+  "K Lahovské",
+  "K Lažance",
+  "K Lesoparku",
+  "K Lesu",
+  "K Lesu",
+  "K Lesíku",
+  "K Letišti",
+  "K Letňanům",
+  "K Libuši",
+  "K Lindě",
+  "K Lipanům",
+  "K Lipinám",
+  "K Lipám",
+  "K Lochkovu",
+  "K Lomu",
+  "K Louži",
+  "K Luhu",
+  "K Lukám",
+  "K Lučinám",
+  "K Lužinám",
+  "K Ládví",
+  "K Ládví",
+  "K Lánu",
+  "K Lávce",
+  "K Lázním",
+  "K Lípě",
+  "K Markétě",
+  "K Matěji",
+  "K Mejtu",
+  "K Metru",
+  "K Metru",
+  "K Milíčovu",
+  "K Mlíčníku",
+  "K Mlýnu",
+  "K Modřanskému Nádraží",
+  "K Mohyle",
+  "K Moravině",
+  "K Moravině",
+  "K Mostku",
+  "K Mostu",
+  "K Motelu",
+  "K Motolu",
+  "K Mírám",
+  "K Měcholupům",
+  "K Měchurce",
+  "K Nedvězí",
+  "K Netlukám",
+  "K Noskovně",
+  "K Nouzovu",
+  "K Nové Vsi",
+  "K Nové Vsi",
+  "K Nové Škole",
+  "K Novému Dvoru",
+  "K Novému Hradu",
+  "K Novému Sídlišti",
+  "K Novým Domkům",
+  "K Nádraží",
+  "K Nádrži",
+  "K Náhonu",
+  "K Náměstí",
+  "K Náplavce",
+  "K Náplavce",
+  "K Návrší",
+  "K Návrší",
+  "K Návsi",
+  "K Obci",
+  "K Obecním Hájovnám",
+  "K Oboře",
+  "K Obsinám",
+  "K Ochozu",
+  "K Ohradě",
+  "K Okrouhlíku",
+  "K Olympiku",
+  "K Opatřilce",
+  "K Opatřilce",
+  "K Oplocení",
+  "K Orionce",
+  "K Osmidomkům",
+  "K Otočce",
+  "K Ovčínu",
+  "K Ovčínu",
+  "K Padesátníku",
+  "K Palečku",
+  "K Panenkám",
+  "K Parku",
+  "K Pastvinám",
+  "K Pazderkám",
+  "K Pekárně",
+  "K Peluňku",
+  "K Petrově Komoře",
+  "K Pitkovicům",
+  "K Podchodu",
+  "K Podjezdu",
+  "K Podjezdu",
+  "K Polím",
+  "K Pomníku",
+  "K Popelce",
+  "K Popelce",
+  "K Potoku",
+  "K Poště",
+  "K Pramenu",
+  "K Prelátům",
+  "K Prádelně",
+  "K Průhonicům",
+  "K Průhonu",
+  "K Průmstavu",
+  "K Pyramidce",
+  "K Pérovně",
+  "K Pískovně",
+  "K Písnici",
+  "K Přehradám",
+  "K Přejezdu",
+  "K Přístavišti",
+  "K Přívozu",
+  "K Radhošti",
+  "K Radonicům",
+  "K Radotínu",
+  "K Radotínu",
+  "K Remízku",
+  "K Rokli",
+  "K Rokytce",
+  "K Rotundě",
+  "K Rovinám",
+  "K Rozkoši",
+  "K Rozmezí",
+  "K Roztokům",
+  "K Rozvodně",
+  "K Rukavičkárně",
+  "K Rybníku",
+  "K Rybníčku",
+  "K Rybníčkům",
+  "K Rybárně",
+  "K Ryšánce",
+  "K Ryšánce",
+  "K Sadu",
+  "K Safině",
+  "K Samoobsluze",
+  "K Samotě",
+  "K Sedlišti",
+  "K Sibřině",
+  "K Sokolovně",
+  "K Sopce",
+  "K Sopce",
+  "K Starému Bubenči",
+  "K Starému Lomu",
+  "K Stavebninám",
+  "K Sukovu",
+  "K Sádkám",
+  "K Sádkám",
+  "K Sídlišti",
+  "K Sídlišti",
+  "K Teplárně",
+  "K Topolům",
+  "K Topírně",
+  "K Transformátoru",
+  "K Trati",
+  "K Trninám",
+  "K Trnkám",
+  "K Trníčku",
+  "K Truhlářce",
+  "K Tržišti",
+  "K Tuchoměřicům",
+  "K Táboru",
+  "K Třebonicům",
+  "K Třešňovce",
+  "K Tůni",
+  "K Ubytovnám",
+  "K Uhříněvsi",
+  "K Uhříněvsi",
+  "K Učilišti",
+  "K Valu",
+  "K Vejvoďáku",
+  "K Velké Ohradě",
+  "K Velké Ohradě",
+  "K Velkému Dvoru",
+  "K Verneráku",
+  "K Viaduktu",
+  "K Vidouli",
+  "K Vilkám",
+  "K Vinici",
+  "K Vinicím",
+  "K Vinoři",
+  "K Vizerce",
+  "K Višňovce",
+  "K Višňovce",
+  "K Višňovému Sadu",
+  "K Vltavě",
+  "K Vlásence",
+  "K Vodici",
+  "K Vodojemu",
+  "K Vodárně",
+  "K Vodě",
+  "K Vrbičkám",
+  "K Vrbě",
+  "K Vrcholu",
+  "K Vrtilce",
+  "K Vršíčku",
+  "K Vyhlídce",
+  "K Vysoké Cestě",
+  "K Vystrkovu",
+  "K Václavce",
+  "K Vápence",
+  "K Váze",
+  "K Výboru",
+  "K Výtopně",
+  "K Výzkumným Ústavům",
+  "K Větrolamu",
+  "K Zabrkům",
+  "K Zadní Kopanině",
+  "K Zadní Kopanině",
+  "K Zahradnictví",
+  "K Zahradám",
+  "K Zahrádkám",
+  "K Zastávce",
+  "K Zatáčce",
+  "K Zelené Louce",
+  "K Zeleným Domkům",
+  "K Zelenči",
+  "K Zámku",
+  "K Zátiší",
+  "K Závodišti",
+  "K Závorám",
+  "K Závěrce",
+  "K Závětinám",
+  "K Údolí",
+  "K Údolí Hvězd",
+  "K Újezdu",
+  "K Ústavu",
+  "K Úvozu",
+  "K Černošicím",
+  "K Červenému Dvoru",
+  "K Červenému Dvoru",
+  "K Červenému Dvoru",
+  "K Červenému Vrchu",
+  "K Čestlicům",
+  "K Čihadlům",
+  "K Ďáblicům",
+  "K Řece",
+  "K Řeporyjím",
+  "K Řeporyjím",
+  "K Říčanům",
+  "K Šafránce",
+  "K Šafránce",
+  "K Šancím",
+  "K Šeberovu",
+  "K Šeberáku",
+  "K Šedivce",
+  "K Šubrtce",
+  "K Železnici",
+  "K Žižkovu",
+  "Kabeláčova",
+  "Kabešova",
+  "Kabátové",
+  "Kadaňská",
+  "Kadeřávkovská",
+  "Kafkova",
+  "Kahovská",
+  "Kaizlovy Sady",
+  "Kakosova",
+  "Kakostová",
+  "Kalabisova",
+  "Kalašova",
+  "Kalinová",
+  "Kališnická",
+  "Kališťská",
+  "Kalská",
+  "Kalvodova",
+  "Kamelova",
+  "Kamencová",
+  "Kamenická",
+  "Kamenická",
+  "Kamenitá",
+  "Kamenná",
+  "Kameníků",
+  "Kamerunská",
+  "Kampanova",
+  "Kamzíková",
+  "Kamýcká",
+  "Kamýcká",
+  "Kamýcká",
+  "Kanadská",
+  "Kandertova",
+  "Kanovnická",
+  "Kapitulská",
+  "Kaplanova",
+  "Kaplická",
+  "Kapraďová",
+  "Kaprova",
+  "Kaprova",
+  "Kapucínská",
+  "Karafiátová",
+  "Karasova",
+  "Karasovská",
+  "Kardausova",
+  "Kardašovská",
+  "Kardašovská",
+  "Karenova",
+  "Karfíkova",
+  "Karla Engliše",
+  "Karla Hlaváčka",
+  "Karla Kryla",
+  "Karla Křížka",
+  "Karla Michala",
+  "Karla Rachůnka",
+  "Karla Tomáše",
+  "Karla Zicha",
+  "Karla Černého",
+  "Karlická",
+  "Karlova",
+  "Karlovarská",
+  "Karlovarská",
+  "Karlovická",
+  "Karlovo Nám.",
+  "Karlovo Nám.",
+  "Karlovo Náměstí",
+  "Karlovo Náměstí",
+  "Karlínské Nám.",
+  "Karlínské Náměstí",
+  "Karlštejnská",
+  "Karmelitská",
+  "Karolinská",
+  "Karoliny Světlé",
+  "Karpatská",
+  "Kartounářů",
+  "Kartouzská",
+  "Kasalická",
+  "Kateřinská",
+  "Kateřinské Nám.",
+  "Kateřinské Náměstí",
+  "Katovická",
+  "Katusická",
+  "Kavkazská",
+  "Kazaňská",
+  "Kazašská",
+  "Kazimírova",
+  "Kaznějovská",
+  "Kazín",
+  "Kazínská",
+  "Kačerovská",
+  "Kačínská",
+  "Kaňkova",
+  "Kaňkovského",
+  "Kaňovská",
+  "Kašeho",
+  "Kaškova",
+  "Kašovická",
+  "Kašparovo Nám.",
+  "Kašparovo Náměstí",
+  "Kašperská",
+  "Kaštanová",
+  "Kbelská",
+  "Kbelská",
+  "Kbelská",
+  "Kbelská",
+  "Kdoulová",
+  "Ke Březině",
+  "Ke Břvům",
+  "Ke Cvičišti",
+  "Ke Dračkám",
+  "Ke Dráze",
+  "Ke Dvoru",
+  "Ke Džbánu",
+  "Ke Garážím",
+  "Ke Golfu",
+  "Ke Goniu",
+  "Ke Hlásce",
+  "Ke Hrádku",
+  "Ke Hrázi",
+  "Ke Hrázi",
+  "Ke Hřbitovu",
+  "Ke Hřišti",
+  "Ke Kablu",
+  "Ke Kablu",
+  "Ke Kalvárii",
+  "Ke Kaménce",
+  "Ke Kamínce",
+  "Ke Kamýku",
+  "Ke Kapličce",
+  "Ke Kapslovně",
+  "Ke Karlovu",
+  "Ke Kateřinkám",
+  "Ke Kazínu",
+  "Ke Kašně",
+  "Ke Kinu",
+  "Ke Kladivům",
+  "Ke Klimentce",
+  "Ke Klubovně",
+  "Ke Klínku",
+  "Ke Klínku",
+  "Ke Klíčovu",
+  "Ke Koh-I-Nooru",
+  "Ke Kolodějskému Zámku",
+  "Ke Kolodějům",
+  "Ke Kolonii",
+  "Ke Konstruktivě",
+  "Ke Kopečku",
+  "Ke Korunce",
+  "Ke Kostelu",
+  "Ke Kostelíčku",
+  "Ke Kotlářce",
+  "Ke Koulce",
+  "Ke Koupališti",
+  "Ke Kovárně",
+  "Ke Kozím Hřbetům",
+  "Ke Královicům",
+  "Ke Krči",
+  "Ke Krčské Stráni",
+  "Ke Kulišce",
+  "Ke Kulturnímu Domu",
+  "Ke Kurtům",
+  "Ke Kyjovu",
+  "Ke Kálku",
+  "Ke Křížku",
+  "Ke Křížkám",
+  "Ke Lhoteckému Lesu",
+  "Ke Mlýnku",
+  "Ke Mlýnu",
+  "Ke Mlýnu",
+  "Ke Schodům",
+  "Ke Skalce",
+  "Ke Skalkám",
+  "Ke Skladům",
+  "Ke Sklárně",
+  "Ke Skále",
+  "Ke Slatinám",
+  "Ke Slivenci",
+  "Ke Smrčině",
+  "Ke Smíchovu",
+  "Ke Smíchovu",
+  "Ke Splávku",
+  "Ke Spofě",
+  "Ke Spořilovu",
+  "Ke Spálence",
+  "Ke Srážku",
+  "Ke Stadionu",
+  "Ke Stanici",
+  "Ke Starému Hřišti",
+  "Ke Starým Rybníkům",
+  "Ke Stinkovskému Rybníku",
+  "Ke Strašnické",
+  "Ke Strouze",
+  "Ke Stráni",
+  "Ke Strži",
+  "Ke Studni",
+  "Ke Studni",
+  "Ke Studánce",
+  "Ke Stupicím",
+  "Ke Stáčírně",
+  "Ke Stírce",
+  "Ke Střelnici",
+  "Ke Střelnici",
+  "Ke Sv. Izidoru",
+  "Ke Třem Mostům",
+  "Ke Xaverovu",
+  "Ke Zbraslavi",
+  "Ke Zbrojnici",
+  "Ke Zbuzanům",
+  "Ke Zdibům",
+  "Ke Zdravotnímu Středisku",
+  "Ke Zděři",
+  "Ke Zlatému Kopci",
+  "Ke Zličínu",
+  "Ke Znaku",
+  "Ke Zvonici",
+  "Ke Zvoničce",
+  "Ke Školce",
+  "Ke Škole",
+  "Ke Šmejkalu",
+  "Ke Štvanici",
+  "Ke Štítu",
+  "Ke Štěpcům",
+  "Ke Štěrkovně",
+  "Ke Švestkovce",
+  "Kecova",
+  "Kejhova",
+  "Kejnická",
+  "Kellnerova",
+  "Keltská",
+  "Keltů",
+  "Kelvinova",
+  "Kemrova",
+  "Keplerova",
+  "Keplerova",
+  "Keramická",
+  "Kesnerka",
+  "Kestřanská",
+  "Keteňská",
+  "Kettnerova",
+  "Keřová",
+  "Khodlova",
+  "Kischova",
+  "Kišiněvská",
+  "Kladenská",
+  "Kladenská",
+  "Kladenská",
+  "Kladinovská",
+  "Kladrubská",
+  "Kladská",
+  "Klamovka",
+  "Klapkova",
+  "Klapálkova",
+  "Klatovská",
+  "Klausova",
+  "Klecandova",
+  "Klecanská",
+  "Klenečská",
+  "Klenovická",
+  "Klenovská",
+  "Klenová",
+  "Klečkova",
+  "Klečákova",
+  "Klešická",
+  "Klicperova",
+  "Klidná",
+  "Klihařská",
+  "Klikatá",
+  "Klikatá",
+  "Klimentská",
+  "Klivarova",
+  "Kloboukova",
+  "Kloboučnická",
+  "Kloknerova",
+  "Klokotská",
+  "Klostermannova",
+  "Klouzková",
+  "Kludských",
+  "Klukovická",
+  "Klánova",
+  "Klánova",
+  "Klánova",
+  "Klánovická",
+  "Klánovická",
+  "Klárov",
+  "Klášterecká",
+  "Klášterská",
+  "Klášterského",
+  "Klímova",
+  "Klímova",
+  "Klínecká",
+  "Klínovecká",
+  "Klínová",
+  "Klírova",
+  "Klíčanská",
+  "Klíčova",
+  "Klíčovská",
+  "Klíčovská",
+  "Kmochova",
+  "Knínická",
+  "Kněževeská",
+  "Kněžická",
+  "Koberkova",
+  "Kobrova",
+  "Kobyliská",
+  "Kobyliské Nám.",
+  "Kobyliské Náměstí",
+  "Kobylákova",
+  "Kochanova",
+  "Kocianova",
+  "Koclířova",
+  "Kocourova",
+  "Kodaňská",
+  "Kodicilova",
+  "Kodymova",
+  "Kohoutovská",
+  "Kohoutových",
+  "Kojetická",
+  "Kojická",
+  "Kokořínská",
+  "Kolbenova",
+  "Kolbenova",
+  "Kolbenova",
+  "Koldínova",
+  "Kolejní",
+  "Kolektivní",
+  "Kolešovská",
+  "Kollárova",
+  "Kolmistrova",
+  "Kolmá",
+  "Kolocova",
+  "Kolodějská",
+  "Kolonie U Obecní Cihelny",
+  "Kolonka",
+  "Kolovečská",
+  "Kolovratská",
+  "Kolová",
+  "Kolátorova",
+  "Koláčkova",
+  "Koláře Kaliny",
+  "Kolářova",
+  "Kolínova",
+  "Kolínská",
+  "Kolčavka",
+  "Komenského Nám.",
+  "Komenského Náměstí",
+  "Komornická",
+  "Komořanská",
+  "Komořanská",
+  "Komořanská",
+  "Komunardů",
+  "Komárkova",
+  "Komárovská",
+  "Koncová",
+  "Konecchlumského",
+  "Konečná",
+  "Kongresová",
+  "Konojedská",
+  "Konopišťská",
+  "Konopova",
+  "Konopáskova",
+  "Konstantinova",
+  "Konvalinková",
+  "Konviktská",
+  "Konzumní",
+  "Konzumní",
+  "Koníčkovo Nám.",
+  "Koníčkovo Náměstí",
+  "Konětopská",
+  "Koněvova",
+  "Konšelská",
+  "Konžská",
+  "Kopalova",
+  "Kopanina",
+  "Kopanská",
+  "Kopeckého",
+  "Koperníkova",
+  "Kopečná",
+  "Kopretinová",
+  "Kopřivnická",
+  "Korandova",
+  "Korandova",
+  "Korunní",
+  "Korunní",
+  "Korunní",
+  "Korunovační",
+  "Korunovační",
+  "Korybutova",
+  "Korycanská",
+  "Korytná",
+  "Kosatcová",
+  "Kosařova",
+  "Kosmická",
+  "Kosmonoská",
+  "Kosova",
+  "Kosořická",
+  "Kosořská",
+  "Kostelecká",
+  "Kostelecká",
+  "Kostelní",
+  "Kostelní Náměstí",
+  "Kostečná",
+  "Kostková",
+  "Kostlivého",
+  "Kostnické Nám.",
+  "Kostnické Náměstí",
+  "Kostomlatská",
+  "Kostrbova",
+  "Kostřínská",
+  "Kosárkovo Nábř.",
+  "Kosárkovo Nábřeží",
+  "Kosí",
+  "Koterovská",
+  "Koterovská",
+  "Kotevní",
+  "Kotlaska",
+  "Kotlářka",
+  "Kotorská",
+  "Kotovka",
+  "Kotrčová",
+  "Kotršálova",
+  "Kotíkova",
+  "Kotěrova",
+  "Koubkova",
+  "Koubkova",
+  "Koubova",
+  "Koukolová",
+  "Koulka",
+  "Koulova",
+  "Kounická",
+  "Kounovská",
+  "Koutská",
+  "Kouřimská",
+  "Kovanecká",
+  "Kovařovicova",
+  "Kovriginova",
+  "Kováků",
+  "Kovárenská",
+  "Kovářova",
+  "Kovářská",
+  "Kováříkova",
+  "Kozinova",
+  "Kozinovo Náměstí",
+  "Kozlova",
+  "Kozlovská",
+  "Kozmíkova",
+  "Kozomínská",
+  "Kozácká",
+  "Kozákovská",
+  "Kozáková",
+  "Kozí",
+  "Kočova",
+  "Kořenského",
+  "Košařova",
+  "Košická",
+  "Koštířova",
+  "Košátecká",
+  "Košíkářská",
+  "Košířské Nám.",
+  "Košířské Náměstí",
+  "Košťálkova",
+  "Koťátkova",
+  "Koželužská",
+  "Kožlanská",
+  "Kožná",
+  "Kožíškova",
+  "Kpt. Nálepky",
+  "Kpt. Stránského",
+  "Krabošická",
+  "Krahulčí",
+  "Krajanská",
+  "Krajní",
+  "Krajová",
+  "Krajánkova",
+  "Krakovská",
+  "Kralická",
+  "Kralupská",
+  "Krameriova",
+  "Kramlova",
+  "Kramolná",
+  "Kramolínská",
+  "Kramperova",
+  "Kraslická",
+  "Krasnická",
+  "Krasnojarská",
+  "Kratochvílova",
+  "Krausova",
+  "Krbická",
+  "Krchlebská",
+  "Krejnická",
+  "Krejčího",
+  "Kremličkova",
+  "Kremnická",
+  "Kremnická",
+  "Krhanická",
+  "Krhanická",
+  "Kristiánova",
+  "Kriváňská",
+  "Krkonošská",
+  "Krnovská",
+  "Krnská",
+  "Krocínova",
+  "Krocínovská",
+  "Kroftova",
+  "Krohova",
+  "Krokova",
+  "Krolmusova",
+  "Kropáčkova",
+  "Krosenská",
+  "Kroupova",
+  "Kroupova",
+  "Krouzova",
+  "Krovova",
+  "Krteňská",
+  "Kruhová",
+  "Krumlovská",
+  "Krupkovo Nám.",
+  "Krupkovo Náměstí",
+  "Krupná",
+  "Krupská",
+  "Krušovická",
+  "Kružberská",
+  "Krylovecká",
+  "Krylovecká",
+  "Krymská",
+  "Krynická",
+  "Krystalová",
+  "Kryšpínova",
+  "Kryštofova",
+  "Krále Václava Iv.",
+  "Králodvorská",
+  "Králova",
+  "Královická",
+  "Královny Žofie",
+  "Královská Obora",
+  "Královská Obora",
+  "Krásnolipská",
+  "Krásného",
+  "Krásova",
+  "Krátká",
+  "Krátká",
+  "Krátkého",
+  "Krátký Lán",
+  "Krčmářovská",
+  "Krčská",
+  "Krčínovo Nám.",
+  "Krčínovo Náměstí",
+  "Krčínská",
+  "Krňovická",
+  "Krškova",
+  "Kubatova",
+  "Kubaštova",
+  "Kubelíkova",
+  "Kubišova",
+  "Kubištova",
+  "Kubova",
+  "Kubánské Nám.",
+  "Kubánské Náměstí",
+  "Kubíkova",
+  "Kubínova",
+  "Kuchařská",
+  "Kudeříkové",
+  "Kudrnova",
+  "Kukelská",
+  "Kukelská",
+  "Kukulova",
+  "Kukulova",
+  "Kukučínova",
+  "Kulhavého",
+  "Kulhánkovská",
+  "Kuncova",
+  "Kundratka",
+  "Kunešova",
+  "Kunická",
+  "Kunratická",
+  "Kunratická Spojka",
+  "Kunratická Spojka",
+  "Kuní",
+  "Kuní",
+  "Kunínova",
+  "Kunčická",
+  "Kunětická",
+  "Kupeckého",
+  "Kupkova",
+  "Kurandové",
+  "Kurkova",
+  "Kurta Konráda",
+  "Kurzova",
+  "Kurčatovova",
+  "Kusá",
+  "Kusého",
+  "Kutilova",
+  "Kutnauerovo Náměstí",
+  "Kutnohorská",
+  "Kutnohorská",
+  "Kutrovická",
+  "Kuttelwascherova",
+  "Kutvirtova",
+  "Kučerova",
+  "Kučerové",
+  "Kuťatská",
+  "Kuželova",
+  "Kvapilova",
+  "Kvasinská",
+  "Kvestorská",
+  "Květinková",
+  "Květinářská",
+  "Květnická",
+  "Květnová",
+  "Květnového Povstání",
+  "Květnového Povstání",
+  "Květnového Vítězství",
+  "Květnového Vítězství",
+  "Květná",
+  "Květoslavova",
+  "Květová",
+  "Kyjevská",
+  "Kyjevská",
+  "Kyjovská",
+  "Kyjská",
+  "Kyjská",
+  "Kykalova",
+  "Kymrova",
+  "Kynická",
+  "Kyselova",
+  "Kyslíková",
+  "Kysucká",
+  "Kysúcká",
+  "Kytlická",
+  "Kytínská",
+  "Kácovská",
+  "Kádnerova",
+  "Kálikova",
+  "Kálmánova",
+  "Káranská",
+  "Křejpského",
+  "Křelovická",
+  "Křemelná",
+  "Křemencova",
+  "Křemenná",
+  "Křemenáčová",
+  "Křemílkova",
+  "Křenická",
+  "Křenova",
+  "Křepelčí",
+  "Křepelčí",
+  "Křesadlova",
+  "Křesanovská",
+  "Křeslická",
+  "Křesomyslova",
+  "Křešínská",
+  "Křimická",
+  "Křimovská",
+  "Křivatcová",
+  "Křivenická",
+  "Křivoklátská",
+  "Křivá",
+  "Křičkova",
+  "Křišťanova",
+  "Křišťálová",
+  "Křižovnická",
+  "Křižovnické Nám.",
+  "Křižovnické Náměstí",
+  "Křižíkova",
+  "Křižíkova",
+  "Křovinovo Nám.",
+  "Křovinovo Náměstí",
+  "Křtinská",
+  "Kříženeckého Nám.",
+  "Kříženeckého Náměstí",
+  "Křížkovského",
+  "Křížová",
+  "Křížová",
+  "Labská",
+  "Labětínská",
+  "Ladislava Coňka",
+  "Ladova",
+  "Laglerové",
+  "Lahovská",
+  "Lahovská",
+  "Lamačova",
+  "Langweilova",
+  "Lannova",
+  "Lanýžová",
+  "Lanžhotská",
+  "Lanžovská",
+  "Laténská",
+  "Laubova",
+  "Laudonova",
+  "Laudova",
+  "Laurinova",
+  "Lazarská",
+  "Lazarská",
+  "Lačnovská",
+  "Lažanská",
+  "Lažanská",
+  "Lažanského",
+  "Lebeděvova",
+  "Ledařská",
+  "Ledecká",
+  "Ledečská",
+  "Ledkovská",
+  "Lednická",
+  "Lednová",
+  "Ledvická",
+  "Ledvinova",
+  "Ledč",
+  "Ledčická",
+  "Legerova",
+  "Legerova",
+  "Legerova",
+  "Legerova",
+  "Legionářů",
+  "Lehárova",
+  "Leitzova",
+  "Leknínová",
+  "Leopoldova",
+  "Leskovecká",
+  "Lesnická",
+  "Lesného",
+  "Lesní",
+  "Lessnerova",
+  "Lesáků",
+  "Letců",
+  "Letecká",
+  "Letenská",
+  "Letenské Nám.",
+  "Letenské Nám.",
+  "Letenské Náměstí",
+  "Letenské Náměstí",
+  "Letenské Sady",
+  "Letní",
+  "Letohradská",
+  "Letovská",
+  "Letňanská",
+  "Letňanská",
+  "Levandulová",
+  "Levobřežní",
+  "Levského",
+  "Levá",
+  "Lexova",
+  "Lečkova",
+  "Lešanská",
+  "Lešenská",
+  "Lešetínská",
+  "Lešovská",
+  "Leštínská",
+  "Lhenická",
+  "Lhotecká",
+  "Lhotecká",
+  "Lhotská",
+  "Lhotákova",
+  "Liberecká",
+  "Liberijská",
+  "Libečkova",
+  "Libeňská",
+  "Libeňský Ostrov",
+  "Libeňský Ostrov",
+  "Libeřská",
+  "Libichovská",
+  "Libická",
+  "Libišanská",
+  "Libišská",
+  "Libkovská",
+  "Liblická",
+  "Liblická",
+  "Libochovická",
+  "Libocká",
+  "Liborova",
+  "Libotovská",
+  "Libovická",
+  "Libočanská",
+  "Liboňovská",
+  "Libošovická",
+  "Libuňská",
+  "Libušina",
+  "Libušská",
+  "Libušská",
+  "Libušská",
+  "Libušská",
+  "Libáňská",
+  "Libínská",
+  "Libčanská",
+  "Libčická",
+  "Liběchovská",
+  "Libědická",
+  "Liběšická",
+  "Libřická",
+  "Lichá",
+  "Lidečská",
+  "Lidická",
+  "Lidického",
+  "Lihovarská",
+  "Liliová",
+  "Lilková",
+  "Limuzská",
+  "Limuzská",
+  "Lindavská",
+  "Lindleyova",
+  "Lindnerova",
+  "Linhartova",
+  "Linhartská",
+  "Lipanská",
+  "Lipecká",
+  "Lipenecká",
+  "Lipenská",
+  "Lipenská",
+  "Lipenské Nám.",
+  "Lipenské Náměstí",
+  "Lipnická",
+  "Lipoltická",
+  "Lipovická",
+  "Lipovská",
+  "Lipová Alej",
+  "Lipové Náměstí",
+  "Lipského",
+  "Lipí",
+  "Lisabonská",
+  "Lisabonská",
+  "Listopadová",
+  "Lisztova",
+  "Litavská",
+  "Litevská",
+  "Litická",
+  "Litochlebská",
+  "Litoměřická",
+  "Litoměřická",
+  "Litovická",
+  "Litošická",
+  "Litošická",
+  "Litožnická",
+  "Litvínovská",
+  "Litvínovská",
+  "Livornská",
+  "Lišanská",
+  "Lišická",
+  "Liškova",
+  "Lišovická",
+  "Liščí",
+  "Liščí",
+  "Lnářská",
+  "Lobečská",
+  "Lochenická",
+  "Lochkovská",
+  "Lochotínská",
+  "Lodecká",
+  "Lodní Mlýny",
+  "Loděnická",
+  "Lodžská",
+  "Lodžská",
+  "Lohenická",
+  "Lohniského",
+  "Lojovická",
+  "Lojovická",
+  "Lojovická",
+  "Lolkova",
+  "Lomařská",
+  "Lomecká",
+  "Lomená",
+  "Lomnická",
+  "Lomnického",
+  "Lomová",
+  "Londýnská",
+  "Loosova",
+  "Lopatecká",
+  "Lopatecká",
+  "Lopuchová",
+  "Loretánská",
+  "Loretánské Nám.",
+  "Loretánské Náměstí",
+  "Losinská",
+  "Lotyšská",
+  "Loucká",
+  "Loudova",
+  "Lounská",
+  "Lounských",
+  "Loutkářská",
+  "Loučanská",
+  "Loučimská",
+  "Loučná",
+  "Louňovická",
+  "Lovecká",
+  "Lovosická",
+  "Lovosická",
+  "Lovosická",
+  "Lovčenská",
+  "Lovčická",
+  "Lozická",
+  "Lošetická",
+  "Lošáková",
+  "Lstibořská",
+  "Lubenecká",
+  "Lublaňská",
+  "Lublaňská",
+  "Lublinská",
+  "Lubnická",
+  "Lucemburská",
+  "Lucemburská",
+  "Lucinková",
+  "Ludmilina",
+  "Ludvíkova",
+  "Luhovská",
+  "Lukavecká",
+  "Lukavského",
+  "Lukešova",
+  "Lukešova",
+  "Lukovská",
+  "Lukášova",
+  "Lumiérů",
+  "Lumírova",
+  "Lumírova",
+  "Luníkovská",
+  "Lupenická",
+  "Lupáčova",
+  "Lutínská",
+  "Luční",
+  "Luštěnická",
+  "Lužanská",
+  "Lužecká",
+  "Lužická",
+  "Lužnická",
+  "Lužná",
+  "Lužní",
+  "Lužská",
+  "Lvovská",
+  "Lysinská",
+  "Lysolajská",
+  "Lysolajské Údolí",
+  "Lyčkovo Nám.",
+  "Lyčkovo Náměstí",
+  "Lyžařská",
+  "Ládevská",
+  "Lánovská",
+  "Lánská",
+  "Lásenická",
+  "Láskova",
+  "Lázeňská",
+  "Lékařská",
+  "Lékořicová",
+  "Líbalova",
+  "Líbeznická",
+  "Lípová",
+  "Lískovická",
+  "Lísková",
+  "Líšnická",
+  "Lýskova",
+  "M. J. Lermontova",
+  "Macešková",
+  "Macharovo Nám.",
+  "Macharovo Náměstí",
+  "Machatého",
+  "Machkova",
+  "Machnova",
+  "Machovcova",
+  "Machovická",
+  "Machovská",
+  "Machuldova",
+  "Macháčkova",
+  "Madarova",
+  "Madaťjanova",
+  "Madridská",
+  "Magd. Rettigové",
+  "Magdalény Rettigové",
+  "Magistrů",
+  "Magnitogorská",
+  "Mahenova",
+  "Mahlerovy Sady",
+  "Mahulenina",
+  "Maiselova",
+  "Maiselova",
+  "Majerové",
+  "Majerského",
+  "Makedonská",
+  "Makovská",
+  "Makovského",
+  "Maková",
+  "Malachitová",
+  "Malebná",
+  "Malenická",
+  "Malešická",
+  "Malešická",
+  "Malešická",
+  "Malešické Nám.",
+  "Malešické Náměstí",
+  "Malešovská",
+  "Malinová",
+  "Maličká",
+  "Malkovského",
+  "Malletova",
+  "Malletova",
+  "Malobřevnovská",
+  "Malostranské Nábř.",
+  "Malostranské Nábřeží",
+  "Malostranské Náměstí",
+  "Malotická",
+  "Malovická",
+  "Maltézské Nám.",
+  "Maltézské Náměstí",
+  "Malá",
+  "Malá Bylanská",
+  "Malá Houdova",
+  "Malá Klášterní",
+  "Malá Lada",
+  "Malá Michnovka",
+  "Malá Plynární",
+  "Malá Skloněná",
+  "Malá Smidarská",
+  "Malá Tyršovka",
+  "Malá Xaveriova",
+  "Malá Štupartská",
+  "Malá Štěpánská",
+  "Malátova",
+  "Malé Nám.",
+  "Malé Náměstí",
+  "Malého",
+  "Malínská",
+  "Malířská",
+  "Malý Dvůr",
+  "Malý Okrouhlík",
+  "Malšovická",
+  "Malšovské Nám.",
+  "Malšovské Náměstí",
+  "Mandloňová",
+  "Mandova",
+  "Mansfeldova",
+  "Manská Zahrada",
+  "Mantovská",
+  "Manželů Dostálových",
+  "Manželů Kotrbových",
+  "Manželů Lyčkových",
+  "Marciho",
+  "Marešova",
+  "Marie Cibulkové",
+  "Marie Podvalové",
+  "Mariánská",
+  "Mariánská",
+  "Mariánské Hradby",
+  "Mariánské Hradby",
+  "Mariánské Nám.",
+  "Mariánské Náměstí",
+  "Markova",
+  "Markupova",
+  "Markušova",
+  "Markvartická",
+  "Markyta",
+  "Markétská",
+  "Maroldova",
+  "Martinelliho",
+  "Martinická",
+  "Martinova",
+  "Martinovská",
+  "Martinská",
+  "Marty Krásové",
+  "Marvanova",
+  "Maršovská",
+  "Masarykovo Nábř.",
+  "Masarykovo Nábř.",
+  "Masarykovo Nábřeží",
+  "Masarykovo Nábřeží",
+  "Masná",
+  "Matek",
+  "Matenská",
+  "Maternova",
+  "Mateřská",
+  "Mateřídoušková",
+  "Matjuchinova",
+  "Matoušova",
+  "Mattioliho",
+  "Matúškova",
+  "Matěchova",
+  "Matějkova",
+  "Matějovského",
+  "Matějská",
+  "Maxovská",
+  "Mazancova",
+  "Mazovská",
+  "Mazurská",
+  "Maďarská",
+  "Maňákova",
+  "Mařatkova",
+  "Mařákova",
+  "Maříkova",
+  "Mašatova",
+  "Maškova",
+  "Mašovická",
+  "Maštěřovského",
+  "Mašínova",
+  "Mechovka",
+  "Mechová",
+  "Medinská",
+  "Medkova",
+  "Medlovská",
+  "Medová",
+  "Meduňková",
+  "Meinlinova",
+  "Mejstříkova",
+  "Melantrichova",
+  "Meliorační",
+  "Melodická",
+  "Melounová",
+  "Menclova",
+  "Mendelova",
+  "Mendíků",
+  "Menšíkova",
+  "Menšíkovská",
+  "Merhoutova",
+  "Merkurova",
+  "Meruňková",
+  "Meskářova",
+  "Meteorologická",
+  "Meteorologická",
+  "Metodějova",
+  "Metujská",
+  "Mexická",
+  "Mezi Chatami",
+  "Mezi Domky",
+  "Mezi Domy",
+  "Mezi Humny",
+  "Mezi Lysinami",
+  "Mezi Lány",
+  "Mezi Poli",
+  "Mezi Potoky",
+  "Mezi Rolemi",
+  "Mezi Rybníky",
+  "Mezi Sklady",
+  "Mezi Stráněmi",
+  "Mezi Vodami",
+  "Mezi Úvozy",
+  "Mezi Školami",
+  "Mezibranská",
+  "Mezihorská",
+  "Mezihoří",
+  "Mezilehlá",
+  "Mezilesní",
+  "Mezilesí",
+  "Meziluží",
+  "Mezipolí",
+  "Mezitraťová",
+  "Mezitraťová",
+  "Mezitraťová",
+  "Mezivrší",
+  "Meziškolská",
+  "Mečislavova",
+  "Mečovská",
+  "Mečíková",
+  "Michalovicova",
+  "Michalská",
+  "Michelangelova",
+  "Michelská",
+  "Michelská",
+  "Michnova",
+  "Michnovka",
+  "Mickiewiczova",
+  "Mikanova",
+  "Mikova",
+  "Mikovcova",
+  "Mikovická",
+  "Mikulandská",
+  "Mikuleckého",
+  "Mikulova",
+  "Mikulovická",
+  "Mikuláše Z Husi",
+  "Mikulášská",
+  "Mikulčická",
+  "Mikšovského",
+  "Milady Horákové",
+  "Milady Horákové",
+  "Milady Horákové",
+  "Milady Horákové",
+  "Milady Horákové",
+  "Milana Kadlece",
+  "Milenovská",
+  "Milerova",
+  "Miletická",
+  "Miletínská",
+  "Milevská",
+  "Milevská",
+  "Milešovská",
+  "Milotická",
+  "Milovická",
+  "Milovická",
+  "Milánská",
+  "Milínská",
+  "Milíčova",
+  "Milíčovská",
+  "Mimoňská",
+  "Minaříkova",
+  "Minerální",
+  "Minická",
+  "Minská",
+  "Miranova",
+  "Miroslava Hajna",
+  "Miroslava Hamra",
+  "Mirotická",
+  "Mirotická",
+  "Mirovická",
+  "Mirošovická",
+  "Mirošovská",
+  "Mistrovská",
+  "Mistřínská",
+  "Miřetická",
+  "Miškovická",
+  "Mladenovova",
+  "Mladoboleslavská",
+  "Mladoboleslavská",
+  "Mladoboleslavská",
+  "Mladoboleslavská",
+  "Mladoboleslavská",
+  "Mladotická",
+  "Mladotova",
+  "Mladých",
+  "Mladých Běchovic",
+  "Mladčina",
+  "Mladějovská",
+  "Mlynářská",
+  "Mládeže",
+  "Mládežnická",
+  "Mládkova",
+  "Mládí",
+  "Mlázovická",
+  "Mlékárenská",
+  "Mlýnská",
+  "Mlýnská",
+  "Mnichovická",
+  "Mochovská",
+  "Mochovská",
+  "Modenská",
+  "Modlanská",
+  "Modletická",
+  "Modletínská",
+  "Modravská",
+  "Modrá",
+  "Modrého",
+  "Modřanská",
+  "Modřanská",
+  "Modřanská",
+  "Modřanská",
+  "Modřínová",
+  "Mohelnická",
+  "Mohylová",
+  "Mojmírova",
+  "Mokrá",
+  "Mokřanská",
+  "Moldavská",
+  "Molitorovská",
+  "Molákova",
+  "Mongolská",
+  "Moravanská",
+  "Moravanů",
+  "Moravská",
+  "Morseova",
+  "Morstadtova",
+  "Morušová",
+  "Morušová",
+  "Morávkova",
+  "Moskevská",
+  "Mostecká",
+  "Motolská",
+  "Moulíkova",
+  "Moysesova",
+  "Mozambická",
+  "Mozartova",
+  "Mošnova",
+  "Možného",
+  "Mramorová",
+  "Mratínská",
+  "Mračnická",
+  "Mrkosova",
+  "Mrkvičkova",
+  "Mrákovská",
+  "Mrázkova",
+  "Mrázovka",
+  "Mráčkova",
+  "Mrštíkova",
+  "Mrštíkova",
+  "Muchomůrková",
+  "Muchova",
+  "Mukařovská",
+  "Mukařovského",
+  "Murgašova",
+  "Murmanská",
+  "Musilova",
+  "Musorgského",
+  "Musílkova",
+  "Mutěnínská",
+  "Muzejní",
+  "Muzikova",
+  "Muškova",
+  "Mydlářka",
+  "Myjavská",
+  "Mylnerovka",
+  "Myslbekova",
+  "Myslbekova",
+  "Myslivecká",
+  "Myslivečkova",
+  "Myslíkova",
+  "Myslíkova",
+  "Myšlínská",
+  "Máchova",
+  "Máchova",
+  "Mádrova",
+  "Májovková",
+  "Májová",
+  "Málkovská",
+  "Mánesova",
+  "Márova",
+  "Máslova",
+  "Máslovická",
+  "Mátová",
+  "Mílovská",
+  "Mílová",
+  "Mírová",
+  "Mírového Hnutí",
+  "Mírového Hnutí",
+  "Místecká",
+  "Míčova",
+  "Míšeňská",
+  "Míšovická",
+  "Münzbergerových",
+  "Mýtní",
+  "Měchenická",
+  "Měcholupská",
+  "Měděnecká",
+  "Mělická",
+  "Mělnická",
+  "Městská",
+  "Měsíčková",
+  "Měsíční",
+  "Měšická",
+  "Měšínská",
+  "Mšecká",
+  "Mšenská",
+  "N. A. Někrasova",
+  "Na Babách",
+  "Na Babě",
+  "Na Bahnech",
+  "Na Balkáně",
+  "Na Balkáně",
+  "Na Bambouzku",
+  "Na Baních",
+  "Na Barikádách",
+  "Na Bartoňce",
+  "Na Bateriích",
+  "Na Bateriích",
+  "Na Bačálkách",
+  "Na Baště Sv. Jiří",
+  "Na Baště Sv. Ludmily",
+  "Na Baště Sv. Tomáše",
+  "Na Bendovce",
+  "Na Benátkách",
+  "Na Beránce",
+  "Na Betonce",
+  "Na Bečvářce",
+  "Na Bitevní Pláni",
+  "Na Blanici",
+  "Na Blanseku",
+  "Na Blatech",
+  "Na Bluku",
+  "Na Bohdalci",
+  "Na Bojišti",
+  "Na Boleslavce",
+  "Na Borovém",
+  "Na Botiči",
+  "Na Botě",
+  "Na Božkovně",
+  "Na Brabenci",
+  "Na Brázdě",
+  "Na Bučance",
+  "Na Bělici",
+  "Na Bělidle",
+  "Na Bělohorské Pláni",
+  "Na Břehu",
+  "Na Břevnovské Pláni",
+  "Na Březince",
+  "Na Celné",
+  "Na Cestě",
+  "Na Chmelnici",
+  "Na Chobotě",
+  "Na Chodovci",
+  "Na Chvalce",
+  "Na Chvalské Tvrzi",
+  "Na Cihelně",
+  "Na Cihlářce",
+  "Na Cikorce",
+  "Na Cikánce",
+  "Na Cimbále",
+  "Na Cípu",
+  "Na Císařce",
+  "Na Dionysce",
+  "Na Dlouhé Mezi",
+  "Na Dlouhé Mezi",
+  "Na Dlouhé Mezi",
+  "Na Dlouhé Mezi",
+  "Na Dlouhém Lánu",
+  "Na Dlážděnce",
+  "Na Dlážděnce",
+  "Na Dlážděnce",
+  "Na Dlážděnce",
+  "Na Dobešce",
+  "Na Dobré Vodě",
+  "Na Dolinách",
+  "Na Dolinách",
+  "Na Dolnici",
+  "Na Dolíku",
+  "Na Domovině",
+  "Na Doubkové",
+  "Na Drahách",
+  "Na Dračkách",
+  "Na Dračkách",
+  "Na Dražkách",
+  "Na Dubině",
+  "Na Dvorcích",
+  "Na Dyrince",
+  "Na Dílcích",
+  "Na Dílech",
+  "Na Dědince",
+  "Na Dědinách",
+  "Na Děkance",
+  "Na Děkance",
+  "Na Dělostřílnách",
+  "Na Džbánu",
+  "Na Fabiánce",
+  "Na Farkách",
+  "Na Farkáně I",
+  "Na Farkáně Ii",
+  "Na Farkáně Iii",
+  "Na Farkáně Iv",
+  "Na Fialce I",
+  "Na Fialce Ii",
+  "Na Fidlovačce",
+  "Na Fišerce",
+  "Na Florenci",
+  "Na Florenci",
+  "Na Floře",
+  "Na Folimance",
+  "Na Formance",
+  "Na Františku",
+  "Na Groši",
+  "Na Habrovce",
+  "Na Habrové",
+  "Na Hanspaulce",
+  "Na Harfě",
+  "Na Havránce",
+  "Na Hlavní",
+  "Na Hlinách",
+  "Na Hloubětínské Vinici",
+  "Na Hlídce",
+  "Na Holém Vrchu",
+  "Na Homolce",
+  "Na Homoli",
+  "Na Horce",
+  "Na Horkách",
+  "Na Hradním Vodovodu",
+  "Na Hranicích",
+  "Na Hranicích",
+  "Na Hrobci",
+  "Na Hroudě",
+  "Na Hroudě",
+  "Na Hrádku",
+  "Na Hrázi",
+  "Na Hubálce",
+  "Na Humnech",
+  "Na Hupech",
+  "Na Hutmance",
+  "Na Hutích",
+  "Na Hutích",
+  "Na Hvížďalce",
+  "Na Hvězdárně",
+  "Na Hádku",
+  "Na Hájku",
+  "Na Hřebenech I",
+  "Na Hřebenech Ii",
+  "Na Hřebenech Ii",
+  "Na Hřebenkách",
+  "Na Hůrce",
+  "Na Jabloňce",
+  "Na Jabloňce",
+  "Na Jahodách",
+  "Na Jarově",
+  "Na Jelenách",
+  "Na Jelenách",
+  "Na Jetelce",
+  "Na Jetelce",
+  "Na Jezerce",
+  "Na Jezerách",
+  "Na Jitřence",
+  "Na Jivinách",
+  "Na Julisce",
+  "Na Jílech",
+  "Na Jílu",
+  "Na Kameni",
+  "Na Kampě",
+  "Na Kapličce",
+  "Na Karlovce",
+  "Na Kavčích Horách",
+  "Na Kazance",
+  "Na Kačence",
+  "Na Kačerově",
+  "Na Kindlovce",
+  "Na Klaudiánce",
+  "Na Klaudiánce",
+  "Na Kleovce",
+  "Na Klikovce",
+  "Na Klimentce",
+  "Na Klášterním",
+  "Na Klínech",
+  "Na Klínech",
+  "Na Klínku",
+  "Na Knížce",
+  "Na Kocourkách",
+  "Na Kocínce",
+  "Na Kodymce",
+  "Na Kolejním Statku",
+  "Na Komořsku",
+  "Na Komořsku",
+  "Na Konci",
+  "Na Konečné",
+  "Na Konvářce",
+  "Na Kopanině",
+  "Na Kopci",
+  "Na Kopečku",
+  "Na Kopytářce",
+  "Na Korunce",
+  "Na Korábě",
+  "Na Korálově",
+  "Na Kotlářce",
+  "Na Koupaliště",
+  "Na Kovárně",
+  "Na Kozačce",
+  "Na Kozinci",
+  "Na Košince",
+  "Na Košíku",
+  "Na Kraji",
+  "Na Krocínce",
+  "Na Krutci",
+  "Na Královce",
+  "Na Královně",
+  "Na Krčské Stráni",
+  "Na Kuthence",
+  "Na Kvintusce",
+  "Na Květnici",
+  "Na Kyjově",
+  "Na Křemínku",
+  "Na Křenkově",
+  "Na Křečku",
+  "Na Křivce",
+  "Na Křivce",
+  "Na Křivce",
+  "Na Křivině",
+  "Na Křtině",
+  "Na Křídle",
+  "Na Labuťce",
+  "Na Labuťce I",
+  "Na Labuťce Ii",
+  "Na Labuťce Iii",
+  "Na Labuťce Iv",
+  "Na Ladách",
+  "Na Lahovské",
+  "Na Laurové",
+  "Na Lepším",
+  "Na Lhotech",
+  "Na Lhotkách",
+  "Na Libušince",
+  "Na Losách",
+  "Na Louce",
+  "Na Loukoti",
+  "Na Louži",
+  "Na Loužku",
+  "Na Luka",
+  "Na Lukách",
+  "Na Luzích",
+  "Na Lučinách",
+  "Na Lužci",
+  "Na Lysinách",
+  "Na Lysině",
+  "Na Ládví",
+  "Na Lánech",
+  "Na Lávce",
+  "Na Lázeňce",
+  "Na Líše",
+  "Na Malovance",
+  "Na Malé Šárce",
+  "Na Malém Klínu",
+  "Na Maninách",
+  "Na Manoušce",
+  "Na Markvartce",
+  "Na Marně",
+  "Na Mezi",
+  "Na Mlejnku",
+  "Na Moklině",
+  "Na Mokřině",
+  "Na Moráni",
+  "Na Močále",
+  "Na Mrázovce",
+  "Na Musilech",
+  "Na Mírách",
+  "Na Míčánce",
+  "Na Míčánkách",
+  "Na Mýtě",
+  "Na Můstku",
+  "Na Neklance",
+  "Na Nežárce",
+  "Na Nivách",
+  "Na Novině",
+  "Na Nové Silnici",
+  "Na Náspu",
+  "Na Návrati",
+  "Na Návrší",
+  "Na Návsi",
+  "Na Obrátce",
+  "Na Obrátce",
+  "Na Odbočce",
+  "Na Ohradě",
+  "Na Okraji",
+  "Na Okraji",
+  "Na Okrouhlíku",
+  "Na Okruhu",
+  "Na Opyši",
+  "Na Opyši",
+  "Na Ostrohu",
+  "Na Ostrově",
+  "Na Ostrůvku",
+  "Na Ovesníku",
+  "Na Ovčinách",
+  "Na Ovčáckém",
+  "Na Ovčíně",
+  "Na Ořechovce",
+  "Na Padesátníku I",
+  "Na Padesátníku Ii",
+  "Na Padesátníku Iii",
+  "Na Padesátníku Iv",
+  "Na Padesátníku V",
+  "Na Padesátém",
+  "Na Pahorku",
+  "Na Pahoubce",
+  "Na Palouku",
+  "Na Paloučku",
+  "Na Pankráci",
+  "Na Panorámě",
+  "Na Parcelách",
+  "Na Parkáně",
+  "Na Parukářce",
+  "Na Pasece",
+  "Na Pasece",
+  "Na Pastvinách",
+  "Na Pavím Vrchu",
+  "Na Pazderce",
+  "Na Pecích",
+  "Na Pernikářce",
+  "Na Perštýně",
+  "Na Petynce",
+  "Na Petynce",
+  "Na Petřinách",
+  "Na Petřinách",
+  "Na Placích",
+  "Na Planině",
+  "Na Plužině",
+  "Na Plzeňce",
+  "Na Plácku",
+  "Na Pláni",
+  "Na Plískavě",
+  "Na Podkovce",
+  "Na Pokraji",
+  "Na Pokraji",
+  "Na Poli",
+  "Na Polníku",
+  "Na Pomezí",
+  "Na Pomezí",
+  "Na Popelce",
+  "Na Popelce",
+  "Na Potůčku",
+  "Na Poustkách",
+  "Na Pozorce",
+  "Na Poříčním Právu",
+  "Na Poříčí",
+  "Na Poříčí",
+  "Na Požáru",
+  "Na Požáru",
+  "Na Pramenech",
+  "Na Pramenech",
+  "Na Prosecké Vyhlídce",
+  "Na Proseku",
+  "Na Prostřední Cestě",
+  "Na Proutcích",
+  "Na Provaznici",
+  "Na Průhonu",
+  "Na Průseku",
+  "Na Pučálce",
+  "Na Pískovně",
+  "Na Písku",
+  "Na Pískách",
+  "Na Pěkné Vyhlídce",
+  "Na Pěšinách",
+  "Na Pěšinách",
+  "Na Pěšině",
+  "Na Předevsi",
+  "Na Přesypu",
+  "Na Přesypu",
+  "Na Přídole",
+  "Na Příkopě",
+  "Na Příkopě",
+  "Na Přívozích",
+  "Na Příčce",
+  "Na Příčné Mezi",
+  "Na Radosti",
+  "Na Radosti",
+  "Na Rampách",
+  "Na Rejdišti",
+  "Na Roháčku",
+  "Na Rokytce",
+  "Na Rolích",
+  "Na Rovinách",
+  "Na Rovině",
+  "Na Rovni",
+  "Na Rovnosti",
+  "Na Rovném",
+  "Na Rozcestí",
+  "Na Rozdílu",
+  "Na Rozdílu",
+  "Na Rozhledu",
+  "Na Rozhraní",
+  "Na Rozhraní",
+  "Na Rozvodí",
+  "Na Ročkově",
+  "Na Rybníčku",
+  "Na Rybářce",
+  "Na Rybářce",
+  "Na Rymáni",
+  "Na Rynku",
+  "Na Salabce",
+  "Na Samotě",
+  "Na Schodech",
+  "Na Schůdkách",
+  "Na Sedlišti",
+  "Na Sekyrce",
+  "Na Selském",
+  "Na Seníku",
+  "Na Skalce",
+  "Na Skalách",
+  "Na Sklonku",
+  "Na Skále",
+  "Na Slatince",
+  "Na Slatinách",
+  "Na Slatinách",
+  "Na Slatinách",
+  "Na Slavíkově",
+  "Na Slovance",
+  "Na Slupi",
+  "Na Slupi",
+  "Na Smetance",
+  "Na Souvrati",
+  "Na Souvrati",
+  "Na Spojce",
+  "Na Spádu",
+  "Na Spáleništi",
+  "Na Srpečku",
+  "Na Srázu",
+  "Na Srážku",
+  "Na Staré",
+  "Na Staré Cestě",
+  "Na Staré Návsi",
+  "Na Staré Silnici",
+  "Na Staré Vinici",
+  "Na Stezce",
+  "Na Stezce",
+  "Na Struze",
+  "Na Stráni",
+  "Na Stráňkách",
+  "Na Stráži",
+  "Na Stráži",
+  "Na Strži",
+  "Na Strži",
+  "Na Stupních",
+  "Na Stárce",
+  "Na Stírce",
+  "Na Střelnici",
+  "Na Svahu",
+  "Na Svěcence",
+  "Na Sychrově",
+  "Na Sychrově",
+  "Na Sypkém",
+  "Na Sypčině",
+  "Na Sádce",
+  "Na Terase",
+  "Na Topolce",
+  "Na Topolce",
+  "Na Truhlářce",
+  "Na Tržišti",
+  "Na Tykačce",
+  "Na Táboře",
+  "Na Třebešíně",
+  "Na Třebešíně",
+  "Na Universitním Statku",
+  "Na Usedlosti",
+  "Na Vackově",
+  "Na Valech",
+  "Na Valentince",
+  "Na Vartě",
+  "Na Vaňhově",
+  "Na Veselí",
+  "Na Vidouli",
+  "Na Viktorce",
+  "Na Vinici",
+  "Na Viničce",
+  "Na Viničkách",
+  "Na Viničních Horách",
+  "Na Vinobraní",
+  "Na Vinohradu",
+  "Na Višňovce",
+  "Na Vlasačce",
+  "Na Vlastní Půdě",
+  "Na Vlastním",
+  "Na Vlku",
+  "Na Vlčovce",
+  "Na Volánové",
+  "Na Vrchmezí",
+  "Na Vrchmezí",
+  "Na Vrchmezí",
+  "Na Vrcholu",
+  "Na Vrchu",
+  "Na Vrchu",
+  "Na Vrchách",
+  "Na Vrchách",
+  "Na Vrstevnici",
+  "Na Vrstvách",
+  "Na Vršku",
+  "Na Vrškách",
+  "Na Vrších",
+  "Na Vrších",
+  "Na Vydrholci",
+  "Na Vyhlídce",
+  "Na Vypichu",
+  "Na Vypichu",
+  "Na Vysoké I",
+  "Na Vysoké I",
+  "Na Vysoké Ii",
+  "Na Vysočanských Vinicích",
+  "Na Vysočině",
+  "Na Václavce",
+  "Na Vápence",
+  "Na Vápenném",
+  "Na Vítězné Pláni",
+  "Na Výběžku",
+  "Na Výhledech",
+  "Na Výhonku",
+  "Na Výrovně",
+  "Na Výsledku I",
+  "Na Výsledku Ii",
+  "Na Výsluní",
+  "Na Výspě",
+  "Na Výspě",
+  "Na Výstupu",
+  "Na Výtoni",
+  "Na Výši",
+  "Na Výšince",
+  "Na Výšinách",
+  "Na Výšině",
+  "Na Věnečku",
+  "Na Větrníku",
+  "Na Větrníku",
+  "Na Větrově",
+  "Na Větru",
+  "Na Zahrádkách",
+  "Na Zatlance",
+  "Na Zavadilce",
+  "Na Zbořenci",
+  "Na Zderaze",
+  "Na Zedníkové",
+  "Na Zelené Louce",
+  "Na Zemance",
+  "Na Zkratce",
+  "Na Zlatnici",
+  "Na Zlaté",
+  "Na Zlíchově",
+  "Na Zlíchově",
+  "Na Zmrzlíku",
+  "Na Znělci",
+  "Na Zvoničce",
+  "Na Zábradlí",
+  "Na Záhonech",
+  "Na Zájezdu",
+  "Na Zámecké",
+  "Na Zámkách",
+  "Na Zámyšli",
+  "Na Zástřelu",
+  "Na Zástřelu",
+  "Na Zátorce",
+  "Na Zátorách",
+  "Na Závěji",
+  "Na Úbočí",
+  "Na Úhoru",
+  "Na Úlehli",
+  "Na Úseku",
+  "Na Úspěchu",
+  "Na Černé Hoře",
+  "Na Černé Strouze",
+  "Na Černém Vrchu",
+  "Na Července",
+  "Na Čečeličce",
+  "Na Čihadle",
+  "Na Čisté",
+  "Na Říháku",
+  "Na Šabatce",
+  "Na Šachtě",
+  "Na Šafránce",
+  "Na Šancích",
+  "Na Šedivé",
+  "Na Šejdru",
+  "Na Šejdru",
+  "Na Šmukýřce",
+  "Na Špejcharu",
+  "Na Špitálce",
+  "Na Špitálsku",
+  "Na Štamberku",
+  "Na Štěpnici",
+  "Na Šubě",
+  "Na Šumavě",
+  "Na Šutce",
+  "Na Švihance",
+  "Na Šťáhlavce",
+  "Na Žertvách",
+  "Na Žvahově",
+  "Naardenská",
+  "Nad Akcízem",
+  "Nad Akáty",
+  "Nad Alejí",
+  "Nad Belvederem",
+  "Nad Belárií",
+  "Nad Berounkou",
+  "Nad Bertramkou",
+  "Nad Botičem",
+  "Nad Bořislavkou",
+  "Nad Bořislavkou",
+  "Nad Branickým Pivovarem",
+  "Nad Brůdkem",
+  "Nad Brůdkem",
+  "Nad Buďánkami I",
+  "Nad Buďánkami Ii",
+  "Nad Buďánkami Iii",
+  "Nad Cementárnou",
+  "Nad Chaloupkami",
+  "Nad Chuchlí",
+  "Nad Cihelnou",
+  "Nad Dalejským Údolím",
+  "Nad Doly",
+  "Nad Dolíky",
+  "Nad Drahou",
+  "Nad Dubovým Mlýnem",
+  "Nad Dvorem",
+  "Nad Dálnicí",
+  "Nad Elektrárnou",
+  "Nad Elektrárnou",
+  "Nad Flajšnerkou",
+  "Nad Habrovkou",
+  "Nad Havlem",
+  "Nad Helmrovkou",
+  "Nad Hercovkou",
+  "Nad Hercovkou",
+  "Nad Hliníkem",
+  "Nad Hliníkem",
+  "Nad Horizontem",
+  "Nad Hradním Potokem",
+  "Nad Hradním Vodojemem",
+  "Nad Husovými Sady",
+  "Nad Hutěmi",
+  "Nad Hutěmi",
+  "Nad Hájem",
+  "Nad Hřištěm",
+  "Nad Jenerálkou",
+  "Nad Jetelkou",
+  "Nad Jezem",
+  "Nad Jezerkou",
+  "Nad Jordánkem",
+  "Nad Kajetánkou",
+  "Nad Kamínkou",
+  "Nad Kaplankou",
+  "Nad Kapličkou",
+  "Nad Kavalírkou",
+  "Nad Kazankou",
+  "Nad Kazínem",
+  "Nad Kelerkou",
+  "Nad Kesnerkou",
+  "Nad Klamovkou",
+  "Nad Klikovkou",
+  "Nad Klíčovem",
+  "Nad Kolonií",
+  "Nad Kolčavkou",
+  "Nad Komornickou",
+  "Nad Konečnou",
+  "Nad Konvářkou",
+  "Nad Kostelem",
+  "Nad Kotlaskou I",
+  "Nad Kotlaskou Ii",
+  "Nad Kotlaskou Iii",
+  "Nad Kotlaskou Iv",
+  "Nad Kotlaskou V",
+  "Nad Koulkou",
+  "Nad Koupadly",
+  "Nad Koupalištěm",
+  "Nad Košinkou",
+  "Nad Košíkem",
+  "Nad Krocínkou",
+  "Nad Krocínkou",
+  "Nad Královskou Oborou",
+  "Nad Kuliškou",
+  "Nad Kundratkou",
+  "Nad Kundratkou",
+  "Nad Kundratkou",
+  "Nad Křížkem",
+  "Nad Laurovou",
+  "Nad Lesem",
+  "Nad Lesním Divadlem",
+  "Nad Lesíkem",
+  "Nad Libeňským Nádražím",
+  "Nad Libeřským Potokem",
+  "Nad Libušským Potokem",
+  "Nad Libří",
+  "Nad Lomem",
+  "Nad Lomy",
+  "Nad Lukami",
+  "Nad Lávkou",
+  "Nad Malým Mýtem",
+  "Nad Manovkou",
+  "Nad Markytou",
+  "Nad Mazankou",
+  "Nad Meandry",
+  "Nad Mlynářkou",
+  "Nad Mlýnem",
+  "Nad Mlýnským Potokem",
+  "Nad Mohylou",
+  "Nad Mokřinou",
+  "Nad Mostem",
+  "Nad Motolskou Nemocnicí",
+  "Nad Motolskou Nemocnicí",
+  "Nad Mrázovkou",
+  "Nad Mušlovkou",
+  "Nad Mušlovkou",
+  "Nad Novou Libní",
+  "Nad Nuslemi",
+  "Nad Nádražím",
+  "Nad Nádrží",
+  "Nad Náhonem",
+  "Nad Náměstím",
+  "Nad Návsí",
+  "Nad Obcí I",
+  "Nad Obcí Ii",
+  "Nad Octárnou",
+  "Nad Odbočkou",
+  "Nad Ohradou",
+  "Nad Okrouhlíkem",
+  "Nad Olšinami",
+  "Nad Olšinami",
+  "Nad Ondřejovem",
+  "Nad Opatovem",
+  "Nad Ostrovem",
+  "Nad Pahorkem",
+  "Nad Palatou",
+  "Nad Panenskou",
+  "Nad Parkem",
+  "Nad Parkánem",
+  "Nad Paťankou",
+  "Nad Pentlovkou",
+  "Nad Petruskou",
+  "Nad Petynkou",
+  "Nad Plynovodem",
+  "Nad Podbabskou Skálou",
+  "Nad Pomníkem",
+  "Nad Popelkou",
+  "Nad Popelářkou",
+  "Nad Potůčkem",
+  "Nad Prahou",
+  "Nad Pramenem",
+  "Nad Primaskou",
+  "Nad Primaskou",
+  "Nad Propustí",
+  "Nad Pruhy",
+  "Nad Pískovnou",
+  "Nad Přehradou",
+  "Nad Přívozem",
+  "Nad Radotínem",
+  "Nad Rohatci",
+  "Nad Roklí",
+  "Nad Rokoskou",
+  "Nad Rokytkou",
+  "Nad Rybníkem",
+  "Nad Rybníkem",
+  "Nad Rybníčky",
+  "Nad Ryšánkou",
+  "Nad Rážákem",
+  "Nad Sadem",
+  "Nad Sady",
+  "Nad Santoškou",
+  "Nad Schody",
+  "Nad Skálou",
+  "Nad Slávií",
+  "Nad Slávií",
+  "Nad Smetankou",
+  "Nad Sokolovnou",
+  "Nad Soutokem",
+  "Nad Soutokem",
+  "Nad Splavem",
+  "Nad Spádem",
+  "Nad Spáleným Mlýnem",
+  "Nad Stanicí",
+  "Nad Starou Pískovnou",
+  "Nad Statkem",
+  "Nad Strakovkou",
+  "Nad Strouhou",
+  "Nad Strání",
+  "Nad Strání",
+  "Nad Studánkou",
+  "Nad Svahem",
+  "Nad Sýpkou",
+  "Nad Tejnkou",
+  "Nad Teplárnou",
+  "Nad Topoly",
+  "Nad Tratí",
+  "Nad Trnkovem",
+  "Nad Trojou",
+  "Nad Turbovou",
+  "Nad Třebešínem I",
+  "Nad Třebešínem Ii",
+  "Nad Třebešínem Ii",
+  "Nad Třebešínem Iii",
+  "Nad Třebešínem Iii",
+  "Nad Vavrouškou",
+  "Nad Vernerákem",
+  "Nad Vinicí",
+  "Nad Vinným Potokem",
+  "Nad Vinným Potokem",
+  "Nad Vinným Potokem",
+  "Nad Vinohradem",
+  "Nad Višňovkou",
+  "Nad Vltavou",
+  "Nad Vodovodem",
+  "Nad Vodovodem",
+  "Nad Vojenským Hřbitovem",
+  "Nad Vokolky",
+  "Nad Volyňkou",
+  "Nad Vrbami",
+  "Nad Vrstvami",
+  "Nad Vršovskou Horou",
+  "Nad Vsí",
+  "Nad Vysočany",
+  "Nad Václavkou",
+  "Nad Výpustí",
+  "Nad Výšinkou",
+  "Nad Zahradnictvím",
+  "Nad Zatáčkou",
+  "Nad Zavážkou",
+  "Nad Zbraslaví",
+  "Nad Zbrojnicí",
+  "Nad Zemankou",
+  "Nad Zemankou",
+  "Nad Zlatnicí",
+  "Nad Zlíchovem",
+  "Nad Záložnou",
+  "Nad Zámečkem",
+  "Nad Zámečnicí",
+  "Nad Zátiším",
+  "Nad Závodištěm",
+  "Nad Závěrkou",
+  "Nad Údolím",
+  "Nad Údolím Hvězd",
+  "Nad Úpadem",
+  "Nad Úvozem",
+  "Nad Úžlabinou",
+  "Nad Úžlabinou",
+  "Nad Šafránkou",
+  "Nad Šancemi",
+  "Nad Šauerovými Sady",
+  "Nad Šeberákem",
+  "Nad Šejdrem",
+  "Nad Šestikopy",
+  "Nad Šetelkou",
+  "Nad Štolou",
+  "Nad Šutkou",
+  "Nad Šálkovnou",
+  "Nad Šárkou",
+  "Nad Želivkou",
+  "Nad Žlábkem",
+  "Nademlejnská",
+  "Nadějovská",
+  "Narcisová",
+  "Naskové",
+  "Natanaelka",
+  "Navarova",
+  "Navigátorů",
+  "Navrátilova",
+  "Načeradecká",
+  "Načešická",
+  "Neapolská",
+  "Nebeského",
+  "Nebovidská",
+  "Nebozízek-Sady",
+  "Nebušická",
+  "Nechanická",
+  "Nechanského",
+  "Nechvalická",
+  "Nechvílova",
+  "Nechybova",
+  "Nedašovská",
+  "Nedbalova",
+  "Nedokončená",
+  "Nedokončená",
+  "Nedošínské",
+  "Nedražická",
+  "Nedvědická",
+  "Nedvědovo Nám.",
+  "Nedvědovo Náměstí",
+  "Nedvězská",
+  "Neffova",
+  "Nefritová",
+  "Neherovská",
+  "Nehvizdská",
+  "Nehvizdská",
+  "Nejdkova",
+  "Neklanova",
+  "Nekvasilova",
+  "Nekázanka",
+  "Nemocniční",
+  "Nemošická",
+  "Nepasické Nám.",
+  "Nepasické Náměstí",
+  "Nepelova",
+  "Nepilova",
+  "Nepomucká",
+  "Nepomuckých",
+  "Nepovolená",
+  "Nepravidelná",
+  "Neprůjezdná",
+  "Nepálská",
+  "Neratovická",
+  "Nerudova",
+  "Nerudova",
+  "Nesměřická",
+  "Nespecká",
+  "Nesvadbova",
+  "Netlucká",
+  "Netluky",
+  "Netolická",
+  "Netušilská",
+  "Netínská",
+  "Netřebická",
+  "Netřebská",
+  "Neumannova",
+  "Neustupného",
+  "Neužilova",
+  "Nevanova",
+  "Neveklovská",
+  "Newtonova",
+  "Nezamyslova",
+  "Nezdova",
+  "Nezvalova",
+  "Nečova",
+  "Nešporova",
+  "Nežárská",
+  "Nickerleho",
+  "Niederleho",
+  "Nikodémova",
+  "Nikoly Tesly",
+  "Nikoly Vapcarova",
+  "Niská",
+  "Nitranská",
+  "Nitranská",
+  "Nivnická",
+  "Nobelova",
+  "Norbertov",
+  "Norská",
+  "Nosická",
+  "Nosticova",
+  "Notečská",
+  "Noutonická",
+  "Nouzov",
+  "Nouzovské Nám.",
+  "Nouzovské Náměstí",
+  "Nouzová",
+  "Novgorodská",
+  "Novobohdalecká",
+  "Novoborská",
+  "Novoborská",
+  "Novochuchelská",
+  "Novodvorská",
+  "Novodvorská",
+  "Novodvorská",
+  "Novodvorská",
+  "Novohradská",
+  "Novohrádecká",
+  "Novohrádecká",
+  "Novolhotská",
+  "Novolipanská",
+  "Novomeského",
+  "Novomeského",
+  "Novomlýnská",
+  "Novopacká",
+  "Novopetrovická",
+  "Novorossijská",
+  "Novosibřinská",
+  "Novostrašnická",
+  "Novosuchdolská",
+  "Novosvětská",
+  "Novotného Lávka",
+  "Novoveská",
+  "Novoveská",
+  "Novovysočanská",
+  "Novovysočanská",
+  "Novovysočanská",
+  "Novozámecká",
+  "Novozámecká",
+  "Novoškolská",
+  "Novoštěrboholská",
+  "Nová",
+  "Nová Cesta",
+  "Nová Kolonie",
+  "Nová Ves",
+  "Nová Ves",
+  "Nová Šárka",
+  "Novákovo Nám.",
+  "Novákovo Náměstí",
+  "Novákových",
+  "Nové Domy",
+  "Nové Dvory",
+  "Nové Mlýny",
+  "Nové Náměstí",
+  "Nového",
+  "Nový Lesík",
+  "Nový Svět",
+  "Nový Zlíchov",
+  "Nový Zlíchov",
+  "Nupacká",
+  "Nuselská",
+  "Nuselská",
+  "Nučická",
+  "Nušlova",
+  "Nymburská",
+  "Nábř. Edvarda Beneše",
+  "Nábř. Edvarda Beneše",
+  "Nábř. Edvarda Beneše",
+  "Nábř. Kapitána Jaroše",
+  "Nábř. Kapitána Jaroše",
+  "Nábřežní",
+  "Nábřeží Edvarda Beneše",
+  "Nábřeží Edvarda Beneše",
+  "Nábřeží Edvarda Beneše",
+  "Nábřeží Kapitána Jaroše",
+  "Nábřeží Ludvíka Svobody",
+  "Náchodská",
+  "Nádražní",
+  "Nádražní",
+  "Nádvorní",
+  "Náhorní",
+  "Nákupní",
+  "Nám. 14. Října",
+  "Nám. 25. Března",
+  "Nám. Antonína Pecáka",
+  "Nám. Barikád",
+  "Nám. Bořislavka",
+  "Nám. Bratří Synků",
+  "Nám. Chuchelských Bojovníků",
+  "Nám. Chuchleských Bojovníků",
+  "Nám. Curieových",
+  "Nám. Dr. V. Holého",
+  "Nám. Franze Kafky",
+  "Nám. Generála Kutlvašra",
+  "Nám. Hrdinů",
+  "Nám. I. P. Pavlova",
+  "Nám. Interbrigády",
+  "Nám. Jana Palacha",
+  "Nám. Jana Palacha",
+  "Nám. Jiřího Berana",
+  "Nám. Jiřího Z Lobkovic",
+  "Nám. Jiřího Z Poděbrad",
+  "Nám. Jiřího Z Poděbrad",
+  "Nám. Josefa Machka",
+  "Nám. Kinských",
+  "Nám. Kinských",
+  "Nám. Mezi Zahrádkami",
+  "Nám. Na Balabence",
+  "Nám. Na Farkáně",
+  "Nám. Na Lužinách",
+  "Nám. Na Santince",
+  "Nám. Na Stráži",
+  "Nám. Omladiny",
+  "Nám. Osvoboditelů",
+  "Nám. Padlých",
+  "Nám. Pod Kaštany",
+  "Nám. Pod Lípou",
+  "Nám. Prezidenta Masaryka",
+  "Nám. Před Bateriemi",
+  "Nám. Republiky",
+  "Nám. Smiřických",
+  "Nám. Svatopluka Čecha",
+  "Nám. Svobody",
+  "Nám. U Lva",
+  "Nám. U Lípy Svobody",
+  "Nám. U Svatého Jiří",
+  "Nám. Winstona Churchilla",
+  "Nám. Českého Povstání",
+  "Nám.Organizace Spojených Národ",
+  "Nám.Plukovníka Vlčka",
+  "Náměstí 14. Října",
+  "Náměstí 25. Března",
+  "Náměstí Antonína Pecáka",
+  "Náměstí Barikád",
+  "Náměstí Bořislavka",
+  "Náměstí Bořislavka",
+  "Náměstí Bratří Jandusů",
+  "Náměstí Bratří Synků",
+  "Náměstí Chuchelských Bojovníků",
+  "Náměstí Curieových",
+  "Náměstí Dr. Václava Holého",
+  "Náměstí Generála Kutlvašra",
+  "Náměstí Hrdinů",
+  "Náměstí I. P. Pavlova",
+  "Náměstí Interbrigády",
+  "Náměstí Jana Palacha",
+  "Náměstí Jana Palacha",
+  "Náměstí Jiřího Berana",
+  "Náměstí Jiřího Z Lobkovic",
+  "Náměstí Jiřího Z Poděbrad",
+  "Náměstí Jiřího Z Poděbrad",
+  "Náměstí Josefa Machka",
+  "Náměstí Junkových",
+  "Náměstí Kinských",
+  "Náměstí Kinských",
+  "Náměstí Kosmonautů",
+  "Náměstí Mezi Zahrádkami",
+  "Náměstí Míru",
+  "Náměstí Na Balabence",
+  "Náměstí Na Farkáně",
+  "Náměstí Na Lužinách",
+  "Náměstí Na Santince",
+  "Náměstí Na Stráži",
+  "Náměstí Omladiny",
+  "Náměstí Organizace Spojených Národů",
+  "Náměstí Osvoboditelů",
+  "Náměstí Padlých",
+  "Náměstí Plukovníka Vlčka",
+  "Náměstí Pod Emauzy",
+  "Náměstí Pod Kaštany",
+  "Náměstí Pod Lípou",
+  "Náměstí Prezidenta Masaryka",
+  "Náměstí Protifašistických Bojovníků",
+  "Náměstí Před Bateriemi",
+  "Náměstí Přátelství",
+  "Náměstí Republiky",
+  "Náměstí Republiky",
+  "Náměstí Smiřických",
+  "Náměstí Sv. Petra A Pavla",
+  "Náměstí Svatopluka Čecha",
+  "Náměstí Svobody",
+  "Náměstí U Lva",
+  "Náměstí U Lípy Svobody",
+  "Náměstí U Svatého Jiří",
+  "Náměstí Winstona Churchilla",
+  "Náměstí Zdenky Braunerové",
+  "Náměstí Českého Povstání",
+  "Náplavní",
+  "Náprstkova",
+  "Národní",
+  "Národní",
+  "Národní Obrany",
+  "Národních Hrdinů",
+  "Nárožní",
+  "Násirovo Nám.",
+  "Násirovo Náměstí",
+  "Nástrojářská",
+  "Návazná",
+  "Návršní",
+  "Návětrná",
+  "Návětrná",
+  "Názovská",
+  "Nýdecká",
+  "Nýrská",
+  "Nýřanská",
+  "Němčická",
+  "Něvská",
+  "Obchodní",
+  "Obchodní Nám.",
+  "Obchodní Náměstí",
+  "Obilní",
+  "Objízdná",
+  "Oblouková",
+  "Obora Hvězda",
+  "Oborská",
+  "Obrataňská",
+  "Obrovského",
+  "Obsiny",
+  "Obslužná",
+  "Obvodová",
+  "Obědovická",
+  "Obětí 6. Května",
+  "Obětí 6.Května",
+  "Ocelkova",
+  "Ocelářská",
+  "Ocelářská",
+  "Ocelíkova",
+  "Ochozská",
+  "Ochranovská",
+  "Od Rozcestí",
+  "Od Vysoké",
+  "Od Školy",
+  "Odboje",
+  "Odborů",
+  "Odbočná",
+  "Oddechová",
+  "Oddělená",
+  "Oderská",
+  "Odlehlá",
+  "Ohmova",
+  "Ohnivcova",
+  "Ohnišťanská",
+  "Ohradní",
+  "Ohradní",
+  "Ohradská",
+  "Ohradské Nám.",
+  "Ohradské Náměstí",
+  "Ohrobecká",
+  "Okenská",
+  "Okořská",
+  "Okrajní",
+  "Okrajová",
+  "Okrajová",
+  "Okrasná",
+  "Okrouhlická",
+  "Okrouhlíkova",
+  "Okrová",
+  "Okruhová",
+  "Okružní",
+  "Okružní",
+  "Okřínecká",
+  "Olbrachtova",
+  "Olbramovická",
+  "Oldřichova",
+  "Olešnická",
+  "Olešská",
+  "Olgy Havlové",
+  "Olivova",
+  "Olomoucká",
+  "Olympijská",
+  "Olšanská",
+  "Olšanské Nám.",
+  "Olšanské Náměstí",
+  "Olšovická",
+  "Olšová",
+  "Olštýnská",
+  "Omladinářů",
+  "Omská",
+  "Ondřejovská",
+  "Ondříčkova",
+  "Ondříčkova",
+  "Onšovecká",
+  "Opata Konráda",
+  "Opatovická",
+  "Opatovská",
+  "Opatovská",
+  "Opatřilka",
+  "Opatřilka",
+  "Opařanská",
+  "Oplanská",
+  "Opletalova",
+  "Opolská",
+  "Opočenská",
+  "Opočínská",
+  "Opravářská",
+  "Opuková",
+  "Opálkova",
+  "Opálová",
+  "Oravská",
+  "Ordovická",
+  "Orebitská",
+  "Orelská",
+  "Orlická",
+  "Ortenovo Náměstí",
+  "Osadní",
+  "Osamocená",
+  "Osecká",
+  "Osetá",
+  "Osická",
+  "Osiková",
+  "Osinalická",
+  "Osluněná",
+  "Osmého Listopadu",
+  "Osnická",
+  "Osnická",
+  "Osnická",
+  "Ostravická",
+  "Ostravská",
+  "Ostromečská",
+  "Ostrov Štvanice",
+  "Ostrovní",
+  "Ostrovského",
+  "Ostruženská",
+  "Ostružinová",
+  "Ostrá",
+  "Ostrčilovo Nám.",
+  "Ostrčilovo Náměstí",
+  "Ostředecká",
+  "Ostřicová",
+  "Osvobození",
+  "Osvětová",
+  "Otakara Vrby",
+  "Otakarova",
+  "Otavova",
+  "Otavova",
+  "Otavská",
+  "Otevřená",
+  "Otická",
+  "Otlíkovská",
+  "Otopašská",
+  "Otovická",
+  "Otradovická",
+  "Ottova",
+  "Otvovická",
+  "Oty Pavla",
+  "Otínská",
+  "Otěšínská",
+  "Ouholická",
+  "Ouhrabkova",
+  "Ovenecká",
+  "Ovenecká",
+  "Ovesná",
+  "Ovocná",
+  "Ovocnářská",
+  "Ovocný Trh",
+  "Ovsíková",
+  "Oválová",
+  "Ovčárská",
+  "Ovčí Hájek",
+  "Ořechová",
+  "Ořešská",
+  "Paběnická",
+  "Paběnická",
+  "Pacajevova",
+  "Paceřická",
+  "Pacholíkova",
+  "Pacovská",
+  "Paculova",
+  "Padovská",
+  "Pajerova",
+  "Pakoměřická",
+  "Palackého",
+  "Palackého Nám.",
+  "Palackého Náměstí",
+  "Palmetová",
+  "Palmovka",
+  "Paláskova",
+  "Pampelišková",
+  "Pancířova",
+  "Panelová",
+  "Panenky",
+  "Panenská",
+  "Pankrácké Náměstí",
+  "Panská",
+  "Panská Zahrada",
+  "Panský Dvůr",
+  "Panuškova",
+  "Paprsková",
+  "Papírenská",
+  "Papírníkova",
+  "Parašutistů",
+  "Pardubická",
+  "Park Přátelství",
+  "Parková",
+  "Parléřova",
+  "Parléřova",
+  "Parmská",
+  "Paroplavební",
+  "Partyzánská",
+  "Pasecká",
+  "Pasteurova",
+  "Pastevců",
+  "Patočkova",
+  "Patočkova",
+  "Patočkova",
+  "Pavelkova",
+  "Pavla Beneše",
+  "Pavla Švandy Ze Semčic",
+  "Pavlická",
+  "Pavlišovská",
+  "Pavlovická",
+  "Pavlovská",
+  "Pavlíkova",
+  "Pavrovského",
+  "Paříkova",
+  "Pařízkova",
+  "Pařížská",
+  "Pařížská",
+  "Paškova",
+  "Paťanka",
+  "Peceradská",
+  "Pecharova",
+  "Pechlátova",
+  "Pechlátova",
+  "Pecháčkova",
+  "Peckova",
+  "Pejevové",
+  "Pekařova",
+  "Pekařova",
+  "Pekařská",
+  "Pekárenská",
+  "Pekárkova",
+  "Pelclova",
+  "Pelechovská",
+  "Pelhřimovská",
+  "Pelikánova",
+  "Pelléova",
+  "Pelléova",
+  "Pelnářova",
+  "Pelušková",
+  "Pelyňková",
+  "Pelzova",
+  "Penízovková",
+  "Perlitová",
+  "Perlitová",
+  "Perlová",
+  "Pernerova",
+  "Pernerova",
+  "Peroutkova",
+  "Peroutkova",
+  "Peroutkova",
+  "Peroutkova",
+  "Perspektivní",
+  "Pertoldova",
+  "Perucká",
+  "Perunova",
+  "Perštejnská",
+  "Petra Bezruče",
+  "Petra Rezka",
+  "Petra Slezáka",
+  "Petrbokova",
+  "Petrklíčová",
+  "Petrohradská",
+  "Petrovická",
+  "Petrovská",
+  "Petrská",
+  "Petrské Nám.",
+  "Petrské Náměstí",
+  "Petráčkova",
+  "Petržílkova",
+  "Petržílova",
+  "Petýrkova",
+  "Petříkova",
+  "Petříkovská",
+  "Petřínská",
+  "Petřínská",
+  "Petřínské Sady",
+  "Petřínské Sady",
+  "Pevnostní",
+  "Pečárková",
+  "Pešinova",
+  "Peškova",
+  "Pešlova",
+  "Pešova",
+  "Peštukova",
+  "Pešákova",
+  "Picassova",
+  "Pickova",
+  "Pihelská",
+  "Pikovická",
+  "Pikrtova",
+  "Pilařská",
+  "Pilníkovská",
+  "Pilotů",
+  "Pilovská",
+  "Pilovská",
+  "Pilská",
+  "Pirinská",
+  "Pirnerova",
+  "Pitkovická",
+  "Pitterova",
+  "Pivcova",
+  "Pivovarnická",
+  "Pivovarská",
+  "Pivoňková",
+  "Pištěkova",
+  "Placina",
+  "Placina",
+  "Plajnerova",
+  "Plamínkové",
+  "Plaská",
+  "Platanová",
+  "Platnéřská",
+  "Platónova",
+  "Plavecká",
+  "Plavínová",
+  "Plačická",
+  "Plaňanská",
+  "Plevenská",
+  "Plečnikova",
+  "Plhovská",
+  "Plickova",
+  "Plkovská",
+  "Plojharova",
+  "Ploskovická",
+  "Ploučnická",
+  "Plovdivská",
+  "Plošná",
+  "Ploštilova",
+  "Plukovníka Mráze",
+  "Plumlovská",
+  "Plutova",
+  "Plynární",
+  "Plzeňská",
+  "Plzeňská",
+  "Plzeňská",
+  "Plzeňská",
+  "Plzeňská",
+  "Plánická",
+  "Pláničkova",
+  "Poberova",
+  "Pobočná",
+  "Pobořská",
+  "Poběžovická",
+  "Pobřežní",
+  "Pobřežní Cesta",
+  "Pod Akáty",
+  "Pod Altánem",
+  "Pod Altánem",
+  "Pod Andělkou",
+  "Pod Areálem",
+  "Pod Aritmou",
+  "Pod Ateliéry",
+  "Pod Bahnivkou",
+  "Pod Balkánem",
+  "Pod Barvířkou",
+  "Pod Bateriemi",
+  "Pod Baštami",
+  "Pod Belvederem",
+  "Pod Belárií",
+  "Pod Beránkem",
+  "Pod Beránkou",
+  "Pod Betání",
+  "Pod Bohdalcem I",
+  "Pod Bohdalcem I",
+  "Pod Bohdalcem Ii",
+  "Pod Brentovou",
+  "Pod Bruskou",
+  "Pod Buďánkou",
+  "Pod Bání",
+  "Pod Březinou",
+  "Pod Chaloupkami",
+  "Pod Chodovem",
+  "Pod Cihelnou",
+  "Pod Cihelnou",
+  "Pod Cukrákem",
+  "Pod Císařkou",
+  "Pod Dlážděnkou",
+  "Pod Domky",
+  "Pod Drinopolem",
+  "Pod Dráhou",
+  "Pod Duby",
+  "Pod Dvorem",
+  "Pod Dálnicí",
+  "Pod Děkankou",
+  "Pod Děkankou",
+  "Pod Děvínem",
+  "Pod Farou",
+  "Pod Fialkou",
+  "Pod Formankou",
+  "Pod Fořtem",
+  "Pod Garážemi",
+  "Pod Habrovkou",
+  "Pod Habrovou",
+  "Pod Haltýřem",
+  "Pod Harfou",
+  "Pod Havlínem",
+  "Pod Havránkou",
+  "Pod Havránkou",
+  "Pod Hliništěm",
+  "Pod Hloubětínskou Zastávkou",
+  "Pod Hláskem",
+  "Pod Homolkou",
+  "Pod Hotelem",
+  "Pod Hořavkou",
+  "Pod Hrachovkou",
+  "Pod Hradbami",
+  "Pod Hradem",
+  "Pod Hranicí",
+  "Pod Hrází",
+  "Pod Hvězdou",
+  "Pod Hvězdárnou",
+  "Pod Hvězdárnou",
+  "Pod Hybšmankou",
+  "Pod Hájem",
+  "Pod Hájkem",
+  "Pod Hájovnou",
+  "Pod Hřbitovem",
+  "Pod Hřištěm",
+  "Pod Jalovým Dvorem",
+  "Pod Jankovem",
+  "Pod Jarovem",
+  "Pod Javory",
+  "Pod Jiráskovou Čtvrtí",
+  "Pod Juliskou",
+  "Pod Kamínkou",
+  "Pod Kapličkou",
+  "Pod Kapličkou",
+  "Pod Karlovarskou Silnicí",
+  "Pod Karlovem",
+  "Pod Kavalírkou",
+  "Pod Kaštany",
+  "Pod Kaštany",
+  "Pod Kesnerkou",
+  "Pod Kladenskou Silnicí",
+  "Pod Klamovkou",
+  "Pod Klapicí",
+  "Pod Klaudiánkou",
+  "Pod Klikovkou",
+  "Pod Kopcem",
+  "Pod Kostelem",
+  "Pod Kotlaskou",
+  "Pod Kotlářkou",
+  "Pod Kotlářkou",
+  "Pod Kotlářkou",
+  "Pod Krejcárkem",
+  "Pod Krocínkou",
+  "Pod Královkou",
+  "Pod Krčským Lesem",
+  "Pod Kulturním Domem",
+  "Pod Kynclovkou",
+  "Pod Křížem",
+  "Pod Křížkem",
+  "Pod Labuťkou",
+  "Pod Lahovskou",
+  "Pod Lesem",
+  "Pod Lesíkem",
+  "Pod Letištěm",
+  "Pod Lečí",
+  "Pod Lipami",
+  "Pod Lipkami",
+  "Pod Lisem",
+  "Pod Lisem",
+  "Pod Lochkovem",
+  "Pod Lomem",
+  "Pod Lysinami",
+  "Pod Lázní",
+  "Pod Marjánkou",
+  "Pod Markétou",
+  "Pod Martinem",
+  "Pod Meliškou",
+  "Pod Mlýnkem",
+  "Pod Mohylou",
+  "Pod Mostem",
+  "Pod Napětím",
+  "Pod Nouzovem",
+  "Pod Novou Školou",
+  "Pod Novým Lesem",
+  "Pod Novým Lesem",
+  "Pod Nuselskými Schody",
+  "Pod Náměstím",
+  "Pod Náplavkou",
+  "Pod Náplavkou",
+  "Pod Náspem",
+  "Pod Návsí",
+  "Pod Oborou",
+  "Pod Ovčínem",
+  "Pod Ořechovkou",
+  "Pod Palatou",
+  "Pod Palírkou",
+  "Pod Parukářkou",
+  "Pod Paťankou",
+  "Pod Paťankou",
+  "Pod Pekařkou",
+  "Pod Pekárnami",
+  "Pod Petřinami",
+  "Pod Plynojemem",
+  "Pod Plynojemem",
+  "Pod Plynojemem",
+  "Pod Plískavou",
+  "Pod Poštou",
+  "Pod Pramenem",
+  "Pod Prodejnou",
+  "Pod Průsekem",
+  "Pod Písečnou",
+  "Pod Přehradou",
+  "Pod Přesypem",
+  "Pod Radnicí",
+  "Pod Rapidem",
+  "Pod Rapidem",
+  "Pod Rapidem",
+  "Pod Remízkem",
+  "Pod Rovinou",
+  "Pod Rozvodnou",
+  "Pod Rybníkem",
+  "Pod Rybníčkem",
+  "Pod Sady",
+  "Pod Salabkou",
+  "Pod Sirénou",
+  "Pod Skalkou",
+  "Pod Skalou",
+  "Pod Sklenářkou",
+  "Pod Slovany",
+  "Pod Smetankou",
+  "Pod Sokolovnou",
+  "Pod Soutratím",
+  "Pod Spalovnou",
+  "Pod Spiritkou",
+  "Pod Spravedlností",
+  "Pod Srázem",
+  "Pod Stadiony",
+  "Pod Stanicí",
+  "Pod Starou Školou",
+  "Pod Starákem",
+  "Pod Statky",
+  "Pod Strašnickou Vinicí",
+  "Pod Strojírnami",
+  "Pod Strání",
+  "Pod Studánkou",
+  "Pod Stupni",
+  "Pod Stárkou",
+  "Pod Stárkou",
+  "Pod Stírkou",
+  "Pod Svahem",
+  "Pod Sychrovem I",
+  "Pod Sychrovem I",
+  "Pod Sychrovem I",
+  "Pod Sychrovem Ii",
+  "Pod Sídlištěm",
+  "Pod Terasami",
+  "Pod Terebkou",
+  "Pod Topoly",
+  "Pod Tratí",
+  "Pod Turnovskou Tratí",
+  "Pod Turnovskou Tratí",
+  "Pod Táborem",
+  "Pod Táborem",
+  "Pod Třebešínem",
+  "Pod Třešněmi",
+  "Pod Třešňovkou",
+  "Pod Urnovým Hájem",
+  "Pod Valem",
+  "Pod Vartou",
+  "Pod Vavřincem",
+  "Pod Velkým Hájem",
+  "Pod Viaduktem",
+  "Pod Vidoulí",
+  "Pod Viktorkou",
+  "Pod Vilami",
+  "Pod Vinicemi",
+  "Pod Vinicí",
+  "Pod Vinohradem",
+  "Pod Višňovkou",
+  "Pod Vlachovkou",
+  "Pod Vlastním Krovem",
+  "Pod Vlkem",
+  "Pod Vodojemem",
+  "Pod Vodovodem",
+  "Pod Vodárenskou Věží",
+  "Pod Vrchem",
+  "Pod Vrcholem",
+  "Pod Vrstevnicí",
+  "Pod Vrškem",
+  "Pod Vrškem",
+  "Pod Vršovickou Vodárnou I",
+  "Pod Vršovickou Vodárnou Ii",
+  "Pod Vršovickou Vodárnou Iii",
+  "Pod Vsí",
+  "Pod Vyhlídkou",
+  "Pod Vysokou",
+  "Pod Vysokou Mezí",
+  "Pod Vysílačkou",
+  "Pod Vyšehradem",
+  "Pod Václavem",
+  "Pod Vítkovem",
+  "Pod Výtopnou",
+  "Pod Výšinkou",
+  "Pod Větrolamem",
+  "Pod Větrovem",
+  "Pod Věží",
+  "Pod Zahradami",
+  "Pod Zahrádkami",
+  "Pod Zastávkou",
+  "Pod Zatáčkou",
+  "Pod Zbuzany",
+  "Pod Zemankou",
+  "Pod Zličínem",
+  "Pod Zvonařkou",
+  "Pod Zvoničkou",
+  "Pod Zámečkem",
+  "Pod Závěrkou",
+  "Pod Útesy",
+  "Pod Čertovou Skalou",
+  "Pod Čihadlem",
+  "Pod Čimickým Hájem",
+  "Pod Šancemi",
+  "Pod Školou",
+  "Pod Šmukýřkou",
+  "Pod Špejcharem",
+  "Pod Špitálem",
+  "Pod Štěpem",
+  "Pod Žvahovem",
+  "Podbabská",
+  "Podbabská",
+  "Podbělohorská",
+  "Podbělová",
+  "Podchýšská",
+  "Podedvorská",
+  "Podhajská Pole",
+  "Podholí",
+  "Podhorská",
+  "Podhořská",
+  "Podivínská",
+  "Podjavorinské",
+  "Podjezd",
+  "Podkovářská",
+  "Podkrkonošská",
+  "Podkrkonošských Tkalců",
+  "Podle Kačerova",
+  "Podle Lomu",
+  "Podle Lomu",
+  "Podle Náhonu",
+  "Podle Náhonu",
+  "Podle Sadů",
+  "Podle Trati",
+  "Podlesek",
+  "Podleská",
+  "Podlesní",
+  "Podlešínská",
+  "Podlibská",
+  "Podlipného",
+  "Podlišovská",
+  "Podlužanská",
+  "Podléšková",
+  "Podnikatelská",
+  "Podnádražní",
+  "Podohradská",
+  "Podolanská",
+  "Podolská",
+  "Podolská",
+  "Podolské Nábř.",
+  "Podolské Nábřeží",
+  "Podolské Schody",
+  "Podpěrova",
+  "Podskalská",
+  "Podsychrovská",
+  "Podvinný Mlýn",
+  "Podvinný Mlýn",
+  "Podzámecká",
+  "Podéšťova",
+  "Poděbradova",
+  "Poděbradova",
+  "Poděbradská",
+  "Poděbradská",
+  "Poděbradská",
+  "Podůlší",
+  "Pohledná",
+  "Pohnertova",
+  "Pohořelec",
+  "Pohořelec",
+  "Pokojná",
+  "Pokorného",
+  "Pokřivená",
+  "Polabská",
+  "Polabská",
+  "Polaneckého",
+  "Polední",
+  "Polední",
+  "Polenská",
+  "Polepská",
+  "Poleradská",
+  "Polesná",
+  "Polešovická",
+  "Politických Vězňů",
+  "Poličanská",
+  "Poljanovova",
+  "Polní",
+  "Polovnická",
+  "Polská",
+  "Polygrafická",
+  "Polákova",
+  "Poláčkova",
+  "Políkenská",
+  "Polívkova",
+  "Pomezní",
+  "Pomněnková",
+  "Pomořanská",
+  "Ponrepova",
+  "Poplužní",
+  "Popovická",
+  "Popovova",
+  "Poslední",
+  "Pospíchalova",
+  "Pospíšilova",
+  "Postlova",
+  "Postranní",
+  "Postupická",
+  "Postřekovská",
+  "Postřižínská",
+  "Postřižínská",
+  "Potocká",
+  "Potoční",
+  "Pouchova",
+  "Poupětova",
+  "Poustka",
+  "Povltavská",
+  "Povltavská",
+  "Povltavská",
+  "Povodňová",
+  "Pozdeňská",
+  "Poznaňská",
+  "Počeradská",
+  "Počernická",
+  "Počernická",
+  "Počátecká",
+  "Počátecká",
+  "Poříčanská",
+  "Poříčanská",
+  "Poříčská",
+  "Pošepného Nám.",
+  "Pošepného Náměstí",
+  "Poštovská",
+  "Požárnická",
+  "Pplk. Nováčka",
+  "Pplk. Sochora",
+  "Prachatická",
+  "Prachnerova",
+  "Prachovická",
+  "Prachovská",
+  "Pramenná",
+  "Pramenná",
+  "Pravoúhlá",
+  "Pravská",
+  "Pravá",
+  "Prašná",
+  "Pražská",
+  "Pražského",
+  "Pražského Povstání",
+  "Pražský Okruh",
+  "Pražákovská",
+  "Prefátova",
+  "Preislerova",
+  "Preláta",
+  "Prelátská",
+  "Preslova",
+  "Primátorská",
+  "Probluzská",
+  "Proboštská",
+  "Procházkova",
+  "Prodloužená",
+  "Prokofjevova",
+  "Prokopka",
+  "Prokopova",
+  "Prokopovo Nám.",
+  "Prokopovo Náměstí",
+  "Prokopových",
+  "Prokopská",
+  "Prokopské Údolí",
+  "Prokopské Údolí",
+  "Prorektorská",
+  "Prosecká",
+  "Prosecká",
+  "Prosecká",
+  "Prosincová",
+  "Prosluněná",
+  "Prosná",
+  "Prostřední",
+  "Proti Proudu",
+  "Protilehlá",
+  "Protivínská",
+  "Proutěná",
+  "Prouzova",
+  "Provaznická",
+  "Provozní",
+  "Prunéřovská",
+  "Prusická",
+  "Prusíkova",
+  "Prušánecká",
+  "Prvního Pluku",
+  "Prvního Pluku",
+  "Prvomájová",
+  "Prácheňská",
+  "Práčská",
+  "Průběžná",
+  "Průchodní",
+  "Průchova",
+  "Průhledová",
+  "Průhonek",
+  "Průhonek",
+  "Průhonická",
+  "Průhonská",
+  "Průjezdná",
+  "Průmyslová",
+  "Průmyslová",
+  "Průmyslová",
+  "Průmyslová",
+  "Průtažní",
+  "Průčelní",
+  "Průškova",
+  "Psohlavců",
+  "Pstružná",
+  "Psárská",
+  "Ptáčnická",
+  "Puchmajerova",
+  "Puchmajerova",
+  "Pujmanové",
+  "Pujmanové",
+  "Pujmanové",
+  "Purkrabská",
+  "Purkyňova",
+  "Putimská",
+  "Pučova",
+  "Puškinovo Nám.",
+  "Puškinovo Náměstí",
+  "Pyšelská",
+  "Pálavská",
+  "Pálkařská",
+  "Pámelníková",
+  "Pánkova",
+  "Pátkova",
+  "Pávovské Náměstí",
+  "Písecká",
+  "Píseckého",
+  "Písečná",
+  "Pískařská",
+  "Pískovcová",
+  "Pískovna",
+  "Písková",
+  "Písnická",
+  "Písnická",
+  "Písnické Zahrady",
+  "Písčitá",
+  "Píškova",
+  "Píšovická",
+  "Pöslova",
+  "Púchovská",
+  "Púchovská",
+  "Pýchavková",
+  "Pýrová",
+  "Pěnkaví",
+  "Pěstitelská",
+  "Pětidomí",
+  "Pětipeského",
+  "Pěší",
+  "Přecechtělova",
+  "Přechodní",
+  "Před Cibulkami",
+  "Před Dráhou",
+  "Před Mosty",
+  "Před Nádražím",
+  "Před Oborou",
+  "Před Rybníkem",
+  "Před Skalkami I",
+  "Před Skalkami Ii",
+  "Před Skálou",
+  "Před Sokolovnou",
+  "Před Tratí",
+  "Před Ústavem",
+  "Předbořská",
+  "Předměřická",
+  "Přední",
+  "Předpolní",
+  "Předposlední",
+  "Předvoje",
+  "Předvoje",
+  "Předškolní",
+  "Přeletová",
+  "Přeloučská",
+  "Přemyslova",
+  "Přemyslovská",
+  "Přemyslovská",
+  "Přemyšlenská",
+  "Přerušená",
+  "Přesličková",
+  "Přespolní",
+  "Přetlucká",
+  "Přeučilova",
+  "Převoznická",
+  "Přezletická",
+  "Přeštická",
+  "Přeštínská",
+  "Přeťatá",
+  "Při Hranici",
+  "Při Hranici",
+  "Při Trati",
+  "Přibyslavská",
+  "Přibíkova",
+  "Přistoupimská",
+  "Přádova",
+  "Přátelství",
+  "Příborská",
+  "Příbramská",
+  "Příběnická",
+  "Příchovická",
+  "Přídolská",
+  "Příkrá",
+  "Přílepská",
+  "Přímské Nám.",
+  "Přímské Náměstí",
+  "Přímá",
+  "Přímětická",
+  "Přípotoční",
+  "Přípřežní",
+  "Přírodní",
+  "Přístavní",
+  "Přívorská",
+  "Přívozní",
+  "Příčka",
+  "Příčná",
+  "Pšeničná",
+  "Pšenčíkova",
+  "Pšovanská",
+  "Pštrossova",
+  "Půdova",
+  "Půlkruhová",
+  "Půlnoční",
+  "Půtova",
+  "R.A. Dvorského",
+  "Rabasova",
+  "Rabyňská",
+  "Rackova",
+  "Rackova Zahrada",
+  "Radbuzská",
+  "Radechovská",
+  "Radešovská",
+  "Radhošťská",
+  "Radhošťská",
+  "Radimova",
+  "Radimovická",
+  "Radimská",
+  "Radiová",
+  "Radiová",
+  "Radistů",
+  "Radkovská",
+  "Radlická",
+  "Radlická",
+  "Radlická",
+  "Radnické Schody",
+  "Radomská",
+  "Radonická",
+  "Radostavická",
+  "Radostná",
+  "Radotínská",
+  "Radotínská",
+  "Radouňova",
+  "Radouňova",
+  "Radouňova",
+  "Radova",
+  "Radovská",
+  "Radošovická",
+  "Radvanická",
+  "Radúzova",
+  "Radčina",
+  "Radějovská",
+  "Raffaelova",
+  "Raichlova",
+  "Raisova",
+  "Rajhradská",
+  "Rajmonova",
+  "Rajská",
+  "Rakousova",
+  "Rakovnická",
+  "Rakovského",
+  "Randova",
+  "Ranská",
+  "Ratajova",
+  "Ratajská",
+  "Ratbořská",
+  "Ratibořická",
+  "Ratibořská",
+  "Ratibořská",
+  "Ravennská",
+  "Račická",
+  "Račiněveská",
+  "Rašilovova",
+  "Rašova",
+  "Rašovická",
+  "Rašovská",
+  "Rašínovo Nábř.",
+  "Rašínovo Nábř.",
+  "Rašínovo Nábřeží",
+  "Rašínovo Nábřeží",
+  "Rašínská",
+  "Ražická",
+  "Reinerova",
+  "Rejchova",
+  "Rejskova",
+  "Rekreační",
+  "Rektorská",
+  "Rembrandtova",
+  "Remízková",
+  "Renoirova",
+  "Resslova",
+  "Revoluce",
+  "Revoluční",
+  "Revoluční",
+  "Rezedová",
+  "Rezlerova",
+  "Rečkova",
+  "Richtrova",
+  "Riegrova",
+  "Riegrovy Sady",
+  "Rilská",
+  "Ringhofferova",
+  "Ringhofferova",
+  "Rižská",
+  "Roblínská",
+  "Rochovská",
+  "Rochovská",
+  "Rodopská",
+  "Rodovská",
+  "Rodvinovská",
+  "Roentgenova",
+  "Rohanovská",
+  "Rohanské Nábřeží",
+  "Rohanský Ostrov",
+  "Rohatecká",
+  "Rohenická",
+  "Rohlovská",
+  "Rohová",
+  "Rohozecká",
+  "Rohožnická",
+  "Roháčova",
+  "Roithova",
+  "Rojická",
+  "Roklova",
+  "Rokycanova",
+  "Rokycanská",
+  "Rokytnická",
+  "Rokytná",
+  "Rolnická",
+  "Rolní",
+  "Romaina Rollanda",
+  "Romana Blahníka",
+  "Ronalda Reagana",
+  "Ronešova",
+  "Ronkova",
+  "Ronovská",
+  "Rooseveltova",
+  "Rorýsová",
+  "Rosečská",
+  "Rosická",
+  "Rostislavova",
+  "Rostoklatská",
+  "Rostovská",
+  "Rotavská",
+  "Rotenská",
+  "Roudnická",
+  "Rousovická",
+  "Rousínovská",
+  "Rovenská",
+  "Rovnoběžná",
+  "Rovná",
+  "Rozdělená",
+  "Rozdělovská",
+  "Rozhovická",
+  "Rozkošného",
+  "Rozkošská",
+  "Rozmarýnová",
+  "Rozrazilová",
+  "Roztocká",
+  "Roztylská",
+  "Roztylské Náměstí",
+  "Roztylské Sady",
+  "Rozvadovská",
+  "Rozvodova",
+  "Rozvojová",
+  "Rozárčina",
+  "Rozýnova",
+  "Rozšířená",
+  "Ročovská",
+  "Rošických",
+  "Roškotova",
+  "Rošovická",
+  "Rožmberská",
+  "Rožmitálská",
+  "Rožnovská",
+  "Rožďalovická",
+  "Rtyňská",
+  "Rubensova",
+  "Rubeška",
+  "Rubešova",
+  "Rubličova",
+  "Rubínová",
+  "Rudečská",
+  "Rudníkovská",
+  "Rudolfa Holeky",
+  "Rudoltická",
+  "Rudoltická",
+  "Rujanská",
+  "Rumburská",
+  "Rumunská",
+  "Rumunská",
+  "Ruprechtická",
+  "Ruská",
+  "Ruská",
+  "Ruzyňská",
+  "Ruzyňská",
+  "Ruzyňské Schody",
+  "Ružinovská",
+  "Rybalkova",
+  "Rybalkova",
+  "Rybalkova",
+  "Rybničná",
+  "Rybná",
+  "Rybova",
+  "Rybářská",
+  "Rybízová",
+  "Rychnovská",
+  "Rychtáře Petříka",
+  "Rychtáře Šimona",
+  "Rychtářská",
+  "Rypkova",
+  "Rytířova",
+  "Rytířská",
+  "Ryzcová",
+  "Ryzlinková",
+  "Ryšánkova",
+  "Rájecká",
+  "Rámová",
+  "Rápošovská",
+  "Rážova",
+  "Révová",
+  "Rýmařovská",
+  "Rýnská",
+  "Rýznerova",
+  "Růženínová",
+  "Růženínská",
+  "Růženínská",
+  "Růžová",
+  "S. K. Neumanna",
+  "Sabinova",
+  "Sadařská",
+  "Sadová",
+  "Sadská",
+  "Sadská",
+  "Sady Bratří Čapků",
+  "Safírová",
+  "Salabova",
+  "Salačova",
+  "Salmovská",
+  "Salvátorská",
+  "Samcova",
+  "Samohelova",
+  "Samota U Podleského Rybníka",
+  "Sarajevská",
+  "Saratovská",
+  "Sartoriova",
+  "Sasanková",
+  "Saská",
+  "Satalická",
+  "Saturnova",
+  "Saudkova",
+  "Sauerova",
+  "Saveljevova",
+  "Savojská",
+  "Sazečská",
+  "Sazečská",
+  "Sazovická",
+  "Sbíhavá I",
+  "Sbíhavá Ii",
+  "Schnirchova",
+  "Schodišťová",
+  "Schodová",
+  "Schoellerova",
+  "Schoellerova",
+  "Schulhoffova",
+  "Schwaigerova",
+  "Schwarzenberská",
+  "Schöfflerova",
+  "Sdružení",
+  "Sechterova",
+  "Sedlecká",
+  "Sedlovická",
+  "Sedloňovská",
+  "Sedlčanská",
+  "Sedmidomky",
+  "Sedmidomky",
+  "Sedmikrásková",
+  "Sedmnáctého Listopadu",
+  "Seidlova",
+  "Seifertova",
+  "Sekaninova",
+  "Sekeřická",
+  "Sekorova",
+  "Selmická",
+  "Selská",
+  "Selských Baterií",
+  "Semanského",
+  "Semická",
+  "Semilská",
+  "Semilská",
+  "Seminární",
+  "Seminářská",
+  "Seminářská Zahrada",
+  "Semonická",
+  "Semtínská",
+  "Semčická",
+  "Sendražická",
+  "Senegalská",
+  "Senohrabská",
+  "Senovážná",
+  "Senovážné Nám.",
+  "Senovážné Náměstí",
+  "Senožatská",
+  "Sestupná",
+  "Sestupná",
+  "Setbová",
+  "Sevastopolská",
+  "Severní I",
+  "Severní Ii",
+  "Severní Iii",
+  "Severní Iv",
+  "Severní Ix",
+  "Severní V",
+  "Severní Vi",
+  "Severní Vii",
+  "Severní Viii",
+  "Severní X",
+  "Severní Xi",
+  "Severovýchodní I",
+  "Severovýchodní Ii",
+  "Severovýchodní Iii",
+  "Severovýchodní Iv",
+  "Severovýchodní V",
+  "Severovýchodní Vi",
+  "Severozápadní I",
+  "Severozápadní Ii",
+  "Severozápadní Iii",
+  "Severozápadní Iv",
+  "Severozápadní V",
+  "Severozápadní Vi",
+  "Severýnova",
+  "Sevřená",
+  "Seydlerova",
+  "Sezemická",
+  "Sezemínská",
+  "Sezimova",
+  "Sečská",
+  "Sibeliova",
+  "Sibiřské Nám.",
+  "Sibiřské Náměstí",
+  "Sicherova",
+  "Sichrovského",
+  "Siemensova",
+  "Silurská",
+  "Sinkulova",
+  "Sinkulova",
+  "Sitteho",
+  "Siwiecova",
+  "Skalecká",
+  "Skalnatá",
+  "Skalnická",
+  "Skalní",
+  "Skalská",
+  "Skaláků",
+  "Skandinávská",
+  "Skandinávská",
+  "Skautská",
+  "Sklenská",
+  "Skloněná",
+  "Sklářská",
+  "Skokanská",
+  "Skorkovská",
+  "Skorkovská",
+  "Skotská",
+  "Skořepka",
+  "Skořicová",
+  "Skryjská",
+  "Skupova",
+  "Skuteckého",
+  "Skálova",
+  "Skřivanova",
+  "Skřivanská",
+  "Skřivánčí",
+  "Sladkovského Nám.",
+  "Sladkovského Náměstí",
+  "Sladovnická",
+  "Slancova",
+  "Slaná",
+  "Slapská",
+  "Slatinová",
+  "Slatinská",
+  "Slatiny",
+  "Slatiňanská",
+  "Slavatova",
+  "Slaviborské Nám.",
+  "Slaviborské Náměstí",
+  "Slavická",
+  "Slavičí",
+  "Slavičínská",
+  "Slavníkova",
+  "Slavojova",
+  "Slavonická",
+  "Slavíkova",
+  "Slavíkova",
+  "Slavíkova",
+  "Slavínského",
+  "Slavíčkova",
+  "Slavětínská",
+  "Slepá I",
+  "Slepá Ii",
+  "Slezanů",
+  "Slezská",
+  "Slezská",
+  "Sliačská",
+  "Sliačská",
+  "Slibná",
+  "Slinková",
+  "Slivenecká",
+  "Slovanský Ostrov",
+  "Slovačíkova",
+  "Slovenská",
+  "Slovenská",
+  "Slovinská",
+  "Slunečnicová",
+  "Slunečná",
+  "Sluneční",
+  "Sluneční Nám.",
+  "Sluneční Náměstí",
+  "Slunná",
+  "Sluštická",
+  "Služeb",
+  "Služeb",
+  "Služská",
+  "Sládkova",
+  "Sládkovičova",
+  "Slámova",
+  "Slánská",
+  "Slávy Horníka",
+  "Slévačská",
+  "Slévačská",
+  "Slévačská",
+  "Slídová",
+  "Slívová",
+  "Smaragdová",
+  "Smetanovo Nábř.",
+  "Smetanovo Nábřeží",
+  "Smetáčkova",
+  "Smidarská",
+  "Smikova",
+  "Smiřická",
+  "Smiřického",
+  "Smolenská",
+  "Smolkova",
+  "Smolíkova",
+  "Smotlachova",
+  "Smotlachova",
+  "Smrková",
+  "Smrčinská",
+  "Smržovská",
+  "Smržová",
+  "Smíchovská",
+  "Smíchovská",
+  "Smíchovská",
+  "Smírná",
+  "Snopkova",
+  "Sněmovní",
+  "Sněženková",
+  "Sněžná",
+  "Sobolákova",
+  "Soborská",
+  "Sobotecká",
+  "Sobínská",
+  "Soběslavova",
+  "Soběslavská",
+  "Sobětická",
+  "Sobětušská",
+  "Soběšínská",
+  "Sochařská",
+  "Socháňova",
+  "Sodomkova",
+  "Sofijské Nám.",
+  "Sofijské Náměstí",
+  "Sojkovská",
+  "Sojovická",
+  "Sojčí",
+  "Sojčí",
+  "Sokolovská",
+  "Sokolovská",
+  "Sokolovská",
+  "Sokolovská",
+  "Sokolská",
+  "Sokratova",
+  "Solidarity",
+  "Solnická",
+  "Solná",
+  "Sopotská",
+  "Sosnovecká",
+  "Souběžná I",
+  "Souběžná Ii",
+  "Souběžná Iii",
+  "Souběžná Iv",
+  "Soudní",
+  "Soukalova",
+  "Soukenická",
+  "Soumarská",
+  "Sousední",
+  "Sousední",
+  "Sousedská",
+  "Sousedíkova",
+  "Soustružnická",
+  "Soustružnická",
+  "Souvratní",
+  "Součkova",
+  "Sovenická",
+  "Sovova",
+  "Sovákova",
+  "Soví Vršek",
+  "Spinozova",
+  "Spiritka",
+  "Splavná",
+  "Spodní",
+  "Spojařů",
+  "Spojenců",
+  "Spojená",
+  "Spojná",
+  "Spojovací",
+  "Spojovací",
+  "Spojovací",
+  "Spojovací",
+  "Spojová",
+  "Společná",
+  "Spolská",
+  "Spolupráce",
+  "Sportovců",
+  "Sportovců",
+  "Sportovní",
+  "Spotřebitelská",
+  "Spořická",
+  "Spořilovská",
+  "Spytihněvova",
+  "Spádná",
+  "Spádová",
+  "Spálená",
+  "Spálená",
+  "Spálený Mlýn",
+  "Srbova",
+  "Srbská",
+  "Srbínská",
+  "Srnečkova",
+  "Srnčí",
+  "Srnčí",
+  "Srpnová",
+  "Srázná",
+  "Stachova",
+  "Stadická",
+  "Stadionová",
+  "Stadiónová",
+  "Stallichova",
+  "Stamicova",
+  "Staniční",
+  "Starobylá",
+  "Starochodovská",
+  "Starochuchelská",
+  "Starodejvická",
+  "Starodubečská",
+  "Starodvorská",
+  "Staroklánovická",
+  "Starokolínská",
+  "Starokošířská",
+  "Starolázeňská",
+  "Staromlýnská",
+  "Staromodřanská",
+  "Staroměstské Nám.",
+  "Staroměstské Náměstí",
+  "Staropacká",
+  "Staropramenná",
+  "Starostrašnická",
+  "Starostřešovická",
+  "Starosuchdolská",
+  "Staroújezdská",
+  "Staročeská",
+  "Stará Cesta",
+  "Stará Náves",
+  "Stará Obec",
+  "Stará Spojovací",
+  "Stará Stodůlecká",
+  "Staré Nám.",
+  "Staré Náměstí",
+  "Staré Zámecké Schody",
+  "Staré Zámecké Schody",
+  "Starého",
+  "Starý Lis",
+  "Statenická",
+  "Statková",
+  "Stavbařů",
+  "Stavební",
+  "Stavitelská",
+  "Stavovská",
+  "Staňkova",
+  "Staňkovka",
+  "Staňkovská",
+  "Stehlíkova",
+  "Steinerova",
+  "Stejskalova",
+  "Stiessova",
+  "Stinkovská",
+  "Stochovská",
+  "Stodůlecká",
+  "Stojická",
+  "Stoličkova",
+  "Stoliňská",
+  "Stoupající",
+  "Stoupající",
+  "Stradonická",
+  "Strahovská",
+  "Strahovské Nádvoří",
+  "Strakatého",
+  "Strakonická",
+  "Strakonická",
+  "Strakonická",
+  "Strakonická",
+  "Strakonická",
+  "Strakonická",
+  "Strakošová",
+  "Strančická",
+  "Stratovská",
+  "Strašnická",
+  "Strašnická",
+  "Strašovská",
+  "Strašínská",
+  "Strmá",
+  "Strmý Vrch",
+  "Strnadova",
+  "Strnady",
+  "Strojická",
+  "Strojnická",
+  "Strojírenská",
+  "Stromovka",
+  "Stromovka",
+  "Stropnická",
+  "Stropnická",
+  "Stropnická",
+  "Strossmayerovo Nám.",
+  "Strossmayerovo Náměstí",
+  "Strouhalova",
+  "Stroupežnického",
+  "Struhařovská",
+  "Strunkovská",
+  "Stružky",
+  "Stružná",
+  "Strážkovická",
+  "Strážnická",
+  "Strážní",
+  "Strážovská",
+  "Stržná",
+  "Studenecká",
+  "Studentská",
+  "Studená",
+  "Studnická",
+  "Studničkova",
+  "Studniční",
+  "Studánková",
+  "Stulíková",
+  "Stupická",
+  "Stupkova",
+  "Stupská",
+  "Stupňová",
+  "Stádlecká",
+  "Stárkova",
+  "Stýblova",
+  "Střední",
+  "Středohorská",
+  "Středová",
+  "Střekovská",
+  "Střelecký Ostrov",
+  "Střelečská",
+  "Střelničná",
+  "Střelničná",
+  "Střemchová",
+  "Střešovická",
+  "Střešovická",
+  "Střimelická",
+  "Stříbrná",
+  "Stříbrského",
+  "Stříbrského",
+  "Střížkovská",
+  "Střížkovská",
+  "Střížkovská",
+  "Suchardova",
+  "Suchdolská",
+  "Suchdolská",
+  "Suchdolská",
+  "Suchdolské Nám.",
+  "Suchdolské Náměstí",
+  "Suchý Vršek",
+  "Sudkova",
+  "Sudoměřská",
+  "Sudějovická",
+  "Sukova",
+  "Sulanského",
+  "Sulická",
+  "Sulická",
+  "Sulova",
+  "Sulovická",
+  "Sumova",
+  "Suppého",
+  "Suttnerové",
+  "Sušická",
+  "Sušilova",
+  "Svahová",
+  "Svatavina",
+  "Svatojánská",
+  "Svatoplukova",
+  "Svatoslavova",
+  "Svatovítská",
+  "Svatovítská",
+  "Svatoňovická",
+  "Svažitá",
+  "Svijanská",
+  "Svitavská",
+  "Svitákova",
+  "Svobodova",
+  "Svobodova",
+  "Svojetická",
+  "Svojsíkova",
+  "Svojšická",
+  "Svojšovická",
+  "Svornosti",
+  "Svratecká",
+  "Svárovská",
+  "Svátkova",
+  "Svážná",
+  "Svépomoci",
+  "Svépomocná",
+  "Svépravická",
+  "Svépravická",
+  "Svídnická",
+  "Svěceného",
+  "Světická",
+  "Světova",
+  "Světská",
+  "Sychrovská",
+  "Symfonická",
+  "Synkovická",
+  "Synkovská",
+  "Syrská",
+  "Sádky",
+  "Sádovská",
+  "Sámova",
+  "Sárská",
+  "Sárská",
+  "Sárská",
+  "Sázavská",
+  "Sáňkařská",
+  "Sídlištní",
+  "Sídlištní",
+  "Sídliště",
+  "Súdánská",
+  "Sýkorčí",
+  "Sýkovecká",
+  "Tachlovická",
+  "Tachovská",
+  "Tachovské Nám.",
+  "Tachovské Náměstí",
+  "Tadrova",
+  "Tajovského",
+  "Talafúsova",
+  "Talichova",
+  "Talmberská",
+  "Tanvaldská",
+  "Tasovská",
+  "Tatarkova",
+  "Tatranská",
+  "Tauerova",
+  "Tauferova",
+  "Taussigova",
+  "Tavolníková",
+  "Tařicová",
+  "Taškentská",
+  "Technická",
+  "Technologická",
+  "Tehovská",
+  "Tejnická",
+  "Tejnka",
+  "Telčská",
+  "Templová",
+  "Tenisová",
+  "Teplická",
+  "Teplárenská",
+  "Teplárenská",
+  "Terasovitá",
+  "Tererova",
+  "Terezínská",
+  "Terronská",
+  "Tesaříkova",
+  "Tetínská",
+  "Theinova",
+  "Thomayerova",
+  "Thunovská",
+  "Thurnova",
+  "Thákurova",
+  "Thámova",
+  "Tibetská",
+  "Tichnova",
+  "Tichnova",
+  "Tichonická",
+  "Tichá",
+  "Tichého",
+  "Tigridova",
+  "Tikovská",
+  "Tilleho Nám.",
+  "Tilleho Náměstí",
+  "Tilschové",
+  "Tiskařská",
+  "Tismická",
+  "Tišická",
+  "Tlumačovská",
+  "Tlustého",
+  "Tobrucká",
+  "Tolstého",
+  "Tomanova",
+  "Tomická",
+  "Tomkova",
+  "Tomsova",
+  "Tomáškova",
+  "Tomášská",
+  "Tomíčkova",
+  "Topasová",
+  "Topolová",
+  "Toruňská",
+  "Toulovská",
+  "Toušeňská",
+  "Toušická",
+  "Toužimská",
+  "Toužimská",
+  "Tovarova",
+  "Tovačovského",
+  "Tovární",
+  "Točenská",
+  "Točitá",
+  "Trabantská",
+  "Trachtova",
+  "Trampotova",
+  "Travnatá",
+  "Travná",
+  "Travná",
+  "Trenčínská",
+  "Trhanovské Náměstí",
+  "Trmická",
+  "Trnavská",
+  "Trnavská",
+  "Trnitá",
+  "Trnkovo Nám.",
+  "Trnkovo Náměstí",
+  "Trnková",
+  "Trnovanská",
+  "Trní",
+  "Trocnovská",
+  "Troilova",
+  "Trojanova",
+  "Trojanův Mlýn",
+  "Trojdílná",
+  "Trojická",
+  "Trojmezní",
+  "Trojmezní",
+  "Trojská",
+  "Trojská",
+  "Trojská",
+  "Trojská",
+  "Troskovická",
+  "Trousilova",
+  "Truhlářka",
+  "Truhlářova",
+  "Truhlářská",
+  "Trutnovská",
+  "Tryskovická",
+  "Tryskovická",
+  "Trytova",
+  "Trávnická",
+  "Trávníčkova",
+  "Tréglova",
+  "Tržiště",
+  "Tuchoměřická",
+  "Tuchorazská",
+  "Tuchotická",
+  "Tuháňská",
+  "Tuklatská",
+  "Tulešická",
+  "Tulipánová",
+  "Tulkova",
+  "Tulská",
+  "Tunelářů",
+  "Tuniská",
+  "Tupolevova",
+  "Turgeněvova",
+  "Turistická",
+  "Turkmenská",
+  "Turkovická",
+  "Turkovská",
+  "Turnovská",
+  "Turnovského",
+  "Turská",
+  "Turínská",
+  "Tusarova",
+  "Tuřická",
+  "Tušimická",
+  "Tužebníková",
+  "Tvrdonická",
+  "Tvrdého",
+  "Tychonova",
+  "Tylišovská",
+  "Tylovická",
+  "Tylovo Nám.",
+  "Tylovo Náměstí",
+  "Tymiánová",
+  "Tyrkysová",
+  "Tyršova",
+  "Táboritská",
+  "Táborská",
+  "Tádžická",
+  "Táhlá",
+  "Tálínská",
+  "Türkova",
+  "Týmlova",
+  "Týmlova",
+  "Týn",
+  "Týnecká",
+  "Týnská",
+  "Týnská Ulička",
+  "Týřovická",
+  "Tělovýchovná",
+  "Těšnov",
+  "Těšovická",
+  "Těšíkova",
+  "Těšínská",
+  "Třanovského",
+  "Třebanická",
+  "Třebechovická",
+  "Třebenická",
+  "Třebešovská",
+  "Třebihošťská",
+  "Třebohostická",
+  "Třebonická",
+  "Třeboradická",
+  "Třebotovská",
+  "Třeboňská",
+  "Třebízského",
+  "Třebějická",
+  "Třebětínská",
+  "Třešňová",
+  "Třešňová",
+  "Třešňová",
+  "Třinecká",
+  "Třtinová",
+  "Třídomá",
+  "Třístoličná",
+  "Tůmova",
+  "U Akademie",
+  "U Akátů",
+  "U Albrechtova Vrchu",
+  "U Andělky",
+  "U Arborky",
+  "U Bakaláře",
+  "U Balabenky",
+  "U Bazénu",
+  "U Bažantnice",
+  "U Berounky",
+  "U Beránky",
+  "U Besedy",
+  "U Blaženky",
+  "U Boroviček",
+  "U Botiče",
+  "U Botiče",
+  "U Božích Bojovníků",
+  "U Branek",
+  "U Bruských Kasáren",
+  "U Brusnice",
+  "U Brusnice",
+  "U Bubce",
+  "U Bulhara",
+  "U Bulhara",
+  "U Bílého Mlýnku",
+  "U Břehu",
+  "U Chaloupek",
+  "U Chmelnice",
+  "U Chodovského Hřbitova",
+  "U Cibulky",
+  "U Cihelny",
+  "U Cikánky",
+  "U Cukrovaru",
+  "U Císařské Cesty",
+  "U Dejvického Rybníčku",
+  "U Demartinky",
+  "U Divadla",
+  "U Divadla",
+  "U Dobešky",
+  "U Dobráků",
+  "U Dobráků",
+  "U Dobřenských",
+  "U Domu Služeb",
+  "U Drahaně",
+  "U Druhé Baterie",
+  "U Druhé Baterie",
+  "U Drupolu",
+  "U Družstev",
+  "U Družstva Ideál",
+  "U Družstva Klid",
+  "U Družstva Práce",
+  "U Družstva Práce",
+  "U Družstva Repo",
+  "U Družstva Tempo",
+  "U Družstva Život",
+  "U Dráhy",
+  "U Dráhy",
+  "U Drážky",
+  "U Drůbežárny",
+  "U Dubečské Tvrze",
+  "U Dubu",
+  "U Dvojdomů",
+  "U Dvora",
+  "U Dvou Srpů",
+  "U Dálnice",
+  "U Dívčích Hradů",
+  "U Dívčích Hradů",
+  "U Děkanky",
+  "U Dělnického Cvičiště",
+  "U Dětského Domova",
+  "U Dětského Hřiště",
+  "U Elektry",
+  "U Elektry",
+  "U Elektrárny",
+  "U Floriána",
+  "U Fořta",
+  "U Gabrielky",
+  "U Garáží",
+  "U Golfu",
+  "U Gymnázia",
+  "U Habeše",
+  "U Habrovky",
+  "U Hadovky",
+  "U Harfy",
+  "U Hasičské Zbrojnice",
+  "U Hasičské Zbrojnice",
+  "U Havlíčkových Sadů",
+  "U Hellady",
+  "U Hercovky",
+  "U Hliníku",
+  "U Hodin",
+  "U Homolky",
+  "U Hostavického Potoka",
+  "U Hostivařského Nádraží",
+  "U Hostivařského Nádraží",
+  "U Hotelu",
+  "U Hranic",
+  "U Hrnčířského Rybníka",
+  "U Hrocha",
+  "U Hrušky",
+  "U Hráze",
+  "U Hudební Školy",
+  "U Hvozdu",
+  "U Hvězdy",
+  "U Hvězdy",
+  "U Háje",
+  "U Hájku",
+  "U Hájovny",
+  "U Házů",
+  "U Hřbitovů",
+  "U Hřiště",
+  "U Invalidovny",
+  "U Jamské",
+  "U Jankovky",
+  "U Javoru",
+  "U Jedličkova Ústavu",
+  "U Jednoty",
+  "U Jeslí",
+  "U Jezera",
+  "U Jezerky",
+  "U Jezu",
+  "U Jezírka",
+  "U Jinonického Rybníčka",
+  "U Jirkovské",
+  "U Jizby",
+  "U Járku",
+  "U Jízdárny",
+  "U Kabelovny",
+  "U Kabelovny",
+  "U Kaménky",
+  "U Kamýku",
+  "U Kanálky",
+  "U Kapliček",
+  "U Kapličky",
+  "U Karlova Stánku",
+  "U Kasáren",
+  "U Kavalírky",
+  "U Kazína",
+  "U Kašny",
+  "U Kaštanu",
+  "U Kempinku",
+  "U Kina",
+  "U Klavírky",
+  "U Klikovky",
+  "U Klimentky",
+  "U Kloubových Domů",
+  "U Klubovny",
+  "U Klubu",
+  "U Kněžské Louky",
+  "U Kola",
+  "U Kolejí",
+  "U Kolejí",
+  "U Koloděj",
+  "U Kolonie",
+  "U Koloniálu",
+  "U Kombinátu",
+  "U Konečné",
+  "U Koní",
+  "U Kosinů",
+  "U Kostela",
+  "U Kostrounku",
+  "U Kotlářky",
+  "U Koupadel",
+  "U Košíku",
+  "U Krbu",
+  "U Krbu",
+  "U Krelovy Studánky",
+  "U Kruhovky",
+  "U Královské Louky",
+  "U Krčské Vodárny",
+  "U Krčského Nádraží",
+  "U Kublova",
+  "U Kunratického Lesa",
+  "U Křižovatky",
+  "U Kříže",
+  "U Kříže",
+  "U Křížku",
+  "U Laboratoře",
+  "U Ladronky",
+  "U Lanové Dráhy",
+  "U Ledáren",
+  "U Lesa",
+  "U Lesa",
+  "U Lesíka",
+  "U Letenského Sadu",
+  "U Letiště",
+  "U Letohrádku Královny Anny",
+  "U Libeňského Pivovaru",
+  "U Libeňského Zámku",
+  "U Libušiných Lázní",
+  "U Libušské Sokolovny",
+  "U Lidového Domu",
+  "U Lip",
+  "U Lipové Aleje",
+  "U Lisu",
+  "U Loděnice",
+  "U Lomu",
+  "U Loskotů",
+  "U Louky",
+  "U Lužického Semináře",
+  "U Lázeňky",
+  "U Lázní",
+  "U Lékárny",
+  "U Líhní",
+  "U Lípy",
+  "U Malvazinky",
+  "U Malé Řeky",
+  "U Markéty",
+  "U Mateřské Školy",
+  "U Matěje",
+  "U Maří Magdaleny",
+  "U Meteoru",
+  "U Mezníku",
+  "U Michelské Školy",
+  "U Michelského Lesa",
+  "U Michelského Lesa",
+  "U Michelského Mlýna",
+  "U Milosrdných",
+  "U Mlýna",
+  "U Mlýna",
+  "U Mlýnského Rybníka",
+  "U Modré Školy",
+  "U Modřanské Školy",
+  "U Močálu",
+  "U Mrázovky",
+  "U Mydlárny",
+  "U Myslivny",
+  "U Městských Domů",
+  "U Měšťanského Pivovaru",
+  "U Měšťanských Škol",
+  "U Nadýmače",
+  "U Nemocenské Pojišťovny",
+  "U Nemocnice",
+  "U Nesypky",
+  "U Nikolajky",
+  "U Nové Dálnice",
+  "U Nové Louky",
+  "U Nové Školy",
+  "U Nového Dvora",
+  "U Nového Suchdola",
+  "U Nového Suchdola",
+  "U Nových Domů I",
+  "U Nových Domů Ii",
+  "U Nových Domů Iii",
+  "U Nových Vil",
+  "U Nádražní Lávky",
+  "U Nádraží",
+  "U Nádrže",
+  "U Náhonu",
+  "U Náhonu",
+  "U Nákladového Nádraží",
+  "U Nákladového Nádraží",
+  "U Národní Galerie",
+  "U Nás",
+  "U Obce",
+  "U Obecního Domu",
+  "U Obecního Dvora",
+  "U Obory",
+  "U Okrouhlíku",
+  "U Olšiček",
+  "U Opatrovny",
+  "U Ovčína",
+  "U Palaty",
+  "U Paliárky",
+  "U Paloučku",
+  "U Památníku",
+  "U Panské Zahrady",
+  "U Papírny",
+  "U Parku",
+  "U Parkánu",
+  "U Parního Mlýna",
+  "U Pastoušky",
+  "U Pavilónu",
+  "U Pazderek",
+  "U Pejřárny",
+  "U Pekařky",
+  "U Pekáren",
+  "U Pentlovky",
+  "U Pergamenky",
+  "U Pernikářky",
+  "U Pernštejnských",
+  "U Petřin",
+  "U Pily",
+  "U Plovárny",
+  "U Plynárny",
+  "U Plynárny",
+  "U Plátenice",
+  "U Podchodu",
+  "U Podjezdu",
+  "U Podolského Hřbitova",
+  "U Podolského Sanatoria",
+  "U Pohádky",
+  "U Polikliniky",
+  "U Pomníku",
+  "U Potoka",
+  "U Poustek",
+  "U Poštovky",
+  "U Pošty",
+  "U Pramene",
+  "U Prašné Brány",
+  "U Prašného Mostu",
+  "U Prašného Mostu",
+  "U Pražských Lomů",
+  "U Prefy",
+  "U Prioru",
+  "U Prknovky",
+  "U Prodejny",
+  "U Propusti",
+  "U Prosecké Školy",
+  "U Proseckého Kostela",
+  "U První Baterie",
+  "U První Baterie",
+  "U Prádelny",
+  "U Průhonu",
+  "U Průseku",
+  "U Pumpy",
+  "U Párníků",
+  "U Páté Baterie",
+  "U Páté Baterie",
+  "U Písecké Brány",
+  "U Pískovny",
+  "U Přechodu",
+  "U Přehrady",
+  "U Přejezdu",
+  "U Půjčovny",
+  "U Radiály",
+  "U Radnice",
+  "U Rajské Zahrady",
+  "U Rakovky",
+  "U Roháčových Kasáren",
+  "U Rokytky",
+  "U Rokytky",
+  "U Rokytky",
+  "U Rozkoše",
+  "U Roztockého Háje",
+  "U Rybníka",
+  "U Rybníčka",
+  "U Rybářství",
+  "U Rychty",
+  "U Rychty",
+  "U Ryšánky",
+  "U Ryšánky",
+  "U Sadu",
+  "U Sanatoria",
+  "U Sanopzu",
+  "U Santošky",
+  "U Schodů",
+  "U Sedlecké Školy",
+  "U Seřadiště",
+  "U Sila",
+  "U Silnice",
+  "U Silnice",
+  "U Skalky",
+  "U Skladu",
+  "U Skládky",
+  "U Skopců",
+  "U Skály",
+  "U Sladovny",
+  "U Slavie",
+  "U Sloupu",
+  "U Slovanky",
+  "U Slovanské Pojišťovny",
+  "U Sluncové",
+  "U Slévárny",
+  "U Smaltovny",
+  "U Smetanky",
+  "U Smolnic",
+  "U Smíchovského Hřbitova",
+  "U Sokolovny",
+  "U Soutoku",
+  "U Sovových Mlýnů",
+  "U Sparty",
+  "U Splavu",
+  "U Spojky",
+  "U Spojů",
+  "U Společenské Zahrady",
+  "U Sportoviště",
+  "U Spořitelny",
+  "U Stanice",
+  "U Staré Cihelny",
+  "U Staré Plynárny",
+  "U Staré Pošty",
+  "U Staré Skládky",
+  "U Staré Sokolovny",
+  "U Staré Studánky",
+  "U Staré Tvrze",
+  "U Staré Školy",
+  "U Staré Školy",
+  "U Starého Hřbitova",
+  "U Starého Hřiště",
+  "U Starého Mlýna",
+  "U Starého Nádraží",
+  "U Starého Splavu",
+  "U Starého Stadionu",
+  "U Starého Stadiónu",
+  "U Starého Židovského Hřbitova",
+  "U Starého Židovského Hřbitova",
+  "U Statku",
+  "U Stavoservisu",
+  "U Stojanu",
+  "U Strouhy",
+  "U Strže",
+  "U Studny",
+  "U Studánky",
+  "U Studánky",
+  "U Stárovny",
+  "U Státní Dráhy",
+  "U Státní Dráhy",
+  "U Stírky",
+  "U Střediska",
+  "U Střešovických Hřišť",
+  "U Sušičky",
+  "U Svahu",
+  "U Svatého Ducha",
+  "U Svobodárny",
+  "U Svodnice",
+  "U Svornosti",
+  "U Svépomoci",
+  "U Světličky",
+  "U Synagogy",
+  "U Sádek",
+  "U Sídliště",
+  "U Tabulky",
+  "U Technoplynu",
+  "U Tenisu",
+  "U Teplárny",
+  "U Topíren",
+  "U Továren",
+  "U Transformační Stanice",
+  "U Transformátoru",
+  "U Trati",
+  "U Trativodu",
+  "U Trezorky",
+  "U Trojice",
+  "U Trojského Zámku",
+  "U Trpce",
+  "U Tržnice",
+  "U Tvrze",
+  "U Tyrše",
+  "U Tyršovky",
+  "U Tyršovy Školy",
+  "U Třetí Baterie",
+  "U Třešňovky",
+  "U Třešňového Sadu",
+  "U Tůně",
+  "U Uhříněveské Obory",
+  "U Uranie",
+  "U Učiliště",
+  "U Valu",
+  "U Velké Skály",
+  "U Vesny",
+  "U Viktorky",
+  "U Vinice",
+  "U Viniček",
+  "U Vinné Révy",
+  "U Vinných Sklepů",
+  "U Vinohradské Nemocnice",
+  "U Vinohradského Hřbitova",
+  "U Vinohradského Hřbitova",
+  "U Vizerky",
+  "U Višňovky",
+  "U Višňovky",
+  "U Vlachovky",
+  "U Vlasačky",
+  "U Vlečky",
+  "U Vlečky",
+  "U Vltavy",
+  "U Voborníků",
+  "U Vodice",
+  "U Vodojemu",
+  "U Vodojemu",
+  "U Vodotoku",
+  "U Vody",
+  "U Vodárny",
+  "U Vojanky",
+  "U Vojenské Nemocnice",
+  "U Vojtěšky",
+  "U Vokovické Školy",
+  "U Vorlíků",
+  "U Vozovny",
+  "U Vrbiček",
+  "U Vrby",
+  "U Vrtilky",
+  "U Vršovického Hřbitova",
+  "U Vršovického Hřbitova",
+  "U Vršovického Nádraží",
+  "U Vysočanského Cukrovaru",
+  "U Vysočanského Pivovaru",
+  "U Václava",
+  "U Váhy",
+  "U Vápenice",
+  "U Vápenky",
+  "U Vápenné Skály",
+  "U Výkupního Střediska",
+  "U Výstavby",
+  "U Výstaviště",
+  "U Výstaviště",
+  "U Výzkumu",
+  "U Včely",
+  "U Větrníku",
+  "U Větrolamu",
+  "U Větrolamu",
+  "U Věže",
+  "U Waltrovky",
+  "U Zahradnictví",
+  "U Zahradního Města",
+  "U Zahrady",
+  "U Zahrádek",
+  "U Zahrádkářské Kolonie",
+  "U Zastávky",
+  "U Zbrojnice",
+  "U Zdravotního Ústavu",
+  "U Zeleného Ptáka",
+  "U Zemníku",
+  "U Zeměpisného Ústavu",
+  "U Zlaté Studně",
+  "U Zličína",
+  "U Zličína",
+  "U Zličínského Hřiště",
+  "U Zvonařky",
+  "U Zvoničky",
+  "U Záběhlického Zámku",
+  "U Zájezdku",
+  "U Zákrutu",
+  "U Zámeckého Parku",
+  "U Zámečku",
+  "U Zámečnice",
+  "U Zásobní Zahrady",
+  "U Zátiší",
+  "U Závodiště",
+  "U Závor",
+  "U Úlů",
+  "U Čekárny",
+  "U Černé Rokle",
+  "U Červeného Mlýnku",
+  "U Červeného Mlýnku",
+  "U Českých Loděnic",
+  "U Čihadel",
+  "U Čističky",
+  "U Čokoládoven",
+  "U Čtvrté Baterie",
+  "U Čtyř Domů",
+  "U Řempa",
+  "U Říčanky",
+  "U Šalamounky",
+  "U Šalamounky",
+  "U Šesté Baterie",
+  "U Šesté Baterie",
+  "U Školičky",
+  "U Školky",
+  "U Školního Pole",
+  "U Školské Zahrady",
+  "U Školy",
+  "U Štěpu",
+  "U Šumavy",
+  "U Šumavěnky",
+  "U Šálkovny",
+  "U Šíchů",
+  "U Šípků",
+  "U Železnice",
+  "U Železničního Mostu",
+  "U Železné Lávky",
+  "U Želivky",
+  "U Židovského Hřbitova",
+  "U Žlábku",
+  "U Županských",
+  "Uhelný Trh",
+  "Uherská",
+  "Uhříněveská",
+  "Ukončená",
+  "Ukrajinská",
+  "Uljanovská",
+  "Ulrychova",
+  "Ulčova",
+  "Umělecká",
+  "Ungarova",
+  "Unhošťská",
+  "Univerzitní",
+  "Upolínová",
+  "Upravená",
+  "Uralská",
+  "Urbanická",
+  "Urbanova",
+  "Urbánkova",
+  "Urešova",
+  "Uruguayská",
+  "Urxova",
+  "Utěšilova",
+  "Uzavřená",
+  "Uzbecká",
+  "Uzoučká",
+  "Učitelská",
+  "Učňovská",
+  "Užocká",
+  "V Aleji",
+  "V Alejích",
+  "V Americe",
+  "V Babyku",
+  "V Bambouskách",
+  "V Bažinách",
+  "V Benátkách",
+  "V Bezpečí",
+  "V Bokách I",
+  "V Bokách Ii",
+  "V Bokách Iii",
+  "V Borovičkách",
+  "V Botanice",
+  "V Brance",
+  "V Brůdku",
+  "V Brůdku",
+  "V Bytovkách",
+  "V Bílce",
+  "V Březinkách",
+  "V Březině",
+  "V Březí",
+  "V Břízkách",
+  "V Celnici",
+  "V Cestičkách",
+  "V Cestkách",
+  "V Chaloupkách",
+  "V Chaloupkách",
+  "V Chatách",
+  "V Chotejně",
+  "V Cibulkách",
+  "V Cihelně",
+  "V Cípu",
+  "V Dolinách",
+  "V Dolině",
+  "V Dolině",
+  "V Dolích",
+  "V Domcích",
+  "V Domově",
+  "V Doubcích",
+  "V Dílcích",
+  "V Edenu",
+  "V Haltýři",
+  "V Hliništi",
+  "V Hluboké",
+  "V Hodkovičkách",
+  "V Holešovičkách",
+  "V Honu",
+  "V Horkách",
+  "V Horní Stromce",
+  "V Hrobech",
+  "V Humenci",
+  "V Humenci",
+  "V Humnech",
+  "V Háji",
+  "V Hájkách",
+  "V Hájích",
+  "V Hůrkách",
+  "V Jahodách",
+  "V Javorech",
+  "V Javoříčku",
+  "V Jehličině",
+  "V Jehličí",
+  "V Jezerách",
+  "V Jezevčinách",
+  "V Jezírkách",
+  "V Jirchářích",
+  "V Jámě",
+  "V Kališti",
+  "V Kališti",
+  "V Kapslovně",
+  "V Klukovicích",
+  "V Kole",
+  "V Kolkovně",
+  "V Korytech",
+  "V Korytech",
+  "V Kotcích",
+  "V Koutku",
+  "V Koutě",
+  "V Kratinách",
+  "V Kruhu",
+  "V Kuťatech",
+  "V Kálku",
+  "V Křepelkách",
+  "V Křovinách",
+  "V Křížkách",
+  "V Ladech",
+  "V Lesíčku",
+  "V Lipinách",
+  "V Lipinách",
+  "V Lipkách",
+  "V Lipách",
+  "V Listnáčích",
+  "V Lomech",
+  "V Louce",
+  "V Luhu",
+  "V Lukách",
+  "V Lučinách",
+  "V Lužích",
+  "V Lánech",
+  "V Lázních",
+  "V Lískách",
+  "V Malých Domech I",
+  "V Malých Domech Ii",
+  "V Malých Domech Iii",
+  "V Mezihoří",
+  "V Milíři",
+  "V Mokřinách",
+  "V Mydlinkách",
+  "V Nové Hostivaři",
+  "V Nové Vsi",
+  "V Nové Vsi",
+  "V Nové Čtvrti",
+  "V Novém Hloubětíně",
+  "V Novém Hloubětíně",
+  "V Nových Bohnicích",
+  "V Nových Domcích",
+  "V Nových Vokovicích",
+  "V Náklích",
+  "V Násypu",
+  "V Nížinách",
+  "V Oblouku",
+  "V Občanském Domově",
+  "V Obůrkách",
+  "V Ochozu",
+  "V Ohradě",
+  "V Ohybu",
+  "V Okruží",
+  "V Okálech",
+  "V Olšinách",
+  "V Olšinách",
+  "V Olšině",
+  "V Ondřejově",
+  "V Opatově",
+  "V Osikách",
+  "V Ostružiní",
+  "V Oudolku",
+  "V Ořeší",
+  "V Pachmance",
+  "V Padolině",
+  "V Parcelách",
+  "V Parku",
+  "V Parníku",
+  "V Pačátkách",
+  "V Pařezinách",
+  "V Pevnosti",
+  "V Pevnosti",
+  "V Pitkovičkách",
+  "V Planinách",
+  "V Platýzu",
+  "V Pláni",
+  "V Podbabě",
+  "V Podhoří",
+  "V Podhájí",
+  "V Podhájí",
+  "V Podluží",
+  "V Podskalí",
+  "V Podvrší",
+  "V Podzámčí",
+  "V Poli",
+  "V Polích",
+  "V Potokách",
+  "V Potočinách",
+  "V Potočkách",
+  "V Prutinách",
+  "V Průhledu",
+  "V Průčelí",
+  "V Pátém",
+  "V Pískovně",
+  "V Pěšinkách",
+  "V Předním Hloubětíně",
+  "V Předním Veleslavíně",
+  "V Předpolí",
+  "V Předpolí",
+  "V Přelomu",
+  "V Přístavu",
+  "V Remízku",
+  "V Rohožníku",
+  "V Rohu",
+  "V Roháčích",
+  "V Rokli",
+  "V Roklích",
+  "V Rovinách",
+  "V Rovinách",
+  "V Rybníkách",
+  "V Rybníčkách",
+  "V Ráji",
+  "V Ráji",
+  "V Rákosí",
+  "V Sadech",
+  "V Sedlci",
+  "V Sedlci",
+  "V Slavětíně",
+  "V Soudním",
+  "V Stráni",
+  "V Středu",
+  "V Sudech",
+  "V Sídlišti",
+  "V Tehovičkách",
+  "V Tišině",
+  "V Trninách",
+  "V Třešňovce",
+  "V Tůních",
+  "V Uličce",
+  "V Uličkách",
+  "V Zahradní Čtvrti",
+  "V Zahradách",
+  "V Zahrádkách",
+  "V Zatáčce",
+  "V Zeleni",
+  "V Zeleném Údolí",
+  "V Záhorském",
+  "V Záhybu",
+  "V Zákopech",
+  "V Zákoutí",
+  "V Zálesí",
+  "V Zálomu",
+  "V Zámcích",
+  "V Zápolí",
+  "V Zátiší",
+  "V Zátočce",
+  "V Závitu",
+  "V Závětří",
+  "V Zářezu",
+  "V Údolí",
+  "V Údolí Hvězd",
+  "V Úhlu",
+  "V Úhoru",
+  "V Úvalu",
+  "V Úvoze",
+  "V Úzké",
+  "V Úžlabině",
+  "V Úžlabině",
+  "V Čeňku",
+  "V Štíhlách",
+  "V Šáreckém Údolí",
+  "V Žabokřiku",
+  "V Žáčku",
+  "V. P. Čkalova",
+  "V. P. Čkalova",
+  "Vachkova",
+  "Vackova",
+  "Vacovská",
+  "Vacínova",
+  "Vacínovská",
+  "Vajdova",
+  "Vajgarská",
+  "Valcířská",
+  "Valdická",
+  "Valdovská",
+  "Valdštejnská",
+  "Valdštejnské Nám.",
+  "Valdštejnské Náměstí",
+  "Valentinská",
+  "Valentinská",
+  "Valentova",
+  "Valečovská",
+  "Valská",
+  "Valtická",
+  "Valtínovská",
+  "Valčíkova",
+  "Valšovská",
+  "Vamberská",
+  "Vanická",
+  "Vaníčkova",
+  "Vaníčkova",
+  "Varhulíkové",
+  "Varnsdorfská",
+  "Varšavská",
+  "Vavákova",
+  "Vavřenova",
+  "Vavřinecká",
+  "Vazovova",
+  "Vačkářova",
+  "Vaňkova",
+  "Vaňkova",
+  "Vašátkova",
+  "Ve Dvoře",
+  "Ve Lhotce",
+  "Ve Lhotce",
+  "Ve Skalkách",
+  "Ve Skalách",
+  "Ve Skále",
+  "Ve Slatinách",
+  "Ve Smečkách",
+  "Ve Smrčině",
+  "Ve Stromořadí",
+  "Ve Struhách",
+  "Ve Struhách",
+  "Ve Stráni",
+  "Ve Studeném",
+  "Ve Stínu",
+  "Ve Střešovičkách",
+  "Ve Střešovičkách",
+  "Ve Svahu",
+  "Ve Vilkách",
+  "Ve Vilách",
+  "Ve Višňovce",
+  "Ve Vratech",
+  "Ve Vrbách",
+  "Ve Vrchu",
+  "Ve Vrších",
+  "Ve Výhledu",
+  "Ve Výhledu",
+  "Ve Výrech",
+  "Ve Zliči",
+  "Ve Štěpnici",
+  "Ve Žlíbku",
+  "Vedlejší",
+  "Vehlovická",
+  "Vejražkova",
+  "Vejvanovského",
+  "Vejvodova",
+  "Velebného",
+  "Velehradská",
+  "Velemínská",
+  "Velemínská",
+  "Velenická",
+  "Velenovského",
+  "Veleslavínova",
+  "Veleslavínská",
+  "Veleslavínská",
+  "Veletovská",
+  "Veletržní",
+  "Veletržní",
+  "Veleňská",
+  "Velešínská",
+  "Velfloviců",
+  "Velflíkova",
+  "Velhartická",
+  "Velichovská",
+  "Velimská",
+  "Velkoborská",
+  "Velkoosecká",
+  "Velkopřevorské Nám.",
+  "Velkopřevorské Náměstí",
+  "Velká Lada",
+  "Velká Lada",
+  "Velká Skála",
+  "Velké Kunratické",
+  "Veltruská",
+  "Veltěžská",
+  "Velvarská",
+  "Velínská",
+  "Venušina",
+  "Verdiho",
+  "Verdunská",
+  "Verneřická",
+  "Verneřická",
+  "Vernéřovská",
+  "Veronské Nám.",
+  "Veselská",
+  "Veská",
+  "Veslařský Ostrov",
+  "Vestavěná",
+  "Vestecká",
+  "Veverkova",
+  "Večerní",
+  "Vidimova",
+  "Vidimská",
+  "Vidlicová",
+  "Vidlák",
+  "Vidonická",
+  "Vidoulská",
+  "Vidovická",
+  "Vietnamská",
+  "Viklefova",
+  "Vikova",
+  "Viktora Huga",
+  "Viktorinova",
+  "Viktorčina",
+  "Vikářská",
+  "Vilová",
+  "Vilímkova",
+  "Vilímovská",
+  "Vimperské Náměstí",
+  "Vinařického",
+  "Vinařská",
+  "Viničná",
+  "Vinohradská",
+  "Vinohradská",
+  "Vinohradská",
+  "Vinohradská",
+  "Vinohradská",
+  "Vinohradská",
+  "Vinohradská",
+  "Vinohrady",
+  "Vinopalnická",
+  "Vinořská",
+  "Vinořské Nám.",
+  "Vinořské Náměstí",
+  "Vinšova",
+  "Violková",
+  "Vitošská",
+  "Vitíkova",
+  "Vitějovská",
+  "Vizovická",
+  "Višňovka",
+  "Višňovka",
+  "Višňová",
+  "Vlachova",
+  "Vladimírova",
+  "Vladislava Vančury",
+  "Vladislavova",
+  "Vladivostocká",
+  "Vladycká",
+  "Vlastibořská",
+  "Vlastina",
+  "Vlastina",
+  "Vlastislavova",
+  "Vlasty Buriana",
+  "Vlasty Hilské",
+  "Vlasty Průchové",
+  "Vlasákova",
+  "Vlašimská",
+  "Vlašská",
+  "Vlašská",
+  "Vlaštovčí",
+  "Vlkanovská",
+  "Vlkova",
+  "Vlkovická",
+  "Vlnitá",
+  "Vltavanů",
+  "Vltavanů",
+  "Vltavanů",
+  "Vltavická",
+  "Vltavská",
+  "Vltavínová",
+  "Vlárská",
+  "Vlásenická",
+  "Vlčická",
+  "Vlčkova",
+  "Vlčnovská",
+  "Vnislavova",
+  "Vnitřní",
+  "Vnoučkova",
+  "Vnější",
+  "Voborského",
+  "Vobrubova",
+  "Vocelova",
+  "Voctářova",
+  "Voctářova",
+  "Vodická",
+  "Vodičkova",
+  "Vodičkova",
+  "Vodnická",
+  "Vodní",
+  "Vodochodská",
+  "Vodojemská",
+  "Vodácká",
+  "Vodárenská",
+  "Voděradská",
+  "Vodňanská",
+  "Vodňanského",
+  "Vojenova",
+  "Vojetická",
+  "Vojická",
+  "Vojkovická",
+  "Vojslavická",
+  "Vojtova",
+  "Vojtíškova",
+  "Vojtěšská",
+  "Vojáčkova",
+  "Vokovická",
+  "Vokovická",
+  "Vokrojova",
+  "Vokáčova",
+  "Vokřínská",
+  "Volarská",
+  "Volavkova",
+  "Voleníkova",
+  "Volkova",
+  "Volkovova",
+  "Voltova",
+  "Volutová",
+  "Volyňská",
+  "Volšovská",
+  "Volšovská",
+  "Vondroušova",
+  "Vorařská",
+  "Voroněžská",
+  "Voroněžská",
+  "Voráčovská",
+  "Voršilská",
+  "Voskova",
+  "Voskovcova",
+  "Vosmíkových",
+  "Vostrovská",
+  "Vostrého",
+  "Vosátkova",
+  "Votavova",
+  "Votická",
+  "Votočkova",
+  "Votrubova",
+  "Votuzská",
+  "Vozová",
+  "Vozová",
+  "Voňkova",
+  "Voříškova",
+  "Vošahlíkova",
+  "Vožická",
+  "Vrabčí",
+  "Vranická",
+  "Vranovská",
+  "Vranská",
+  "Vratimovská",
+  "Vratislavova",
+  "Vratislavská",
+  "Vratičová",
+  "Vraňanská",
+  "Vrbenského",
+  "Vrbická",
+  "Vrbková",
+  "Vrbova",
+  "Vrbčanská",
+  "Vrchlabská",
+  "Vrchlického",
+  "Vrchlického Sady",
+  "Vrchovinská",
+  "Vrátenská",
+  "Vrátkovská",
+  "Vrázova",
+  "Vrážská",
+  "Vrútecká",
+  "Vršní",
+  "Vršovická",
+  "Vršovické Nám.",
+  "Vršovické Náměstí",
+  "Vršovka",
+  "Vsetínská",
+  "Vstavačová",
+  "Vstupní",
+  "Vybíralova",
+  "Vycpálkova",
+  "Vyderská",
+  "Vydrova",
+  "Vyhlídkova",
+  "Vykoukových",
+  "Vykáňská",
+  "Vyskočilova",
+  "Vysokovská",
+  "Vysokoškolská",
+  "Vysoká Cesta",
+  "Vysočanská",
+  "Vysočanská",
+  "Vysočanská",
+  "Vysočanské Nám.",
+  "Vysočanské Náměstí",
+  "Vyvýšená",
+  "Vyšebrodská",
+  "Vyšehradská",
+  "Vyšší",
+  "Vyžlovská",
+  "Vzdušná",
+  "Vzdálená",
+  "Vzestupná",
+  "Vzpoury",
+  "Váchalova",
+  "Václava Balého",
+  "Václava Kovaříka",
+  "Václava Rady",
+  "Václava Trojana",
+  "Václava Špačka",
+  "Václavická",
+  "Václavkova",
+  "Václavská",
+  "Václavské Nám.",
+  "Václavské Náměstí",
+  "Vágnerova",
+  "Vánková",
+  "Vápencová",
+  "Vápenná",
+  "Vápeníkova",
+  "Vášova",
+  "Vážská",
+  "Vídeňská",
+  "Vídeňská",
+  "Vídeňská",
+  "Vírská",
+  "Víta Nejedlého",
+  "Vítkova",
+  "Vítkovická",
+  "Vítovcova",
+  "Vítovcova",
+  "Vítězná",
+  "Vítězná",
+  "Vítězné Nám.",
+  "Vítězné Nám.",
+  "Vítězné Náměstí",
+  "Vítězné Náměstí",
+  "Východní",
+  "Východní Nám.",
+  "Východní Náměstí",
+  "Výchozí",
+  "Výhledová",
+  "Výhledské Nám.",
+  "Výhledské Náměstí",
+  "Výjezdní",
+  "Výjezdová",
+  "Výletní",
+  "Výletní",
+  "Výmarova",
+  "Výmolova",
+  "Výpadová",
+  "Výpadová",
+  "Výravská",
+  "Výrobní",
+  "Výstaviště",
+  "Výstavní",
+  "Výstupní",
+  "Výtoňská",
+  "Výtvarnická",
+  "Výtvarná",
+  "Výzkumníků",
+  "Včelařská",
+  "Včelničná",
+  "Věkova",
+  "Věstonická",
+  "Větrná",
+  "Větrovcova",
+  "Větrová",
+  "Větrušická",
+  "Vězeňská",
+  "Vězeňská",
+  "Věštínská",
+  "Věšínova",
+  "Věžická",
+  "Vřesovická",
+  "Vřesová",
+  "Všehrdova",
+  "Všejanská",
+  "Všelipská",
+  "Všerubská",
+  "Všestarská",
+  "Všetatská",
+  "Všeňská",
+  "Wagnerova",
+  "Waldesova",
+  "Washingtonova",
+  "Wassermannova",
+  "Wattova",
+  "Weberova",
+  "Weberova",
+  "Weilova",
+  "Weissova",
+  "Wenzigova",
+  "Wenzigova",
+  "Werichova",
+  "Wichterlova",
+  "Wiedermannova",
+  "Wiesenthalova",
+  "Wilsonova",
+  "Wilsonova",
+  "Winklerova",
+  "Wolfova",
+  "Wolkerova",
+  "Wuchterlova",
+  "Xaveriova",
+  "Xaverovská",
+  "Za Archivem",
+  "Za Arielem",
+  "Za Avií",
+  "Za Bažantnicí",
+  "Za Botičem",
+  "Za Brankou",
+  "Za Brumlovkou",
+  "Za Brůdkem",
+  "Za Břízami",
+  "Za Chalupami",
+  "Za Cukrovarem",
+  "Za Císařským Mlýnem",
+  "Za Dolejšákem",
+  "Za Drahou",
+  "Za Dvorem",
+  "Za Dálnicí",
+  "Za Dálnicí",
+  "Za Elektrárnou",
+  "Za Elektrárnou",
+  "Za Farou",
+  "Za Fořtem",
+  "Za Hanspaulkou",
+  "Za Haštalem",
+  "Za Hládkovem",
+  "Za Horou",
+  "Za Horou",
+  "Za Hospodou",
+  "Za Hrází",
+  "Za Humny",
+  "Za Hájem",
+  "Za Hájem",
+  "Za Hájovnou",
+  "Za Hřbitovem",
+  "Za Invalidovnou",
+  "Za Jalovým Dvorem",
+  "Za Jednotou",
+  "Za Kajetánkou",
+  "Za Kapličkou",
+  "Za Karlínským Přístavem",
+  "Za Kačabkou",
+  "Za Klíčovem",
+  "Za Knotkem",
+  "Za Knotkem",
+  "Za Kostelem",
+  "Za Kovárnou",
+  "Za Kovářským Rybníkem",
+  "Za Křížem",
+  "Za Křížkem",
+  "Za Lesíkem",
+  "Za Lidovým Domem",
+  "Za Luhem",
+  "Za Lužinami",
+  "Za Lány",
+  "Za Lázeňkou",
+  "Za Mlýnem",
+  "Za Mosty",
+  "Za Mosty",
+  "Za Mototechnou",
+  "Za Můstkem",
+  "Za Nadýmačem",
+  "Za Novákovou Zahradou",
+  "Za Návsí",
+  "Za Obecním Úřadem",
+  "Za Oborou",
+  "Za Opravnou",
+  "Za Opusem",
+  "Za Ovčínem",
+  "Za Papírnou",
+  "Za Parkem",
+  "Za Pavilónem",
+  "Za Pekařkou",
+  "Za Pekárnou",
+  "Za Pivovarem",
+  "Za Ploty",
+  "Za Podjezdem",
+  "Za Pohořelcem",
+  "Za Pohádkou",
+  "Za Potokem",
+  "Za Poříčskou Branou",
+  "Za Poříčskou Bránou",
+  "Za Poštou",
+  "Za Poštovskou Zahradou",
+  "Za Poštovskou Zahradou",
+  "Za Prodejnou",
+  "Za Pruhy",
+  "Za Průsekem",
+  "Za Pískovnou",
+  "Za Radostí",
+  "Za Rokytkou",
+  "Za Rybníkem",
+  "Za Rybníčky",
+  "Za Rybářstvím",
+  "Za Rájem",
+  "Za Sadem",
+  "Za Sedmidomky",
+  "Za Skalkou",
+  "Za Skalkou",
+  "Za Slatinami",
+  "Za Slovankou",
+  "Za Sokolovnou",
+  "Za Stadionem",
+  "Za Statkem",
+  "Za Statky",
+  "Za Stodolami",
+  "Za Stodolou",
+  "Za Strahovem",
+  "Za Strašnickou Vozovnou",
+  "Za Strašnickou Vozovnou",
+  "Za Strojírnami",
+  "Za Studánkou",
+  "Za Střelnicí",
+  "Za Sídlištěm",
+  "Za Teplárnou",
+  "Za Tratí",
+  "Za Tratí",
+  "Za Třebešínem",
+  "Za Vackovem",
+  "Za Valem",
+  "Za Viaduktem",
+  "Za Vinicí",
+  "Za Vlasačkou",
+  "Za Vodárnou",
+  "Za Vokovickou Vozovnou",
+  "Za Vokovickou Vozovnou",
+  "Za Větrem",
+  "Za Zahradami",
+  "Za Zahradou",
+  "Za Zastávkou",
+  "Za Zelenou Liškou",
+  "Za Zámečkem",
+  "Za Černým Mostem",
+  "Za Černým Mostem",
+  "Za Černým Mostem",
+  "Za Školkou",
+  "Za Školou",
+  "Za Šmatlíkem",
+  "Za Železnicí",
+  "Za Ženskými Domovy",
+  "Za Žižkovskou Vozovnou",
+  "Zacharská",
+  "Zachova",
+  "Zadní",
+  "Zahrada Na Baště",
+  "Zahradnická",
+  "Zahradní",
+  "Zahradníčkova",
+  "Zahradníčkova",
+  "Zahrádecká",
+  "Zahrádecká",
+  "Zahrádkářská",
+  "Zahrádkářů",
+  "Zaječická",
+  "Zaječí",
+  "Zaječí",
+  "Zakouřilova",
+  "Zakrytá",
+  "Zakšínská",
+  "Zalešanská",
+  "Zalinská",
+  "Zamašská",
+  "Zamenhofova",
+  "Zapadlá",
+  "Zapomenutá",
+  "Zapova",
+  "Zapských",
+  "Zastavěná",
+  "Zastrčená",
+  "Zavadilova",
+  "Zavátá",
+  "Zaříčanská",
+  "Zbečenská",
+  "Zborovská",
+  "Zborovská",
+  "Zbraslavská",
+  "Zbraslavská",
+  "Zbraslavské Nám.",
+  "Zbraslavské Náměstí",
+  "Zbrojnická",
+  "Zbudovská",
+  "Zbuzanská",
+  "Zbuzkova",
+  "Zbynická",
+  "Zbyslavská",
+  "Zbytinská",
+  "Zbýšovská",
+  "Zdaru",
+  "Zdařilá",
+  "Zderazská",
+  "Zdeňky Nyplové",
+  "Zdibská",
+  "Zdická",
+  "Zdiměřická",
+  "Zdislavická",
+  "Zdobnická",
+  "Zdoňovská",
+  "Zdíkovská",
+  "Zelenečská",
+  "Zelenečská",
+  "Zelenkova",
+  "Zelenky-Hajského",
+  "Zelenohorská",
+  "Zelená",
+  "Zelená",
+  "Zelená Louka",
+  "Zelený Pruh",
+  "Zelený Pruh",
+  "Zelený Pruh",
+  "Zelinářská",
+  "Zemanka",
+  "Zemské Právo",
+  "Zemědělská",
+  "Zengrova",
+  "Zenklova",
+  "Zenklova",
+  "Zeyerova Alej",
+  "Zhořelecká",
+  "Zikova",
+  "Zimova",
+  "Zimákova",
+  "Zkrácená",
+  "Zlatnice",
+  "Zlatnická",
+  "Zlatokorunská",
+  "Zlatá",
+  "Zlatá Ulička U Daliborky",
+  "Zlenická",
+  "Zlešická",
+  "Zlivská",
+  "Zličínská",
+  "Zličínská",
+  "Zlonická",
+  "Zlonínská",
+  "Zlončická",
+  "Zlíchovská",
+  "Znojemská",
+  "Zoubkova",
+  "Zrzavého",
+  "Ztracená",
+  "Zubatého",
+  "Zubrnická",
+  "Zvolenská",
+  "Zvolská",
+  "Zvolská",
+  "Zvonařova",
+  "Zvonařovská",
+  "Zvonařská",
+  "Zvoncovitá",
+  "Zvonická",
+  "Zvonková",
+  "Zvoníčkova",
+  "Zvánovická",
+  "Zvíkovská",
+  "Záblatská",
+  "Záblatská",
+  "Zábranská",
+  "Zábrodí",
+  "Záběhlická",
+  "Zádražanská",
+  "Záhornická",
+  "Záhorského",
+  "Záhořanská",
+  "Záhořanského",
+  "Záhřebská",
+  "Zájezdní",
+  "Zákolanská",
+  "Zákostelní",
+  "Zákupská",
+  "Zálesí",
+  "Zálesí",
+  "Zálesí",
+  "Záluské",
+  "Zálužanského",
+  "Zálužická",
+  "Zálužská",
+  "Zálužská",
+  "Zámecká",
+  "Zámecké Schody",
+  "Zámezí",
+  "Zámišova",
+  "Zámělská",
+  "Západní",
+  "Zápasnická",
+  "Zápolská",
+  "Zápotoční",
+  "Zápská",
+  "Zárubova",
+  "Zárybnická",
+  "Zárybničná",
+  "Zárybská",
+  "Zásadská",
+  "Zásmucká",
+  "Zátišská",
+  "Zátiší",
+  "Zátopkova",
+  "Zátoňská",
+  "Závadova",
+  "Záveská",
+  "Závist",
+  "Závišova",
+  "Závišova",
+  "Závodní",
+  "Závrchy",
+  "Závěrka",
+  "Zázvorkova",
+  "Zářijová",
+  "Zítkova",
+  "Zívrova",
+  "Zúžená",
+  "Údlická",
+  "Údolní",
+  "Údolní",
+  "Údolí Hvězd",
+  "Úhlavská",
+  "Úhlová",
+  "Újezd",
+  "Újezd",
+  "Újezdská",
+  "Úlibická",
+  "Únorová",
+  "Únětická",
+  "Únětická",
+  "Úpická",
+  "Úprkova",
+  "Úpská",
+  "Úslavská",
+  "Ústavní",
+  "Ústecká",
+  "Ústecká",
+  "Ústřední",
+  "Útulná",
+  "Útulná",
+  "Úvalská",
+  "Úvoz",
+  "Úvoz",
+  "Úvozová",
+  "Úzká",
+  "Čajkovského",
+  "Čakovická",
+  "Čakovická",
+  "Čankovská",
+  "Čapkova",
+  "Častavina",
+  "Častonická",
+  "Čechova",
+  "Čechtická",
+  "Čechurova",
+  "Čedičová",
+  "Čejetická",
+  "Čejkovická",
+  "Čekanková",
+  "Čekanková",
+  "Čekanovská",
+  "Čelakovského Sady",
+  "Čelakovského Sady",
+  "Čeljabinská",
+  "Čelkovická",
+  "Čelná",
+  "Čelákovická",
+  "Čenkovská",
+  "Čenovická",
+  "Čentická",
+  "Čenětická",
+  "Čeperská",
+  "Čeradická",
+  "Čerchovská",
+  "Čermákova",
+  "Černická",
+  "Černilovská",
+  "Černičná",
+  "Černochova",
+  "Černockého",
+  "Černohorského",
+  "Černokostelecká",
+  "Černokostelecká",
+  "Černokostelecká",
+  "Černomořská",
+  "Černotínská",
+  "Černovická",
+  "Černošická",
+  "Černá",
+  "Černého",
+  "Černínova",
+  "Černínská",
+  "Čerpadlová",
+  "Čertouská",
+  "Čertouská",
+  "Čertův Vršek",
+  "Červencová",
+  "Červenkova",
+  "Červená",
+  "Červená Báň",
+  "Červený Mlýn",
+  "Červeňanského",
+  "Červnová",
+  "Čerčanská",
+  "Českobratrská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českobrodská",
+  "Českodubská",
+  "Českolipská",
+  "Českolipská",
+  "Českomalínská",
+  "Českomoravská",
+  "Českomoravská",
+  "Československého Exilu",
+  "Československého Exilu",
+  "Česká",
+  "České Družiny",
+  "Českého Červeného Kříže",
+  "Čestlická",
+  "Čestmírova",
+  "Česákova",
+  "Čečelická",
+  "Čeňkova",
+  "Češovská",
+  "Čibuzská",
+  "Čihákova",
+  "Čiklova",
+  "Čiklova",
+  "Čimelická",
+  "Čimická",
+  "Čimická",
+  "Čimická",
+  "Čimická",
+  "Čirůvková",
+  "Čistovická",
+  "Čmelická",
+  "Čs. Armády",
+  "Čs. Tankistů",
+  "Čtyřdílná",
+  "Čtyřkolská",
+  "Čumpelíkova",
+  "Čuprova",
+  "Čábelecká",
+  "Čápova",
+  "Čáslavská",
+  "Čílova",
+  "Čílova",
+  "Čínská",
+  "Čínská",
+  "Čížovská",
+  "Ďáblická",
+  "Ďáblická",
+  "Ďáblická",
+  "Řadová",
+  "Řehořova",
+  "Řepečská",
+  "Řepná",
+  "Řeporyjská",
+  "Řeporyjská",
+  "Řeporyjská",
+  "Řeporyjské Náměstí",
+  "Řepová",
+  "Řepská",
+  "Řepíková",
+  "Řepínská",
+  "Řepčická",
+  "Řepčická",
+  "Řetězokovářů",
+  "Řetězová",
+  "Řevnická",
+  "Řevnická",
+  "Řeznická",
+  "Řezáčovo Nám.",
+  "Řezáčovo Náměstí",
+  "Řečického",
+  "Řešetovská",
+  "Řešovská",
+  "Řipská",
+  "Řipská",
+  "Řásnovka",
+  "Říjnová",
+  "Římovská",
+  "Římovská",
+  "Římská",
+  "Říčanova",
+  "Říčanská",
+  "Říční",
+  "Šachovská",
+  "Šafaříkova",
+  "Šafránecká",
+  "Šafránkova",
+  "Šafránová",
+  "Šafářova",
+  "Šakvická",
+  "Šaldova",
+  "Šalounova",
+  "Šalvějová",
+  "Šanovská",
+  "Šantrochova",
+  "Šatrova",
+  "Šatrova",
+  "Šebelova",
+  "Šeberovská",
+  "Šebestiánská",
+  "Šebkova",
+  "Šedivého",
+  "Šedova",
+  "Šejbalové",
+  "Šemberova",
+  "Šenovská",
+  "Šermířská",
+  "Šermířská",
+  "Šestajovická",
+  "Šestajovická",
+  "Šestidomí",
+  "Šetelíkova",
+  "Ševce Matouše",
+  "Ševčenkova",
+  "Ševčíkova",
+  "Šeříková",
+  "Šeříková",
+  "Šibřinská",
+  "Šikmá",
+  "Šimanovská",
+  "Šimkova",
+  "Šimonova",
+  "Šimáčkova",
+  "Šimůnkova",
+  "Šircova",
+  "Široká",
+  "Široká",
+  "Šiškova",
+  "Školní",
+  "Školská",
+  "Škroupovo Nám.",
+  "Škroupovo Náměstí",
+  "Škrétova",
+  "Škvorecká",
+  "Škábova",
+  "Šlechtitelská",
+  "Šlejnická",
+  "Šlikova",
+  "Šlitrova",
+  "Šluknovská",
+  "Šmeralova",
+  "Šmilovského",
+  "Šmolíkova",
+  "Šolínova",
+  "Šostakovičovo Nám.",
+  "Šostakovičovo Náměstí",
+  "Španielova",
+  "Španělská",
+  "Špačkova",
+  "Špeciánova",
+  "Šperlova",
+  "Špirkova",
+  "Špitálská",
+  "Šplechnerova",
+  "Šporkova",
+  "Špotzova",
+  "Špálova",
+  "Šrobárova",
+  "Šrobárova",
+  "Šromova",
+  "Štamberk",
+  "Štefkova",
+  "Štefánikova",
+  "Štemberova",
+  "Šternberkova",
+  "Šternova",
+  "Šternovská",
+  "Štichova",
+  "Štiplova",
+  "Štičkova",
+  "Štiřínská",
+  "Štochlova",
+  "Štolbova",
+  "Štolcova",
+  "Štolmířská",
+  "Štolmířská",
+  "Štorchova",
+  "Štorkánova",
+  "Štramberská",
+  "Štulcova",
+  "Štupartská",
+  "Štursova",
+  "Štverákova",
+  "Štychova",
+  "Štychova",
+  "Štíbrova",
+  "Štíhlická",
+  "Štítného",
+  "Štítová",
+  "Štúrova",
+  "Štúrova",
+  "Štěchovická",
+  "Štěpanická",
+  "Štěpařská",
+  "Štěpničná",
+  "Štěpánkova",
+  "Štěpánovská",
+  "Štěpánská",
+  "Štěpánská",
+  "Štěrboholská",
+  "Štěrková",
+  "Štětkova",
+  "Štětínská",
+  "Šubertova",
+  "Šulcova",
+  "Šultysova",
+  "Šumavská",
+  "Šumavského",
+  "Šumberova",
+  "Šumenská",
+  "Šumická",
+  "Šumperská",
+  "Šustova",
+  "Švabinského",
+  "Švecova",
+  "Švehlova",
+  "Švehlova",
+  "Švejcarovo Náměstí",
+  "Švestková",
+  "Švestková",
+  "Švestková",
+  "Švihovská",
+  "Švábky",
+  "Švábova",
+  "Švédská",
+  "Šárecká",
+  "Šárovo Kolo",
+  "Šárčina",
+  "Šátalská",
+  "Šífařská",
+  "Šímova",
+  "Šípková",
+  "Šítkova",
+  "Šťastného",
+  "Šůrova",
+  "Žabovřeská",
+  "Žacléřská",
+  "Žalanského",
+  "Žalmanova",
+  "Žalovská",
+  "Žamberská",
+  "Žampašská",
+  "Žampiónová",
+  "Žandovská",
+  "Žatecká",
+  "Žatecká",
+  "Žateckých",
+  "Ždírnická",
+  "Žehuňská",
+  "Žehušická",
+  "Želetavská",
+  "Železniční",
+  "Železničářů",
+  "Železnobrodská",
+  "Železná",
+  "Želivecká",
+  "Želivka",
+  "Želivská",
+  "Želkovická",
+  "Želnavská",
+  "Ženíškova",
+  "Žeretická",
+  "Žermanická",
+  "Žernosecká",
+  "Žernovská",
+  "Žerotínova",
+  "Žherská",
+  "Žichlínská",
+  "Židlického",
+  "Žilinská",
+  "Žilovská",
+  "Žinkovská",
+  "Žirovnická",
+  "Žitavská",
+  "Žitavského",
+  "Žitná",
+  "Žitná",
+  "Žitomírská",
+  "Živanická",
+  "Živcová",
+  "Živcových",
+  "Živonínská",
+  "Žiželická",
+  "Žižkova",
+  "Žižkovo Nám.",
+  "Žižkovo Náměstí",
+  "Žlebská",
+  "Žluťásková",
+  "Žofie Podlipské",
+  "Žufanova",
+  "Žukovského",
+  "Žukovského",
+  "Žulová",
+  "Županovická",
+  "Žvahovská",
+  "Žábova",
+  "Žákovská",
+  "Žárovická",
+  "Žíšovská",
+  "Žďárská",
+];
+
+},{}],65:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name} #{building_number}"
+];
+
+},{}],66:[function(require,module,exports){
+module["exports"] = [
+  "#{street}"
+];
+
+},{}],67:[function(require,module,exports){
+module["exports"] = [
+  "Pacific/Midway",
+  "Pacific/Pago_Pago",
+  "Pacific/Honolulu",
+  "America/Juneau",
+  "America/Los_Angeles",
+  "America/Tijuana",
+  "America/Denver",
+  "America/Phoenix",
+  "America/Chihuahua",
+  "America/Mazatlan",
+  "America/Chicago",
+  "America/Regina",
+  "America/Mexico_City",
+  "America/Mexico_City",
+  "America/Monterrey",
+  "America/Guatemala",
+  "America/New_York",
+  "America/Indiana/Indianapolis",
+  "America/Bogota",
+  "America/Lima",
+  "America/Lima",
+  "America/Halifax",
+  "America/Caracas",
+  "America/La_Paz",
+  "America/Santiago",
+  "America/St_Johns",
+  "America/Sao_Paulo",
+  "America/Argentina/Buenos_Aires",
+  "America/Guyana",
+  "America/Godthab",
+  "Atlantic/South_Georgia",
+  "Atlantic/Azores",
+  "Atlantic/Cape_Verde",
+  "Europe/Dublin",
+  "Europe/London",
+  "Europe/Lisbon",
+  "Europe/London",
+  "Africa/Casablanca",
+  "Africa/Monrovia",
+  "Etc/UTC",
+  "Europe/Belgrade",
+  "Europe/Bratislava",
+  "Europe/Budapest",
+  "Europe/Ljubljana",
+  "Europe/Prague",
+  "Europe/Sarajevo",
+  "Europe/Skopje",
+  "Europe/Warsaw",
+  "Europe/Zagreb",
+  "Europe/Brussels",
+  "Europe/Copenhagen",
+  "Europe/Madrid",
+  "Europe/Paris",
+  "Europe/Amsterdam",
+  "Europe/Berlin",
+  "Europe/Berlin",
+  "Europe/Rome",
+  "Europe/Stockholm",
+  "Europe/Vienna",
+  "Africa/Algiers",
+  "Europe/Bucharest",
+  "Africa/Cairo",
+  "Europe/Helsinki",
+  "Europe/Kiev",
+  "Europe/Riga",
+  "Europe/Sofia",
+  "Europe/Tallinn",
+  "Europe/Vilnius",
+  "Europe/Athens",
+  "Europe/Istanbul",
+  "Europe/Minsk",
+  "Asia/Jerusalem",
+  "Africa/Harare",
+  "Africa/Johannesburg",
+  "Europe/Moscow",
+  "Europe/Moscow",
+  "Europe/Moscow",
+  "Asia/Kuwait",
+  "Asia/Riyadh",
+  "Africa/Nairobi",
+  "Asia/Baghdad",
+  "Asia/Tehran",
+  "Asia/Muscat",
+  "Asia/Muscat",
+  "Asia/Baku",
+  "Asia/Tbilisi",
+  "Asia/Yerevan",
+  "Asia/Kabul",
+  "Asia/Yekaterinburg",
+  "Asia/Karachi",
+  "Asia/Karachi",
+  "Asia/Tashkent",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kathmandu",
+  "Asia/Dhaka",
+  "Asia/Dhaka",
+  "Asia/Colombo",
+  "Asia/Almaty",
+  "Asia/Novosibirsk",
+  "Asia/Rangoon",
+  "Asia/Bangkok",
+  "Asia/Bangkok",
+  "Asia/Jakarta",
+  "Asia/Krasnoyarsk",
+  "Asia/Shanghai",
+  "Asia/Chongqing",
+  "Asia/Hong_Kong",
+  "Asia/Urumqi",
+  "Asia/Kuala_Lumpur",
+  "Asia/Singapore",
+  "Asia/Taipei",
+  "Australia/Perth",
+  "Asia/Irkutsk",
+  "Asia/Ulaanbaatar",
+  "Asia/Seoul",
+  "Asia/Tokyo",
+  "Asia/Tokyo",
+  "Asia/Tokyo",
+  "Asia/Yakutsk",
+  "Australia/Darwin",
+  "Australia/Adelaide",
+  "Australia/Melbourne",
+  "Australia/Melbourne",
+  "Australia/Sydney",
+  "Australia/Brisbane",
+  "Australia/Hobart",
+  "Asia/Vladivostok",
+  "Pacific/Guam",
+  "Pacific/Port_Moresby",
+  "Asia/Magadan",
+  "Asia/Magadan",
+  "Pacific/Noumea",
+  "Pacific/Fiji",
+  "Asia/Kamchatka",
+  "Pacific/Majuro",
+  "Pacific/Auckland",
+  "Pacific/Auckland",
+  "Pacific/Tongatapu",
+  "Pacific/Fakaofo",
+  "Pacific/Apia"
+];
+
+},{}],68:[function(require,module,exports){
+module["exports"] = [
+  "Adaptive",
+  "Advanced",
+  "Ameliorated",
+  "Assimilated",
+  "Automated",
+  "Balanced",
+  "Business-focused",
+  "Centralized",
+  "Cloned",
+  "Compatible",
+  "Configurable",
+  "Cross-group",
+  "Cross-platform",
+  "Customer-focused",
+  "Customizable",
+  "Decentralized",
+  "De-engineered",
+  "Devolved",
+  "Digitized",
+  "Distributed",
+  "Diverse",
+  "Down-sized",
+  "Enhanced",
+  "Enterprise-wide",
+  "Ergonomic",
+  "Exclusive",
+  "Expanded",
+  "Extended",
+  "Face to face",
+  "Focused",
+  "Front-line",
+  "Fully-configurable",
+  "Function-based",
+  "Fundamental",
+  "Future-proofed",
+  "Grass-roots",
+  "Horizontal",
+  "Implemented",
+  "Innovative",
+  "Integrated",
+  "Intuitive",
+  "Inverse",
+  "Managed",
+  "Mandatory",
+  "Monitored",
+  "Multi-channelled",
+  "Multi-lateral",
+  "Multi-layered",
+  "Multi-tiered",
+  "Networked",
+  "Object-based",
+  "Open-architected",
+  "Open-source",
+  "Operative",
+  "Optimized",
+  "Optional",
+  "Organic",
+  "Organized",
+  "Persevering",
+  "Persistent",
+  "Phased",
+  "Polarised",
+  "Pre-emptive",
+  "Proactive",
+  "Profit-focused",
+  "Profound",
+  "Programmable",
+  "Progressive",
+  "Public-key",
+  "Quality-focused",
+  "Reactive",
+  "Realigned",
+  "Re-contextualized",
+  "Re-engineered",
+  "Reduced",
+  "Reverse-engineered",
+  "Right-sized",
+  "Robust",
+  "Seamless",
+  "Secured",
+  "Self-enabling",
+  "Sharable",
+  "Stand-alone",
+  "Streamlined",
+  "Switchable",
+  "Synchronised",
+  "Synergistic",
+  "Synergized",
+  "Team-oriented",
+  "Total",
+  "Triple-buffered",
+  "Universal",
+  "Up-sized",
+  "Upgradable",
+  "User-centric",
+  "User-friendly",
+  "Versatile",
+  "Virtual",
+  "Visionary",
+  "Vision-oriented"
+];
+
+},{}],69:[function(require,module,exports){
+module["exports"] = [
+  "clicks-and-mortar",
+  "value-added",
+  "vertical",
+  "proactive",
+  "robust",
+  "revolutionary",
+  "scalable",
+  "leading-edge",
+  "innovative",
+  "intuitive",
+  "strategic",
+  "e-business",
+  "mission-critical",
+  "sticky",
+  "one-to-one",
+  "24/7",
+  "end-to-end",
+  "global",
+  "B2B",
+  "B2C",
+  "granular",
+  "frictionless",
+  "virtual",
+  "viral",
+  "dynamic",
+  "24/365",
+  "best-of-breed",
+  "killer",
+  "magnetic",
+  "bleeding-edge",
+  "web-enabled",
+  "interactive",
+  "dot-com",
+  "sexy",
+  "back-end",
+  "real-time",
+  "efficient",
+  "front-end",
+  "distributed",
+  "seamless",
+  "extensible",
+  "turn-key",
+  "world-class",
+  "open-source",
+  "cross-platform",
+  "cross-media",
+  "synergistic",
+  "bricks-and-clicks",
+  "out-of-the-box",
+  "enterprise",
+  "integrated",
+  "impactful",
+  "wireless",
+  "transparent",
+  "next-generation",
+  "cutting-edge",
+  "user-centric",
+  "visionary",
+  "customized",
+  "ubiquitous",
+  "plug-and-play",
+  "collaborative",
+  "compelling",
+  "holistic",
+  "rich",
+  "synergies",
+  "web-readiness",
+  "paradigms",
+  "markets",
+  "partnerships",
+  "infrastructures",
+  "platforms",
+  "initiatives",
+  "channels",
+  "eyeballs",
+  "communities",
+  "ROI",
+  "solutions",
+  "e-tailers",
+  "e-services",
+  "action-items",
+  "portals",
+  "niches",
+  "technologies",
+  "content",
+  "vortals",
+  "supply-chains",
+  "convergence",
+  "relationships",
+  "architectures",
+  "interfaces",
+  "e-markets",
+  "e-commerce",
+  "systems",
+  "bandwidth",
+  "infomediaries",
+  "models",
+  "mindshare",
+  "deliverables",
+  "users",
+  "schemas",
+  "networks",
+  "applications",
+  "metrics",
+  "e-business",
+  "functionalities",
+  "experiences",
+  "web services",
+  "methodologies"
+];
+
+},{}],70:[function(require,module,exports){
+module["exports"] = [
+  "implement",
+  "utilize",
+  "integrate",
+  "streamline",
+  "optimize",
+  "evolve",
+  "transform",
+  "embrace",
+  "enable",
+  "orchestrate",
+  "leverage",
+  "reinvent",
+  "aggregate",
+  "architect",
+  "enhance",
+  "incentivize",
+  "morph",
+  "empower",
+  "envisioneer",
+  "monetize",
+  "harness",
+  "facilitate",
+  "seize",
+  "disintermediate",
+  "synergize",
+  "strategize",
+  "deploy",
+  "brand",
+  "grow",
+  "target",
+  "syndicate",
+  "synthesize",
+  "deliver",
+  "mesh",
+  "incubate",
+  "engage",
+  "maximize",
+  "benchmark",
+  "expedite",
+  "reintermediate",
+  "whiteboard",
+  "visualize",
+  "repurpose",
+  "innovate",
+  "scale",
+  "unleash",
+  "drive",
+  "extend",
+  "engineer",
+  "revolutionize",
+  "generate",
+  "exploit",
+  "transition",
+  "e-enable",
+  "iterate",
+  "cultivate",
+  "matrix",
+  "productize",
+  "redefine",
+  "recontextualize"
+];
+
+},{}],71:[function(require,module,exports){
+module["exports"] = [
+  "24 hour",
+  "24/7",
+  "3rd generation",
+  "4th generation",
+  "5th generation",
+  "6th generation",
+  "actuating",
+  "analyzing",
+  "asymmetric",
+  "asynchronous",
+  "attitude-oriented",
+  "background",
+  "bandwidth-monitored",
+  "bi-directional",
+  "bifurcated",
+  "bottom-line",
+  "clear-thinking",
+  "client-driven",
+  "client-server",
+  "coherent",
+  "cohesive",
+  "composite",
+  "context-sensitive",
+  "contextually-based",
+  "content-based",
+  "dedicated",
+  "demand-driven",
+  "didactic",
+  "directional",
+  "discrete",
+  "disintermediate",
+  "dynamic",
+  "eco-centric",
+  "empowering",
+  "encompassing",
+  "even-keeled",
+  "executive",
+  "explicit",
+  "exuding",
+  "fault-tolerant",
+  "foreground",
+  "fresh-thinking",
+  "full-range",
+  "global",
+  "grid-enabled",
+  "heuristic",
+  "high-level",
+  "holistic",
+  "homogeneous",
+  "human-resource",
+  "hybrid",
+  "impactful",
+  "incremental",
+  "intangible",
+  "interactive",
+  "intermediate",
+  "leading edge",
+  "local",
+  "logistical",
+  "maximized",
+  "methodical",
+  "mission-critical",
+  "mobile",
+  "modular",
+  "motivating",
+  "multimedia",
+  "multi-state",
+  "multi-tasking",
+  "national",
+  "needs-based",
+  "neutral",
+  "next generation",
+  "non-volatile",
+  "object-oriented",
+  "optimal",
+  "optimizing",
+  "radical",
+  "real-time",
+  "reciprocal",
+  "regional",
+  "responsive",
+  "scalable",
+  "secondary",
+  "solution-oriented",
+  "stable",
+  "static",
+  "systematic",
+  "systemic",
+  "system-worthy",
+  "tangible",
+  "tertiary",
+  "transitional",
+  "uniform",
+  "upward-trending",
+  "user-facing",
+  "value-added",
+  "web-enabled",
+  "well-modulated",
+  "zero administration",
+  "zero defect",
+  "zero tolerance"
+];
+
+},{}],72:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.adjective = require("./adjective");
+company.descriptor = require("./descriptor");
+company.noun = require("./noun");
+company.bs_verb = require("./bs_verb");
+company.bs_noun = require("./bs_noun");
+company.name = require("./name");
+
+},{"./adjective":68,"./bs_noun":69,"./bs_verb":70,"./descriptor":71,"./name":73,"./noun":74,"./suffix":75}],73:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name} #{suffix}",
+  "#{Name.man_last_name} a #{Name.man_last_name} #{suffix}"
+];
+
+},{}],74:[function(require,module,exports){
+module["exports"] = [
+  "ability",
+  "access",
+  "adapter",
+  "algorithm",
+  "alliance",
+  "analyzer",
+  "application",
+  "approach",
+  "architecture",
+  "archive",
+  "artificial intelligence",
+  "array",
+  "attitude",
+  "benchmark",
+  "budgetary management",
+  "capability",
+  "capacity",
+  "challenge",
+  "circuit",
+  "collaboration",
+  "complexity",
+  "concept",
+  "conglomeration",
+  "contingency",
+  "core",
+  "customer loyalty",
+  "database",
+  "data-warehouse",
+  "definition",
+  "emulation",
+  "encoding",
+  "encryption",
+  "extranet",
+  "firmware",
+  "flexibility",
+  "focus group",
+  "forecast",
+  "frame",
+  "framework",
+  "function",
+  "functionalities",
+  "Graphic Interface",
+  "groupware",
+  "Graphical User Interface",
+  "hardware",
+  "help-desk",
+  "hierarchy",
+  "hub",
+  "implementation",
+  "info-mediaries",
+  "infrastructure",
+  "initiative",
+  "installation",
+  "instruction set",
+  "interface",
+  "internet solution",
+  "intranet",
+  "knowledge user",
+  "knowledge base",
+  "local area network",
+  "leverage",
+  "matrices",
+  "matrix",
+  "methodology",
+  "middleware",
+  "migration",
+  "model",
+  "moderator",
+  "monitoring",
+  "moratorium",
+  "neural-net",
+  "open architecture",
+  "open system",
+  "orchestration",
+  "paradigm",
+  "parallelism",
+  "policy",
+  "portal",
+  "pricing structure",
+  "process improvement",
+  "product",
+  "productivity",
+  "project",
+  "projection",
+  "protocol",
+  "secured line",
+  "service-desk",
+  "software",
+  "solution",
+  "standardization",
+  "strategy",
+  "structure",
+  "success",
+  "superstructure",
+  "support",
+  "synergy",
+  "system engine",
+  "task-force",
+  "throughput",
+  "time-frame",
+  "toolset",
+  "utilisation",
+  "website",
+  "workforce"
+];
+
+},{}],75:[function(require,module,exports){
+module["exports"] = [
+  "s.r.o.",
+  "a.s.",
+  "v.o.s."
+];
+
+},{}],76:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"./month":77,"./weekday":78,"/Users/a/dev/faker.js/lib/locales/az/date/index.js":37}],77:[function(require,module,exports){
+// Source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/en.xml#L1799
+module["exports"] = {
+  wide: [
+    "Leden",
+    "Únor",
+    "Březen",
+    "Duben",
+    "Květen",
+    "Červen",
+    "Červenec",
+    "Srpen",
+    "Září",
+    "Říjen",
+    "Listopad",
+    "Prosinec"
+  ],
+  // Property "wide_context" is optional, if not set then "wide" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  wide_context: [
+    "Leden",
+    "Únor",
+    "Březen",
+    "Duben",
+    "Květen",
+    "Červen",
+    "Červenec",
+    "Srpen",
+    "Září",
+    "Říjen",
+    "Listopad",
+    "Prosinec"
+  ],
+  abbr: [
+    "Led",
+    "Úno",
+    "Bře",
+    "Dub",
+    "Kvě",
+    "Čer",
+    "Črc",
+    "Srp",
+    "Zář",
+    "Říj",
+    "Lis",
+    "Pro"
+  ],
+  // Property "abbr_context" is optional, if not set then "abbr" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  abbr_context: [
+    "Led",
+    "Úno",
+    "Bře",
+    "Dub",
+    "Kvě",
+    "Čer",
+    "Črc",
+    "Srp",
+    "Zář",
+    "Říj",
+    "Lis",
+    "Pro"
+  ]
+};
+
+},{}],78:[function(require,module,exports){
+// Source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/en.xml#L1847
+module["exports"] = {
+  wide: [
+    "Pondělí",
+    "Úterý",
+    "Středa",
+    "čtvrtek",
+    "Pátek",
+    "Sobota",
+    "Neděle"
+  ],
+  // Property "wide_context" is optional, if not set then "wide" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  wide_context: [
+    "Pondělí",
+    "Úterý",
+    "Středa",
+    "čtvrtek",
+    "Pátek",
+    "Sobota",
+    "Neděle"
+  ],
+  abbr: [
+    "Po",
+    "Út",
+    "St",
+    "čt",
+    "Pá",
+    "So",
+    "Ne"
+  ],
+  // Property "abbr_context" is optional, if not set then "abbr" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  abbr_context: [
+    "Po",
+    "Út",
+    "St",
+    "čt",
+    "Pá",
+    "So",
+    "Ne"
+  ]
+};
+
+},{}],79:[function(require,module,exports){
+var cz = {};
+module['exports'] = cz;
+cz.title = "Czech";
+cz.address = require("./address");
+cz.company = require("./company");
+cz.internet = require("./internet");
+cz.lorem = require("./lorem");
+cz.name = require("./name");
+cz.phone_number = require("./phone_number");
+cz.date = require("./date");
+
+},{"./address":59,"./company":72,"./date":76,"./internet":82,"./lorem":83,"./name":88,"./phone_number":96}],80:[function(require,module,exports){
+module["exports"] = [
+  "cz",
+  "com",
+  "net",
+  "eu",
+  "org"
+];
+
+},{}],81:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "seznam.cz",
+  "centrum.cz",
+  "volny.cz",
+  "atlas.cz"
+];
+
+},{}],82:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":80,"./free_email":81,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],83:[function(require,module,exports){
+var lorem = {};
+module['exports'] = lorem;
+lorem.words = require("./words");
+lorem.supplemental = require("./supplemental");
+
+},{"./supplemental":84,"./words":85}],84:[function(require,module,exports){
+module["exports"] = [
+  "abbas",
+  "abduco",
+  "abeo",
+  "abscido",
+  "absconditus",
+  "absens",
+  "absorbeo",
+  "absque",
+  "abstergo",
+  "absum",
+  "abundans",
+  "abutor",
+  "accedo",
+  "accendo",
+  "acceptus",
+  "accipio",
+  "accommodo",
+  "accusator",
+  "acer",
+  "acerbitas",
+  "acervus",
+  "acidus",
+  "acies",
+  "acquiro",
+  "acsi",
+  "adamo",
+  "adaugeo",
+  "addo",
+  "adduco",
+  "ademptio",
+  "adeo",
+  "adeptio",
+  "adfectus",
+  "adfero",
+  "adficio",
+  "adflicto",
+  "adhaero",
+  "adhuc",
+  "adicio",
+  "adimpleo",
+  "adinventitias",
+  "adipiscor",
+  "adiuvo",
+  "administratio",
+  "admiratio",
+  "admitto",
+  "admoneo",
+  "admoveo",
+  "adnuo",
+  "adopto",
+  "adsidue",
+  "adstringo",
+  "adsuesco",
+  "adsum",
+  "adulatio",
+  "adulescens",
+  "adultus",
+  "aduro",
+  "advenio",
+  "adversus",
+  "advoco",
+  "aedificium",
+  "aeger",
+  "aegre",
+  "aegrotatio",
+  "aegrus",
+  "aeneus",
+  "aequitas",
+  "aequus",
+  "aer",
+  "aestas",
+  "aestivus",
+  "aestus",
+  "aetas",
+  "aeternus",
+  "ager",
+  "aggero",
+  "aggredior",
+  "agnitio",
+  "agnosco",
+  "ago",
+  "ait",
+  "aiunt",
+  "alienus",
+  "alii",
+  "alioqui",
+  "aliqua",
+  "alius",
+  "allatus",
+  "alo",
+  "alter",
+  "altus",
+  "alveus",
+  "amaritudo",
+  "ambitus",
+  "ambulo",
+  "amicitia",
+  "amiculum",
+  "amissio",
+  "amita",
+  "amitto",
+  "amo",
+  "amor",
+  "amoveo",
+  "amplexus",
+  "amplitudo",
+  "amplus",
+  "ancilla",
+  "angelus",
+  "angulus",
+  "angustus",
+  "animadverto",
+  "animi",
+  "animus",
+  "annus",
+  "anser",
+  "ante",
+  "antea",
+  "antepono",
+  "antiquus",
+  "aperio",
+  "aperte",
+  "apostolus",
+  "apparatus",
+  "appello",
+  "appono",
+  "appositus",
+  "approbo",
+  "apto",
+  "aptus",
+  "apud",
+  "aqua",
+  "ara",
+  "aranea",
+  "arbitro",
+  "arbor",
+  "arbustum",
+  "arca",
+  "arceo",
+  "arcesso",
+  "arcus",
+  "argentum",
+  "argumentum",
+  "arguo",
+  "arma",
+  "armarium",
+  "armo",
+  "aro",
+  "ars",
+  "articulus",
+  "artificiose",
+  "arto",
+  "arx",
+  "ascisco",
+  "ascit",
+  "asper",
+  "aspicio",
+  "asporto",
+  "assentator",
+  "astrum",
+  "atavus",
+  "ater",
+  "atqui",
+  "atrocitas",
+  "atrox",
+  "attero",
+  "attollo",
+  "attonbitus",
+  "auctor",
+  "auctus",
+  "audacia",
+  "audax",
+  "audentia",
+  "audeo",
+  "audio",
+  "auditor",
+  "aufero",
+  "aureus",
+  "auris",
+  "aurum",
+  "aut",
+  "autem",
+  "autus",
+  "auxilium",
+  "avaritia",
+  "avarus",
+  "aveho",
+  "averto",
+  "avoco",
+  "baiulus",
+  "balbus",
+  "barba",
+  "bardus",
+  "basium",
+  "beatus",
+  "bellicus",
+  "bellum",
+  "bene",
+  "beneficium",
+  "benevolentia",
+  "benigne",
+  "bestia",
+  "bibo",
+  "bis",
+  "blandior",
+  "bonus",
+  "bos",
+  "brevis",
+  "cado",
+  "caecus",
+  "caelestis",
+  "caelum",
+  "calamitas",
+  "calcar",
+  "calco",
+  "calculus",
+  "callide",
+  "campana",
+  "candidus",
+  "canis",
+  "canonicus",
+  "canto",
+  "capillus",
+  "capio",
+  "capitulus",
+  "capto",
+  "caput",
+  "carbo",
+  "carcer",
+  "careo",
+  "caries",
+  "cariosus",
+  "caritas",
+  "carmen",
+  "carpo",
+  "carus",
+  "casso",
+  "caste",
+  "casus",
+  "catena",
+  "caterva",
+  "cattus",
+  "cauda",
+  "causa",
+  "caute",
+  "caveo",
+  "cavus",
+  "cedo",
+  "celebrer",
+  "celer",
+  "celo",
+  "cena",
+  "cenaculum",
+  "ceno",
+  "censura",
+  "centum",
+  "cerno",
+  "cernuus",
+  "certe",
+  "certo",
+  "certus",
+  "cervus",
+  "cetera",
+  "charisma",
+  "chirographum",
+  "cibo",
+  "cibus",
+  "cicuta",
+  "cilicium",
+  "cimentarius",
+  "ciminatio",
+  "cinis",
+  "circumvenio",
+  "cito",
+  "civis",
+  "civitas",
+  "clam",
+  "clamo",
+  "claro",
+  "clarus",
+  "claudeo",
+  "claustrum",
+  "clementia",
+  "clibanus",
+  "coadunatio",
+  "coaegresco",
+  "coepi",
+  "coerceo",
+  "cogito",
+  "cognatus",
+  "cognomen",
+  "cogo",
+  "cohaero",
+  "cohibeo",
+  "cohors",
+  "colligo",
+  "colloco",
+  "collum",
+  "colo",
+  "color",
+  "coma",
+  "combibo",
+  "comburo",
+  "comedo",
+  "comes",
+  "cometes",
+  "comis",
+  "comitatus",
+  "commemoro",
+  "comminor",
+  "commodo",
+  "communis",
+  "comparo",
+  "compello",
+  "complectus",
+  "compono",
+  "comprehendo",
+  "comptus",
+  "conatus",
+  "concedo",
+  "concido",
+  "conculco",
+  "condico",
+  "conduco",
+  "confero",
+  "confido",
+  "conforto",
+  "confugo",
+  "congregatio",
+  "conicio",
+  "coniecto",
+  "conitor",
+  "coniuratio",
+  "conor",
+  "conqueror",
+  "conscendo",
+  "conservo",
+  "considero",
+  "conspergo",
+  "constans",
+  "consuasor",
+  "contabesco",
+  "contego",
+  "contigo",
+  "contra",
+  "conturbo",
+  "conventus",
+  "convoco",
+  "copia",
+  "copiose",
+  "cornu",
+  "corona",
+  "corpus",
+  "correptius",
+  "corrigo",
+  "corroboro",
+  "corrumpo",
+  "coruscus",
+  "cotidie",
+  "crapula",
+  "cras",
+  "crastinus",
+  "creator",
+  "creber",
+  "crebro",
+  "credo",
+  "creo",
+  "creptio",
+  "crepusculum",
+  "cresco",
+  "creta",
+  "cribro",
+  "crinis",
+  "cruciamentum",
+  "crudelis",
+  "cruentus",
+  "crur",
+  "crustulum",
+  "crux",
+  "cubicularis",
+  "cubitum",
+  "cubo",
+  "cui",
+  "cuius",
+  "culpa",
+  "culpo",
+  "cultellus",
+  "cultura",
+  "cum",
+  "cunabula",
+  "cunae",
+  "cunctatio",
+  "cupiditas",
+  "cupio",
+  "cuppedia",
+  "cupressus",
+  "cur",
+  "cura",
+  "curatio",
+  "curia",
+  "curiositas",
+  "curis",
+  "curo",
+  "curriculum",
+  "currus",
+  "cursim",
+  "curso",
+  "cursus",
+  "curto",
+  "curtus",
+  "curvo",
+  "curvus",
+  "custodia",
+  "damnatio",
+  "damno",
+  "dapifer",
+  "debeo",
+  "debilito",
+  "decens",
+  "decerno",
+  "decet",
+  "decimus",
+  "decipio",
+  "decor",
+  "decretum",
+  "decumbo",
+  "dedecor",
+  "dedico",
+  "deduco",
+  "defaeco",
+  "defendo",
+  "defero",
+  "defessus",
+  "defetiscor",
+  "deficio",
+  "defigo",
+  "defleo",
+  "defluo",
+  "defungo",
+  "degenero",
+  "degero",
+  "degusto",
+  "deinde",
+  "delectatio",
+  "delego",
+  "deleo",
+  "delibero",
+  "delicate",
+  "delinquo",
+  "deludo",
+  "demens",
+  "demergo",
+  "demitto",
+  "demo",
+  "demonstro",
+  "demoror",
+  "demulceo",
+  "demum",
+  "denego",
+  "denique",
+  "dens",
+  "denuncio",
+  "denuo",
+  "deorsum",
+  "depereo",
+  "depono",
+  "depopulo",
+  "deporto",
+  "depraedor",
+  "deprecator",
+  "deprimo",
+  "depromo",
+  "depulso",
+  "deputo",
+  "derelinquo",
+  "derideo",
+  "deripio",
+  "desidero",
+  "desino",
+  "desipio",
+  "desolo",
+  "desparatus",
+  "despecto",
+  "despirmatio",
+  "infit",
+  "inflammatio",
+  "paens",
+  "patior",
+  "patria",
+  "patrocinor",
+  "patruus",
+  "pauci",
+  "paulatim",
+  "pauper",
+  "pax",
+  "peccatus",
+  "pecco",
+  "pecto",
+  "pectus",
+  "pecunia",
+  "pecus",
+  "peior",
+  "pel",
+  "ocer",
+  "socius",
+  "sodalitas",
+  "sol",
+  "soleo",
+  "solio",
+  "solitudo",
+  "solium",
+  "sollers",
+  "sollicito",
+  "solum",
+  "solus",
+  "solutio",
+  "solvo",
+  "somniculosus",
+  "somnus",
+  "sonitus",
+  "sono",
+  "sophismata",
+  "sopor",
+  "sordeo",
+  "sortitus",
+  "spargo",
+  "speciosus",
+  "spectaculum",
+  "speculum",
+  "sperno",
+  "spero",
+  "spes",
+  "spiculum",
+  "spiritus",
+  "spoliatio",
+  "sponte",
+  "stabilis",
+  "statim",
+  "statua",
+  "stella",
+  "stillicidium",
+  "stipes",
+  "stips",
+  "sto",
+  "strenuus",
+  "strues",
+  "studio",
+  "stultus",
+  "suadeo",
+  "suasoria",
+  "sub",
+  "subito",
+  "subiungo",
+  "sublime",
+  "subnecto",
+  "subseco",
+  "substantia",
+  "subvenio",
+  "succedo",
+  "succurro",
+  "sufficio",
+  "suffoco",
+  "suffragium",
+  "suggero",
+  "sui",
+  "sulum",
+  "sum",
+  "summa",
+  "summisse",
+  "summopere",
+  "sumo",
+  "sumptus",
+  "supellex",
+  "super",
+  "suppellex",
+  "supplanto",
+  "suppono",
+  "supra",
+  "surculus",
+  "surgo",
+  "sursum",
+  "suscipio",
+  "suspendo",
+  "sustineo",
+  "suus",
+  "synagoga",
+  "tabella",
+  "tabernus",
+  "tabesco",
+  "tabgo",
+  "tabula",
+  "taceo",
+  "tactus",
+  "taedium",
+  "talio",
+  "talis",
+  "talus",
+  "tam",
+  "tamdiu",
+  "tamen",
+  "tametsi",
+  "tamisium",
+  "tamquam",
+  "tandem",
+  "tantillus",
+  "tantum",
+  "tardus",
+  "tego",
+  "temeritas",
+  "temperantia",
+  "templum",
+  "temptatio",
+  "tempus",
+  "tenax",
+  "tendo",
+  "teneo",
+  "tener",
+  "tenuis",
+  "tenus",
+  "tepesco",
+  "tepidus",
+  "ter",
+  "terebro",
+  "teres",
+  "terga",
+  "tergeo",
+  "tergiversatio",
+  "tergo",
+  "tergum",
+  "termes",
+  "terminatio",
+  "tero",
+  "terra",
+  "terreo",
+  "territo",
+  "terror",
+  "tersus",
+  "tertius",
+  "testimonium",
+  "texo",
+  "textilis",
+  "textor",
+  "textus",
+  "thalassinus",
+  "theatrum",
+  "theca",
+  "thema",
+  "theologus",
+  "thermae",
+  "thesaurus",
+  "thesis",
+  "thorax",
+  "thymbra",
+  "thymum",
+  "tibi",
+  "timidus",
+  "timor",
+  "titulus",
+  "tolero",
+  "tollo",
+  "tondeo",
+  "tonsor",
+  "torqueo",
+  "torrens",
+  "tot",
+  "totidem",
+  "toties",
+  "totus",
+  "tracto",
+  "trado",
+  "traho",
+  "trans",
+  "tredecim",
+  "tremo",
+  "trepide",
+  "tres",
+  "tribuo",
+  "tricesimus",
+  "triduana",
+  "triginta",
+  "tripudio",
+  "tristis",
+  "triumphus",
+  "trucido",
+  "truculenter",
+  "tubineus",
+  "tui",
+  "tum",
+  "tumultus",
+  "tunc",
+  "turba",
+  "turbo",
+  "turpe",
+  "turpis",
+  "tutamen",
+  "tutis",
+  "tyrannus",
+  "uberrime",
+  "ubi",
+  "ulciscor",
+  "ullus",
+  "ulterius",
+  "ultio",
+  "ultra",
+  "umbra",
+  "umerus",
+  "umquam",
+  "una",
+  "unde",
+  "undique",
+  "universe",
+  "unus",
+  "urbanus",
+  "urbs",
+  "uredo",
+  "usitas",
+  "usque",
+  "ustilo",
+  "ustulo",
+  "usus",
+  "uter",
+  "uterque",
+  "utilis",
+  "utique",
+  "utor",
+  "utpote",
+  "utrimque",
+  "utroque",
+  "utrum",
+  "uxor",
+  "vaco",
+  "vacuus",
+  "vado",
+  "vae",
+  "valde",
+  "valens",
+  "valeo",
+  "valetudo",
+  "validus",
+  "vallum",
+  "vapulus",
+  "varietas",
+  "varius",
+  "vehemens",
+  "vel",
+  "velociter",
+  "velum",
+  "velut",
+  "venia",
+  "venio",
+  "ventito",
+  "ventosus",
+  "ventus",
+  "venustas",
+  "ver",
+  "verbera",
+  "verbum",
+  "vere",
+  "verecundia",
+  "vereor",
+  "vergo",
+  "veritas",
+  "vero",
+  "versus",
+  "verto",
+  "verumtamen",
+  "verus",
+  "vesco",
+  "vesica",
+  "vesper",
+  "vespillo",
+  "vester",
+  "vestigium",
+  "vestrum",
+  "vetus",
+  "via",
+  "vicinus",
+  "vicissitudo",
+  "victoria",
+  "victus",
+  "videlicet",
+  "video",
+  "viduata",
+  "viduo",
+  "vigilo",
+  "vigor",
+  "vilicus",
+  "vilis",
+  "vilitas",
+  "villa",
+  "vinco",
+  "vinculum",
+  "vindico",
+  "vinitor",
+  "vinum",
+  "vir",
+  "virga",
+  "virgo",
+  "viridis",
+  "viriliter",
+  "virtus",
+  "vis",
+  "viscus",
+  "vita",
+  "vitiosus",
+  "vitium",
+  "vito",
+  "vivo",
+  "vix",
+  "vobis",
+  "vociferor",
+  "voco",
+  "volaticus",
+  "volo",
+  "volubilis",
+  "voluntarius",
+  "volup",
+  "volutabrum",
+  "volva",
+  "vomer",
+  "vomica",
+  "vomito",
+  "vorago",
+  "vorax",
+  "voro",
+  "vos",
+  "votum",
+  "voveo",
+  "vox",
+  "vulariter",
+  "vulgaris",
+  "vulgivagus",
+  "vulgo",
+  "vulgus",
+  "vulnero",
+  "vulnus",
+  "vulpes",
+  "vulticulus",
+  "vultuosus",
+  "xiphias"
+];
+
+},{}],85:[function(require,module,exports){
+module["exports"] = [
+  "alias",
+  "consequatur",
+  "aut",
+  "perferendis",
+  "sit",
+  "voluptatem",
+  "accusantium",
+  "doloremque",
+  "aperiam",
+  "eaque",
+  "ipsa",
+  "quae",
+  "ab",
+  "illo",
+  "inventore",
+  "veritatis",
+  "et",
+  "quasi",
+  "architecto",
+  "beatae",
+  "vitae",
+  "dicta",
+  "sunt",
+  "explicabo",
+  "aspernatur",
+  "aut",
+  "odit",
+  "aut",
+  "fugit",
+  "sed",
+  "quia",
+  "consequuntur",
+  "magni",
+  "dolores",
+  "eos",
+  "qui",
+  "ratione",
+  "voluptatem",
+  "sequi",
+  "nesciunt",
+  "neque",
+  "dolorem",
+  "ipsum",
+  "quia",
+  "dolor",
+  "sit",
+  "amet",
+  "consectetur",
+  "adipisci",
+  "velit",
+  "sed",
+  "quia",
+  "non",
+  "numquam",
+  "eius",
+  "modi",
+  "tempora",
+  "incidunt",
+  "ut",
+  "labore",
+  "et",
+  "dolore",
+  "magnam",
+  "aliquam",
+  "quaerat",
+  "voluptatem",
+  "ut",
+  "enim",
+  "ad",
+  "minima",
+  "veniam",
+  "quis",
+  "nostrum",
+  "exercitationem",
+  "ullam",
+  "corporis",
+  "nemo",
+  "enim",
+  "ipsam",
+  "voluptatem",
+  "quia",
+  "voluptas",
+  "sit",
+  "suscipit",
+  "laboriosam",
+  "nisi",
+  "ut",
+  "aliquid",
+  "ex",
+  "ea",
+  "commodi",
+  "consequatur",
+  "quis",
+  "autem",
+  "vel",
+  "eum",
+  "iure",
+  "reprehenderit",
+  "qui",
+  "in",
+  "ea",
+  "voluptate",
+  "velit",
+  "esse",
+  "quam",
+  "nihil",
+  "molestiae",
+  "et",
+  "iusto",
+  "odio",
+  "dignissimos",
+  "ducimus",
+  "qui",
+  "blanditiis",
+  "praesentium",
+  "laudantium",
+  "totam",
+  "rem",
+  "voluptatum",
+  "deleniti",
+  "atque",
+  "corrupti",
+  "quos",
+  "dolores",
+  "et",
+  "quas",
+  "molestias",
+  "excepturi",
+  "sint",
+  "occaecati",
+  "cupiditate",
+  "non",
+  "provident",
+  "sed",
+  "ut",
+  "perspiciatis",
+  "unde",
+  "omnis",
+  "iste",
+  "natus",
+  "error",
+  "similique",
+  "sunt",
+  "in",
+  "culpa",
+  "qui",
+  "officia",
+  "deserunt",
+  "mollitia",
+  "animi",
+  "id",
+  "est",
+  "laborum",
+  "et",
+  "dolorum",
+  "fuga",
+  "et",
+  "harum",
+  "quidem",
+  "rerum",
+  "facilis",
+  "est",
+  "et",
+  "expedita",
+  "distinctio",
+  "nam",
+  "libero",
+  "tempore",
+  "cum",
+  "soluta",
+  "nobis",
+  "est",
+  "eligendi",
+  "optio",
+  "cumque",
+  "nihil",
+  "impedit",
+  "quo",
+  "porro",
+  "quisquam",
+  "est",
+  "qui",
+  "minus",
+  "id",
+  "quod",
+  "maxime",
+  "placeat",
+  "facere",
+  "possimus",
+  "omnis",
+  "voluptas",
+  "assumenda",
+  "est",
+  "omnis",
+  "dolor",
+  "repellendus",
+  "temporibus",
+  "autem",
+  "quibusdam",
+  "et",
+  "aut",
+  "consequatur",
+  "vel",
+  "illum",
+  "qui",
+  "dolorem",
+  "eum",
+  "fugiat",
+  "quo",
+  "voluptas",
+  "nulla",
+  "pariatur",
+  "at",
+  "vero",
+  "eos",
+  "et",
+  "accusamus",
+  "officiis",
+  "debitis",
+  "aut",
+  "rerum",
+  "necessitatibus",
+  "saepe",
+  "eveniet",
+  "ut",
+  "et",
+  "voluptates",
+  "repudiandae",
+  "sint",
+  "et",
+  "molestiae",
+  "non",
+  "recusandae",
+  "itaque",
+  "earum",
+  "rerum",
+  "hic",
+  "tenetur",
+  "a",
+  "sapiente",
+  "delectus",
+  "ut",
+  "aut",
+  "reiciendis",
+  "voluptatibus",
+  "maiores",
+  "doloribus",
+  "asperiores",
+  "repellat"
+];
+
+},{}],86:[function(require,module,exports){
+module["exports"] = [
+  "Abigail",
+  "Ada",
+  "Adalberta",
+  "Adéla",
+  "Adelaida",
+  "Adina",
+  "Adolfa",
+  "Adolfína",
+  "Adriana",
+  "Adriána",
+  "Adriena",
+  "Afra",
+  "Agáta",
+  "Aglaja",
+  "Aida",
+  "Alana",
+  "Albena",
+  "Alberta",
+  "Albertina",
+  "Albertýna",
+  "Albína",
+  "Alena",
+  "Aleška",
+  "Alexandra",
+  "Alfréda",
+  "Alice",
+  "Alida",
+  "Alina",
+  "Alma",
+  "Aloisie",
+  "Alojzije",
+  "Alžběta",
+  "Amálie",
+  "Amanda",
+  "Amáta",
+  "Amélie",
+  "Anabela",
+  "Anastázie",
+  "Anatázie",
+  "Anatolie",
+  "Anatólie",
+  "Anděla",
+  "Andělína",
+  "Andrea",
+  "Aneta",
+  "Anežka",
+  "Angela",
+  "Angelika",
+  "Anita",
+  "Anna",
+  "Anselma",
+  "Antonie",
+  "Apolena",
+  "Arabela",
+  "Aranka",
+  "Areta",
+  "Ariadna",
+  "Ariana",
+  "Ariela",
+  "Arleta",
+  "Armida",
+  "Arna",
+  "Arnolda",
+  "Arnoštka",
+  "Astrid",
+  "Astrida",
+  "Atanázie",
+  "Augusta",
+  "Augustina",
+  "Augustýna",
+  "Aura",
+  "Aurélie",
+  "Aurora",
+  "Babeta",
+  "Barbara",
+  "Barbora",
+  "Beáta",
+  "Beatrice",
+  "Bedřiška",
+  "Bela",
+  "Běla",
+  "Belinda",
+  "Benedikta",
+  "Berenika",
+  "Berit",
+  "Bernarda",
+  "Berta",
+  "Bertolda",
+  "Bianka",
+  "Bibiana",
+  "Birgit",
+  "Birgita",
+  "Blahomila",
+  "Blahomíra",
+  "Blahoslava",
+  "Blanka",
+  "Blažena",
+  "Bohdana",
+  "Bohumila",
+  "Bohumíra",
+  "Bohuna",
+  "Bohuslava",
+  "Bohuše",
+  "Bojana",
+  "Bojislava",
+  "Boleslava",
+  "Borislava",
+  "Bořislava",
+  "Božena",
+  "Božetěcha",
+  "Božidara",
+  "Branimíra",
+  "Branislava",
+  "Bratislava",
+  "Brenda",
+  "Brigita",
+  "Brita",
+  "Bronislava",
+  "Bruna",
+  "Brunhilda",
+  "Břetislava",
+  "Cecilie",
+  "Cecílie",
+  "Celestina",
+  "Celestýna",
+  "Celie",
+  "Celina",
+  "Ctibora",
+  "Ctirada",
+  "Ctislava",
+  "Cyntie",
+  "Cyrila",
+  "Čeňka",
+  "Čestmíra",
+  "Čistoslava",
+  "Dagmar",
+  "Dagmara",
+  "Dalibora",
+  "Dalida",
+  "Dalie",
+  "Dalila",
+  "Dalimila",
+  "Dalimíra",
+  "Damaris",
+  "Damiana",
+  "Damiána",
+  "Dana",
+  "Danica",
+  "Daniela",
+  "Danuše",
+  "Danuta",
+  "Daria",
+  "Darie",
+  "Darina",
+  "Darja",
+  "Davida",
+  "Debora",
+  "Delie",
+  "Denisa",
+  "Diana",
+  "Dina",
+  "Dita",
+  "Diviška",
+  "Dobrava",
+  "Dobromila",
+  "Dobromíra",
+  "Dobroslava",
+  "Dominika",
+  "Donalda",
+  "Donáta",
+  "Dora",
+  "Doris",
+  "Dorota",
+  "Doubrava",
+  "Doubravka",
+  "Drahomila",
+  "Drahomíra",
+  "Drahoslava",
+  "Drahotína",
+  "Drahuše",
+  "Dulcinea",
+  "Dušana",
+  "Edita",
+  "Eduarda",
+  "Edvarda",
+  "Egona",
+  "Ela",
+  "Elektra",
+  "Elena",
+  "Eleonora",
+  "Elfrída",
+  "Eliška",
+  "Elsa",
+  "Elvíra",
+  "Elza",
+  "Ema",
+  "Emanuela",
+  "Emilie",
+  "Emílie",
+  "Erika",
+  "Erna",
+  "Ervína",
+  "Estela",
+  "Ester",
+  "Estera",
+  "Etela",
+  "Eufrozina",
+  "Eufrozína",
+  "Eugenie",
+  "Eulálie",
+  "Eunika",
+  "Eusebie",
+  "Eva",
+  "Evelina",
+  "Evelína",
+  "Evženie",
+  "Fabiána",
+  "Fabie",
+  "Fatima",
+  "Faustina",
+  "Faustýna",
+  "Féba",
+  "Fedora",
+  "Felicie",
+  "Felície",
+  "Felicita",
+  "Ferdinanda",
+  "Fidelie",
+  "Filipa",
+  "Filoména",
+  "Flavie",
+  "Flora",
+  "Flóra",
+  "Florentina",
+  "Florentýna",
+  "Františka",
+  "Frída",
+  "Gabriela",
+  "Gaja",
+  "Gajana",
+  "Galina",
+  "Garika",
+  "Gema",
+  "Geralda",
+  "Geraldina",
+  "Gerarda",
+  "Gerardina",
+  "Gerda",
+  "Gerharda",
+  "Gertruda",
+  "Gilberta",
+  "Gina",
+  "Gisela",
+  "Gita",
+  "Gizela",
+  "Glorie",
+  "Gordana",
+  "Graciána",
+  "Gracie",
+  "Grácie",
+  "Gražina",
+  "Gréta",
+  "Griselda",
+  "Grizelda",
+  "Gudrun",
+  "Gustava",
+  "Gvendolina",
+  "Gvendolína",
+  "Halina",
+  "Hana",
+  "Háta",
+  "Havla",
+  "Heda",
+  "Hedvika",
+  "Heidrun",
+  "Helena",
+  "Helga",
+  "Herberta",
+  "Hermína",
+  "Herta",
+  "Hilda",
+  "Hortensie",
+  "Hortenzie",
+  "Horymíra",
+  "Hostimila",
+  "Hostimíra",
+  "Hostislava",
+  "Hvězdoslava",
+  "Hyacinta",
+  "Chranislava",
+  "Iboja",
+  "Ida",
+  "Ignácie",
+  "Ignáta",
+  "Ildika",
+  "Iljana",
+  "Ilona",
+  "Ilsa",
+  "Ilza",
+  "Ines",
+  "Inesa",
+  "Inéz",
+  "Ingeborg",
+  "Ingeborga",
+  "Ingrid",
+  "Ingrida",
+  "Inka",
+  "Irena",
+  "Iris",
+  "Irma",
+  "Isabela",
+  "Isidora",
+  "Isolda",
+  "Iva",
+  "Ivana",
+  "Iveta",
+  "Ivona",
+  "Izabela",
+  "Izidora",
+  "Izolda",
+  "Jadrana",
+  "Jadranka",
+  "Jakuba",
+  "Jakubka",
+  "Jana",
+  "Jarmila",
+  "Jarolíma",
+  "Jaromíra",
+  "Jaroslava",
+  "Jasmína",
+  "Jasna",
+  "Jasněna",
+  "Jelena",
+  "Jenovéfa",
+  "Jesika",
+  "Jindra",
+  "Jindřiška",
+  "Jiřina",
+  "Jitka",
+  "Johana",
+  "Jolana",
+  "Jolanta",
+  "Jordana",
+  "Jorga",
+  "Josefa",
+  "Josefína",
+  "Jovana",
+  "Jozefa",
+  "Jozefína",
+  "Judita",
+  "Juliana",
+  "Juliána",
+  "Julie",
+  "Justina",
+  "Justýna",
+  "Juta",
+  "Kamila",
+  "Karin",
+  "Karina",
+  "Karla",
+  "Karmela",
+  "Karmen",
+  "Karolina",
+  "Karolína",
+  "Kateřina",
+  "Katrin",
+  "Katrina",
+  "Kazi",
+  "Kazimíra",
+  "Kira",
+  "Klára",
+  "Klaudie",
+  "Klementina",
+  "Klementýna",
+  "Kleopatra",
+  "Klotylda",
+  "Koleta",
+  "Kolombína",
+  "Kolumbína",
+  "Konstance",
+  "Konstancie",
+  "Konsuela",
+  "Konzuela",
+  "Kora",
+  "Kordula",
+  "Korina",
+  "Kornélie",
+  "Krasava",
+  "Krasomila",
+  "Kristina",
+  "Kristýna",
+  "Kunhuta",
+  "Květa",
+  "Květoslava",
+  "Květuše",
+  "Lada",
+  "Ladislava",
+  "Larisa",
+  "Laura",
+  "Laurencie",
+  "Lea",
+  "Léda",
+  "Leila",
+  "Lejla",
+  "Lena",
+  "Lenka",
+  "Leokádie",
+  "Leona",
+  "Leonora",
+  "Leontina",
+  "Leontýna",
+  "Leopolda",
+  "Leopoldina",
+  "Leopoldýna",
+  "Leticie",
+  "Lia",
+  "Liana",
+  "Liběna",
+  "Libora",
+  "Liboslava",
+  "Libuše",
+  "Lidmila",
+  "Liliana",
+  "Lina",
+  "Linda",
+  "Livie",
+  "Ljuba",
+  "Lola",
+  "Loreta",
+  "Lorna",
+  "Lota",
+  "Lubomíra",
+  "Luboslava",
+  "Luciána",
+  "Lucie",
+  "Ludiše",
+  "Luďka",
+  "Ludmila",
+  "Ludomíra",
+  "Ludoslava",
+  "Ludvika",
+  "Ludvíka",
+  "Luisa",
+  "Lujza",
+  "Lukrécie",
+  "Lumíra",
+  "Lydie",
+  "Lýdie",
+  "Mabel",
+  "Mabela",
+  "Magda",
+  "Magdalena",
+  "Magdaléna",
+  "Mahulena",
+  "Maja",
+  "Mája",
+  "Malvína",
+  "Manon",
+  "Manona",
+  "Manuela",
+  "Marcela",
+  "Marcelína",
+  "Margit",
+  "Margita",
+  "Mariana",
+  "Marie",
+  "Marieta",
+  "Marika",
+  "Marilyn",
+  "Marina",
+  "Mariola",
+  "Marion",
+  "Marisa",
+  "Marita",
+  "Markéta",
+  "Marlena",
+  "Marta",
+  "Martina",
+  "Matylda",
+  "Maud",
+  "Maxima",
+  "Mečislava",
+  "Medea",
+  "Médea",
+  "Melánie",
+  "Melinda",
+  "Melisa",
+  "Melita",
+  "Mercedes",
+  "Michaela",
+  "Michala",
+  "Milada",
+  "Milana",
+  "Milena",
+  "Miloslava",
+  "Milred",
+  "Miluše",
+  "Mína",
+  "Mira",
+  "Mirabela",
+  "Miranda",
+  "Mirela",
+  "Miriam",
+  "Mirjam",
+  "Mirka",
+  "Miromila",
+  "Miroslava",
+  "Mnislava",
+  "Mona",
+  "Monika",
+  "Muriel",
+  "Muriela",
+  "Myrna",
+  "Naďa",
+  "Naděžda",
+  "Naneta",
+  "Narcisa",
+  "Natalie",
+  "Natálie",
+  "Nataša",
+  "Neda",
+  "Nela",
+  "Nevena",
+  "Nika",
+  "Niké",
+  "Nikodéma",
+  "Nikol",
+  "Nikola",
+  "Nila",
+  "Nina",
+  "Noema",
+  "Noemi",
+  "Nona",
+  "Nora",
+  "Norberta",
+  "Norma",
+  "Odeta",
+  "Ofélie",
+  "Oktavie",
+  "Oktávie",
+  "Oldřiška",
+  "Olga",
+  "Oliva",
+  "Olivie",
+  "Olympie",
+  "Ondřejka",
+  "Otakara",
+  "Otilie",
+  "Otýlie",
+  "Oxana",
+  "Palmira",
+  "Pamela",
+  "Paskala",
+  "Patricie",
+  "Pavla",
+  "Pavlína",
+  "Pelagie",
+  "Penelopa",
+  "Perla",
+  "Persida",
+  "Perzida",
+  "Petra",
+  "Petrana",
+  "Petronela",
+  "Petronila",
+  "Petruše",
+  "Petula",
+  "Pilar",
+  "Polyxena",
+  "Pravdomila",
+  "Pravomila",
+  "Pravoslav",
+  "Pravoslava",
+  "Priscila",
+  "Priska",
+  "Prokopa",
+  "Přibyslava",
+  "Radana",
+  "Radimíra",
+  "Radislava",
+  "Radka",
+  "Radmila",
+  "Radomila",
+  "Radomíra",
+  "Radoslava",
+  "Radovana",
+  "Radslava",
+  "Rafaela",
+  "Ráchel",
+  "Raisa",
+  "Rajsa",
+  "Ramona",
+  "Rastislava",
+  "Rebeka",
+  "Regina",
+  "Regína",
+  "Renata",
+  "Renáta",
+  "René",
+  "Ria",
+  "Riana",
+  "Richarda",
+  "Rina",
+  "Rita",
+  "Roberta",
+  "Robina",
+  "Romana",
+  "Rosa",
+  "Rosalinda",
+  "Rosamunda",
+  "Rosana",
+  "Rostislava",
+  "Rovena",
+  "Roxana",
+  "Róza",
+  "Rozálie",
+  "Rozalinda",
+  "Rozamunda",
+  "Rozana",
+  "Rozina",
+  "Rozita",
+  "Rozvita",
+  "Rudolfa",
+  "Rudolfina",
+  "Rudolfína",
+  "Rut",
+  "Rút",
+  "Růžena",
+  "Řehořka",
+  "Sabina",
+  "Sabrina",
+  "Salomea",
+  "Salomena",
+  "Samuela",
+  "Sandra",
+  "Sára",
+  "Saskia",
+  "Saskie",
+  "Saxona",
+  "Selena",
+  "Selma",
+  "Senta",
+  "Serafína",
+  "Serena",
+  "Scholastika",
+  "Sibyla",
+  "Sidonie",
+  "Silvána",
+  "Silvie",
+  "Simeona",
+  "Simona",
+  "Skarlet",
+  "Skarleta",
+  "Slavěna",
+  "Slávka",
+  "Slavomila",
+  "Slavomíra",
+  "Soběslava",
+  "Sofie",
+  "Sofronie",
+  "Solveig",
+  "Solveiga",
+  "Soňa",
+  "Sotira",
+  "Stanislava",
+  "Stáza",
+  "Stela",
+  "Svatava",
+  "Svatoslava",
+  "Světla",
+  "Světlana",
+  "Světluše",
+  "Sylva",
+  "Sylvie",
+  "Sylvie",
+  "Šárka",
+  "Šarlota",
+  "Šimona",
+  "Štěpána",
+  "Štěpánka",
+  "Tamara",
+  "Táňa",
+  "Taťána",
+  "Tea",
+  "Tekla",
+  "Teodora",
+  "Teodozie",
+  "Teofila",
+  "Tereza",
+  "Terezie",
+  "Thea",
+  "Theodora",
+  "Theodosie",
+  "Theofila",
+  "Tomáška",
+  "Toska",
+  "Ulrika",
+  "Una",
+  "Uršula",
+  "Václava",
+  "Valburga",
+  "Valdemara",
+  "Valentina",
+  "Valentýna",
+  "Valerie",
+  "Valérie",
+  "Vanda",
+  "Vanesa",
+  "Věduna",
+  "Veleslava",
+  "Velislava",
+  "Věnceslava",
+  "Vendelína",
+  "Vendula",
+  "Vendulka",
+  "Věnka",
+  "Venuše",
+  "Věra",
+  "Verona",
+  "Veronika",
+  "Věroslava",
+  "Věslava",
+  "Vesna",
+  "Viktorie",
+  "Viléma",
+  "Vilemína",
+  "Vilma",
+  "Vincencie",
+  "Viola",
+  "Violeta",
+  "Virginie",
+  "Virgínie",
+  "Víta",
+  "Vítězslava",
+  "Viviana",
+  "Vladana",
+  "Vladěna",
+  "Vladimíra",
+  "Vladislava",
+  "Vlasta",
+  "Vlastimila",
+  "Vlastimíra",
+  "Vlastislava",
+  "Vojmíra",
+  "Vojslava",
+  "Vojtěška",
+  "Voršila",
+  "Vratislava",
+  "Xaverie",
+  "Xenie",
+  "Zaida",
+  "Zaira",
+  "Zbyhněva",
+  "Zbyňka",
+  "Zbyslava",
+  "Zbyška",
+  "Zdena",
+  "Zdenka",
+  "Zdeňka",
+  "Zdeslava",
+  "Zdislava",
+  "Zenobie",
+  "Zina",
+  "Zinaida",
+  "Zita",
+  "Zlata",
+  "Zlatomíra",
+  "Zlatuše",
+  "Zoe",
+  "Zoja",
+  "Zora",
+  "Zoroslava",
+  "Zuzana",
+  "Zvonimíra",
+  "Žakelina",
+  "Žakelína",
+  "Žaneta",
+  "Ždana",
+  "Želimíra",
+  "Želislava",
+  "Želmíra",
+  "Žitomíra",
+  "Žitoslava",
+  "Živa",
+  "Živana",
+  "Žofie",
+];
+
+},{}],87:[function(require,module,exports){
+module["exports"] = [
+  "Adamová",
+  "Adamcová",
+  "Adámková",
+  "Albrechtová",
+  "Ambrožová",
+  "Andělová",
+  "Andrleová",
+  "Antošová",
+  "Bajrová",
+  "Balážová",
+  "Balcarová",
+  "Balogová",
+  "Balounová",
+  "Baráková",
+  "Baranová",
+  "Barešová",
+  "Bártová",
+  "Bartáková",
+  "Bartoňová",
+  "Bartošová",
+  "Bartošková",
+  "Bartůněková",
+  "Baštová",
+  "Baurová",
+  "Bayrová",
+  "Bažantová",
+  "Bečková",
+  "Bečvářová",
+  "Bednářová",
+  "Bednaříková",
+  "Bělohlávková",
+  "Bendová",
+  "Benešová",
+  "Beranová",
+  "Beránková",
+  "Bergrová",
+  "Berková",
+  "Berkyová",
+  "Bernardová",
+  "Bezděková",
+  "Bílková",
+  "Bílýová",
+  "Bínová",
+  "Bittnrová",
+  "Blahová",
+  "Bláhová",
+  "Blažková",
+  "Blechová",
+  "Bobková",
+  "Bočková",
+  "Boháčová",
+  "Boháčková",
+  "Böhmová",
+  "Borovičková",
+  "Boučková",
+  "Boudová",
+  "Boušková",
+  "Brabcová",
+  "Brabencová",
+  "Bradová",
+  "Bradáčová",
+  "Braunová",
+  "Brázdová",
+  "Brázdilová",
+  "Brejchová",
+  "Březinová",
+  "Břízová",
+  "Brožová",
+  "Brožková",
+  "Brychtová",
+  "Bubeníková",
+  "Bučková",
+  "Buchtová",
+  "Burdová",
+  "Burešová",
+  "Burianová",
+  "Buriánková",
+  "Byrtusová",
+  "čadová",
+  "Cahová",
+  "čápová",
+  "čapková",
+  "čechová",
+  "čejková",
+  "čermáková",
+  "černíková",
+  "černochová",
+  "černohorskýová",
+  "černýová",
+  "červeňáková",
+  "červenková",
+  "červenýová",
+  "červinková",
+  "Chaloupková",
+  "Chalupová",
+  "Charvátová",
+  "Chládková",
+  "Chlupová",
+  "Chmelařová",
+  "Chmelíková",
+  "Chovancová",
+  "Chromýová",
+  "Chudobová",
+  "Chvátalová",
+  "Chvojková",
+  "Chytilová",
+  "Cibulková",
+  "čiháková",
+  "Cihlářová",
+  "Císařová",
+  "čížková",
+  "čonková",
+  "Coufalová",
+  "čurdová",
+  "Daněková",
+  "Danilová",
+  "Danišová",
+  "Davidová",
+  "Dědková",
+  "Demetrová",
+  "Dittrichová",
+  "Divišová",
+  "Dlouhýová",
+  "Dobešová",
+  "Dobiášová",
+  "Dobrovolnýová",
+  "Dočekalová",
+  "Dočkalová",
+  "Dohnalová",
+  "Dokoupilová",
+  "Dolečková",
+  "Dolejšová",
+  "Dolejšíová",
+  "Doležalová",
+  "Doležlová",
+  "Doskočilová",
+  "Dostálová",
+  "Doubková",
+  "Doubravová",
+  "Doušová",
+  "Drábková",
+  "Drozdová",
+  "Dubskýová",
+  "Duchoňová",
+  "Dudová",
+  "Dudková",
+  "Dufková",
+  "Dunková",
+  "Dušková",
+  "Dvořáčková",
+  "Dvořáková",
+  "Dvorskýová",
+  "Eliášová",
+  "Erbnová",
+  "Fabiánová",
+  "Fantová",
+  "Farkašová",
+  "Fejfarová",
+  "Fenclová",
+  "Ferencová",
+  "Ferkoová",
+  "Fialová",
+  "Fiedlrová",
+  "Filipová",
+  "Fischrová",
+  "Fišrová",
+  "Floriánová",
+  "Fojtíková",
+  "Foltýnová",
+  "Formanová",
+  "Formánková",
+  "Fořtová",
+  "Fousková",
+  "Francová",
+  "Franěková",
+  "Franková",
+  "Fridrichová",
+  "Frydrychová",
+  "Fuchsová",
+  "Fučíková",
+  "Fuksová",
+  "Gáborová",
+  "Gabrilová",
+  "Gajdošová",
+  "Gažiová",
+  "Gottwaldová",
+  "Gregorová",
+  "Grubrová",
+  "Grundzová",
+  "Grygarová",
+  "Hájková",
+  "Hajnýová",
+  "Hálová",
+  "Hamplová",
+  "Hánová",
+  "Hanáčková",
+  "Hanáková",
+  "Hanousková",
+  "Hanusová",
+  "Hanušová",
+  "Hanzalová",
+  "Hanzlová",
+  "Hanzlíková",
+  "Hartmanová",
+  "Hašková",
+  "Havlová",
+  "Havelková",
+  "Havlíčková",
+  "Havlíková",
+  "Havránková",
+  "Heczkoová",
+  "Hegrová",
+  "Hejdová",
+  "Hejduková",
+  "Hejlová",
+  "Hejnová",
+  "Hendrychová",
+  "Hermanová",
+  "Heřmanová",
+  "Heřmánková",
+  "Hladíková",
+  "Hladkýová",
+  "Hlaváčová",
+  "Hlaváčková",
+  "Hlavatýová",
+  "Hlávková",
+  "Hloušková",
+  "Hoffmannová",
+  "Hofmanová",
+  "Holanová",
+  "Holasová",
+  "Holcová",
+  "Holečková",
+  "Holíková",
+  "Holoubková",
+  "Holubová",
+  "Holýová",
+  "Homolová",
+  "Homolková",
+  "Horová",
+  "Horáčková",
+  "Horáková",
+  "Hořejšíová",
+  "Horkýová",
+  "Horňáková",
+  "Horníčková",
+  "Horníková",
+  "Horskýová",
+  "Horvátová",
+  "Horváthová",
+  "Hošková",
+  "Houdková",
+  "Houšková",
+  "Hovorková",
+  "Hrabalová",
+  "Hrabovskýová",
+  "Hradeckýová",
+  "Hradilová",
+  "Hrbáčková",
+  "Hrbková",
+  "Hrdinová",
+  "Hrdličková",
+  "Hrdýová",
+  "Hrnčířová",
+  "Hrochová",
+  "Hromádková",
+  "Hronová",
+  "Hrubešová",
+  "Hrubýová",
+  "Hrušková",
+  "Hrůzová",
+  "Hubáčková",
+  "Hudcová",
+  "Hudečková",
+  "Hůlková",
+  "Humlová",
+  "Husáková",
+  "Hušková",
+  "Hýblová",
+  "Hynková",
+  "Jahodová",
+  "Jakešová",
+  "Jaklová",
+  "Jakoubková",
+  "Jakubcová",
+  "Janáčková",
+  "Janáková",
+  "Janatová",
+  "Jančová",
+  "Jančíková",
+  "Jandová",
+  "Janečková",
+  "Janečková",
+  "Janíčková",
+  "Janíková",
+  "Jankůová",
+  "Janotová",
+  "Janoušková",
+  "Janovskýová",
+  "Jansová",
+  "Jánskýová",
+  "Janůová",
+  "Jarešová",
+  "Jarošová",
+  "Jašková",
+  "Javůrková",
+  "Jechová",
+  "Jedličková",
+  "Jelnová",
+  "Jelínková",
+  "Jeníčková",
+  "Jeřábková",
+  "Ježová",
+  "Ježková",
+  "Jílková",
+  "Jindrová",
+  "Jírová",
+  "Jiráková",
+  "Jiránková",
+  "Jirásková",
+  "Jiříková",
+  "Jirková",
+  "Jirkůová",
+  "Jiroušková",
+  "Jirsová",
+  "Johnová",
+  "Jonášová",
+  "Junková",
+  "Jurčíková",
+  "Jurečková",
+  "Juřicová",
+  "Juříková",
+  "Kabátová",
+  "Kačírková",
+  "Kadeřábková",
+  "Kadlcová",
+  "Kafková",
+  "Kaisrová",
+  "Kalová",
+  "Kalábová",
+  "Kalašová",
+  "Kalinová",
+  "Kalivodová",
+  "Kalousová",
+  "Kalousková",
+  "Kameníková",
+  "Kaňová",
+  "Káňová",
+  "Kaňková",
+  "Kantorová",
+  "Kaplanová",
+  "Karasová",
+  "Karásková",
+  "Karbanová",
+  "Karlová",
+  "Karlíková",
+  "Kasalová",
+  "Kašíková",
+  "Kašparová",
+  "Kašpárková",
+  "Kavková",
+  "Kazdová",
+  "Kindlová",
+  "Klečková",
+  "Kleinová",
+  "Klementová",
+  "Klímová",
+  "Klimentová",
+  "Klimešová",
+  "Kloučková",
+  "Kloudová",
+  "Knapová",
+  "Knotková",
+  "Kochová",
+  "Kočíová",
+  "Kociánová",
+  "Kocmanová",
+  "Kocourková",
+  "Kohoutová",
+  "Kohoutková",
+  "Koláčková",
+  "Kolářová",
+  "Kolaříková",
+  "Kolková",
+  "Kolmanová",
+  "Komárková",
+  "Komínková",
+  "Konečnýová",
+  "Koníčková",
+  "Kopalová",
+  "Kopečková",
+  "Kopeckýová",
+  "Kopečnýová",
+  "Kopřivová",
+  "Korblová",
+  "Kořínková",
+  "Kosová",
+  "Kosíková",
+  "Kosinová",
+  "Košťálová",
+  "Kostková",
+  "Kotasová",
+  "Kotková",
+  "Kotlárová",
+  "Kotrbová",
+  "Koubová",
+  "Koubková",
+  "Koudelová",
+  "Koudelková",
+  "Koukalová",
+  "Kouřilová",
+  "Koutnýová",
+  "Kováčová",
+  "Kovářová",
+  "Kovaříková",
+  "Kováříková",
+  "Kozáková",
+  "Kozlová",
+  "Krajíčková",
+  "Králová",
+  "Králíčková",
+  "Králíková",
+  "Krátkýová",
+  "Kratochvílová",
+  "Krausová",
+  "Krčmářová",
+  "Křečková",
+  "Krejčíová",
+  "Krejčíková",
+  "Krejčířová",
+  "Křenková",
+  "Krištofová",
+  "Křivánková",
+  "Křížová",
+  "Křížková",
+  "Kropáčková",
+  "Kroupová",
+  "Krupová",
+  "Krupičková",
+  "Krupková",
+  "Kubová",
+  "Kubánková",
+  "Kubátová",
+  "Kubcová",
+  "Kubelková",
+  "Kubešová",
+  "Kubicová",
+  "Kubíčková",
+  "Kubíková",
+  "Kubínová",
+  "Kubišová",
+  "Kučová",
+  "Kučerová",
+  "Kuchařová",
+  "Kuchtová",
+  "Kudláčková",
+  "Kudrnová",
+  "Kuklová",
+  "Kulhánková",
+  "Kulhavýová",
+  "Kuncová",
+  "Kunešová",
+  "Kupcová",
+  "Kupková",
+  "Kurková",
+  "Kužlová",
+  "Kvapilová",
+  "Kvasničková",
+  "Kynclová",
+  "Kyselová",
+  "Lacinová",
+  "Lackoová",
+  "Lakatošová",
+  "Landová",
+  "Langová",
+  "Langrová",
+  "Langrová",
+  "Látalová",
+  "Lavičková",
+  "Leová",
+  "Lebedová",
+  "Levýová",
+  "Líbalová",
+  "Linhartová",
+  "Lišková",
+  "Lorencová",
+  "Loudová",
+  "Ludvíková",
+  "Lukáčová",
+  "Lukášová",
+  "Lukášková",
+  "Lukešová",
+  "Macáková",
+  "Macková",
+  "Machová",
+  "Máchová",
+  "Machačová",
+  "Macháčová",
+  "Macháčková",
+  "Machalová",
+  "Machálková",
+  "Macurová",
+  "Majrová",
+  "Malečková",
+  "Málková",
+  "Malíková",
+  "Malinová",
+  "Malýová",
+  "Maňáková",
+  "Marečková",
+  "Marková",
+  "Marešová",
+  "Maříková",
+  "Maršálková",
+  "Maršíková",
+  "Martincová",
+  "Martinková",
+  "Martínková",
+  "Mašková",
+  "Masopustová",
+  "Matějíčková",
+  "Matějková",
+  "Matoušová",
+  "Matoušková",
+  "Matulová",
+  "Matušková",
+  "Matyášová",
+  "Matysová",
+  "Maxová",
+  "Mayrová",
+  "Mazánková",
+  "Medková",
+  "Melicharová",
+  "Menclová",
+  "Menšíková",
+  "Mertová",
+  "Michalová",
+  "Michalcová",
+  "Michálková",
+  "Michalíková",
+  "Michnová",
+  "Mičková",
+  "Miková",
+  "Míková",
+  "Mikešová",
+  "Mikoová",
+  "Mikulová",
+  "Mikulášková",
+  "Minářová",
+  "Minaříková",
+  "Mirgová",
+  "Mládková",
+  "Mlčochová",
+  "Mlejnková",
+  "Mojžíšová",
+  "Mokrýová",
+  "Molnárová",
+  "Moravcová",
+  "Morávková",
+  "Motlová",
+  "Motyčková",
+  "Moučková",
+  "Moudrýová",
+  "Mráčková",
+  "Mrázová",
+  "Mrázková",
+  "Mrkvičková",
+  "Muchová",
+  "Müllrová",
+  "Műllrová",
+  "Musilová",
+  "Mužíková",
+  "Myšková",
+  "Nagyová",
+  "Najmanová",
+  "Navrátilová",
+  "Nečasová",
+  "Nedbalová",
+  "Nedomová",
+  "Nedvědová",
+  "Nejedlýová",
+  "Němcová",
+  "Němečková",
+  "Nešporová",
+  "Nesvadbová",
+  "Neubaurová",
+  "Neumanová",
+  "Neumannová",
+  "Nguynová",
+  "Nguyen vanová",
+  "Nosková",
+  "Nováčková",
+  "Nováková",
+  "Novosadová",
+  "Novotnýová",
+  "Novýová",
+  "Odehnalová",
+  "Oláhová",
+  "Olivová",
+  "Ondrová",
+  "Ondráčková",
+  "Orságová",
+  "Otáhalová",
+  "Palečková",
+  "Pánková",
+  "Papežová",
+  "Pařízková",
+  "Pašková",
+  "Pátková",
+  "Patočková",
+  "Paulová",
+  "Pavlová",
+  "Pavelková",
+  "Pavelková",
+  "Pavlasová",
+  "Pavlicová",
+  "Pavlíčková",
+  "Pavlíková",
+  "Pavlůová",
+  "Pazderová",
+  "Pechová",
+  "Pechová",
+  "Pecháčková",
+  "Pecková",
+  "Pekařová",
+  "Pekárková",
+  "Pelcová",
+  "Pelikánová",
+  "Peřinová",
+  "Pernicová",
+  "Peroutková",
+  "Pešková",
+  "Pešková",
+  "Peštová",
+  "Peterková",
+  "Petrová",
+  "Petráková",
+  "Petrášová",
+  "Petříčková",
+  "Petříková",
+  "Petrůová",
+  "Phamová",
+  "Píchová",
+  "Pilařová",
+  "Pilátová",
+  "Píšová",
+  "Pivoňková",
+  "Plačková",
+  "Plachýová",
+  "Plšková",
+  "Pluhařová",
+  "Podzimková",
+  "Pohlová",
+  "Pokornýová",
+  "Poláčková",
+  "Poláchová",
+  "Poláková",
+  "Polanskýová",
+  "Polášková",
+  "Polívková",
+  "Popelková",
+  "Pospíchalová",
+  "Pospíšilová",
+  "Potůčková",
+  "Pourová",
+  "Prachařová",
+  "Prášková",
+  "Pražáková",
+  "Prchalová",
+  "Přibylová",
+  "Příhodová",
+  "Přikrylová",
+  "Procházková",
+  "Prokešová",
+  "Prokopová",
+  "Prošková",
+  "Provazníková",
+  "Průchová",
+  "Průšová",
+  "Pšeničková",
+  "Ptáčková",
+  "Rácová",
+  "Radová",
+  "Raková",
+  "Rambousková",
+  "Rašková",
+  "Ratajová",
+  "řeháčková",
+  "řeháková",
+  "řehořová",
+  "Remešová",
+  "řezáčová",
+  "Rezková",
+  "řezníčková",
+  "Richtrová",
+  "Richtrová",
+  "říhová",
+  "Roubalová",
+  "Rousová",
+  "Rozsypalová",
+  "Rudolfová",
+  "Růžková",
+  "Růžičková",
+  "Rybová",
+  "Rybářová",
+  "Rýdlová",
+  "Ryšavýová",
+  "Sadílková",
+  "šafářová",
+  "šafaříková",
+  "šafránková",
+  "šálková",
+  "Samková",
+  "šandová",
+  "šašková",
+  "Schejbalová",
+  "Schmidtová",
+  "Schneidrová",
+  "Schwarzová",
+  "šebková",
+  "šebelová",
+  "šebestová",
+  "šedová",
+  "šedivýová",
+  "Sedláčková",
+  "Sedláková",
+  "Sedlářová",
+  "Sehnalová",
+  "Seidlová",
+  "Seifertová",
+  "Sekaninová",
+  "Semerádová",
+  "šenková",
+  "šestáková",
+  "ševčíková",
+  "Severová",
+  "Sikorová",
+  "šilhavýová",
+  "šímová",
+  "šimáčková",
+  "šimáková",
+  "šimánková",
+  "šimčíková",
+  "šimečková",
+  "šimková",
+  "šimonová",
+  "šimůnková",
+  "šindelářová",
+  "šindlrová",
+  "šípová",
+  "šípková",
+  "šírová",
+  "širokýová",
+  "šišková",
+  "Siváková",
+  "Skáclová",
+  "Skalová",
+  "Skálová",
+  "Skalickýová",
+  "Sklenářová",
+  "škodová",
+  "Skopalová",
+  "Skořepová",
+  "škrabalová",
+  "Skřivánková",
+  "Slabýová",
+  "Sládková",
+  "Sladkýová",
+  "Slámová",
+  "Slaninová",
+  "Slavíčková",
+  "Slavíková",
+  "šlechtová",
+  "Slezáková",
+  "Slováčková",
+  "Slováková",
+  "Sluková",
+  "Smejkalová",
+  "šmejkalová",
+  "Smékalová",
+  "šmerdová",
+  "Smetanová",
+  "šmídová",
+  "Smolová",
+  "Smolíková",
+  "Smolková",
+  "Smrčková",
+  "Smržová",
+  "Smutnýová",
+  "šnajdrová",
+  "Sobková",
+  "Sobotková",
+  "Sochorová",
+  "Sojková",
+  "Sokolová",
+  "šolcová",
+  "Sommrová",
+  "Součková",
+  "Soukupová",
+  "Sovová",
+  "špačková",
+  "Spáčilová",
+  "špičková",
+  "šplíchalová",
+  "Spurnýová",
+  "šrámková",
+  "Srbová",
+  "Staněková",
+  "Stárková",
+  "Starýová",
+  "šťastnýová",
+  "štefanová",
+  "štefková",
+  "šteflová",
+  "Stehlíková",
+  "Steinrová",
+  "Stejskalová",
+  "štěpánová",
+  "štěpánková",
+  "štěrbová",
+  "Stiborová",
+  "Stoklasová",
+  "Straková",
+  "Stránskýová",
+  "Strejčková",
+  "Strnadová",
+  "Strouhalová",
+  "Stuchlíková",
+  "Studenýová",
+  "Studničková",
+  "Stupková",
+  "šubrtová",
+  "Suchánková",
+  "Suchomlová",
+  "Suchýová",
+  "Suková",
+  "šulcová",
+  "šustrová",
+  "švábová",
+  "Svačinová",
+  "švandová",
+  "švarcová",
+  "Svatoňová",
+  "Svatošová",
+  "švcová",
+  "švehlová",
+  "švejdová",
+  "švestková",
+  "Světlíková",
+  "Svitáková",
+  "Svobodová",
+  "Svozilová",
+  "Sýkorová",
+  "Synková",
+  "Syrovýová",
+  "Táborskýová",
+  "Tancošová",
+  "Teplýová",
+  "Tesařová",
+  "Tichýová",
+  "Tomanová",
+  "Tománková",
+  "Tomášová",
+  "Tomášková",
+  "Tomečková",
+  "Tomková",
+  "Tomešová",
+  "Tóthová",
+  "Tranová",
+  "Trávníčková",
+  "Trčková",
+  "Třísková",
+  "Trnková",
+  "Trojanová",
+  "Truhlářová",
+  "Tučková",
+  "Tůmová",
+  "Turečková",
+  "Turková",
+  "Tvrdíková",
+  "Tvrdýová",
+  "Uhrová",
+  "Uhlířová",
+  "Ulrichová",
+  "Urbanová",
+  "Urbancová",
+  "Urbánková",
+  "Vacková",
+  "Váchová",
+  "Václavková",
+  "Václavíková",
+  "Vaculíková",
+  "Vágnrová",
+  "Valová",
+  "Valášková",
+  "Válková",
+  "Valentová",
+  "Valešová",
+  "Váňová",
+  "Vančurová",
+  "Vaněčková",
+  "Vaněková",
+  "Vaníčková",
+  "Vargová",
+  "Vašáková",
+  "Vašková",
+  "Vašíčková",
+  "Vávrová",
+  "Vavříková",
+  "Večeřová",
+  "Vejvodová",
+  "Vernrová",
+  "Veselýová",
+  "Veverková",
+  "Víchová",
+  "Vilímková",
+  "Vinšová",
+  "Víšková",
+  "Vítová",
+  "Vitásková",
+  "Vítková",
+  "Vlachová",
+  "Vlasáková",
+  "Vlčková",
+  "Vlková",
+  "Vobořilová",
+  "Vodáková",
+  "Vodičková",
+  "Vodrážková",
+  "Vojáčková",
+  "Vojtová",
+  "Vojtěchová",
+  "Vojtková",
+  "Vojtíšková",
+  "Vokounová",
+  "Volková",
+  "Volfová",
+  "Volnýová",
+  "Vondrová",
+  "Vondráčková",
+  "Vondráková",
+  "Voráčková",
+  "Vorlová",
+  "Voříšková",
+  "Vorlíčková",
+  "Votavová",
+  "Votrubová",
+  "Vrabcová",
+  "Vránová",
+  "Vrbová",
+  "Vrzalová",
+  "Vybíralová",
+  "Vydrová",
+  "Vymazalová",
+  "Vyskočilová",
+  "Vysloužilová",
+  "Wagnrová",
+  "Waltrová",
+  "Webrová",
+  "Weissová",
+  "Winklrová",
+  "Wolfová",
+  "Zábranskýová",
+  "žáčková",
+  "Zachová",
+  "Zahrádková",
+  "Zahradníková",
+  "Zajícová",
+  "Zajíčková",
+  "žáková",
+  "Zálešáková",
+  "Zámečníková",
+  "Zapletalová",
+  "Zárubová",
+  "Zatloukalová",
+  "Zavadilová",
+  "Zavřlová",
+  "Zbořilová",
+  "žďárskýová",
+  "Zdražilová",
+  "Zedníková",
+  "Zelenková",
+  "Zelenýová",
+  "Zelinková",
+  "Zemanová",
+  "Zemánková",
+  "žemličková",
+  "Zezulová",
+  "žídková",
+  "žigová",
+  "Zíková",
+  "Zikmundová",
+  "Zimová",
+  "žižková",
+  "Zlámalová",
+  "Zoubková",
+  "Zouharová",
+  "žůrková",
+  "Zvěřinová",
+];
+
+},{}],88:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.male_first_name = require("./male_first_name");
+name.female_first_name = require("./female_first_name");
+name.male_last_name = require("./male_last_name");
+name.female_last_name = require("./female_last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.title = require("./title");
+name.name = require("./name");
+
+},{"./female_first_name":86,"./female_last_name":87,"./male_first_name":89,"./male_last_name":90,"./name":91,"./prefix":92,"./suffix":93,"./title":94}],89:[function(require,module,exports){
+module["exports"] = [
+  "Abadon",
+  "Abdon",
+  "Ábel",
+  "Abelard",
+  "Abraham",
+  "Abrahám",
+  "Absolon",
+  "Absolón",
+  "Adalbert",
+  "Adam",
+  "Adin",
+  "Adolf",
+  "Adrian",
+  "Adrián",
+  "Agaton",
+  "Achil",
+  "Achiles",
+  "Alan",
+  "Alban",
+  "Albert",
+  "Albín",
+  "Albrecht",
+  "Aldo",
+  "Alen",
+  "Aleš",
+  "Alexandr",
+  "Alexej",
+  "Alfons",
+  "Alfréd",
+  "Alois",
+  "Alojz",
+  "Alva",
+  "Alvar",
+  "Alvin",
+  "Amadeus",
+  "Amand",
+  "Amát",
+  "Ambrož",
+  "Amos",
+  "Ámos",
+  "Anastáz",
+  "Anatol",
+  "Anděl",
+  "Andělín",
+  "Andrej",
+  "Anselm",
+  "Antal",
+  "Antonín",
+  "Aram",
+  "Ariel",
+  "Aristid",
+  "Arkád",
+  "Armand",
+  "Armin",
+  "Arne",
+  "Arnold",
+  "Arnošt",
+  "Áron",
+  "Árón",
+  "Arpád",
+  "Arsen",
+  "Artur",
+  "Artuš",
+  "Arzen",
+  "Atanas",
+  "Atanáš",
+  "Atila",
+  "August",
+  "Augustin",
+  "Augustýn",
+  "Aurel",
+  "Aurelián",
+  "Axel",
+  "Baltazar",
+  "Barnabáš",
+  "Bartoloměj",
+  "Basil",
+  "Bazil",
+  "Beatus",
+  "Bedřich",
+  "Benedikt",
+  "Benjamin",
+  "Benjamín",
+  "Bernard",
+  "Bertold",
+  "Bertram",
+  "Bivoj",
+  "Blahomil",
+  "Blahomír",
+  "Blahoslav",
+  "Blažej",
+  "Bohdan",
+  "Bohuchval",
+  "Bohumil",
+  "Bohumír",
+  "Bohun",
+  "Bohuslav",
+  "Bohuš",
+  "Bojan",
+  "Bolemír",
+  "Boleslav",
+  "Bonifác",
+  "Borek",
+  "Boris",
+  "Borislav",
+  "Bořek",
+  "Bořislav",
+  "Bořivoj",
+  "Božetěch",
+  "Božidar",
+  "Božislav",
+  "Branimír",
+  "Branislav",
+  "Bratislav",
+  "Bret",
+  "Brian",
+  "Brit",
+  "Bronislav",
+  "Bruno",
+  "Břetislav",
+  "Budimír",
+  "Budislav",
+  "Budivoj",
+  "Cecil",
+  "Cedrik",
+  "Celestin",
+  "Celestýn",
+  "César",
+  "Cézar",
+  "Ctibor",
+  "Ctirad",
+  "Ctislav",
+  "Cyprián",
+  "Cyril",
+  "Čeněk",
+  "Čestmír",
+  "Čistoslav",
+  "Dag",
+  "Dalibor",
+  "Dalimil",
+  "Dalimír",
+  "Damián",
+  "Dan",
+  "Daniel",
+  "Darek",
+  "Darius",
+  "David",
+  "Denis",
+  "Děpold",
+  "Dětmar",
+  "Dětřich",
+  "Dezider",
+  "Dimitrij",
+  "Dino",
+  "Dionýz",
+  "Dionýzos",
+  "Diviš",
+  "Dluhoš",
+  "Dobromil",
+  "Dobromír",
+  "Dobroslav",
+  "Dominik",
+  "Donald",
+  "Donát",
+  "Dorian",
+  "Dorián",
+  "Drahomil",
+  "Drahomír",
+  "Drahoň",
+  "Drahoslav",
+  "Drahoš",
+  "Drahotín",
+  "Drahutin",
+  "Dušan",
+  "Edgar",
+  "Edmond",
+  "Edmund",
+  "Eduard",
+  "Edvard",
+  "Edvin",
+  "Edvín",
+  "Egmont",
+  "Egon",
+  "Eliáš",
+  "Elizej",
+  "Elizeus",
+  "Elmar",
+  "Elvis",
+  "Emanuel",
+  "Emanuel",
+  "Emerich",
+  "Emil",
+  "Emilián",
+  "Engelbert",
+  "Erazim",
+  "Erazmus",
+  "Erhard",
+  "Erich",
+  "Erik",
+  "Ernest",
+  "Ernst",
+  "Ervín",
+  "Eugen",
+  "Eusebius",
+  "Evald",
+  "Evan",
+  "Evarist",
+  "Evžen",
+  "Ezechiel",
+  "Ezra",
+  "Fabián",
+  "Faust",
+  "Faustin",
+  "Faustýn",
+  "Fedor",
+  "Felicián",
+  "Felix",
+  "Ferdinand",
+  "Fidel",
+  "Fidelius",
+  "Filemon",
+  "Filibert",
+  "Filip",
+  "Filomen",
+  "Flavián",
+  "Flavius",
+  "Florentin",
+  "Florentýn",
+  "Florián",
+  "Fortunát",
+  "Fráňa",
+  "Franc",
+  "František",
+  "Fridolín",
+  "Gabin",
+  "Gabriel",
+  "Gál",
+  "Garik",
+  "Gaston",
+  "Gedeon",
+  "Gejza",
+  "Genadij",
+  "Gerald",
+  "Gerard",
+  "Gerazim",
+  "Gerhard",
+  "Géza",
+  "Gilbert",
+  "Gleb",
+  "Glen",
+  "Gorazd",
+  "Gordon",
+  "Gothard",
+  "Gracián",
+  "Grant",
+  "Gunter",
+  "Gűnter",
+  "Gustav",
+  "Hanuš",
+  "Harald",
+  "Harold",
+  "Haštal",
+  "Havel",
+  "Helmut",
+  "Herbert",
+  "Herman",
+  "Heřman",
+  "Hilar",
+  "Hilarius",
+  "Hjalmar",
+  "Homér",
+  "Honor",
+  "Honorius",
+  "Horác",
+  "Horst",
+  "Horymír",
+  "Hostimil",
+  "Hostimír",
+  "Hostislav",
+  "Hostivít",
+  "Hovard",
+  "Hubert",
+  "Hugo",
+  "Hvězdoslav",
+  "Hyacint",
+  "Hynek",
+  "Hypolit",
+  "Chrabroš",
+  "Chraniboj",
+  "Chranibor",
+  "Chranislav",
+  "Chrudoš",
+  "Chval",
+  "Ignác",
+  "Ignát",
+  "Igor",
+  "Ilja",
+  "Inocenc",
+  "Irenej",
+  "Ireneus",
+  "Irvin",
+  "Isidor",
+  "Ivan",
+  "Ivar",
+  "Ivo",
+  "Ivor",
+  "Izaiáš",
+  "Izák",
+  "Izidor",
+  "Izmael",
+  "Jacek",
+  "Jáchym",
+  "Jakub",
+  "Jan",
+  "Jarmil",
+  "Jarolím",
+  "Jaromil",
+  "Jaromír",
+  "Jaroslav",
+  "Jason",
+  "Jasoň",
+  "Jeremiáš",
+  "Jeroným",
+  "Jiljí",
+  "Jimram",
+  "Jindřich",
+  "Jiří",
+  "Job",
+  "Joel",
+  "Jonáš",
+  "Jonatan",
+  "Jonathan",
+  "Jordan",
+  "Josef",
+  "Jošt",
+  "Jozef",
+  "Jozue",
+  "Juda",
+  "Julián",
+  "Julius",
+  "Justin",
+  "Justýn",
+  "Kajetán",
+  "Kamil",
+  "Karel",
+  "Kasián",
+  "Kastor",
+  "Kašpar",
+  "Kazimír",
+  "Kilián",
+  "Kim",
+  "Klaudián",
+  "Klaudius",
+  "Klement",
+  "Kliment",
+  "Knut",
+  "Koloman",
+  "Kolombín",
+  "Kolumbán",
+  "Kolumbín",
+  "Konrád",
+  "Konstantin",
+  "Konstantýn",
+  "Kornel",
+  "Kornelius",
+  "Kosma",
+  "Kosmas",
+  "Krasomil",
+  "Krasoslav",
+  "Kristián",
+  "Kryšpín",
+  "Kryštof",
+  "Křesomysl",
+  "Křišťan",
+  "Kurt",
+  "Květoň",
+  "Květoslav",
+  "Květoš",
+  "Kvido",
+  "Ladislav",
+  "Lambert",
+  "Lars",
+  "Laurenc",
+  "Lazar",
+  "Leander",
+  "Leandr",
+  "Leo",
+  "Leodegar",
+  "Leon",
+  "Leonard",
+  "Leonid",
+  "Leontýn",
+  "Leopold",
+  "Leoš",
+  "Lešek",
+  "Lev",
+  "Libor",
+  "Liboslav",
+  "Lionel",
+  "Livius",
+  "Lorenc",
+  "Lotar",
+  "Lothar",
+  "Lubomír",
+  "Lubor",
+  "Luboslav",
+  "Luboš",
+  "Lucián",
+  "Lucius",
+  "Luděk",
+  "Ludivoj",
+  "Ludomír",
+  "Ludoslav",
+  "Ludvík",
+  "Lukáš",
+  "Lukrecius",
+  "Lumír",
+  "Lutibor",
+  "Lutobor",
+  "Magnus",
+  "Makar",
+  "Manfred",
+  "Manfréd",
+  "Mansvet",
+  "Manuel",
+  "Marcel",
+  "Marek",
+  "Marian",
+  "Marián",
+  "Marin",
+  "Mario",
+  "Marius",
+  "Martin",
+  "Matěj",
+  "Matouš",
+  "Matyáš",
+  "Max",
+  "Maxim",
+  "Maximilián",
+  "Maxmilián",
+  "Mečislav",
+  "Medard",
+  "Melichar",
+  "Merlin",
+  "Mervin",
+  "Metod",
+  "Metoděj",
+  "Michael",
+  "Michal",
+  "Mikoláš",
+  "Mikuláš",
+  "Milan",
+  "Milíč",
+  "Milík",
+  "Milivoj",
+  "Miloň",
+  "Milorad",
+  "Miloslav",
+  "Miloš",
+  "Milota",
+  "Milouš",
+  "Milovan",
+  "Milovín",
+  "Milutín",
+  "Mirek",
+  "Mirko",
+  "Miromil",
+  "Miron",
+  "Miroslav",
+  "Mirtil",
+  "Mlad",
+  "Mladen",
+  "Mnata",
+  "Mnislav",
+  "Modest",
+  "Mojmír",
+  "Mojžíš",
+  "Morgan",
+  "Moric",
+  "Moris",
+  "Mořic",
+  "Mstislav",
+  "Myron",
+  "Myrtil",
+  "Napoleon",
+  "Narcis",
+  "Natan",
+  "Natanael",
+  "Nathan",
+  "Nathanael",
+  "Něhoslav",
+  "Neklan",
+  "Nepomuk",
+  "Nezamysl",
+  "Nikita",
+  "Nikodém",
+  "Nikola",
+  "Nikolas",
+  "Norbert",
+  "Norman",
+  "Odolen",
+  "Odon",
+  "Oktavián",
+  "Oktavius",
+  "Olaf",
+  "Olbram",
+  "Oldřich",
+  "Oleg",
+  "Oliver",
+  "Omar",
+  "Ondřej",
+  "Orest",
+  "Oskar",
+  "Osvald",
+  "Ota",
+  "Otakar",
+  "Otmar",
+  "Oto",
+  "Otokar",
+  "Otomar",
+  "Ovidius",
+  "Palmiro",
+  "Pankrác",
+  "Pantaleon",
+  "Paris",
+  "Parsival",
+  "Paskal",
+  "Patrik",
+  "Pavel",
+  "Pavlín",
+  "Pelhřim",
+  "Perikles",
+  "Petr",
+  "Petronius",
+  "Pius",
+  "Platon",
+  "Platón",
+  "Polykarp",
+  "Pravdomil",
+  "Pravomil",
+  "Prokop",
+  "Prosper",
+  "Přemysl",
+  "Přibyslav",
+  "Radan",
+  "Radegast",
+  "Radek",
+  "Radhost",
+  "Radim",
+  "Radimír",
+  "Radislav",
+  "Radivoj",
+  "Radko",
+  "Radmil",
+  "Radomil",
+  "Radomír",
+  "Radoslav",
+  "Radoš",
+  "Radovan",
+  "Radúz",
+  "Radvan",
+  "Rafael",
+  "Raimund",
+  "Rainald",
+  "Rainer",
+  "Rainhard",
+  "Rainold",
+  "Rajko",
+  "Ralf",
+  "Ramon",
+  "Randolf",
+  "Ranek",
+  "Ranko",
+  "Rastislav",
+  "Ratibor",
+  "Ratmír",
+  "Redmond",
+  "Reginald",
+  "Remig",
+  "Remus",
+  "Renát",
+  "René",
+  "Richard",
+  "Robert",
+  "Robin",
+  "Robinson",
+  "Rodan",
+  "Roderik",
+  "Rodrigo",
+  "Roger",
+  "Roch",
+  "Roland",
+  "Rolf",
+  "Roman",
+  "Romeo",
+  "Romuald",
+  "Romul",
+  "Romulus",
+  "Ronald",
+  "Rostislav",
+  "Ruben",
+  "Rudolf",
+  "Rufus",
+  "Rupert",
+  "Ruprecht",
+  "Ruslan",
+  "Řehoř",
+  "Sába",
+  "Sámo",
+  "Samson",
+  "Samuel",
+  "Saturnin",
+  "Saul",
+  "Sáva",
+  "Sebastian",
+  "Sebastián",
+  "Sebestian",
+  "Sedrik",
+  "Serafín",
+  "Serenus",
+  "Sergej",
+  "Servác",
+  "Severín",
+  "Sidon",
+  "Sigfríd",
+  "Silvan",
+  "Silván",
+  "Silvestr",
+  "Silvius",
+  "Simeon",
+  "Simon",
+  "Sinkler",
+  "Sixt",
+  "Sixtus",
+  "Slávek",
+  "Slaviboj",
+  "Slavibor",
+  "Slavoboj",
+  "Slavoj",
+  "Slavomil",
+  "Slavomír",
+  "Smil",
+  "Soběslav",
+  "Sokrat",
+  "Soter",
+  "Spytihněv",
+  "Stanimír",
+  "Stanislav",
+  "Stojan",
+  "Stojmír",
+  "Svatoboj",
+  "Svatobor",
+  "Svatomír",
+  "Svatopluk",
+  "Svatoslav",
+  "Sven",
+  "Svetozar",
+  "Šalamoun",
+  "Šalomoun",
+  "Šavel",
+  "Šebastián",
+  "Šimon",
+  "Šťasta",
+  "Štefan",
+  "Štěpán",
+  "Tadeáš",
+  "Tankred",
+  "Taras",
+  "Teobald",
+  "Teodor",
+  "Teodorik",
+  "Teodoz",
+  "Teofan",
+  "Teofil",
+  "Terenc",
+  "Terencius",
+  "Theobald",
+  "Theodor",
+  "Theodorik",
+  "Theofan",
+  "Theofil",
+  "Tiber",
+  "Tiberius",
+  "Tibor",
+  "Tiburcius",
+  "Tichomil",
+  "Tichomír",
+  "Tichon",
+  "Timon",
+  "Timotej",
+  "Timoteus",
+  "Timur",
+  "Titus",
+  "Tobiáš",
+  "Tomáš",
+  "Tomislav",
+  "Tor",
+  "Torkvát",
+  "Torsten",
+  "Tristan",
+  "Udo",
+  "Ulrich",
+  "Upton",
+  "Urban",
+  "Uve",
+  "Václav",
+  "Vadim",
+  "Valdemar",
+  "Valentin",
+  "Valentýn",
+  "Valerián",
+  "Valter",
+  "Valtr",
+  "Vasil",
+  "Vavřinec",
+  "Veleslav",
+  "Velimír",
+  "Velislav",
+  "Věnceslav",
+  "Vendelín",
+  "Věnek",
+  "Verner",
+  "Věroslav",
+  "Vidor",
+  "Viktor",
+  "Viktorin",
+  "Viktorín",
+  "Vilém",
+  "Vilibald",
+  "Vilmar",
+  "Vincenc",
+  "Virgil",
+  "Virgin",
+  "Vít",
+  "Vítězslav",
+  "Vitold",
+  "Vítoslav",
+  "Vivian",
+  "Vladan",
+  "Vladimír",
+  "Vladislav",
+  "Vladivoj",
+  "Vlastimil",
+  "Vlastimír",
+  "Vlastislav",
+  "Vlk",
+  "Vojen",
+  "Vojmil",
+  "Vojmír",
+  "Vojslav",
+  "Vojtěch",
+  "Vok",
+  "Volfgang",
+  "Vratislav",
+  "Vsevolod",
+  "Všeboj",
+  "Všebor",
+  "Všerad",
+  "Všeslav",
+  "Xaver",
+  "Xaverius",
+  "Záboj",
+  "Zachar",
+  "Zachariáš",
+  "Záviš",
+  "Zbislav",
+  "Zbyhněv",
+  "Zbyněk",
+  "Zbyslav",
+  "Zbyšek",
+  "Zdeněk",
+  "Zderad",
+  "Zdeslav",
+  "Zdík",
+  "Zdirad",
+  "Zdislav",
+  "Zeno",
+  "Zenon",
+  "Zikmund",
+  "Zlatan",
+  "Zlatko",
+  "Zlatomír",
+  "Zoltán",
+  "Zoran",
+  "Zoroslav",
+  "Zosim",
+  "Zvonimír",
+  "Žarko",
+  "Ždan",
+  "Želibor",
+  "Želimír",
+  "Želislav",
+  "Želmír",
+  "Žitomír",
+  "Žitoslav",
+  "Živan",
+];
+
+},{}],90:[function(require,module,exports){
+module["exports"] = [
+  "Adam",
+  "Adamec",
+  "Adámek",
+  "Albrecht",
+  "Ambrož",
+  "Anděl",
+  "Andrle",
+  "Antoš",
+  "Bajer",
+  "Baláž",
+  "Balcar",
+  "Balog",
+  "Baloun",
+  "Barák",
+  "Baran",
+  "Bareš",
+  "Bárta",
+  "Barták",
+  "Bartoň",
+  "Bartoš",
+  "Bartošek",
+  "Bartůněk",
+  "Bašta",
+  "Bauer",
+  "Bayer",
+  "Bažant",
+  "Bečka",
+  "Bečvář",
+  "Bednář",
+  "Bednařík",
+  "Bělohlávek",
+  "Benda",
+  "Beneš",
+  "Beran",
+  "Beránek",
+  "Berger",
+  "Berka",
+  "Berky",
+  "Bernard",
+  "Bezděk",
+  "Bílek",
+  "Bílý",
+  "Bína",
+  "Bittner",
+  "Blaha",
+  "Bláha",
+  "Blažek",
+  "Blecha",
+  "Bobek",
+  "Boček",
+  "Boháč",
+  "Boháček",
+  "Böhm",
+  "Borovička",
+  "Bouček",
+  "Bouda",
+  "Bouška",
+  "Brabec",
+  "Brabenec",
+  "Brada",
+  "Bradáč",
+  "Braun",
+  "Brázda",
+  "Brázdil",
+  "Brejcha",
+  "Březina",
+  "Bříza",
+  "Brož",
+  "Brožek",
+  "Brychta",
+  "Bubeník",
+  "Buček",
+  "Buchta",
+  "Burda",
+  "Bureš",
+  "Burian",
+  "Buriánek",
+  "Byrtus",
+  "čada",
+  "Caha",
+  "čáp",
+  "čapek",
+  "čech",
+  "čejka",
+  "čermák",
+  "černík",
+  "černoch",
+  "černohorský",
+  "černý",
+  "červeňák",
+  "červenka",
+  "červený",
+  "červinka",
+  "Chaloupka",
+  "Chalupa",
+  "Charvát",
+  "Chládek",
+  "Chlup",
+  "Chmelař",
+  "Chmelík",
+  "Chovanec",
+  "Chromý",
+  "Chudoba",
+  "Chvátal",
+  "Chvojka",
+  "Chytil",
+  "Cibulka",
+  "čihák",
+  "Cihlář",
+  "Císař",
+  "čížek",
+  "čonka",
+  "Coufal",
+  "čurda",
+  "Daněk",
+  "Daniel",
+  "Daniš",
+  "David",
+  "Dědek",
+  "Demeter",
+  "Dittrich",
+  "Diviš",
+  "Dlouhý",
+  "Dobeš",
+  "Dobiáš",
+  "Dobrovolný",
+  "Dočekal",
+  "Dočkal",
+  "Dohnal",
+  "Dokoupil",
+  "Doleček",
+  "Dolejš",
+  "Dolejší",
+  "Doležal",
+  "Doležel",
+  "Doskočil",
+  "Dostál",
+  "Doubek",
+  "Doubrava",
+  "Douša",
+  "Drábek",
+  "Drozd",
+  "Dubský",
+  "Duchoň",
+  "Duda",
+  "Dudek",
+  "Dufek",
+  "Dunka",
+  "Dušek",
+  "Dvořáček",
+  "Dvořák",
+  "Dvorský",
+  "Eliáš",
+  "Erben",
+  "Fabián",
+  "Fanta",
+  "Farkaš",
+  "Fejfar",
+  "Fencl",
+  "Ferenc",
+  "Ferko",
+  "Fiala",
+  "Fiedler",
+  "Filip",
+  "Fischer",
+  "Fišer",
+  "Florián",
+  "Fojtík",
+  "Foltýn",
+  "Forman",
+  "Formánek",
+  "Fořt",
+  "Fousek",
+  "Franc",
+  "Franěk",
+  "Frank",
+  "Fridrich",
+  "Frydrych",
+  "Fuchs",
+  "Fučík",
+  "Fuksa",
+  "Gábor",
+  "Gabriel",
+  "Gajdoš",
+  "Gaži",
+  "Gottwald",
+  "Gregor",
+  "Gruber",
+  "Grundza",
+  "Grygar",
+  "Hájek",
+  "Hajný",
+  "Hála",
+  "Hampl",
+  "Hána",
+  "Hanáček",
+  "Hanák",
+  "Hanousek",
+  "Hanus",
+  "Hanuš",
+  "Hanzal",
+  "Hanzl",
+  "Hanzlík",
+  "Hartman",
+  "Hašek",
+  "Havel",
+  "Havelka",
+  "Havlíček",
+  "Havlík",
+  "Havránek",
+  "Heczko",
+  "Heger",
+  "Hejda",
+  "Hejduk",
+  "Hejl",
+  "Hejna",
+  "Hendrych",
+  "Herman",
+  "Heřman",
+  "Heřmánek",
+  "Hladík",
+  "Hladký",
+  "Hlaváč",
+  "Hlaváček",
+  "Hlavatý",
+  "Hlávka",
+  "Hloušek",
+  "Hoffmann",
+  "Hofman",
+  "Holan",
+  "Holas",
+  "Holec",
+  "Holeček",
+  "Holík",
+  "Holoubek",
+  "Holub",
+  "Holý",
+  "Homola",
+  "Homolka",
+  "Hora",
+  "Horáček",
+  "Horák",
+  "Hořejší",
+  "Horký",
+  "Horňák",
+  "Horníček",
+  "Horník",
+  "Horský",
+  "Horvát",
+  "Horváth",
+  "Hošek",
+  "Houdek",
+  "Houška",
+  "Hovorka",
+  "Hrabal",
+  "Hrabovský",
+  "Hradecký",
+  "Hradil",
+  "Hrbáček",
+  "Hrbek",
+  "Hrdina",
+  "Hrdlička",
+  "Hrdý",
+  "Hrnčíř",
+  "Hroch",
+  "Hromádka",
+  "Hron",
+  "Hrubeš",
+  "Hrubý",
+  "Hruška",
+  "Hrůza",
+  "Hubáček",
+  "Hudec",
+  "Hudeček",
+  "Hůlka",
+  "Huml",
+  "Husák",
+  "Hušek",
+  "Hýbl",
+  "Hynek",
+  "Jahoda",
+  "Jakeš",
+  "Jakl",
+  "Jakoubek",
+  "Jakubec",
+  "Janáček",
+  "Janák",
+  "Janata",
+  "Janča",
+  "Jančík",
+  "Janda",
+  "Janeček",
+  "Janečka",
+  "Janíček",
+  "Janík",
+  "Janků",
+  "Janota",
+  "Janoušek",
+  "Janovský",
+  "Jansa",
+  "Jánský",
+  "Janů",
+  "Jareš",
+  "Jaroš",
+  "Jašek",
+  "Javůrek",
+  "Jech",
+  "Jedlička",
+  "Jelen",
+  "Jelínek",
+  "Jeníček",
+  "Jeřábek",
+  "Jež",
+  "Ježek",
+  "Jílek",
+  "Jindra",
+  "Jíra",
+  "Jirák",
+  "Jiránek",
+  "Jirásek",
+  "Jiřík",
+  "Jirka",
+  "Jirků",
+  "Jiroušek",
+  "Jirsa",
+  "John",
+  "Jonáš",
+  "Junek",
+  "Jurčík",
+  "Jurečka",
+  "Juřica",
+  "Juřík",
+  "Kabát",
+  "Kačírek",
+  "Kadeřábek",
+  "Kadlec",
+  "Kafka",
+  "Kaiser",
+  "Kala",
+  "Kaláb",
+  "Kalaš",
+  "Kalina",
+  "Kalivoda",
+  "Kalous",
+  "Kalousek",
+  "Kameník",
+  "Kaňa",
+  "Káňa",
+  "Kaňka",
+  "Kantor",
+  "Kaplan",
+  "Karas",
+  "Karásek",
+  "Karban",
+  "Karel",
+  "Karlík",
+  "Kasal",
+  "Kašík",
+  "Kašpar",
+  "Kašpárek",
+  "Kavka",
+  "Kazda",
+  "Kindl",
+  "Klečka",
+  "Klein",
+  "Klement",
+  "Klíma",
+  "Kliment",
+  "Klimeš",
+  "Klouček",
+  "Klouda",
+  "Knap",
+  "Knotek",
+  "Koch",
+  "Kočí",
+  "Kocián",
+  "Kocman",
+  "Kocourek",
+  "Kohout",
+  "Kohoutek",
+  "Koláček",
+  "Kolář",
+  "Kolařík",
+  "Kolek",
+  "Kolman",
+  "Komárek",
+  "Komínek",
+  "Konečný",
+  "Koníček",
+  "Kopal",
+  "Kopeček",
+  "Kopecký",
+  "Kopečný",
+  "Kopřiva",
+  "Korbel",
+  "Kořínek",
+  "Kos",
+  "Kosík",
+  "Kosina",
+  "Košťál",
+  "Kostka",
+  "Kotas",
+  "Kotek",
+  "Kotlár",
+  "Kotrba",
+  "Kouba",
+  "Koubek",
+  "Koudela",
+  "Koudelka",
+  "Koukal",
+  "Kouřil",
+  "Koutný",
+  "Kováč",
+  "Kovář",
+  "Kovařík",
+  "Kovářík",
+  "Kozák",
+  "Kozel",
+  "Krajíček",
+  "Král",
+  "Králíček",
+  "Králík",
+  "Krátký",
+  "Kratochvíl",
+  "Kraus",
+  "Krčmář",
+  "Křeček",
+  "Krejčí",
+  "Krejčík",
+  "Krejčíř",
+  "Křenek",
+  "Krištof",
+  "Křivánek",
+  "Kříž",
+  "Křížek",
+  "Kropáček",
+  "Kroupa",
+  "Krupa",
+  "Krupička",
+  "Krupka",
+  "Kuba",
+  "Kubánek",
+  "Kubát",
+  "Kubec",
+  "Kubelka",
+  "Kubeš",
+  "Kubica",
+  "Kubíček",
+  "Kubík",
+  "Kubín",
+  "Kubiš",
+  "Kuča",
+  "Kučera",
+  "Kuchař",
+  "Kuchta",
+  "Kudláček",
+  "Kudrna",
+  "Kukla",
+  "Kulhánek",
+  "Kulhavý",
+  "Kunc",
+  "Kuneš",
+  "Kupec",
+  "Kupka",
+  "Kurka",
+  "Kužel",
+  "Kvapil",
+  "Kvasnička",
+  "Kyncl",
+  "Kysela",
+  "Lacina",
+  "Lacko",
+  "Lakatoš",
+  "Landa",
+  "Lang",
+  "Langer",
+  "Langr",
+  "Látal",
+  "Lavička",
+  "Le",
+  "Lebeda",
+  "Levý",
+  "Líbal",
+  "Linhart",
+  "Liška",
+  "Lorenc",
+  "Louda",
+  "Ludvík",
+  "Lukáč",
+  "Lukáš",
+  "Lukášek",
+  "Lukeš",
+  "Macák",
+  "Macek",
+  "Mach",
+  "Mácha",
+  "Machač",
+  "Macháč",
+  "Macháček",
+  "Machala",
+  "Machálek",
+  "Macura",
+  "Majer",
+  "Maleček",
+  "Málek",
+  "Malík",
+  "Malina",
+  "Malý",
+  "Maňák",
+  "Mareček",
+  "Marek",
+  "Mareš",
+  "Mařík",
+  "Maršálek",
+  "Maršík",
+  "Martinec",
+  "Martinek",
+  "Martínek",
+  "Mašek",
+  "Masopust",
+  "Matějíček",
+  "Matějka",
+  "Matouš",
+  "Matoušek",
+  "Matula",
+  "Matuška",
+  "Matyáš",
+  "Matys",
+  "Maxa",
+  "Mayer",
+  "Mazánek",
+  "Medek",
+  "Melichar",
+  "Mencl",
+  "Menšík",
+  "Merta",
+  "Michal",
+  "Michalec",
+  "Michálek",
+  "Michalík",
+  "Michna",
+  "Mička",
+  "Mika",
+  "Míka",
+  "Mikeš",
+  "Miko",
+  "Mikula",
+  "Mikulášek",
+  "Minář",
+  "Minařík",
+  "Mirga",
+  "Mládek",
+  "Mlčoch",
+  "Mlejnek",
+  "Mojžíš",
+  "Mokrý",
+  "Molnár",
+  "Moravec",
+  "Morávek",
+  "Motl",
+  "Motyčka",
+  "Moučka",
+  "Moudrý",
+  "Mráček",
+  "Mráz",
+  "Mrázek",
+  "Mrkvička",
+  "Mucha",
+  "Müller",
+  "Műller",
+  "Musil",
+  "Mužík",
+  "Myška",
+  "Nagy",
+  "Najman",
+  "Navrátil",
+  "Nečas",
+  "Nedbal",
+  "Nedoma",
+  "Nedvěd",
+  "Nejedlý",
+  "Němec",
+  "Němeček",
+  "Nešpor",
+  "Nesvadba",
+  "Neubauer",
+  "Neuman",
+  "Neumann",
+  "Nguyen",
+  "Nguyen van",
+  "Nosek",
+  "Nováček",
+  "Novák",
+  "Novosad",
+  "Novotný",
+  "Nový",
+  "Odehnal",
+  "Oláh",
+  "Oliva",
+  "Ondra",
+  "Ondráček",
+  "Orság",
+  "Otáhal",
+  "Paleček",
+  "Pánek",
+  "Papež",
+  "Pařízek",
+  "Pašek",
+  "Pátek",
+  "Patočka",
+  "Paul",
+  "Pavel",
+  "Pavelek",
+  "Pavelka",
+  "Pavlas",
+  "Pavlica",
+  "Pavlíček",
+  "Pavlík",
+  "Pavlů",
+  "Pazdera",
+  "Pech",
+  "Pecha",
+  "Pecháček",
+  "Pecka",
+  "Pekař",
+  "Pekárek",
+  "Pelc",
+  "Pelikán",
+  "Peřina",
+  "Pernica",
+  "Peroutka",
+  "Pešek",
+  "Peška",
+  "Pešta",
+  "Peterka",
+  "Petr",
+  "Petrák",
+  "Petráš",
+  "Petříček",
+  "Petřík",
+  "Petrů",
+  "Pham",
+  "Pícha",
+  "Pilař",
+  "Pilát",
+  "Píša",
+  "Pivoňka",
+  "Plaček",
+  "Plachý",
+  "Plšek",
+  "Pluhař",
+  "Podzimek",
+  "Pohl",
+  "Pokorný",
+  "Poláček",
+  "Polách",
+  "Polák",
+  "Polanský",
+  "Polášek",
+  "Polívka",
+  "Popelka",
+  "Pospíchal",
+  "Pospíšil",
+  "Potůček",
+  "Pour",
+  "Prachař",
+  "Prášek",
+  "Pražák",
+  "Prchal",
+  "Přibyl",
+  "Příhoda",
+  "Přikryl",
+  "Procházka",
+  "Prokeš",
+  "Prokop",
+  "Prošek",
+  "Provazník",
+  "Průcha",
+  "Průša",
+  "Pšenička",
+  "Ptáček",
+  "Rác",
+  "Rada",
+  "Rak",
+  "Rambousek",
+  "Raška",
+  "Rataj",
+  "řeháček",
+  "řehák",
+  "řehoř",
+  "Remeš",
+  "řezáč",
+  "Rezek",
+  "řezníček",
+  "Richter",
+  "Richtr",
+  "říha",
+  "Roubal",
+  "Rous",
+  "Rozsypal",
+  "Rudolf",
+  "Růžek",
+  "Růžička",
+  "Ryba",
+  "Rybář",
+  "Rýdl",
+  "Ryšavý",
+  "Sadílek",
+  "šafář",
+  "šafařík",
+  "šafránek",
+  "šálek",
+  "Samek",
+  "šanda",
+  "šašek",
+  "Schejbal",
+  "Schmidt",
+  "Schneider",
+  "Schwarz",
+  "šebek",
+  "šebela",
+  "šebesta",
+  "šeda",
+  "šedivý",
+  "Sedláček",
+  "Sedlák",
+  "Sedlář",
+  "Sehnal",
+  "Seidl",
+  "Seifert",
+  "Sekanina",
+  "Semerád",
+  "šenk",
+  "šesták",
+  "ševčík",
+  "Severa",
+  "Sikora",
+  "šilhavý",
+  "šíma",
+  "šimáček",
+  "šimák",
+  "šimánek",
+  "šimčík",
+  "šimeček",
+  "šimek",
+  "šimon",
+  "šimůnek",
+  "šindelář",
+  "šindler",
+  "šíp",
+  "šípek",
+  "šír",
+  "široký",
+  "šiška",
+  "Sivák",
+  "Skácel",
+  "Skala",
+  "Skála",
+  "Skalický",
+  "Sklenář",
+  "škoda",
+  "Skopal",
+  "Skořepa",
+  "škrabal",
+  "Skřivánek",
+  "Slabý",
+  "Sládek",
+  "Sladký",
+  "Sláma",
+  "Slanina",
+  "Slavíček",
+  "Slavík",
+  "šlechta",
+  "Slezák",
+  "Slováček",
+  "Slovák",
+  "Sluka",
+  "Smejkal",
+  "šmejkal",
+  "Smékal",
+  "šmerda",
+  "Smetana",
+  "šmíd",
+  "Smola",
+  "Smolík",
+  "Smolka",
+  "Smrčka",
+  "Smrž",
+  "Smutný",
+  "šnajdr",
+  "Sobek",
+  "Sobotka",
+  "Sochor",
+  "Sojka",
+  "Sokol",
+  "šolc",
+  "Sommer",
+  "Souček",
+  "Soukup",
+  "Sova",
+  "špaček",
+  "Spáčil",
+  "špička",
+  "šplíchal",
+  "Spurný",
+  "šrámek",
+  "Srb",
+  "Staněk",
+  "Stárek",
+  "Starý",
+  "šťastný",
+  "štefan",
+  "štefek",
+  "štefl",
+  "Stehlík",
+  "Steiner",
+  "Stejskal",
+  "štěpán",
+  "štěpánek",
+  "štěrba",
+  "Stibor",
+  "Stoklasa",
+  "Straka",
+  "Stránský",
+  "Strejček",
+  "Strnad",
+  "Strouhal",
+  "Stuchlík",
+  "Studený",
+  "Studnička",
+  "Stupka",
+  "šubrt",
+  "Suchánek",
+  "Suchomel",
+  "Suchý",
+  "Suk",
+  "šulc",
+  "šustr",
+  "šváb",
+  "Svačina",
+  "švanda",
+  "švarc",
+  "Svatoň",
+  "Svatoš",
+  "švec",
+  "švehla",
+  "švejda",
+  "švestka",
+  "Světlík",
+  "Sviták",
+  "Svoboda",
+  "Svozil",
+  "Sýkora",
+  "Synek",
+  "Syrový",
+  "Táborský",
+  "Tancoš",
+  "Teplý",
+  "Tesař",
+  "Tichý",
+  "Toman",
+  "Tománek",
+  "Tomáš",
+  "Tomášek",
+  "Tomeček",
+  "Tomek",
+  "Tomeš",
+  "Tóth",
+  "Tran",
+  "Trávníček",
+  "Trčka",
+  "Tříska",
+  "Trnka",
+  "Trojan",
+  "Truhlář",
+  "Tuček",
+  "Tůma",
+  "Tureček",
+  "Turek",
+  "Tvrdík",
+  "Tvrdý",
+  "Uher",
+  "Uhlíř",
+  "Ulrich",
+  "Urban",
+  "Urbanec",
+  "Urbánek",
+  "Vacek",
+  "Vácha",
+  "Václavek",
+  "Václavík",
+  "Vaculík",
+  "Vágner",
+  "Vala",
+  "Valášek",
+  "Válek",
+  "Valenta",
+  "Valeš",
+  "Váňa",
+  "Vančura",
+  "Vaněček",
+  "Vaněk",
+  "Vaníček",
+  "Varga",
+  "Vašák",
+  "Vašek",
+  "Vašíček",
+  "Vávra",
+  "Vavřík",
+  "Večeřa",
+  "Vejvoda",
+  "Verner",
+  "Veselý",
+  "Veverka",
+  "Vícha",
+  "Vilímek",
+  "Vinš",
+  "Víšek",
+  "Vít",
+  "Vitásek",
+  "Vítek",
+  "Vlach",
+  "Vlasák",
+  "Vlček",
+  "Vlk",
+  "Vobořil",
+  "Vodák",
+  "Vodička",
+  "Vodrážka",
+  "Vojáček",
+  "Vojta",
+  "Vojtěch",
+  "Vojtek",
+  "Vojtíšek",
+  "Vokoun",
+  "Volek",
+  "Volf",
+  "Volný",
+  "Vondra",
+  "Vondráček",
+  "Vondrák",
+  "Voráček",
+  "Vorel",
+  "Voříšek",
+  "Vorlíček",
+  "Votava",
+  "Votruba",
+  "Vrabec",
+  "Vrána",
+  "Vrba",
+  "Vrzal",
+  "Vybíral",
+  "Vydra",
+  "Vymazal",
+  "Vyskočil",
+  "Vysloužil",
+  "Wagner",
+  "Walter",
+  "Weber",
+  "Weiss",
+  "Winkler",
+  "Wolf",
+  "Zábranský",
+  "žáček",
+  "Zach",
+  "Zahrádka",
+  "Zahradník",
+  "Zajíc",
+  "Zajíček",
+  "žák",
+  "Zálešák",
+  "Zámečník",
+  "Zapletal",
+  "Záruba",
+  "Zatloukal",
+  "Zavadil",
+  "Zavřel",
+  "Zbořil",
+  "žďárský",
+  "Zdražil",
+  "Zedník",
+  "Zelenka",
+  "Zelený",
+  "Zelinka",
+  "Zeman",
+  "Zemánek",
+  "žemlička",
+  "Zezula",
+  "žídek",
+  "žiga",
+  "Zíka",
+  "Zikmund",
+  "Zima",
+  "žižka",
+  "Zlámal",
+  "Zoubek",
+  "Zouhar",
+  "žůrek",
+  "Zvěřina",
+];
+
+},{}],91:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{man_first_name} #{man_last_name}",
+  "#{prefix} #{woman_first_name} #{woman_last_name}",
+  "#{man_first_name} #{man_last_name} #{suffix}",
+  "#{woman_first_name} #{woman_last_name} #{suffix}",
+  "#{man_first_name} #{man_last_name}",
+  "#{man_first_name} #{man_last_name}",
+  "#{man_first_name} #{man_last_name}",
+  "#{woman_first_name} #{woman_last_name}",
+  "#{woman_first_name} #{woman_last_name}",
+  "#{woman_first_name} #{woman_last_name}"
+];
+
+},{}],92:[function(require,module,exports){
+module["exports"] = [
+  "Ing.",
+  "Mgr.",
+  "JUDr.",
+  "MUDr."
+];
+
+},{}],93:[function(require,module,exports){
+module["exports"] = [
+  "Phd."
+];
+
+},{}],94:[function(require,module,exports){
+module["exports"] = {
+  "descriptor": [
+    "Lead",
+    "Senior",
+    "Direct",
+    "Corporate",
+    "Dynamic",
+    "Future",
+    "Product",
+    "National",
+    "Regional",
+    "District",
+    "Central",
+    "Global",
+    "Customer",
+    "Investor",
+    "Dynamic",
+    "International",
+    "Legacy",
+    "Forward",
+    "Internal",
+    "Human",
+    "Chief",
+    "Principal"
+  ],
+  "level": [
+    "Solutions",
+    "Program",
+    "Brand",
+    "Security",
+    "Research",
+    "Marketing",
+    "Directives",
+    "Implementation",
+    "Integration",
+    "Functionality",
+    "Response",
+    "Paradigm",
+    "Tactics",
+    "Identity",
+    "Markets",
+    "Group",
+    "Division",
+    "Applications",
+    "Optimization",
+    "Operations",
+    "Infrastructure",
+    "Intranet",
+    "Communications",
+    "Web",
+    "Branding",
+    "Quality",
+    "Assurance",
+    "Mobility",
+    "Accounts",
+    "Data",
+    "Creative",
+    "Configuration",
+    "Accountability",
+    "Interactions",
+    "Factors",
+    "Usability",
+    "Metrics"
+  ],
+  "job": [
+    "Supervisor",
+    "Associate",
+    "Executive",
+    "Liason",
+    "Officer",
+    "Manager",
+    "Engineer",
+    "Specialist",
+    "Director",
+    "Coordinator",
+    "Administrator",
+    "Architect",
+    "Analyst",
+    "Designer",
+    "Planner",
+    "Orchestrator",
+    "Technician",
+    "Developer",
+    "Producer",
+    "Consultant",
+    "Assistant",
+    "Facilitator",
+    "Agent",
+    "Representative",
+    "Strategist"
+  ]
+};
+
+},{}],95:[function(require,module,exports){
+module["exports"] = [
+  "601 ### ###",
+  "737 ### ###",
+  "736 ### ###",
+  "### ### ###",
+  "+420 ### ### ###",
+  "00420 ### ### ###"
+];
+
+},{}],96:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":95,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],97:[function(require,module,exports){
+module["exports"] = [
+  "###",
+  "##",
+  "#",
+  "##a",
+  "##b",
+  "##c"
+];
+
+},{}],98:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix} #{Name.first_name}#{city_suffix}",
+  "#{city_prefix} #{Name.first_name}",
+  "#{Name.first_name}#{city_suffix}",
+  "#{Name.last_name}#{city_suffix}"
+];
+
+},{}],99:[function(require,module,exports){
+module["exports"] = [
+  "Nord",
+  "Ost",
+  "West",
+  "Süd",
+  "Neu",
+  "Alt",
+  "Bad"
+];
+
+},{}],100:[function(require,module,exports){
+module["exports"] = [
+  "stadt",
+  "dorf",
+  "land",
+  "scheid",
+  "burg"
+];
+
+},{}],101:[function(require,module,exports){
+module["exports"] = [
+  "Ägypten",
+  "Äquatorialguinea",
+  "Äthiopien",
+  "Österreich",
+  "Afghanistan",
+  "Albanien",
+  "Algerien",
+  "Amerikanisch-Samoa",
+  "Amerikanische Jungferninseln",
+  "Andorra",
+  "Angola",
+  "Anguilla",
+  "Antarktis",
+  "Antigua und Barbuda",
+  "Argentinien",
+  "Armenien",
+  "Aruba",
+  "Aserbaidschan",
+  "Australien",
+  "Bahamas",
+  "Bahrain",
+  "Bangladesch",
+  "Barbados",
+  "Belarus",
+  "Belgien",
+  "Belize",
+  "Benin",
+  "die Bermudas",
+  "Bhutan",
+  "Bolivien",
+  "Bosnien und Herzegowina",
+  "Botsuana",
+  "Bouvetinsel",
+  "Brasilien",
+  "Britische Jungferninseln",
+  "Britisches Territorium im Indischen Ozean",
+  "Brunei Darussalam",
+  "Bulgarien",
+  "Burkina Faso",
+  "Burundi",
+  "Chile",
+  "China",
+  "Cookinseln",
+  "Costa Rica",
+  "Dänemark",
+  "Demokratische Republik Kongo",
+  "Demokratische Volksrepublik Korea",
+  "Deutschland",
+  "Dominica",
+  "Dominikanische Republik",
+  "Dschibuti",
+  "Ecuador",
+  "El Salvador",
+  "Eritrea",
+  "Estland",
+  "Färöer",
+  "Falklandinseln",
+  "Fidschi",
+  "Finnland",
+  "Frankreich",
+  "Französisch-Guayana",
+  "Französisch-Polynesien",
+  "Französische Gebiete im südlichen Indischen Ozean",
+  "Gabun",
+  "Gambia",
+  "Georgien",
+  "Ghana",
+  "Gibraltar",
+  "Grönland",
+  "Grenada",
+  "Griechenland",
+  "Guadeloupe",
+  "Guam",
+  "Guatemala",
+  "Guinea",
+  "Guinea-Bissau",
+  "Guyana",
+  "Haiti",
+  "Heard und McDonaldinseln",
+  "Honduras",
+  "Hongkong",
+  "Indien",
+  "Indonesien",
+  "Irak",
+  "Iran",
+  "Irland",
+  "Island",
+  "Israel",
+  "Italien",
+  "Jamaika",
+  "Japan",
+  "Jemen",
+  "Jordanien",
+  "Jugoslawien",
+  "Kaimaninseln",
+  "Kambodscha",
+  "Kamerun",
+  "Kanada",
+  "Kap Verde",
+  "Kasachstan",
+  "Katar",
+  "Kenia",
+  "Kirgisistan",
+  "Kiribati",
+  "Kleinere amerikanische Überseeinseln",
+  "Kokosinseln",
+  "Kolumbien",
+  "Komoren",
+  "Kongo",
+  "Kroatien",
+  "Kuba",
+  "Kuwait",
+  "Laos",
+  "Lesotho",
+  "Lettland",
+  "Libanon",
+  "Liberia",
+  "Libyen",
+  "Liechtenstein",
+  "Litauen",
+  "Luxemburg",
+  "Macau",
+  "Madagaskar",
+  "Malawi",
+  "Malaysia",
+  "Malediven",
+  "Mali",
+  "Malta",
+  "ehemalige jugoslawische Republik Mazedonien",
+  "Marokko",
+  "Marshallinseln",
+  "Martinique",
+  "Mauretanien",
+  "Mauritius",
+  "Mayotte",
+  "Mexiko",
+  "Mikronesien",
+  "Monaco",
+  "Mongolei",
+  "Montserrat",
+  "Mosambik",
+  "Myanmar",
+  "Nördliche Marianen",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Neukaledonien",
+  "Neuseeland",
+  "Nicaragua",
+  "Niederländische Antillen",
+  "Niederlande",
+  "Niger",
+  "Nigeria",
+  "Niue",
+  "Norfolkinsel",
+  "Norwegen",
+  "Oman",
+  "Osttimor",
+  "Pakistan",
+  "Palau",
+  "Panama",
+  "Papua-Neuguinea",
+  "Paraguay",
+  "Peru",
+  "Philippinen",
+  "Pitcairninseln",
+  "Polen",
+  "Portugal",
+  "Puerto Rico",
+  "Réunion",
+  "Republik Korea",
+  "Republik Moldau",
+  "Ruanda",
+  "Rumänien",
+  "Russische Föderation",
+  "São Tomé und Príncipe",
+  "Südafrika",
+  "Südgeorgien und Südliche Sandwichinseln",
+  "Salomonen",
+  "Sambia",
+  "Samoa",
+  "San Marino",
+  "Saudi-Arabien",
+  "Schweden",
+  "Schweiz",
+  "Senegal",
+  "Seychellen",
+  "Sierra Leone",
+  "Simbabwe",
+  "Singapur",
+  "Slowakei",
+  "Slowenien",
+  "Somalien",
+  "Spanien",
+  "Sri Lanka",
+  "St. Helena",
+  "St. Kitts und Nevis",
+  "St. Lucia",
+  "St. Pierre und Miquelon",
+  "St. Vincent und die Grenadinen",
+  "Sudan",
+  "Surinam",
+  "Svalbard und Jan Mayen",
+  "Swasiland",
+  "Syrien",
+  "Türkei",
+  "Tadschikistan",
+  "Taiwan",
+  "Tansania",
+  "Thailand",
+  "Togo",
+  "Tokelau",
+  "Tonga",
+  "Trinidad und Tobago",
+  "Tschad",
+  "Tschechische Republik",
+  "Tunesien",
+  "Turkmenistan",
+  "Turks- und Caicosinseln",
+  "Tuvalu",
+  "Uganda",
+  "Ukraine",
+  "Ungarn",
+  "Uruguay",
+  "Usbekistan",
+  "Vanuatu",
+  "Vatikanstadt",
+  "Venezuela",
+  "Vereinigte Arabische Emirate",
+  "Vereinigte Staaten",
+  "Vereinigtes Königreich",
+  "Vietnam",
+  "Wallis und Futuna",
+  "Weihnachtsinsel",
+  "Westsahara",
+  "Zentralafrikanische Republik",
+  "Zypern"
+];
+
+},{}],102:[function(require,module,exports){
+module["exports"] = [
+  "Deutschland"
+];
+
+},{}],103:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.country = require("./country");
+address.street_root = require("./street_root");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":97,"./city":98,"./city_prefix":99,"./city_suffix":100,"./country":101,"./default_country":102,"./postcode":104,"./secondary_address":105,"./state":106,"./state_abbr":107,"./street_address":108,"./street_name":109,"./street_root":110}],104:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "#####"
+];
+
+},{}],105:[function(require,module,exports){
+module["exports"] = [
+  "Apt. ###",
+  "Zimmer ###",
+  "# OG"
+];
+
+},{}],106:[function(require,module,exports){
+module["exports"] = [
+  "Baden-Württemberg",
+  "Bayern",
+  "Berlin",
+  "Brandenburg",
+  "Bremen",
+  "Hamburg",
+  "Hessen",
+  "Mecklenburg-Vorpommern",
+  "Niedersachsen",
+  "Nordrhein-Westfalen",
+  "Rheinland-Pfalz",
+  "Saarland",
+  "Sachsen",
+  "Sachsen-Anhalt",
+  "Schleswig-Holstein",
+  "Thüringen"
+];
+
+},{}],107:[function(require,module,exports){
+module["exports"] = [
+  "BW",
+  "BY",
+  "BE",
+  "BB",
+  "HB",
+  "HH",
+  "HE",
+  "MV",
+  "NI",
+  "NW",
+  "RP",
+  "SL",
+  "SN",
+  "ST",
+  "SH",
+  "TH"
+];
+
+},{}],108:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],109:[function(require,module,exports){
+module["exports"] = [
+  "#{street_root}"
+];
+
+},{}],110:[function(require,module,exports){
+module["exports"] = [
+  "Ackerweg",
+  "Adalbert-Stifter-Str.",
+  "Adalbertstr.",
+  "Adolf-Baeyer-Str.",
+  "Adolf-Kaschny-Str.",
+  "Adolf-Reichwein-Str.",
+  "Adolfsstr.",
+  "Ahornweg",
+  "Ahrstr.",
+  "Akazienweg",
+  "Albert-Einstein-Str.",
+  "Albert-Schweitzer-Str.",
+  "Albertus-Magnus-Str.",
+  "Albert-Zarthe-Weg",
+  "Albin-Edelmann-Str.",
+  "Albrecht-Haushofer-Str.",
+  "Aldegundisstr.",
+  "Alexanderstr.",
+  "Alfred-Delp-Str.",
+  "Alfred-Kubin-Str.",
+  "Alfred-Stock-Str.",
+  "Alkenrather Str.",
+  "Allensteiner Str.",
+  "Alsenstr.",
+  "Alt Steinbücheler Weg",
+  "Alte Garten",
+  "Alte Heide",
+  "Alte Landstr.",
+  "Alte Ziegelei",
+  "Altenberger Str.",
+  "Altenhof",
+  "Alter Grenzweg",
+  "Altstadtstr.",
+  "Am Alten Gaswerk",
+  "Am Alten Schafstall",
+  "Am Arenzberg",
+  "Am Benthal",
+  "Am Birkenberg",
+  "Am Blauen Berg",
+  "Am Borsberg",
+  "Am Brungen",
+  "Am Büchelter Hof",
+  "Am Buttermarkt",
+  "Am Ehrenfriedhof",
+  "Am Eselsdamm",
+  "Am Falkenberg",
+  "Am Frankenberg",
+  "Am Gesundheitspark",
+  "Am Gierlichshof",
+  "Am Graben",
+  "Am Hagelkreuz",
+  "Am Hang",
+  "Am Heidkamp",
+  "Am Hemmelrather Hof",
+  "Am Hofacker",
+  "Am Hohen Ufer",
+  "Am Höllers Eck",
+  "Am Hühnerberg",
+  "Am Jägerhof",
+  "Am Junkernkamp",
+  "Am Kemperstiegel",
+  "Am Kettnersbusch",
+  "Am Kiesberg",
+  "Am Klösterchen",
+  "Am Knechtsgraben",
+  "Am Köllerweg",
+  "Am Köttersbach",
+  "Am Kreispark",
+  "Am Kronefeld",
+  "Am Küchenhof",
+  "Am Kühnsbusch",
+  "Am Lindenfeld",
+  "Am Märchen",
+  "Am Mittelberg",
+  "Am Mönchshof",
+  "Am Mühlenbach",
+  "Am Neuenhof",
+  "Am Nonnenbruch",
+  "Am Plattenbusch",
+  "Am Quettinger Feld",
+  "Am Rosenhügel",
+  "Am Sandberg",
+  "Am Scherfenbrand",
+  "Am Schokker",
+  "Am Silbersee",
+  "Am Sonnenhang",
+  "Am Sportplatz",
+  "Am Stadtpark",
+  "Am Steinberg",
+  "Am Telegraf",
+  "Am Thelenhof",
+  "Am Vogelkreuz",
+  "Am Vogelsang",
+  "Am Vogelsfeldchen",
+  "Am Wambacher Hof",
+  "Am Wasserturm",
+  "Am Weidenbusch",
+  "Am Weiher",
+  "Am Weingarten",
+  "Am Werth",
+  "Amselweg",
+  "An den Irlen",
+  "An den Rheinauen",
+  "An der Bergerweide",
+  "An der Dingbank",
+  "An der Evangelischen Kirche",
+  "An der Evgl. Kirche",
+  "An der Feldgasse",
+  "An der Fettehenne",
+  "An der Kante",
+  "An der Laach",
+  "An der Lehmkuhle",
+  "An der Lichtenburg",
+  "An der Luisenburg",
+  "An der Robertsburg",
+  "An der Schmitten",
+  "An der Schusterinsel",
+  "An der Steinrütsch",
+  "An St. Andreas",
+  "An St. Remigius",
+  "Andreasstr.",
+  "Ankerweg",
+  "Annette-Kolb-Str.",
+  "Apenrader Str.",
+  "Arnold-Ohletz-Str.",
+  "Atzlenbacher Str.",
+  "Auerweg",
+  "Auestr.",
+  "Auf dem Acker",
+  "Auf dem Blahnenhof",
+  "Auf dem Bohnbüchel",
+  "Auf dem Bruch",
+  "Auf dem End",
+  "Auf dem Forst",
+  "Auf dem Herberg",
+  "Auf dem Lehn",
+  "Auf dem Stein",
+  "Auf dem Weierberg",
+  "Auf dem Weiherhahn",
+  "Auf den Reien",
+  "Auf der Donnen",
+  "Auf der Grieße",
+  "Auf der Ohmer",
+  "Auf der Weide",
+  "Auf'm Berg",
+  "Auf'm Kamp",
+  "Augustastr.",
+  "August-Kekulé-Str.",
+  "A.-W.-v.-Hofmann-Str.",
+  "Bahnallee",
+  "Bahnhofstr.",
+  "Baltrumstr.",
+  "Bamberger Str.",
+  "Baumberger Str.",
+  "Bebelstr.",
+  "Beckers Kämpchen",
+  "Beerenstr.",
+  "Beethovenstr.",
+  "Behringstr.",
+  "Bendenweg",
+  "Bensberger Str.",
+  "Benzstr.",
+  "Bergische Landstr.",
+  "Bergstr.",
+  "Berliner Platz",
+  "Berliner Str.",
+  "Bernhard-Letterhaus-Str.",
+  "Bernhard-Lichtenberg-Str.",
+  "Bernhard-Ridder-Str.",
+  "Bernsteinstr.",
+  "Bertha-Middelhauve-Str.",
+  "Bertha-von-Suttner-Str.",
+  "Bertolt-Brecht-Str.",
+  "Berzeliusstr.",
+  "Bielertstr.",
+  "Biesenbach",
+  "Billrothstr.",
+  "Birkenbergstr.",
+  "Birkengartenstr.",
+  "Birkenweg",
+  "Bismarckstr.",
+  "Bitterfelder Str.",
+  "Blankenburg",
+  "Blaukehlchenweg",
+  "Blütenstr.",
+  "Boberstr.",
+  "Böcklerstr.",
+  "Bodelschwinghstr.",
+  "Bodestr.",
+  "Bogenstr.",
+  "Bohnenkampsweg",
+  "Bohofsweg",
+  "Bonifatiusstr.",
+  "Bonner Str.",
+  "Borkumstr.",
+  "Bornheimer Str.",
+  "Borsigstr.",
+  "Borussiastr.",
+  "Bracknellstr.",
+  "Brahmsweg",
+  "Brandenburger Str.",
+  "Breidenbachstr.",
+  "Breslauer Str.",
+  "Bruchhauser Str.",
+  "Brückenstr.",
+  "Brucknerstr.",
+  "Brüder-Bonhoeffer-Str.",
+  "Buchenweg",
+  "Bürgerbuschweg",
+  "Burgloch",
+  "Burgplatz",
+  "Burgstr.",
+  "Burgweg",
+  "Bürriger Weg",
+  "Burscheider Str.",
+  "Buschkämpchen",
+  "Butterheider Str.",
+  "Carl-Duisberg-Platz",
+  "Carl-Duisberg-Str.",
+  "Carl-Leverkus-Str.",
+  "Carl-Maria-von-Weber-Platz",
+  "Carl-Maria-von-Weber-Str.",
+  "Carlo-Mierendorff-Str.",
+  "Carl-Rumpff-Str.",
+  "Carl-von-Ossietzky-Str.",
+  "Charlottenburger Str.",
+  "Christian-Heß-Str.",
+  "Claasbruch",
+  "Clemens-Winkler-Str.",
+  "Concordiastr.",
+  "Cranachstr.",
+  "Dahlemer Str.",
+  "Daimlerstr.",
+  "Damaschkestr.",
+  "Danziger Str.",
+  "Debengasse",
+  "Dechant-Fein-Str.",
+  "Dechant-Krey-Str.",
+  "Deichtorstr.",
+  "Dhünnberg",
+  "Dhünnstr.",
+  "Dianastr.",
+  "Diedenhofener Str.",
+  "Diepental",
+  "Diepenthaler Str.",
+  "Dieselstr.",
+  "Dillinger Str.",
+  "Distelkamp",
+  "Dohrgasse",
+  "Domblick",
+  "Dönhoffstr.",
+  "Dornierstr.",
+  "Drachenfelsstr.",
+  "Dr.-August-Blank-Str.",
+  "Dresdener Str.",
+  "Driescher Hecke",
+  "Drosselweg",
+  "Dudweilerstr.",
+  "Dünenweg",
+  "Dünfelder Str.",
+  "Dünnwalder Grenzweg",
+  "Düppeler Str.",
+  "Dürerstr.",
+  "Dürscheider Weg",
+  "Düsseldorfer Str.",
+  "Edelrather Weg",
+  "Edmund-Husserl-Str.",
+  "Eduard-Spranger-Str.",
+  "Ehrlichstr.",
+  "Eichenkamp",
+  "Eichenweg",
+  "Eidechsenweg",
+  "Eifelstr.",
+  "Eifgenstr.",
+  "Eintrachtstr.",
+  "Elbestr.",
+  "Elisabeth-Langgässer-Str.",
+  "Elisabethstr.",
+  "Elisabeth-von-Thadden-Str.",
+  "Elisenstr.",
+  "Elsa-Brändström-Str.",
+  "Elsbachstr.",
+  "Else-Lasker-Schüler-Str.",
+  "Elsterstr.",
+  "Emil-Fischer-Str.",
+  "Emil-Nolde-Str.",
+  "Engelbertstr.",
+  "Engstenberger Weg",
+  "Entenpfuhl",
+  "Erbelegasse",
+  "Erftstr.",
+  "Erfurter Str.",
+  "Erich-Heckel-Str.",
+  "Erich-Klausener-Str.",
+  "Erich-Ollenhauer-Str.",
+  "Erlenweg",
+  "Ernst-Bloch-Str.",
+  "Ernst-Ludwig-Kirchner-Str.",
+  "Erzbergerstr.",
+  "Eschenallee",
+  "Eschenweg",
+  "Esmarchstr.",
+  "Espenweg",
+  "Euckenstr.",
+  "Eulengasse",
+  "Eulenkamp",
+  "Ewald-Flamme-Str.",
+  "Ewald-Röll-Str.",
+  "Fährstr.",
+  "Farnweg",
+  "Fasanenweg",
+  "Faßbacher Hof",
+  "Felderstr.",
+  "Feldkampstr.",
+  "Feldsiefer Weg",
+  "Feldsiefer Wiesen",
+  "Feldstr.",
+  "Feldtorstr.",
+  "Felix-von-Roll-Str.",
+  "Ferdinand-Lassalle-Str.",
+  "Fester Weg",
+  "Feuerbachstr.",
+  "Feuerdornweg",
+  "Fichtenweg",
+  "Fichtestr.",
+  "Finkelsteinstr.",
+  "Finkenweg",
+  "Fixheider Str.",
+  "Flabbenhäuschen",
+  "Flensburger Str.",
+  "Fliederweg",
+  "Florastr.",
+  "Florianweg",
+  "Flotowstr.",
+  "Flurstr.",
+  "Föhrenweg",
+  "Fontanestr.",
+  "Forellental",
+  "Fortunastr.",
+  "Franz-Esser-Str.",
+  "Franz-Hitze-Str.",
+  "Franz-Kail-Str.",
+  "Franz-Marc-Str.",
+  "Freiburger Str.",
+  "Freiheitstr.",
+  "Freiherr-vom-Stein-Str.",
+  "Freudenthal",
+  "Freudenthaler Weg",
+  "Fridtjof-Nansen-Str.",
+  "Friedenberger Str.",
+  "Friedensstr.",
+  "Friedhofstr.",
+  "Friedlandstr.",
+  "Friedlieb-Ferdinand-Runge-Str.",
+  "Friedrich-Bayer-Str.",
+  "Friedrich-Bergius-Platz",
+  "Friedrich-Ebert-Platz",
+  "Friedrich-Ebert-Str.",
+  "Friedrich-Engels-Str.",
+  "Friedrich-List-Str.",
+  "Friedrich-Naumann-Str.",
+  "Friedrich-Sertürner-Str.",
+  "Friedrichstr.",
+  "Friedrich-Weskott-Str.",
+  "Friesenweg",
+  "Frischenberg",
+  "Fritz-Erler-Str.",
+  "Fritz-Henseler-Str.",
+  "Fröbelstr.",
+  "Fürstenbergplatz",
+  "Fürstenbergstr.",
+  "Gabriele-Münter-Str.",
+  "Gartenstr.",
+  "Gebhardstr.",
+  "Geibelstr.",
+  "Gellertstr.",
+  "Georg-von-Vollmar-Str.",
+  "Gerhard-Domagk-Str.",
+  "Gerhart-Hauptmann-Str.",
+  "Gerichtsstr.",
+  "Geschwister-Scholl-Str.",
+  "Gezelinallee",
+  "Gierener Weg",
+  "Ginsterweg",
+  "Gisbert-Cremer-Str.",
+  "Glücksburger Str.",
+  "Gluckstr.",
+  "Gneisenaustr.",
+  "Goetheplatz",
+  "Goethestr.",
+  "Golo-Mann-Str.",
+  "Görlitzer Str.",
+  "Görresstr.",
+  "Graebestr.",
+  "Graf-Galen-Platz",
+  "Gregor-Mendel-Str.",
+  "Greifswalder Str.",
+  "Grillenweg",
+  "Gronenborner Weg",
+  "Große Kirchstr.",
+  "Grunder Wiesen",
+  "Grundermühle",
+  "Grundermühlenhof",
+  "Grundermühlenweg",
+  "Grüner Weg",
+  "Grunewaldstr.",
+  "Grünstr.",
+  "Günther-Weisenborn-Str.",
+  "Gustav-Freytag-Str.",
+  "Gustav-Heinemann-Str.",
+  "Gustav-Radbruch-Str.",
+  "Gut Reuschenberg",
+  "Gutenbergstr.",
+  "Haberstr.",
+  "Habichtgasse",
+  "Hafenstr.",
+  "Hagenauer Str.",
+  "Hahnenblecher",
+  "Halenseestr.",
+  "Halfenleimbach",
+  "Hallesche Str.",
+  "Halligstr.",
+  "Hamberger Str.",
+  "Hammerweg",
+  "Händelstr.",
+  "Hannah-Höch-Str.",
+  "Hans-Arp-Str.",
+  "Hans-Gerhard-Str.",
+  "Hans-Sachs-Str.",
+  "Hans-Schlehahn-Str.",
+  "Hans-von-Dohnanyi-Str.",
+  "Hardenbergstr.",
+  "Haselweg",
+  "Hauptstr.",
+  "Haus-Vorster-Str.",
+  "Hauweg",
+  "Havelstr.",
+  "Havensteinstr.",
+  "Haydnstr.",
+  "Hebbelstr.",
+  "Heckenweg",
+  "Heerweg",
+  "Hegelstr.",
+  "Heidberg",
+  "Heidehöhe",
+  "Heidestr.",
+  "Heimstättenweg",
+  "Heinrich-Böll-Str.",
+  "Heinrich-Brüning-Str.",
+  "Heinrich-Claes-Str.",
+  "Heinrich-Heine-Str.",
+  "Heinrich-Hörlein-Str.",
+  "Heinrich-Lübke-Str.",
+  "Heinrich-Lützenkirchen-Weg",
+  "Heinrichstr.",
+  "Heinrich-Strerath-Str.",
+  "Heinrich-von-Kleist-Str.",
+  "Heinrich-von-Stephan-Str.",
+  "Heisterbachstr.",
+  "Helenenstr.",
+  "Helmestr.",
+  "Hemmelrather Weg",
+  "Henry-T.-v.-Böttinger-Str.",
+  "Herderstr.",
+  "Heribertstr.",
+  "Hermann-Ehlers-Str.",
+  "Hermann-Hesse-Str.",
+  "Hermann-König-Str.",
+  "Hermann-Löns-Str.",
+  "Hermann-Milde-Str.",
+  "Hermann-Nörrenberg-Str.",
+  "Hermann-von-Helmholtz-Str.",
+  "Hermann-Waibel-Str.",
+  "Herzogstr.",
+  "Heymannstr.",
+  "Hindenburgstr.",
+  "Hirzenberg",
+  "Hitdorfer Kirchweg",
+  "Hitdorfer Str.",
+  "Höfer Mühle",
+  "Höfer Weg",
+  "Hohe Str.",
+  "Höhenstr.",
+  "Höltgestal",
+  "Holunderweg",
+  "Holzer Weg",
+  "Holzer Wiesen",
+  "Hornpottweg",
+  "Hubertusweg",
+  "Hufelandstr.",
+  "Hufer Weg",
+  "Humboldtstr.",
+  "Hummelsheim",
+  "Hummelweg",
+  "Humperdinckstr.",
+  "Hüscheider Gärten",
+  "Hüscheider Str.",
+  "Hütte",
+  "Ilmstr.",
+  "Im Bergischen Heim",
+  "Im Bruch",
+  "Im Buchenhain",
+  "Im Bühl",
+  "Im Burgfeld",
+  "Im Dorf",
+  "Im Eisholz",
+  "Im Friedenstal",
+  "Im Frohental",
+  "Im Grunde",
+  "Im Hederichsfeld",
+  "Im Jücherfeld",
+  "Im Kalkfeld",
+  "Im Kirberg",
+  "Im Kirchfeld",
+  "Im Kreuzbruch",
+  "Im Mühlenfeld",
+  "Im Nesselrader Kamp",
+  "Im Oberdorf",
+  "Im Oberfeld",
+  "Im Rosengarten",
+  "Im Rottland",
+  "Im Scheffengarten",
+  "Im Staderfeld",
+  "Im Steinfeld",
+  "Im Weidenblech",
+  "Im Winkel",
+  "Im Ziegelfeld",
+  "Imbach",
+  "Imbacher Weg",
+  "Immenweg",
+  "In den Blechenhöfen",
+  "In den Dehlen",
+  "In der Birkenau",
+  "In der Dasladen",
+  "In der Felderhütten",
+  "In der Hartmannswiese",
+  "In der Höhle",
+  "In der Schaafsdellen",
+  "In der Wasserkuhl",
+  "In der Wüste",
+  "In Holzhausen",
+  "Insterstr.",
+  "Jacob-Fröhlen-Str.",
+  "Jägerstr.",
+  "Jahnstr.",
+  "Jakob-Eulenberg-Weg",
+  "Jakobistr.",
+  "Jakob-Kaiser-Str.",
+  "Jenaer Str.",
+  "Johannes-Baptist-Str.",
+  "Johannes-Dott-Str.",
+  "Johannes-Popitz-Str.",
+  "Johannes-Wislicenus-Str.",
+  "Johannisburger Str.",
+  "Johann-Janssen-Str.",
+  "Johann-Wirtz-Weg",
+  "Josefstr.",
+  "Jüch",
+  "Julius-Doms-Str.",
+  "Julius-Leber-Str.",
+  "Kaiserplatz",
+  "Kaiserstr.",
+  "Kaiser-Wilhelm-Allee",
+  "Kalkstr.",
+  "Kämpchenstr.",
+  "Kämpenwiese",
+  "Kämper Weg",
+  "Kamptalweg",
+  "Kanalstr.",
+  "Kandinskystr.",
+  "Kantstr.",
+  "Kapellenstr.",
+  "Karl-Arnold-Str.",
+  "Karl-Bosch-Str.",
+  "Karl-Bückart-Str.",
+  "Karl-Carstens-Ring",
+  "Karl-Friedrich-Goerdeler-Str.",
+  "Karl-Jaspers-Str.",
+  "Karl-König-Str.",
+  "Karl-Krekeler-Str.",
+  "Karl-Marx-Str.",
+  "Karlstr.",
+  "Karl-Ulitzka-Str.",
+  "Karl-Wichmann-Str.",
+  "Karl-Wingchen-Str.",
+  "Käsenbrod",
+  "Käthe-Kollwitz-Str.",
+  "Katzbachstr.",
+  "Kerschensteinerstr.",
+  "Kiefernweg",
+  "Kieler Str.",
+  "Kieselstr.",
+  "Kiesweg",
+  "Kinderhausen",
+  "Kleiberweg",
+  "Kleine Kirchstr.",
+  "Kleingansweg",
+  "Kleinheider Weg",
+  "Klief",
+  "Kneippstr.",
+  "Knochenbergsweg",
+  "Kochergarten",
+  "Kocherstr.",
+  "Kockelsberg",
+  "Kolberger Str.",
+  "Kolmarer Str.",
+  "Kölner Gasse",
+  "Kölner Str.",
+  "Kolpingstr.",
+  "Königsberger Platz",
+  "Konrad-Adenauer-Platz",
+  "Köpenicker Str.",
+  "Kopernikusstr.",
+  "Körnerstr.",
+  "Köschenberg",
+  "Köttershof",
+  "Kreuzbroicher Str.",
+  "Kreuzkamp",
+  "Krummer Weg",
+  "Kruppstr.",
+  "Kuhlmannweg",
+  "Kump",
+  "Kumper Weg",
+  "Kunstfeldstr.",
+  "Küppersteger Str.",
+  "Kursiefen",
+  "Kursiefer Weg",
+  "Kurtekottenweg",
+  "Kurt-Schumacher-Ring",
+  "Kyllstr.",
+  "Langenfelder Str.",
+  "Längsleimbach",
+  "Lärchenweg",
+  "Legienstr.",
+  "Lehner Mühle",
+  "Leichlinger Str.",
+  "Leimbacher Hof",
+  "Leinestr.",
+  "Leineweberstr.",
+  "Leipziger Str.",
+  "Lerchengasse",
+  "Lessingstr.",
+  "Libellenweg",
+  "Lichstr.",
+  "Liebigstr.",
+  "Lindenstr.",
+  "Lingenfeld",
+  "Linienstr.",
+  "Lippe",
+  "Löchergraben",
+  "Löfflerstr.",
+  "Loheweg",
+  "Lohrbergstr.",
+  "Lohrstr.",
+  "Löhstr.",
+  "Lortzingstr.",
+  "Lötzener Str.",
+  "Löwenburgstr.",
+  "Lucasstr.",
+  "Ludwig-Erhard-Platz",
+  "Ludwig-Girtler-Str.",
+  "Ludwig-Knorr-Str.",
+  "Luisenstr.",
+  "Lupinenweg",
+  "Lurchenweg",
+  "Lützenkirchener Str.",
+  "Lycker Str.",
+  "Maashofstr.",
+  "Manforter Str.",
+  "Marc-Chagall-Str.",
+  "Maria-Dresen-Str.",
+  "Maria-Terwiel-Str.",
+  "Marie-Curie-Str.",
+  "Marienburger Str.",
+  "Mariendorfer Str.",
+  "Marienwerderstr.",
+  "Marie-Schlei-Str.",
+  "Marktplatz",
+  "Markusweg",
+  "Martin-Buber-Str.",
+  "Martin-Heidegger-Str.",
+  "Martin-Luther-Str.",
+  "Masurenstr.",
+  "Mathildenweg",
+  "Maurinusstr.",
+  "Mauspfad",
+  "Max-Beckmann-Str.",
+  "Max-Delbrück-Str.",
+  "Max-Ernst-Str.",
+  "Max-Holthausen-Platz",
+  "Max-Horkheimer-Str.",
+  "Max-Liebermann-Str.",
+  "Max-Pechstein-Str.",
+  "Max-Planck-Str.",
+  "Max-Scheler-Str.",
+  "Max-Schönenberg-Str.",
+  "Maybachstr.",
+  "Meckhofer Feld",
+  "Meisenweg",
+  "Memelstr.",
+  "Menchendahler Str.",
+  "Mendelssohnstr.",
+  "Merziger Str.",
+  "Mettlacher Str.",
+  "Metzer Str.",
+  "Michaelsweg",
+  "Miselohestr.",
+  "Mittelstr.",
+  "Mohlenstr.",
+  "Moltkestr.",
+  "Monheimer Str.",
+  "Montanusstr.",
+  "Montessoriweg",
+  "Moosweg",
+  "Morsbroicher Str.",
+  "Moselstr.",
+  "Moskauer Str.",
+  "Mozartstr.",
+  "Mühlenweg",
+  "Muhrgasse",
+  "Muldestr.",
+  "Mülhausener Str.",
+  "Mülheimer Str.",
+  "Münsters Gäßchen",
+  "Münzstr.",
+  "Müritzstr.",
+  "Myliusstr.",
+  "Nachtigallenweg",
+  "Nauener Str.",
+  "Neißestr.",
+  "Nelly-Sachs-Str.",
+  "Netzestr.",
+  "Neuendriesch",
+  "Neuenhausgasse",
+  "Neuenkamp",
+  "Neujudenhof",
+  "Neukronenberger Str.",
+  "Neustadtstr.",
+  "Nicolai-Hartmann-Str.",
+  "Niederblecher",
+  "Niederfeldstr.",
+  "Nietzschestr.",
+  "Nikolaus-Groß-Str.",
+  "Nobelstr.",
+  "Norderneystr.",
+  "Nordstr.",
+  "Ober dem Hof",
+  "Obere Lindenstr.",
+  "Obere Str.",
+  "Oberölbach",
+  "Odenthaler Str.",
+  "Oderstr.",
+  "Okerstr.",
+  "Olof-Palme-Str.",
+  "Ophovener Str.",
+  "Opladener Platz",
+  "Opladener Str.",
+  "Ortelsburger Str.",
+  "Oskar-Moll-Str.",
+  "Oskar-Schlemmer-Str.",
+  "Oststr.",
+  "Oswald-Spengler-Str.",
+  "Otto-Dix-Str.",
+  "Otto-Grimm-Str.",
+  "Otto-Hahn-Str.",
+  "Otto-Müller-Str.",
+  "Otto-Stange-Str.",
+  "Ottostr.",
+  "Otto-Varnhagen-Str.",
+  "Otto-Wels-Str.",
+  "Ottweilerstr.",
+  "Oulustr.",
+  "Overfeldweg",
+  "Pappelweg",
+  "Paracelsusstr.",
+  "Parkstr.",
+  "Pastor-Louis-Str.",
+  "Pastor-Scheibler-Str.",
+  "Pastorskamp",
+  "Paul-Klee-Str.",
+  "Paul-Löbe-Str.",
+  "Paulstr.",
+  "Peenestr.",
+  "Pescher Busch",
+  "Peschstr.",
+  "Pestalozzistr.",
+  "Peter-Grieß-Str.",
+  "Peter-Joseph-Lenné-Str.",
+  "Peter-Neuenheuser-Str.",
+  "Petersbergstr.",
+  "Peterstr.",
+  "Pfarrer-Jekel-Str.",
+  "Pfarrer-Klein-Str.",
+  "Pfarrer-Röhr-Str.",
+  "Pfeilshofstr.",
+  "Philipp-Ott-Str.",
+  "Piet-Mondrian-Str.",
+  "Platanenweg",
+  "Pommernstr.",
+  "Porschestr.",
+  "Poststr.",
+  "Potsdamer Str.",
+  "Pregelstr.",
+  "Prießnitzstr.",
+  "Pützdelle",
+  "Quarzstr.",
+  "Quettinger Str.",
+  "Rat-Deycks-Str.",
+  "Rathenaustr.",
+  "Ratherkämp",
+  "Ratiborer Str.",
+  "Raushofstr.",
+  "Regensburger Str.",
+  "Reinickendorfer Str.",
+  "Renkgasse",
+  "Rennbaumplatz",
+  "Rennbaumstr.",
+  "Reuschenberger Str.",
+  "Reusrather Str.",
+  "Reuterstr.",
+  "Rheinallee",
+  "Rheindorfer Str.",
+  "Rheinstr.",
+  "Rhein-Wupper-Platz",
+  "Richard-Wagner-Str.",
+  "Rilkestr.",
+  "Ringstr.",
+  "Robert-Blum-Str.",
+  "Robert-Koch-Str.",
+  "Robert-Medenwald-Str.",
+  "Rolandstr.",
+  "Romberg",
+  "Röntgenstr.",
+  "Roonstr.",
+  "Ropenstall",
+  "Ropenstaller Weg",
+  "Rosenthal",
+  "Rostocker Str.",
+  "Rotdornweg",
+  "Röttgerweg",
+  "Rückertstr.",
+  "Rudolf-Breitscheid-Str.",
+  "Rudolf-Mann-Platz",
+  "Rudolf-Stracke-Str.",
+  "Ruhlachplatz",
+  "Ruhlachstr.",
+  "Rüttersweg",
+  "Saalestr.",
+  "Saarbrücker Str.",
+  "Saarlauterner Str.",
+  "Saarstr.",
+  "Salamanderweg",
+  "Samlandstr.",
+  "Sanddornstr.",
+  "Sandstr.",
+  "Sauerbruchstr.",
+  "Schäfershütte",
+  "Scharnhorststr.",
+  "Scheffershof",
+  "Scheidemannstr.",
+  "Schellingstr.",
+  "Schenkendorfstr.",
+  "Schießbergstr.",
+  "Schillerstr.",
+  "Schlangenhecke",
+  "Schlebuscher Heide",
+  "Schlebuscher Str.",
+  "Schlebuschrath",
+  "Schlehdornstr.",
+  "Schleiermacherstr.",
+  "Schloßstr.",
+  "Schmalenbruch",
+  "Schnepfenflucht",
+  "Schöffenweg",
+  "Schöllerstr.",
+  "Schöne Aussicht",
+  "Schöneberger Str.",
+  "Schopenhauerstr.",
+  "Schubertplatz",
+  "Schubertstr.",
+  "Schulberg",
+  "Schulstr.",
+  "Schumannstr.",
+  "Schwalbenweg",
+  "Schwarzastr.",
+  "Sebastianusweg",
+  "Semmelweisstr.",
+  "Siebelplatz",
+  "Siemensstr.",
+  "Solinger Str.",
+  "Sonderburger Str.",
+  "Spandauer Str.",
+  "Speestr.",
+  "Sperberweg",
+  "Sperlingsweg",
+  "Spitzwegstr.",
+  "Sporrenberger Mühle",
+  "Spreestr.",
+  "St. Ingberter Str.",
+  "Starenweg",
+  "Stauffenbergstr.",
+  "Stefan-Zweig-Str.",
+  "Stegerwaldstr.",
+  "Steglitzer Str.",
+  "Steinbücheler Feld",
+  "Steinbücheler Str.",
+  "Steinstr.",
+  "Steinweg",
+  "Stephan-Lochner-Str.",
+  "Stephanusstr.",
+  "Stettiner Str.",
+  "Stixchesstr.",
+  "Stöckenstr.",
+  "Stralsunder Str.",
+  "Straßburger Str.",
+  "Stresemannplatz",
+  "Strombergstr.",
+  "Stromstr.",
+  "Stüttekofener Str.",
+  "Sudestr.",
+  "Sürderstr.",
+  "Syltstr.",
+  "Talstr.",
+  "Tannenbergstr.",
+  "Tannenweg",
+  "Taubenweg",
+  "Teitscheider Weg",
+  "Telegrafenstr.",
+  "Teltower Str.",
+  "Tempelhofer Str.",
+  "Theodor-Adorno-Str.",
+  "Theodor-Fliedner-Str.",
+  "Theodor-Gierath-Str.",
+  "Theodor-Haubach-Str.",
+  "Theodor-Heuss-Ring",
+  "Theodor-Storm-Str.",
+  "Theodorstr.",
+  "Thomas-Dehler-Str.",
+  "Thomas-Morus-Str.",
+  "Thomas-von-Aquin-Str.",
+  "Tönges Feld",
+  "Torstr.",
+  "Treptower Str.",
+  "Treuburger Str.",
+  "Uhlandstr.",
+  "Ulmenweg",
+  "Ulmer Str.",
+  "Ulrichstr.",
+  "Ulrich-von-Hassell-Str.",
+  "Umlag",
+  "Unstrutstr.",
+  "Unter dem Schildchen",
+  "Unterölbach",
+  "Unterstr.",
+  "Uppersberg",
+  "Van\\'t-Hoff-Str.",
+  "Veit-Stoß-Str.",
+  "Vereinsstr.",
+  "Viktor-Meyer-Str.",
+  "Vincent-van-Gogh-Str.",
+  "Virchowstr.",
+  "Voigtslach",
+  "Volhardstr.",
+  "Völklinger Str.",
+  "Von-Brentano-Str.",
+  "Von-Diergardt-Str.",
+  "Von-Eichendorff-Str.",
+  "Von-Ketteler-Str.",
+  "Von-Knoeringen-Str.",
+  "Von-Pettenkofer-Str.",
+  "Von-Siebold-Str.",
+  "Wacholderweg",
+  "Waldstr.",
+  "Walter-Flex-Str.",
+  "Walter-Hempel-Str.",
+  "Walter-Hochapfel-Str.",
+  "Walter-Nernst-Str.",
+  "Wannseestr.",
+  "Warnowstr.",
+  "Warthestr.",
+  "Weddigenstr.",
+  "Weichselstr.",
+  "Weidenstr.",
+  "Weidfeldstr.",
+  "Weiherfeld",
+  "Weiherstr.",
+  "Weinhäuser Str.",
+  "Weißdornweg",
+  "Weißenseestr.",
+  "Weizkamp",
+  "Werftstr.",
+  "Werkstättenstr.",
+  "Werner-Heisenberg-Str.",
+  "Werrastr.",
+  "Weyerweg",
+  "Widdauener Str.",
+  "Wiebertshof",
+  "Wiehbachtal",
+  "Wiembachallee",
+  "Wiesdorfer Platz",
+  "Wiesenstr.",
+  "Wilhelm-Busch-Str.",
+  "Wilhelm-Hastrich-Str.",
+  "Wilhelm-Leuschner-Str.",
+  "Wilhelm-Liebknecht-Str.",
+  "Wilhelmsgasse",
+  "Wilhelmstr.",
+  "Willi-Baumeister-Str.",
+  "Willy-Brandt-Ring",
+  "Winand-Rossi-Str.",
+  "Windthorststr.",
+  "Winkelweg",
+  "Winterberg",
+  "Wittenbergstr.",
+  "Wolf-Vostell-Str.",
+  "Wolkenburgstr.",
+  "Wupperstr.",
+  "Wuppertalstr.",
+  "Wüstenhof",
+  "Yitzhak-Rabin-Str.",
+  "Zauberkuhle",
+  "Zedernweg",
+  "Zehlendorfer Str.",
+  "Zehntenweg",
+  "Zeisigweg",
+  "Zeppelinstr.",
+  "Zschopaustr.",
+  "Zum Claashäuschen",
+  "Zündhütchenweg",
+  "Zur Alten Brauerei",
+  "Zur alten Fabrik"
+];
+
+},{}],111:[function(require,module,exports){
+module["exports"] = [
+  "+49-1##-#######",
+  "+49-1###-########"
+];
+
+},{}],112:[function(require,module,exports){
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.formats = require("./formats");
+
+},{"./formats":111}],113:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.legal_form = require("./legal_form");
+company.name = require("./name");
+
+},{"./legal_form":114,"./name":115,"./suffix":116}],114:[function(require,module,exports){
+module["exports"] = [
+  "GmbH",
+  "AG",
+  "Gruppe",
+  "KG",
+  "GmbH & Co. KG",
+  "UG",
+  "OHG"
+];
+
+},{}],115:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name}-#{Name.last_name}",
+  "#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"
+];
+
+},{}],116:[function(require,module,exports){
+module.exports=require(114)
+},{"/Users/a/dev/faker.js/lib/locales/de/company/legal_form.js":114}],117:[function(require,module,exports){
+var de = {};
+module['exports'] = de;
+de.title = "German";
+de.address = require("./address");
+de.company = require("./company");
+de.internet = require("./internet");
+de.lorem = require("./lorem");
+de.name = require("./name");
+de.phone_number = require("./phone_number");
+de.cell_phone = require("./cell_phone");
+},{"./address":103,"./cell_phone":112,"./company":113,"./internet":120,"./lorem":121,"./name":124,"./phone_number":130}],118:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "info",
+  "name",
+  "net",
+  "org",
+  "de",
+  "ch"
+];
+
+},{}],119:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com"
+];
+
+},{}],120:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":118,"./free_email":119,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],121:[function(require,module,exports){
+var lorem = {};
+module['exports'] = lorem;
+lorem.words = require("./words");
+
+},{"./words":122}],122:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],123:[function(require,module,exports){
+module["exports"] = [
+  "Aaron",
+  "Abdul",
+  "Abdullah",
+  "Adam",
+  "Adrian",
+  "Adriano",
+  "Ahmad",
+  "Ahmed",
+  "Ahmet",
+  "Alan",
+  "Albert",
+  "Alessandro",
+  "Alessio",
+  "Alex",
+  "Alexander",
+  "Alfred",
+  "Ali",
+  "Amar",
+  "Amir",
+  "Amon",
+  "Andre",
+  "Andreas",
+  "Andrew",
+  "Angelo",
+  "Ansgar",
+  "Anthony",
+  "Anton",
+  "Antonio",
+  "Arda",
+  "Arian",
+  "Armin",
+  "Arne",
+  "Arno",
+  "Arthur",
+  "Artur",
+  "Arved",
+  "Arvid",
+  "Ayman",
+  "Baran",
+  "Baris",
+  "Bastian",
+  "Batuhan",
+  "Bela",
+  "Ben",
+  "Benedikt",
+  "Benjamin",
+  "Bennet",
+  "Bennett",
+  "Benno",
+  "Bent",
+  "Berat",
+  "Berkay",
+  "Bernd",
+  "Bilal",
+  "Bjarne",
+  "Björn",
+  "Bo",
+  "Boris",
+  "Brandon",
+  "Brian",
+  "Bruno",
+  "Bryan",
+  "Burak",
+  "Calvin",
+  "Can",
+  "Carl",
+  "Carlo",
+  "Carlos",
+  "Caspar",
+  "Cedric",
+  "Cedrik",
+  "Cem",
+  "Charlie",
+  "Chris",
+  "Christian",
+  "Christiano",
+  "Christoph",
+  "Christopher",
+  "Claas",
+  "Clemens",
+  "Colin",
+  "Collin",
+  "Conner",
+  "Connor",
+  "Constantin",
+  "Corvin",
+  "Curt",
+  "Damian",
+  "Damien",
+  "Daniel",
+  "Danilo",
+  "Danny",
+  "Darian",
+  "Dario",
+  "Darius",
+  "Darren",
+  "David",
+  "Davide",
+  "Davin",
+  "Dean",
+  "Deniz",
+  "Dennis",
+  "Denny",
+  "Devin",
+  "Diego",
+  "Dion",
+  "Domenic",
+  "Domenik",
+  "Dominic",
+  "Dominik",
+  "Dorian",
+  "Dustin",
+  "Dylan",
+  "Ecrin",
+  "Eddi",
+  "Eddy",
+  "Edgar",
+  "Edwin",
+  "Efe",
+  "Ege",
+  "Elia",
+  "Eliah",
+  "Elias",
+  "Elijah",
+  "Emanuel",
+  "Emil",
+  "Emilian",
+  "Emilio",
+  "Emir",
+  "Emirhan",
+  "Emre",
+  "Enes",
+  "Enno",
+  "Enrico",
+  "Eren",
+  "Eric",
+  "Erik",
+  "Etienne",
+  "Fabian",
+  "Fabien",
+  "Fabio",
+  "Fabrice",
+  "Falk",
+  "Felix",
+  "Ferdinand",
+  "Fiete",
+  "Filip",
+  "Finlay",
+  "Finley",
+  "Finn",
+  "Finnley",
+  "Florian",
+  "Francesco",
+  "Franz",
+  "Frederic",
+  "Frederick",
+  "Frederik",
+  "Friedrich",
+  "Fritz",
+  "Furkan",
+  "Fynn",
+  "Gabriel",
+  "Georg",
+  "Gerrit",
+  "Gian",
+  "Gianluca",
+  "Gino",
+  "Giuliano",
+  "Giuseppe",
+  "Gregor",
+  "Gustav",
+  "Hagen",
+  "Hamza",
+  "Hannes",
+  "Hanno",
+  "Hans",
+  "Hasan",
+  "Hassan",
+  "Hauke",
+  "Hendrik",
+  "Hennes",
+  "Henning",
+  "Henri",
+  "Henrick",
+  "Henrik",
+  "Henry",
+  "Hugo",
+  "Hussein",
+  "Ian",
+  "Ibrahim",
+  "Ilias",
+  "Ilja",
+  "Ilyas",
+  "Immanuel",
+  "Ismael",
+  "Ismail",
+  "Ivan",
+  "Iven",
+  "Jack",
+  "Jacob",
+  "Jaden",
+  "Jakob",
+  "Jamal",
+  "James",
+  "Jamie",
+  "Jan",
+  "Janek",
+  "Janis",
+  "Janne",
+  "Jannek",
+  "Jannes",
+  "Jannik",
+  "Jannis",
+  "Jano",
+  "Janosch",
+  "Jared",
+  "Jari",
+  "Jarne",
+  "Jarno",
+  "Jaron",
+  "Jason",
+  "Jasper",
+  "Jay",
+  "Jayden",
+  "Jayson",
+  "Jean",
+  "Jens",
+  "Jeremias",
+  "Jeremie",
+  "Jeremy",
+  "Jermaine",
+  "Jerome",
+  "Jesper",
+  "Jesse",
+  "Jim",
+  "Jimmy",
+  "Joe",
+  "Joel",
+  "Joey",
+  "Johann",
+  "Johannes",
+  "John",
+  "Johnny",
+  "Jon",
+  "Jona",
+  "Jonah",
+  "Jonas",
+  "Jonathan",
+  "Jonte",
+  "Joost",
+  "Jordan",
+  "Joris",
+  "Joscha",
+  "Joschua",
+  "Josef",
+  "Joseph",
+  "Josh",
+  "Joshua",
+  "Josua",
+  "Juan",
+  "Julian",
+  "Julien",
+  "Julius",
+  "Juri",
+  "Justin",
+  "Justus",
+  "Kaan",
+  "Kai",
+  "Kalle",
+  "Karim",
+  "Karl",
+  "Karlo",
+  "Kay",
+  "Keanu",
+  "Kenan",
+  "Kenny",
+  "Keno",
+  "Kerem",
+  "Kerim",
+  "Kevin",
+  "Kian",
+  "Kilian",
+  "Kim",
+  "Kimi",
+  "Kjell",
+  "Klaas",
+  "Klemens",
+  "Konrad",
+  "Konstantin",
+  "Koray",
+  "Korbinian",
+  "Kurt",
+  "Lars",
+  "Lasse",
+  "Laurence",
+  "Laurens",
+  "Laurenz",
+  "Laurin",
+  "Lean",
+  "Leander",
+  "Leandro",
+  "Leif",
+  "Len",
+  "Lenn",
+  "Lennard",
+  "Lennart",
+  "Lennert",
+  "Lennie",
+  "Lennox",
+  "Lenny",
+  "Leo",
+  "Leon",
+  "Leonard",
+  "Leonardo",
+  "Leonhard",
+  "Leonidas",
+  "Leopold",
+  "Leroy",
+  "Levent",
+  "Levi",
+  "Levin",
+  "Lewin",
+  "Lewis",
+  "Liam",
+  "Lian",
+  "Lias",
+  "Lino",
+  "Linus",
+  "Lio",
+  "Lion",
+  "Lionel",
+  "Logan",
+  "Lorenz",
+  "Lorenzo",
+  "Loris",
+  "Louis",
+  "Luan",
+  "Luc",
+  "Luca",
+  "Lucas",
+  "Lucian",
+  "Lucien",
+  "Ludwig",
+  "Luis",
+  "Luiz",
+  "Luk",
+  "Luka",
+  "Lukas",
+  "Luke",
+  "Lutz",
+  "Maddox",
+  "Mads",
+  "Magnus",
+  "Maik",
+  "Maksim",
+  "Malik",
+  "Malte",
+  "Manuel",
+  "Marc",
+  "Marcel",
+  "Marco",
+  "Marcus",
+  "Marek",
+  "Marian",
+  "Mario",
+  "Marius",
+  "Mark",
+  "Marko",
+  "Markus",
+  "Marlo",
+  "Marlon",
+  "Marten",
+  "Martin",
+  "Marvin",
+  "Marwin",
+  "Mateo",
+  "Mathis",
+  "Matis",
+  "Mats",
+  "Matteo",
+  "Mattes",
+  "Matthias",
+  "Matthis",
+  "Matti",
+  "Mattis",
+  "Maurice",
+  "Max",
+  "Maxim",
+  "Maximilian",
+  "Mehmet",
+  "Meik",
+  "Melvin",
+  "Merlin",
+  "Mert",
+  "Michael",
+  "Michel",
+  "Mick",
+  "Miguel",
+  "Mika",
+  "Mikail",
+  "Mike",
+  "Milan",
+  "Milo",
+  "Mio",
+  "Mirac",
+  "Mirco",
+  "Mirko",
+  "Mohamed",
+  "Mohammad",
+  "Mohammed",
+  "Moritz",
+  "Morten",
+  "Muhammed",
+  "Murat",
+  "Mustafa",
+  "Nathan",
+  "Nathanael",
+  "Nelson",
+  "Neo",
+  "Nevio",
+  "Nick",
+  "Niclas",
+  "Nico",
+  "Nicolai",
+  "Nicolas",
+  "Niels",
+  "Nikita",
+  "Niklas",
+  "Niko",
+  "Nikolai",
+  "Nikolas",
+  "Nils",
+  "Nino",
+  "Noah",
+  "Noel",
+  "Norman",
+  "Odin",
+  "Oke",
+  "Ole",
+  "Oliver",
+  "Omar",
+  "Onur",
+  "Oscar",
+  "Oskar",
+  "Pascal",
+  "Patrice",
+  "Patrick",
+  "Paul",
+  "Peer",
+  "Pepe",
+  "Peter",
+  "Phil",
+  "Philip",
+  "Philipp",
+  "Pierre",
+  "Piet",
+  "Pit",
+  "Pius",
+  "Quentin",
+  "Quirin",
+  "Rafael",
+  "Raik",
+  "Ramon",
+  "Raphael",
+  "Rasmus",
+  "Raul",
+  "Rayan",
+  "René",
+  "Ricardo",
+  "Riccardo",
+  "Richard",
+  "Rick",
+  "Rico",
+  "Robert",
+  "Robin",
+  "Rocco",
+  "Roman",
+  "Romeo",
+  "Ron",
+  "Ruben",
+  "Ryan",
+  "Said",
+  "Salih",
+  "Sam",
+  "Sami",
+  "Sammy",
+  "Samuel",
+  "Sandro",
+  "Santino",
+  "Sascha",
+  "Sean",
+  "Sebastian",
+  "Selim",
+  "Semih",
+  "Shawn",
+  "Silas",
+  "Simeon",
+  "Simon",
+  "Sinan",
+  "Sky",
+  "Stefan",
+  "Steffen",
+  "Stephan",
+  "Steve",
+  "Steven",
+  "Sven",
+  "Sönke",
+  "Sören",
+  "Taha",
+  "Tamino",
+  "Tammo",
+  "Tarik",
+  "Tayler",
+  "Taylor",
+  "Teo",
+  "Theo",
+  "Theodor",
+  "Thies",
+  "Thilo",
+  "Thomas",
+  "Thorben",
+  "Thore",
+  "Thorge",
+  "Tiago",
+  "Til",
+  "Till",
+  "Tillmann",
+  "Tim",
+  "Timm",
+  "Timo",
+  "Timon",
+  "Timothy",
+  "Tino",
+  "Titus",
+  "Tizian",
+  "Tjark",
+  "Tobias",
+  "Tom",
+  "Tommy",
+  "Toni",
+  "Tony",
+  "Torben",
+  "Tore",
+  "Tristan",
+  "Tyler",
+  "Tyron",
+  "Umut",
+  "Valentin",
+  "Valentino",
+  "Veit",
+  "Victor",
+  "Viktor",
+  "Vin",
+  "Vincent",
+  "Vito",
+  "Vitus",
+  "Wilhelm",
+  "Willi",
+  "William",
+  "Willy",
+  "Xaver",
+  "Yannic",
+  "Yannick",
+  "Yannik",
+  "Yannis",
+  "Yasin",
+  "Youssef",
+  "Yunus",
+  "Yusuf",
+  "Yven",
+  "Yves",
+  "Ömer",
+  "Aaliyah",
+  "Abby",
+  "Abigail",
+  "Ada",
+  "Adelina",
+  "Adriana",
+  "Aileen",
+  "Aimee",
+  "Alana",
+  "Alea",
+  "Alena",
+  "Alessa",
+  "Alessia",
+  "Alexa",
+  "Alexandra",
+  "Alexia",
+  "Alexis",
+  "Aleyna",
+  "Alia",
+  "Alica",
+  "Alice",
+  "Alicia",
+  "Alina",
+  "Alisa",
+  "Alisha",
+  "Alissa",
+  "Aliya",
+  "Aliyah",
+  "Allegra",
+  "Alma",
+  "Alyssa",
+  "Amalia",
+  "Amanda",
+  "Amelia",
+  "Amelie",
+  "Amina",
+  "Amira",
+  "Amy",
+  "Ana",
+  "Anabel",
+  "Anastasia",
+  "Andrea",
+  "Angela",
+  "Angelina",
+  "Angelique",
+  "Anja",
+  "Ann",
+  "Anna",
+  "Annabel",
+  "Annabell",
+  "Annabelle",
+  "Annalena",
+  "Anne",
+  "Anneke",
+  "Annelie",
+  "Annemarie",
+  "Anni",
+  "Annie",
+  "Annika",
+  "Anny",
+  "Anouk",
+  "Antonia",
+  "Arda",
+  "Ariana",
+  "Ariane",
+  "Arwen",
+  "Ashley",
+  "Asya",
+  "Aurelia",
+  "Aurora",
+  "Ava",
+  "Ayleen",
+  "Aylin",
+  "Ayse",
+  "Azra",
+  "Betty",
+  "Bianca",
+  "Bianka",
+  "Caitlin",
+  "Cara",
+  "Carina",
+  "Carla",
+  "Carlotta",
+  "Carmen",
+  "Carolin",
+  "Carolina",
+  "Caroline",
+  "Cassandra",
+  "Catharina",
+  "Catrin",
+  "Cecile",
+  "Cecilia",
+  "Celia",
+  "Celina",
+  "Celine",
+  "Ceyda",
+  "Ceylin",
+  "Chantal",
+  "Charleen",
+  "Charlotta",
+  "Charlotte",
+  "Chayenne",
+  "Cheyenne",
+  "Chiara",
+  "Christin",
+  "Christina",
+  "Cindy",
+  "Claire",
+  "Clara",
+  "Clarissa",
+  "Colleen",
+  "Collien",
+  "Cora",
+  "Corinna",
+  "Cosima",
+  "Dana",
+  "Daniela",
+  "Daria",
+  "Darleen",
+  "Defne",
+  "Delia",
+  "Denise",
+  "Diana",
+  "Dilara",
+  "Dina",
+  "Dorothea",
+  "Ecrin",
+  "Eda",
+  "Eileen",
+  "Ela",
+  "Elaine",
+  "Elanur",
+  "Elea",
+  "Elena",
+  "Eleni",
+  "Eleonora",
+  "Eliana",
+  "Elif",
+  "Elina",
+  "Elisa",
+  "Elisabeth",
+  "Ella",
+  "Ellen",
+  "Elli",
+  "Elly",
+  "Elsa",
+  "Emelie",
+  "Emely",
+  "Emilia",
+  "Emilie",
+  "Emily",
+  "Emma",
+  "Emmely",
+  "Emmi",
+  "Emmy",
+  "Enie",
+  "Enna",
+  "Enya",
+  "Esma",
+  "Estelle",
+  "Esther",
+  "Eva",
+  "Evelin",
+  "Evelina",
+  "Eveline",
+  "Evelyn",
+  "Fabienne",
+  "Fatima",
+  "Fatma",
+  "Felicia",
+  "Felicitas",
+  "Felina",
+  "Femke",
+  "Fenja",
+  "Fine",
+  "Finia",
+  "Finja",
+  "Finnja",
+  "Fiona",
+  "Flora",
+  "Florentine",
+  "Francesca",
+  "Franka",
+  "Franziska",
+  "Frederike",
+  "Freya",
+  "Frida",
+  "Frieda",
+  "Friederike",
+  "Giada",
+  "Gina",
+  "Giulia",
+  "Giuliana",
+  "Greta",
+  "Hailey",
+  "Hana",
+  "Hanna",
+  "Hannah",
+  "Heidi",
+  "Helen",
+  "Helena",
+  "Helene",
+  "Helin",
+  "Henriette",
+  "Henrike",
+  "Hermine",
+  "Ida",
+  "Ilayda",
+  "Imke",
+  "Ina",
+  "Ines",
+  "Inga",
+  "Inka",
+  "Irem",
+  "Isa",
+  "Isabel",
+  "Isabell",
+  "Isabella",
+  "Isabelle",
+  "Ivonne",
+  "Jacqueline",
+  "Jamie",
+  "Jamila",
+  "Jana",
+  "Jane",
+  "Janin",
+  "Janina",
+  "Janine",
+  "Janna",
+  "Janne",
+  "Jara",
+  "Jasmin",
+  "Jasmina",
+  "Jasmine",
+  "Jella",
+  "Jenna",
+  "Jennifer",
+  "Jenny",
+  "Jessica",
+  "Jessy",
+  "Jette",
+  "Jil",
+  "Jill",
+  "Joana",
+  "Joanna",
+  "Joelina",
+  "Joeline",
+  "Joelle",
+  "Johanna",
+  "Joleen",
+  "Jolie",
+  "Jolien",
+  "Jolin",
+  "Jolina",
+  "Joline",
+  "Jona",
+  "Jonah",
+  "Jonna",
+  "Josefin",
+  "Josefine",
+  "Josephin",
+  "Josephine",
+  "Josie",
+  "Josy",
+  "Joy",
+  "Joyce",
+  "Judith",
+  "Judy",
+  "Jule",
+  "Julia",
+  "Juliana",
+  "Juliane",
+  "Julie",
+  "Julienne",
+  "Julika",
+  "Julina",
+  "Juna",
+  "Justine",
+  "Kaja",
+  "Karina",
+  "Karla",
+  "Karlotta",
+  "Karolina",
+  "Karoline",
+  "Kassandra",
+  "Katarina",
+  "Katharina",
+  "Kathrin",
+  "Katja",
+  "Katrin",
+  "Kaya",
+  "Kayra",
+  "Kiana",
+  "Kiara",
+  "Kim",
+  "Kimberley",
+  "Kimberly",
+  "Kira",
+  "Klara",
+  "Korinna",
+  "Kristin",
+  "Kyra",
+  "Laila",
+  "Lana",
+  "Lara",
+  "Larissa",
+  "Laura",
+  "Laureen",
+  "Lavinia",
+  "Lea",
+  "Leah",
+  "Leana",
+  "Leandra",
+  "Leann",
+  "Lee",
+  "Leila",
+  "Lena",
+  "Lene",
+  "Leni",
+  "Lenia",
+  "Lenja",
+  "Lenya",
+  "Leona",
+  "Leoni",
+  "Leonie",
+  "Leonora",
+  "Leticia",
+  "Letizia",
+  "Levke",
+  "Leyla",
+  "Lia",
+  "Liah",
+  "Liana",
+  "Lili",
+  "Lilia",
+  "Lilian",
+  "Liliana",
+  "Lilith",
+  "Lilli",
+  "Lillian",
+  "Lilly",
+  "Lily",
+  "Lina",
+  "Linda",
+  "Lindsay",
+  "Line",
+  "Linn",
+  "Linnea",
+  "Lisa",
+  "Lisann",
+  "Lisanne",
+  "Liv",
+  "Livia",
+  "Liz",
+  "Lola",
+  "Loreen",
+  "Lorena",
+  "Lotta",
+  "Lotte",
+  "Louisa",
+  "Louise",
+  "Luana",
+  "Luca",
+  "Lucia",
+  "Lucie",
+  "Lucienne",
+  "Lucy",
+  "Luisa",
+  "Luise",
+  "Luka",
+  "Luna",
+  "Luzie",
+  "Lya",
+  "Lydia",
+  "Lyn",
+  "Lynn",
+  "Madeleine",
+  "Madita",
+  "Madleen",
+  "Madlen",
+  "Magdalena",
+  "Maike",
+  "Mailin",
+  "Maira",
+  "Maja",
+  "Malena",
+  "Malia",
+  "Malin",
+  "Malina",
+  "Mandy",
+  "Mara",
+  "Marah",
+  "Mareike",
+  "Maren",
+  "Maria",
+  "Mariam",
+  "Marie",
+  "Marieke",
+  "Mariella",
+  "Marika",
+  "Marina",
+  "Marisa",
+  "Marissa",
+  "Marit",
+  "Marla",
+  "Marleen",
+  "Marlen",
+  "Marlena",
+  "Marlene",
+  "Marta",
+  "Martha",
+  "Mary",
+  "Maryam",
+  "Mathilda",
+  "Mathilde",
+  "Matilda",
+  "Maxi",
+  "Maxima",
+  "Maxine",
+  "Maya",
+  "Mayra",
+  "Medina",
+  "Medine",
+  "Meike",
+  "Melanie",
+  "Melek",
+  "Melike",
+  "Melina",
+  "Melinda",
+  "Melis",
+  "Melisa",
+  "Melissa",
+  "Merle",
+  "Merve",
+  "Meryem",
+  "Mette",
+  "Mia",
+  "Michaela",
+  "Michelle",
+  "Mieke",
+  "Mila",
+  "Milana",
+  "Milena",
+  "Milla",
+  "Mina",
+  "Mira",
+  "Miray",
+  "Miriam",
+  "Mirja",
+  "Mona",
+  "Monique",
+  "Nadine",
+  "Nadja",
+  "Naemi",
+  "Nancy",
+  "Naomi",
+  "Natalia",
+  "Natalie",
+  "Nathalie",
+  "Neele",
+  "Nela",
+  "Nele",
+  "Nelli",
+  "Nelly",
+  "Nia",
+  "Nicole",
+  "Nika",
+  "Nike",
+  "Nikita",
+  "Nila",
+  "Nina",
+  "Nisa",
+  "Noemi",
+  "Nora",
+  "Olivia",
+  "Patricia",
+  "Patrizia",
+  "Paula",
+  "Paulina",
+  "Pauline",
+  "Penelope",
+  "Philine",
+  "Phoebe",
+  "Pia",
+  "Rahel",
+  "Rania",
+  "Rebecca",
+  "Rebekka",
+  "Riana",
+  "Rieke",
+  "Rike",
+  "Romina",
+  "Romy",
+  "Ronja",
+  "Rosa",
+  "Rosalie",
+  "Ruby",
+  "Sabrina",
+  "Sahra",
+  "Sally",
+  "Salome",
+  "Samantha",
+  "Samia",
+  "Samira",
+  "Sandra",
+  "Sandy",
+  "Sanja",
+  "Saphira",
+  "Sara",
+  "Sarah",
+  "Saskia",
+  "Selin",
+  "Selina",
+  "Selma",
+  "Sena",
+  "Sidney",
+  "Sienna",
+  "Silja",
+  "Sina",
+  "Sinja",
+  "Smilla",
+  "Sofia",
+  "Sofie",
+  "Sonja",
+  "Sophia",
+  "Sophie",
+  "Soraya",
+  "Stefanie",
+  "Stella",
+  "Stephanie",
+  "Stina",
+  "Sude",
+  "Summer",
+  "Susanne",
+  "Svea",
+  "Svenja",
+  "Sydney",
+  "Tabea",
+  "Talea",
+  "Talia",
+  "Tamara",
+  "Tamia",
+  "Tamina",
+  "Tanja",
+  "Tara",
+  "Tarja",
+  "Teresa",
+  "Tessa",
+  "Thalea",
+  "Thalia",
+  "Thea",
+  "Theresa",
+  "Tia",
+  "Tina",
+  "Tomke",
+  "Tuana",
+  "Valentina",
+  "Valeria",
+  "Valerie",
+  "Vanessa",
+  "Vera",
+  "Veronika",
+  "Victoria",
+  "Viktoria",
+  "Viola",
+  "Vivian",
+  "Vivien",
+  "Vivienne",
+  "Wibke",
+  "Wiebke",
+  "Xenia",
+  "Yara",
+  "Yaren",
+  "Yasmin",
+  "Ylvi",
+  "Ylvie",
+  "Yvonne",
+  "Zara",
+  "Zehra",
+  "Zeynep",
+  "Zoe",
+  "Zoey",
+  "Zoé"
+];
+
+},{}],124:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.nobility_title_prefix = require("./nobility_title_prefix");
+name.name = require("./name");
+
+},{"./first_name":123,"./last_name":125,"./name":126,"./nobility_title_prefix":127,"./prefix":128}],125:[function(require,module,exports){
+module["exports"] = [
+  "Abel",
+  "Abicht",
+  "Abraham",
+  "Abramovic",
+  "Abt",
+  "Achilles",
+  "Achkinadze",
+  "Ackermann",
+  "Adam",
+  "Adams",
+  "Ade",
+  "Agostini",
+  "Ahlke",
+  "Ahrenberg",
+  "Ahrens",
+  "Aigner",
+  "Albert",
+  "Albrecht",
+  "Alexa",
+  "Alexander",
+  "Alizadeh",
+  "Allgeyer",
+  "Amann",
+  "Amberg",
+  "Anding",
+  "Anggreny",
+  "Apitz",
+  "Arendt",
+  "Arens",
+  "Arndt",
+  "Aryee",
+  "Aschenbroich",
+  "Assmus",
+  "Astafei",
+  "Auer",
+  "Axmann",
+  "Baarck",
+  "Bachmann",
+  "Badane",
+  "Bader",
+  "Baganz",
+  "Bahl",
+  "Bak",
+  "Balcer",
+  "Balck",
+  "Balkow",
+  "Balnuweit",
+  "Balzer",
+  "Banse",
+  "Barr",
+  "Bartels",
+  "Barth",
+  "Barylla",
+  "Baseda",
+  "Battke",
+  "Bauer",
+  "Bauermeister",
+  "Baumann",
+  "Baumeister",
+  "Bauschinger",
+  "Bauschke",
+  "Bayer",
+  "Beavogui",
+  "Beck",
+  "Beckel",
+  "Becker",
+  "Beckmann",
+  "Bedewitz",
+  "Beele",
+  "Beer",
+  "Beggerow",
+  "Beh",
+  "Behr",
+  "Behrenbruch",
+  "Belz",
+  "Bender",
+  "Benecke",
+  "Benner",
+  "Benninger",
+  "Benzing",
+  "Berends",
+  "Berger",
+  "Berner",
+  "Berning",
+  "Bertenbreiter",
+  "Best",
+  "Bethke",
+  "Betz",
+  "Beushausen",
+  "Beutelspacher",
+  "Beyer",
+  "Biba",
+  "Bichler",
+  "Bickel",
+  "Biedermann",
+  "Bieler",
+  "Bielert",
+  "Bienasch",
+  "Bienias",
+  "Biesenbach",
+  "Bigdeli",
+  "Birkemeyer",
+  "Bittner",
+  "Blank",
+  "Blaschek",
+  "Blassneck",
+  "Bloch",
+  "Blochwitz",
+  "Blockhaus",
+  "Blum",
+  "Blume",
+  "Bock",
+  "Bode",
+  "Bogdashin",
+  "Bogenrieder",
+  "Bohge",
+  "Bolm",
+  "Borgschulze",
+  "Bork",
+  "Bormann",
+  "Bornscheuer",
+  "Borrmann",
+  "Borsch",
+  "Boruschewski",
+  "Bos",
+  "Bosler",
+  "Bourrouag",
+  "Bouschen",
+  "Boxhammer",
+  "Boyde",
+  "Bozsik",
+  "Brand",
+  "Brandenburg",
+  "Brandis",
+  "Brandt",
+  "Brauer",
+  "Braun",
+  "Brehmer",
+  "Breitenstein",
+  "Bremer",
+  "Bremser",
+  "Brenner",
+  "Brettschneider",
+  "Breu",
+  "Breuer",
+  "Briesenick",
+  "Bringmann",
+  "Brinkmann",
+  "Brix",
+  "Broening",
+  "Brosch",
+  "Bruckmann",
+  "Bruder",
+  "Bruhns",
+  "Brunner",
+  "Bruns",
+  "Bräutigam",
+  "Brömme",
+  "Brüggmann",
+  "Buchholz",
+  "Buchrucker",
+  "Buder",
+  "Bultmann",
+  "Bunjes",
+  "Burger",
+  "Burghagen",
+  "Burkhard",
+  "Burkhardt",
+  "Burmeister",
+  "Busch",
+  "Buschbaum",
+  "Busemann",
+  "Buss",
+  "Busse",
+  "Bussmann",
+  "Byrd",
+  "Bäcker",
+  "Böhm",
+  "Bönisch",
+  "Börgeling",
+  "Börner",
+  "Böttner",
+  "Büchele",
+  "Bühler",
+  "Büker",
+  "Büngener",
+  "Bürger",
+  "Bürklein",
+  "Büscher",
+  "Büttner",
+  "Camara",
+  "Carlowitz",
+  "Carlsohn",
+  "Caspari",
+  "Caspers",
+  "Chapron",
+  "Christ",
+  "Cierpinski",
+  "Clarius",
+  "Cleem",
+  "Cleve",
+  "Co",
+  "Conrad",
+  "Cordes",
+  "Cornelsen",
+  "Cors",
+  "Cotthardt",
+  "Crews",
+  "Cronjäger",
+  "Crosskofp",
+  "Da",
+  "Dahm",
+  "Dahmen",
+  "Daimer",
+  "Damaske",
+  "Danneberg",
+  "Danner",
+  "Daub",
+  "Daubner",
+  "Daudrich",
+  "Dauer",
+  "Daum",
+  "Dauth",
+  "Dautzenberg",
+  "De",
+  "Decker",
+  "Deckert",
+  "Deerberg",
+  "Dehmel",
+  "Deja",
+  "Delonge",
+  "Demut",
+  "Dengler",
+  "Denner",
+  "Denzinger",
+  "Derr",
+  "Dertmann",
+  "Dethloff",
+  "Deuschle",
+  "Dieckmann",
+  "Diedrich",
+  "Diekmann",
+  "Dienel",
+  "Dies",
+  "Dietrich",
+  "Dietz",
+  "Dietzsch",
+  "Diezel",
+  "Dilla",
+  "Dingelstedt",
+  "Dippl",
+  "Dittmann",
+  "Dittmar",
+  "Dittmer",
+  "Dix",
+  "Dobbrunz",
+  "Dobler",
+  "Dohring",
+  "Dolch",
+  "Dold",
+  "Dombrowski",
+  "Donie",
+  "Doskoczynski",
+  "Dragu",
+  "Drechsler",
+  "Drees",
+  "Dreher",
+  "Dreier",
+  "Dreissigacker",
+  "Dressler",
+  "Drews",
+  "Duma",
+  "Dutkiewicz",
+  "Dyett",
+  "Dylus",
+  "Dächert",
+  "Döbel",
+  "Döring",
+  "Dörner",
+  "Dörre",
+  "Dück",
+  "Eberhard",
+  "Eberhardt",
+  "Ecker",
+  "Eckhardt",
+  "Edorh",
+  "Effler",
+  "Eggenmueller",
+  "Ehm",
+  "Ehmann",
+  "Ehrig",
+  "Eich",
+  "Eichmann",
+  "Eifert",
+  "Einert",
+  "Eisenlauer",
+  "Ekpo",
+  "Elbe",
+  "Eleyth",
+  "Elss",
+  "Emert",
+  "Emmelmann",
+  "Ender",
+  "Engel",
+  "Engelen",
+  "Engelmann",
+  "Eplinius",
+  "Erdmann",
+  "Erhardt",
+  "Erlei",
+  "Erm",
+  "Ernst",
+  "Ertl",
+  "Erwes",
+  "Esenwein",
+  "Esser",
+  "Evers",
+  "Everts",
+  "Ewald",
+  "Fahner",
+  "Faller",
+  "Falter",
+  "Farber",
+  "Fassbender",
+  "Faulhaber",
+  "Fehrig",
+  "Feld",
+  "Felke",
+  "Feller",
+  "Fenner",
+  "Fenske",
+  "Feuerbach",
+  "Fietz",
+  "Figl",
+  "Figura",
+  "Filipowski",
+  "Filsinger",
+  "Fincke",
+  "Fink",
+  "Finke",
+  "Fischer",
+  "Fitschen",
+  "Fleischer",
+  "Fleischmann",
+  "Floder",
+  "Florczak",
+  "Flore",
+  "Flottmann",
+  "Forkel",
+  "Forst",
+  "Frahmeke",
+  "Frank",
+  "Franke",
+  "Franta",
+  "Frantz",
+  "Franz",
+  "Franzis",
+  "Franzmann",
+  "Frauen",
+  "Frauendorf",
+  "Freigang",
+  "Freimann",
+  "Freimuth",
+  "Freisen",
+  "Frenzel",
+  "Frey",
+  "Fricke",
+  "Fried",
+  "Friedek",
+  "Friedenberg",
+  "Friedmann",
+  "Friedrich",
+  "Friess",
+  "Frisch",
+  "Frohn",
+  "Frosch",
+  "Fuchs",
+  "Fuhlbrügge",
+  "Fusenig",
+  "Fust",
+  "Förster",
+  "Gaba",
+  "Gabius",
+  "Gabler",
+  "Gadschiew",
+  "Gakstädter",
+  "Galander",
+  "Gamlin",
+  "Gamper",
+  "Gangnus",
+  "Ganzmann",
+  "Garatva",
+  "Gast",
+  "Gastel",
+  "Gatzka",
+  "Gauder",
+  "Gebhardt",
+  "Geese",
+  "Gehre",
+  "Gehrig",
+  "Gehring",
+  "Gehrke",
+  "Geiger",
+  "Geisler",
+  "Geissler",
+  "Gelling",
+  "Gens",
+  "Gerbennow",
+  "Gerdel",
+  "Gerhardt",
+  "Gerschler",
+  "Gerson",
+  "Gesell",
+  "Geyer",
+  "Ghirmai",
+  "Ghosh",
+  "Giehl",
+  "Gierisch",
+  "Giesa",
+  "Giesche",
+  "Gilde",
+  "Glatting",
+  "Goebel",
+  "Goedicke",
+  "Goldbeck",
+  "Goldfuss",
+  "Goldkamp",
+  "Goldkühle",
+  "Goller",
+  "Golling",
+  "Gollnow",
+  "Golomski",
+  "Gombert",
+  "Gotthardt",
+  "Gottschalk",
+  "Gotz",
+  "Goy",
+  "Gradzki",
+  "Graf",
+  "Grams",
+  "Grasse",
+  "Gratzky",
+  "Grau",
+  "Greb",
+  "Green",
+  "Greger",
+  "Greithanner",
+  "Greschner",
+  "Griem",
+  "Griese",
+  "Grimm",
+  "Gromisch",
+  "Gross",
+  "Grosser",
+  "Grossheim",
+  "Grosskopf",
+  "Grothaus",
+  "Grothkopp",
+  "Grotke",
+  "Grube",
+  "Gruber",
+  "Grundmann",
+  "Gruning",
+  "Gruszecki",
+  "Gröss",
+  "Grötzinger",
+  "Grün",
+  "Grüner",
+  "Gummelt",
+  "Gunkel",
+  "Gunther",
+  "Gutjahr",
+  "Gutowicz",
+  "Gutschank",
+  "Göbel",
+  "Göckeritz",
+  "Göhler",
+  "Görlich",
+  "Görmer",
+  "Götz",
+  "Götzelmann",
+  "Güldemeister",
+  "Günther",
+  "Günz",
+  "Gürbig",
+  "Haack",
+  "Haaf",
+  "Habel",
+  "Hache",
+  "Hackbusch",
+  "Hackelbusch",
+  "Hadfield",
+  "Hadwich",
+  "Haferkamp",
+  "Hahn",
+  "Hajek",
+  "Hallmann",
+  "Hamann",
+  "Hanenberger",
+  "Hannecker",
+  "Hanniske",
+  "Hansen",
+  "Hardy",
+  "Hargasser",
+  "Harms",
+  "Harnapp",
+  "Harter",
+  "Harting",
+  "Hartlieb",
+  "Hartmann",
+  "Hartwig",
+  "Hartz",
+  "Haschke",
+  "Hasler",
+  "Hasse",
+  "Hassfeld",
+  "Haug",
+  "Hauke",
+  "Haupt",
+  "Haverney",
+  "Heberstreit",
+  "Hechler",
+  "Hecht",
+  "Heck",
+  "Hedermann",
+  "Hehl",
+  "Heidelmann",
+  "Heidler",
+  "Heinemann",
+  "Heinig",
+  "Heinke",
+  "Heinrich",
+  "Heinze",
+  "Heiser",
+  "Heist",
+  "Hellmann",
+  "Helm",
+  "Helmke",
+  "Helpling",
+  "Hengmith",
+  "Henkel",
+  "Hennes",
+  "Henry",
+  "Hense",
+  "Hensel",
+  "Hentel",
+  "Hentschel",
+  "Hentschke",
+  "Hepperle",
+  "Herberger",
+  "Herbrand",
+  "Hering",
+  "Hermann",
+  "Hermecke",
+  "Herms",
+  "Herold",
+  "Herrmann",
+  "Herschmann",
+  "Hertel",
+  "Herweg",
+  "Herwig",
+  "Herzenberg",
+  "Hess",
+  "Hesse",
+  "Hessek",
+  "Hessler",
+  "Hetzler",
+  "Heuck",
+  "Heydemüller",
+  "Hiebl",
+  "Hildebrand",
+  "Hildenbrand",
+  "Hilgendorf",
+  "Hillard",
+  "Hiller",
+  "Hingsen",
+  "Hingst",
+  "Hinrichs",
+  "Hirsch",
+  "Hirschberg",
+  "Hirt",
+  "Hodea",
+  "Hoffman",
+  "Hoffmann",
+  "Hofmann",
+  "Hohenberger",
+  "Hohl",
+  "Hohn",
+  "Hohnheiser",
+  "Hold",
+  "Holdt",
+  "Holinski",
+  "Holl",
+  "Holtfreter",
+  "Holz",
+  "Holzdeppe",
+  "Holzner",
+  "Hommel",
+  "Honz",
+  "Hooss",
+  "Hoppe",
+  "Horak",
+  "Horn",
+  "Horna",
+  "Hornung",
+  "Hort",
+  "Howard",
+  "Huber",
+  "Huckestein",
+  "Hudak",
+  "Huebel",
+  "Hugo",
+  "Huhn",
+  "Hujo",
+  "Huke",
+  "Huls",
+  "Humbert",
+  "Huneke",
+  "Huth",
+  "Häber",
+  "Häfner",
+  "Höcke",
+  "Höft",
+  "Höhne",
+  "Hönig",
+  "Hördt",
+  "Hübenbecker",
+  "Hübl",
+  "Hübner",
+  "Hügel",
+  "Hüttcher",
+  "Hütter",
+  "Ibe",
+  "Ihly",
+  "Illing",
+  "Isak",
+  "Isekenmeier",
+  "Itt",
+  "Jacob",
+  "Jacobs",
+  "Jagusch",
+  "Jahn",
+  "Jahnke",
+  "Jakobs",
+  "Jakubczyk",
+  "Jambor",
+  "Jamrozy",
+  "Jander",
+  "Janich",
+  "Janke",
+  "Jansen",
+  "Jarets",
+  "Jaros",
+  "Jasinski",
+  "Jasper",
+  "Jegorov",
+  "Jellinghaus",
+  "Jeorga",
+  "Jerschabek",
+  "Jess",
+  "John",
+  "Jonas",
+  "Jossa",
+  "Jucken",
+  "Jung",
+  "Jungbluth",
+  "Jungton",
+  "Just",
+  "Jürgens",
+  "Kaczmarek",
+  "Kaesmacher",
+  "Kahl",
+  "Kahlert",
+  "Kahles",
+  "Kahlmeyer",
+  "Kaiser",
+  "Kalinowski",
+  "Kallabis",
+  "Kallensee",
+  "Kampf",
+  "Kampschulte",
+  "Kappe",
+  "Kappler",
+  "Karhoff",
+  "Karrass",
+  "Karst",
+  "Karsten",
+  "Karus",
+  "Kass",
+  "Kasten",
+  "Kastner",
+  "Katzinski",
+  "Kaufmann",
+  "Kaul",
+  "Kausemann",
+  "Kawohl",
+  "Kazmarek",
+  "Kedzierski",
+  "Keil",
+  "Keiner",
+  "Keller",
+  "Kelm",
+  "Kempe",
+  "Kemper",
+  "Kempter",
+  "Kerl",
+  "Kern",
+  "Kesselring",
+  "Kesselschläger",
+  "Kette",
+  "Kettenis",
+  "Keutel",
+  "Kick",
+  "Kiessling",
+  "Kinadeter",
+  "Kinzel",
+  "Kinzy",
+  "Kirch",
+  "Kirst",
+  "Kisabaka",
+  "Klaas",
+  "Klabuhn",
+  "Klapper",
+  "Klauder",
+  "Klaus",
+  "Kleeberg",
+  "Kleiber",
+  "Klein",
+  "Kleinert",
+  "Kleininger",
+  "Kleinmann",
+  "Kleinsteuber",
+  "Kleiss",
+  "Klemme",
+  "Klimczak",
+  "Klinger",
+  "Klink",
+  "Klopsch",
+  "Klose",
+  "Kloss",
+  "Kluge",
+  "Kluwe",
+  "Knabe",
+  "Kneifel",
+  "Knetsch",
+  "Knies",
+  "Knippel",
+  "Knobel",
+  "Knoblich",
+  "Knoll",
+  "Knorr",
+  "Knorscheidt",
+  "Knut",
+  "Kobs",
+  "Koch",
+  "Kochan",
+  "Kock",
+  "Koczulla",
+  "Koderisch",
+  "Koehl",
+  "Koehler",
+  "Koenig",
+  "Koester",
+  "Kofferschlager",
+  "Koha",
+  "Kohle",
+  "Kohlmann",
+  "Kohnle",
+  "Kohrt",
+  "Koj",
+  "Kolb",
+  "Koleiski",
+  "Kolokas",
+  "Komoll",
+  "Konieczny",
+  "Konig",
+  "Konow",
+  "Konya",
+  "Koob",
+  "Kopf",
+  "Kosenkow",
+  "Koster",
+  "Koszewski",
+  "Koubaa",
+  "Kovacs",
+  "Kowalick",
+  "Kowalinski",
+  "Kozakiewicz",
+  "Krabbe",
+  "Kraft",
+  "Kral",
+  "Kramer",
+  "Krauel",
+  "Kraus",
+  "Krause",
+  "Krauspe",
+  "Kreb",
+  "Krebs",
+  "Kreissig",
+  "Kresse",
+  "Kreutz",
+  "Krieger",
+  "Krippner",
+  "Krodinger",
+  "Krohn",
+  "Krol",
+  "Kron",
+  "Krueger",
+  "Krug",
+  "Kruger",
+  "Krull",
+  "Kruschinski",
+  "Krämer",
+  "Kröckert",
+  "Kröger",
+  "Krüger",
+  "Kubera",
+  "Kufahl",
+  "Kuhlee",
+  "Kuhnen",
+  "Kulimann",
+  "Kulma",
+  "Kumbernuss",
+  "Kummle",
+  "Kunz",
+  "Kupfer",
+  "Kupprion",
+  "Kuprion",
+  "Kurnicki",
+  "Kurrat",
+  "Kurschilgen",
+  "Kuschewitz",
+  "Kuschmann",
+  "Kuske",
+  "Kustermann",
+  "Kutscherauer",
+  "Kutzner",
+  "Kwadwo",
+  "Kähler",
+  "Käther",
+  "Köhler",
+  "Köhrbrück",
+  "Köhre",
+  "Kölotzei",
+  "König",
+  "Köpernick",
+  "Köseoglu",
+  "Kúhn",
+  "Kúhnert",
+  "Kühn",
+  "Kühnel",
+  "Kühnemund",
+  "Kühnert",
+  "Kühnke",
+  "Küsters",
+  "Küter",
+  "Laack",
+  "Lack",
+  "Ladewig",
+  "Lakomy",
+  "Lammert",
+  "Lamos",
+  "Landmann",
+  "Lang",
+  "Lange",
+  "Langfeld",
+  "Langhirt",
+  "Lanig",
+  "Lauckner",
+  "Lauinger",
+  "Laurén",
+  "Lausecker",
+  "Laux",
+  "Laws",
+  "Lax",
+  "Leberer",
+  "Lehmann",
+  "Lehner",
+  "Leibold",
+  "Leide",
+  "Leimbach",
+  "Leipold",
+  "Leist",
+  "Leiter",
+  "Leiteritz",
+  "Leitheim",
+  "Leiwesmeier",
+  "Lenfers",
+  "Lenk",
+  "Lenz",
+  "Lenzen",
+  "Leo",
+  "Lepthin",
+  "Lesch",
+  "Leschnik",
+  "Letzelter",
+  "Lewin",
+  "Lewke",
+  "Leyckes",
+  "Lg",
+  "Lichtenfeld",
+  "Lichtenhagen",
+  "Lichtl",
+  "Liebach",
+  "Liebe",
+  "Liebich",
+  "Liebold",
+  "Lieder",
+  "Lienshöft",
+  "Linden",
+  "Lindenberg",
+  "Lindenmayer",
+  "Lindner",
+  "Linke",
+  "Linnenbaum",
+  "Lippe",
+  "Lipske",
+  "Lipus",
+  "Lischka",
+  "Lobinger",
+  "Logsch",
+  "Lohmann",
+  "Lohre",
+  "Lohse",
+  "Lokar",
+  "Loogen",
+  "Lorenz",
+  "Losch",
+  "Loska",
+  "Lott",
+  "Loy",
+  "Lubina",
+  "Ludolf",
+  "Lufft",
+  "Lukoschek",
+  "Lutje",
+  "Lutz",
+  "Löser",
+  "Löwa",
+  "Lübke",
+  "Maak",
+  "Maczey",
+  "Madetzky",
+  "Madubuko",
+  "Mai",
+  "Maier",
+  "Maisch",
+  "Malek",
+  "Malkus",
+  "Mallmann",
+  "Malucha",
+  "Manns",
+  "Manz",
+  "Marahrens",
+  "Marchewski",
+  "Margis",
+  "Markowski",
+  "Marl",
+  "Marner",
+  "Marquart",
+  "Marschek",
+  "Martel",
+  "Marten",
+  "Martin",
+  "Marx",
+  "Marxen",
+  "Mathes",
+  "Mathies",
+  "Mathiszik",
+  "Matschke",
+  "Mattern",
+  "Matthes",
+  "Matula",
+  "Mau",
+  "Maurer",
+  "Mauroff",
+  "May",
+  "Maybach",
+  "Mayer",
+  "Mebold",
+  "Mehl",
+  "Mehlhorn",
+  "Mehlorn",
+  "Meier",
+  "Meisch",
+  "Meissner",
+  "Meloni",
+  "Melzer",
+  "Menga",
+  "Menne",
+  "Mensah",
+  "Mensing",
+  "Merkel",
+  "Merseburg",
+  "Mertens",
+  "Mesloh",
+  "Metzger",
+  "Metzner",
+  "Mewes",
+  "Meyer",
+  "Michallek",
+  "Michel",
+  "Mielke",
+  "Mikitenko",
+  "Milde",
+  "Minah",
+  "Mintzlaff",
+  "Mockenhaupt",
+  "Moede",
+  "Moedl",
+  "Moeller",
+  "Moguenara",
+  "Mohr",
+  "Mohrhard",
+  "Molitor",
+  "Moll",
+  "Moller",
+  "Molzan",
+  "Montag",
+  "Moormann",
+  "Mordhorst",
+  "Morgenstern",
+  "Morhelfer",
+  "Moritz",
+  "Moser",
+  "Motchebon",
+  "Motzenbbäcker",
+  "Mrugalla",
+  "Muckenthaler",
+  "Mues",
+  "Muller",
+  "Mulrain",
+  "Mächtig",
+  "Mäder",
+  "Möcks",
+  "Mögenburg",
+  "Möhsner",
+  "Möldner",
+  "Möllenbeck",
+  "Möller",
+  "Möllinger",
+  "Mörsch",
+  "Mühleis",
+  "Müller",
+  "Münch",
+  "Nabein",
+  "Nabow",
+  "Nagel",
+  "Nannen",
+  "Nastvogel",
+  "Nau",
+  "Naubert",
+  "Naumann",
+  "Ne",
+  "Neimke",
+  "Nerius",
+  "Neubauer",
+  "Neubert",
+  "Neuendorf",
+  "Neumair",
+  "Neumann",
+  "Neupert",
+  "Neurohr",
+  "Neuschwander",
+  "Newton",
+  "Ney",
+  "Nicolay",
+  "Niedermeier",
+  "Nieklauson",
+  "Niklaus",
+  "Nitzsche",
+  "Noack",
+  "Nodler",
+  "Nolte",
+  "Normann",
+  "Norris",
+  "Northoff",
+  "Nowak",
+  "Nussbeck",
+  "Nwachukwu",
+  "Nytra",
+  "Nöh",
+  "Oberem",
+  "Obergföll",
+  "Obermaier",
+  "Ochs",
+  "Oeser",
+  "Olbrich",
+  "Onnen",
+  "Ophey",
+  "Oppong",
+  "Orth",
+  "Orthmann",
+  "Oschkenat",
+  "Osei",
+  "Osenberg",
+  "Ostendarp",
+  "Ostwald",
+  "Otte",
+  "Otto",
+  "Paesler",
+  "Pajonk",
+  "Pallentin",
+  "Panzig",
+  "Paschke",
+  "Patzwahl",
+  "Paukner",
+  "Peselman",
+  "Peter",
+  "Peters",
+  "Petzold",
+  "Pfeiffer",
+  "Pfennig",
+  "Pfersich",
+  "Pfingsten",
+  "Pflieger",
+  "Pflügner",
+  "Philipp",
+  "Pichlmaier",
+  "Piesker",
+  "Pietsch",
+  "Pingpank",
+  "Pinnock",
+  "Pippig",
+  "Pitschugin",
+  "Plank",
+  "Plass",
+  "Platzer",
+  "Plauk",
+  "Plautz",
+  "Pletsch",
+  "Plotzitzka",
+  "Poehn",
+  "Poeschl",
+  "Pogorzelski",
+  "Pohl",
+  "Pohland",
+  "Pohle",
+  "Polifka",
+  "Polizzi",
+  "Pollmächer",
+  "Pomp",
+  "Ponitzsch",
+  "Porsche",
+  "Porth",
+  "Poschmann",
+  "Poser",
+  "Pottel",
+  "Prah",
+  "Prange",
+  "Prediger",
+  "Pressler",
+  "Preuk",
+  "Preuss",
+  "Prey",
+  "Priemer",
+  "Proske",
+  "Pusch",
+  "Pöche",
+  "Pöge",
+  "Raabe",
+  "Rabenstein",
+  "Rach",
+  "Radtke",
+  "Rahn",
+  "Ranftl",
+  "Rangen",
+  "Ranz",
+  "Rapp",
+  "Rath",
+  "Rau",
+  "Raubuch",
+  "Raukuc",
+  "Rautenkranz",
+  "Rehwagen",
+  "Reiber",
+  "Reichardt",
+  "Reichel",
+  "Reichling",
+  "Reif",
+  "Reifenrath",
+  "Reimann",
+  "Reinberg",
+  "Reinelt",
+  "Reinhardt",
+  "Reinke",
+  "Reitze",
+  "Renk",
+  "Rentz",
+  "Renz",
+  "Reppin",
+  "Restle",
+  "Restorff",
+  "Retzke",
+  "Reuber",
+  "Reumann",
+  "Reus",
+  "Reuss",
+  "Reusse",
+  "Rheder",
+  "Rhoden",
+  "Richards",
+  "Richter",
+  "Riedel",
+  "Riediger",
+  "Rieger",
+  "Riekmann",
+  "Riepl",
+  "Riermeier",
+  "Riester",
+  "Riethmüller",
+  "Rietmüller",
+  "Rietscher",
+  "Ringel",
+  "Ringer",
+  "Rink",
+  "Ripken",
+  "Ritosek",
+  "Ritschel",
+  "Ritter",
+  "Rittweg",
+  "Ritz",
+  "Roba",
+  "Rockmeier",
+  "Rodehau",
+  "Rodowski",
+  "Roecker",
+  "Roggatz",
+  "Rohländer",
+  "Rohrer",
+  "Rokossa",
+  "Roleder",
+  "Roloff",
+  "Roos",
+  "Rosbach",
+  "Roschinsky",
+  "Rose",
+  "Rosenauer",
+  "Rosenbauer",
+  "Rosenthal",
+  "Rosksch",
+  "Rossberg",
+  "Rossler",
+  "Roth",
+  "Rother",
+  "Ruch",
+  "Ruckdeschel",
+  "Rumpf",
+  "Rupprecht",
+  "Ruth",
+  "Ryjikh",
+  "Ryzih",
+  "Rädler",
+  "Räntsch",
+  "Rödiger",
+  "Röse",
+  "Röttger",
+  "Rücker",
+  "Rüdiger",
+  "Rüter",
+  "Sachse",
+  "Sack",
+  "Saflanis",
+  "Sagafe",
+  "Sagonas",
+  "Sahner",
+  "Saile",
+  "Sailer",
+  "Salow",
+  "Salzer",
+  "Salzmann",
+  "Sammert",
+  "Sander",
+  "Sarvari",
+  "Sattelmaier",
+  "Sauer",
+  "Sauerland",
+  "Saumweber",
+  "Savoia",
+  "Scc",
+  "Schacht",
+  "Schaefer",
+  "Schaffarzik",
+  "Schahbasian",
+  "Scharf",
+  "Schedler",
+  "Scheer",
+  "Schelk",
+  "Schellenbeck",
+  "Schembera",
+  "Schenk",
+  "Scherbarth",
+  "Scherer",
+  "Schersing",
+  "Scherz",
+  "Scheurer",
+  "Scheuring",
+  "Scheytt",
+  "Schielke",
+  "Schieskow",
+  "Schildhauer",
+  "Schilling",
+  "Schima",
+  "Schimmer",
+  "Schindzielorz",
+  "Schirmer",
+  "Schirrmeister",
+  "Schlachter",
+  "Schlangen",
+  "Schlawitz",
+  "Schlechtweg",
+  "Schley",
+  "Schlicht",
+  "Schlitzer",
+  "Schmalzle",
+  "Schmid",
+  "Schmidt",
+  "Schmidtchen",
+  "Schmitt",
+  "Schmitz",
+  "Schmuhl",
+  "Schneider",
+  "Schnelting",
+  "Schnieder",
+  "Schniedermeier",
+  "Schnürer",
+  "Schoberg",
+  "Scholz",
+  "Schonberg",
+  "Schondelmaier",
+  "Schorr",
+  "Schott",
+  "Schottmann",
+  "Schouren",
+  "Schrader",
+  "Schramm",
+  "Schreck",
+  "Schreiber",
+  "Schreiner",
+  "Schreiter",
+  "Schroder",
+  "Schröder",
+  "Schuermann",
+  "Schuff",
+  "Schuhaj",
+  "Schuldt",
+  "Schult",
+  "Schulte",
+  "Schultz",
+  "Schultze",
+  "Schulz",
+  "Schulze",
+  "Schumacher",
+  "Schumann",
+  "Schupp",
+  "Schuri",
+  "Schuster",
+  "Schwab",
+  "Schwalm",
+  "Schwanbeck",
+  "Schwandke",
+  "Schwanitz",
+  "Schwarthoff",
+  "Schwartz",
+  "Schwarz",
+  "Schwarzer",
+  "Schwarzkopf",
+  "Schwarzmeier",
+  "Schwatlo",
+  "Schweisfurth",
+  "Schwennen",
+  "Schwerdtner",
+  "Schwidde",
+  "Schwirkschlies",
+  "Schwuchow",
+  "Schäfer",
+  "Schäffel",
+  "Schäffer",
+  "Schäning",
+  "Schöckel",
+  "Schönball",
+  "Schönbeck",
+  "Schönberg",
+  "Schönebeck",
+  "Schönenberger",
+  "Schönfeld",
+  "Schönherr",
+  "Schönlebe",
+  "Schötz",
+  "Schüler",
+  "Schüppel",
+  "Schütz",
+  "Schütze",
+  "Seeger",
+  "Seelig",
+  "Sehls",
+  "Seibold",
+  "Seidel",
+  "Seiders",
+  "Seigel",
+  "Seiler",
+  "Seitz",
+  "Semisch",
+  "Senkel",
+  "Sewald",
+  "Siebel",
+  "Siebert",
+  "Siegling",
+  "Sielemann",
+  "Siemon",
+  "Siener",
+  "Sievers",
+  "Siewert",
+  "Sihler",
+  "Sillah",
+  "Simon",
+  "Sinnhuber",
+  "Sischka",
+  "Skibicki",
+  "Sladek",
+  "Slotta",
+  "Smieja",
+  "Soboll",
+  "Sokolowski",
+  "Soller",
+  "Sollner",
+  "Sommer",
+  "Somssich",
+  "Sonn",
+  "Sonnabend",
+  "Spahn",
+  "Spank",
+  "Spelmeyer",
+  "Spiegelburg",
+  "Spielvogel",
+  "Spinner",
+  "Spitzmüller",
+  "Splinter",
+  "Sporrer",
+  "Sprenger",
+  "Spöttel",
+  "Stahl",
+  "Stang",
+  "Stanger",
+  "Stauss",
+  "Steding",
+  "Steffen",
+  "Steffny",
+  "Steidl",
+  "Steigauf",
+  "Stein",
+  "Steinecke",
+  "Steinert",
+  "Steinkamp",
+  "Steinmetz",
+  "Stelkens",
+  "Stengel",
+  "Stengl",
+  "Stenzel",
+  "Stepanov",
+  "Stephan",
+  "Stern",
+  "Steuk",
+  "Stief",
+  "Stifel",
+  "Stoll",
+  "Stolle",
+  "Stolz",
+  "Storl",
+  "Storp",
+  "Stoutjesdijk",
+  "Stratmann",
+  "Straub",
+  "Strausa",
+  "Streck",
+  "Streese",
+  "Strege",
+  "Streit",
+  "Streller",
+  "Strieder",
+  "Striezel",
+  "Strogies",
+  "Strohschank",
+  "Strunz",
+  "Strutz",
+  "Stube",
+  "Stöckert",
+  "Stöppler",
+  "Stöwer",
+  "Stürmer",
+  "Suffa",
+  "Sujew",
+  "Sussmann",
+  "Suthe",
+  "Sutschet",
+  "Swillims",
+  "Szendrei",
+  "Sören",
+  "Sürth",
+  "Tafelmeier",
+  "Tang",
+  "Tasche",
+  "Taufratshofer",
+  "Tegethof",
+  "Teichmann",
+  "Tepper",
+  "Terheiden",
+  "Terlecki",
+  "Teufel",
+  "Theele",
+  "Thieke",
+  "Thimm",
+  "Thiomas",
+  "Thomas",
+  "Thriene",
+  "Thränhardt",
+  "Thust",
+  "Thyssen",
+  "Thöne",
+  "Tidow",
+  "Tiedtke",
+  "Tietze",
+  "Tilgner",
+  "Tillack",
+  "Timmermann",
+  "Tischler",
+  "Tischmann",
+  "Tittman",
+  "Tivontschik",
+  "Tonat",
+  "Tonn",
+  "Trampeli",
+  "Trauth",
+  "Trautmann",
+  "Travan",
+  "Treff",
+  "Tremmel",
+  "Tress",
+  "Tsamonikian",
+  "Tschiers",
+  "Tschirch",
+  "Tuch",
+  "Tucholke",
+  "Tudow",
+  "Tuschmo",
+  "Tächl",
+  "Többen",
+  "Töpfer",
+  "Uhlemann",
+  "Uhlig",
+  "Uhrig",
+  "Uibel",
+  "Uliczka",
+  "Ullmann",
+  "Ullrich",
+  "Umbach",
+  "Umlauft",
+  "Umminger",
+  "Unger",
+  "Unterpaintner",
+  "Urban",
+  "Urbaniak",
+  "Urbansky",
+  "Urhig",
+  "Vahlensieck",
+  "Van",
+  "Vangermain",
+  "Vater",
+  "Venghaus",
+  "Verniest",
+  "Verzi",
+  "Vey",
+  "Viellehner",
+  "Vieweg",
+  "Voelkel",
+  "Vogel",
+  "Vogelgsang",
+  "Vogt",
+  "Voigt",
+  "Vokuhl",
+  "Volk",
+  "Volker",
+  "Volkmann",
+  "Von",
+  "Vona",
+  "Vontein",
+  "Wachenbrunner",
+  "Wachtel",
+  "Wagner",
+  "Waibel",
+  "Wakan",
+  "Waldmann",
+  "Wallner",
+  "Wallstab",
+  "Walter",
+  "Walther",
+  "Walton",
+  "Walz",
+  "Wanner",
+  "Wartenberg",
+  "Waschbüsch",
+  "Wassilew",
+  "Wassiluk",
+  "Weber",
+  "Wehrsen",
+  "Weidlich",
+  "Weidner",
+  "Weigel",
+  "Weight",
+  "Weiler",
+  "Weimer",
+  "Weis",
+  "Weiss",
+  "Weller",
+  "Welsch",
+  "Welz",
+  "Welzel",
+  "Weniger",
+  "Wenk",
+  "Werle",
+  "Werner",
+  "Werrmann",
+  "Wessel",
+  "Wessinghage",
+  "Weyel",
+  "Wezel",
+  "Wichmann",
+  "Wickert",
+  "Wiebe",
+  "Wiechmann",
+  "Wiegelmann",
+  "Wierig",
+  "Wiese",
+  "Wieser",
+  "Wilhelm",
+  "Wilky",
+  "Will",
+  "Willwacher",
+  "Wilts",
+  "Wimmer",
+  "Winkelmann",
+  "Winkler",
+  "Winter",
+  "Wischek",
+  "Wischer",
+  "Wissing",
+  "Wittich",
+  "Wittl",
+  "Wolf",
+  "Wolfarth",
+  "Wolff",
+  "Wollenberg",
+  "Wollmann",
+  "Woytkowska",
+  "Wujak",
+  "Wurm",
+  "Wyludda",
+  "Wölpert",
+  "Wöschler",
+  "Wühn",
+  "Wünsche",
+  "Zach",
+  "Zaczkiewicz",
+  "Zahn",
+  "Zaituc",
+  "Zandt",
+  "Zanner",
+  "Zapletal",
+  "Zauber",
+  "Zeidler",
+  "Zekl",
+  "Zender",
+  "Zeuch",
+  "Zeyen",
+  "Zeyhle",
+  "Ziegler",
+  "Zimanyi",
+  "Zimmer",
+  "Zimmermann",
+  "Zinser",
+  "Zintl",
+  "Zipp",
+  "Zipse",
+  "Zschunke",
+  "Zuber",
+  "Zwiener",
+  "Zümsande",
+  "Östringer",
+  "Überacker"
+];
+
+},{}],126:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name}",
+  "#{first_name} #{nobility_title_prefix} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}"
+];
+
+},{}],127:[function(require,module,exports){
+module["exports"] = [
+  "zu",
+  "von",
+  "vom",
+  "von der"
+];
+
+},{}],128:[function(require,module,exports){
+module["exports"] = [
+  "Hr.",
+  "Fr.",
+  "Dr.",
+  "Prof. Dr."
+];
+
+},{}],129:[function(require,module,exports){
+module["exports"] = [
+  "(0###) #########",
+  "(0####) #######",
+  "+49-###-#######",
+  "+49-####-########"
+];
+
+},{}],130:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":129,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],131:[function(require,module,exports){
+module.exports=require(97)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/building_number.js":97}],132:[function(require,module,exports){
+module.exports=require(55)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/city.js":55}],133:[function(require,module,exports){
+module["exports"] = [
+  "Aigen im Mühlkreis",
+  "Allerheiligen bei Wildon",
+  "Altenfelden",
+  "Arriach",
+  "Axams",
+  "Baumgartenberg",
+  "Bergern im Dunkelsteinerwald",
+  "Berndorf bei Salzburg",
+  "Bregenz",
+  "Breitenbach am Inn",
+  "Deutsch-Wagram",
+  "Dienten am Hochkönig",
+  "Dietach",
+  "Dornbirn",
+  "Dürnkrut",
+  "Eben im Pongau",
+  "Ebenthal in Kärnten",
+  "Eichgraben",
+  "Eisenstadt",
+  "Ellmau",
+  "Feistritz am Wechsel",
+  "Finkenberg",
+  "Fiss",
+  "Frantschach-St. Gertraud",
+  "Fritzens",
+  "Gams bei Hieflau",
+  "Geiersberg",
+  "Graz",
+  "Großhöflein",
+  "Gößnitz",
+  "Hartl",
+  "Hausleiten",
+  "Herzogenburg",
+  "Hinterhornbach",
+  "Hochwolkersdorf",
+  "Ilz",
+  "Ilztal",
+  "Innerbraz",
+  "Innsbruck",
+  "Itter",
+  "Jagerberg",
+  "Jeging",
+  "Johnsbach",
+  "Johnsdorf-Brunn",
+  "Jungholz",
+  "Kirchdorf am Inn",
+  "Klagenfurt",
+  "Kottes-Purk",
+  "Krumau am Kamp",
+  "Krumbach",
+  "Lavamünd",
+  "Lech",
+  "Linz",
+  "Ludesch",
+  "Lödersdorf",
+  "Marbach an der Donau",
+  "Mattsee",
+  "Mautern an der Donau",
+  "Mauterndorf",
+  "Mitterbach am Erlaufsee",
+  "Neudorf bei Passail",
+  "Neudorf bei Staatz",
+  "Neukirchen an der Enknach",
+  "Neustift an der Lafnitz",
+  "Niederleis",
+  "Oberndorf in Tirol",
+  "Oberstorcha",
+  "Oberwaltersdorf",
+  "Oed-Oehling",
+  "Ort im Innkreis",
+  "Pilgersdorf",
+  "Pitschgau",
+  "Pollham",
+  "Preitenegg",
+  "Purbach am Neusiedler See",
+  "Rabenwald",
+  "Raiding",
+  "Rastenfeld",
+  "Ratten",
+  "Rettenegg",
+  "Salzburg",
+  "Sankt Johann im Saggautal",
+  "St. Peter am Kammersberg",
+  "St. Pölten",
+  "St. Veit an der Glan",
+  "Taxenbach",
+  "Tragwein",
+  "Trebesing",
+  "Trieben",
+  "Turnau",
+  "Ungerdorf",
+  "Unterauersbach",
+  "Unterstinkenbrunn",
+  "Untertilliach",
+  "Uttendorf",
+  "Vals",
+  "Velden am Wörther See",
+  "Viehhofen",
+  "Villach",
+  "Vitis",
+  "Waidhofen an der Thaya",
+  "Waldkirchen am Wesen",
+  "Weißkirchen an der Traun",
+  "Wien",
+  "Wimpassing im Schwarzatale",
+  "Ybbs an der Donau",
+  "Ybbsitz",
+  "Yspertal",
+  "Zeillern",
+  "Zell am Pettenfirst",
+  "Zell an der Pram",
+  "Zerlach",
+  "Zwölfaxing",
+  "Öblarn",
+  "Übelbach",
+  "Überackern",
+  "Übersaxen",
+  "Übersbach"
+];
+
+},{}],134:[function(require,module,exports){
+module.exports=require(101)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/country.js":101}],135:[function(require,module,exports){
+module["exports"] = [
+  "Österreich"
+];
+
+},{}],136:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.street_root = require("./street_root");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":131,"./city":132,"./city_name":133,"./country":134,"./default_country":135,"./postcode":137,"./secondary_address":138,"./state":139,"./state_abbr":140,"./street_address":141,"./street_name":142,"./street_root":143}],137:[function(require,module,exports){
+module["exports"] = [
+  "####"
+];
+
+},{}],138:[function(require,module,exports){
+module.exports=require(105)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/secondary_address.js":105}],139:[function(require,module,exports){
+module["exports"] = [
+  "Burgenland",
+  "Kärnten",
+  "Niederösterreich",
+  "Oberösterreich",
+  "Salzburg",
+  "Steiermark",
+  "Tirol",
+  "Vorarlberg",
+  "Wien"
+];
+
+},{}],140:[function(require,module,exports){
+module["exports"] = [
+  "Bgld.",
+  "Ktn.",
+  "NÖ",
+  "OÖ",
+  "Sbg.",
+  "Stmk.",
+  "T",
+  "Vbg.",
+  "W"
+];
+
+},{}],141:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],142:[function(require,module,exports){
+module.exports=require(109)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/street_name.js":109}],143:[function(require,module,exports){
+module["exports"] = [
+  "Ahorn",
+  "Ahorngasse (St. Andrä)",
+  "Alleestraße (Poysbrunn)",
+  "Alpenlandstraße",
+  "Alte Poststraße",
+  "Alte Ufergasse",
+  "Am Kronawett (Hagenbrunn)",
+  "Am Mühlwasser",
+  "Am Rebenhang",
+  "Am Sternweg",
+  "Anton Wildgans-Straße",
+  "Auer-von-Welsbach-Weg",
+  "Auf der Stift",
+  "Aufeldgasse",
+  "Bahngasse",
+  "Bahnhofstraße",
+  "Bahnstraße (Gerhaus)",
+  "Basteigasse",
+  "Berggasse",
+  "Bergstraße",
+  "Birkenweg",
+  "Blasiussteig",
+  "Blattur",
+  "Bruderhofgasse",
+  "Brunnelligasse",
+  "Bühelweg",
+  "Darnautgasse",
+  "Donaugasse",
+  "Dorfplatz (Haselbach)",
+  "Dr.-Oberreiter-Straße",
+  "Dr.Karl Holoubek-Str.",
+  "Drautal Bundesstraße",
+  "Dürnrohrer Straße",
+  "Ebenthalerstraße",
+  "Eckgrabenweg",
+  "Erlenstraße",
+  "Erlenweg",
+  "Eschenweg",
+  "Etrichgasse",
+  "Fassergasse",
+  "Feichteggerwiese",
+  "Feld-Weg",
+  "Feldgasse",
+  "Feldstapfe",
+  "Fischpointweg",
+  "Flachbergstraße",
+  "Flurweg",
+  "Franz Schubert-Gasse",
+  "Franz-Schneeweiß-Weg",
+  "Franz-von-Assisi-Straße",
+  "Fritz-Pregl-Straße",
+  "Fuchsgrubenweg",
+  "Födlerweg",
+  "Föhrenweg",
+  "Fünfhaus (Paasdorf)",
+  "Gabelsbergerstraße",
+  "Gartenstraße",
+  "Geigen",
+  "Geigergasse",
+  "Gemeindeaugasse",
+  "Gemeindeplatz",
+  "Georg-Aichinger-Straße",
+  "Glanfeldbachweg",
+  "Graben (Burgauberg)",
+  "Grub",
+  "Gröretgasse",
+  "Grünbach",
+  "Gösting",
+  "Hainschwang",
+  "Hans-Mauracher-Straße",
+  "Hart",
+  "Teichstraße",
+  "Hauptplatz",
+  "Hauptstraße",
+  "Heideweg",
+  "Heinrich Landauer Gasse",
+  "Helenengasse",
+  "Hermann von Gilmweg",
+  "Hermann-Löns-Gasse",
+  "Herminengasse",
+  "Hernstorferstraße",
+  "Hirsdorf",
+  "Hochfeistritz",
+  "Hochhaus Neue Donau",
+  "Hof",
+  "Hussovits Gasse",
+  "Höggen",
+  "Hütten",
+  "Janzgasse",
+  "Jochriemgutstraße",
+  "Johann-Strauß-Gasse",
+  "Julius-Raab-Straße",
+  "Kahlenberger Straße",
+  "Karl Kraft-Straße",
+  "Kegelprielstraße",
+  "Keltenberg-Eponaweg",
+  "Kennedybrücke",
+  "Kerpelystraße",
+  "Kindergartenstraße",
+  "Kinderheimgasse",
+  "Kirchenplatz",
+  "Kirchweg",
+  "Klagenfurter Straße",
+  "Klamm",
+  "Kleinbaumgarten",
+  "Klingergasse",
+  "Koloniestraße",
+  "Konrad-Duden-Gasse",
+  "Krankenhausstraße",
+  "Kubinstraße",
+  "Köhldorfergasse",
+  "Lackenweg",
+  "Lange Mekotte",
+  "Leifling",
+  "Leopold Frank-Straße (Pellendorf)",
+  "Lerchengasse (Pirka)",
+  "Lichtensternsiedlung V",
+  "Lindenhofstraße",
+  "Lindenweg",
+  "Luegstraße",
+  "Maierhof",
+  "Malerweg",
+  "Mitterweg",
+  "Mittlere Hauptstraße",
+  "Moosbachgasse",
+  "Morettigasse",
+  "Musikpavillon Riezlern",
+  "Mühlboden",
+  "Mühle",
+  "Mühlenweg",
+  "Neustiftgasse",
+  "Niederegg",
+  "Niedergams",
+  "Nordwestbahnbrücke",
+  "Oberbödenalm",
+  "Obere Berggasse",
+  "Oedt",
+  "Am Färberberg",
+  "Ottogasse",
+  "Paul Peters-Gasse",
+  "Perspektivstraße",
+  "Poppichl",
+  "Privatweg",
+  "Prixgasse",
+  "Pyhra",
+  "Radetzkystraße",
+  "Raiden",
+  "Reichensteinstraße",
+  "Reitbauernstraße",
+  "Reiterweg",
+  "Reitschulgasse",
+  "Ringweg",
+  "Rupertistraße",
+  "Römerstraße",
+  "Römerweg",
+  "Sackgasse",
+  "Schaunbergerstraße",
+  "Schloßweg",
+  "Schulgasse (Langeck)",
+  "Schönholdsiedlung",
+  "Seeblick",
+  "Seestraße",
+  "Semriacherstraße",
+  "Simling",
+  "Sipbachzeller Straße",
+  "Sonnenweg",
+  "Spargelfeldgasse",
+  "Spiesmayrweg",
+  "Sportplatzstraße",
+  "St.Ulrich",
+  "Steilmannstraße",
+  "Steingrüneredt",
+  "Strassfeld",
+  "Straßerau",
+  "Stöpflweg",
+  "Stüra",
+  "Taferngasse",
+  "Tennweg",
+  "Thomas Koschat-Gasse",
+  "Tiroler Straße",
+  "Torrogasse",
+  "Uferstraße (Schwarzau am Steinfeld)",
+  "Unterdörfl",
+  "Unterer Sonnrainweg",
+  "Verwaltersiedlung",
+  "Waldhang",
+  "Wasen",
+  "Weidenstraße",
+  "Weiherweg",
+  "Wettsteingasse",
+  "Wiener Straße",
+  "Windisch",
+  "Zebragasse",
+  "Zellerstraße",
+  "Ziehrerstraße",
+  "Zulechnerweg",
+  "Zwergjoch",
+  "Ötzbruck"
+];
+
+},{}],144:[function(require,module,exports){
+module["exports"] = [
+  "+43-6##-#######",
+  "06##-########",
+  "+436#########",
+  "06##########"
+];
+
+},{}],145:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":144,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],146:[function(require,module,exports){
+module.exports=require(113)
+},{"./legal_form":147,"./name":148,"./suffix":149,"/Users/a/dev/faker.js/lib/locales/de/company/index.js":113}],147:[function(require,module,exports){
+module.exports=require(114)
+},{"/Users/a/dev/faker.js/lib/locales/de/company/legal_form.js":114}],148:[function(require,module,exports){
+module.exports=require(115)
+},{"/Users/a/dev/faker.js/lib/locales/de/company/name.js":115}],149:[function(require,module,exports){
+module.exports=require(114)
+},{"/Users/a/dev/faker.js/lib/locales/de/company/legal_form.js":114}],150:[function(require,module,exports){
+var de_AT = {};
+module['exports'] = de_AT;
+de_AT.title = "German (Austria)";
+de_AT.address = require("./address");
+de_AT.company = require("./company");
+de_AT.internet = require("./internet");
+de_AT.name = require("./name");
+de_AT.phone_number = require("./phone_number");
+de_AT.cell_phone = require("./cell_phone");
+
+},{"./address":136,"./cell_phone":145,"./company":146,"./internet":153,"./name":155,"./phone_number":161}],151:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "info",
+  "name",
+  "net",
+  "org",
+  "de",
+  "ch",
+  "at"
+];
+
+},{}],152:[function(require,module,exports){
+module.exports=require(119)
+},{"/Users/a/dev/faker.js/lib/locales/de/internet/free_email.js":119}],153:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":151,"./free_email":152,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],154:[function(require,module,exports){
+module.exports=require(123)
+},{"/Users/a/dev/faker.js/lib/locales/de/name/first_name.js":123}],155:[function(require,module,exports){
+arguments[4][124][0].apply(exports,arguments)
+},{"./first_name":154,"./last_name":156,"./name":157,"./nobility_title_prefix":158,"./prefix":159,"/Users/a/dev/faker.js/lib/locales/de/name/index.js":124}],156:[function(require,module,exports){
+module.exports=require(125)
+},{"/Users/a/dev/faker.js/lib/locales/de/name/last_name.js":125}],157:[function(require,module,exports){
+module.exports=require(126)
+},{"/Users/a/dev/faker.js/lib/locales/de/name/name.js":126}],158:[function(require,module,exports){
+module.exports=require(127)
+},{"/Users/a/dev/faker.js/lib/locales/de/name/nobility_title_prefix.js":127}],159:[function(require,module,exports){
+module["exports"] = [
+  "Dr.",
+  "Prof. Dr."
+];
+
+},{}],160:[function(require,module,exports){
+module["exports"] = [
+  "01 #######",
+  "01#######",
+  "+43-1-#######",
+  "+431#######",
+  "0#### ####",
+  "0#########",
+  "+43-####-####",
+  "+43 ########"
+];
+
+},{}],161:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":160,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],162:[function(require,module,exports){
+module["exports"] = [
+  "CH",
+  "CH",
+  "CH",
+  "DE",
+  "AT",
+  "US",
+  "LI",
+  "US",
+  "HK",
+  "VN"
+];
+
+},{}],163:[function(require,module,exports){
+module["exports"] = [
+  "Schweiz"
+];
+
+},{}],164:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.country_code = require("./country_code");
+address.postcode = require("./postcode");
+address.default_country = require("./default_country");
+
+},{"./country_code":162,"./default_country":163,"./postcode":165}],165:[function(require,module,exports){
+module["exports"] = [
+  "1###",
+  "2###",
+  "3###",
+  "4###",
+  "5###",
+  "6###",
+  "7###",
+  "8###",
+  "9###"
+];
+
+},{}],166:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.name = require("./name");
+
+},{"./name":167,"./suffix":168}],167:[function(require,module,exports){
+module.exports=require(115)
+},{"/Users/a/dev/faker.js/lib/locales/de/company/name.js":115}],168:[function(require,module,exports){
+module["exports"] = [
+  "AG",
+  "GmbH",
+  "und Söhne",
+  "und Partner",
+  "& Co.",
+  "Gruppe",
+  "LLC",
+  "Inc."
+];
+
+},{}],169:[function(require,module,exports){
+var de_CH = {};
+module['exports'] = de_CH;
+de_CH.title = "German (Switzerland)";
+de_CH.address = require("./address");
+de_CH.company = require("./company");
+de_CH.internet = require("./internet");
+de_CH.name = require("./name");
+de_CH.phone_number = require("./phone_number");
+
+},{"./address":164,"./company":166,"./internet":171,"./name":173,"./phone_number":178}],170:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "net",
+  "biz",
+  "ch",
+  "de",
+  "li",
+  "at",
+  "ch",
+  "ch"
+];
+
+},{}],171:[function(require,module,exports){
+var internet = {};
+module['exports'] = internet;
+internet.domain_suffix = require("./domain_suffix");
+
+},{"./domain_suffix":170}],172:[function(require,module,exports){
+module["exports"] = [
+    "Adolf",
+    "Adrian",
+    "Agnes",
+    "Alain",
+    "Albert",
+    "Alberto",
+    "Aldo",
+    "Alex",
+    "Alexander",
+    "Alexandre",
+    "Alfons",
+    "Alfred",
+    "Alice",
+    "Alois",
+    "André",
+    "Andrea",
+    "Andreas",
+    "Angela",
+    "Angelo",
+    "Anita",
+    "Anna",
+    "Anne",
+    "Anne-Marie",
+    "Annemarie",
+    "Antoine",
+    "Anton",
+    "Antonio",
+    "Armin",
+    "Arnold",
+    "Arthur",
+    "Astrid",
+    "Barbara",
+    "Beat",
+    "Beatrice",
+    "Beatrix",
+    "Bernadette",
+    "Bernard",
+    "Bernhard",
+    "Bettina",
+    "Brigitta",
+    "Brigitte",
+    "Bruno",
+    "Carlo",
+    "Carmen",
+    "Caroline",
+    "Catherine",
+    "Chantal",
+    "Charles",
+    "Charlotte",
+    "Christa",
+    "Christian",
+    "Christiane",
+    "Christina",
+    "Christine",
+    "Christoph",
+    "Christophe",
+    "Claire",
+    "Claude",
+    "Claudia",
+    "Claudine",
+    "Claudio",
+    "Corinne",
+    "Cornelia",
+    "Daniel",
+    "Daniela",
+    "Daniele",
+    "Danielle",
+    "David",
+    "Denis",
+    "Denise",
+    "Didier",
+    "Dieter",
+    "Dominik",
+    "Dominique",
+    "Dora",
+    "Doris",
+    "Edgar",
+    "Edith",
+    "Eduard",
+    "Edwin",
+    "Eliane",
+    "Elisabeth",
+    "Elsa",
+    "Elsbeth",
+    "Emil",
+    "Enrico",
+    "Eric",
+    "Erica",
+    "Erich",
+    "Erika",
+    "Ernst",
+    "Erwin",
+    "Esther",
+    "Eugen",
+    "Eva",
+    "Eveline",
+    "Evelyne",
+    "Fabienne",
+    "Felix",
+    "Ferdinand",
+    "Florence",
+    "Francesco",
+    "Francis",
+    "Franco",
+    "François",
+    "Françoise",
+    "Frank",
+    "Franz",
+    "Franziska",
+    "Frédéric",
+    "Fredy",
+    "Fridolin",
+    "Friedrich",
+    "Fritz",
+    "Gabriel",
+    "Gabriela",
+    "Gabrielle",
+    "Georg",
+    "Georges",
+    "Gérald",
+    "Gérard",
+    "Gerhard",
+    "Gertrud",
+    "Gianni",
+    "Gilbert",
+    "Giorgio",
+    "Giovanni",
+    "Gisela",
+    "Giuseppe",
+    "Gottfried",
+    "Guido",
+    "Guy",
+    "Hanna",
+    "Hans",
+    "Hans-Peter",
+    "Hans-Rudolf",
+    "Hans-Ulrich",
+    "Hansjörg",
+    "Hanspeter",
+    "Hansruedi",
+    "Hansueli",
+    "Harry",
+    "Heidi",
+    "Heinrich",
+    "Heinz",
+    "Helen",
+    "Helena",
+    "Helene",
+    "Helmut",
+    "Henri",
+    "Herbert",
+    "Hermann",
+    "Hildegard",
+    "Hubert",
+    "Hugo",
+    "Ingrid",
+    "Irene",
+    "Iris",
+    "Isabelle",
+    "Jacqueline",
+    "Jacques",
+    "Jakob",
+    "Jan",
+    "Janine",
+    "Jean",
+    "Jean-Claude",
+    "Jean-Daniel",
+    "Jean-François",
+    "Jean-Jacques",
+    "Jean-Louis",
+    "Jean-Luc",
+    "Jean-Marc",
+    "Jean-Marie",
+    "Jean-Paul",
+    "Jean-Pierre",
+    "Johann",
+    "Johanna",
+    "Johannes",
+    "John",
+    "Jolanda",
+    "Jörg",
+    "Josef",
+    "Joseph",
+    "Josette",
+    "Josiane",
+    "Judith",
+    "Julia",
+    "Jürg",
+    "Karin",
+    "Karl",
+    "Katharina",
+    "Klaus",
+    "Konrad",
+    "Kurt",
+    "Laura",
+    "Laurence",
+    "Laurent",
+    "Leo",
+    "Liliane",
+    "Liselotte",
+    "Louis",
+    "Luca",
+    "Luigi",
+    "Lukas",
+    "Lydia",
+    "Madeleine",
+    "Maja",
+    "Manfred",
+    "Manuel",
+    "Manuela",
+    "Marc",
+    "Marcel",
+    "Marco",
+    "Margrit",
+    "Margrith",
+    "Maria",
+    "Marianne",
+    "Mario",
+    "Marion",
+    "Markus",
+    "Marlène",
+    "Marlies",
+    "Marlis",
+    "Martha",
+    "Martin",
+    "Martina",
+    "Martine",
+    "Massimo",
+    "Matthias",
+    "Maurice",
+    "Max",
+    "Maya",
+    "Michael",
+    "Michel",
+    "Michele",
+    "Micheline",
+    "Monica",
+    "Monika",
+    "Monique",
+    "Myriam",
+    "Nadia",
+    "Nadja",
+    "Nathalie",
+    "Nelly",
+    "Nicolas",
+    "Nicole",
+    "Niklaus",
+    "Norbert",
+    "Olivier",
+    "Oskar",
+    "Otto",
+    "Paola",
+    "Paolo",
+    "Pascal",
+    "Patricia",
+    "Patrick",
+    "Paul",
+    "Peter",
+    "Petra",
+    "Philipp",
+    "Philippe",
+    "Pia",
+    "Pierre",
+    "Pierre-Alain",
+    "Pierre-André",
+    "Pius",
+    "Priska",
+    "Rainer",
+    "Raymond",
+    "Regina",
+    "Regula",
+    "Reinhard",
+    "Remo",
+    "Renata",
+    "Renate",
+    "Renato",
+    "Rene",
+    "René",
+    "Reto",
+    "Richard",
+    "Rita",
+    "Robert",
+    "Roberto",
+    "Roger",
+    "Roland",
+    "Rolf",
+    "Roman",
+    "Rosa",
+    "Rosemarie",
+    "Rosmarie",
+    "Rudolf",
+    "Ruedi",
+    "Ruth",
+    "Sabine",
+    "Samuel",
+    "Sandra",
+    "Sandro",
+    "Serge",
+    "Silvia",
+    "Silvio",
+    "Simon",
+    "Simone",
+    "Sonia",
+    "Sonja",
+    "Stefan",
+    "Stephan",
+    "Stéphane",
+    "Stéphanie",
+    "Susanna",
+    "Susanne",
+    "Suzanne",
+    "Sylvia",
+    "Sylvie",
+    "Theo",
+    "Theodor",
+    "Therese",
+    "Thomas",
+    "Toni",
+    "Ueli",
+    "Ulrich",
+    "Urs",
+    "Ursula",
+    "Verena",
+    "Véronique",
+    "Victor",
+    "Viktor",
+    "Vreni",
+    "Walter",
+    "Werner",
+    "Willi",
+    "Willy",
+    "Wolfgang",
+    "Yolande",
+    "Yves",
+    "Yvette",
+    "Yvonne",
+
+];
+
+},{}],173:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.name = require("./name");
+
+},{"./first_name":172,"./last_name":174,"./name":175,"./prefix":176}],174:[function(require,module,exports){
+module["exports"] = [
+    "Ackermann",
+    "Aebi",
+    "Albrecht",
+    "Ammann",
+    "Amrein",
+    "Arnold",
+    "Bachmann",
+    "Bader",
+    "Bär",
+    "Bättig",
+    "Bauer",
+    "Baumann",
+    "Baumgartner",
+    "Baur",
+    "Beck",
+    "Benz",
+    "Berger",
+    "Bernasconi",
+    "Betschart",
+    "Bianchi",
+    "Bieri",
+    "Blaser",
+    "Blum",
+    "Bolliger",
+    "Bosshard",
+    "Braun",
+    "Brun",
+    "Brunner",
+    "Bucher",
+    "Bühler",
+    "Bühlmann",
+    "Burri",
+    "Christen",
+    "Egger",
+    "Egli",
+    "Eichenberger",
+    "Erni",
+    "Ernst",
+    "Eugster",
+    "Fankhauser",
+    "Favre",
+    "Fehr",
+    "Felber",
+    "Felder",
+    "Ferrari",
+    "Fischer",
+    "Flückiger",
+    "Forster",
+    "Frei",
+    "Frey",
+    "Frick",
+    "Friedli",
+    "Fuchs",
+    "Furrer",
+    "Gasser",
+    "Geiger",
+    "Gerber",
+    "Gfeller",
+    "Giger",
+    "Gloor",
+    "Graf",
+    "Grob",
+    "Gross",
+    "Gut",
+    "Haas",
+    "Häfliger",
+    "Hafner",
+    "Hartmann",
+    "Hasler",
+    "Hauser",
+    "Hermann",
+    "Herzog",
+    "Hess",
+    "Hirt",
+    "Hodel",
+    "Hofer",
+    "Hoffmann",
+    "Hofmann",
+    "Hofstetter",
+    "Hotz",
+    "Huber",
+    "Hug",
+    "Hunziker",
+    "Hürlimann",
+    "Imhof",
+    "Isler",
+    "Iten",
+    "Jäggi",
+    "Jenni",
+    "Jost",
+    "Kägi",
+    "Kaiser",
+    "Kälin",
+    "Käser",
+    "Kaufmann",
+    "Keller",
+    "Kern",
+    "Kessler",
+    "Knecht",
+    "Koch",
+    "Kohler",
+    "Kuhn",
+    "Küng",
+    "Kunz",
+    "Lang",
+    "Lanz",
+    "Lehmann",
+    "Leu",
+    "Leunberger",
+    "Lüscher",
+    "Lustenberger",
+    "Lüthi",
+    "Lutz",
+    "Mäder",
+    "Maier",
+    "Marti",
+    "Martin",
+    "Maurer",
+    "Mayer",
+    "Meier",
+    "Meili",
+    "Meister",
+    "Merz",
+    "Mettler",
+    "Meyer",
+    "Michel",
+    "Moser",
+    "Müller",
+    "Näf",
+    "Ott",
+    "Peter",
+    "Pfister",
+    "Portmann",
+    "Probst",
+    "Rey",
+    "Ritter",
+    "Roos",
+    "Roth",
+    "Rüegg",
+    "Schäfer",
+    "Schaller",
+    "Schär",
+    "Schärer",
+    "Schaub",
+    "Scheidegger",
+    "Schenk",
+    "Scherrer",
+    "Schlatter",
+    "Schmid",
+    "Schmidt",
+    "Schneider",
+    "Schnyder",
+    "Schoch",
+    "Schuler",
+    "Schumacher",
+    "Schürch",
+    "Schwab",
+    "Schwarz",
+    "Schweizer",
+    "Seiler",
+    "Senn",
+    "Sidler",
+    "Siegrist",
+    "Sigrist",
+    "Spörri",
+    "Stadelmann",
+    "Stalder",
+    "Staub",
+    "Stauffer",
+    "Steffen",
+    "Steiger",
+    "Steiner",
+    "Steinmann",
+    "Stettler",
+    "Stocker",
+    "Stöckli",
+    "Stucki",
+    "Studer",
+    "Stutz",
+    "Suter",
+    "Sutter",
+    "Tanner",
+    "Thommen",
+    "Tobler",
+    "Vogel",
+    "Vogt",
+    "Wagner",
+    "Walder",
+    "Walter",
+    "Weber",
+    "Wegmann",
+    "Wehrli",
+    "Weibel",
+    "Wenger",
+    "Wettstein",
+    "Widmer",
+    "Winkler",
+    "Wirth",
+    "Wirz",
+    "Wolf",
+    "Wüthrich",
+    "Wyss",
+    "Zbinden",
+    "Zehnder",
+    "Ziegler",
+    "Zimmermann",
+    "Zingg",
+    "Zollinger",
+    "Zürcher"
+];
+
+},{}],175:[function(require,module,exports){
+module["exports"] = [
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}"
+];
+
+},{}],176:[function(require,module,exports){
+module["exports"] = [
+  "Hr.",
+  "Fr.",
+  "Dr."
+];
+
+},{}],177:[function(require,module,exports){
+module["exports"] = [
+  "0800 ### ###",
+  "0800 ## ## ##",
+  "0## ### ## ##",
+  "0## ### ## ##",
+  "+41 ## ### ## ##",
+  "0900 ### ###",
+  "076 ### ## ##",
+  "+4178 ### ## ##",
+  "0041 79 ### ## ##"
+];
+
+},{}],178:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":177,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],179:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "####",
+  "###"
+];
+
+},{}],180:[function(require,module,exports){
+module.exports=require(98)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/city.js":98}],181:[function(require,module,exports){
+module["exports"] = [
+  "North",
+  "East",
+  "West",
+  "South",
+  "New",
+  "Lake",
+  "Port"
+];
+
+},{}],182:[function(require,module,exports){
+module["exports"] = [
+  "town",
+  "ton",
+  "land",
+  "ville",
+  "berg",
+  "burgh",
+  "borough",
+  "bury",
+  "view",
+  "port",
+  "mouth",
+  "stad",
+  "furt",
+  "chester",
+  "mouth",
+  "fort",
+  "haven",
+  "side",
+  "shire"
+];
+
+},{}],183:[function(require,module,exports){
+module["exports"] = [
+  "Afghanistan",
+  "Albania",
+  "Algeria",
+  "American Samoa",
+  "Andorra",
+  "Angola",
+  "Anguilla",
+  "Antarctica (the territory South of 60 deg S)",
+  "Antigua and Barbuda",
+  "Argentina",
+  "Armenia",
+  "Aruba",
+  "Australia",
+  "Austria",
+  "Azerbaijan",
+  "Bahamas",
+  "Bahrain",
+  "Bangladesh",
+  "Barbados",
+  "Belarus",
+  "Belgium",
+  "Belize",
+  "Benin",
+  "Bermuda",
+  "Bhutan",
+  "Bolivia",
+  "Bosnia and Herzegovina",
+  "Botswana",
+  "Bouvet Island (Bouvetoya)",
+  "Brazil",
+  "British Indian Ocean Territory (Chagos Archipelago)",
+  "Brunei Darussalam",
+  "Bulgaria",
+  "Burkina Faso",
+  "Burundi",
+  "Cambodia",
+  "Cameroon",
+  "Canada",
+  "Cape Verde",
+  "Cayman Islands",
+  "Central African Republic",
+  "Chad",
+  "Chile",
+  "China",
+  "Christmas Island",
+  "Cocos (Keeling) Islands",
+  "Colombia",
+  "Comoros",
+  "Congo",
+  "Cook Islands",
+  "Costa Rica",
+  "Cote d'Ivoire",
+  "Croatia",
+  "Cuba",
+  "Cyprus",
+  "Czech Republic",
+  "Denmark",
+  "Djibouti",
+  "Dominica",
+  "Dominican Republic",
+  "Ecuador",
+  "Egypt",
+  "El Salvador",
+  "Equatorial Guinea",
+  "Eritrea",
+  "Estonia",
+  "Ethiopia",
+  "Faroe Islands",
+  "Falkland Islands (Malvinas)",
+  "Fiji",
+  "Finland",
+  "France",
+  "French Guiana",
+  "French Polynesia",
+  "French Southern Territories",
+  "Gabon",
+  "Gambia",
+  "Georgia",
+  "Germany",
+  "Ghana",
+  "Gibraltar",
+  "Greece",
+  "Greenland",
+  "Grenada",
+  "Guadeloupe",
+  "Guam",
+  "Guatemala",
+  "Guernsey",
+  "Guinea",
+  "Guinea-Bissau",
+  "Guyana",
+  "Haiti",
+  "Heard Island and McDonald Islands",
+  "Holy See (Vatican City State)",
+  "Honduras",
+  "Hong Kong",
+  "Hungary",
+  "Iceland",
+  "India",
+  "Indonesia",
+  "Iran",
+  "Iraq",
+  "Ireland",
+  "Isle of Man",
+  "Israel",
+  "Italy",
+  "Jamaica",
+  "Japan",
+  "Jersey",
+  "Jordan",
+  "Kazakhstan",
+  "Kenya",
+  "Kiribati",
+  "Democratic People's Republic of Korea",
+  "Republic of Korea",
+  "Kuwait",
+  "Kyrgyz Republic",
+  "Lao People's Democratic Republic",
+  "Latvia",
+  "Lebanon",
+  "Lesotho",
+  "Liberia",
+  "Libyan Arab Jamahiriya",
+  "Liechtenstein",
+  "Lithuania",
+  "Luxembourg",
+  "Macao",
+  "Macedonia",
+  "Madagascar",
+  "Malawi",
+  "Malaysia",
+  "Maldives",
+  "Mali",
+  "Malta",
+  "Marshall Islands",
+  "Martinique",
+  "Mauritania",
+  "Mauritius",
+  "Mayotte",
+  "Mexico",
+  "Micronesia",
+  "Moldova",
+  "Monaco",
+  "Mongolia",
+  "Montenegro",
+  "Montserrat",
+  "Morocco",
+  "Mozambique",
+  "Myanmar",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Netherlands Antilles",
+  "Netherlands",
+  "New Caledonia",
+  "New Zealand",
+  "Nicaragua",
+  "Niger",
+  "Nigeria",
+  "Niue",
+  "Norfolk Island",
+  "Northern Mariana Islands",
+  "Norway",
+  "Oman",
+  "Pakistan",
+  "Palau",
+  "Palestinian Territory",
+  "Panama",
+  "Papua New Guinea",
+  "Paraguay",
+  "Peru",
+  "Philippines",
+  "Pitcairn Islands",
+  "Poland",
+  "Portugal",
+  "Puerto Rico",
+  "Qatar",
+  "Reunion",
+  "Romania",
+  "Russian Federation",
+  "Rwanda",
+  "Saint Barthelemy",
+  "Saint Helena",
+  "Saint Kitts and Nevis",
+  "Saint Lucia",
+  "Saint Martin",
+  "Saint Pierre and Miquelon",
+  "Saint Vincent and the Grenadines",
+  "Samoa",
+  "San Marino",
+  "Sao Tome and Principe",
+  "Saudi Arabia",
+  "Senegal",
+  "Serbia",
+  "Seychelles",
+  "Sierra Leone",
+  "Singapore",
+  "Slovakia (Slovak Republic)",
+  "Slovenia",
+  "Solomon Islands",
+  "Somalia",
+  "South Africa",
+  "South Georgia and the South Sandwich Islands",
+  "Spain",
+  "Sri Lanka",
+  "Sudan",
+  "Suriname",
+  "Svalbard & Jan Mayen Islands",
+  "Swaziland",
+  "Sweden",
+  "Switzerland",
+  "Syrian Arab Republic",
+  "Taiwan",
+  "Tajikistan",
+  "Tanzania",
+  "Thailand",
+  "Timor-Leste",
+  "Togo",
+  "Tokelau",
+  "Tonga",
+  "Trinidad and Tobago",
+  "Tunisia",
+  "Turkey",
+  "Turkmenistan",
+  "Turks and Caicos Islands",
+  "Tuvalu",
+  "Uganda",
+  "Ukraine",
+  "United Arab Emirates",
+  "United Kingdom",
+  "United States of America",
+  "United States Minor Outlying Islands",
+  "Uruguay",
+  "Uzbekistan",
+  "Vanuatu",
+  "Venezuela",
+  "Vietnam",
+  "Virgin Islands, British",
+  "Virgin Islands, U.S.",
+  "Wallis and Futuna",
+  "Western Sahara",
+  "Yemen",
+  "Zambia",
+  "Zimbabwe"
+];
+
+},{}],184:[function(require,module,exports){
+module["exports"] = [
+  "AD",
+  "AE",
+  "AF",
+  "AG",
+  "AI",
+  "AL",
+  "AM",
+  "AO",
+  "AQ",
+  "AR",
+  "AS",
+  "AT",
+  "AU",
+  "AW",
+  "AX",
+  "AZ",
+  "BA",
+  "BB",
+  "BD",
+  "BE",
+  "BF",
+  "BG",
+  "BH",
+  "BI",
+  "BJ",
+  "BL",
+  "BM",
+  "BN",
+  "BO",
+  "BQ",
+  "BQ",
+  "BR",
+  "BS",
+  "BT",
+  "BV",
+  "BW",
+  "BY",
+  "BZ",
+  "CA",
+  "CC",
+  "CD",
+  "CF",
+  "CG",
+  "CH",
+  "CI",
+  "CK",
+  "CL",
+  "CM",
+  "CN",
+  "CO",
+  "CR",
+  "CU",
+  "CV",
+  "CW",
+  "CX",
+  "CY",
+  "CZ",
+  "DE",
+  "DJ",
+  "DK",
+  "DM",
+  "DO",
+  "DZ",
+  "EC",
+  "EE",
+  "EG",
+  "EH",
+  "ER",
+  "ES",
+  "ET",
+  "FI",
+  "FJ",
+  "FK",
+  "FM",
+  "FO",
+  "FR",
+  "GA",
+  "GB",
+  "GD",
+  "GE",
+  "GF",
+  "GG",
+  "GH",
+  "GI",
+  "GL",
+  "GM",
+  "GN",
+  "GP",
+  "GQ",
+  "GR",
+  "GS",
+  "GT",
+  "GU",
+  "GW",
+  "GY",
+  "HK",
+  "HM",
+  "HN",
+  "HR",
+  "HT",
+  "HU",
+  "ID",
+  "IE",
+  "IL",
+  "IM",
+  "IN",
+  "IO",
+  "IQ",
+  "IR",
+  "IS",
+  "IT",
+  "JE",
+  "JM",
+  "JO",
+  "JP",
+  "KE",
+  "KG",
+  "KH",
+  "KI",
+  "KM",
+  "KN",
+  "KP",
+  "KR",
+  "KW",
+  "KY",
+  "KZ",
+  "LA",
+  "LB",
+  "LC",
+  "LI",
+  "LK",
+  "LR",
+  "LS",
+  "LT",
+  "LU",
+  "LV",
+  "LY",
+  "MA",
+  "MC",
+  "MD",
+  "ME",
+  "MF",
+  "MG",
+  "MH",
+  "MK",
+  "ML",
+  "MM",
+  "MN",
+  "MO",
+  "MP",
+  "MQ",
+  "MR",
+  "MS",
+  "MT",
+  "MU",
+  "MV",
+  "MW",
+  "MX",
+  "MY",
+  "MZ",
+  "NA",
+  "NC",
+  "NE",
+  "NF",
+  "NG",
+  "NI",
+  "NL",
+  "NO",
+  "NP",
+  "NR",
+  "NU",
+  "NZ",
+  "OM",
+  "PA",
+  "PE",
+  "PF",
+  "PG",
+  "PH",
+  "PK",
+  "PL",
+  "PM",
+  "PN",
+  "PR",
+  "PS",
+  "PT",
+  "PW",
+  "PY",
+  "QA",
+  "RE",
+  "RO",
+  "RS",
+  "RU",
+  "RW",
+  "SA",
+  "SB",
+  "SC",
+  "SD",
+  "SE",
+  "SG",
+  "SH",
+  "SI",
+  "SJ",
+  "SK",
+  "SL",
+  "SM",
+  "SN",
+  "SO",
+  "SR",
+  "SS",
+  "ST",
+  "SV",
+  "SX",
+  "SY",
+  "SZ",
+  "TC",
+  "TD",
+  "TF",
+  "TG",
+  "TH",
+  "TJ",
+  "TK",
+  "TL",
+  "TM",
+  "TN",
+  "TO",
+  "TR",
+  "TT",
+  "TV",
+  "TW",
+  "TZ",
+  "UA",
+  "UG",
+  "UM",
+  "US",
+  "UY",
+  "UZ",
+  "VA",
+  "VC",
+  "VE",
+  "VG",
+  "VI",
+  "VN",
+  "VU",
+  "WF",
+  "WS",
+  "YE",
+  "YT",
+  "ZA",
+  "ZM",
+  "ZW"
+];
+
+},{}],185:[function(require,module,exports){
+module["exports"] = [
+  "Avon",
+  "Bedfordshire",
+  "Berkshire",
+  "Borders",
+  "Buckinghamshire",
+  "Cambridgeshire"
+];
+
+},{}],186:[function(require,module,exports){
+module["exports"] = [
+  "United States of America"
+];
+
+},{}],187:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.county = require("./county");
+address.country = require("./country");
+address.country_code = require("./country_code");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.postcode_by_state = require("./postcode_by_state");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.time_zone = require("./time_zone");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":179,"./city":180,"./city_prefix":181,"./city_suffix":182,"./country":183,"./country_code":184,"./county":185,"./default_country":186,"./postcode":188,"./postcode_by_state":189,"./secondary_address":190,"./state":191,"./state_abbr":192,"./street_address":193,"./street_name":194,"./street_suffix":195,"./time_zone":196}],188:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "#####-####"
+];
+
+},{}],189:[function(require,module,exports){
+module.exports=require(188)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/postcode.js":188}],190:[function(require,module,exports){
+module.exports=require(61)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/secondary_address.js":61}],191:[function(require,module,exports){
+module["exports"] = [
+  "Alabama",
+  "Alaska",
+  "Arizona",
+  "Arkansas",
+  "California",
+  "Colorado",
+  "Connecticut",
+  "Delaware",
+  "Florida",
+  "Georgia",
+  "Hawaii",
+  "Idaho",
+  "Illinois",
+  "Indiana",
+  "Iowa",
+  "Kansas",
+  "Kentucky",
+  "Louisiana",
+  "Maine",
+  "Maryland",
+  "Massachusetts",
+  "Michigan",
+  "Minnesota",
+  "Mississippi",
+  "Missouri",
+  "Montana",
+  "Nebraska",
+  "Nevada",
+  "New Hampshire",
+  "New Jersey",
+  "New Mexico",
+  "New York",
+  "North Carolina",
+  "North Dakota",
+  "Ohio",
+  "Oklahoma",
+  "Oregon",
+  "Pennsylvania",
+  "Rhode Island",
+  "South Carolina",
+  "South Dakota",
+  "Tennessee",
+  "Texas",
+  "Utah",
+  "Vermont",
+  "Virginia",
+  "Washington",
+  "West Virginia",
+  "Wisconsin",
+  "Wyoming"
+];
+
+},{}],192:[function(require,module,exports){
+module["exports"] = [
+  "AL",
+  "AK",
+  "AZ",
+  "AR",
+  "CA",
+  "CO",
+  "CT",
+  "DE",
+  "FL",
+  "GA",
+  "HI",
+  "ID",
+  "IL",
+  "IN",
+  "IA",
+  "KS",
+  "KY",
+  "LA",
+  "ME",
+  "MD",
+  "MA",
+  "MI",
+  "MN",
+  "MS",
+  "MO",
+  "MT",
+  "NE",
+  "NV",
+  "NH",
+  "NJ",
+  "NM",
+  "NY",
+  "NC",
+  "ND",
+  "OH",
+  "OK",
+  "OR",
+  "PA",
+  "RI",
+  "SC",
+  "SD",
+  "TN",
+  "TX",
+  "UT",
+  "VT",
+  "VA",
+  "WA",
+  "WV",
+  "WI",
+  "WY"
+];
+
+},{}],193:[function(require,module,exports){
+module["exports"] = [
+  "#{building_number} #{street_name}"
+];
+
+},{}],194:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.first_name} #{street_suffix}",
+  "#{Name.last_name} #{street_suffix}"
+];
+
+},{}],195:[function(require,module,exports){
+module["exports"] = [
+  "Alley",
+  "Avenue",
+  "Branch",
+  "Bridge",
+  "Brook",
+  "Brooks",
+  "Burg",
+  "Burgs",
+  "Bypass",
+  "Camp",
+  "Canyon",
+  "Cape",
+  "Causeway",
+  "Center",
+  "Centers",
+  "Circle",
+  "Circles",
+  "Cliff",
+  "Cliffs",
+  "Club",
+  "Common",
+  "Corner",
+  "Corners",
+  "Course",
+  "Court",
+  "Courts",
+  "Cove",
+  "Coves",
+  "Creek",
+  "Crescent",
+  "Crest",
+  "Crossing",
+  "Crossroad",
+  "Curve",
+  "Dale",
+  "Dam",
+  "Divide",
+  "Drive",
+  "Drive",
+  "Drives",
+  "Estate",
+  "Estates",
+  "Expressway",
+  "Extension",
+  "Extensions",
+  "Fall",
+  "Falls",
+  "Ferry",
+  "Field",
+  "Fields",
+  "Flat",
+  "Flats",
+  "Ford",
+  "Fords",
+  "Forest",
+  "Forge",
+  "Forges",
+  "Fork",
+  "Forks",
+  "Fort",
+  "Freeway",
+  "Garden",
+  "Gardens",
+  "Gateway",
+  "Glen",
+  "Glens",
+  "Green",
+  "Greens",
+  "Grove",
+  "Groves",
+  "Harbor",
+  "Harbors",
+  "Haven",
+  "Heights",
+  "Highway",
+  "Hill",
+  "Hills",
+  "Hollow",
+  "Inlet",
+  "Inlet",
+  "Island",
+  "Island",
+  "Islands",
+  "Islands",
+  "Isle",
+  "Isle",
+  "Junction",
+  "Junctions",
+  "Key",
+  "Keys",
+  "Knoll",
+  "Knolls",
+  "Lake",
+  "Lakes",
+  "Land",
+  "Landing",
+  "Lane",
+  "Light",
+  "Lights",
+  "Loaf",
+  "Lock",
+  "Locks",
+  "Locks",
+  "Lodge",
+  "Lodge",
+  "Loop",
+  "Mall",
+  "Manor",
+  "Manors",
+  "Meadow",
+  "Meadows",
+  "Mews",
+  "Mill",
+  "Mills",
+  "Mission",
+  "Mission",
+  "Motorway",
+  "Mount",
+  "Mountain",
+  "Mountain",
+  "Mountains",
+  "Mountains",
+  "Neck",
+  "Orchard",
+  "Oval",
+  "Overpass",
+  "Park",
+  "Parks",
+  "Parkway",
+  "Parkways",
+  "Pass",
+  "Passage",
+  "Path",
+  "Pike",
+  "Pine",
+  "Pines",
+  "Place",
+  "Plain",
+  "Plains",
+  "Plains",
+  "Plaza",
+  "Plaza",
+  "Point",
+  "Points",
+  "Port",
+  "Port",
+  "Ports",
+  "Ports",
+  "Prairie",
+  "Prairie",
+  "Radial",
+  "Ramp",
+  "Ranch",
+  "Rapid",
+  "Rapids",
+  "Rest",
+  "Ridge",
+  "Ridges",
+  "River",
+  "Road",
+  "Road",
+  "Roads",
+  "Roads",
+  "Route",
+  "Row",
+  "Rue",
+  "Run",
+  "Shoal",
+  "Shoals",
+  "Shore",
+  "Shores",
+  "Skyway",
+  "Spring",
+  "Springs",
+  "Springs",
+  "Spur",
+  "Spurs",
+  "Square",
+  "Square",
+  "Squares",
+  "Squares",
+  "Station",
+  "Station",
+  "Stravenue",
+  "Stravenue",
+  "Stream",
+  "Stream",
+  "Street",
+  "Street",
+  "Streets",
+  "Summit",
+  "Summit",
+  "Terrace",
+  "Throughway",
+  "Trace",
+  "Track",
+  "Trafficway",
+  "Trail",
+  "Trail",
+  "Tunnel",
+  "Tunnel",
+  "Turnpike",
+  "Turnpike",
+  "Underpass",
+  "Union",
+  "Unions",
+  "Valley",
+  "Valleys",
+  "Via",
+  "Viaduct",
+  "View",
+  "Views",
+  "Village",
+  "Village",
+  "Villages",
+  "Ville",
+  "Vista",
+  "Vista",
+  "Walk",
+  "Walks",
+  "Wall",
+  "Way",
+  "Ways",
+  "Well",
+  "Wells"
+];
+
+},{}],196:[function(require,module,exports){
+module.exports=require(67)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/time_zone.js":67}],197:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.name}",
+  "#{Company.name}"
+];
+
+},{}],198:[function(require,module,exports){
+var app = {};
+module['exports'] = app;
+app.name = require("./name");
+app.version = require("./version");
+app.author = require("./author");
+
+},{"./author":197,"./name":199,"./version":200}],199:[function(require,module,exports){
+module["exports"] = [
+  "Redhold",
+  "Treeflex",
+  "Trippledex",
+  "Kanlam",
+  "Bigtax",
+  "Daltfresh",
+  "Toughjoyfax",
+  "Mat Lam Tam",
+  "Otcom",
+  "Tres-Zap",
+  "Y-Solowarm",
+  "Tresom",
+  "Voltsillam",
+  "Biodex",
+  "Greenlam",
+  "Viva",
+  "Matsoft",
+  "Temp",
+  "Zoolab",
+  "Subin",
+  "Rank",
+  "Job",
+  "Stringtough",
+  "Tin",
+  "It",
+  "Home Ing",
+  "Zamit",
+  "Sonsing",
+  "Konklab",
+  "Alpha",
+  "Latlux",
+  "Voyatouch",
+  "Alphazap",
+  "Holdlamis",
+  "Zaam-Dox",
+  "Sub-Ex",
+  "Quo Lux",
+  "Bamity",
+  "Ventosanzap",
+  "Lotstring",
+  "Hatity",
+  "Tempsoft",
+  "Overhold",
+  "Fixflex",
+  "Konklux",
+  "Zontrax",
+  "Tampflex",
+  "Span",
+  "Namfix",
+  "Transcof",
+  "Stim",
+  "Fix San",
+  "Sonair",
+  "Stronghold",
+  "Fintone",
+  "Y-find",
+  "Opela",
+  "Lotlux",
+  "Ronstring",
+  "Zathin",
+  "Duobam",
+  "Keylex"
+];
+
+},{}],200:[function(require,module,exports){
+module["exports"] = [
+  "0.#.#",
+  "0.##",
+  "#.##",
+  "#.#",
+  "#.#.#"
+];
+
+},{}],201:[function(require,module,exports){
+module["exports"] = [
+  "2011-10-12",
+  "2012-11-12",
+  "2015-11-11",
+  "2013-9-12"
+];
+
+},{}],202:[function(require,module,exports){
+module["exports"] = [
+  "1234-2121-1221-1211",
+  "1212-1221-1121-1234",
+  "1211-1221-1234-2201",
+  "1228-1221-1221-1431"
+];
+
+},{}],203:[function(require,module,exports){
+module["exports"] = [
+  "visa",
+  "mastercard",
+  "americanexpress",
+  "discover"
+];
+
+},{}],204:[function(require,module,exports){
+var business = {};
+module['exports'] = business;
+business.credit_card_numbers = require("./credit_card_numbers");
+business.credit_card_expiry_dates = require("./credit_card_expiry_dates");
+business.credit_card_types = require("./credit_card_types");
+
+},{"./credit_card_expiry_dates":201,"./credit_card_numbers":202,"./credit_card_types":203}],205:[function(require,module,exports){
+module["exports"] = [
+  "###-###-####",
+  "(###) ###-####",
+  "1-###-###-####",
+  "###.###.####"
+];
+
+},{}],206:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":205,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],207:[function(require,module,exports){
+module["exports"] = [
+  "red",
+  "green",
+  "blue",
+  "yellow",
+  "purple",
+  "mint green",
+  "teal",
+  "white",
+  "black",
+  "orange",
+  "pink",
+  "grey",
+  "maroon",
+  "violet",
+  "turquoise",
+  "tan",
+  "sky blue",
+  "salmon",
+  "plum",
+  "orchid",
+  "olive",
+  "magenta",
+  "lime",
+  "ivory",
+  "indigo",
+  "gold",
+  "fuchsia",
+  "cyan",
+  "azure",
+  "lavender",
+  "silver"
+];
+
+},{}],208:[function(require,module,exports){
+module["exports"] = [
+  "Books",
+  "Movies",
+  "Music",
+  "Games",
+  "Electronics",
+  "Computers",
+  "Home",
+  "Garden",
+  "Tools",
+  "Grocery",
+  "Health",
+  "Beauty",
+  "Toys",
+  "Kids",
+  "Baby",
+  "Clothing",
+  "Shoes",
+  "Jewelery",
+  "Sports",
+  "Outdoors",
+  "Automotive",
+  "Industrial"
+];
+
+},{}],209:[function(require,module,exports){
+arguments[4][31][0].apply(exports,arguments)
+},{"./color":207,"./department":208,"./product_name":210,"/Users/a/dev/faker.js/lib/locales/az/commerce/index.js":31}],210:[function(require,module,exports){
+module["exports"] = {
+  "adjective": [
+    "Small",
+    "Ergonomic",
+    "Rustic",
+    "Intelligent",
+    "Gorgeous",
+    "Incredible",
+    "Fantastic",
+    "Practical",
+    "Sleek",
+    "Awesome",
+    "Generic",
+    "Handcrafted",
+    "Handmade",
+    "Licensed",
+    "Refined",
+    "Unbranded",
+    "Tasty"
+  ],
+  "material": [
+    "Steel",
+    "Wooden",
+    "Concrete",
+    "Plastic",
+    "Cotton",
+    "Granite",
+    "Rubber",
+    "Metal",
+    "Soft",
+    "Fresh",
+    "Frozen"
+  ],
+  "product": [
+    "Chair",
+    "Car",
+    "Computer",
+    "Keyboard",
+    "Mouse",
+    "Bike",
+    "Ball",
+    "Gloves",
+    "Pants",
+    "Shirt",
+    "Table",
+    "Shoes",
+    "Hat",
+    "Towels",
+    "Soap",
+    "Tuna",
+    "Chicken",
+    "Fish",
+    "Cheese",
+    "Bacon",
+    "Pizza",
+    "Salad",
+    "Sausages",
+    "Chips"
+  ]
+};
+
+},{}],211:[function(require,module,exports){
+module.exports=require(68)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/adjective.js":68}],212:[function(require,module,exports){
+module["exports"] = [
+  "clicks-and-mortar",
+  "value-added",
+  "vertical",
+  "proactive",
+  "robust",
+  "revolutionary",
+  "scalable",
+  "leading-edge",
+  "innovative",
+  "intuitive",
+  "strategic",
+  "e-business",
+  "mission-critical",
+  "sticky",
+  "one-to-one",
+  "24/7",
+  "end-to-end",
+  "global",
+  "B2B",
+  "B2C",
+  "granular",
+  "frictionless",
+  "virtual",
+  "viral",
+  "dynamic",
+  "24/365",
+  "best-of-breed",
+  "killer",
+  "magnetic",
+  "bleeding-edge",
+  "web-enabled",
+  "interactive",
+  "dot-com",
+  "sexy",
+  "back-end",
+  "real-time",
+  "efficient",
+  "front-end",
+  "distributed",
+  "seamless",
+  "extensible",
+  "turn-key",
+  "world-class",
+  "open-source",
+  "cross-platform",
+  "cross-media",
+  "synergistic",
+  "bricks-and-clicks",
+  "out-of-the-box",
+  "enterprise",
+  "integrated",
+  "impactful",
+  "wireless",
+  "transparent",
+  "next-generation",
+  "cutting-edge",
+  "user-centric",
+  "visionary",
+  "customized",
+  "ubiquitous",
+  "plug-and-play",
+  "collaborative",
+  "compelling",
+  "holistic",
+  "rich"
+];
+
+},{}],213:[function(require,module,exports){
+module["exports"] = [
+  "synergies",
+  "web-readiness",
+  "paradigms",
+  "markets",
+  "partnerships",
+  "infrastructures",
+  "platforms",
+  "initiatives",
+  "channels",
+  "eyeballs",
+  "communities",
+  "ROI",
+  "solutions",
+  "e-tailers",
+  "e-services",
+  "action-items",
+  "portals",
+  "niches",
+  "technologies",
+  "content",
+  "vortals",
+  "supply-chains",
+  "convergence",
+  "relationships",
+  "architectures",
+  "interfaces",
+  "e-markets",
+  "e-commerce",
+  "systems",
+  "bandwidth",
+  "infomediaries",
+  "models",
+  "mindshare",
+  "deliverables",
+  "users",
+  "schemas",
+  "networks",
+  "applications",
+  "metrics",
+  "e-business",
+  "functionalities",
+  "experiences",
+  "web services",
+  "methodologies"
+];
+
+},{}],214:[function(require,module,exports){
+module.exports=require(70)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/bs_verb.js":70}],215:[function(require,module,exports){
+module.exports=require(71)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/descriptor.js":71}],216:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.adjective = require("./adjective");
+company.descriptor = require("./descriptor");
+company.noun = require("./noun");
+company.bs_verb = require("./bs_verb");
+company.bs_adjective = require("./bs_adjective");
+company.bs_noun = require("./bs_noun");
+company.name = require("./name");
+
+},{"./adjective":211,"./bs_adjective":212,"./bs_noun":213,"./bs_verb":214,"./descriptor":215,"./name":217,"./noun":218,"./suffix":219}],217:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name}-#{Name.last_name}",
+  "#{Name.last_name}, #{Name.last_name} and #{Name.last_name}"
+];
+
+},{}],218:[function(require,module,exports){
+module.exports=require(74)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/noun.js":74}],219:[function(require,module,exports){
+module["exports"] = [
+  "Inc",
+  "and Sons",
+  "LLC",
+  "Group"
+];
+
+},{}],220:[function(require,module,exports){
+module["exports"] = [
+  "/34##-######-####L/",
+  "/37##-######-####L/"
+];
+
+},{}],221:[function(require,module,exports){
+module["exports"] = [
+  "/30[0-5]#-######-###L/",
+  "/368#-######-###L/"
+];
+
+},{}],222:[function(require,module,exports){
+module["exports"] = [
+  "/6011-####-####-###L/",
+  "/65##-####-####-###L/",
+  "/64[4-9]#-####-####-###L/",
+  "/6011-62##-####-####-###L/",
+  "/65##-62##-####-####-###L/",
+  "/64[4-9]#-62##-####-####-###L/"
+];
+
+},{}],223:[function(require,module,exports){
+var credit_card = {};
+module['exports'] = credit_card;
+credit_card.visa = require("./visa");
+credit_card.mastercard = require("./mastercard");
+credit_card.discover = require("./discover");
+credit_card.american_express = require("./american_express");
+credit_card.diners_club = require("./diners_club");
+credit_card.jcb = require("./jcb");
+credit_card.switch = require("./switch");
+credit_card.solo = require("./solo");
+credit_card.maestro = require("./maestro");
+credit_card.laser = require("./laser");
+
+},{"./american_express":220,"./diners_club":221,"./discover":222,"./jcb":224,"./laser":225,"./maestro":226,"./mastercard":227,"./solo":228,"./switch":229,"./visa":230}],224:[function(require,module,exports){
+module["exports"] = [
+  "/3528-####-####-###L/",
+  "/3529-####-####-###L/",
+  "/35[3-8]#-####-####-###L/"
+];
+
+},{}],225:[function(require,module,exports){
+module["exports"] = [
+  "/6304###########L/",
+  "/6706###########L/",
+  "/6771###########L/",
+  "/6709###########L/",
+  "/6304#########{5,6}L/",
+  "/6706#########{5,6}L/",
+  "/6771#########{5,6}L/",
+  "/6709#########{5,6}L/"
+];
+
+},{}],226:[function(require,module,exports){
+module["exports"] = [
+  "/50#{9,16}L/",
+  "/5[6-8]#{9,16}L/",
+  "/56##{9,16}L/"
+];
+
+},{}],227:[function(require,module,exports){
+module["exports"] = [
+  "/5[1-5]##-####-####-###L/",
+  "/6771-89##-####-###L/"
+];
+
+},{}],228:[function(require,module,exports){
+module["exports"] = [
+  "/6767-####-####-###L/",
+  "/6767-####-####-####-#L/",
+  "/6767-####-####-####-##L/"
+];
+
+},{}],229:[function(require,module,exports){
+module["exports"] = [
+  "/6759-####-####-###L/",
+  "/6759-####-####-####-#L/",
+  "/6759-####-####-####-##L/"
+];
+
+},{}],230:[function(require,module,exports){
+module["exports"] = [
+  "/4###########L/",
+  "/4###-####-####-###L/"
+];
+
+},{}],231:[function(require,module,exports){
+module["exports"] = [
+  "utf8_unicode_ci",
+  "utf8_general_ci",
+  "utf8_bin",
+  "ascii_bin",
+  "ascii_general_ci",
+  "cp1250_bin",
+  "cp1250_general_ci"
+];
+
+},{}],232:[function(require,module,exports){
+module["exports"] = [
+  "id",
+  "title",
+  "name",
+  "email",
+  "phone",
+  "token",
+  "group",
+  "category",
+  "password",
+  "comment",
+  "avatar",
+  "status",
+  "createdAt",
+  "updatedAt"
+];
+
+},{}],233:[function(require,module,exports){
+module["exports"] = [
+  "InnoDB",
+  "MyISAM",
+  "MEMORY",
+  "CSV",
+  "BLACKHOLE",
+  "ARCHIVE"
+];
+
+},{}],234:[function(require,module,exports){
+var database = {};
+module['exports'] = database;
+database.collation = require("./collation");
+database.column = require("./column");
+database.engine = require("./engine");
+database.type = require("./type");
+},{"./collation":231,"./column":232,"./engine":233,"./type":235}],235:[function(require,module,exports){
+module["exports"] = [
+  "int",
+  "varchar",
+  "text",
+  "date",
+  "datetime",
+  "tinyint",
+  "time",
+  "timestamp",
+  "smallint",
+  "mediumint",
+  "bigint",
+  "decimal",
+  "float",
+  "double",
+  "real",
+  "bit",
+  "boolean",
+  "serial",
+  "blob",
+  "binary",
+  "enum",
+  "set",
+  "geometry",
+  "point"
+];
+
+},{}],236:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"./month":237,"./weekday":238,"/Users/a/dev/faker.js/lib/locales/az/date/index.js":37}],237:[function(require,module,exports){
+// Source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/en.xml#L1799
+module["exports"] = {
+  wide: [
+    "January",
+    "February",
+    "March",
+    "April",
+    "May",
+    "June",
+    "July",
+    "August",
+    "September",
+    "October",
+    "November",
+    "December"
+  ],
+  // Property "wide_context" is optional, if not set then "wide" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  wide_context: [
+    "January",
+    "February",
+    "March",
+    "April",
+    "May",
+    "June",
+    "July",
+    "August",
+    "September",
+    "October",
+    "November",
+    "December"
+  ],
+  abbr: [
+    "Jan",
+    "Feb",
+    "Mar",
+    "Apr",
+    "May",
+    "Jun",
+    "Jul",
+    "Aug",
+    "Sep",
+    "Oct",
+    "Nov",
+    "Dec"
+  ],
+  // Property "abbr_context" is optional, if not set then "abbr" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  abbr_context: [
+    "Jan",
+    "Feb",
+    "Mar",
+    "Apr",
+    "May",
+    "Jun",
+    "Jul",
+    "Aug",
+    "Sep",
+    "Oct",
+    "Nov",
+    "Dec"
+  ]
+};
+
+},{}],238:[function(require,module,exports){
+// Source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/en.xml#L1847
+module["exports"] = {
+  wide: [
+    "Sunday",
+    "Monday",
+    "Tuesday",
+    "Wednesday",
+    "Thursday",
+    "Friday",
+    "Saturday"
+  ],
+  // Property "wide_context" is optional, if not set then "wide" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  wide_context: [
+    "Sunday",
+    "Monday",
+    "Tuesday",
+    "Wednesday",
+    "Thursday",
+    "Friday",
+    "Saturday"
+  ],
+  abbr: [
+    "Sun",
+    "Mon",
+    "Tue",
+    "Wed",
+    "Thu",
+    "Fri",
+    "Sat"
+  ],
+  // Property "abbr_context" is optional, if not set then "abbr" will be used instead
+  // It is used to specify a word in context, which may differ from a stand-alone word
+  abbr_context: [
+    "Sun",
+    "Mon",
+    "Tue",
+    "Wed",
+    "Thu",
+    "Fri",
+    "Sat"
+  ]
+};
+
+},{}],239:[function(require,module,exports){
+module["exports"] = [
+  "Checking",
+  "Savings",
+  "Money Market",
+  "Investment",
+  "Home Loan",
+  "Credit Card",
+  "Auto Loan",
+  "Personal Loan"
+];
+
+},{}],240:[function(require,module,exports){
+module["exports"] = {
+  "UAE Dirham": {
+    "code": "AED",
+    "symbol": ""
+  },
+  "Afghani": {
+    "code": "AFN",
+    "symbol": "؋"
+  },
+  "Lek": {
+    "code": "ALL",
+    "symbol": "Lek"
+  },
+  "Armenian Dram": {
+    "code": "AMD",
+    "symbol": ""
+  },
+  "Netherlands Antillian Guilder": {
+    "code": "ANG",
+    "symbol": "ƒ"
+  },
+  "Kwanza": {
+    "code": "AOA",
+    "symbol": ""
+  },
+  "Argentine Peso": {
+    "code": "ARS",
+    "symbol": "$"
+  },
+  "Australian Dollar": {
+    "code": "AUD",
+    "symbol": "$"
+  },
+  "Aruban Guilder": {
+    "code": "AWG",
+    "symbol": "ƒ"
+  },
+  "Azerbaijanian Manat": {
+    "code": "AZN",
+    "symbol": "ман"
+  },
+  "Convertible Marks": {
+    "code": "BAM",
+    "symbol": "KM"
+  },
+  "Barbados Dollar": {
+    "code": "BBD",
+    "symbol": "$"
+  },
+  "Taka": {
+    "code": "BDT",
+    "symbol": ""
+  },
+  "Bulgarian Lev": {
+    "code": "BGN",
+    "symbol": "лв"
+  },
+  "Bahraini Dinar": {
+    "code": "BHD",
+    "symbol": ""
+  },
+  "Burundi Franc": {
+    "code": "BIF",
+    "symbol": ""
+  },
+  "Bermudian Dollar (customarily known as Bermuda Dollar)": {
+    "code": "BMD",
+    "symbol": "$"
+  },
+  "Brunei Dollar": {
+    "code": "BND",
+    "symbol": "$"
+  },
+  "Boliviano Mvdol": {
+    "code": "BOB BOV",
+    "symbol": "$b"
+  },
+  "Brazilian Real": {
+    "code": "BRL",
+    "symbol": "R$"
+  },
+  "Bahamian Dollar": {
+    "code": "BSD",
+    "symbol": "$"
+  },
+  "Pula": {
+    "code": "BWP",
+    "symbol": "P"
+  },
+  "Belarussian Ruble": {
+    "code": "BYR",
+    "symbol": "p."
+  },
+  "Belize Dollar": {
+    "code": "BZD",
+    "symbol": "BZ$"
+  },
+  "Canadian Dollar": {
+    "code": "CAD",
+    "symbol": "$"
+  },
+  "Congolese Franc": {
+    "code": "CDF",
+    "symbol": ""
+  },
+  "Swiss Franc": {
+    "code": "CHF",
+    "symbol": "CHF"
+  },
+  "Chilean Peso Unidades de fomento": {
+    "code": "CLP CLF",
+    "symbol": "$"
+  },
+  "Yuan Renminbi": {
+    "code": "CNY",
+    "symbol": "¥"
+  },
+  "Colombian Peso Unidad de Valor Real": {
+    "code": "COP COU",
+    "symbol": "$"
+  },
+  "Costa Rican Colon": {
+    "code": "CRC",
+    "symbol": "₡"
+  },
+  "Cuban Peso Peso Convertible": {
+    "code": "CUP CUC",
+    "symbol": "₱"
+  },
+  "Cape Verde Escudo": {
+    "code": "CVE",
+    "symbol": ""
+  },
+  "Czech Koruna": {
+    "code": "CZK",
+    "symbol": "Kč"
+  },
+  "Djibouti Franc": {
+    "code": "DJF",
+    "symbol": ""
+  },
+  "Danish Krone": {
+    "code": "DKK",
+    "symbol": "kr"
+  },
+  "Dominican Peso": {
+    "code": "DOP",
+    "symbol": "RD$"
+  },
+  "Algerian Dinar": {
+    "code": "DZD",
+    "symbol": ""
+  },
+  "Kroon": {
+    "code": "EEK",
+    "symbol": ""
+  },
+  "Egyptian Pound": {
+    "code": "EGP",
+    "symbol": "£"
+  },
+  "Nakfa": {
+    "code": "ERN",
+    "symbol": ""
+  },
+  "Ethiopian Birr": {
+    "code": "ETB",
+    "symbol": ""
+  },
+  "Euro": {
+    "code": "EUR",
+    "symbol": "€"
+  },
+  "Fiji Dollar": {
+    "code": "FJD",
+    "symbol": "$"
+  },
+  "Falkland Islands Pound": {
+    "code": "FKP",
+    "symbol": "£"
+  },
+  "Pound Sterling": {
+    "code": "GBP",
+    "symbol": "£"
+  },
+  "Lari": {
+    "code": "GEL",
+    "symbol": ""
+  },
+  "Cedi": {
+    "code": "GHS",
+    "symbol": ""
+  },
+  "Gibraltar Pound": {
+    "code": "GIP",
+    "symbol": "£"
+  },
+  "Dalasi": {
+    "code": "GMD",
+    "symbol": ""
+  },
+  "Guinea Franc": {
+    "code": "GNF",
+    "symbol": ""
+  },
+  "Quetzal": {
+    "code": "GTQ",
+    "symbol": "Q"
+  },
+  "Guyana Dollar": {
+    "code": "GYD",
+    "symbol": "$"
+  },
+  "Hong Kong Dollar": {
+    "code": "HKD",
+    "symbol": "$"
+  },
+  "Lempira": {
+    "code": "HNL",
+    "symbol": "L"
+  },
+  "Croatian Kuna": {
+    "code": "HRK",
+    "symbol": "kn"
+  },
+  "Gourde US Dollar": {
+    "code": "HTG USD",
+    "symbol": ""
+  },
+  "Forint": {
+    "code": "HUF",
+    "symbol": "Ft"
+  },
+  "Rupiah": {
+    "code": "IDR",
+    "symbol": "Rp"
+  },
+  "New Israeli Sheqel": {
+    "code": "ILS",
+    "symbol": "₪"
+  },
+  "Indian Rupee": {
+    "code": "INR",
+    "symbol": ""
+  },
+  "Indian Rupee Ngultrum": {
+    "code": "INR BTN",
+    "symbol": ""
+  },
+  "Iraqi Dinar": {
+    "code": "IQD",
+    "symbol": ""
+  },
+  "Iranian Rial": {
+    "code": "IRR",
+    "symbol": "﷼"
+  },
+  "Iceland Krona": {
+    "code": "ISK",
+    "symbol": "kr"
+  },
+  "Jamaican Dollar": {
+    "code": "JMD",
+    "symbol": "J$"
+  },
+  "Jordanian Dinar": {
+    "code": "JOD",
+    "symbol": ""
+  },
+  "Yen": {
+    "code": "JPY",
+    "symbol": "¥"
+  },
+  "Kenyan Shilling": {
+    "code": "KES",
+    "symbol": ""
+  },
+  "Som": {
+    "code": "KGS",
+    "symbol": "лв"
+  },
+  "Riel": {
+    "code": "KHR",
+    "symbol": "៛"
+  },
+  "Comoro Franc": {
+    "code": "KMF",
+    "symbol": ""
+  },
+  "North Korean Won": {
+    "code": "KPW",
+    "symbol": "₩"
+  },
+  "Won": {
+    "code": "KRW",
+    "symbol": "₩"
+  },
+  "Kuwaiti Dinar": {
+    "code": "KWD",
+    "symbol": ""
+  },
+  "Cayman Islands Dollar": {
+    "code": "KYD",
+    "symbol": "$"
+  },
+  "Tenge": {
+    "code": "KZT",
+    "symbol": "лв"
+  },
+  "Kip": {
+    "code": "LAK",
+    "symbol": "₭"
+  },
+  "Lebanese Pound": {
+    "code": "LBP",
+    "symbol": "£"
+  },
+  "Sri Lanka Rupee": {
+    "code": "LKR",
+    "symbol": "₨"
+  },
+  "Liberian Dollar": {
+    "code": "LRD",
+    "symbol": "$"
+  },
+  "Lithuanian Litas": {
+    "code": "LTL",
+    "symbol": "Lt"
+  },
+  "Latvian Lats": {
+    "code": "LVL",
+    "symbol": "Ls"
+  },
+  "Libyan Dinar": {
+    "code": "LYD",
+    "symbol": ""
+  },
+  "Moroccan Dirham": {
+    "code": "MAD",
+    "symbol": ""
+  },
+  "Moldovan Leu": {
+    "code": "MDL",
+    "symbol": ""
+  },
+  "Malagasy Ariary": {
+    "code": "MGA",
+    "symbol": ""
+  },
+  "Denar": {
+    "code": "MKD",
+    "symbol": "ден"
+  },
+  "Kyat": {
+    "code": "MMK",
+    "symbol": ""
+  },
+  "Tugrik": {
+    "code": "MNT",
+    "symbol": "₮"
+  },
+  "Pataca": {
+    "code": "MOP",
+    "symbol": ""
+  },
+  "Ouguiya": {
+    "code": "MRO",
+    "symbol": ""
+  },
+  "Mauritius Rupee": {
+    "code": "MUR",
+    "symbol": "₨"
+  },
+  "Rufiyaa": {
+    "code": "MVR",
+    "symbol": ""
+  },
+  "Kwacha": {
+    "code": "MWK",
+    "symbol": ""
+  },
+  "Mexican Peso Mexican Unidad de Inversion (UDI)": {
+    "code": "MXN MXV",
+    "symbol": "$"
+  },
+  "Malaysian Ringgit": {
+    "code": "MYR",
+    "symbol": "RM"
+  },
+  "Metical": {
+    "code": "MZN",
+    "symbol": "MT"
+  },
+  "Naira": {
+    "code": "NGN",
+    "symbol": "₦"
+  },
+  "Cordoba Oro": {
+    "code": "NIO",
+    "symbol": "C$"
+  },
+  "Norwegian Krone": {
+    "code": "NOK",
+    "symbol": "kr"
+  },
+  "Nepalese Rupee": {
+    "code": "NPR",
+    "symbol": "₨"
+  },
+  "New Zealand Dollar": {
+    "code": "NZD",
+    "symbol": "$"
+  },
+  "Rial Omani": {
+    "code": "OMR",
+    "symbol": "﷼"
+  },
+  "Balboa US Dollar": {
+    "code": "PAB USD",
+    "symbol": "B/."
+  },
+  "Nuevo Sol": {
+    "code": "PEN",
+    "symbol": "S/."
+  },
+  "Kina": {
+    "code": "PGK",
+    "symbol": ""
+  },
+  "Philippine Peso": {
+    "code": "PHP",
+    "symbol": "Php"
+  },
+  "Pakistan Rupee": {
+    "code": "PKR",
+    "symbol": "₨"
+  },
+  "Zloty": {
+    "code": "PLN",
+    "symbol": "zł"
+  },
+  "Guarani": {
+    "code": "PYG",
+    "symbol": "Gs"
+  },
+  "Qatari Rial": {
+    "code": "QAR",
+    "symbol": "﷼"
+  },
+  "New Leu": {
+    "code": "RON",
+    "symbol": "lei"
+  },
+  "Serbian Dinar": {
+    "code": "RSD",
+    "symbol": "Дин."
+  },
+  "Russian Ruble": {
+    "code": "RUB",
+    "symbol": "руб"
+  },
+  "Rwanda Franc": {
+    "code": "RWF",
+    "symbol": ""
+  },
+  "Saudi Riyal": {
+    "code": "SAR",
+    "symbol": "﷼"
+  },
+  "Solomon Islands Dollar": {
+    "code": "SBD",
+    "symbol": "$"
+  },
+  "Seychelles Rupee": {
+    "code": "SCR",
+    "symbol": "₨"
+  },
+  "Sudanese Pound": {
+    "code": "SDG",
+    "symbol": ""
+  },
+  "Swedish Krona": {
+    "code": "SEK",
+    "symbol": "kr"
+  },
+  "Singapore Dollar": {
+    "code": "SGD",
+    "symbol": "$"
+  },
+  "Saint Helena Pound": {
+    "code": "SHP",
+    "symbol": "£"
+  },
+  "Leone": {
+    "code": "SLL",
+    "symbol": ""
+  },
+  "Somali Shilling": {
+    "code": "SOS",
+    "symbol": "S"
+  },
+  "Surinam Dollar": {
+    "code": "SRD",
+    "symbol": "$"
+  },
+  "Dobra": {
+    "code": "STD",
+    "symbol": ""
+  },
+  "El Salvador Colon US Dollar": {
+    "code": "SVC USD",
+    "symbol": "$"
+  },
+  "Syrian Pound": {
+    "code": "SYP",
+    "symbol": "£"
+  },
+  "Lilangeni": {
+    "code": "SZL",
+    "symbol": ""
+  },
+  "Baht": {
+    "code": "THB",
+    "symbol": "฿"
+  },
+  "Somoni": {
+    "code": "TJS",
+    "symbol": ""
+  },
+  "Manat": {
+    "code": "TMT",
+    "symbol": ""
+  },
+  "Tunisian Dinar": {
+    "code": "TND",
+    "symbol": ""
+  },
+  "Pa'anga": {
+    "code": "TOP",
+    "symbol": ""
+  },
+  "Turkish Lira": {
+    "code": "TRY",
+    "symbol": "TL"
+  },
+  "Trinidad and Tobago Dollar": {
+    "code": "TTD",
+    "symbol": "TT$"
+  },
+  "New Taiwan Dollar": {
+    "code": "TWD",
+    "symbol": "NT$"
+  },
+  "Tanzanian Shilling": {
+    "code": "TZS",
+    "symbol": ""
+  },
+  "Hryvnia": {
+    "code": "UAH",
+    "symbol": "₴"
+  },
+  "Uganda Shilling": {
+    "code": "UGX",
+    "symbol": ""
+  },
+  "US Dollar": {
+    "code": "USD",
+    "symbol": "$"
+  },
+  "Peso Uruguayo Uruguay Peso en Unidades Indexadas": {
+    "code": "UYU UYI",
+    "symbol": "$U"
+  },
+  "Uzbekistan Sum": {
+    "code": "UZS",
+    "symbol": "лв"
+  },
+  "Bolivar Fuerte": {
+    "code": "VEF",
+    "symbol": "Bs"
+  },
+  "Dong": {
+    "code": "VND",
+    "symbol": "₫"
+  },
+  "Vatu": {
+    "code": "VUV",
+    "symbol": ""
+  },
+  "Tala": {
+    "code": "WST",
+    "symbol": ""
+  },
+  "CFA Franc BEAC": {
+    "code": "XAF",
+    "symbol": ""
+  },
+  "Silver": {
+    "code": "XAG",
+    "symbol": ""
+  },
+  "Gold": {
+    "code": "XAU",
+    "symbol": ""
+  },
+  "Bond Markets Units European Composite Unit (EURCO)": {
+    "code": "XBA",
+    "symbol": ""
+  },
+  "European Monetary Unit (E.M.U.-6)": {
+    "code": "XBB",
+    "symbol": ""
+  },
+  "European Unit of Account 9(E.U.A.-9)": {
+    "code": "XBC",
+    "symbol": ""
+  },
+  "European Unit of Account 17(E.U.A.-17)": {
+    "code": "XBD",
+    "symbol": ""
+  },
+  "East Caribbean Dollar": {
+    "code": "XCD",
+    "symbol": "$"
+  },
+  "SDR": {
+    "code": "XDR",
+    "symbol": ""
+  },
+  "UIC-Franc": {
+    "code": "XFU",
+    "symbol": ""
+  },
+  "CFA Franc BCEAO": {
+    "code": "XOF",
+    "symbol": ""
+  },
+  "Palladium": {
+    "code": "XPD",
+    "symbol": ""
+  },
+  "CFP Franc": {
+    "code": "XPF",
+    "symbol": ""
+  },
+  "Platinum": {
+    "code": "XPT",
+    "symbol": ""
+  },
+  "Codes specifically reserved for testing purposes": {
+    "code": "XTS",
+    "symbol": ""
+  },
+  "Yemeni Rial": {
+    "code": "YER",
+    "symbol": "﷼"
+  },
+  "Rand": {
+    "code": "ZAR",
+    "symbol": "R"
+  },
+  "Rand Loti": {
+    "code": "ZAR LSL",
+    "symbol": ""
+  },
+  "Rand Namibia Dollar": {
+    "code": "ZAR NAD",
+    "symbol": ""
+  },
+  "Zambian Kwacha": {
+    "code": "ZMK",
+    "symbol": ""
+  },
+  "Zimbabwe Dollar": {
+    "code": "ZWL",
+    "symbol": ""
+  }
+};
+
+},{}],241:[function(require,module,exports){
+var finance = {};
+module['exports'] = finance;
+finance.account_type = require("./account_type");
+finance.transaction_type = require("./transaction_type");
+finance.currency = require("./currency");
+
+},{"./account_type":239,"./currency":240,"./transaction_type":242}],242:[function(require,module,exports){
+module["exports"] = [
+  "deposit",
+  "withdrawal",
+  "payment",
+  "invoice"
+];
+
+},{}],243:[function(require,module,exports){
+module["exports"] = [
+  "TCP",
+  "HTTP",
+  "SDD",
+  "RAM",
+  "GB",
+  "CSS",
+  "SSL",
+  "AGP",
+  "SQL",
+  "FTP",
+  "PCI",
+  "AI",
+  "ADP",
+  "RSS",
+  "XML",
+  "EXE",
+  "COM",
+  "HDD",
+  "THX",
+  "SMTP",
+  "SMS",
+  "USB",
+  "PNG",
+  "SAS",
+  "IB",
+  "SCSI",
+  "JSON",
+  "XSS",
+  "JBOD"
+];
+
+},{}],244:[function(require,module,exports){
+module["exports"] = [
+  "auxiliary",
+  "primary",
+  "back-end",
+  "digital",
+  "open-source",
+  "virtual",
+  "cross-platform",
+  "redundant",
+  "online",
+  "haptic",
+  "multi-byte",
+  "bluetooth",
+  "wireless",
+  "1080p",
+  "neural",
+  "optical",
+  "solid state",
+  "mobile"
+];
+
+},{}],245:[function(require,module,exports){
+var hacker = {};
+module['exports'] = hacker;
+hacker.abbreviation = require("./abbreviation");
+hacker.adjective = require("./adjective");
+hacker.noun = require("./noun");
+hacker.verb = require("./verb");
+hacker.ingverb = require("./ingverb");
+
+},{"./abbreviation":243,"./adjective":244,"./ingverb":246,"./noun":247,"./verb":248}],246:[function(require,module,exports){
+module["exports"] = [
+  "backing up",
+  "bypassing",
+  "hacking",
+  "overriding",
+  "compressing",
+  "copying",
+  "navigating",
+  "indexing",
+  "connecting",
+  "generating",
+  "quantifying",
+  "calculating",
+  "synthesizing",
+  "transmitting",
+  "programming",
+  "parsing"
+];
+
+},{}],247:[function(require,module,exports){
+module["exports"] = [
+  "driver",
+  "protocol",
+  "bandwidth",
+  "panel",
+  "microchip",
+  "program",
+  "port",
+  "card",
+  "array",
+  "interface",
+  "system",
+  "sensor",
+  "firewall",
+  "hard drive",
+  "pixel",
+  "alarm",
+  "feed",
+  "monitor",
+  "application",
+  "transmitter",
+  "bus",
+  "circuit",
+  "capacitor",
+  "matrix"
+];
+
+},{}],248:[function(require,module,exports){
+module["exports"] = [
+  "back up",
+  "bypass",
+  "hack",
+  "override",
+  "compress",
+  "copy",
+  "navigate",
+  "index",
+  "connect",
+  "generate",
+  "quantify",
+  "calculate",
+  "synthesize",
+  "input",
+  "transmit",
+  "program",
+  "reboot",
+  "parse"
+];
+
+},{}],249:[function(require,module,exports){
+var en = {};
+module['exports'] = en;
+en.title = "English";
+en.separator = " & ";
+en.address = require("./address");
+en.credit_card = require("./credit_card");
+en.company = require("./company");
+en.internet = require("./internet");
+en.database = require("./database");
+en.lorem = require("./lorem");
+en.name = require("./name");
+en.phone_number = require("./phone_number");
+en.cell_phone = require("./cell_phone");
+en.business = require("./business");
+en.commerce = require("./commerce");
+en.team = require("./team");
+en.hacker = require("./hacker");
+en.app = require("./app");
+en.finance = require("./finance");
+en.date = require("./date");
+en.system = require("./system");
+
+},{"./address":187,"./app":198,"./business":204,"./cell_phone":206,"./commerce":209,"./company":216,"./credit_card":223,"./database":234,"./date":236,"./finance":241,"./hacker":245,"./internet":254,"./lorem":255,"./name":259,"./phone_number":266,"./system":267,"./team":270}],250:[function(require,module,exports){
+module["exports"] = [
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jarjan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mahdif/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sprayaga/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ruzinav/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Skyhartman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/moscoz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kurafire/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/91bilal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/igorgarybaldi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/malykhinv/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joelhelin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kushsolitary/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/coreyweb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/snowshade/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/areus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/holdenweb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/heyimjuani/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/envex/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/unterdreht/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/collegeman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/peejfancher/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andyisonline/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ultragex/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fuck_you_two/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adellecharles/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ateneupopular/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ahmetalpbalkan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Stievius/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kerem/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/osvaldas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/angelceballos/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thierrykoblentz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/peterlandt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/catarino/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/weglov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brandclay/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ahmetsulek/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nicolasfolliot/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jayrobinson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/victorerixon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kolage/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michzen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/markjenkins/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nicolai_larsen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/noxdzine/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alagoon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/idiot/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mizko/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chadengle/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mutlu82/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/simobenso/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vocino/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/guiiipontes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/soyjavi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joshaustin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tomaslau/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/VinThomas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ManikRathee/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/langate/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cemshid/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/leemunroe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_shahedk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/enda/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/BillSKenney/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/divya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joshhemsley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sindresorhus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/soffes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/9lessons/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Chakintosh/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/anaami/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joreira/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shadeed9/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scottkclark/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jedbridges/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/salleedesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marakasina/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ariil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/BrianPurkiss/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michaelmartinho/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bublienko/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/devankoshal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ZacharyZorbas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/timmillwood/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joshuasortino/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/damenleeturks/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tomas_janousek/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/herrhaase/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/RussellBishop/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brajeshwar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cbracco/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bermonpainter/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/abdullindenis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/isacosta/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/suprb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yalozhkin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chandlervdw/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iamgarth/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_victa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/commadelimited/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/roybarberuk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/axel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vladarbatov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ffbel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/syropian/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ankitind/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/traneblow/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/flashmurphy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ChrisFarina78/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/baliomega/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/saschamt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jm_denis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/anoff/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kennyadr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chatyrko/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dingyi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mds/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/terryxlife/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aaroni/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kinday/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/prrstn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/eduardostuart/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dhilipsiva/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/GavicoInd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/baires/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rohixx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/blakesimkins/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/leeiio/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tjrus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/uberschizo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kylefoundry/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/claudioguglieri/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ripplemdk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/exentrich/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jakemoore/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joaoedumedeiros/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/poormini/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tereshenkov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/keryilmaz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/haydn_woods/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rude/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/llun/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sgaurav_baghel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jamiebrittain/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/badlittleduck/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pifagor/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/agromov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/benefritz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/erwanhesry/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/diesellaws/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeremiaha/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/koridhandy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chaensel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andrewcohen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/smaczny/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gonzalorobaina/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nandini_m/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sydlawrence/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cdharrison/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tgerken/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lewisainslie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/charliecwaite/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/robbschiller/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/flexrs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mattdetails/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/raquelwilson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/karsh/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mrmartineau/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/opnsrce/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hgharrygo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/maximseshuk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/uxalex/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/samihah/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chanpory/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sharvin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/josemarques/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jefffis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/krystalfister/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lokesh_coder/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thedamianhdez/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dpmachado/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/funwatercat/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/timothycd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ivanfilipovbg/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/picard102/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marcobarbosa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/krasnoukhov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/g3d/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ademilter/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rickdt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/operatino/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bungiwan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hugomano/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/logorado/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dc_user/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/horaciobella/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/SlaapMe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/teeragit/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iqonicd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ilya_pestov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andrewarrow/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ssiskind/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/HenryHoffman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rdsaunders/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adamsxu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/curiousoffice/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/themadray/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michigangraham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kohette/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nickfratter/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/runningskull/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/madysondesigns/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brenton_clarke/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jennyshen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bradenhamm/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kurtinc/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/amanruzaini/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/coreyhaggard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Karimmove/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aaronalfred/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wtrsld/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jitachi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/therealmarvin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pmeissner/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ooomz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chacky14/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jesseddy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shanehudson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/akmur/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/IsaryAmairani/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/arthurholcombe1/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/boxmodel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ehsandiary/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/LucasPerdidao/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shalt0ni/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/swaplord/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kaelifa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/plbabin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/guillemboti/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/arindam_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/renbyrd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thiagovernetti/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jmillspaysbills/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mikemai2awesome/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jervo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mekal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sta1ex/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/robergd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/felipecsl/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andrea211087/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/garand/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dhooyenga/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/abovefunction/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pcridesagain/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/randomlies/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/BryanHorsey/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/heykenneth/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dahparra/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/allthingssmitty/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danvernon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/beweinreich/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/increase/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/falvarad/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alxndrustinov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/souuf/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/orkuncaylar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/AM_Kn2/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gearpixels/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bassamology/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vimarethomas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kosmar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/SULiik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mrjamesnoble/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/silvanmuhlemann/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shaneIxD/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nacho/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yigitpinarbasi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/buzzusborne/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aaronkwhite/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rmlewisuk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/giancarlon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nbirckel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/d_nny_m_cher/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sdidonato/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/atariboy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/abotap/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/karalek/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/psdesignuk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ludwiczakpawel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nemanjaivanovic/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/baluli/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ahmadajmi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vovkasolovev/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/samgrover/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/derienzo777/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jonathansimmons/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nelsonjoyce/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/S0ufi4n3/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xtopherpaul/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/oaktreemedia/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nateschulte/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/findingjenny/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/namankreative/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/antonyzotov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/we_social/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/leehambley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/solid_color/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/abelcabans/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mbilderbach/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kkusaa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jordyvdboom/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carlosgavina/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pechkinator/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vc27/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rdbannon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/croakx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/suribbles/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kerihenare/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/catadeleon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gcmorley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/duivvv/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/saschadroste/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/victorDubugras/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wintopia/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mattbilotti/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/taylorling/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/megdraws/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/meln1ks/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mahmoudmetwally/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Silveredge9/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/derekebradley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/happypeter1983/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/travis_arnold/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/artem_kostenko/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adobi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/daykiine/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alek_djuric/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scips/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/miguelmendes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/justinrhee/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alsobrooks/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fronx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mcflydesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/santi_urso/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/allfordesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stayuber/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bertboerland/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marosholly/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adamnac/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cynthiasavard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/muringa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danro/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hiemil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jackiesaik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iduuck/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/antjanus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aroon_sharma/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dshster/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thehacker/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michaelbrooksjr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ryanmclaughlin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/clubb3rry/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/taybenlor/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xripunov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/myastro/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adityasutomo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/digitalmaverick/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hjartstrorn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/itolmach/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vaughanmoffitt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/abdots/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/isnifer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sergeysafonov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/maz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scrapdnb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chrismj83/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vitorleal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sokaniwaal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/zaki3d/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/illyzoren/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mocabyte/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/osmanince/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/djsherman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/davidhemphill/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/waghner/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/necodymiconer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/praveen_vijaya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fabbrucci/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/travishines/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kuldarkalvik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Elt_n/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/phillapier/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/okseanjay/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/id835559/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kudretkeskin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/anjhero/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/duck4fuck/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scott_riley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/noufalibrahim/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/h1brd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/borges_marcos/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/devinhalladay/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ciaranr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stefooo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mikebeecham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tonymillion/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joshuaraichur/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/irae/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/petrangr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dmitriychuta/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/charliegann/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/arashmanteghi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adhamdannaway/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ainsleywagon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/svenlen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/faisalabid/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/beshur/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carlyson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dutchnadia/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/teddyzetterlund/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/samuelkraft/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aoimedia/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/toddrew/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/codepoet_ru/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/artvavs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/benoitboucart/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jomarmen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kolmarlopez/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/creartinc/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/homka/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gaborenton/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/robinclediere/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/maximsorokin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/plasticine/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/j2deme/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/peachananr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kapaluccio/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/de_ascanio/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rikas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dawidwu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/angelcreative/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rpatey/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/popey/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rehatkathuria/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/the_purplebunny/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/1markiz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ajaxy_ru/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brenmurrell/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dudestein/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/oskarlevinson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/victorstuber/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nehfy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vicivadeline/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/leandrovaranda/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scottgallant/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/victor_haydin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sawrb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ryhanhassan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/amayvs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/a_brixen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/karolkrakowiak_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/herkulano/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/geran7/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cggaurav/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chris_witko/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lososina/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/polarity/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mattlat/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brandonburke/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/constantx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/teylorfeliz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/craigelimeliah/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rachelreveley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/reabo101/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rahmeen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ky/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rickyyean/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/j04ntoh/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/spbroma/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sebashton/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jpenico/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/francis_vega/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/oktayelipek/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kikillo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fabbianz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/larrygerard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/BroumiYoussef/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/0therplanet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mbilalsiddique1/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ionuss/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/grrr_nl/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/liminha/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rawdiggie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ryandownie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sethlouey/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pixage/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/arpitnj/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/switmer777/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/josevnclch/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kanickairaj/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/puzik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tbakdesigns/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/besbujupi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/supjoey/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lowie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/linkibol/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/balintorosz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/imcoding/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/agustincruiz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gusoto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thomasschrijer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/superoutman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kalmerrautam/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gabrielizalo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gojeanyn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/davidbaldie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_vojto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/laurengray/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jydesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mymyboy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nellleo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marciotoledo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ninjad3m0/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/to_soham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hasslunsford/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/muridrahhal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/levisan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/grahamkennery/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lepetitogre/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/antongenkin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nessoila/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/amandabuzard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/safrankov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cocolero/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dss49/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/matt3224/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bluesix/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/quailandquasar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/AlbertoCococi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lepinski/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sementiy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mhudobivnik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/olgary/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shojberg/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mtolokonnikov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bereto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/naupintos/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wegotvices/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xadhix/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/macxim/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rodnylobos/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/madcampos/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/madebyvadim/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bartoszdawydzik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/supervova/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/markretzloff/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vonachoo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stevedesigner/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mylesb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/herbigt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/depaulawagner/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/geshan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gizmeedevil1991/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_scottburgess/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lisovsky/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/davidsasda/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/artd_sign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/YoungCutlass/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mgonto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/itstotallyamy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/victorquinn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/osmond/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/oksanafrewer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/zauerkraut/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iamkeithmason/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nitinhayaran/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lmjabreu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mandalareopens/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thinkleft/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ponchomendivil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/juamperro/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brunodesign1206/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/caseycavanagh/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/luxe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dotgridline/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/spedwig/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/madewulf/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mattsapii/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/helderleal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chrisstumph/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jayphen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nsamoylov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chrisvanderkooi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/justme_timothyg/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/otozk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/prinzadi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gu5taf/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cyril_gaillard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/d_kobelyatsky/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/daniloc/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nwdsha/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/romanbulah/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/skkirilov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dvdwinden/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dannol/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thekevinjones/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jwalter14/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/timgthomas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/buddhasource/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/uxpiper/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thatonetommy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/diansigitp/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adrienths/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/klimmka/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gkaam/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/derekcramer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jennyyo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xalionmalik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/edhenderson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/keyuri85/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/roxanejammet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kimcool/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/edkf/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/matkins/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alessandroribe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jacksonlatka/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lebronjennan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kostaspt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/karlkanall/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/moynihan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danpliego/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/saulihirvi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wesleytrankin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fjaguero/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bowbrick/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mashaaaaal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yassiryahya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dparrelli/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fotomagin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aka_james/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/denisepires/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iqbalperkasa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/martinansty/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jarsen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/r_oy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/justinrob/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gabrielrosser/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/malgordon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carlfairclough/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michaelabehsera/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pierrestoffe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/enjoythetau/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/loganjlambert/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rpeezy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/coreyginnivan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michalhron/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/msveet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lingeswaran/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kolsvein/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/peter576/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/reideiredale/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joeymurdah/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/raphaelnikson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mvdheuvel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/maxlinderman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jimmuirhead/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/begreative/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/frankiefreesbie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/robturlinckx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Talbi_ConSept/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/longlivemyword/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vanchesz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/maiklam/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hermanobrother/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rez___a/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gregsqueeb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/greenbes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_ragzor/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/anthonysukow/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fluidbrush/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dactrtr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jehnglynn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bergmartin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hugocornejo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_kkga/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dzantievm/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sawalazar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sovesove/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jonsgotwood/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/byryan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vytautas_a/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mizhgan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cicerobr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nilshelmersson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/d33pthought/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/davecraige/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nckjrvs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alexandermayes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jcubic/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/craigrcoles/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bagawarman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rob_thomas10/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cofla/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/maikelk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rtgibbons/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/russell_baylis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mhesslow/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/codysanfilippo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/webtanya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/madebybrenton/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dcalonaci/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/perfectflow/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jjsiii/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/saarabpreet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kumarrajan12123/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iamsteffen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/themikenagle/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ceekaytweet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/larrybolt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/conspirator/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dallasbpeters/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/n3dmax/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/terpimost/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/byrnecore/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/j_drake_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/calebjoyce/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/russoedu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hoangloi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tobysaxon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gofrasdesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dimaposnyy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tjisousa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/okandungel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/billyroshan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/oskamaya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/motionthinks/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/knilob/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ashocka18/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marrimo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bartjo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/omnizya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ernestsemerda/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andreas_pr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/edgarchris99/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thomasgeisen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gseguin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joannefournier/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/demersdesigns/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adammarsbar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nasirwd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/n_tassone/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/javorszky/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/themrdave/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yecidsm/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nicollerich/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/canapud/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nicoleglynn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/judzhin_miles/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/designervzm/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kianoshp/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/evandrix/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alterchuca/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dhrubo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ma_tiax/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ssbb_me/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dorphern/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mauriolg/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bruno_mart/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mactopus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/the_winslet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joemdesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/Shriiiiimp/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jacobbennett/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nfedoroff/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iamglimy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/allagringaus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aiiaiiaii/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/olaolusoga/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/buryaknick/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wim1k/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nicklacke/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/a1chapone/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/steynviljoen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/strikewan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ryankirkman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andrewabogado/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/doooon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jagan123/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ariffsetiawan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/elenadissi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mwarkentin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thierrymeier_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/r_garcia/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dmackerman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/borantula/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/konus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/spacewood_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ryuchi311/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/evanshajed/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tristanlegros/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shoaib253/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aislinnkelly/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/okcoker/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/timpetricola/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sunshinedgirl/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chadami/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aleclarsoniv/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nomidesigns/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/petebernardo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scottiedude/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/millinet/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/imsoper/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/imammuht/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/benjamin_knight/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nepdud/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joki4/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lanceguyatt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bboy1895/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/amywebbb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rweve/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/haruintesettden/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ricburton/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nelshd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/batsirai/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/primozcigler/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jffgrdnr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/8d3k/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/geneseleznev/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/al_li/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/souperphly/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mslarkina/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/2fockus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cdavis565/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xiel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/turkutuuli/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/uxward/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lebinoclard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gauravjassal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/davidmerrique/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mdsisto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andrewofficer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kojourin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dnirmal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kevka/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mr_shiznit/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aluisio_azevedo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cloudstudio/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danvierich/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alexivanichkin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fran_mchamy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/perretmagali/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/betraydan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cadikkara/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/matbeedotcom/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyworboys/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bpartridge/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michaelkoper/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/silv3rgvn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alevizio/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/johnsmithagency/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lawlbwoy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vitor376/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/desastrozo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thimo_cz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jasonmarkjones/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lhausermann/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xravil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/guischmitt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vigobronx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/panghal0/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/miguelkooreman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/surgeonist/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/christianoliff/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/caspergrl/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iamkarna/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ipavelek/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pierre_nel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/y2graphic/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sterlingrules/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/elbuscainfo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bennyjien/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stushona/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/estebanuribe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/embrcecreations/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danillos/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/elliotlewis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/charlesrpratt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vladyn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/emmeffess/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carlosblanco_eu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/leonfedotov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rangafangs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chris_frees/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tgormtx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bryan_topham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jpscribbles/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mighty55/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carbontwelve/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/isaacfifth/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/iamjdeleon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/snowwrite/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/barputro/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/drewbyreese/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sachacorazzi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bistrianiosip/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/magoo04/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pehamondello/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yayteejay/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/a_harris88/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/algunsanabria/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/zforrester/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ovall/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carlosjgsousa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/geobikas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ah_lice/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/looneydoodle/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nerdgr8/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ddggccaa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/zackeeler/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/normanbox/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/el_fuertisimo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ismail_biltagi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/juangomezw/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jnmnrd/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/patrickcoombe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ryanjohnson_me/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/markolschesky/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeffgolenski/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kvasnic/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gauchomatt/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/afusinatto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kevinoh/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/okansurreel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adamawesomeface/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/emileboudeling/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/arishi_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/juanmamartinez/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wikiziner/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danthms/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mkginfo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/terrorpixel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/curiousonaut/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/prheemo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michaelcolenso/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/foczzi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/martip07/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thaodang17/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/johncafazza/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/robinlayfield/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/franciscoamk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/abdulhyeuk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marklamb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/edobene/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mikaeljorhult/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chrisslowik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vinciarts/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/meelford/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/elliotnolten/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yehudab/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vijaykarthik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bfrohs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/josep_martins/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/attacks/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sur4dye/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tumski/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/instalox/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mangosango/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/paulfarino/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kazaky999/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kiwiupover/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nvkznemo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tom_even/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ratbus/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/woodsman001/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joshmedeski/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thewillbeard/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/psaikali/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joe_black/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aleinadsays/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marcusgorillius/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hota_v/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jghyllebert/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shinze/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/janpalounek/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeremiespoken/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/her_ruu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dansowter/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/felipeapiress/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/magugzbrand2d/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/posterjob/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nathalie_fs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bobbytwoshoes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dreizle/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeremymouton/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/elisabethkjaer/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/notbadart/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mohanrohith/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jlsolerdeltoro/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/itskawsar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/slowspock/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/zvchkelly/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wiljanslofstra/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/craighenneberry/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/trubeatto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/juaumlol/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/samscouto/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/BenouarradeM/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gipsy_raf/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/netonet_il/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/arkokoley/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/itsajimithing/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/smalonso/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/victordeanda/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_dwite_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/richardgarretts/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gregrwilkinson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/anatolinicolae/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lu4sh1i/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stefanotirloni/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ostirbu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/darcystonge/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/naitanamoreno/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/michaelcomiskey/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/adhiardana/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marcomano_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/davidcazalis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/falconerie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gregkilian/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bcrad/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bolzanmarco/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/low_res/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vlajki/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/petar_prog/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jonkspr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/akmalfikri/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mfacchinello/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/atanism/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/harry_sistalam/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/murrayswift/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bobwassermann/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gavr1l0/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/madshensel/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mr_subtle/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/deviljho_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/salimianoff/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joetruesdell/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/twittypork/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/airskylar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dnezkumar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dgajjar/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cherif_b/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/salvafc/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/louis_currie/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/deeenright/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cybind/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/eyronn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vickyshits/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sweetdelisa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/cboller1/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andresdjasso/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/melvindidit/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andysolomon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thaisselenator_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lvovenok/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/giuliusa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/belyaev_rs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/overcloacked/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kamal_chaneman/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/incubo82/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hellofeverrrr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mhaligowski/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sunlandictwin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bu7921/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/andytlaw/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeremery/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/finchjke/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/manigm/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/umurgdk/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/scottfeltham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ganserene/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mutu_krish/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jodytaggart/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ntfblog/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tanveerrao/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hfalucas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alxleroydeval/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kucingbelang4/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bargaorobalo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/colgruv/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stalewine/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kylefrost/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/baumannzone/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/angelcolberg/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sachingawas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jjshaw14/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ramanathan_pdy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/johndezember/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nilshoenson/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brandonmorreale/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nutzumi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/brandonflatsoda/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sergeyalmone/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/klefue/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kirangopal/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/baumann_alex/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/matthewkay_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jay_wilburn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shesgared/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/apriendeau/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/johnriordan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wake_gs/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aleksitappura/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/emsgulam/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xilantra/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/imomenui/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sircalebgrove/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/newbrushes/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hsinyo23/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/m4rio/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/katiemdaly/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/s4f1/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ecommerceil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marlinjayakody/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/swooshycueb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sangdth/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/coderdiaz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bluefx_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vivekprvr/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/eugeneeweb/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dgclegg/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/n1ght_coder/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dixchen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/blakehawksworth/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/trueblood_33/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hai_ninh_nguyen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marclgonzales/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/yesmeck/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stephcoue/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/doronmalki/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ruehldesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/anasnakawa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kijanmaharjan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/wearesavas/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stefvdham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tweetubhai/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alecarpentier/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/fiterik/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/antonyryndya/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/d00maz/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/theonlyzeke/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/missaaamy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/carlosm/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/manekenthe/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/reetajayendra/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyshimko/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/justinrgraham/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/stefanozoffoli/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/overra/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mrebay007/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/shvelo96/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/pyronite/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/thedjpetersen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/rtyukmaev/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_williamguerra/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/albertaugustin/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vikashpathak18/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kevinjohndayy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vj_demien/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/colirpixoil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/goddardlewis/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/laasli/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jqiuss/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/heycamtaylor/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nastya_mane/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mastermindesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ccinojasso1/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/nyancecom/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sandywoodruff/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/bighanddesign/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sbtransparent/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aviddayentonbay/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/richwild/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kaysix_dizzy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/tur8le/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/seyedhossein1/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/privetwagner/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/emmandenn/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dev_essentials/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jmfsocial/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_yardenoon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mateaodviteza/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/weavermedia/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mufaddal_mw/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hafeeskhan/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ashernatali/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sulaqo/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/eddiechen/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/josecarlospsh/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vm_f/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/enricocicconi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/danmartin70/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/gmourier/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/donjain/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mrxloka/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/_pedropinho/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/eitarafa/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/oscarowusu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ralph_lam/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/panchajanyag/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/woodydotmx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/jerrybai1907/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/marshallchen_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/xamorep/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aio___/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/chaabane_wail/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/txcx/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/akashsharma39/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/falling_soul/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sainraja/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mugukamil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/johannesneu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/markwienands/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/karthipanraj/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/balakayuriy/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/alan_zhang_/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/layerssss/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/kaspernordkvist/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/mirfanqureshi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/hanna_smi/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/VMilescu/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/aeon56/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/m_kalibry/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/sreejithexp/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dicesales/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/dhoot_amit/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/smenov/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/lonesomelemon/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vladimirdevic/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/joelcipriano/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/haligaliharun/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/buleswapnil/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/serefka/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/ifarafonow/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/vikasvinfotech/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/urrutimeoli/128.jpg",
+  "https://s3.amazonaws.com/uifaces/faces/twitter/areandacom/128.jpg"
+];
+
+},{}],251:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "biz",
+  "info",
+  "name",
+  "net",
+  "org"
+];
+
+},{}],252:[function(require,module,exports){
+module["exports"] = [
+  "example.org",
+  "example.com",
+  "example.net"
+];
+
+},{}],253:[function(require,module,exports){
+module.exports=require(119)
+},{"/Users/a/dev/faker.js/lib/locales/de/internet/free_email.js":119}],254:[function(require,module,exports){
+var internet = {};
+module['exports'] = internet;
+internet.free_email = require("./free_email");
+internet.example_email = require("./example_email");
+internet.domain_suffix = require("./domain_suffix");
+internet.avatar_uri = require("./avatar_uri");
+
+},{"./avatar_uri":250,"./domain_suffix":251,"./example_email":252,"./free_email":253}],255:[function(require,module,exports){
+module.exports=require(83)
+},{"./supplemental":256,"./words":257,"/Users/a/dev/faker.js/lib/locales/cz/lorem/index.js":83}],256:[function(require,module,exports){
+module.exports=require(84)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/supplemental.js":84}],257:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],258:[function(require,module,exports){
+module["exports"] = [
+  "Aaliyah",
+  "Aaron",
+  "Abagail",
+  "Abbey",
+  "Abbie",
+  "Abbigail",
+  "Abby",
+  "Abdiel",
+  "Abdul",
+  "Abdullah",
+  "Abe",
+  "Abel",
+  "Abelardo",
+  "Abigail",
+  "Abigale",
+  "Abigayle",
+  "Abner",
+  "Abraham",
+  "Ada",
+  "Adah",
+  "Adalberto",
+  "Adaline",
+  "Adam",
+  "Adan",
+  "Addie",
+  "Addison",
+  "Adela",
+  "Adelbert",
+  "Adele",
+  "Adelia",
+  "Adeline",
+  "Adell",
+  "Adella",
+  "Adelle",
+  "Aditya",
+  "Adolf",
+  "Adolfo",
+  "Adolph",
+  "Adolphus",
+  "Adonis",
+  "Adrain",
+  "Adrian",
+  "Adriana",
+  "Adrianna",
+  "Adriel",
+  "Adrien",
+  "Adrienne",
+  "Afton",
+  "Aglae",
+  "Agnes",
+  "Agustin",
+  "Agustina",
+  "Ahmad",
+  "Ahmed",
+  "Aida",
+  "Aidan",
+  "Aiden",
+  "Aileen",
+  "Aimee",
+  "Aisha",
+  "Aiyana",
+  "Akeem",
+  "Al",
+  "Alaina",
+  "Alan",
+  "Alana",
+  "Alanis",
+  "Alanna",
+  "Alayna",
+  "Alba",
+  "Albert",
+  "Alberta",
+  "Albertha",
+  "Alberto",
+  "Albin",
+  "Albina",
+  "Alda",
+  "Alden",
+  "Alec",
+  "Aleen",
+  "Alejandra",
+  "Alejandrin",
+  "Alek",
+  "Alena",
+  "Alene",
+  "Alessandra",
+  "Alessandro",
+  "Alessia",
+  "Aletha",
+  "Alex",
+  "Alexa",
+  "Alexander",
+  "Alexandra",
+  "Alexandre",
+  "Alexandrea",
+  "Alexandria",
+  "Alexandrine",
+  "Alexandro",
+  "Alexane",
+  "Alexanne",
+  "Alexie",
+  "Alexis",
+  "Alexys",
+  "Alexzander",
+  "Alf",
+  "Alfonso",
+  "Alfonzo",
+  "Alford",
+  "Alfred",
+  "Alfreda",
+  "Alfredo",
+  "Ali",
+  "Alia",
+  "Alice",
+  "Alicia",
+  "Alisa",
+  "Alisha",
+  "Alison",
+  "Alivia",
+  "Aliya",
+  "Aliyah",
+  "Aliza",
+  "Alize",
+  "Allan",
+  "Allen",
+  "Allene",
+  "Allie",
+  "Allison",
+  "Ally",
+  "Alphonso",
+  "Alta",
+  "Althea",
+  "Alva",
+  "Alvah",
+  "Alvena",
+  "Alvera",
+  "Alverta",
+  "Alvina",
+  "Alvis",
+  "Alyce",
+  "Alycia",
+  "Alysa",
+  "Alysha",
+  "Alyson",
+  "Alysson",
+  "Amalia",
+  "Amanda",
+  "Amani",
+  "Amara",
+  "Amari",
+  "Amaya",
+  "Amber",
+  "Ambrose",
+  "Amelia",
+  "Amelie",
+  "Amely",
+  "America",
+  "Americo",
+  "Amie",
+  "Amina",
+  "Amir",
+  "Amira",
+  "Amiya",
+  "Amos",
+  "Amparo",
+  "Amy",
+  "Amya",
+  "Ana",
+  "Anabel",
+  "Anabelle",
+  "Anahi",
+  "Anais",
+  "Anastacio",
+  "Anastasia",
+  "Anderson",
+  "Andre",
+  "Andreane",
+  "Andreanne",
+  "Andres",
+  "Andrew",
+  "Andy",
+  "Angel",
+  "Angela",
+  "Angelica",
+  "Angelina",
+  "Angeline",
+  "Angelita",
+  "Angelo",
+  "Angie",
+  "Angus",
+  "Anibal",
+  "Anika",
+  "Anissa",
+  "Anita",
+  "Aniya",
+  "Aniyah",
+  "Anjali",
+  "Anna",
+  "Annabel",
+  "Annabell",
+  "Annabelle",
+  "Annalise",
+  "Annamae",
+  "Annamarie",
+  "Anne",
+  "Annetta",
+  "Annette",
+  "Annie",
+  "Ansel",
+  "Ansley",
+  "Anthony",
+  "Antoinette",
+  "Antone",
+  "Antonetta",
+  "Antonette",
+  "Antonia",
+  "Antonietta",
+  "Antonina",
+  "Antonio",
+  "Antwan",
+  "Antwon",
+  "Anya",
+  "April",
+  "Ara",
+  "Araceli",
+  "Aracely",
+  "Arch",
+  "Archibald",
+  "Ardella",
+  "Arden",
+  "Ardith",
+  "Arely",
+  "Ari",
+  "Ariane",
+  "Arianna",
+  "Aric",
+  "Ariel",
+  "Arielle",
+  "Arjun",
+  "Arlene",
+  "Arlie",
+  "Arlo",
+  "Armand",
+  "Armando",
+  "Armani",
+  "Arnaldo",
+  "Arne",
+  "Arno",
+  "Arnold",
+  "Arnoldo",
+  "Arnulfo",
+  "Aron",
+  "Art",
+  "Arthur",
+  "Arturo",
+  "Arvel",
+  "Arvid",
+  "Arvilla",
+  "Aryanna",
+  "Asa",
+  "Asha",
+  "Ashlee",
+  "Ashleigh",
+  "Ashley",
+  "Ashly",
+  "Ashlynn",
+  "Ashton",
+  "Ashtyn",
+  "Asia",
+  "Assunta",
+  "Astrid",
+  "Athena",
+  "Aubree",
+  "Aubrey",
+  "Audie",
+  "Audra",
+  "Audreanne",
+  "Audrey",
+  "August",
+  "Augusta",
+  "Augustine",
+  "Augustus",
+  "Aurelia",
+  "Aurelie",
+  "Aurelio",
+  "Aurore",
+  "Austen",
+  "Austin",
+  "Austyn",
+  "Autumn",
+  "Ava",
+  "Avery",
+  "Avis",
+  "Axel",
+  "Ayana",
+  "Ayden",
+  "Ayla",
+  "Aylin",
+  "Baby",
+  "Bailee",
+  "Bailey",
+  "Barbara",
+  "Barney",
+  "Baron",
+  "Barrett",
+  "Barry",
+  "Bart",
+  "Bartholome",
+  "Barton",
+  "Baylee",
+  "Beatrice",
+  "Beau",
+  "Beaulah",
+  "Bell",
+  "Bella",
+  "Belle",
+  "Ben",
+  "Benedict",
+  "Benjamin",
+  "Bennett",
+  "Bennie",
+  "Benny",
+  "Benton",
+  "Berenice",
+  "Bernadette",
+  "Bernadine",
+  "Bernard",
+  "Bernardo",
+  "Berneice",
+  "Bernhard",
+  "Bernice",
+  "Bernie",
+  "Berniece",
+  "Bernita",
+  "Berry",
+  "Bert",
+  "Berta",
+  "Bertha",
+  "Bertram",
+  "Bertrand",
+  "Beryl",
+  "Bessie",
+  "Beth",
+  "Bethany",
+  "Bethel",
+  "Betsy",
+  "Bette",
+  "Bettie",
+  "Betty",
+  "Bettye",
+  "Beulah",
+  "Beverly",
+  "Bianka",
+  "Bill",
+  "Billie",
+  "Billy",
+  "Birdie",
+  "Blair",
+  "Blaise",
+  "Blake",
+  "Blanca",
+  "Blanche",
+  "Blaze",
+  "Bo",
+  "Bobbie",
+  "Bobby",
+  "Bonita",
+  "Bonnie",
+  "Boris",
+  "Boyd",
+  "Brad",
+  "Braden",
+  "Bradford",
+  "Bradley",
+  "Bradly",
+  "Brady",
+  "Braeden",
+  "Brain",
+  "Brandi",
+  "Brando",
+  "Brandon",
+  "Brandt",
+  "Brandy",
+  "Brandyn",
+  "Brannon",
+  "Branson",
+  "Brant",
+  "Braulio",
+  "Braxton",
+  "Brayan",
+  "Breana",
+  "Breanna",
+  "Breanne",
+  "Brenda",
+  "Brendan",
+  "Brenden",
+  "Brendon",
+  "Brenna",
+  "Brennan",
+  "Brennon",
+  "Brent",
+  "Bret",
+  "Brett",
+  "Bria",
+  "Brian",
+  "Briana",
+  "Brianne",
+  "Brice",
+  "Bridget",
+  "Bridgette",
+  "Bridie",
+  "Brielle",
+  "Brigitte",
+  "Brionna",
+  "Brisa",
+  "Britney",
+  "Brittany",
+  "Brock",
+  "Broderick",
+  "Brody",
+  "Brook",
+  "Brooke",
+  "Brooklyn",
+  "Brooks",
+  "Brown",
+  "Bruce",
+  "Bryana",
+  "Bryce",
+  "Brycen",
+  "Bryon",
+  "Buck",
+  "Bud",
+  "Buddy",
+  "Buford",
+  "Bulah",
+  "Burdette",
+  "Burley",
+  "Burnice",
+  "Buster",
+  "Cade",
+  "Caden",
+  "Caesar",
+  "Caitlyn",
+  "Cale",
+  "Caleb",
+  "Caleigh",
+  "Cali",
+  "Calista",
+  "Callie",
+  "Camden",
+  "Cameron",
+  "Camila",
+  "Camilla",
+  "Camille",
+  "Camren",
+  "Camron",
+  "Camryn",
+  "Camylle",
+  "Candace",
+  "Candelario",
+  "Candice",
+  "Candida",
+  "Candido",
+  "Cara",
+  "Carey",
+  "Carissa",
+  "Carlee",
+  "Carleton",
+  "Carley",
+  "Carli",
+  "Carlie",
+  "Carlo",
+  "Carlos",
+  "Carlotta",
+  "Carmel",
+  "Carmela",
+  "Carmella",
+  "Carmelo",
+  "Carmen",
+  "Carmine",
+  "Carol",
+  "Carolanne",
+  "Carole",
+  "Carolina",
+  "Caroline",
+  "Carolyn",
+  "Carolyne",
+  "Carrie",
+  "Carroll",
+  "Carson",
+  "Carter",
+  "Cary",
+  "Casandra",
+  "Casey",
+  "Casimer",
+  "Casimir",
+  "Casper",
+  "Cassandra",
+  "Cassandre",
+  "Cassidy",
+  "Cassie",
+  "Catalina",
+  "Caterina",
+  "Catharine",
+  "Catherine",
+  "Cathrine",
+  "Cathryn",
+  "Cathy",
+  "Cayla",
+  "Ceasar",
+  "Cecelia",
+  "Cecil",
+  "Cecile",
+  "Cecilia",
+  "Cedrick",
+  "Celestine",
+  "Celestino",
+  "Celia",
+  "Celine",
+  "Cesar",
+  "Chad",
+  "Chadd",
+  "Chadrick",
+  "Chaim",
+  "Chance",
+  "Chandler",
+  "Chanel",
+  "Chanelle",
+  "Charity",
+  "Charlene",
+  "Charles",
+  "Charley",
+  "Charlie",
+  "Charlotte",
+  "Chase",
+  "Chasity",
+  "Chauncey",
+  "Chaya",
+  "Chaz",
+  "Chelsea",
+  "Chelsey",
+  "Chelsie",
+  "Chesley",
+  "Chester",
+  "Chet",
+  "Cheyanne",
+  "Cheyenne",
+  "Chloe",
+  "Chris",
+  "Christ",
+  "Christa",
+  "Christelle",
+  "Christian",
+  "Christiana",
+  "Christina",
+  "Christine",
+  "Christop",
+  "Christophe",
+  "Christopher",
+  "Christy",
+  "Chyna",
+  "Ciara",
+  "Cicero",
+  "Cielo",
+  "Cierra",
+  "Cindy",
+  "Citlalli",
+  "Clair",
+  "Claire",
+  "Clara",
+  "Clarabelle",
+  "Clare",
+  "Clarissa",
+  "Clark",
+  "Claud",
+  "Claude",
+  "Claudia",
+  "Claudie",
+  "Claudine",
+  "Clay",
+  "Clemens",
+  "Clement",
+  "Clementina",
+  "Clementine",
+  "Clemmie",
+  "Cleo",
+  "Cleora",
+  "Cleta",
+  "Cletus",
+  "Cleve",
+  "Cleveland",
+  "Clifford",
+  "Clifton",
+  "Clint",
+  "Clinton",
+  "Clotilde",
+  "Clovis",
+  "Cloyd",
+  "Clyde",
+  "Coby",
+  "Cody",
+  "Colby",
+  "Cole",
+  "Coleman",
+  "Colin",
+  "Colleen",
+  "Collin",
+  "Colt",
+  "Colten",
+  "Colton",
+  "Columbus",
+  "Concepcion",
+  "Conner",
+  "Connie",
+  "Connor",
+  "Conor",
+  "Conrad",
+  "Constance",
+  "Constantin",
+  "Consuelo",
+  "Cooper",
+  "Cora",
+  "Coralie",
+  "Corbin",
+  "Cordelia",
+  "Cordell",
+  "Cordia",
+  "Cordie",
+  "Corene",
+  "Corine",
+  "Cornelius",
+  "Cornell",
+  "Corrine",
+  "Cortez",
+  "Cortney",
+  "Cory",
+  "Coty",
+  "Courtney",
+  "Coy",
+  "Craig",
+  "Crawford",
+  "Creola",
+  "Cristal",
+  "Cristian",
+  "Cristina",
+  "Cristobal",
+  "Cristopher",
+  "Cruz",
+  "Crystal",
+  "Crystel",
+  "Cullen",
+  "Curt",
+  "Curtis",
+  "Cydney",
+  "Cynthia",
+  "Cyril",
+  "Cyrus",
+  "Dagmar",
+  "Dahlia",
+  "Daija",
+  "Daisha",
+  "Daisy",
+  "Dakota",
+  "Dale",
+  "Dallas",
+  "Dallin",
+  "Dalton",
+  "Damaris",
+  "Dameon",
+  "Damian",
+  "Damien",
+  "Damion",
+  "Damon",
+  "Dan",
+  "Dana",
+  "Dandre",
+  "Dane",
+  "D'angelo",
+  "Dangelo",
+  "Danial",
+  "Daniela",
+  "Daniella",
+  "Danielle",
+  "Danika",
+  "Dannie",
+  "Danny",
+  "Dante",
+  "Danyka",
+  "Daphne",
+  "Daphnee",
+  "Daphney",
+  "Darby",
+  "Daren",
+  "Darian",
+  "Dariana",
+  "Darien",
+  "Dario",
+  "Darion",
+  "Darius",
+  "Darlene",
+  "Daron",
+  "Darrel",
+  "Darrell",
+  "Darren",
+  "Darrick",
+  "Darrin",
+  "Darrion",
+  "Darron",
+  "Darryl",
+  "Darwin",
+  "Daryl",
+  "Dashawn",
+  "Dasia",
+  "Dave",
+  "David",
+  "Davin",
+  "Davion",
+  "Davon",
+  "Davonte",
+  "Dawn",
+  "Dawson",
+  "Dax",
+  "Dayana",
+  "Dayna",
+  "Dayne",
+  "Dayton",
+  "Dean",
+  "Deangelo",
+  "Deanna",
+  "Deborah",
+  "Declan",
+  "Dedric",
+  "Dedrick",
+  "Dee",
+  "Deion",
+  "Deja",
+  "Dejah",
+  "Dejon",
+  "Dejuan",
+  "Delaney",
+  "Delbert",
+  "Delfina",
+  "Delia",
+  "Delilah",
+  "Dell",
+  "Della",
+  "Delmer",
+  "Delores",
+  "Delpha",
+  "Delphia",
+  "Delphine",
+  "Delta",
+  "Demarco",
+  "Demarcus",
+  "Demario",
+  "Demetris",
+  "Demetrius",
+  "Demond",
+  "Dena",
+  "Denis",
+  "Dennis",
+  "Deon",
+  "Deondre",
+  "Deontae",
+  "Deonte",
+  "Dereck",
+  "Derek",
+  "Derick",
+  "Deron",
+  "Derrick",
+  "Deshaun",
+  "Deshawn",
+  "Desiree",
+  "Desmond",
+  "Dessie",
+  "Destany",
+  "Destin",
+  "Destinee",
+  "Destiney",
+  "Destini",
+  "Destiny",
+  "Devan",
+  "Devante",
+  "Deven",
+  "Devin",
+  "Devon",
+  "Devonte",
+  "Devyn",
+  "Dewayne",
+  "Dewitt",
+  "Dexter",
+  "Diamond",
+  "Diana",
+  "Dianna",
+  "Diego",
+  "Dillan",
+  "Dillon",
+  "Dimitri",
+  "Dina",
+  "Dino",
+  "Dion",
+  "Dixie",
+  "Dock",
+  "Dolly",
+  "Dolores",
+  "Domenic",
+  "Domenica",
+  "Domenick",
+  "Domenico",
+  "Domingo",
+  "Dominic",
+  "Dominique",
+  "Don",
+  "Donald",
+  "Donato",
+  "Donavon",
+  "Donna",
+  "Donnell",
+  "Donnie",
+  "Donny",
+  "Dora",
+  "Dorcas",
+  "Dorian",
+  "Doris",
+  "Dorothea",
+  "Dorothy",
+  "Dorris",
+  "Dortha",
+  "Dorthy",
+  "Doug",
+  "Douglas",
+  "Dovie",
+  "Doyle",
+  "Drake",
+  "Drew",
+  "Duane",
+  "Dudley",
+  "Dulce",
+  "Duncan",
+  "Durward",
+  "Dustin",
+  "Dusty",
+  "Dwight",
+  "Dylan",
+  "Earl",
+  "Earlene",
+  "Earline",
+  "Earnest",
+  "Earnestine",
+  "Easter",
+  "Easton",
+  "Ebba",
+  "Ebony",
+  "Ed",
+  "Eda",
+  "Edd",
+  "Eddie",
+  "Eden",
+  "Edgar",
+  "Edgardo",
+  "Edison",
+  "Edmond",
+  "Edmund",
+  "Edna",
+  "Eduardo",
+  "Edward",
+  "Edwardo",
+  "Edwin",
+  "Edwina",
+  "Edyth",
+  "Edythe",
+  "Effie",
+  "Efrain",
+  "Efren",
+  "Eileen",
+  "Einar",
+  "Eino",
+  "Eladio",
+  "Elaina",
+  "Elbert",
+  "Elda",
+  "Eldon",
+  "Eldora",
+  "Eldred",
+  "Eldridge",
+  "Eleanora",
+  "Eleanore",
+  "Eleazar",
+  "Electa",
+  "Elena",
+  "Elenor",
+  "Elenora",
+  "Eleonore",
+  "Elfrieda",
+  "Eli",
+  "Elian",
+  "Eliane",
+  "Elias",
+  "Eliezer",
+  "Elijah",
+  "Elinor",
+  "Elinore",
+  "Elisa",
+  "Elisabeth",
+  "Elise",
+  "Eliseo",
+  "Elisha",
+  "Elissa",
+  "Eliza",
+  "Elizabeth",
+  "Ella",
+  "Ellen",
+  "Ellie",
+  "Elliot",
+  "Elliott",
+  "Ellis",
+  "Ellsworth",
+  "Elmer",
+  "Elmira",
+  "Elmo",
+  "Elmore",
+  "Elna",
+  "Elnora",
+  "Elody",
+  "Eloisa",
+  "Eloise",
+  "Elouise",
+  "Eloy",
+  "Elroy",
+  "Elsa",
+  "Else",
+  "Elsie",
+  "Elta",
+  "Elton",
+  "Elva",
+  "Elvera",
+  "Elvie",
+  "Elvis",
+  "Elwin",
+  "Elwyn",
+  "Elyse",
+  "Elyssa",
+  "Elza",
+  "Emanuel",
+  "Emelia",
+  "Emelie",
+  "Emely",
+  "Emerald",
+  "Emerson",
+  "Emery",
+  "Emie",
+  "Emil",
+  "Emile",
+  "Emilia",
+  "Emiliano",
+  "Emilie",
+  "Emilio",
+  "Emily",
+  "Emma",
+  "Emmalee",
+  "Emmanuel",
+  "Emmanuelle",
+  "Emmet",
+  "Emmett",
+  "Emmie",
+  "Emmitt",
+  "Emmy",
+  "Emory",
+  "Ena",
+  "Enid",
+  "Enoch",
+  "Enola",
+  "Enos",
+  "Enrico",
+  "Enrique",
+  "Ephraim",
+  "Era",
+  "Eriberto",
+  "Eric",
+  "Erica",
+  "Erich",
+  "Erick",
+  "Ericka",
+  "Erik",
+  "Erika",
+  "Erin",
+  "Erling",
+  "Erna",
+  "Ernest",
+  "Ernestina",
+  "Ernestine",
+  "Ernesto",
+  "Ernie",
+  "Ervin",
+  "Erwin",
+  "Eryn",
+  "Esmeralda",
+  "Esperanza",
+  "Esta",
+  "Esteban",
+  "Estefania",
+  "Estel",
+  "Estell",
+  "Estella",
+  "Estelle",
+  "Estevan",
+  "Esther",
+  "Estrella",
+  "Etha",
+  "Ethan",
+  "Ethel",
+  "Ethelyn",
+  "Ethyl",
+  "Ettie",
+  "Eudora",
+  "Eugene",
+  "Eugenia",
+  "Eula",
+  "Eulah",
+  "Eulalia",
+  "Euna",
+  "Eunice",
+  "Eusebio",
+  "Eva",
+  "Evalyn",
+  "Evan",
+  "Evangeline",
+  "Evans",
+  "Eve",
+  "Eveline",
+  "Evelyn",
+  "Everardo",
+  "Everett",
+  "Everette",
+  "Evert",
+  "Evie",
+  "Ewald",
+  "Ewell",
+  "Ezekiel",
+  "Ezequiel",
+  "Ezra",
+  "Fabian",
+  "Fabiola",
+  "Fae",
+  "Fannie",
+  "Fanny",
+  "Fatima",
+  "Faustino",
+  "Fausto",
+  "Favian",
+  "Fay",
+  "Faye",
+  "Federico",
+  "Felicia",
+  "Felicita",
+  "Felicity",
+  "Felipa",
+  "Felipe",
+  "Felix",
+  "Felton",
+  "Fermin",
+  "Fern",
+  "Fernando",
+  "Ferne",
+  "Fidel",
+  "Filiberto",
+  "Filomena",
+  "Finn",
+  "Fiona",
+  "Flavie",
+  "Flavio",
+  "Fleta",
+  "Fletcher",
+  "Flo",
+  "Florence",
+  "Florencio",
+  "Florian",
+  "Florida",
+  "Florine",
+  "Flossie",
+  "Floy",
+  "Floyd",
+  "Ford",
+  "Forest",
+  "Forrest",
+  "Foster",
+  "Frances",
+  "Francesca",
+  "Francesco",
+  "Francis",
+  "Francisca",
+  "Francisco",
+  "Franco",
+  "Frank",
+  "Frankie",
+  "Franz",
+  "Fred",
+  "Freda",
+  "Freddie",
+  "Freddy",
+  "Frederic",
+  "Frederick",
+  "Frederik",
+  "Frederique",
+  "Fredrick",
+  "Fredy",
+  "Freeda",
+  "Freeman",
+  "Freida",
+  "Frida",
+  "Frieda",
+  "Friedrich",
+  "Fritz",
+  "Furman",
+  "Gabe",
+  "Gabriel",
+  "Gabriella",
+  "Gabrielle",
+  "Gaetano",
+  "Gage",
+  "Gail",
+  "Gardner",
+  "Garett",
+  "Garfield",
+  "Garland",
+  "Garnet",
+  "Garnett",
+  "Garret",
+  "Garrett",
+  "Garrick",
+  "Garrison",
+  "Garry",
+  "Garth",
+  "Gaston",
+  "Gavin",
+  "Gay",
+  "Gayle",
+  "Gaylord",
+  "Gene",
+  "General",
+  "Genesis",
+  "Genevieve",
+  "Gennaro",
+  "Genoveva",
+  "Geo",
+  "Geoffrey",
+  "George",
+  "Georgette",
+  "Georgiana",
+  "Georgianna",
+  "Geovanni",
+  "Geovanny",
+  "Geovany",
+  "Gerald",
+  "Geraldine",
+  "Gerard",
+  "Gerardo",
+  "Gerda",
+  "Gerhard",
+  "Germaine",
+  "German",
+  "Gerry",
+  "Gerson",
+  "Gertrude",
+  "Gia",
+  "Gianni",
+  "Gideon",
+  "Gilbert",
+  "Gilberto",
+  "Gilda",
+  "Giles",
+  "Gillian",
+  "Gina",
+  "Gino",
+  "Giovani",
+  "Giovanna",
+  "Giovanni",
+  "Giovanny",
+  "Gisselle",
+  "Giuseppe",
+  "Gladyce",
+  "Gladys",
+  "Glen",
+  "Glenda",
+  "Glenna",
+  "Glennie",
+  "Gloria",
+  "Godfrey",
+  "Golda",
+  "Golden",
+  "Gonzalo",
+  "Gordon",
+  "Grace",
+  "Gracie",
+  "Graciela",
+  "Grady",
+  "Graham",
+  "Grant",
+  "Granville",
+  "Grayce",
+  "Grayson",
+  "Green",
+  "Greg",
+  "Gregg",
+  "Gregoria",
+  "Gregorio",
+  "Gregory",
+  "Greta",
+  "Gretchen",
+  "Greyson",
+  "Griffin",
+  "Grover",
+  "Guadalupe",
+  "Gudrun",
+  "Guido",
+  "Guillermo",
+  "Guiseppe",
+  "Gunnar",
+  "Gunner",
+  "Gus",
+  "Gussie",
+  "Gust",
+  "Gustave",
+  "Guy",
+  "Gwen",
+  "Gwendolyn",
+  "Hadley",
+  "Hailee",
+  "Hailey",
+  "Hailie",
+  "Hal",
+  "Haleigh",
+  "Haley",
+  "Halie",
+  "Halle",
+  "Hallie",
+  "Hank",
+  "Hanna",
+  "Hannah",
+  "Hans",
+  "Hardy",
+  "Harley",
+  "Harmon",
+  "Harmony",
+  "Harold",
+  "Harrison",
+  "Harry",
+  "Harvey",
+  "Haskell",
+  "Hassan",
+  "Hassie",
+  "Hattie",
+  "Haven",
+  "Hayden",
+  "Haylee",
+  "Hayley",
+  "Haylie",
+  "Hazel",
+  "Hazle",
+  "Heath",
+  "Heather",
+  "Heaven",
+  "Heber",
+  "Hector",
+  "Heidi",
+  "Helen",
+  "Helena",
+  "Helene",
+  "Helga",
+  "Hellen",
+  "Helmer",
+  "Heloise",
+  "Henderson",
+  "Henri",
+  "Henriette",
+  "Henry",
+  "Herbert",
+  "Herman",
+  "Hermann",
+  "Hermina",
+  "Herminia",
+  "Herminio",
+  "Hershel",
+  "Herta",
+  "Hertha",
+  "Hester",
+  "Hettie",
+  "Hilario",
+  "Hilbert",
+  "Hilda",
+  "Hildegard",
+  "Hillard",
+  "Hillary",
+  "Hilma",
+  "Hilton",
+  "Hipolito",
+  "Hiram",
+  "Hobart",
+  "Holden",
+  "Hollie",
+  "Hollis",
+  "Holly",
+  "Hope",
+  "Horace",
+  "Horacio",
+  "Hortense",
+  "Hosea",
+  "Houston",
+  "Howard",
+  "Howell",
+  "Hoyt",
+  "Hubert",
+  "Hudson",
+  "Hugh",
+  "Hulda",
+  "Humberto",
+  "Hunter",
+  "Hyman",
+  "Ian",
+  "Ibrahim",
+  "Icie",
+  "Ida",
+  "Idell",
+  "Idella",
+  "Ignacio",
+  "Ignatius",
+  "Ike",
+  "Ila",
+  "Ilene",
+  "Iliana",
+  "Ima",
+  "Imani",
+  "Imelda",
+  "Immanuel",
+  "Imogene",
+  "Ines",
+  "Irma",
+  "Irving",
+  "Irwin",
+  "Isaac",
+  "Isabel",
+  "Isabell",
+  "Isabella",
+  "Isabelle",
+  "Isac",
+  "Isadore",
+  "Isai",
+  "Isaiah",
+  "Isaias",
+  "Isidro",
+  "Ismael",
+  "Isobel",
+  "Isom",
+  "Israel",
+  "Issac",
+  "Itzel",
+  "Iva",
+  "Ivah",
+  "Ivory",
+  "Ivy",
+  "Izabella",
+  "Izaiah",
+  "Jabari",
+  "Jace",
+  "Jacey",
+  "Jacinthe",
+  "Jacinto",
+  "Jack",
+  "Jackeline",
+  "Jackie",
+  "Jacklyn",
+  "Jackson",
+  "Jacky",
+  "Jaclyn",
+  "Jacquelyn",
+  "Jacques",
+  "Jacynthe",
+  "Jada",
+  "Jade",
+  "Jaden",
+  "Jadon",
+  "Jadyn",
+  "Jaeden",
+  "Jaida",
+  "Jaiden",
+  "Jailyn",
+  "Jaime",
+  "Jairo",
+  "Jakayla",
+  "Jake",
+  "Jakob",
+  "Jaleel",
+  "Jalen",
+  "Jalon",
+  "Jalyn",
+  "Jamaal",
+  "Jamal",
+  "Jamar",
+  "Jamarcus",
+  "Jamel",
+  "Jameson",
+  "Jamey",
+  "Jamie",
+  "Jamil",
+  "Jamir",
+  "Jamison",
+  "Jammie",
+  "Jan",
+  "Jana",
+  "Janae",
+  "Jane",
+  "Janelle",
+  "Janessa",
+  "Janet",
+  "Janice",
+  "Janick",
+  "Janie",
+  "Janis",
+  "Janiya",
+  "Jannie",
+  "Jany",
+  "Jaquan",
+  "Jaquelin",
+  "Jaqueline",
+  "Jared",
+  "Jaren",
+  "Jarod",
+  "Jaron",
+  "Jarred",
+  "Jarrell",
+  "Jarret",
+  "Jarrett",
+  "Jarrod",
+  "Jarvis",
+  "Jasen",
+  "Jasmin",
+  "Jason",
+  "Jasper",
+  "Jaunita",
+  "Javier",
+  "Javon",
+  "Javonte",
+  "Jay",
+  "Jayce",
+  "Jaycee",
+  "Jayda",
+  "Jayde",
+  "Jayden",
+  "Jaydon",
+  "Jaylan",
+  "Jaylen",
+  "Jaylin",
+  "Jaylon",
+  "Jayme",
+  "Jayne",
+  "Jayson",
+  "Jazlyn",
+  "Jazmin",
+  "Jazmyn",
+  "Jazmyne",
+  "Jean",
+  "Jeanette",
+  "Jeanie",
+  "Jeanne",
+  "Jed",
+  "Jedediah",
+  "Jedidiah",
+  "Jeff",
+  "Jefferey",
+  "Jeffery",
+  "Jeffrey",
+  "Jeffry",
+  "Jena",
+  "Jenifer",
+  "Jennie",
+  "Jennifer",
+  "Jennings",
+  "Jennyfer",
+  "Jensen",
+  "Jerad",
+  "Jerald",
+  "Jeramie",
+  "Jeramy",
+  "Jerel",
+  "Jeremie",
+  "Jeremy",
+  "Jermain",
+  "Jermaine",
+  "Jermey",
+  "Jerod",
+  "Jerome",
+  "Jeromy",
+  "Jerrell",
+  "Jerrod",
+  "Jerrold",
+  "Jerry",
+  "Jess",
+  "Jesse",
+  "Jessica",
+  "Jessie",
+  "Jessika",
+  "Jessy",
+  "Jessyca",
+  "Jesus",
+  "Jett",
+  "Jettie",
+  "Jevon",
+  "Jewel",
+  "Jewell",
+  "Jillian",
+  "Jimmie",
+  "Jimmy",
+  "Jo",
+  "Joan",
+  "Joana",
+  "Joanie",
+  "Joanne",
+  "Joannie",
+  "Joanny",
+  "Joany",
+  "Joaquin",
+  "Jocelyn",
+  "Jodie",
+  "Jody",
+  "Joe",
+  "Joel",
+  "Joelle",
+  "Joesph",
+  "Joey",
+  "Johan",
+  "Johann",
+  "Johanna",
+  "Johathan",
+  "John",
+  "Johnathan",
+  "Johnathon",
+  "Johnnie",
+  "Johnny",
+  "Johnpaul",
+  "Johnson",
+  "Jolie",
+  "Jon",
+  "Jonas",
+  "Jonatan",
+  "Jonathan",
+  "Jonathon",
+  "Jordan",
+  "Jordane",
+  "Jordi",
+  "Jordon",
+  "Jordy",
+  "Jordyn",
+  "Jorge",
+  "Jose",
+  "Josefa",
+  "Josefina",
+  "Joseph",
+  "Josephine",
+  "Josh",
+  "Joshua",
+  "Joshuah",
+  "Josiah",
+  "Josiane",
+  "Josianne",
+  "Josie",
+  "Josue",
+  "Jovan",
+  "Jovani",
+  "Jovanny",
+  "Jovany",
+  "Joy",
+  "Joyce",
+  "Juana",
+  "Juanita",
+  "Judah",
+  "Judd",
+  "Jude",
+  "Judge",
+  "Judson",
+  "Judy",
+  "Jules",
+  "Julia",
+  "Julian",
+  "Juliana",
+  "Julianne",
+  "Julie",
+  "Julien",
+  "Juliet",
+  "Julio",
+  "Julius",
+  "June",
+  "Junior",
+  "Junius",
+  "Justen",
+  "Justice",
+  "Justina",
+  "Justine",
+  "Juston",
+  "Justus",
+  "Justyn",
+  "Juvenal",
+  "Juwan",
+  "Kacey",
+  "Kaci",
+  "Kacie",
+  "Kade",
+  "Kaden",
+  "Kadin",
+  "Kaela",
+  "Kaelyn",
+  "Kaia",
+  "Kailee",
+  "Kailey",
+  "Kailyn",
+  "Kaitlin",
+  "Kaitlyn",
+  "Kale",
+  "Kaleb",
+  "Kaleigh",
+  "Kaley",
+  "Kali",
+  "Kallie",
+  "Kameron",
+  "Kamille",
+  "Kamren",
+  "Kamron",
+  "Kamryn",
+  "Kane",
+  "Kara",
+  "Kareem",
+  "Karelle",
+  "Karen",
+  "Kari",
+  "Kariane",
+  "Karianne",
+  "Karina",
+  "Karine",
+  "Karl",
+  "Karlee",
+  "Karley",
+  "Karli",
+  "Karlie",
+  "Karolann",
+  "Karson",
+  "Kasandra",
+  "Kasey",
+  "Kassandra",
+  "Katarina",
+  "Katelin",
+  "Katelyn",
+  "Katelynn",
+  "Katharina",
+  "Katherine",
+  "Katheryn",
+  "Kathleen",
+  "Kathlyn",
+  "Kathryn",
+  "Kathryne",
+  "Katlyn",
+  "Katlynn",
+  "Katrina",
+  "Katrine",
+  "Kattie",
+  "Kavon",
+  "Kay",
+  "Kaya",
+  "Kaycee",
+  "Kayden",
+  "Kayla",
+  "Kaylah",
+  "Kaylee",
+  "Kayleigh",
+  "Kayley",
+  "Kayli",
+  "Kaylie",
+  "Kaylin",
+  "Keagan",
+  "Keanu",
+  "Keara",
+  "Keaton",
+  "Keegan",
+  "Keeley",
+  "Keely",
+  "Keenan",
+  "Keira",
+  "Keith",
+  "Kellen",
+  "Kelley",
+  "Kelli",
+  "Kellie",
+  "Kelly",
+  "Kelsi",
+  "Kelsie",
+  "Kelton",
+  "Kelvin",
+  "Ken",
+  "Kendall",
+  "Kendra",
+  "Kendrick",
+  "Kenna",
+  "Kennedi",
+  "Kennedy",
+  "Kenneth",
+  "Kennith",
+  "Kenny",
+  "Kenton",
+  "Kenya",
+  "Kenyatta",
+  "Kenyon",
+  "Keon",
+  "Keshaun",
+  "Keshawn",
+  "Keven",
+  "Kevin",
+  "Kevon",
+  "Keyon",
+  "Keyshawn",
+  "Khalid",
+  "Khalil",
+  "Kian",
+  "Kiana",
+  "Kianna",
+  "Kiara",
+  "Kiarra",
+  "Kiel",
+  "Kiera",
+  "Kieran",
+  "Kiley",
+  "Kim",
+  "Kimberly",
+  "King",
+  "Kip",
+  "Kira",
+  "Kirk",
+  "Kirsten",
+  "Kirstin",
+  "Kitty",
+  "Kobe",
+  "Koby",
+  "Kody",
+  "Kolby",
+  "Kole",
+  "Korbin",
+  "Korey",
+  "Kory",
+  "Kraig",
+  "Kris",
+  "Krista",
+  "Kristian",
+  "Kristin",
+  "Kristina",
+  "Kristofer",
+  "Kristoffer",
+  "Kristopher",
+  "Kristy",
+  "Krystal",
+  "Krystel",
+  "Krystina",
+  "Kurt",
+  "Kurtis",
+  "Kyla",
+  "Kyle",
+  "Kylee",
+  "Kyleigh",
+  "Kyler",
+  "Kylie",
+  "Kyra",
+  "Lacey",
+  "Lacy",
+  "Ladarius",
+  "Lafayette",
+  "Laila",
+  "Laisha",
+  "Lamar",
+  "Lambert",
+  "Lamont",
+  "Lance",
+  "Landen",
+  "Lane",
+  "Laney",
+  "Larissa",
+  "Laron",
+  "Larry",
+  "Larue",
+  "Laura",
+  "Laurel",
+  "Lauren",
+  "Laurence",
+  "Lauretta",
+  "Lauriane",
+  "Laurianne",
+  "Laurie",
+  "Laurine",
+  "Laury",
+  "Lauryn",
+  "Lavada",
+  "Lavern",
+  "Laverna",
+  "Laverne",
+  "Lavina",
+  "Lavinia",
+  "Lavon",
+  "Lavonne",
+  "Lawrence",
+  "Lawson",
+  "Layla",
+  "Layne",
+  "Lazaro",
+  "Lea",
+  "Leann",
+  "Leanna",
+  "Leanne",
+  "Leatha",
+  "Leda",
+  "Lee",
+  "Leif",
+  "Leila",
+  "Leilani",
+  "Lela",
+  "Lelah",
+  "Leland",
+  "Lelia",
+  "Lempi",
+  "Lemuel",
+  "Lenna",
+  "Lennie",
+  "Lenny",
+  "Lenora",
+  "Lenore",
+  "Leo",
+  "Leola",
+  "Leon",
+  "Leonard",
+  "Leonardo",
+  "Leone",
+  "Leonel",
+  "Leonie",
+  "Leonor",
+  "Leonora",
+  "Leopold",
+  "Leopoldo",
+  "Leora",
+  "Lera",
+  "Lesley",
+  "Leslie",
+  "Lesly",
+  "Lessie",
+  "Lester",
+  "Leta",
+  "Letha",
+  "Letitia",
+  "Levi",
+  "Lew",
+  "Lewis",
+  "Lexi",
+  "Lexie",
+  "Lexus",
+  "Lia",
+  "Liam",
+  "Liana",
+  "Libbie",
+  "Libby",
+  "Lila",
+  "Lilian",
+  "Liliana",
+  "Liliane",
+  "Lilla",
+  "Lillian",
+  "Lilliana",
+  "Lillie",
+  "Lilly",
+  "Lily",
+  "Lilyan",
+  "Lina",
+  "Lincoln",
+  "Linda",
+  "Lindsay",
+  "Lindsey",
+  "Linnea",
+  "Linnie",
+  "Linwood",
+  "Lionel",
+  "Lisa",
+  "Lisandro",
+  "Lisette",
+  "Litzy",
+  "Liza",
+  "Lizeth",
+  "Lizzie",
+  "Llewellyn",
+  "Lloyd",
+  "Logan",
+  "Lois",
+  "Lola",
+  "Lolita",
+  "Loma",
+  "Lon",
+  "London",
+  "Lonie",
+  "Lonnie",
+  "Lonny",
+  "Lonzo",
+  "Lora",
+  "Loraine",
+  "Loren",
+  "Lorena",
+  "Lorenz",
+  "Lorenza",
+  "Lorenzo",
+  "Lori",
+  "Lorine",
+  "Lorna",
+  "Lottie",
+  "Lou",
+  "Louie",
+  "Louisa",
+  "Lourdes",
+  "Louvenia",
+  "Lowell",
+  "Loy",
+  "Loyal",
+  "Loyce",
+  "Lucas",
+  "Luciano",
+  "Lucie",
+  "Lucienne",
+  "Lucile",
+  "Lucinda",
+  "Lucio",
+  "Lucious",
+  "Lucius",
+  "Lucy",
+  "Ludie",
+  "Ludwig",
+  "Lue",
+  "Luella",
+  "Luigi",
+  "Luis",
+  "Luisa",
+  "Lukas",
+  "Lula",
+  "Lulu",
+  "Luna",
+  "Lupe",
+  "Lura",
+  "Lurline",
+  "Luther",
+  "Luz",
+  "Lyda",
+  "Lydia",
+  "Lyla",
+  "Lynn",
+  "Lyric",
+  "Lysanne",
+  "Mabel",
+  "Mabelle",
+  "Mable",
+  "Mac",
+  "Macey",
+  "Maci",
+  "Macie",
+  "Mack",
+  "Mackenzie",
+  "Macy",
+  "Madaline",
+  "Madalyn",
+  "Maddison",
+  "Madeline",
+  "Madelyn",
+  "Madelynn",
+  "Madge",
+  "Madie",
+  "Madilyn",
+  "Madisen",
+  "Madison",
+  "Madisyn",
+  "Madonna",
+  "Madyson",
+  "Mae",
+  "Maegan",
+  "Maeve",
+  "Mafalda",
+  "Magali",
+  "Magdalen",
+  "Magdalena",
+  "Maggie",
+  "Magnolia",
+  "Magnus",
+  "Maia",
+  "Maida",
+  "Maiya",
+  "Major",
+  "Makayla",
+  "Makenna",
+  "Makenzie",
+  "Malachi",
+  "Malcolm",
+  "Malika",
+  "Malinda",
+  "Mallie",
+  "Mallory",
+  "Malvina",
+  "Mandy",
+  "Manley",
+  "Manuel",
+  "Manuela",
+  "Mara",
+  "Marc",
+  "Marcel",
+  "Marcelina",
+  "Marcelino",
+  "Marcella",
+  "Marcelle",
+  "Marcellus",
+  "Marcelo",
+  "Marcia",
+  "Marco",
+  "Marcos",
+  "Marcus",
+  "Margaret",
+  "Margarete",
+  "Margarett",
+  "Margaretta",
+  "Margarette",
+  "Margarita",
+  "Marge",
+  "Margie",
+  "Margot",
+  "Margret",
+  "Marguerite",
+  "Maria",
+  "Mariah",
+  "Mariam",
+  "Marian",
+  "Mariana",
+  "Mariane",
+  "Marianna",
+  "Marianne",
+  "Mariano",
+  "Maribel",
+  "Marie",
+  "Mariela",
+  "Marielle",
+  "Marietta",
+  "Marilie",
+  "Marilou",
+  "Marilyne",
+  "Marina",
+  "Mario",
+  "Marion",
+  "Marisa",
+  "Marisol",
+  "Maritza",
+  "Marjolaine",
+  "Marjorie",
+  "Marjory",
+  "Mark",
+  "Markus",
+  "Marlee",
+  "Marlen",
+  "Marlene",
+  "Marley",
+  "Marlin",
+  "Marlon",
+  "Marques",
+  "Marquis",
+  "Marquise",
+  "Marshall",
+  "Marta",
+  "Martin",
+  "Martina",
+  "Martine",
+  "Marty",
+  "Marvin",
+  "Mary",
+  "Maryam",
+  "Maryjane",
+  "Maryse",
+  "Mason",
+  "Mateo",
+  "Mathew",
+  "Mathias",
+  "Mathilde",
+  "Matilda",
+  "Matilde",
+  "Matt",
+  "Matteo",
+  "Mattie",
+  "Maud",
+  "Maude",
+  "Maudie",
+  "Maureen",
+  "Maurice",
+  "Mauricio",
+  "Maurine",
+  "Maverick",
+  "Mavis",
+  "Max",
+  "Maxie",
+  "Maxime",
+  "Maximilian",
+  "Maximillia",
+  "Maximillian",
+  "Maximo",
+  "Maximus",
+  "Maxine",
+  "Maxwell",
+  "May",
+  "Maya",
+  "Maybell",
+  "Maybelle",
+  "Maye",
+  "Maymie",
+  "Maynard",
+  "Mayra",
+  "Mazie",
+  "Mckayla",
+  "Mckenna",
+  "Mckenzie",
+  "Meagan",
+  "Meaghan",
+  "Meda",
+  "Megane",
+  "Meggie",
+  "Meghan",
+  "Mekhi",
+  "Melany",
+  "Melba",
+  "Melisa",
+  "Melissa",
+  "Mellie",
+  "Melody",
+  "Melvin",
+  "Melvina",
+  "Melyna",
+  "Melyssa",
+  "Mercedes",
+  "Meredith",
+  "Merl",
+  "Merle",
+  "Merlin",
+  "Merritt",
+  "Mertie",
+  "Mervin",
+  "Meta",
+  "Mia",
+  "Micaela",
+  "Micah",
+  "Michael",
+  "Michaela",
+  "Michale",
+  "Micheal",
+  "Michel",
+  "Michele",
+  "Michelle",
+  "Miguel",
+  "Mikayla",
+  "Mike",
+  "Mikel",
+  "Milan",
+  "Miles",
+  "Milford",
+  "Miller",
+  "Millie",
+  "Milo",
+  "Milton",
+  "Mina",
+  "Minerva",
+  "Minnie",
+  "Miracle",
+  "Mireille",
+  "Mireya",
+  "Misael",
+  "Missouri",
+  "Misty",
+  "Mitchel",
+  "Mitchell",
+  "Mittie",
+  "Modesta",
+  "Modesto",
+  "Mohamed",
+  "Mohammad",
+  "Mohammed",
+  "Moises",
+  "Mollie",
+  "Molly",
+  "Mona",
+  "Monica",
+  "Monique",
+  "Monroe",
+  "Monserrat",
+  "Monserrate",
+  "Montana",
+  "Monte",
+  "Monty",
+  "Morgan",
+  "Moriah",
+  "Morris",
+  "Mortimer",
+  "Morton",
+  "Mose",
+  "Moses",
+  "Moshe",
+  "Mossie",
+  "Mozell",
+  "Mozelle",
+  "Muhammad",
+  "Muriel",
+  "Murl",
+  "Murphy",
+  "Murray",
+  "Mustafa",
+  "Mya",
+  "Myah",
+  "Mylene",
+  "Myles",
+  "Myra",
+  "Myriam",
+  "Myrl",
+  "Myrna",
+  "Myron",
+  "Myrtice",
+  "Myrtie",
+  "Myrtis",
+  "Myrtle",
+  "Nadia",
+  "Nakia",
+  "Name",
+  "Nannie",
+  "Naomi",
+  "Naomie",
+  "Napoleon",
+  "Narciso",
+  "Nash",
+  "Nasir",
+  "Nat",
+  "Natalia",
+  "Natalie",
+  "Natasha",
+  "Nathan",
+  "Nathanael",
+  "Nathanial",
+  "Nathaniel",
+  "Nathen",
+  "Nayeli",
+  "Neal",
+  "Ned",
+  "Nedra",
+  "Neha",
+  "Neil",
+  "Nelda",
+  "Nella",
+  "Nelle",
+  "Nellie",
+  "Nels",
+  "Nelson",
+  "Neoma",
+  "Nestor",
+  "Nettie",
+  "Neva",
+  "Newell",
+  "Newton",
+  "Nia",
+  "Nicholas",
+  "Nicholaus",
+  "Nichole",
+  "Nick",
+  "Nicklaus",
+  "Nickolas",
+  "Nico",
+  "Nicola",
+  "Nicolas",
+  "Nicole",
+  "Nicolette",
+  "Nigel",
+  "Nikita",
+  "Nikki",
+  "Nikko",
+  "Niko",
+  "Nikolas",
+  "Nils",
+  "Nina",
+  "Noah",
+  "Noble",
+  "Noe",
+  "Noel",
+  "Noelia",
+  "Noemi",
+  "Noemie",
+  "Noemy",
+  "Nola",
+  "Nolan",
+  "Nona",
+  "Nora",
+  "Norbert",
+  "Norberto",
+  "Norene",
+  "Norma",
+  "Norris",
+  "Norval",
+  "Norwood",
+  "Nova",
+  "Novella",
+  "Nya",
+  "Nyah",
+  "Nyasia",
+  "Obie",
+  "Oceane",
+  "Ocie",
+  "Octavia",
+  "Oda",
+  "Odell",
+  "Odessa",
+  "Odie",
+  "Ofelia",
+  "Okey",
+  "Ola",
+  "Olaf",
+  "Ole",
+  "Olen",
+  "Oleta",
+  "Olga",
+  "Olin",
+  "Oliver",
+  "Ollie",
+  "Oma",
+  "Omari",
+  "Omer",
+  "Ona",
+  "Onie",
+  "Opal",
+  "Ophelia",
+  "Ora",
+  "Oral",
+  "Oran",
+  "Oren",
+  "Orie",
+  "Orin",
+  "Orion",
+  "Orland",
+  "Orlando",
+  "Orlo",
+  "Orpha",
+  "Orrin",
+  "Orval",
+  "Orville",
+  "Osbaldo",
+  "Osborne",
+  "Oscar",
+  "Osvaldo",
+  "Oswald",
+  "Oswaldo",
+  "Otha",
+  "Otho",
+  "Otilia",
+  "Otis",
+  "Ottilie",
+  "Ottis",
+  "Otto",
+  "Ova",
+  "Owen",
+  "Ozella",
+  "Pablo",
+  "Paige",
+  "Palma",
+  "Pamela",
+  "Pansy",
+  "Paolo",
+  "Paris",
+  "Parker",
+  "Pascale",
+  "Pasquale",
+  "Pat",
+  "Patience",
+  "Patricia",
+  "Patrick",
+  "Patsy",
+  "Pattie",
+  "Paul",
+  "Paula",
+  "Pauline",
+  "Paxton",
+  "Payton",
+  "Pearl",
+  "Pearlie",
+  "Pearline",
+  "Pedro",
+  "Peggie",
+  "Penelope",
+  "Percival",
+  "Percy",
+  "Perry",
+  "Pete",
+  "Peter",
+  "Petra",
+  "Peyton",
+  "Philip",
+  "Phoebe",
+  "Phyllis",
+  "Pierce",
+  "Pierre",
+  "Pietro",
+  "Pink",
+  "Pinkie",
+  "Piper",
+  "Polly",
+  "Porter",
+  "Precious",
+  "Presley",
+  "Preston",
+  "Price",
+  "Prince",
+  "Princess",
+  "Priscilla",
+  "Providenci",
+  "Prudence",
+  "Queen",
+  "Queenie",
+  "Quentin",
+  "Quincy",
+  "Quinn",
+  "Quinten",
+  "Quinton",
+  "Rachael",
+  "Rachel",
+  "Rachelle",
+  "Rae",
+  "Raegan",
+  "Rafael",
+  "Rafaela",
+  "Raheem",
+  "Rahsaan",
+  "Rahul",
+  "Raina",
+  "Raleigh",
+  "Ralph",
+  "Ramiro",
+  "Ramon",
+  "Ramona",
+  "Randal",
+  "Randall",
+  "Randi",
+  "Randy",
+  "Ransom",
+  "Raoul",
+  "Raphael",
+  "Raphaelle",
+  "Raquel",
+  "Rashad",
+  "Rashawn",
+  "Rasheed",
+  "Raul",
+  "Raven",
+  "Ray",
+  "Raymond",
+  "Raymundo",
+  "Reagan",
+  "Reanna",
+  "Reba",
+  "Rebeca",
+  "Rebecca",
+  "Rebeka",
+  "Rebekah",
+  "Reece",
+  "Reed",
+  "Reese",
+  "Regan",
+  "Reggie",
+  "Reginald",
+  "Reid",
+  "Reilly",
+  "Reina",
+  "Reinhold",
+  "Remington",
+  "Rene",
+  "Renee",
+  "Ressie",
+  "Reta",
+  "Retha",
+  "Retta",
+  "Reuben",
+  "Reva",
+  "Rex",
+  "Rey",
+  "Reyes",
+  "Reymundo",
+  "Reyna",
+  "Reynold",
+  "Rhea",
+  "Rhett",
+  "Rhianna",
+  "Rhiannon",
+  "Rhoda",
+  "Ricardo",
+  "Richard",
+  "Richie",
+  "Richmond",
+  "Rick",
+  "Rickey",
+  "Rickie",
+  "Ricky",
+  "Rico",
+  "Rigoberto",
+  "Riley",
+  "Rita",
+  "River",
+  "Robb",
+  "Robbie",
+  "Robert",
+  "Roberta",
+  "Roberto",
+  "Robin",
+  "Robyn",
+  "Rocio",
+  "Rocky",
+  "Rod",
+  "Roderick",
+  "Rodger",
+  "Rodolfo",
+  "Rodrick",
+  "Rodrigo",
+  "Roel",
+  "Rogelio",
+  "Roger",
+  "Rogers",
+  "Rolando",
+  "Rollin",
+  "Roma",
+  "Romaine",
+  "Roman",
+  "Ron",
+  "Ronaldo",
+  "Ronny",
+  "Roosevelt",
+  "Rory",
+  "Rosa",
+  "Rosalee",
+  "Rosalia",
+  "Rosalind",
+  "Rosalinda",
+  "Rosalyn",
+  "Rosamond",
+  "Rosanna",
+  "Rosario",
+  "Roscoe",
+  "Rose",
+  "Rosella",
+  "Roselyn",
+  "Rosemarie",
+  "Rosemary",
+  "Rosendo",
+  "Rosetta",
+  "Rosie",
+  "Rosina",
+  "Roslyn",
+  "Ross",
+  "Rossie",
+  "Rowan",
+  "Rowena",
+  "Rowland",
+  "Roxane",
+  "Roxanne",
+  "Roy",
+  "Royal",
+  "Royce",
+  "Rozella",
+  "Ruben",
+  "Rubie",
+  "Ruby",
+  "Rubye",
+  "Rudolph",
+  "Rudy",
+  "Rupert",
+  "Russ",
+  "Russel",
+  "Russell",
+  "Rusty",
+  "Ruth",
+  "Ruthe",
+  "Ruthie",
+  "Ryan",
+  "Ryann",
+  "Ryder",
+  "Rylan",
+  "Rylee",
+  "Ryleigh",
+  "Ryley",
+  "Sabina",
+  "Sabrina",
+  "Sabryna",
+  "Sadie",
+  "Sadye",
+  "Sage",
+  "Saige",
+  "Sallie",
+  "Sally",
+  "Salma",
+  "Salvador",
+  "Salvatore",
+  "Sam",
+  "Samanta",
+  "Samantha",
+  "Samara",
+  "Samir",
+  "Sammie",
+  "Sammy",
+  "Samson",
+  "Sandra",
+  "Sandrine",
+  "Sandy",
+  "Sanford",
+  "Santa",
+  "Santiago",
+  "Santina",
+  "Santino",
+  "Santos",
+  "Sarah",
+  "Sarai",
+  "Sarina",
+  "Sasha",
+  "Saul",
+  "Savanah",
+  "Savanna",
+  "Savannah",
+  "Savion",
+  "Scarlett",
+  "Schuyler",
+  "Scot",
+  "Scottie",
+  "Scotty",
+  "Seamus",
+  "Sean",
+  "Sebastian",
+  "Sedrick",
+  "Selena",
+  "Selina",
+  "Selmer",
+  "Serena",
+  "Serenity",
+  "Seth",
+  "Shad",
+  "Shaina",
+  "Shakira",
+  "Shana",
+  "Shane",
+  "Shanel",
+  "Shanelle",
+  "Shania",
+  "Shanie",
+  "Shaniya",
+  "Shanna",
+  "Shannon",
+  "Shanny",
+  "Shanon",
+  "Shany",
+  "Sharon",
+  "Shaun",
+  "Shawn",
+  "Shawna",
+  "Shaylee",
+  "Shayna",
+  "Shayne",
+  "Shea",
+  "Sheila",
+  "Sheldon",
+  "Shemar",
+  "Sheridan",
+  "Sherman",
+  "Sherwood",
+  "Shirley",
+  "Shyann",
+  "Shyanne",
+  "Sibyl",
+  "Sid",
+  "Sidney",
+  "Sienna",
+  "Sierra",
+  "Sigmund",
+  "Sigrid",
+  "Sigurd",
+  "Silas",
+  "Sim",
+  "Simeon",
+  "Simone",
+  "Sincere",
+  "Sister",
+  "Skye",
+  "Skyla",
+  "Skylar",
+  "Sofia",
+  "Soledad",
+  "Solon",
+  "Sonia",
+  "Sonny",
+  "Sonya",
+  "Sophia",
+  "Sophie",
+  "Spencer",
+  "Stacey",
+  "Stacy",
+  "Stan",
+  "Stanford",
+  "Stanley",
+  "Stanton",
+  "Stefan",
+  "Stefanie",
+  "Stella",
+  "Stephan",
+  "Stephania",
+  "Stephanie",
+  "Stephany",
+  "Stephen",
+  "Stephon",
+  "Sterling",
+  "Steve",
+  "Stevie",
+  "Stewart",
+  "Stone",
+  "Stuart",
+  "Summer",
+  "Sunny",
+  "Susan",
+  "Susana",
+  "Susanna",
+  "Susie",
+  "Suzanne",
+  "Sven",
+  "Syble",
+  "Sydnee",
+  "Sydney",
+  "Sydni",
+  "Sydnie",
+  "Sylvan",
+  "Sylvester",
+  "Sylvia",
+  "Tabitha",
+  "Tad",
+  "Talia",
+  "Talon",
+  "Tamara",
+  "Tamia",
+  "Tania",
+  "Tanner",
+  "Tanya",
+  "Tara",
+  "Taryn",
+  "Tate",
+  "Tatum",
+  "Tatyana",
+  "Taurean",
+  "Tavares",
+  "Taya",
+  "Taylor",
+  "Teagan",
+  "Ted",
+  "Telly",
+  "Terence",
+  "Teresa",
+  "Terrance",
+  "Terrell",
+  "Terrence",
+  "Terrill",
+  "Terry",
+  "Tess",
+  "Tessie",
+  "Tevin",
+  "Thad",
+  "Thaddeus",
+  "Thalia",
+  "Thea",
+  "Thelma",
+  "Theo",
+  "Theodora",
+  "Theodore",
+  "Theresa",
+  "Therese",
+  "Theresia",
+  "Theron",
+  "Thomas",
+  "Thora",
+  "Thurman",
+  "Tia",
+  "Tiana",
+  "Tianna",
+  "Tiara",
+  "Tierra",
+  "Tiffany",
+  "Tillman",
+  "Timmothy",
+  "Timmy",
+  "Timothy",
+  "Tina",
+  "Tito",
+  "Titus",
+  "Tobin",
+  "Toby",
+  "Tod",
+  "Tom",
+  "Tomas",
+  "Tomasa",
+  "Tommie",
+  "Toney",
+  "Toni",
+  "Tony",
+  "Torey",
+  "Torrance",
+  "Torrey",
+  "Toy",
+  "Trace",
+  "Tracey",
+  "Tracy",
+  "Travis",
+  "Travon",
+  "Tre",
+  "Tremaine",
+  "Tremayne",
+  "Trent",
+  "Trenton",
+  "Tressa",
+  "Tressie",
+  "Treva",
+  "Trever",
+  "Trevion",
+  "Trevor",
+  "Trey",
+  "Trinity",
+  "Trisha",
+  "Tristian",
+  "Tristin",
+  "Triston",
+  "Troy",
+  "Trudie",
+  "Trycia",
+  "Trystan",
+  "Turner",
+  "Twila",
+  "Tyler",
+  "Tyra",
+  "Tyree",
+  "Tyreek",
+  "Tyrel",
+  "Tyrell",
+  "Tyrese",
+  "Tyrique",
+  "Tyshawn",
+  "Tyson",
+  "Ubaldo",
+  "Ulices",
+  "Ulises",
+  "Una",
+  "Unique",
+  "Urban",
+  "Uriah",
+  "Uriel",
+  "Ursula",
+  "Vada",
+  "Valentin",
+  "Valentina",
+  "Valentine",
+  "Valerie",
+  "Vallie",
+  "Van",
+  "Vance",
+  "Vanessa",
+  "Vaughn",
+  "Veda",
+  "Velda",
+  "Vella",
+  "Velma",
+  "Velva",
+  "Vena",
+  "Verda",
+  "Verdie",
+  "Vergie",
+  "Verla",
+  "Verlie",
+  "Vern",
+  "Verna",
+  "Verner",
+  "Vernice",
+  "Vernie",
+  "Vernon",
+  "Verona",
+  "Veronica",
+  "Vesta",
+  "Vicenta",
+  "Vicente",
+  "Vickie",
+  "Vicky",
+  "Victor",
+  "Victoria",
+  "Vida",
+  "Vidal",
+  "Vilma",
+  "Vince",
+  "Vincent",
+  "Vincenza",
+  "Vincenzo",
+  "Vinnie",
+  "Viola",
+  "Violet",
+  "Violette",
+  "Virgie",
+  "Virgil",
+  "Virginia",
+  "Virginie",
+  "Vita",
+  "Vito",
+  "Viva",
+  "Vivian",
+  "Viviane",
+  "Vivianne",
+  "Vivien",
+  "Vivienne",
+  "Vladimir",
+  "Wade",
+  "Waino",
+  "Waldo",
+  "Walker",
+  "Wallace",
+  "Walter",
+  "Walton",
+  "Wanda",
+  "Ward",
+  "Warren",
+  "Watson",
+  "Wava",
+  "Waylon",
+  "Wayne",
+  "Webster",
+  "Weldon",
+  "Wellington",
+  "Wendell",
+  "Wendy",
+  "Werner",
+  "Westley",
+  "Weston",
+  "Whitney",
+  "Wilber",
+  "Wilbert",
+  "Wilburn",
+  "Wiley",
+  "Wilford",
+  "Wilfred",
+  "Wilfredo",
+  "Wilfrid",
+  "Wilhelm",
+  "Wilhelmine",
+  "Will",
+  "Willa",
+  "Willard",
+  "William",
+  "Willie",
+  "Willis",
+  "Willow",
+  "Willy",
+  "Wilma",
+  "Wilmer",
+  "Wilson",
+  "Wilton",
+  "Winfield",
+  "Winifred",
+  "Winnifred",
+  "Winona",
+  "Winston",
+  "Woodrow",
+  "Wyatt",
+  "Wyman",
+  "Xander",
+  "Xavier",
+  "Xzavier",
+  "Yadira",
+  "Yasmeen",
+  "Yasmin",
+  "Yasmine",
+  "Yazmin",
+  "Yesenia",
+  "Yessenia",
+  "Yolanda",
+  "Yoshiko",
+  "Yvette",
+  "Yvonne",
+  "Zachariah",
+  "Zachary",
+  "Zachery",
+  "Zack",
+  "Zackary",
+  "Zackery",
+  "Zakary",
+  "Zander",
+  "Zane",
+  "Zaria",
+  "Zechariah",
+  "Zelda",
+  "Zella",
+  "Zelma",
+  "Zena",
+  "Zetta",
+  "Zion",
+  "Zita",
+  "Zoe",
+  "Zoey",
+  "Zoie",
+  "Zoila",
+  "Zola",
+  "Zora",
+  "Zula"
+];
+
+},{}],259:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.title = require("./title");
+name.name = require("./name");
+
+},{"./first_name":258,"./last_name":260,"./name":261,"./prefix":262,"./suffix":263,"./title":264}],260:[function(require,module,exports){
+module["exports"] = [
+  "Abbott",
+  "Abernathy",
+  "Abshire",
+  "Adams",
+  "Altenwerth",
+  "Anderson",
+  "Ankunding",
+  "Armstrong",
+  "Auer",
+  "Aufderhar",
+  "Bahringer",
+  "Bailey",
+  "Balistreri",
+  "Barrows",
+  "Bartell",
+  "Bartoletti",
+  "Barton",
+  "Bashirian",
+  "Batz",
+  "Bauch",
+  "Baumbach",
+  "Bayer",
+  "Beahan",
+  "Beatty",
+  "Bechtelar",
+  "Becker",
+  "Bednar",
+  "Beer",
+  "Beier",
+  "Berge",
+  "Bergnaum",
+  "Bergstrom",
+  "Bernhard",
+  "Bernier",
+  "Bins",
+  "Blanda",
+  "Blick",
+  "Block",
+  "Bode",
+  "Boehm",
+  "Bogan",
+  "Bogisich",
+  "Borer",
+  "Bosco",
+  "Botsford",
+  "Boyer",
+  "Boyle",
+  "Bradtke",
+  "Brakus",
+  "Braun",
+  "Breitenberg",
+  "Brekke",
+  "Brown",
+  "Bruen",
+  "Buckridge",
+  "Carroll",
+  "Carter",
+  "Cartwright",
+  "Casper",
+  "Cassin",
+  "Champlin",
+  "Christiansen",
+  "Cole",
+  "Collier",
+  "Collins",
+  "Conn",
+  "Connelly",
+  "Conroy",
+  "Considine",
+  "Corkery",
+  "Cormier",
+  "Corwin",
+  "Cremin",
+  "Crist",
+  "Crona",
+  "Cronin",
+  "Crooks",
+  "Cruickshank",
+  "Cummerata",
+  "Cummings",
+  "Dach",
+  "D'Amore",
+  "Daniel",
+  "Dare",
+  "Daugherty",
+  "Davis",
+  "Deckow",
+  "Denesik",
+  "Dibbert",
+  "Dickens",
+  "Dicki",
+  "Dickinson",
+  "Dietrich",
+  "Donnelly",
+  "Dooley",
+  "Douglas",
+  "Doyle",
+  "DuBuque",
+  "Durgan",
+  "Ebert",
+  "Effertz",
+  "Eichmann",
+  "Emard",
+  "Emmerich",
+  "Erdman",
+  "Ernser",
+  "Fadel",
+  "Fahey",
+  "Farrell",
+  "Fay",
+  "Feeney",
+  "Feest",
+  "Feil",
+  "Ferry",
+  "Fisher",
+  "Flatley",
+  "Frami",
+  "Franecki",
+  "Friesen",
+  "Fritsch",
+  "Funk",
+  "Gaylord",
+  "Gerhold",
+  "Gerlach",
+  "Gibson",
+  "Gislason",
+  "Gleason",
+  "Gleichner",
+  "Glover",
+  "Goldner",
+  "Goodwin",
+  "Gorczany",
+  "Gottlieb",
+  "Goyette",
+  "Grady",
+  "Graham",
+  "Grant",
+  "Green",
+  "Greenfelder",
+  "Greenholt",
+  "Grimes",
+  "Gulgowski",
+  "Gusikowski",
+  "Gutkowski",
+  "Gutmann",
+  "Haag",
+  "Hackett",
+  "Hagenes",
+  "Hahn",
+  "Haley",
+  "Halvorson",
+  "Hamill",
+  "Hammes",
+  "Hand",
+  "Hane",
+  "Hansen",
+  "Harber",
+  "Harris",
+  "Hartmann",
+  "Harvey",
+  "Hauck",
+  "Hayes",
+  "Heaney",
+  "Heathcote",
+  "Hegmann",
+  "Heidenreich",
+  "Heller",
+  "Herman",
+  "Hermann",
+  "Hermiston",
+  "Herzog",
+  "Hessel",
+  "Hettinger",
+  "Hickle",
+  "Hilll",
+  "Hills",
+  "Hilpert",
+  "Hintz",
+  "Hirthe",
+  "Hodkiewicz",
+  "Hoeger",
+  "Homenick",
+  "Hoppe",
+  "Howe",
+  "Howell",
+  "Hudson",
+  "Huel",
+  "Huels",
+  "Hyatt",
+  "Jacobi",
+  "Jacobs",
+  "Jacobson",
+  "Jakubowski",
+  "Jaskolski",
+  "Jast",
+  "Jenkins",
+  "Jerde",
+  "Johns",
+  "Johnson",
+  "Johnston",
+  "Jones",
+  "Kassulke",
+  "Kautzer",
+  "Keebler",
+  "Keeling",
+  "Kemmer",
+  "Kerluke",
+  "Kertzmann",
+  "Kessler",
+  "Kiehn",
+  "Kihn",
+  "Kilback",
+  "King",
+  "Kirlin",
+  "Klein",
+  "Kling",
+  "Klocko",
+  "Koch",
+  "Koelpin",
+  "Koepp",
+  "Kohler",
+  "Konopelski",
+  "Koss",
+  "Kovacek",
+  "Kozey",
+  "Krajcik",
+  "Kreiger",
+  "Kris",
+  "Kshlerin",
+  "Kub",
+  "Kuhic",
+  "Kuhlman",
+  "Kuhn",
+  "Kulas",
+  "Kunde",
+  "Kunze",
+  "Kuphal",
+  "Kutch",
+  "Kuvalis",
+  "Labadie",
+  "Lakin",
+  "Lang",
+  "Langosh",
+  "Langworth",
+  "Larkin",
+  "Larson",
+  "Leannon",
+  "Lebsack",
+  "Ledner",
+  "Leffler",
+  "Legros",
+  "Lehner",
+  "Lemke",
+  "Lesch",
+  "Leuschke",
+  "Lind",
+  "Lindgren",
+  "Littel",
+  "Little",
+  "Lockman",
+  "Lowe",
+  "Lubowitz",
+  "Lueilwitz",
+  "Luettgen",
+  "Lynch",
+  "Macejkovic",
+  "MacGyver",
+  "Maggio",
+  "Mann",
+  "Mante",
+  "Marks",
+  "Marquardt",
+  "Marvin",
+  "Mayer",
+  "Mayert",
+  "McClure",
+  "McCullough",
+  "McDermott",
+  "McGlynn",
+  "McKenzie",
+  "McLaughlin",
+  "Medhurst",
+  "Mertz",
+  "Metz",
+  "Miller",
+  "Mills",
+  "Mitchell",
+  "Moen",
+  "Mohr",
+  "Monahan",
+  "Moore",
+  "Morar",
+  "Morissette",
+  "Mosciski",
+  "Mraz",
+  "Mueller",
+  "Muller",
+  "Murazik",
+  "Murphy",
+  "Murray",
+  "Nader",
+  "Nicolas",
+  "Nienow",
+  "Nikolaus",
+  "Nitzsche",
+  "Nolan",
+  "Oberbrunner",
+  "O'Connell",
+  "O'Conner",
+  "O'Hara",
+  "O'Keefe",
+  "O'Kon",
+  "Okuneva",
+  "Olson",
+  "Ondricka",
+  "O'Reilly",
+  "Orn",
+  "Ortiz",
+  "Osinski",
+  "Pacocha",
+  "Padberg",
+  "Pagac",
+  "Parisian",
+  "Parker",
+  "Paucek",
+  "Pfannerstill",
+  "Pfeffer",
+  "Pollich",
+  "Pouros",
+  "Powlowski",
+  "Predovic",
+  "Price",
+  "Prohaska",
+  "Prosacco",
+  "Purdy",
+  "Quigley",
+  "Quitzon",
+  "Rath",
+  "Ratke",
+  "Rau",
+  "Raynor",
+  "Reichel",
+  "Reichert",
+  "Reilly",
+  "Reinger",
+  "Rempel",
+  "Renner",
+  "Reynolds",
+  "Rice",
+  "Rippin",
+  "Ritchie",
+  "Robel",
+  "Roberts",
+  "Rodriguez",
+  "Rogahn",
+  "Rohan",
+  "Rolfson",
+  "Romaguera",
+  "Roob",
+  "Rosenbaum",
+  "Rowe",
+  "Ruecker",
+  "Runolfsdottir",
+  "Runolfsson",
+  "Runte",
+  "Russel",
+  "Rutherford",
+  "Ryan",
+  "Sanford",
+  "Satterfield",
+  "Sauer",
+  "Sawayn",
+  "Schaden",
+  "Schaefer",
+  "Schamberger",
+  "Schiller",
+  "Schimmel",
+  "Schinner",
+  "Schmeler",
+  "Schmidt",
+  "Schmitt",
+  "Schneider",
+  "Schoen",
+  "Schowalter",
+  "Schroeder",
+  "Schulist",
+  "Schultz",
+  "Schumm",
+  "Schuppe",
+  "Schuster",
+  "Senger",
+  "Shanahan",
+  "Shields",
+  "Simonis",
+  "Sipes",
+  "Skiles",
+  "Smith",
+  "Smitham",
+  "Spencer",
+  "Spinka",
+  "Sporer",
+  "Stamm",
+  "Stanton",
+  "Stark",
+  "Stehr",
+  "Steuber",
+  "Stiedemann",
+  "Stokes",
+  "Stoltenberg",
+  "Stracke",
+  "Streich",
+  "Stroman",
+  "Strosin",
+  "Swaniawski",
+  "Swift",
+  "Terry",
+  "Thiel",
+  "Thompson",
+  "Tillman",
+  "Torp",
+  "Torphy",
+  "Towne",
+  "Toy",
+  "Trantow",
+  "Tremblay",
+  "Treutel",
+  "Tromp",
+  "Turcotte",
+  "Turner",
+  "Ullrich",
+  "Upton",
+  "Vandervort",
+  "Veum",
+  "Volkman",
+  "Von",
+  "VonRueden",
+  "Waelchi",
+  "Walker",
+  "Walsh",
+  "Walter",
+  "Ward",
+  "Waters",
+  "Watsica",
+  "Weber",
+  "Wehner",
+  "Weimann",
+  "Weissnat",
+  "Welch",
+  "West",
+  "White",
+  "Wiegand",
+  "Wilderman",
+  "Wilkinson",
+  "Will",
+  "Williamson",
+  "Willms",
+  "Windler",
+  "Wintheiser",
+  "Wisoky",
+  "Wisozk",
+  "Witting",
+  "Wiza",
+  "Wolf",
+  "Wolff",
+  "Wuckert",
+  "Wunsch",
+  "Wyman",
+  "Yost",
+  "Yundt",
+  "Zboncak",
+  "Zemlak",
+  "Ziemann",
+  "Zieme",
+  "Zulauf"
+];
+
+},{}],261:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name}",
+  "#{first_name} #{last_name} #{suffix}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}"
+];
+
+},{}],262:[function(require,module,exports){
+module["exports"] = [
+  "Mr.",
+  "Mrs.",
+  "Ms.",
+  "Miss",
+  "Dr."
+];
+
+},{}],263:[function(require,module,exports){
+module["exports"] = [
+  "Jr.",
+  "Sr.",
+  "I",
+  "II",
+  "III",
+  "IV",
+  "V",
+  "MD",
+  "DDS",
+  "PhD",
+  "DVM"
+];
+
+},{}],264:[function(require,module,exports){
+module["exports"] = {
+  "descriptor": [
+    "Lead",
+    "Senior",
+    "Direct",
+    "Corporate",
+    "Dynamic",
+    "Future",
+    "Product",
+    "National",
+    "Regional",
+    "District",
+    "Central",
+    "Global",
+    "Customer",
+    "Investor",
+    "Dynamic",
+    "International",
+    "Legacy",
+    "Forward",
+    "Internal",
+    "Human",
+    "Chief",
+    "Principal"
+  ],
+  "level": [
+    "Solutions",
+    "Program",
+    "Brand",
+    "Security",
+    "Research",
+    "Marketing",
+    "Directives",
+    "Implementation",
+    "Integration",
+    "Functionality",
+    "Response",
+    "Paradigm",
+    "Tactics",
+    "Identity",
+    "Markets",
+    "Group",
+    "Division",
+    "Applications",
+    "Optimization",
+    "Operations",
+    "Infrastructure",
+    "Intranet",
+    "Communications",
+    "Web",
+    "Branding",
+    "Quality",
+    "Assurance",
+    "Mobility",
+    "Accounts",
+    "Data",
+    "Creative",
+    "Configuration",
+    "Accountability",
+    "Interactions",
+    "Factors",
+    "Usability",
+    "Metrics"
+  ],
+  "job": [
+    "Supervisor",
+    "Associate",
+    "Executive",
+    "Liaison",
+    "Officer",
+    "Manager",
+    "Engineer",
+    "Specialist",
+    "Director",
+    "Coordinator",
+    "Administrator",
+    "Architect",
+    "Analyst",
+    "Designer",
+    "Planner",
+    "Orchestrator",
+    "Technician",
+    "Developer",
+    "Producer",
+    "Consultant",
+    "Assistant",
+    "Facilitator",
+    "Agent",
+    "Representative",
+    "Strategist"
+  ]
+};
+
+},{}],265:[function(require,module,exports){
+module["exports"] = [
+  "###-###-####",
+  "(###) ###-####",
+  "1-###-###-####",
+  "###.###.####",
+  "###-###-####",
+  "(###) ###-####",
+  "1-###-###-####",
+  "###.###.####",
+  "###-###-#### x###",
+  "(###) ###-#### x###",
+  "1-###-###-#### x###",
+  "###.###.#### x###",
+  "###-###-#### x####",
+  "(###) ###-#### x####",
+  "1-###-###-#### x####",
+  "###.###.#### x####",
+  "###-###-#### x#####",
+  "(###) ###-#### x#####",
+  "1-###-###-#### x#####",
+  "###.###.#### x#####"
+];
+
+},{}],266:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":265,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],267:[function(require,module,exports){
+var system = {};
+module['exports'] = system;
+system.mimeTypes = require("./mimeTypes");
+},{"./mimeTypes":268}],268:[function(require,module,exports){
+/*
+
+The MIT License (MIT)
+
+Copyright (c) 2014 Jonathan Ong me@jongleberry.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Definitions from mime-db v1.21.0
+For updates check: https://github.com/jshttp/mime-db/blob/master/db.json
+
+*/
+
+module['exports'] = {
+  "application/1d-interleaved-parityfec": {
+    "source": "iana"
+  },
+  "application/3gpdash-qoe-report+xml": {
+    "source": "iana"
+  },
+  "application/3gpp-ims+xml": {
+    "source": "iana"
+  },
+  "application/a2l": {
+    "source": "iana"
+  },
+  "application/activemessage": {
+    "source": "iana"
+  },
+  "application/alto-costmap+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-costmapfilter+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-directory+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-endpointcost+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-endpointcostparams+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-endpointprop+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-endpointpropparams+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-error+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-networkmap+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/alto-networkmapfilter+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/aml": {
+    "source": "iana"
+  },
+  "application/andrew-inset": {
+    "source": "iana",
+    "extensions": ["ez"]
+  },
+  "application/applefile": {
+    "source": "iana"
+  },
+  "application/applixware": {
+    "source": "apache",
+    "extensions": ["aw"]
+  },
+  "application/atf": {
+    "source": "iana"
+  },
+  "application/atfx": {
+    "source": "iana"
+  },
+  "application/atom+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["atom"]
+  },
+  "application/atomcat+xml": {
+    "source": "iana",
+    "extensions": ["atomcat"]
+  },
+  "application/atomdeleted+xml": {
+    "source": "iana"
+  },
+  "application/atomicmail": {
+    "source": "iana"
+  },
+  "application/atomsvc+xml": {
+    "source": "iana",
+    "extensions": ["atomsvc"]
+  },
+  "application/atxml": {
+    "source": "iana"
+  },
+  "application/auth-policy+xml": {
+    "source": "iana"
+  },
+  "application/bacnet-xdd+zip": {
+    "source": "iana"
+  },
+  "application/batch-smtp": {
+    "source": "iana"
+  },
+  "application/bdoc": {
+    "compressible": false,
+    "extensions": ["bdoc"]
+  },
+  "application/beep+xml": {
+    "source": "iana"
+  },
+  "application/calendar+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/calendar+xml": {
+    "source": "iana"
+  },
+  "application/call-completion": {
+    "source": "iana"
+  },
+  "application/cals-1840": {
+    "source": "iana"
+  },
+  "application/cbor": {
+    "source": "iana"
+  },
+  "application/ccmp+xml": {
+    "source": "iana"
+  },
+  "application/ccxml+xml": {
+    "source": "iana",
+    "extensions": ["ccxml"]
+  },
+  "application/cdfx+xml": {
+    "source": "iana"
+  },
+  "application/cdmi-capability": {
+    "source": "iana",
+    "extensions": ["cdmia"]
+  },
+  "application/cdmi-container": {
+    "source": "iana",
+    "extensions": ["cdmic"]
+  },
+  "application/cdmi-domain": {
+    "source": "iana",
+    "extensions": ["cdmid"]
+  },
+  "application/cdmi-object": {
+    "source": "iana",
+    "extensions": ["cdmio"]
+  },
+  "application/cdmi-queue": {
+    "source": "iana",
+    "extensions": ["cdmiq"]
+  },
+  "application/cdni": {
+    "source": "iana"
+  },
+  "application/cea": {
+    "source": "iana"
+  },
+  "application/cea-2018+xml": {
+    "source": "iana"
+  },
+  "application/cellml+xml": {
+    "source": "iana"
+  },
+  "application/cfw": {
+    "source": "iana"
+  },
+  "application/cms": {
+    "source": "iana"
+  },
+  "application/cnrp+xml": {
+    "source": "iana"
+  },
+  "application/coap-group+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/commonground": {
+    "source": "iana"
+  },
+  "application/conference-info+xml": {
+    "source": "iana"
+  },
+  "application/cpl+xml": {
+    "source": "iana"
+  },
+  "application/csrattrs": {
+    "source": "iana"
+  },
+  "application/csta+xml": {
+    "source": "iana"
+  },
+  "application/cstadata+xml": {
+    "source": "iana"
+  },
+  "application/csvm+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/cu-seeme": {
+    "source": "apache",
+    "extensions": ["cu"]
+  },
+  "application/cybercash": {
+    "source": "iana"
+  },
+  "application/dart": {
+    "compressible": true
+  },
+  "application/dash+xml": {
+    "source": "iana",
+    "extensions": ["mdp"]
+  },
+  "application/dashdelta": {
+    "source": "iana"
+  },
+  "application/davmount+xml": {
+    "source": "iana",
+    "extensions": ["davmount"]
+  },
+  "application/dca-rft": {
+    "source": "iana"
+  },
+  "application/dcd": {
+    "source": "iana"
+  },
+  "application/dec-dx": {
+    "source": "iana"
+  },
+  "application/dialog-info+xml": {
+    "source": "iana"
+  },
+  "application/dicom": {
+    "source": "iana"
+  },
+  "application/dii": {
+    "source": "iana"
+  },
+  "application/dit": {
+    "source": "iana"
+  },
+  "application/dns": {
+    "source": "iana"
+  },
+  "application/docbook+xml": {
+    "source": "apache",
+    "extensions": ["dbk"]
+  },
+  "application/dskpp+xml": {
+    "source": "iana"
+  },
+  "application/dssc+der": {
+    "source": "iana",
+    "extensions": ["dssc"]
+  },
+  "application/dssc+xml": {
+    "source": "iana",
+    "extensions": ["xdssc"]
+  },
+  "application/dvcs": {
+    "source": "iana"
+  },
+  "application/ecmascript": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["ecma"]
+  },
+  "application/edi-consent": {
+    "source": "iana"
+  },
+  "application/edi-x12": {
+    "source": "iana",
+    "compressible": false
+  },
+  "application/edifact": {
+    "source": "iana",
+    "compressible": false
+  },
+  "application/emergencycalldata.comment+xml": {
+    "source": "iana"
+  },
+  "application/emergencycalldata.deviceinfo+xml": {
+    "source": "iana"
+  },
+  "application/emergencycalldata.providerinfo+xml": {
+    "source": "iana"
+  },
+  "application/emergencycalldata.serviceinfo+xml": {
+    "source": "iana"
+  },
+  "application/emergencycalldata.subscriberinfo+xml": {
+    "source": "iana"
+  },
+  "application/emma+xml": {
+    "source": "iana",
+    "extensions": ["emma"]
+  },
+  "application/emotionml+xml": {
+    "source": "iana"
+  },
+  "application/encaprtp": {
+    "source": "iana"
+  },
+  "application/epp+xml": {
+    "source": "iana"
+  },
+  "application/epub+zip": {
+    "source": "iana",
+    "extensions": ["epub"]
+  },
+  "application/eshop": {
+    "source": "iana"
+  },
+  "application/exi": {
+    "source": "iana",
+    "extensions": ["exi"]
+  },
+  "application/fastinfoset": {
+    "source": "iana"
+  },
+  "application/fastsoap": {
+    "source": "iana"
+  },
+  "application/fdt+xml": {
+    "source": "iana"
+  },
+  "application/fits": {
+    "source": "iana"
+  },
+  "application/font-sfnt": {
+    "source": "iana"
+  },
+  "application/font-tdpfr": {
+    "source": "iana",
+    "extensions": ["pfr"]
+  },
+  "application/font-woff": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["woff"]
+  },
+  "application/font-woff2": {
+    "compressible": false,
+    "extensions": ["woff2"]
+  },
+  "application/framework-attributes+xml": {
+    "source": "iana"
+  },
+  "application/gml+xml": {
+    "source": "apache",
+    "extensions": ["gml"]
+  },
+  "application/gpx+xml": {
+    "source": "apache",
+    "extensions": ["gpx"]
+  },
+  "application/gxf": {
+    "source": "apache",
+    "extensions": ["gxf"]
+  },
+  "application/gzip": {
+    "source": "iana",
+    "compressible": false
+  },
+  "application/h224": {
+    "source": "iana"
+  },
+  "application/held+xml": {
+    "source": "iana"
+  },
+  "application/http": {
+    "source": "iana"
+  },
+  "application/hyperstudio": {
+    "source": "iana",
+    "extensions": ["stk"]
+  },
+  "application/ibe-key-request+xml": {
+    "source": "iana"
+  },
+  "application/ibe-pkg-reply+xml": {
+    "source": "iana"
+  },
+  "application/ibe-pp-data": {
+    "source": "iana"
+  },
+  "application/iges": {
+    "source": "iana"
+  },
+  "application/im-iscomposing+xml": {
+    "source": "iana"
+  },
+  "application/index": {
+    "source": "iana"
+  },
+  "application/index.cmd": {
+    "source": "iana"
+  },
+  "application/index.obj": {
+    "source": "iana"
+  },
+  "application/index.response": {
+    "source": "iana"
+  },
+  "application/index.vnd": {
+    "source": "iana"
+  },
+  "application/inkml+xml": {
+    "source": "iana",
+    "extensions": ["ink","inkml"]
+  },
+  "application/iotp": {
+    "source": "iana"
+  },
+  "application/ipfix": {
+    "source": "iana",
+    "extensions": ["ipfix"]
+  },
+  "application/ipp": {
+    "source": "iana"
+  },
+  "application/isup": {
+    "source": "iana"
+  },
+  "application/its+xml": {
+    "source": "iana"
+  },
+  "application/java-archive": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["jar","war","ear"]
+  },
+  "application/java-serialized-object": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["ser"]
+  },
+  "application/java-vm": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["class"]
+  },
+  "application/javascript": {
+    "source": "iana",
+    "charset": "UTF-8",
+    "compressible": true,
+    "extensions": ["js"]
+  },
+  "application/jose": {
+    "source": "iana"
+  },
+  "application/jose+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/jrd+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/json": {
+    "source": "iana",
+    "charset": "UTF-8",
+    "compressible": true,
+    "extensions": ["json","map"]
+  },
+  "application/json-patch+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/json-seq": {
+    "source": "iana"
+  },
+  "application/json5": {
+    "extensions": ["json5"]
+  },
+  "application/jsonml+json": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["jsonml"]
+  },
+  "application/jwk+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/jwk-set+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/jwt": {
+    "source": "iana"
+  },
+  "application/kpml-request+xml": {
+    "source": "iana"
+  },
+  "application/kpml-response+xml": {
+    "source": "iana"
+  },
+  "application/ld+json": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["jsonld"]
+  },
+  "application/link-format": {
+    "source": "iana"
+  },
+  "application/load-control+xml": {
+    "source": "iana"
+  },
+  "application/lost+xml": {
+    "source": "iana",
+    "extensions": ["lostxml"]
+  },
+  "application/lostsync+xml": {
+    "source": "iana"
+  },
+  "application/lxf": {
+    "source": "iana"
+  },
+  "application/mac-binhex40": {
+    "source": "iana",
+    "extensions": ["hqx"]
+  },
+  "application/mac-compactpro": {
+    "source": "apache",
+    "extensions": ["cpt"]
+  },
+  "application/macwriteii": {
+    "source": "iana"
+  },
+  "application/mads+xml": {
+    "source": "iana",
+    "extensions": ["mads"]
+  },
+  "application/manifest+json": {
+    "charset": "UTF-8",
+    "compressible": true,
+    "extensions": ["webmanifest"]
+  },
+  "application/marc": {
+    "source": "iana",
+    "extensions": ["mrc"]
+  },
+  "application/marcxml+xml": {
+    "source": "iana",
+    "extensions": ["mrcx"]
+  },
+  "application/mathematica": {
+    "source": "iana",
+    "extensions": ["ma","nb","mb"]
+  },
+  "application/mathml+xml": {
+    "source": "iana",
+    "extensions": ["mathml"]
+  },
+  "application/mathml-content+xml": {
+    "source": "iana"
+  },
+  "application/mathml-presentation+xml": {
+    "source": "iana"
+  },
+  "application/mbms-associated-procedure-description+xml": {
+    "source": "iana"
+  },
+  "application/mbms-deregister+xml": {
+    "source": "iana"
+  },
+  "application/mbms-envelope+xml": {
+    "source": "iana"
+  },
+  "application/mbms-msk+xml": {
+    "source": "iana"
+  },
+  "application/mbms-msk-response+xml": {
+    "source": "iana"
+  },
+  "application/mbms-protection-description+xml": {
+    "source": "iana"
+  },
+  "application/mbms-reception-report+xml": {
+    "source": "iana"
+  },
+  "application/mbms-register+xml": {
+    "source": "iana"
+  },
+  "application/mbms-register-response+xml": {
+    "source": "iana"
+  },
+  "application/mbms-schedule+xml": {
+    "source": "iana"
+  },
+  "application/mbms-user-service-description+xml": {
+    "source": "iana"
+  },
+  "application/mbox": {
+    "source": "iana",
+    "extensions": ["mbox"]
+  },
+  "application/media-policy-dataset+xml": {
+    "source": "iana"
+  },
+  "application/media_control+xml": {
+    "source": "iana"
+  },
+  "application/mediaservercontrol+xml": {
+    "source": "iana",
+    "extensions": ["mscml"]
+  },
+  "application/merge-patch+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/metalink+xml": {
+    "source": "apache",
+    "extensions": ["metalink"]
+  },
+  "application/metalink4+xml": {
+    "source": "iana",
+    "extensions": ["meta4"]
+  },
+  "application/mets+xml": {
+    "source": "iana",
+    "extensions": ["mets"]
+  },
+  "application/mf4": {
+    "source": "iana"
+  },
+  "application/mikey": {
+    "source": "iana"
+  },
+  "application/mods+xml": {
+    "source": "iana",
+    "extensions": ["mods"]
+  },
+  "application/moss-keys": {
+    "source": "iana"
+  },
+  "application/moss-signature": {
+    "source": "iana"
+  },
+  "application/mosskey-data": {
+    "source": "iana"
+  },
+  "application/mosskey-request": {
+    "source": "iana"
+  },
+  "application/mp21": {
+    "source": "iana",
+    "extensions": ["m21","mp21"]
+  },
+  "application/mp4": {
+    "source": "iana",
+    "extensions": ["mp4s","m4p"]
+  },
+  "application/mpeg4-generic": {
+    "source": "iana"
+  },
+  "application/mpeg4-iod": {
+    "source": "iana"
+  },
+  "application/mpeg4-iod-xmt": {
+    "source": "iana"
+  },
+  "application/mrb-consumer+xml": {
+    "source": "iana"
+  },
+  "application/mrb-publish+xml": {
+    "source": "iana"
+  },
+  "application/msc-ivr+xml": {
+    "source": "iana"
+  },
+  "application/msc-mixer+xml": {
+    "source": "iana"
+  },
+  "application/msword": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["doc","dot"]
+  },
+  "application/mxf": {
+    "source": "iana",
+    "extensions": ["mxf"]
+  },
+  "application/nasdata": {
+    "source": "iana"
+  },
+  "application/news-checkgroups": {
+    "source": "iana"
+  },
+  "application/news-groupinfo": {
+    "source": "iana"
+  },
+  "application/news-transmission": {
+    "source": "iana"
+  },
+  "application/nlsml+xml": {
+    "source": "iana"
+  },
+  "application/nss": {
+    "source": "iana"
+  },
+  "application/ocsp-request": {
+    "source": "iana"
+  },
+  "application/ocsp-response": {
+    "source": "iana"
+  },
+  "application/octet-stream": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]
+  },
+  "application/oda": {
+    "source": "iana",
+    "extensions": ["oda"]
+  },
+  "application/odx": {
+    "source": "iana"
+  },
+  "application/oebps-package+xml": {
+    "source": "iana",
+    "extensions": ["opf"]
+  },
+  "application/ogg": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["ogx"]
+  },
+  "application/omdoc+xml": {
+    "source": "apache",
+    "extensions": ["omdoc"]
+  },
+  "application/onenote": {
+    "source": "apache",
+    "extensions": ["onetoc","onetoc2","onetmp","onepkg"]
+  },
+  "application/oxps": {
+    "source": "iana",
+    "extensions": ["oxps"]
+  },
+  "application/p2p-overlay+xml": {
+    "source": "iana"
+  },
+  "application/parityfec": {
+    "source": "iana"
+  },
+  "application/patch-ops-error+xml": {
+    "source": "iana",
+    "extensions": ["xer"]
+  },
+  "application/pdf": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["pdf"]
+  },
+  "application/pdx": {
+    "source": "iana"
+  },
+  "application/pgp-encrypted": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["pgp"]
+  },
+  "application/pgp-keys": {
+    "source": "iana"
+  },
+  "application/pgp-signature": {
+    "source": "iana",
+    "extensions": ["asc","sig"]
+  },
+  "application/pics-rules": {
+    "source": "apache",
+    "extensions": ["prf"]
+  },
+  "application/pidf+xml": {
+    "source": "iana"
+  },
+  "application/pidf-diff+xml": {
+    "source": "iana"
+  },
+  "application/pkcs10": {
+    "source": "iana",
+    "extensions": ["p10"]
+  },
+  "application/pkcs12": {
+    "source": "iana"
+  },
+  "application/pkcs7-mime": {
+    "source": "iana",
+    "extensions": ["p7m","p7c"]
+  },
+  "application/pkcs7-signature": {
+    "source": "iana",
+    "extensions": ["p7s"]
+  },
+  "application/pkcs8": {
+    "source": "iana",
+    "extensions": ["p8"]
+  },
+  "application/pkix-attr-cert": {
+    "source": "iana",
+    "extensions": ["ac"]
+  },
+  "application/pkix-cert": {
+    "source": "iana",
+    "extensions": ["cer"]
+  },
+  "application/pkix-crl": {
+    "source": "iana",
+    "extensions": ["crl"]
+  },
+  "application/pkix-pkipath": {
+    "source": "iana",
+    "extensions": ["pkipath"]
+  },
+  "application/pkixcmp": {
+    "source": "iana",
+    "extensions": ["pki"]
+  },
+  "application/pls+xml": {
+    "source": "iana",
+    "extensions": ["pls"]
+  },
+  "application/poc-settings+xml": {
+    "source": "iana"
+  },
+  "application/postscript": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["ai","eps","ps"]
+  },
+  "application/provenance+xml": {
+    "source": "iana"
+  },
+  "application/prs.alvestrand.titrax-sheet": {
+    "source": "iana"
+  },
+  "application/prs.cww": {
+    "source": "iana",
+    "extensions": ["cww"]
+  },
+  "application/prs.hpub+zip": {
+    "source": "iana"
+  },
+  "application/prs.nprend": {
+    "source": "iana"
+  },
+  "application/prs.plucker": {
+    "source": "iana"
+  },
+  "application/prs.rdf-xml-crypt": {
+    "source": "iana"
+  },
+  "application/prs.xsf+xml": {
+    "source": "iana"
+  },
+  "application/pskc+xml": {
+    "source": "iana",
+    "extensions": ["pskcxml"]
+  },
+  "application/qsig": {
+    "source": "iana"
+  },
+  "application/raptorfec": {
+    "source": "iana"
+  },
+  "application/rdap+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/rdf+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["rdf"]
+  },
+  "application/reginfo+xml": {
+    "source": "iana",
+    "extensions": ["rif"]
+  },
+  "application/relax-ng-compact-syntax": {
+    "source": "iana",
+    "extensions": ["rnc"]
+  },
+  "application/remote-printing": {
+    "source": "iana"
+  },
+  "application/reputon+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/resource-lists+xml": {
+    "source": "iana",
+    "extensions": ["rl"]
+  },
+  "application/resource-lists-diff+xml": {
+    "source": "iana",
+    "extensions": ["rld"]
+  },
+  "application/rfc+xml": {
+    "source": "iana"
+  },
+  "application/riscos": {
+    "source": "iana"
+  },
+  "application/rlmi+xml": {
+    "source": "iana"
+  },
+  "application/rls-services+xml": {
+    "source": "iana",
+    "extensions": ["rs"]
+  },
+  "application/rpki-ghostbusters": {
+    "source": "iana",
+    "extensions": ["gbr"]
+  },
+  "application/rpki-manifest": {
+    "source": "iana",
+    "extensions": ["mft"]
+  },
+  "application/rpki-roa": {
+    "source": "iana",
+    "extensions": ["roa"]
+  },
+  "application/rpki-updown": {
+    "source": "iana"
+  },
+  "application/rsd+xml": {
+    "source": "apache",
+    "extensions": ["rsd"]
+  },
+  "application/rss+xml": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["rss"]
+  },
+  "application/rtf": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["rtf"]
+  },
+  "application/rtploopback": {
+    "source": "iana"
+  },
+  "application/rtx": {
+    "source": "iana"
+  },
+  "application/samlassertion+xml": {
+    "source": "iana"
+  },
+  "application/samlmetadata+xml": {
+    "source": "iana"
+  },
+  "application/sbml+xml": {
+    "source": "iana",
+    "extensions": ["sbml"]
+  },
+  "application/scaip+xml": {
+    "source": "iana"
+  },
+  "application/scim+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/scvp-cv-request": {
+    "source": "iana",
+    "extensions": ["scq"]
+  },
+  "application/scvp-cv-response": {
+    "source": "iana",
+    "extensions": ["scs"]
+  },
+  "application/scvp-vp-request": {
+    "source": "iana",
+    "extensions": ["spq"]
+  },
+  "application/scvp-vp-response": {
+    "source": "iana",
+    "extensions": ["spp"]
+  },
+  "application/sdp": {
+    "source": "iana",
+    "extensions": ["sdp"]
+  },
+  "application/sep+xml": {
+    "source": "iana"
+  },
+  "application/sep-exi": {
+    "source": "iana"
+  },
+  "application/session-info": {
+    "source": "iana"
+  },
+  "application/set-payment": {
+    "source": "iana"
+  },
+  "application/set-payment-initiation": {
+    "source": "iana",
+    "extensions": ["setpay"]
+  },
+  "application/set-registration": {
+    "source": "iana"
+  },
+  "application/set-registration-initiation": {
+    "source": "iana",
+    "extensions": ["setreg"]
+  },
+  "application/sgml": {
+    "source": "iana"
+  },
+  "application/sgml-open-catalog": {
+    "source": "iana"
+  },
+  "application/shf+xml": {
+    "source": "iana",
+    "extensions": ["shf"]
+  },
+  "application/sieve": {
+    "source": "iana"
+  },
+  "application/simple-filter+xml": {
+    "source": "iana"
+  },
+  "application/simple-message-summary": {
+    "source": "iana"
+  },
+  "application/simplesymbolcontainer": {
+    "source": "iana"
+  },
+  "application/slate": {
+    "source": "iana"
+  },
+  "application/smil": {
+    "source": "iana"
+  },
+  "application/smil+xml": {
+    "source": "iana",
+    "extensions": ["smi","smil"]
+  },
+  "application/smpte336m": {
+    "source": "iana"
+  },
+  "application/soap+fastinfoset": {
+    "source": "iana"
+  },
+  "application/soap+xml": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/sparql-query": {
+    "source": "iana",
+    "extensions": ["rq"]
+  },
+  "application/sparql-results+xml": {
+    "source": "iana",
+    "extensions": ["srx"]
+  },
+  "application/spirits-event+xml": {
+    "source": "iana"
+  },
+  "application/sql": {
+    "source": "iana"
+  },
+  "application/srgs": {
+    "source": "iana",
+    "extensions": ["gram"]
+  },
+  "application/srgs+xml": {
+    "source": "iana",
+    "extensions": ["grxml"]
+  },
+  "application/sru+xml": {
+    "source": "iana",
+    "extensions": ["sru"]
+  },
+  "application/ssdl+xml": {
+    "source": "apache",
+    "extensions": ["ssdl"]
+  },
+  "application/ssml+xml": {
+    "source": "iana",
+    "extensions": ["ssml"]
+  },
+  "application/tamp-apex-update": {
+    "source": "iana"
+  },
+  "application/tamp-apex-update-confirm": {
+    "source": "iana"
+  },
+  "application/tamp-community-update": {
+    "source": "iana"
+  },
+  "application/tamp-community-update-confirm": {
+    "source": "iana"
+  },
+  "application/tamp-error": {
+    "source": "iana"
+  },
+  "application/tamp-sequence-adjust": {
+    "source": "iana"
+  },
+  "application/tamp-sequence-adjust-confirm": {
+    "source": "iana"
+  },
+  "application/tamp-status-query": {
+    "source": "iana"
+  },
+  "application/tamp-status-response": {
+    "source": "iana"
+  },
+  "application/tamp-update": {
+    "source": "iana"
+  },
+  "application/tamp-update-confirm": {
+    "source": "iana"
+  },
+  "application/tar": {
+    "compressible": true
+  },
+  "application/tei+xml": {
+    "source": "iana",
+    "extensions": ["tei","teicorpus"]
+  },
+  "application/thraud+xml": {
+    "source": "iana",
+    "extensions": ["tfi"]
+  },
+  "application/timestamp-query": {
+    "source": "iana"
+  },
+  "application/timestamp-reply": {
+    "source": "iana"
+  },
+  "application/timestamped-data": {
+    "source": "iana",
+    "extensions": ["tsd"]
+  },
+  "application/ttml+xml": {
+    "source": "iana"
+  },
+  "application/tve-trigger": {
+    "source": "iana"
+  },
+  "application/ulpfec": {
+    "source": "iana"
+  },
+  "application/urc-grpsheet+xml": {
+    "source": "iana"
+  },
+  "application/urc-ressheet+xml": {
+    "source": "iana"
+  },
+  "application/urc-targetdesc+xml": {
+    "source": "iana"
+  },
+  "application/urc-uisocketdesc+xml": {
+    "source": "iana"
+  },
+  "application/vcard+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vcard+xml": {
+    "source": "iana"
+  },
+  "application/vemmi": {
+    "source": "iana"
+  },
+  "application/vividence.scriptfile": {
+    "source": "apache"
+  },
+  "application/vnd.3gpp-prose+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp-prose-pc3ch+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.access-transfer-events+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.bsf+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.mid-call+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.pic-bw-large": {
+    "source": "iana",
+    "extensions": ["plb"]
+  },
+  "application/vnd.3gpp.pic-bw-small": {
+    "source": "iana",
+    "extensions": ["psb"]
+  },
+  "application/vnd.3gpp.pic-bw-var": {
+    "source": "iana",
+    "extensions": ["pvb"]
+  },
+  "application/vnd.3gpp.sms": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.srvcc-ext+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.srvcc-info+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.state-and-event-info+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp.ussd+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp2.bcmcsinfo+xml": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp2.sms": {
+    "source": "iana"
+  },
+  "application/vnd.3gpp2.tcap": {
+    "source": "iana",
+    "extensions": ["tcap"]
+  },
+  "application/vnd.3m.post-it-notes": {
+    "source": "iana",
+    "extensions": ["pwn"]
+  },
+  "application/vnd.accpac.simply.aso": {
+    "source": "iana",
+    "extensions": ["aso"]
+  },
+  "application/vnd.accpac.simply.imp": {
+    "source": "iana",
+    "extensions": ["imp"]
+  },
+  "application/vnd.acucobol": {
+    "source": "iana",
+    "extensions": ["acu"]
+  },
+  "application/vnd.acucorp": {
+    "source": "iana",
+    "extensions": ["atc","acutc"]
+  },
+  "application/vnd.adobe.air-application-installer-package+zip": {
+    "source": "apache",
+    "extensions": ["air"]
+  },
+  "application/vnd.adobe.flash.movie": {
+    "source": "iana"
+  },
+  "application/vnd.adobe.formscentral.fcdt": {
+    "source": "iana",
+    "extensions": ["fcdt"]
+  },
+  "application/vnd.adobe.fxp": {
+    "source": "iana",
+    "extensions": ["fxp","fxpl"]
+  },
+  "application/vnd.adobe.partial-upload": {
+    "source": "iana"
+  },
+  "application/vnd.adobe.xdp+xml": {
+    "source": "iana",
+    "extensions": ["xdp"]
+  },
+  "application/vnd.adobe.xfdf": {
+    "source": "iana",
+    "extensions": ["xfdf"]
+  },
+  "application/vnd.aether.imp": {
+    "source": "iana"
+  },
+  "application/vnd.ah-barcode": {
+    "source": "iana"
+  },
+  "application/vnd.ahead.space": {
+    "source": "iana",
+    "extensions": ["ahead"]
+  },
+  "application/vnd.airzip.filesecure.azf": {
+    "source": "iana",
+    "extensions": ["azf"]
+  },
+  "application/vnd.airzip.filesecure.azs": {
+    "source": "iana",
+    "extensions": ["azs"]
+  },
+  "application/vnd.amazon.ebook": {
+    "source": "apache",
+    "extensions": ["azw"]
+  },
+  "application/vnd.americandynamics.acc": {
+    "source": "iana",
+    "extensions": ["acc"]
+  },
+  "application/vnd.amiga.ami": {
+    "source": "iana",
+    "extensions": ["ami"]
+  },
+  "application/vnd.amundsen.maze+xml": {
+    "source": "iana"
+  },
+  "application/vnd.android.package-archive": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["apk"]
+  },
+  "application/vnd.anki": {
+    "source": "iana"
+  },
+  "application/vnd.anser-web-certificate-issue-initiation": {
+    "source": "iana",
+    "extensions": ["cii"]
+  },
+  "application/vnd.anser-web-funds-transfer-initiation": {
+    "source": "apache",
+    "extensions": ["fti"]
+  },
+  "application/vnd.antix.game-component": {
+    "source": "iana",
+    "extensions": ["atx"]
+  },
+  "application/vnd.apache.thrift.binary": {
+    "source": "iana"
+  },
+  "application/vnd.apache.thrift.compact": {
+    "source": "iana"
+  },
+  "application/vnd.apache.thrift.json": {
+    "source": "iana"
+  },
+  "application/vnd.api+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.apple.installer+xml": {
+    "source": "iana",
+    "extensions": ["mpkg"]
+  },
+  "application/vnd.apple.mpegurl": {
+    "source": "iana",
+    "extensions": ["m3u8"]
+  },
+  "application/vnd.apple.pkpass": {
+    "compressible": false,
+    "extensions": ["pkpass"]
+  },
+  "application/vnd.arastra.swi": {
+    "source": "iana"
+  },
+  "application/vnd.aristanetworks.swi": {
+    "source": "iana",
+    "extensions": ["swi"]
+  },
+  "application/vnd.artsquare": {
+    "source": "iana"
+  },
+  "application/vnd.astraea-software.iota": {
+    "source": "iana",
+    "extensions": ["iota"]
+  },
+  "application/vnd.audiograph": {
+    "source": "iana",
+    "extensions": ["aep"]
+  },
+  "application/vnd.autopackage": {
+    "source": "iana"
+  },
+  "application/vnd.avistar+xml": {
+    "source": "iana"
+  },
+  "application/vnd.balsamiq.bmml+xml": {
+    "source": "iana"
+  },
+  "application/vnd.balsamiq.bmpr": {
+    "source": "iana"
+  },
+  "application/vnd.bekitzur-stech+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.biopax.rdf+xml": {
+    "source": "iana"
+  },
+  "application/vnd.blueice.multipass": {
+    "source": "iana",
+    "extensions": ["mpm"]
+  },
+  "application/vnd.bluetooth.ep.oob": {
+    "source": "iana"
+  },
+  "application/vnd.bluetooth.le.oob": {
+    "source": "iana"
+  },
+  "application/vnd.bmi": {
+    "source": "iana",
+    "extensions": ["bmi"]
+  },
+  "application/vnd.businessobjects": {
+    "source": "iana",
+    "extensions": ["rep"]
+  },
+  "application/vnd.cab-jscript": {
+    "source": "iana"
+  },
+  "application/vnd.canon-cpdl": {
+    "source": "iana"
+  },
+  "application/vnd.canon-lips": {
+    "source": "iana"
+  },
+  "application/vnd.cendio.thinlinc.clientconf": {
+    "source": "iana"
+  },
+  "application/vnd.century-systems.tcp_stream": {
+    "source": "iana"
+  },
+  "application/vnd.chemdraw+xml": {
+    "source": "iana",
+    "extensions": ["cdxml"]
+  },
+  "application/vnd.chipnuts.karaoke-mmd": {
+    "source": "iana",
+    "extensions": ["mmd"]
+  },
+  "application/vnd.cinderella": {
+    "source": "iana",
+    "extensions": ["cdy"]
+  },
+  "application/vnd.cirpack.isdn-ext": {
+    "source": "iana"
+  },
+  "application/vnd.citationstyles.style+xml": {
+    "source": "iana"
+  },
+  "application/vnd.claymore": {
+    "source": "iana",
+    "extensions": ["cla"]
+  },
+  "application/vnd.cloanto.rp9": {
+    "source": "iana",
+    "extensions": ["rp9"]
+  },
+  "application/vnd.clonk.c4group": {
+    "source": "iana",
+    "extensions": ["c4g","c4d","c4f","c4p","c4u"]
+  },
+  "application/vnd.cluetrust.cartomobile-config": {
+    "source": "iana",
+    "extensions": ["c11amc"]
+  },
+  "application/vnd.cluetrust.cartomobile-config-pkg": {
+    "source": "iana",
+    "extensions": ["c11amz"]
+  },
+  "application/vnd.coffeescript": {
+    "source": "iana"
+  },
+  "application/vnd.collection+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.collection.doc+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.collection.next+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.commerce-battelle": {
+    "source": "iana"
+  },
+  "application/vnd.commonspace": {
+    "source": "iana",
+    "extensions": ["csp"]
+  },
+  "application/vnd.contact.cmsg": {
+    "source": "iana",
+    "extensions": ["cdbcmsg"]
+  },
+  "application/vnd.cosmocaller": {
+    "source": "iana",
+    "extensions": ["cmc"]
+  },
+  "application/vnd.crick.clicker": {
+    "source": "iana",
+    "extensions": ["clkx"]
+  },
+  "application/vnd.crick.clicker.keyboard": {
+    "source": "iana",
+    "extensions": ["clkk"]
+  },
+  "application/vnd.crick.clicker.palette": {
+    "source": "iana",
+    "extensions": ["clkp"]
+  },
+  "application/vnd.crick.clicker.template": {
+    "source": "iana",
+    "extensions": ["clkt"]
+  },
+  "application/vnd.crick.clicker.wordbank": {
+    "source": "iana",
+    "extensions": ["clkw"]
+  },
+  "application/vnd.criticaltools.wbs+xml": {
+    "source": "iana",
+    "extensions": ["wbs"]
+  },
+  "application/vnd.ctc-posml": {
+    "source": "iana",
+    "extensions": ["pml"]
+  },
+  "application/vnd.ctct.ws+xml": {
+    "source": "iana"
+  },
+  "application/vnd.cups-pdf": {
+    "source": "iana"
+  },
+  "application/vnd.cups-postscript": {
+    "source": "iana"
+  },
+  "application/vnd.cups-ppd": {
+    "source": "iana",
+    "extensions": ["ppd"]
+  },
+  "application/vnd.cups-raster": {
+    "source": "iana"
+  },
+  "application/vnd.cups-raw": {
+    "source": "iana"
+  },
+  "application/vnd.curl": {
+    "source": "iana"
+  },
+  "application/vnd.curl.car": {
+    "source": "apache",
+    "extensions": ["car"]
+  },
+  "application/vnd.curl.pcurl": {
+    "source": "apache",
+    "extensions": ["pcurl"]
+  },
+  "application/vnd.cyan.dean.root+xml": {
+    "source": "iana"
+  },
+  "application/vnd.cybank": {
+    "source": "iana"
+  },
+  "application/vnd.dart": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["dart"]
+  },
+  "application/vnd.data-vision.rdz": {
+    "source": "iana",
+    "extensions": ["rdz"]
+  },
+  "application/vnd.debian.binary-package": {
+    "source": "iana"
+  },
+  "application/vnd.dece.data": {
+    "source": "iana",
+    "extensions": ["uvf","uvvf","uvd","uvvd"]
+  },
+  "application/vnd.dece.ttml+xml": {
+    "source": "iana",
+    "extensions": ["uvt","uvvt"]
+  },
+  "application/vnd.dece.unspecified": {
+    "source": "iana",
+    "extensions": ["uvx","uvvx"]
+  },
+  "application/vnd.dece.zip": {
+    "source": "iana",
+    "extensions": ["uvz","uvvz"]
+  },
+  "application/vnd.denovo.fcselayout-link": {
+    "source": "iana",
+    "extensions": ["fe_launch"]
+  },
+  "application/vnd.desmume-movie": {
+    "source": "iana"
+  },
+  "application/vnd.dir-bi.plate-dl-nosuffix": {
+    "source": "iana"
+  },
+  "application/vnd.dm.delegation+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dna": {
+    "source": "iana",
+    "extensions": ["dna"]
+  },
+  "application/vnd.document+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.dolby.mlp": {
+    "source": "apache",
+    "extensions": ["mlp"]
+  },
+  "application/vnd.dolby.mobile.1": {
+    "source": "iana"
+  },
+  "application/vnd.dolby.mobile.2": {
+    "source": "iana"
+  },
+  "application/vnd.doremir.scorecloud-binary-document": {
+    "source": "iana"
+  },
+  "application/vnd.dpgraph": {
+    "source": "iana",
+    "extensions": ["dpg"]
+  },
+  "application/vnd.dreamfactory": {
+    "source": "iana",
+    "extensions": ["dfac"]
+  },
+  "application/vnd.drive+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.ds-keypoint": {
+    "source": "apache",
+    "extensions": ["kpxx"]
+  },
+  "application/vnd.dtg.local": {
+    "source": "iana"
+  },
+  "application/vnd.dtg.local.flash": {
+    "source": "iana"
+  },
+  "application/vnd.dtg.local.html": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.ait": {
+    "source": "iana",
+    "extensions": ["ait"]
+  },
+  "application/vnd.dvb.dvbj": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.esgcontainer": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.ipdcdftnotifaccess": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.ipdcesgaccess": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.ipdcesgaccess2": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.ipdcesgpdd": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.ipdcroaming": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.iptv.alfec-base": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.iptv.alfec-enhancement": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-aggregate-root+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-container+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-generic+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-ia-msglist+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-ia-registration-request+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-ia-registration-response+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.notif-init+xml": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.pfr": {
+    "source": "iana"
+  },
+  "application/vnd.dvb.service": {
+    "source": "iana",
+    "extensions": ["svc"]
+  },
+  "application/vnd.dxr": {
+    "source": "iana"
+  },
+  "application/vnd.dynageo": {
+    "source": "iana",
+    "extensions": ["geo"]
+  },
+  "application/vnd.dzr": {
+    "source": "iana"
+  },
+  "application/vnd.easykaraoke.cdgdownload": {
+    "source": "iana"
+  },
+  "application/vnd.ecdis-update": {
+    "source": "iana"
+  },
+  "application/vnd.ecowin.chart": {
+    "source": "iana",
+    "extensions": ["mag"]
+  },
+  "application/vnd.ecowin.filerequest": {
+    "source": "iana"
+  },
+  "application/vnd.ecowin.fileupdate": {
+    "source": "iana"
+  },
+  "application/vnd.ecowin.series": {
+    "source": "iana"
+  },
+  "application/vnd.ecowin.seriesrequest": {
+    "source": "iana"
+  },
+  "application/vnd.ecowin.seriesupdate": {
+    "source": "iana"
+  },
+  "application/vnd.emclient.accessrequest+xml": {
+    "source": "iana"
+  },
+  "application/vnd.enliven": {
+    "source": "iana",
+    "extensions": ["nml"]
+  },
+  "application/vnd.enphase.envoy": {
+    "source": "iana"
+  },
+  "application/vnd.eprints.data+xml": {
+    "source": "iana"
+  },
+  "application/vnd.epson.esf": {
+    "source": "iana",
+    "extensions": ["esf"]
+  },
+  "application/vnd.epson.msf": {
+    "source": "iana",
+    "extensions": ["msf"]
+  },
+  "application/vnd.epson.quickanime": {
+    "source": "iana",
+    "extensions": ["qam"]
+  },
+  "application/vnd.epson.salt": {
+    "source": "iana",
+    "extensions": ["slt"]
+  },
+  "application/vnd.epson.ssf": {
+    "source": "iana",
+    "extensions": ["ssf"]
+  },
+  "application/vnd.ericsson.quickcall": {
+    "source": "iana"
+  },
+  "application/vnd.eszigno3+xml": {
+    "source": "iana",
+    "extensions": ["es3","et3"]
+  },
+  "application/vnd.etsi.aoc+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.asic-e+zip": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.asic-s+zip": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.cug+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvcommand+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvdiscovery+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvprofile+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvsad-bc+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvsad-cod+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvsad-npvr+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvservice+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvsync+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.iptvueprofile+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.mcid+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.mheg5": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.overload-control-policy-dataset+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.pstn+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.sci+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.simservs+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.timestamp-token": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.tsl+xml": {
+    "source": "iana"
+  },
+  "application/vnd.etsi.tsl.der": {
+    "source": "iana"
+  },
+  "application/vnd.eudora.data": {
+    "source": "iana"
+  },
+  "application/vnd.ezpix-album": {
+    "source": "iana",
+    "extensions": ["ez2"]
+  },
+  "application/vnd.ezpix-package": {
+    "source": "iana",
+    "extensions": ["ez3"]
+  },
+  "application/vnd.f-secure.mobile": {
+    "source": "iana"
+  },
+  "application/vnd.fastcopy-disk-image": {
+    "source": "iana"
+  },
+  "application/vnd.fdf": {
+    "source": "iana",
+    "extensions": ["fdf"]
+  },
+  "application/vnd.fdsn.mseed": {
+    "source": "iana",
+    "extensions": ["mseed"]
+  },
+  "application/vnd.fdsn.seed": {
+    "source": "iana",
+    "extensions": ["seed","dataless"]
+  },
+  "application/vnd.ffsns": {
+    "source": "iana"
+  },
+  "application/vnd.filmit.zfc": {
+    "source": "iana"
+  },
+  "application/vnd.fints": {
+    "source": "iana"
+  },
+  "application/vnd.firemonkeys.cloudcell": {
+    "source": "iana"
+  },
+  "application/vnd.flographit": {
+    "source": "iana",
+    "extensions": ["gph"]
+  },
+  "application/vnd.fluxtime.clip": {
+    "source": "iana",
+    "extensions": ["ftc"]
+  },
+  "application/vnd.font-fontforge-sfd": {
+    "source": "iana"
+  },
+  "application/vnd.framemaker": {
+    "source": "iana",
+    "extensions": ["fm","frame","maker","book"]
+  },
+  "application/vnd.frogans.fnc": {
+    "source": "iana",
+    "extensions": ["fnc"]
+  },
+  "application/vnd.frogans.ltf": {
+    "source": "iana",
+    "extensions": ["ltf"]
+  },
+  "application/vnd.fsc.weblaunch": {
+    "source": "iana",
+    "extensions": ["fsc"]
+  },
+  "application/vnd.fujitsu.oasys": {
+    "source": "iana",
+    "extensions": ["oas"]
+  },
+  "application/vnd.fujitsu.oasys2": {
+    "source": "iana",
+    "extensions": ["oa2"]
+  },
+  "application/vnd.fujitsu.oasys3": {
+    "source": "iana",
+    "extensions": ["oa3"]
+  },
+  "application/vnd.fujitsu.oasysgp": {
+    "source": "iana",
+    "extensions": ["fg5"]
+  },
+  "application/vnd.fujitsu.oasysprs": {
+    "source": "iana",
+    "extensions": ["bh2"]
+  },
+  "application/vnd.fujixerox.art-ex": {
+    "source": "iana"
+  },
+  "application/vnd.fujixerox.art4": {
+    "source": "iana"
+  },
+  "application/vnd.fujixerox.ddd": {
+    "source": "iana",
+    "extensions": ["ddd"]
+  },
+  "application/vnd.fujixerox.docuworks": {
+    "source": "iana",
+    "extensions": ["xdw"]
+  },
+  "application/vnd.fujixerox.docuworks.binder": {
+    "source": "iana",
+    "extensions": ["xbd"]
+  },
+  "application/vnd.fujixerox.docuworks.container": {
+    "source": "iana"
+  },
+  "application/vnd.fujixerox.hbpl": {
+    "source": "iana"
+  },
+  "application/vnd.fut-misnet": {
+    "source": "iana"
+  },
+  "application/vnd.fuzzysheet": {
+    "source": "iana",
+    "extensions": ["fzs"]
+  },
+  "application/vnd.genomatix.tuxedo": {
+    "source": "iana",
+    "extensions": ["txd"]
+  },
+  "application/vnd.geo+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.geocube+xml": {
+    "source": "iana"
+  },
+  "application/vnd.geogebra.file": {
+    "source": "iana",
+    "extensions": ["ggb"]
+  },
+  "application/vnd.geogebra.tool": {
+    "source": "iana",
+    "extensions": ["ggt"]
+  },
+  "application/vnd.geometry-explorer": {
+    "source": "iana",
+    "extensions": ["gex","gre"]
+  },
+  "application/vnd.geonext": {
+    "source": "iana",
+    "extensions": ["gxt"]
+  },
+  "application/vnd.geoplan": {
+    "source": "iana",
+    "extensions": ["g2w"]
+  },
+  "application/vnd.geospace": {
+    "source": "iana",
+    "extensions": ["g3w"]
+  },
+  "application/vnd.gerber": {
+    "source": "iana"
+  },
+  "application/vnd.globalplatform.card-content-mgt": {
+    "source": "iana"
+  },
+  "application/vnd.globalplatform.card-content-mgt-response": {
+    "source": "iana"
+  },
+  "application/vnd.gmx": {
+    "source": "iana",
+    "extensions": ["gmx"]
+  },
+  "application/vnd.google-apps.document": {
+    "compressible": false,
+    "extensions": ["gdoc"]
+  },
+  "application/vnd.google-apps.presentation": {
+    "compressible": false,
+    "extensions": ["gslides"]
+  },
+  "application/vnd.google-apps.spreadsheet": {
+    "compressible": false,
+    "extensions": ["gsheet"]
+  },
+  "application/vnd.google-earth.kml+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["kml"]
+  },
+  "application/vnd.google-earth.kmz": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["kmz"]
+  },
+  "application/vnd.gov.sk.e-form+xml": {
+    "source": "iana"
+  },
+  "application/vnd.gov.sk.e-form+zip": {
+    "source": "iana"
+  },
+  "application/vnd.gov.sk.xmldatacontainer+xml": {
+    "source": "iana"
+  },
+  "application/vnd.grafeq": {
+    "source": "iana",
+    "extensions": ["gqf","gqs"]
+  },
+  "application/vnd.gridmp": {
+    "source": "iana"
+  },
+  "application/vnd.groove-account": {
+    "source": "iana",
+    "extensions": ["gac"]
+  },
+  "application/vnd.groove-help": {
+    "source": "iana",
+    "extensions": ["ghf"]
+  },
+  "application/vnd.groove-identity-message": {
+    "source": "iana",
+    "extensions": ["gim"]
+  },
+  "application/vnd.groove-injector": {
+    "source": "iana",
+    "extensions": ["grv"]
+  },
+  "application/vnd.groove-tool-message": {
+    "source": "iana",
+    "extensions": ["gtm"]
+  },
+  "application/vnd.groove-tool-template": {
+    "source": "iana",
+    "extensions": ["tpl"]
+  },
+  "application/vnd.groove-vcard": {
+    "source": "iana",
+    "extensions": ["vcg"]
+  },
+  "application/vnd.hal+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.hal+xml": {
+    "source": "iana",
+    "extensions": ["hal"]
+  },
+  "application/vnd.handheld-entertainment+xml": {
+    "source": "iana",
+    "extensions": ["zmm"]
+  },
+  "application/vnd.hbci": {
+    "source": "iana",
+    "extensions": ["hbci"]
+  },
+  "application/vnd.hcl-bireports": {
+    "source": "iana"
+  },
+  "application/vnd.heroku+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.hhe.lesson-player": {
+    "source": "iana",
+    "extensions": ["les"]
+  },
+  "application/vnd.hp-hpgl": {
+    "source": "iana",
+    "extensions": ["hpgl"]
+  },
+  "application/vnd.hp-hpid": {
+    "source": "iana",
+    "extensions": ["hpid"]
+  },
+  "application/vnd.hp-hps": {
+    "source": "iana",
+    "extensions": ["hps"]
+  },
+  "application/vnd.hp-jlyt": {
+    "source": "iana",
+    "extensions": ["jlt"]
+  },
+  "application/vnd.hp-pcl": {
+    "source": "iana",
+    "extensions": ["pcl"]
+  },
+  "application/vnd.hp-pclxl": {
+    "source": "iana",
+    "extensions": ["pclxl"]
+  },
+  "application/vnd.httphone": {
+    "source": "iana"
+  },
+  "application/vnd.hydrostatix.sof-data": {
+    "source": "iana",
+    "extensions": ["sfd-hdstx"]
+  },
+  "application/vnd.hyperdrive+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.hzn-3d-crossword": {
+    "source": "iana"
+  },
+  "application/vnd.ibm.afplinedata": {
+    "source": "iana"
+  },
+  "application/vnd.ibm.electronic-media": {
+    "source": "iana"
+  },
+  "application/vnd.ibm.minipay": {
+    "source": "iana",
+    "extensions": ["mpy"]
+  },
+  "application/vnd.ibm.modcap": {
+    "source": "iana",
+    "extensions": ["afp","listafp","list3820"]
+  },
+  "application/vnd.ibm.rights-management": {
+    "source": "iana",
+    "extensions": ["irm"]
+  },
+  "application/vnd.ibm.secure-container": {
+    "source": "iana",
+    "extensions": ["sc"]
+  },
+  "application/vnd.iccprofile": {
+    "source": "iana",
+    "extensions": ["icc","icm"]
+  },
+  "application/vnd.ieee.1905": {
+    "source": "iana"
+  },
+  "application/vnd.igloader": {
+    "source": "iana",
+    "extensions": ["igl"]
+  },
+  "application/vnd.immervision-ivp": {
+    "source": "iana",
+    "extensions": ["ivp"]
+  },
+  "application/vnd.immervision-ivu": {
+    "source": "iana",
+    "extensions": ["ivu"]
+  },
+  "application/vnd.ims.imsccv1p1": {
+    "source": "iana"
+  },
+  "application/vnd.ims.imsccv1p2": {
+    "source": "iana"
+  },
+  "application/vnd.ims.imsccv1p3": {
+    "source": "iana"
+  },
+  "application/vnd.ims.lis.v2.result+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.ims.lti.v2.toolproxy+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.ims.lti.v2.toolproxy.id+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.ims.lti.v2.toolsettings+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.ims.lti.v2.toolsettings.simple+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.informedcontrol.rms+xml": {
+    "source": "iana"
+  },
+  "application/vnd.informix-visionary": {
+    "source": "iana"
+  },
+  "application/vnd.infotech.project": {
+    "source": "iana"
+  },
+  "application/vnd.infotech.project+xml": {
+    "source": "iana"
+  },
+  "application/vnd.innopath.wamp.notification": {
+    "source": "iana"
+  },
+  "application/vnd.insors.igm": {
+    "source": "iana",
+    "extensions": ["igm"]
+  },
+  "application/vnd.intercon.formnet": {
+    "source": "iana",
+    "extensions": ["xpw","xpx"]
+  },
+  "application/vnd.intergeo": {
+    "source": "iana",
+    "extensions": ["i2g"]
+  },
+  "application/vnd.intertrust.digibox": {
+    "source": "iana"
+  },
+  "application/vnd.intertrust.nncp": {
+    "source": "iana"
+  },
+  "application/vnd.intu.qbo": {
+    "source": "iana",
+    "extensions": ["qbo"]
+  },
+  "application/vnd.intu.qfx": {
+    "source": "iana",
+    "extensions": ["qfx"]
+  },
+  "application/vnd.iptc.g2.catalogitem+xml": {
+    "source": "iana"
+  },
+  "application/vnd.iptc.g2.conceptitem+xml": {
+    "source": "iana"
+  },
+  "application/vnd.iptc.g2.knowledgeitem+xml": {
+    "source": "iana"
+  },
+  "application/vnd.iptc.g2.newsitem+xml": {
+    "source": "iana"
+  },
+  "application/vnd.iptc.g2.newsmessage+xml": {
+    "source": "iana"
+  },
+  "application/vnd.iptc.g2.packageitem+xml": {
+    "source": "iana"
+  },
+  "application/vnd.iptc.g2.planningitem+xml": {
+    "source": "iana"
+  },
+  "application/vnd.ipunplugged.rcprofile": {
+    "source": "iana",
+    "extensions": ["rcprofile"]
+  },
+  "application/vnd.irepository.package+xml": {
+    "source": "iana",
+    "extensions": ["irp"]
+  },
+  "application/vnd.is-xpr": {
+    "source": "iana",
+    "extensions": ["xpr"]
+  },
+  "application/vnd.isac.fcs": {
+    "source": "iana",
+    "extensions": ["fcs"]
+  },
+  "application/vnd.jam": {
+    "source": "iana",
+    "extensions": ["jam"]
+  },
+  "application/vnd.japannet-directory-service": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-jpnstore-wakeup": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-payment-wakeup": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-registration": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-registration-wakeup": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-setstore-wakeup": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-verification": {
+    "source": "iana"
+  },
+  "application/vnd.japannet-verification-wakeup": {
+    "source": "iana"
+  },
+  "application/vnd.jcp.javame.midlet-rms": {
+    "source": "iana",
+    "extensions": ["rms"]
+  },
+  "application/vnd.jisp": {
+    "source": "iana",
+    "extensions": ["jisp"]
+  },
+  "application/vnd.joost.joda-archive": {
+    "source": "iana",
+    "extensions": ["joda"]
+  },
+  "application/vnd.jsk.isdn-ngn": {
+    "source": "iana"
+  },
+  "application/vnd.kahootz": {
+    "source": "iana",
+    "extensions": ["ktz","ktr"]
+  },
+  "application/vnd.kde.karbon": {
+    "source": "iana",
+    "extensions": ["karbon"]
+  },
+  "application/vnd.kde.kchart": {
+    "source": "iana",
+    "extensions": ["chrt"]
+  },
+  "application/vnd.kde.kformula": {
+    "source": "iana",
+    "extensions": ["kfo"]
+  },
+  "application/vnd.kde.kivio": {
+    "source": "iana",
+    "extensions": ["flw"]
+  },
+  "application/vnd.kde.kontour": {
+    "source": "iana",
+    "extensions": ["kon"]
+  },
+  "application/vnd.kde.kpresenter": {
+    "source": "iana",
+    "extensions": ["kpr","kpt"]
+  },
+  "application/vnd.kde.kspread": {
+    "source": "iana",
+    "extensions": ["ksp"]
+  },
+  "application/vnd.kde.kword": {
+    "source": "iana",
+    "extensions": ["kwd","kwt"]
+  },
+  "application/vnd.kenameaapp": {
+    "source": "iana",
+    "extensions": ["htke"]
+  },
+  "application/vnd.kidspiration": {
+    "source": "iana",
+    "extensions": ["kia"]
+  },
+  "application/vnd.kinar": {
+    "source": "iana",
+    "extensions": ["kne","knp"]
+  },
+  "application/vnd.koan": {
+    "source": "iana",
+    "extensions": ["skp","skd","skt","skm"]
+  },
+  "application/vnd.kodak-descriptor": {
+    "source": "iana",
+    "extensions": ["sse"]
+  },
+  "application/vnd.las.las+xml": {
+    "source": "iana",
+    "extensions": ["lasxml"]
+  },
+  "application/vnd.liberty-request+xml": {
+    "source": "iana"
+  },
+  "application/vnd.llamagraphics.life-balance.desktop": {
+    "source": "iana",
+    "extensions": ["lbd"]
+  },
+  "application/vnd.llamagraphics.life-balance.exchange+xml": {
+    "source": "iana",
+    "extensions": ["lbe"]
+  },
+  "application/vnd.lotus-1-2-3": {
+    "source": "iana",
+    "extensions": ["123"]
+  },
+  "application/vnd.lotus-approach": {
+    "source": "iana",
+    "extensions": ["apr"]
+  },
+  "application/vnd.lotus-freelance": {
+    "source": "iana",
+    "extensions": ["pre"]
+  },
+  "application/vnd.lotus-notes": {
+    "source": "iana",
+    "extensions": ["nsf"]
+  },
+  "application/vnd.lotus-organizer": {
+    "source": "iana",
+    "extensions": ["org"]
+  },
+  "application/vnd.lotus-screencam": {
+    "source": "iana",
+    "extensions": ["scm"]
+  },
+  "application/vnd.lotus-wordpro": {
+    "source": "iana",
+    "extensions": ["lwp"]
+  },
+  "application/vnd.macports.portpkg": {
+    "source": "iana",
+    "extensions": ["portpkg"]
+  },
+  "application/vnd.mapbox-vector-tile": {
+    "source": "iana"
+  },
+  "application/vnd.marlin.drm.actiontoken+xml": {
+    "source": "iana"
+  },
+  "application/vnd.marlin.drm.conftoken+xml": {
+    "source": "iana"
+  },
+  "application/vnd.marlin.drm.license+xml": {
+    "source": "iana"
+  },
+  "application/vnd.marlin.drm.mdcf": {
+    "source": "iana"
+  },
+  "application/vnd.mason+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.maxmind.maxmind-db": {
+    "source": "iana"
+  },
+  "application/vnd.mcd": {
+    "source": "iana",
+    "extensions": ["mcd"]
+  },
+  "application/vnd.medcalcdata": {
+    "source": "iana",
+    "extensions": ["mc1"]
+  },
+  "application/vnd.mediastation.cdkey": {
+    "source": "iana",
+    "extensions": ["cdkey"]
+  },
+  "application/vnd.meridian-slingshot": {
+    "source": "iana"
+  },
+  "application/vnd.mfer": {
+    "source": "iana",
+    "extensions": ["mwf"]
+  },
+  "application/vnd.mfmp": {
+    "source": "iana",
+    "extensions": ["mfm"]
+  },
+  "application/vnd.micro+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.micrografx.flo": {
+    "source": "iana",
+    "extensions": ["flo"]
+  },
+  "application/vnd.micrografx.igx": {
+    "source": "iana",
+    "extensions": ["igx"]
+  },
+  "application/vnd.microsoft.portable-executable": {
+    "source": "iana"
+  },
+  "application/vnd.miele+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.mif": {
+    "source": "iana",
+    "extensions": ["mif"]
+  },
+  "application/vnd.minisoft-hp3000-save": {
+    "source": "iana"
+  },
+  "application/vnd.mitsubishi.misty-guard.trustweb": {
+    "source": "iana"
+  },
+  "application/vnd.mobius.daf": {
+    "source": "iana",
+    "extensions": ["daf"]
+  },
+  "application/vnd.mobius.dis": {
+    "source": "iana",
+    "extensions": ["dis"]
+  },
+  "application/vnd.mobius.mbk": {
+    "source": "iana",
+    "extensions": ["mbk"]
+  },
+  "application/vnd.mobius.mqy": {
+    "source": "iana",
+    "extensions": ["mqy"]
+  },
+  "application/vnd.mobius.msl": {
+    "source": "iana",
+    "extensions": ["msl"]
+  },
+  "application/vnd.mobius.plc": {
+    "source": "iana",
+    "extensions": ["plc"]
+  },
+  "application/vnd.mobius.txf": {
+    "source": "iana",
+    "extensions": ["txf"]
+  },
+  "application/vnd.mophun.application": {
+    "source": "iana",
+    "extensions": ["mpn"]
+  },
+  "application/vnd.mophun.certificate": {
+    "source": "iana",
+    "extensions": ["mpc"]
+  },
+  "application/vnd.motorola.flexsuite": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.flexsuite.adsi": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.flexsuite.fis": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.flexsuite.gotap": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.flexsuite.kmr": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.flexsuite.ttc": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.flexsuite.wem": {
+    "source": "iana"
+  },
+  "application/vnd.motorola.iprm": {
+    "source": "iana"
+  },
+  "application/vnd.mozilla.xul+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["xul"]
+  },
+  "application/vnd.ms-3mfdocument": {
+    "source": "iana"
+  },
+  "application/vnd.ms-artgalry": {
+    "source": "iana",
+    "extensions": ["cil"]
+  },
+  "application/vnd.ms-asf": {
+    "source": "iana"
+  },
+  "application/vnd.ms-cab-compressed": {
+    "source": "iana",
+    "extensions": ["cab"]
+  },
+  "application/vnd.ms-color.iccprofile": {
+    "source": "apache"
+  },
+  "application/vnd.ms-excel": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["xls","xlm","xla","xlc","xlt","xlw"]
+  },
+  "application/vnd.ms-excel.addin.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["xlam"]
+  },
+  "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["xlsb"]
+  },
+  "application/vnd.ms-excel.sheet.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["xlsm"]
+  },
+  "application/vnd.ms-excel.template.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["xltm"]
+  },
+  "application/vnd.ms-fontobject": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["eot"]
+  },
+  "application/vnd.ms-htmlhelp": {
+    "source": "iana",
+    "extensions": ["chm"]
+  },
+  "application/vnd.ms-ims": {
+    "source": "iana",
+    "extensions": ["ims"]
+  },
+  "application/vnd.ms-lrm": {
+    "source": "iana",
+    "extensions": ["lrm"]
+  },
+  "application/vnd.ms-office.activex+xml": {
+    "source": "iana"
+  },
+  "application/vnd.ms-officetheme": {
+    "source": "iana",
+    "extensions": ["thmx"]
+  },
+  "application/vnd.ms-opentype": {
+    "source": "apache",
+    "compressible": true
+  },
+  "application/vnd.ms-package.obfuscated-opentype": {
+    "source": "apache"
+  },
+  "application/vnd.ms-pki.seccat": {
+    "source": "apache",
+    "extensions": ["cat"]
+  },
+  "application/vnd.ms-pki.stl": {
+    "source": "apache",
+    "extensions": ["stl"]
+  },
+  "application/vnd.ms-playready.initiator+xml": {
+    "source": "iana"
+  },
+  "application/vnd.ms-powerpoint": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["ppt","pps","pot"]
+  },
+  "application/vnd.ms-powerpoint.addin.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["ppam"]
+  },
+  "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["pptm"]
+  },
+  "application/vnd.ms-powerpoint.slide.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["sldm"]
+  },
+  "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["ppsm"]
+  },
+  "application/vnd.ms-powerpoint.template.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["potm"]
+  },
+  "application/vnd.ms-printdevicecapabilities+xml": {
+    "source": "iana"
+  },
+  "application/vnd.ms-printing.printticket+xml": {
+    "source": "apache"
+  },
+  "application/vnd.ms-project": {
+    "source": "iana",
+    "extensions": ["mpp","mpt"]
+  },
+  "application/vnd.ms-tnef": {
+    "source": "iana"
+  },
+  "application/vnd.ms-windows.devicepairing": {
+    "source": "iana"
+  },
+  "application/vnd.ms-windows.nwprinting.oob": {
+    "source": "iana"
+  },
+  "application/vnd.ms-windows.printerpairing": {
+    "source": "iana"
+  },
+  "application/vnd.ms-windows.wsd.oob": {
+    "source": "iana"
+  },
+  "application/vnd.ms-wmdrm.lic-chlg-req": {
+    "source": "iana"
+  },
+  "application/vnd.ms-wmdrm.lic-resp": {
+    "source": "iana"
+  },
+  "application/vnd.ms-wmdrm.meter-chlg-req": {
+    "source": "iana"
+  },
+  "application/vnd.ms-wmdrm.meter-resp": {
+    "source": "iana"
+  },
+  "application/vnd.ms-word.document.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["docm"]
+  },
+  "application/vnd.ms-word.template.macroenabled.12": {
+    "source": "iana",
+    "extensions": ["dotm"]
+  },
+  "application/vnd.ms-works": {
+    "source": "iana",
+    "extensions": ["wps","wks","wcm","wdb"]
+  },
+  "application/vnd.ms-wpl": {
+    "source": "iana",
+    "extensions": ["wpl"]
+  },
+  "application/vnd.ms-xpsdocument": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["xps"]
+  },
+  "application/vnd.msa-disk-image": {
+    "source": "iana"
+  },
+  "application/vnd.mseq": {
+    "source": "iana",
+    "extensions": ["mseq"]
+  },
+  "application/vnd.msign": {
+    "source": "iana"
+  },
+  "application/vnd.multiad.creator": {
+    "source": "iana"
+  },
+  "application/vnd.multiad.creator.cif": {
+    "source": "iana"
+  },
+  "application/vnd.music-niff": {
+    "source": "iana"
+  },
+  "application/vnd.musician": {
+    "source": "iana",
+    "extensions": ["mus"]
+  },
+  "application/vnd.muvee.style": {
+    "source": "iana",
+    "extensions": ["msty"]
+  },
+  "application/vnd.mynfc": {
+    "source": "iana",
+    "extensions": ["taglet"]
+  },
+  "application/vnd.ncd.control": {
+    "source": "iana"
+  },
+  "application/vnd.ncd.reference": {
+    "source": "iana"
+  },
+  "application/vnd.nervana": {
+    "source": "iana"
+  },
+  "application/vnd.netfpx": {
+    "source": "iana"
+  },
+  "application/vnd.neurolanguage.nlu": {
+    "source": "iana",
+    "extensions": ["nlu"]
+  },
+  "application/vnd.nintendo.nitro.rom": {
+    "source": "iana"
+  },
+  "application/vnd.nintendo.snes.rom": {
+    "source": "iana"
+  },
+  "application/vnd.nitf": {
+    "source": "iana",
+    "extensions": ["ntf","nitf"]
+  },
+  "application/vnd.noblenet-directory": {
+    "source": "iana",
+    "extensions": ["nnd"]
+  },
+  "application/vnd.noblenet-sealer": {
+    "source": "iana",
+    "extensions": ["nns"]
+  },
+  "application/vnd.noblenet-web": {
+    "source": "iana",
+    "extensions": ["nnw"]
+  },
+  "application/vnd.nokia.catalogs": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.conml+wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.conml+xml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.iptv.config+xml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.isds-radio-presets": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.landmark+wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.landmark+xml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.landmarkcollection+xml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.n-gage.ac+xml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.n-gage.data": {
+    "source": "iana",
+    "extensions": ["ngdat"]
+  },
+  "application/vnd.nokia.n-gage.symbian.install": {
+    "source": "iana",
+    "extensions": ["n-gage"]
+  },
+  "application/vnd.nokia.ncd": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.pcd+wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.pcd+xml": {
+    "source": "iana"
+  },
+  "application/vnd.nokia.radio-preset": {
+    "source": "iana",
+    "extensions": ["rpst"]
+  },
+  "application/vnd.nokia.radio-presets": {
+    "source": "iana",
+    "extensions": ["rpss"]
+  },
+  "application/vnd.novadigm.edm": {
+    "source": "iana",
+    "extensions": ["edm"]
+  },
+  "application/vnd.novadigm.edx": {
+    "source": "iana",
+    "extensions": ["edx"]
+  },
+  "application/vnd.novadigm.ext": {
+    "source": "iana",
+    "extensions": ["ext"]
+  },
+  "application/vnd.ntt-local.content-share": {
+    "source": "iana"
+  },
+  "application/vnd.ntt-local.file-transfer": {
+    "source": "iana"
+  },
+  "application/vnd.ntt-local.ogw_remote-access": {
+    "source": "iana"
+  },
+  "application/vnd.ntt-local.sip-ta_remote": {
+    "source": "iana"
+  },
+  "application/vnd.ntt-local.sip-ta_tcp_stream": {
+    "source": "iana"
+  },
+  "application/vnd.oasis.opendocument.chart": {
+    "source": "iana",
+    "extensions": ["odc"]
+  },
+  "application/vnd.oasis.opendocument.chart-template": {
+    "source": "iana",
+    "extensions": ["otc"]
+  },
+  "application/vnd.oasis.opendocument.database": {
+    "source": "iana",
+    "extensions": ["odb"]
+  },
+  "application/vnd.oasis.opendocument.formula": {
+    "source": "iana",
+    "extensions": ["odf"]
+  },
+  "application/vnd.oasis.opendocument.formula-template": {
+    "source": "iana",
+    "extensions": ["odft"]
+  },
+  "application/vnd.oasis.opendocument.graphics": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["odg"]
+  },
+  "application/vnd.oasis.opendocument.graphics-template": {
+    "source": "iana",
+    "extensions": ["otg"]
+  },
+  "application/vnd.oasis.opendocument.image": {
+    "source": "iana",
+    "extensions": ["odi"]
+  },
+  "application/vnd.oasis.opendocument.image-template": {
+    "source": "iana",
+    "extensions": ["oti"]
+  },
+  "application/vnd.oasis.opendocument.presentation": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["odp"]
+  },
+  "application/vnd.oasis.opendocument.presentation-template": {
+    "source": "iana",
+    "extensions": ["otp"]
+  },
+  "application/vnd.oasis.opendocument.spreadsheet": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["ods"]
+  },
+  "application/vnd.oasis.opendocument.spreadsheet-template": {
+    "source": "iana",
+    "extensions": ["ots"]
+  },
+  "application/vnd.oasis.opendocument.text": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["odt"]
+  },
+  "application/vnd.oasis.opendocument.text-master": {
+    "source": "iana",
+    "extensions": ["odm"]
+  },
+  "application/vnd.oasis.opendocument.text-template": {
+    "source": "iana",
+    "extensions": ["ott"]
+  },
+  "application/vnd.oasis.opendocument.text-web": {
+    "source": "iana",
+    "extensions": ["oth"]
+  },
+  "application/vnd.obn": {
+    "source": "iana"
+  },
+  "application/vnd.oftn.l10n+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.oipf.contentaccessdownload+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.contentaccessstreaming+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.cspg-hexbinary": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.dae.svg+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.dae.xhtml+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.mippvcontrolmessage+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.pae.gem": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.spdiscovery+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.spdlist+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.ueprofile+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oipf.userprofile+xml": {
+    "source": "iana"
+  },
+  "application/vnd.olpc-sugar": {
+    "source": "iana",
+    "extensions": ["xo"]
+  },
+  "application/vnd.oma-scws-config": {
+    "source": "iana"
+  },
+  "application/vnd.oma-scws-http-request": {
+    "source": "iana"
+  },
+  "application/vnd.oma-scws-http-response": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.drm-trigger+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.imd+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.ltkm": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.notification+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.provisioningtrigger": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.sgboot": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.sgdd+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.sgdu": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.simple-symbol-container": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.smartcard-trigger+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.sprov+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.bcast.stkm": {
+    "source": "iana"
+  },
+  "application/vnd.oma.cab-address-book+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.cab-feature-handler+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.cab-pcc+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.cab-subs-invite+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.cab-user-prefs+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.dcd": {
+    "source": "iana"
+  },
+  "application/vnd.oma.dcdc": {
+    "source": "iana"
+  },
+  "application/vnd.oma.dd2+xml": {
+    "source": "iana",
+    "extensions": ["dd2"]
+  },
+  "application/vnd.oma.drm.risd+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.group-usage-list+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.pal+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.poc.detailed-progress-report+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.poc.final-report+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.poc.groups+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.poc.invocation-descriptor+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.poc.optimized-progress-report+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.push": {
+    "source": "iana"
+  },
+  "application/vnd.oma.scidm.messages+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oma.xcap-directory+xml": {
+    "source": "iana"
+  },
+  "application/vnd.omads-email+xml": {
+    "source": "iana"
+  },
+  "application/vnd.omads-file+xml": {
+    "source": "iana"
+  },
+  "application/vnd.omads-folder+xml": {
+    "source": "iana"
+  },
+  "application/vnd.omaloc-supl-init": {
+    "source": "iana"
+  },
+  "application/vnd.openblox.game+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openblox.game-binary": {
+    "source": "iana"
+  },
+  "application/vnd.openeye.oeb": {
+    "source": "iana"
+  },
+  "application/vnd.openofficeorg.extension": {
+    "source": "apache",
+    "extensions": ["oxt"]
+  },
+  "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawing+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml-template": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["pptx"]
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slide": {
+    "source": "iana",
+    "extensions": ["sldx"]
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
+    "source": "iana",
+    "extensions": ["ppsx"]
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.template": {
+    "source": "apache",
+    "extensions": ["potx"]
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml-template": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["xlsx"]
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
+    "source": "apache",
+    "extensions": ["xltx"]
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.theme+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.vmldrawing": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml-template": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["docx"]
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
+    "source": "apache",
+    "extensions": ["dotx"]
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-package.core-properties+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
+    "source": "iana"
+  },
+  "application/vnd.openxmlformats-package.relationships+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oracle.resource+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.orange.indata": {
+    "source": "iana"
+  },
+  "application/vnd.osa.netdeploy": {
+    "source": "iana"
+  },
+  "application/vnd.osgeo.mapguide.package": {
+    "source": "iana",
+    "extensions": ["mgp"]
+  },
+  "application/vnd.osgi.bundle": {
+    "source": "iana"
+  },
+  "application/vnd.osgi.dp": {
+    "source": "iana",
+    "extensions": ["dp"]
+  },
+  "application/vnd.osgi.subsystem": {
+    "source": "iana",
+    "extensions": ["esa"]
+  },
+  "application/vnd.otps.ct-kip+xml": {
+    "source": "iana"
+  },
+  "application/vnd.oxli.countgraph": {
+    "source": "iana"
+  },
+  "application/vnd.pagerduty+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.palm": {
+    "source": "iana",
+    "extensions": ["pdb","pqa","oprc"]
+  },
+  "application/vnd.panoply": {
+    "source": "iana"
+  },
+  "application/vnd.paos+xml": {
+    "source": "iana"
+  },
+  "application/vnd.paos.xml": {
+    "source": "apache"
+  },
+  "application/vnd.pawaafile": {
+    "source": "iana",
+    "extensions": ["paw"]
+  },
+  "application/vnd.pcos": {
+    "source": "iana"
+  },
+  "application/vnd.pg.format": {
+    "source": "iana",
+    "extensions": ["str"]
+  },
+  "application/vnd.pg.osasli": {
+    "source": "iana",
+    "extensions": ["ei6"]
+  },
+  "application/vnd.piaccess.application-licence": {
+    "source": "iana"
+  },
+  "application/vnd.picsel": {
+    "source": "iana",
+    "extensions": ["efif"]
+  },
+  "application/vnd.pmi.widget": {
+    "source": "iana",
+    "extensions": ["wg"]
+  },
+  "application/vnd.poc.group-advertisement+xml": {
+    "source": "iana"
+  },
+  "application/vnd.pocketlearn": {
+    "source": "iana",
+    "extensions": ["plf"]
+  },
+  "application/vnd.powerbuilder6": {
+    "source": "iana",
+    "extensions": ["pbd"]
+  },
+  "application/vnd.powerbuilder6-s": {
+    "source": "iana"
+  },
+  "application/vnd.powerbuilder7": {
+    "source": "iana"
+  },
+  "application/vnd.powerbuilder7-s": {
+    "source": "iana"
+  },
+  "application/vnd.powerbuilder75": {
+    "source": "iana"
+  },
+  "application/vnd.powerbuilder75-s": {
+    "source": "iana"
+  },
+  "application/vnd.preminet": {
+    "source": "iana"
+  },
+  "application/vnd.previewsystems.box": {
+    "source": "iana",
+    "extensions": ["box"]
+  },
+  "application/vnd.proteus.magazine": {
+    "source": "iana",
+    "extensions": ["mgz"]
+  },
+  "application/vnd.publishare-delta-tree": {
+    "source": "iana",
+    "extensions": ["qps"]
+  },
+  "application/vnd.pvi.ptid1": {
+    "source": "iana",
+    "extensions": ["ptid"]
+  },
+  "application/vnd.pwg-multiplexed": {
+    "source": "iana"
+  },
+  "application/vnd.pwg-xhtml-print+xml": {
+    "source": "iana"
+  },
+  "application/vnd.qualcomm.brew-app-res": {
+    "source": "iana"
+  },
+  "application/vnd.quark.quarkxpress": {
+    "source": "iana",
+    "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"]
+  },
+  "application/vnd.quobject-quoxdocument": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.moml+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-audit+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-audit-conf+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-audit-conn+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-audit-dialog+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-audit-stream+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-conf+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog-base+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog-fax-detect+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog-group+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog-speech+xml": {
+    "source": "iana"
+  },
+  "application/vnd.radisys.msml-dialog-transform+xml": {
+    "source": "iana"
+  },
+  "application/vnd.rainstor.data": {
+    "source": "iana"
+  },
+  "application/vnd.rapid": {
+    "source": "iana"
+  },
+  "application/vnd.realvnc.bed": {
+    "source": "iana",
+    "extensions": ["bed"]
+  },
+  "application/vnd.recordare.musicxml": {
+    "source": "iana",
+    "extensions": ["mxl"]
+  },
+  "application/vnd.recordare.musicxml+xml": {
+    "source": "iana",
+    "extensions": ["musicxml"]
+  },
+  "application/vnd.renlearn.rlprint": {
+    "source": "iana"
+  },
+  "application/vnd.rig.cryptonote": {
+    "source": "iana",
+    "extensions": ["cryptonote"]
+  },
+  "application/vnd.rim.cod": {
+    "source": "apache",
+    "extensions": ["cod"]
+  },
+  "application/vnd.rn-realmedia": {
+    "source": "apache",
+    "extensions": ["rm"]
+  },
+  "application/vnd.rn-realmedia-vbr": {
+    "source": "apache",
+    "extensions": ["rmvb"]
+  },
+  "application/vnd.route66.link66+xml": {
+    "source": "iana",
+    "extensions": ["link66"]
+  },
+  "application/vnd.rs-274x": {
+    "source": "iana"
+  },
+  "application/vnd.ruckus.download": {
+    "source": "iana"
+  },
+  "application/vnd.s3sms": {
+    "source": "iana"
+  },
+  "application/vnd.sailingtracker.track": {
+    "source": "iana",
+    "extensions": ["st"]
+  },
+  "application/vnd.sbm.cid": {
+    "source": "iana"
+  },
+  "application/vnd.sbm.mid2": {
+    "source": "iana"
+  },
+  "application/vnd.scribus": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.3df": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.csf": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.doc": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.eml": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.mht": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.net": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.ppt": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.tiff": {
+    "source": "iana"
+  },
+  "application/vnd.sealed.xls": {
+    "source": "iana"
+  },
+  "application/vnd.sealedmedia.softseal.html": {
+    "source": "iana"
+  },
+  "application/vnd.sealedmedia.softseal.pdf": {
+    "source": "iana"
+  },
+  "application/vnd.seemail": {
+    "source": "iana",
+    "extensions": ["see"]
+  },
+  "application/vnd.sema": {
+    "source": "iana",
+    "extensions": ["sema"]
+  },
+  "application/vnd.semd": {
+    "source": "iana",
+    "extensions": ["semd"]
+  },
+  "application/vnd.semf": {
+    "source": "iana",
+    "extensions": ["semf"]
+  },
+  "application/vnd.shana.informed.formdata": {
+    "source": "iana",
+    "extensions": ["ifm"]
+  },
+  "application/vnd.shana.informed.formtemplate": {
+    "source": "iana",
+    "extensions": ["itp"]
+  },
+  "application/vnd.shana.informed.interchange": {
+    "source": "iana",
+    "extensions": ["iif"]
+  },
+  "application/vnd.shana.informed.package": {
+    "source": "iana",
+    "extensions": ["ipk"]
+  },
+  "application/vnd.simtech-mindmapper": {
+    "source": "iana",
+    "extensions": ["twd","twds"]
+  },
+  "application/vnd.siren+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.smaf": {
+    "source": "iana",
+    "extensions": ["mmf"]
+  },
+  "application/vnd.smart.notebook": {
+    "source": "iana"
+  },
+  "application/vnd.smart.teacher": {
+    "source": "iana",
+    "extensions": ["teacher"]
+  },
+  "application/vnd.software602.filler.form+xml": {
+    "source": "iana"
+  },
+  "application/vnd.software602.filler.form-xml-zip": {
+    "source": "iana"
+  },
+  "application/vnd.solent.sdkm+xml": {
+    "source": "iana",
+    "extensions": ["sdkm","sdkd"]
+  },
+  "application/vnd.spotfire.dxp": {
+    "source": "iana",
+    "extensions": ["dxp"]
+  },
+  "application/vnd.spotfire.sfs": {
+    "source": "iana",
+    "extensions": ["sfs"]
+  },
+  "application/vnd.sss-cod": {
+    "source": "iana"
+  },
+  "application/vnd.sss-dtf": {
+    "source": "iana"
+  },
+  "application/vnd.sss-ntf": {
+    "source": "iana"
+  },
+  "application/vnd.stardivision.calc": {
+    "source": "apache",
+    "extensions": ["sdc"]
+  },
+  "application/vnd.stardivision.draw": {
+    "source": "apache",
+    "extensions": ["sda"]
+  },
+  "application/vnd.stardivision.impress": {
+    "source": "apache",
+    "extensions": ["sdd"]
+  },
+  "application/vnd.stardivision.math": {
+    "source": "apache",
+    "extensions": ["smf"]
+  },
+  "application/vnd.stardivision.writer": {
+    "source": "apache",
+    "extensions": ["sdw","vor"]
+  },
+  "application/vnd.stardivision.writer-global": {
+    "source": "apache",
+    "extensions": ["sgl"]
+  },
+  "application/vnd.stepmania.package": {
+    "source": "iana",
+    "extensions": ["smzip"]
+  },
+  "application/vnd.stepmania.stepchart": {
+    "source": "iana",
+    "extensions": ["sm"]
+  },
+  "application/vnd.street-stream": {
+    "source": "iana"
+  },
+  "application/vnd.sun.wadl+xml": {
+    "source": "iana"
+  },
+  "application/vnd.sun.xml.calc": {
+    "source": "apache",
+    "extensions": ["sxc"]
+  },
+  "application/vnd.sun.xml.calc.template": {
+    "source": "apache",
+    "extensions": ["stc"]
+  },
+  "application/vnd.sun.xml.draw": {
+    "source": "apache",
+    "extensions": ["sxd"]
+  },
+  "application/vnd.sun.xml.draw.template": {
+    "source": "apache",
+    "extensions": ["std"]
+  },
+  "application/vnd.sun.xml.impress": {
+    "source": "apache",
+    "extensions": ["sxi"]
+  },
+  "application/vnd.sun.xml.impress.template": {
+    "source": "apache",
+    "extensions": ["sti"]
+  },
+  "application/vnd.sun.xml.math": {
+    "source": "apache",
+    "extensions": ["sxm"]
+  },
+  "application/vnd.sun.xml.writer": {
+    "source": "apache",
+    "extensions": ["sxw"]
+  },
+  "application/vnd.sun.xml.writer.global": {
+    "source": "apache",
+    "extensions": ["sxg"]
+  },
+  "application/vnd.sun.xml.writer.template": {
+    "source": "apache",
+    "extensions": ["stw"]
+  },
+  "application/vnd.sus-calendar": {
+    "source": "iana",
+    "extensions": ["sus","susp"]
+  },
+  "application/vnd.svd": {
+    "source": "iana",
+    "extensions": ["svd"]
+  },
+  "application/vnd.swiftview-ics": {
+    "source": "iana"
+  },
+  "application/vnd.symbian.install": {
+    "source": "apache",
+    "extensions": ["sis","sisx"]
+  },
+  "application/vnd.syncml+xml": {
+    "source": "iana",
+    "extensions": ["xsm"]
+  },
+  "application/vnd.syncml.dm+wbxml": {
+    "source": "iana",
+    "extensions": ["bdm"]
+  },
+  "application/vnd.syncml.dm+xml": {
+    "source": "iana",
+    "extensions": ["xdm"]
+  },
+  "application/vnd.syncml.dm.notification": {
+    "source": "iana"
+  },
+  "application/vnd.syncml.dmddf+wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.syncml.dmddf+xml": {
+    "source": "iana"
+  },
+  "application/vnd.syncml.dmtnds+wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.syncml.dmtnds+xml": {
+    "source": "iana"
+  },
+  "application/vnd.syncml.ds.notification": {
+    "source": "iana"
+  },
+  "application/vnd.tao.intent-module-archive": {
+    "source": "iana",
+    "extensions": ["tao"]
+  },
+  "application/vnd.tcpdump.pcap": {
+    "source": "iana",
+    "extensions": ["pcap","cap","dmp"]
+  },
+  "application/vnd.tmd.mediaflex.api+xml": {
+    "source": "iana"
+  },
+  "application/vnd.tml": {
+    "source": "iana"
+  },
+  "application/vnd.tmobile-livetv": {
+    "source": "iana",
+    "extensions": ["tmo"]
+  },
+  "application/vnd.trid.tpt": {
+    "source": "iana",
+    "extensions": ["tpt"]
+  },
+  "application/vnd.triscape.mxs": {
+    "source": "iana",
+    "extensions": ["mxs"]
+  },
+  "application/vnd.trueapp": {
+    "source": "iana",
+    "extensions": ["tra"]
+  },
+  "application/vnd.truedoc": {
+    "source": "iana"
+  },
+  "application/vnd.ubisoft.webplayer": {
+    "source": "iana"
+  },
+  "application/vnd.ufdl": {
+    "source": "iana",
+    "extensions": ["ufd","ufdl"]
+  },
+  "application/vnd.uiq.theme": {
+    "source": "iana",
+    "extensions": ["utz"]
+  },
+  "application/vnd.umajin": {
+    "source": "iana",
+    "extensions": ["umj"]
+  },
+  "application/vnd.unity": {
+    "source": "iana",
+    "extensions": ["unityweb"]
+  },
+  "application/vnd.uoml+xml": {
+    "source": "iana",
+    "extensions": ["uoml"]
+  },
+  "application/vnd.uplanet.alert": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.alert-wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.bearer-choice": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.bearer-choice-wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.cacheop": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.cacheop-wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.channel": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.channel-wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.list": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.list-wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.listcmd": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.listcmd-wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.uplanet.signal": {
+    "source": "iana"
+  },
+  "application/vnd.uri-map": {
+    "source": "iana"
+  },
+  "application/vnd.valve.source.material": {
+    "source": "iana"
+  },
+  "application/vnd.vcx": {
+    "source": "iana",
+    "extensions": ["vcx"]
+  },
+  "application/vnd.vd-study": {
+    "source": "iana"
+  },
+  "application/vnd.vectorworks": {
+    "source": "iana"
+  },
+  "application/vnd.verimatrix.vcas": {
+    "source": "iana"
+  },
+  "application/vnd.vidsoft.vidconference": {
+    "source": "iana"
+  },
+  "application/vnd.visio": {
+    "source": "iana",
+    "extensions": ["vsd","vst","vss","vsw"]
+  },
+  "application/vnd.visionary": {
+    "source": "iana",
+    "extensions": ["vis"]
+  },
+  "application/vnd.vividence.scriptfile": {
+    "source": "iana"
+  },
+  "application/vnd.vsf": {
+    "source": "iana",
+    "extensions": ["vsf"]
+  },
+  "application/vnd.wap.sic": {
+    "source": "iana"
+  },
+  "application/vnd.wap.slc": {
+    "source": "iana"
+  },
+  "application/vnd.wap.wbxml": {
+    "source": "iana",
+    "extensions": ["wbxml"]
+  },
+  "application/vnd.wap.wmlc": {
+    "source": "iana",
+    "extensions": ["wmlc"]
+  },
+  "application/vnd.wap.wmlscriptc": {
+    "source": "iana",
+    "extensions": ["wmlsc"]
+  },
+  "application/vnd.webturbo": {
+    "source": "iana",
+    "extensions": ["wtb"]
+  },
+  "application/vnd.wfa.p2p": {
+    "source": "iana"
+  },
+  "application/vnd.wfa.wsc": {
+    "source": "iana"
+  },
+  "application/vnd.windows.devicepairing": {
+    "source": "iana"
+  },
+  "application/vnd.wmc": {
+    "source": "iana"
+  },
+  "application/vnd.wmf.bootstrap": {
+    "source": "iana"
+  },
+  "application/vnd.wolfram.mathematica": {
+    "source": "iana"
+  },
+  "application/vnd.wolfram.mathematica.package": {
+    "source": "iana"
+  },
+  "application/vnd.wolfram.player": {
+    "source": "iana",
+    "extensions": ["nbp"]
+  },
+  "application/vnd.wordperfect": {
+    "source": "iana",
+    "extensions": ["wpd"]
+  },
+  "application/vnd.wqd": {
+    "source": "iana",
+    "extensions": ["wqd"]
+  },
+  "application/vnd.wrq-hp3000-labelled": {
+    "source": "iana"
+  },
+  "application/vnd.wt.stf": {
+    "source": "iana",
+    "extensions": ["stf"]
+  },
+  "application/vnd.wv.csp+wbxml": {
+    "source": "iana"
+  },
+  "application/vnd.wv.csp+xml": {
+    "source": "iana"
+  },
+  "application/vnd.wv.ssp+xml": {
+    "source": "iana"
+  },
+  "application/vnd.xacml+json": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/vnd.xara": {
+    "source": "iana",
+    "extensions": ["xar"]
+  },
+  "application/vnd.xfdl": {
+    "source": "iana",
+    "extensions": ["xfdl"]
+  },
+  "application/vnd.xfdl.webform": {
+    "source": "iana"
+  },
+  "application/vnd.xmi+xml": {
+    "source": "iana"
+  },
+  "application/vnd.xmpie.cpkg": {
+    "source": "iana"
+  },
+  "application/vnd.xmpie.dpkg": {
+    "source": "iana"
+  },
+  "application/vnd.xmpie.plan": {
+    "source": "iana"
+  },
+  "application/vnd.xmpie.ppkg": {
+    "source": "iana"
+  },
+  "application/vnd.xmpie.xlim": {
+    "source": "iana"
+  },
+  "application/vnd.yamaha.hv-dic": {
+    "source": "iana",
+    "extensions": ["hvd"]
+  },
+  "application/vnd.yamaha.hv-script": {
+    "source": "iana",
+    "extensions": ["hvs"]
+  },
+  "application/vnd.yamaha.hv-voice": {
+    "source": "iana",
+    "extensions": ["hvp"]
+  },
+  "application/vnd.yamaha.openscoreformat": {
+    "source": "iana",
+    "extensions": ["osf"]
+  },
+  "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
+    "source": "iana",
+    "extensions": ["osfpvg"]
+  },
+  "application/vnd.yamaha.remote-setup": {
+    "source": "iana"
+  },
+  "application/vnd.yamaha.smaf-audio": {
+    "source": "iana",
+    "extensions": ["saf"]
+  },
+  "application/vnd.yamaha.smaf-phrase": {
+    "source": "iana",
+    "extensions": ["spf"]
+  },
+  "application/vnd.yamaha.through-ngn": {
+    "source": "iana"
+  },
+  "application/vnd.yamaha.tunnel-udpencap": {
+    "source": "iana"
+  },
+  "application/vnd.yaoweme": {
+    "source": "iana"
+  },
+  "application/vnd.yellowriver-custom-menu": {
+    "source": "iana",
+    "extensions": ["cmp"]
+  },
+  "application/vnd.zul": {
+    "source": "iana",
+    "extensions": ["zir","zirz"]
+  },
+  "application/vnd.zzazz.deck+xml": {
+    "source": "iana",
+    "extensions": ["zaz"]
+  },
+  "application/voicexml+xml": {
+    "source": "iana",
+    "extensions": ["vxml"]
+  },
+  "application/vq-rtcpxr": {
+    "source": "iana"
+  },
+  "application/watcherinfo+xml": {
+    "source": "iana"
+  },
+  "application/whoispp-query": {
+    "source": "iana"
+  },
+  "application/whoispp-response": {
+    "source": "iana"
+  },
+  "application/widget": {
+    "source": "iana",
+    "extensions": ["wgt"]
+  },
+  "application/winhlp": {
+    "source": "apache",
+    "extensions": ["hlp"]
+  },
+  "application/wita": {
+    "source": "iana"
+  },
+  "application/wordperfect5.1": {
+    "source": "iana"
+  },
+  "application/wsdl+xml": {
+    "source": "iana",
+    "extensions": ["wsdl"]
+  },
+  "application/wspolicy+xml": {
+    "source": "iana",
+    "extensions": ["wspolicy"]
+  },
+  "application/x-7z-compressed": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["7z"]
+  },
+  "application/x-abiword": {
+    "source": "apache",
+    "extensions": ["abw"]
+  },
+  "application/x-ace-compressed": {
+    "source": "apache",
+    "extensions": ["ace"]
+  },
+  "application/x-amf": {
+    "source": "apache"
+  },
+  "application/x-apple-diskimage": {
+    "source": "apache",
+    "extensions": ["dmg"]
+  },
+  "application/x-authorware-bin": {
+    "source": "apache",
+    "extensions": ["aab","x32","u32","vox"]
+  },
+  "application/x-authorware-map": {
+    "source": "apache",
+    "extensions": ["aam"]
+  },
+  "application/x-authorware-seg": {
+    "source": "apache",
+    "extensions": ["aas"]
+  },
+  "application/x-bcpio": {
+    "source": "apache",
+    "extensions": ["bcpio"]
+  },
+  "application/x-bdoc": {
+    "compressible": false,
+    "extensions": ["bdoc"]
+  },
+  "application/x-bittorrent": {
+    "source": "apache",
+    "extensions": ["torrent"]
+  },
+  "application/x-blorb": {
+    "source": "apache",
+    "extensions": ["blb","blorb"]
+  },
+  "application/x-bzip": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["bz"]
+  },
+  "application/x-bzip2": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["bz2","boz"]
+  },
+  "application/x-cbr": {
+    "source": "apache",
+    "extensions": ["cbr","cba","cbt","cbz","cb7"]
+  },
+  "application/x-cdlink": {
+    "source": "apache",
+    "extensions": ["vcd"]
+  },
+  "application/x-cfs-compressed": {
+    "source": "apache",
+    "extensions": ["cfs"]
+  },
+  "application/x-chat": {
+    "source": "apache",
+    "extensions": ["chat"]
+  },
+  "application/x-chess-pgn": {
+    "source": "apache",
+    "extensions": ["pgn"]
+  },
+  "application/x-chrome-extension": {
+    "extensions": ["crx"]
+  },
+  "application/x-cocoa": {
+    "source": "nginx",
+    "extensions": ["cco"]
+  },
+  "application/x-compress": {
+    "source": "apache"
+  },
+  "application/x-conference": {
+    "source": "apache",
+    "extensions": ["nsc"]
+  },
+  "application/x-cpio": {
+    "source": "apache",
+    "extensions": ["cpio"]
+  },
+  "application/x-csh": {
+    "source": "apache",
+    "extensions": ["csh"]
+  },
+  "application/x-deb": {
+    "compressible": false
+  },
+  "application/x-debian-package": {
+    "source": "apache",
+    "extensions": ["deb","udeb"]
+  },
+  "application/x-dgc-compressed": {
+    "source": "apache",
+    "extensions": ["dgc"]
+  },
+  "application/x-director": {
+    "source": "apache",
+    "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]
+  },
+  "application/x-doom": {
+    "source": "apache",
+    "extensions": ["wad"]
+  },
+  "application/x-dtbncx+xml": {
+    "source": "apache",
+    "extensions": ["ncx"]
+  },
+  "application/x-dtbook+xml": {
+    "source": "apache",
+    "extensions": ["dtb"]
+  },
+  "application/x-dtbresource+xml": {
+    "source": "apache",
+    "extensions": ["res"]
+  },
+  "application/x-dvi": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["dvi"]
+  },
+  "application/x-envoy": {
+    "source": "apache",
+    "extensions": ["evy"]
+  },
+  "application/x-eva": {
+    "source": "apache",
+    "extensions": ["eva"]
+  },
+  "application/x-font-bdf": {
+    "source": "apache",
+    "extensions": ["bdf"]
+  },
+  "application/x-font-dos": {
+    "source": "apache"
+  },
+  "application/x-font-framemaker": {
+    "source": "apache"
+  },
+  "application/x-font-ghostscript": {
+    "source": "apache",
+    "extensions": ["gsf"]
+  },
+  "application/x-font-libgrx": {
+    "source": "apache"
+  },
+  "application/x-font-linux-psf": {
+    "source": "apache",
+    "extensions": ["psf"]
+  },
+  "application/x-font-otf": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["otf"]
+  },
+  "application/x-font-pcf": {
+    "source": "apache",
+    "extensions": ["pcf"]
+  },
+  "application/x-font-snf": {
+    "source": "apache",
+    "extensions": ["snf"]
+  },
+  "application/x-font-speedo": {
+    "source": "apache"
+  },
+  "application/x-font-sunos-news": {
+    "source": "apache"
+  },
+  "application/x-font-ttf": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["ttf","ttc"]
+  },
+  "application/x-font-type1": {
+    "source": "apache",
+    "extensions": ["pfa","pfb","pfm","afm"]
+  },
+  "application/x-font-vfont": {
+    "source": "apache"
+  },
+  "application/x-freearc": {
+    "source": "apache",
+    "extensions": ["arc"]
+  },
+  "application/x-futuresplash": {
+    "source": "apache",
+    "extensions": ["spl"]
+  },
+  "application/x-gca-compressed": {
+    "source": "apache",
+    "extensions": ["gca"]
+  },
+  "application/x-glulx": {
+    "source": "apache",
+    "extensions": ["ulx"]
+  },
+  "application/x-gnumeric": {
+    "source": "apache",
+    "extensions": ["gnumeric"]
+  },
+  "application/x-gramps-xml": {
+    "source": "apache",
+    "extensions": ["gramps"]
+  },
+  "application/x-gtar": {
+    "source": "apache",
+    "extensions": ["gtar"]
+  },
+  "application/x-gzip": {
+    "source": "apache"
+  },
+  "application/x-hdf": {
+    "source": "apache",
+    "extensions": ["hdf"]
+  },
+  "application/x-httpd-php": {
+    "compressible": true,
+    "extensions": ["php"]
+  },
+  "application/x-install-instructions": {
+    "source": "apache",
+    "extensions": ["install"]
+  },
+  "application/x-iso9660-image": {
+    "source": "apache",
+    "extensions": ["iso"]
+  },
+  "application/x-java-archive-diff": {
+    "source": "nginx",
+    "extensions": ["jardiff"]
+  },
+  "application/x-java-jnlp-file": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["jnlp"]
+  },
+  "application/x-javascript": {
+    "compressible": true
+  },
+  "application/x-latex": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["latex"]
+  },
+  "application/x-lua-bytecode": {
+    "extensions": ["luac"]
+  },
+  "application/x-lzh-compressed": {
+    "source": "apache",
+    "extensions": ["lzh","lha"]
+  },
+  "application/x-makeself": {
+    "source": "nginx",
+    "extensions": ["run"]
+  },
+  "application/x-mie": {
+    "source": "apache",
+    "extensions": ["mie"]
+  },
+  "application/x-mobipocket-ebook": {
+    "source": "apache",
+    "extensions": ["prc","mobi"]
+  },
+  "application/x-mpegurl": {
+    "compressible": false
+  },
+  "application/x-ms-application": {
+    "source": "apache",
+    "extensions": ["application"]
+  },
+  "application/x-ms-shortcut": {
+    "source": "apache",
+    "extensions": ["lnk"]
+  },
+  "application/x-ms-wmd": {
+    "source": "apache",
+    "extensions": ["wmd"]
+  },
+  "application/x-ms-wmz": {
+    "source": "apache",
+    "extensions": ["wmz"]
+  },
+  "application/x-ms-xbap": {
+    "source": "apache",
+    "extensions": ["xbap"]
+  },
+  "application/x-msaccess": {
+    "source": "apache",
+    "extensions": ["mdb"]
+  },
+  "application/x-msbinder": {
+    "source": "apache",
+    "extensions": ["obd"]
+  },
+  "application/x-mscardfile": {
+    "source": "apache",
+    "extensions": ["crd"]
+  },
+  "application/x-msclip": {
+    "source": "apache",
+    "extensions": ["clp"]
+  },
+  "application/x-msdos-program": {
+    "extensions": ["exe"]
+  },
+  "application/x-msdownload": {
+    "source": "apache",
+    "extensions": ["exe","dll","com","bat","msi"]
+  },
+  "application/x-msmediaview": {
+    "source": "apache",
+    "extensions": ["mvb","m13","m14"]
+  },
+  "application/x-msmetafile": {
+    "source": "apache",
+    "extensions": ["wmf","wmz","emf","emz"]
+  },
+  "application/x-msmoney": {
+    "source": "apache",
+    "extensions": ["mny"]
+  },
+  "application/x-mspublisher": {
+    "source": "apache",
+    "extensions": ["pub"]
+  },
+  "application/x-msschedule": {
+    "source": "apache",
+    "extensions": ["scd"]
+  },
+  "application/x-msterminal": {
+    "source": "apache",
+    "extensions": ["trm"]
+  },
+  "application/x-mswrite": {
+    "source": "apache",
+    "extensions": ["wri"]
+  },
+  "application/x-netcdf": {
+    "source": "apache",
+    "extensions": ["nc","cdf"]
+  },
+  "application/x-ns-proxy-autoconfig": {
+    "compressible": true,
+    "extensions": ["pac"]
+  },
+  "application/x-nzb": {
+    "source": "apache",
+    "extensions": ["nzb"]
+  },
+  "application/x-perl": {
+    "source": "nginx",
+    "extensions": ["pl","pm"]
+  },
+  "application/x-pilot": {
+    "source": "nginx",
+    "extensions": ["prc","pdb"]
+  },
+  "application/x-pkcs12": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["p12","pfx"]
+  },
+  "application/x-pkcs7-certificates": {
+    "source": "apache",
+    "extensions": ["p7b","spc"]
+  },
+  "application/x-pkcs7-certreqresp": {
+    "source": "apache",
+    "extensions": ["p7r"]
+  },
+  "application/x-rar-compressed": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["rar"]
+  },
+  "application/x-redhat-package-manager": {
+    "source": "nginx",
+    "extensions": ["rpm"]
+  },
+  "application/x-research-info-systems": {
+    "source": "apache",
+    "extensions": ["ris"]
+  },
+  "application/x-sea": {
+    "source": "nginx",
+    "extensions": ["sea"]
+  },
+  "application/x-sh": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["sh"]
+  },
+  "application/x-shar": {
+    "source": "apache",
+    "extensions": ["shar"]
+  },
+  "application/x-shockwave-flash": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["swf"]
+  },
+  "application/x-silverlight-app": {
+    "source": "apache",
+    "extensions": ["xap"]
+  },
+  "application/x-sql": {
+    "source": "apache",
+    "extensions": ["sql"]
+  },
+  "application/x-stuffit": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["sit"]
+  },
+  "application/x-stuffitx": {
+    "source": "apache",
+    "extensions": ["sitx"]
+  },
+  "application/x-subrip": {
+    "source": "apache",
+    "extensions": ["srt"]
+  },
+  "application/x-sv4cpio": {
+    "source": "apache",
+    "extensions": ["sv4cpio"]
+  },
+  "application/x-sv4crc": {
+    "source": "apache",
+    "extensions": ["sv4crc"]
+  },
+  "application/x-t3vm-image": {
+    "source": "apache",
+    "extensions": ["t3"]
+  },
+  "application/x-tads": {
+    "source": "apache",
+    "extensions": ["gam"]
+  },
+  "application/x-tar": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["tar"]
+  },
+  "application/x-tcl": {
+    "source": "apache",
+    "extensions": ["tcl","tk"]
+  },
+  "application/x-tex": {
+    "source": "apache",
+    "extensions": ["tex"]
+  },
+  "application/x-tex-tfm": {
+    "source": "apache",
+    "extensions": ["tfm"]
+  },
+  "application/x-texinfo": {
+    "source": "apache",
+    "extensions": ["texinfo","texi"]
+  },
+  "application/x-tgif": {
+    "source": "apache",
+    "extensions": ["obj"]
+  },
+  "application/x-ustar": {
+    "source": "apache",
+    "extensions": ["ustar"]
+  },
+  "application/x-wais-source": {
+    "source": "apache",
+    "extensions": ["src"]
+  },
+  "application/x-web-app-manifest+json": {
+    "compressible": true,
+    "extensions": ["webapp"]
+  },
+  "application/x-www-form-urlencoded": {
+    "source": "iana",
+    "compressible": true
+  },
+  "application/x-x509-ca-cert": {
+    "source": "apache",
+    "extensions": ["der","crt","pem"]
+  },
+  "application/x-xfig": {
+    "source": "apache",
+    "extensions": ["fig"]
+  },
+  "application/x-xliff+xml": {
+    "source": "apache",
+    "extensions": ["xlf"]
+  },
+  "application/x-xpinstall": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["xpi"]
+  },
+  "application/x-xz": {
+    "source": "apache",
+    "extensions": ["xz"]
+  },
+  "application/x-zmachine": {
+    "source": "apache",
+    "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"]
+  },
+  "application/x400-bp": {
+    "source": "iana"
+  },
+  "application/xacml+xml": {
+    "source": "iana"
+  },
+  "application/xaml+xml": {
+    "source": "apache",
+    "extensions": ["xaml"]
+  },
+  "application/xcap-att+xml": {
+    "source": "iana"
+  },
+  "application/xcap-caps+xml": {
+    "source": "iana"
+  },
+  "application/xcap-diff+xml": {
+    "source": "iana",
+    "extensions": ["xdf"]
+  },
+  "application/xcap-el+xml": {
+    "source": "iana"
+  },
+  "application/xcap-error+xml": {
+    "source": "iana"
+  },
+  "application/xcap-ns+xml": {
+    "source": "iana"
+  },
+  "application/xcon-conference-info+xml": {
+    "source": "iana"
+  },
+  "application/xcon-conference-info-diff+xml": {
+    "source": "iana"
+  },
+  "application/xenc+xml": {
+    "source": "iana",
+    "extensions": ["xenc"]
+  },
+  "application/xhtml+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["xhtml","xht"]
+  },
+  "application/xhtml-voice+xml": {
+    "source": "apache"
+  },
+  "application/xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["xml","xsl","xsd"]
+  },
+  "application/xml-dtd": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["dtd"]
+  },
+  "application/xml-external-parsed-entity": {
+    "source": "iana"
+  },
+  "application/xml-patch+xml": {
+    "source": "iana"
+  },
+  "application/xmpp+xml": {
+    "source": "iana"
+  },
+  "application/xop+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["xop"]
+  },
+  "application/xproc+xml": {
+    "source": "apache",
+    "extensions": ["xpl"]
+  },
+  "application/xslt+xml": {
+    "source": "iana",
+    "extensions": ["xslt"]
+  },
+  "application/xspf+xml": {
+    "source": "apache",
+    "extensions": ["xspf"]
+  },
+  "application/xv+xml": {
+    "source": "iana",
+    "extensions": ["mxml","xhvml","xvml","xvm"]
+  },
+  "application/yang": {
+    "source": "iana",
+    "extensions": ["yang"]
+  },
+  "application/yin+xml": {
+    "source": "iana",
+    "extensions": ["yin"]
+  },
+  "application/zip": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["zip"]
+  },
+  "application/zlib": {
+    "source": "iana"
+  },
+  "audio/1d-interleaved-parityfec": {
+    "source": "iana"
+  },
+  "audio/32kadpcm": {
+    "source": "iana"
+  },
+  "audio/3gpp": {
+    "source": "iana"
+  },
+  "audio/3gpp2": {
+    "source": "iana"
+  },
+  "audio/ac3": {
+    "source": "iana"
+  },
+  "audio/adpcm": {
+    "source": "apache",
+    "extensions": ["adp"]
+  },
+  "audio/amr": {
+    "source": "iana"
+  },
+  "audio/amr-wb": {
+    "source": "iana"
+  },
+  "audio/amr-wb+": {
+    "source": "iana"
+  },
+  "audio/aptx": {
+    "source": "iana"
+  },
+  "audio/asc": {
+    "source": "iana"
+  },
+  "audio/atrac-advanced-lossless": {
+    "source": "iana"
+  },
+  "audio/atrac-x": {
+    "source": "iana"
+  },
+  "audio/atrac3": {
+    "source": "iana"
+  },
+  "audio/basic": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["au","snd"]
+  },
+  "audio/bv16": {
+    "source": "iana"
+  },
+  "audio/bv32": {
+    "source": "iana"
+  },
+  "audio/clearmode": {
+    "source": "iana"
+  },
+  "audio/cn": {
+    "source": "iana"
+  },
+  "audio/dat12": {
+    "source": "iana"
+  },
+  "audio/dls": {
+    "source": "iana"
+  },
+  "audio/dsr-es201108": {
+    "source": "iana"
+  },
+  "audio/dsr-es202050": {
+    "source": "iana"
+  },
+  "audio/dsr-es202211": {
+    "source": "iana"
+  },
+  "audio/dsr-es202212": {
+    "source": "iana"
+  },
+  "audio/dv": {
+    "source": "iana"
+  },
+  "audio/dvi4": {
+    "source": "iana"
+  },
+  "audio/eac3": {
+    "source": "iana"
+  },
+  "audio/encaprtp": {
+    "source": "iana"
+  },
+  "audio/evrc": {
+    "source": "iana"
+  },
+  "audio/evrc-qcp": {
+    "source": "iana"
+  },
+  "audio/evrc0": {
+    "source": "iana"
+  },
+  "audio/evrc1": {
+    "source": "iana"
+  },
+  "audio/evrcb": {
+    "source": "iana"
+  },
+  "audio/evrcb0": {
+    "source": "iana"
+  },
+  "audio/evrcb1": {
+    "source": "iana"
+  },
+  "audio/evrcnw": {
+    "source": "iana"
+  },
+  "audio/evrcnw0": {
+    "source": "iana"
+  },
+  "audio/evrcnw1": {
+    "source": "iana"
+  },
+  "audio/evrcwb": {
+    "source": "iana"
+  },
+  "audio/evrcwb0": {
+    "source": "iana"
+  },
+  "audio/evrcwb1": {
+    "source": "iana"
+  },
+  "audio/evs": {
+    "source": "iana"
+  },
+  "audio/fwdred": {
+    "source": "iana"
+  },
+  "audio/g711-0": {
+    "source": "iana"
+  },
+  "audio/g719": {
+    "source": "iana"
+  },
+  "audio/g722": {
+    "source": "iana"
+  },
+  "audio/g7221": {
+    "source": "iana"
+  },
+  "audio/g723": {
+    "source": "iana"
+  },
+  "audio/g726-16": {
+    "source": "iana"
+  },
+  "audio/g726-24": {
+    "source": "iana"
+  },
+  "audio/g726-32": {
+    "source": "iana"
+  },
+  "audio/g726-40": {
+    "source": "iana"
+  },
+  "audio/g728": {
+    "source": "iana"
+  },
+  "audio/g729": {
+    "source": "iana"
+  },
+  "audio/g7291": {
+    "source": "iana"
+  },
+  "audio/g729d": {
+    "source": "iana"
+  },
+  "audio/g729e": {
+    "source": "iana"
+  },
+  "audio/gsm": {
+    "source": "iana"
+  },
+  "audio/gsm-efr": {
+    "source": "iana"
+  },
+  "audio/gsm-hr-08": {
+    "source": "iana"
+  },
+  "audio/ilbc": {
+    "source": "iana"
+  },
+  "audio/ip-mr_v2.5": {
+    "source": "iana"
+  },
+  "audio/isac": {
+    "source": "apache"
+  },
+  "audio/l16": {
+    "source": "iana"
+  },
+  "audio/l20": {
+    "source": "iana"
+  },
+  "audio/l24": {
+    "source": "iana",
+    "compressible": false
+  },
+  "audio/l8": {
+    "source": "iana"
+  },
+  "audio/lpc": {
+    "source": "iana"
+  },
+  "audio/midi": {
+    "source": "apache",
+    "extensions": ["mid","midi","kar","rmi"]
+  },
+  "audio/mobile-xmf": {
+    "source": "iana"
+  },
+  "audio/mp4": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["mp4a","m4a"]
+  },
+  "audio/mp4a-latm": {
+    "source": "iana"
+  },
+  "audio/mpa": {
+    "source": "iana"
+  },
+  "audio/mpa-robust": {
+    "source": "iana"
+  },
+  "audio/mpeg": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"]
+  },
+  "audio/mpeg4-generic": {
+    "source": "iana"
+  },
+  "audio/musepack": {
+    "source": "apache"
+  },
+  "audio/ogg": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["oga","ogg","spx"]
+  },
+  "audio/opus": {
+    "source": "iana"
+  },
+  "audio/parityfec": {
+    "source": "iana"
+  },
+  "audio/pcma": {
+    "source": "iana"
+  },
+  "audio/pcma-wb": {
+    "source": "iana"
+  },
+  "audio/pcmu": {
+    "source": "iana"
+  },
+  "audio/pcmu-wb": {
+    "source": "iana"
+  },
+  "audio/prs.sid": {
+    "source": "iana"
+  },
+  "audio/qcelp": {
+    "source": "iana"
+  },
+  "audio/raptorfec": {
+    "source": "iana"
+  },
+  "audio/red": {
+    "source": "iana"
+  },
+  "audio/rtp-enc-aescm128": {
+    "source": "iana"
+  },
+  "audio/rtp-midi": {
+    "source": "iana"
+  },
+  "audio/rtploopback": {
+    "source": "iana"
+  },
+  "audio/rtx": {
+    "source": "iana"
+  },
+  "audio/s3m": {
+    "source": "apache",
+    "extensions": ["s3m"]
+  },
+  "audio/silk": {
+    "source": "apache",
+    "extensions": ["sil"]
+  },
+  "audio/smv": {
+    "source": "iana"
+  },
+  "audio/smv-qcp": {
+    "source": "iana"
+  },
+  "audio/smv0": {
+    "source": "iana"
+  },
+  "audio/sp-midi": {
+    "source": "iana"
+  },
+  "audio/speex": {
+    "source": "iana"
+  },
+  "audio/t140c": {
+    "source": "iana"
+  },
+  "audio/t38": {
+    "source": "iana"
+  },
+  "audio/telephone-event": {
+    "source": "iana"
+  },
+  "audio/tone": {
+    "source": "iana"
+  },
+  "audio/uemclip": {
+    "source": "iana"
+  },
+  "audio/ulpfec": {
+    "source": "iana"
+  },
+  "audio/vdvi": {
+    "source": "iana"
+  },
+  "audio/vmr-wb": {
+    "source": "iana"
+  },
+  "audio/vnd.3gpp.iufp": {
+    "source": "iana"
+  },
+  "audio/vnd.4sb": {
+    "source": "iana"
+  },
+  "audio/vnd.audiokoz": {
+    "source": "iana"
+  },
+  "audio/vnd.celp": {
+    "source": "iana"
+  },
+  "audio/vnd.cisco.nse": {
+    "source": "iana"
+  },
+  "audio/vnd.cmles.radio-events": {
+    "source": "iana"
+  },
+  "audio/vnd.cns.anp1": {
+    "source": "iana"
+  },
+  "audio/vnd.cns.inf1": {
+    "source": "iana"
+  },
+  "audio/vnd.dece.audio": {
+    "source": "iana",
+    "extensions": ["uva","uvva"]
+  },
+  "audio/vnd.digital-winds": {
+    "source": "iana",
+    "extensions": ["eol"]
+  },
+  "audio/vnd.dlna.adts": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.heaac.1": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.heaac.2": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.mlp": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.mps": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.pl2": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.pl2x": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.pl2z": {
+    "source": "iana"
+  },
+  "audio/vnd.dolby.pulse.1": {
+    "source": "iana"
+  },
+  "audio/vnd.dra": {
+    "source": "iana",
+    "extensions": ["dra"]
+  },
+  "audio/vnd.dts": {
+    "source": "iana",
+    "extensions": ["dts"]
+  },
+  "audio/vnd.dts.hd": {
+    "source": "iana",
+    "extensions": ["dtshd"]
+  },
+  "audio/vnd.dvb.file": {
+    "source": "iana"
+  },
+  "audio/vnd.everad.plj": {
+    "source": "iana"
+  },
+  "audio/vnd.hns.audio": {
+    "source": "iana"
+  },
+  "audio/vnd.lucent.voice": {
+    "source": "iana",
+    "extensions": ["lvp"]
+  },
+  "audio/vnd.ms-playready.media.pya": {
+    "source": "iana",
+    "extensions": ["pya"]
+  },
+  "audio/vnd.nokia.mobile-xmf": {
+    "source": "iana"
+  },
+  "audio/vnd.nortel.vbk": {
+    "source": "iana"
+  },
+  "audio/vnd.nuera.ecelp4800": {
+    "source": "iana",
+    "extensions": ["ecelp4800"]
+  },
+  "audio/vnd.nuera.ecelp7470": {
+    "source": "iana",
+    "extensions": ["ecelp7470"]
+  },
+  "audio/vnd.nuera.ecelp9600": {
+    "source": "iana",
+    "extensions": ["ecelp9600"]
+  },
+  "audio/vnd.octel.sbc": {
+    "source": "iana"
+  },
+  "audio/vnd.qcelp": {
+    "source": "iana"
+  },
+  "audio/vnd.rhetorex.32kadpcm": {
+    "source": "iana"
+  },
+  "audio/vnd.rip": {
+    "source": "iana",
+    "extensions": ["rip"]
+  },
+  "audio/vnd.rn-realaudio": {
+    "compressible": false
+  },
+  "audio/vnd.sealedmedia.softseal.mpeg": {
+    "source": "iana"
+  },
+  "audio/vnd.vmx.cvsd": {
+    "source": "iana"
+  },
+  "audio/vnd.wave": {
+    "compressible": false
+  },
+  "audio/vorbis": {
+    "source": "iana",
+    "compressible": false
+  },
+  "audio/vorbis-config": {
+    "source": "iana"
+  },
+  "audio/wav": {
+    "compressible": false,
+    "extensions": ["wav"]
+  },
+  "audio/wave": {
+    "compressible": false,
+    "extensions": ["wav"]
+  },
+  "audio/webm": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["weba"]
+  },
+  "audio/x-aac": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["aac"]
+  },
+  "audio/x-aiff": {
+    "source": "apache",
+    "extensions": ["aif","aiff","aifc"]
+  },
+  "audio/x-caf": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["caf"]
+  },
+  "audio/x-flac": {
+    "source": "apache",
+    "extensions": ["flac"]
+  },
+  "audio/x-m4a": {
+    "source": "nginx",
+    "extensions": ["m4a"]
+  },
+  "audio/x-matroska": {
+    "source": "apache",
+    "extensions": ["mka"]
+  },
+  "audio/x-mpegurl": {
+    "source": "apache",
+    "extensions": ["m3u"]
+  },
+  "audio/x-ms-wax": {
+    "source": "apache",
+    "extensions": ["wax"]
+  },
+  "audio/x-ms-wma": {
+    "source": "apache",
+    "extensions": ["wma"]
+  },
+  "audio/x-pn-realaudio": {
+    "source": "apache",
+    "extensions": ["ram","ra"]
+  },
+  "audio/x-pn-realaudio-plugin": {
+    "source": "apache",
+    "extensions": ["rmp"]
+  },
+  "audio/x-realaudio": {
+    "source": "nginx",
+    "extensions": ["ra"]
+  },
+  "audio/x-tta": {
+    "source": "apache"
+  },
+  "audio/x-wav": {
+    "source": "apache",
+    "extensions": ["wav"]
+  },
+  "audio/xm": {
+    "source": "apache",
+    "extensions": ["xm"]
+  },
+  "chemical/x-cdx": {
+    "source": "apache",
+    "extensions": ["cdx"]
+  },
+  "chemical/x-cif": {
+    "source": "apache",
+    "extensions": ["cif"]
+  },
+  "chemical/x-cmdf": {
+    "source": "apache",
+    "extensions": ["cmdf"]
+  },
+  "chemical/x-cml": {
+    "source": "apache",
+    "extensions": ["cml"]
+  },
+  "chemical/x-csml": {
+    "source": "apache",
+    "extensions": ["csml"]
+  },
+  "chemical/x-pdb": {
+    "source": "apache"
+  },
+  "chemical/x-xyz": {
+    "source": "apache",
+    "extensions": ["xyz"]
+  },
+  "font/opentype": {
+    "compressible": true,
+    "extensions": ["otf"]
+  },
+  "image/bmp": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["bmp"]
+  },
+  "image/cgm": {
+    "source": "iana",
+    "extensions": ["cgm"]
+  },
+  "image/fits": {
+    "source": "iana"
+  },
+  "image/g3fax": {
+    "source": "iana",
+    "extensions": ["g3"]
+  },
+  "image/gif": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["gif"]
+  },
+  "image/ief": {
+    "source": "iana",
+    "extensions": ["ief"]
+  },
+  "image/jp2": {
+    "source": "iana"
+  },
+  "image/jpeg": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["jpeg","jpg","jpe"]
+  },
+  "image/jpm": {
+    "source": "iana"
+  },
+  "image/jpx": {
+    "source": "iana"
+  },
+  "image/ktx": {
+    "source": "iana",
+    "extensions": ["ktx"]
+  },
+  "image/naplps": {
+    "source": "iana"
+  },
+  "image/pjpeg": {
+    "compressible": false
+  },
+  "image/png": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["png"]
+  },
+  "image/prs.btif": {
+    "source": "iana",
+    "extensions": ["btif"]
+  },
+  "image/prs.pti": {
+    "source": "iana"
+  },
+  "image/pwg-raster": {
+    "source": "iana"
+  },
+  "image/sgi": {
+    "source": "apache",
+    "extensions": ["sgi"]
+  },
+  "image/svg+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["svg","svgz"]
+  },
+  "image/t38": {
+    "source": "iana"
+  },
+  "image/tiff": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["tiff","tif"]
+  },
+  "image/tiff-fx": {
+    "source": "iana"
+  },
+  "image/vnd.adobe.photoshop": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["psd"]
+  },
+  "image/vnd.airzip.accelerator.azv": {
+    "source": "iana"
+  },
+  "image/vnd.cns.inf2": {
+    "source": "iana"
+  },
+  "image/vnd.dece.graphic": {
+    "source": "iana",
+    "extensions": ["uvi","uvvi","uvg","uvvg"]
+  },
+  "image/vnd.djvu": {
+    "source": "iana",
+    "extensions": ["djvu","djv"]
+  },
+  "image/vnd.dvb.subtitle": {
+    "source": "iana",
+    "extensions": ["sub"]
+  },
+  "image/vnd.dwg": {
+    "source": "iana",
+    "extensions": ["dwg"]
+  },
+  "image/vnd.dxf": {
+    "source": "iana",
+    "extensions": ["dxf"]
+  },
+  "image/vnd.fastbidsheet": {
+    "source": "iana",
+    "extensions": ["fbs"]
+  },
+  "image/vnd.fpx": {
+    "source": "iana",
+    "extensions": ["fpx"]
+  },
+  "image/vnd.fst": {
+    "source": "iana",
+    "extensions": ["fst"]
+  },
+  "image/vnd.fujixerox.edmics-mmr": {
+    "source": "iana",
+    "extensions": ["mmr"]
+  },
+  "image/vnd.fujixerox.edmics-rlc": {
+    "source": "iana",
+    "extensions": ["rlc"]
+  },
+  "image/vnd.globalgraphics.pgb": {
+    "source": "iana"
+  },
+  "image/vnd.microsoft.icon": {
+    "source": "iana"
+  },
+  "image/vnd.mix": {
+    "source": "iana"
+  },
+  "image/vnd.mozilla.apng": {
+    "source": "iana"
+  },
+  "image/vnd.ms-modi": {
+    "source": "iana",
+    "extensions": ["mdi"]
+  },
+  "image/vnd.ms-photo": {
+    "source": "apache",
+    "extensions": ["wdp"]
+  },
+  "image/vnd.net-fpx": {
+    "source": "iana",
+    "extensions": ["npx"]
+  },
+  "image/vnd.radiance": {
+    "source": "iana"
+  },
+  "image/vnd.sealed.png": {
+    "source": "iana"
+  },
+  "image/vnd.sealedmedia.softseal.gif": {
+    "source": "iana"
+  },
+  "image/vnd.sealedmedia.softseal.jpg": {
+    "source": "iana"
+  },
+  "image/vnd.svf": {
+    "source": "iana"
+  },
+  "image/vnd.tencent.tap": {
+    "source": "iana"
+  },
+  "image/vnd.valve.source.texture": {
+    "source": "iana"
+  },
+  "image/vnd.wap.wbmp": {
+    "source": "iana",
+    "extensions": ["wbmp"]
+  },
+  "image/vnd.xiff": {
+    "source": "iana",
+    "extensions": ["xif"]
+  },
+  "image/vnd.zbrush.pcx": {
+    "source": "iana"
+  },
+  "image/webp": {
+    "source": "apache",
+    "extensions": ["webp"]
+  },
+  "image/x-3ds": {
+    "source": "apache",
+    "extensions": ["3ds"]
+  },
+  "image/x-cmu-raster": {
+    "source": "apache",
+    "extensions": ["ras"]
+  },
+  "image/x-cmx": {
+    "source": "apache",
+    "extensions": ["cmx"]
+  },
+  "image/x-freehand": {
+    "source": "apache",
+    "extensions": ["fh","fhc","fh4","fh5","fh7"]
+  },
+  "image/x-icon": {
+    "source": "apache",
+    "compressible": true,
+    "extensions": ["ico"]
+  },
+  "image/x-jng": {
+    "source": "nginx",
+    "extensions": ["jng"]
+  },
+  "image/x-mrsid-image": {
+    "source": "apache",
+    "extensions": ["sid"]
+  },
+  "image/x-ms-bmp": {
+    "source": "nginx",
+    "compressible": true,
+    "extensions": ["bmp"]
+  },
+  "image/x-pcx": {
+    "source": "apache",
+    "extensions": ["pcx"]
+  },
+  "image/x-pict": {
+    "source": "apache",
+    "extensions": ["pic","pct"]
+  },
+  "image/x-portable-anymap": {
+    "source": "apache",
+    "extensions": ["pnm"]
+  },
+  "image/x-portable-bitmap": {
+    "source": "apache",
+    "extensions": ["pbm"]
+  },
+  "image/x-portable-graymap": {
+    "source": "apache",
+    "extensions": ["pgm"]
+  },
+  "image/x-portable-pixmap": {
+    "source": "apache",
+    "extensions": ["ppm"]
+  },
+  "image/x-rgb": {
+    "source": "apache",
+    "extensions": ["rgb"]
+  },
+  "image/x-tga": {
+    "source": "apache",
+    "extensions": ["tga"]
+  },
+  "image/x-xbitmap": {
+    "source": "apache",
+    "extensions": ["xbm"]
+  },
+  "image/x-xcf": {
+    "compressible": false
+  },
+  "image/x-xpixmap": {
+    "source": "apache",
+    "extensions": ["xpm"]
+  },
+  "image/x-xwindowdump": {
+    "source": "apache",
+    "extensions": ["xwd"]
+  },
+  "message/cpim": {
+    "source": "iana"
+  },
+  "message/delivery-status": {
+    "source": "iana"
+  },
+  "message/disposition-notification": {
+    "source": "iana"
+  },
+  "message/external-body": {
+    "source": "iana"
+  },
+  "message/feedback-report": {
+    "source": "iana"
+  },
+  "message/global": {
+    "source": "iana"
+  },
+  "message/global-delivery-status": {
+    "source": "iana"
+  },
+  "message/global-disposition-notification": {
+    "source": "iana"
+  },
+  "message/global-headers": {
+    "source": "iana"
+  },
+  "message/http": {
+    "source": "iana",
+    "compressible": false
+  },
+  "message/imdn+xml": {
+    "source": "iana",
+    "compressible": true
+  },
+  "message/news": {
+    "source": "iana"
+  },
+  "message/partial": {
+    "source": "iana",
+    "compressible": false
+  },
+  "message/rfc822": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["eml","mime"]
+  },
+  "message/s-http": {
+    "source": "iana"
+  },
+  "message/sip": {
+    "source": "iana"
+  },
+  "message/sipfrag": {
+    "source": "iana"
+  },
+  "message/tracking-status": {
+    "source": "iana"
+  },
+  "message/vnd.si.simp": {
+    "source": "iana"
+  },
+  "message/vnd.wfa.wsc": {
+    "source": "iana"
+  },
+  "model/iges": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["igs","iges"]
+  },
+  "model/mesh": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["msh","mesh","silo"]
+  },
+  "model/vnd.collada+xml": {
+    "source": "iana",
+    "extensions": ["dae"]
+  },
+  "model/vnd.dwf": {
+    "source": "iana",
+    "extensions": ["dwf"]
+  },
+  "model/vnd.flatland.3dml": {
+    "source": "iana"
+  },
+  "model/vnd.gdl": {
+    "source": "iana",
+    "extensions": ["gdl"]
+  },
+  "model/vnd.gs-gdl": {
+    "source": "apache"
+  },
+  "model/vnd.gs.gdl": {
+    "source": "iana"
+  },
+  "model/vnd.gtw": {
+    "source": "iana",
+    "extensions": ["gtw"]
+  },
+  "model/vnd.moml+xml": {
+    "source": "iana"
+  },
+  "model/vnd.mts": {
+    "source": "iana",
+    "extensions": ["mts"]
+  },
+  "model/vnd.opengex": {
+    "source": "iana"
+  },
+  "model/vnd.parasolid.transmit.binary": {
+    "source": "iana"
+  },
+  "model/vnd.parasolid.transmit.text": {
+    "source": "iana"
+  },
+  "model/vnd.valve.source.compiled-map": {
+    "source": "iana"
+  },
+  "model/vnd.vtu": {
+    "source": "iana",
+    "extensions": ["vtu"]
+  },
+  "model/vrml": {
+    "source": "iana",
+    "compressible": false,
+    "extensions": ["wrl","vrml"]
+  },
+  "model/x3d+binary": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["x3db","x3dbz"]
+  },
+  "model/x3d+fastinfoset": {
+    "source": "iana"
+  },
+  "model/x3d+vrml": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["x3dv","x3dvz"]
+  },
+  "model/x3d+xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["x3d","x3dz"]
+  },
+  "model/x3d-vrml": {
+    "source": "iana"
+  },
+  "multipart/alternative": {
+    "source": "iana",
+    "compressible": false
+  },
+  "multipart/appledouble": {
+    "source": "iana"
+  },
+  "multipart/byteranges": {
+    "source": "iana"
+  },
+  "multipart/digest": {
+    "source": "iana"
+  },
+  "multipart/encrypted": {
+    "source": "iana",
+    "compressible": false
+  },
+  "multipart/form-data": {
+    "source": "iana",
+    "compressible": false
+  },
+  "multipart/header-set": {
+    "source": "iana"
+  },
+  "multipart/mixed": {
+    "source": "iana",
+    "compressible": false
+  },
+  "multipart/parallel": {
+    "source": "iana"
+  },
+  "multipart/related": {
+    "source": "iana",
+    "compressible": false
+  },
+  "multipart/report": {
+    "source": "iana"
+  },
+  "multipart/signed": {
+    "source": "iana",
+    "compressible": false
+  },
+  "multipart/voice-message": {
+    "source": "iana"
+  },
+  "multipart/x-mixed-replace": {
+    "source": "iana"
+  },
+  "text/1d-interleaved-parityfec": {
+    "source": "iana"
+  },
+  "text/cache-manifest": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["appcache","manifest"]
+  },
+  "text/calendar": {
+    "source": "iana",
+    "extensions": ["ics","ifb"]
+  },
+  "text/calender": {
+    "compressible": true
+  },
+  "text/cmd": {
+    "compressible": true
+  },
+  "text/coffeescript": {
+    "extensions": ["coffee","litcoffee"]
+  },
+  "text/css": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["css"]
+  },
+  "text/csv": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["csv"]
+  },
+  "text/csv-schema": {
+    "source": "iana"
+  },
+  "text/directory": {
+    "source": "iana"
+  },
+  "text/dns": {
+    "source": "iana"
+  },
+  "text/ecmascript": {
+    "source": "iana"
+  },
+  "text/encaprtp": {
+    "source": "iana"
+  },
+  "text/enriched": {
+    "source": "iana"
+  },
+  "text/fwdred": {
+    "source": "iana"
+  },
+  "text/grammar-ref-list": {
+    "source": "iana"
+  },
+  "text/hjson": {
+    "extensions": ["hjson"]
+  },
+  "text/html": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["html","htm","shtml"]
+  },
+  "text/jade": {
+    "extensions": ["jade"]
+  },
+  "text/javascript": {
+    "source": "iana",
+    "compressible": true
+  },
+  "text/jcr-cnd": {
+    "source": "iana"
+  },
+  "text/jsx": {
+    "compressible": true,
+    "extensions": ["jsx"]
+  },
+  "text/less": {
+    "extensions": ["less"]
+  },
+  "text/markdown": {
+    "source": "iana"
+  },
+  "text/mathml": {
+    "source": "nginx",
+    "extensions": ["mml"]
+  },
+  "text/mizar": {
+    "source": "iana"
+  },
+  "text/n3": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["n3"]
+  },
+  "text/parameters": {
+    "source": "iana"
+  },
+  "text/parityfec": {
+    "source": "iana"
+  },
+  "text/plain": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["txt","text","conf","def","list","log","in","ini"]
+  },
+  "text/provenance-notation": {
+    "source": "iana"
+  },
+  "text/prs.fallenstein.rst": {
+    "source": "iana"
+  },
+  "text/prs.lines.tag": {
+    "source": "iana",
+    "extensions": ["dsc"]
+  },
+  "text/raptorfec": {
+    "source": "iana"
+  },
+  "text/red": {
+    "source": "iana"
+  },
+  "text/rfc822-headers": {
+    "source": "iana"
+  },
+  "text/richtext": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["rtx"]
+  },
+  "text/rtf": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["rtf"]
+  },
+  "text/rtp-enc-aescm128": {
+    "source": "iana"
+  },
+  "text/rtploopback": {
+    "source": "iana"
+  },
+  "text/rtx": {
+    "source": "iana"
+  },
+  "text/sgml": {
+    "source": "iana",
+    "extensions": ["sgml","sgm"]
+  },
+  "text/stylus": {
+    "extensions": ["stylus","styl"]
+  },
+  "text/t140": {
+    "source": "iana"
+  },
+  "text/tab-separated-values": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["tsv"]
+  },
+  "text/troff": {
+    "source": "iana",
+    "extensions": ["t","tr","roff","man","me","ms"]
+  },
+  "text/turtle": {
+    "source": "iana",
+    "extensions": ["ttl"]
+  },
+  "text/ulpfec": {
+    "source": "iana"
+  },
+  "text/uri-list": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["uri","uris","urls"]
+  },
+  "text/vcard": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["vcard"]
+  },
+  "text/vnd.a": {
+    "source": "iana"
+  },
+  "text/vnd.abc": {
+    "source": "iana"
+  },
+  "text/vnd.curl": {
+    "source": "iana",
+    "extensions": ["curl"]
+  },
+  "text/vnd.curl.dcurl": {
+    "source": "apache",
+    "extensions": ["dcurl"]
+  },
+  "text/vnd.curl.mcurl": {
+    "source": "apache",
+    "extensions": ["mcurl"]
+  },
+  "text/vnd.curl.scurl": {
+    "source": "apache",
+    "extensions": ["scurl"]
+  },
+  "text/vnd.debian.copyright": {
+    "source": "iana"
+  },
+  "text/vnd.dmclientscript": {
+    "source": "iana"
+  },
+  "text/vnd.dvb.subtitle": {
+    "source": "iana",
+    "extensions": ["sub"]
+  },
+  "text/vnd.esmertec.theme-descriptor": {
+    "source": "iana"
+  },
+  "text/vnd.fly": {
+    "source": "iana",
+    "extensions": ["fly"]
+  },
+  "text/vnd.fmi.flexstor": {
+    "source": "iana",
+    "extensions": ["flx"]
+  },
+  "text/vnd.graphviz": {
+    "source": "iana",
+    "extensions": ["gv"]
+  },
+  "text/vnd.in3d.3dml": {
+    "source": "iana",
+    "extensions": ["3dml"]
+  },
+  "text/vnd.in3d.spot": {
+    "source": "iana",
+    "extensions": ["spot"]
+  },
+  "text/vnd.iptc.newsml": {
+    "source": "iana"
+  },
+  "text/vnd.iptc.nitf": {
+    "source": "iana"
+  },
+  "text/vnd.latex-z": {
+    "source": "iana"
+  },
+  "text/vnd.motorola.reflex": {
+    "source": "iana"
+  },
+  "text/vnd.ms-mediapackage": {
+    "source": "iana"
+  },
+  "text/vnd.net2phone.commcenter.command": {
+    "source": "iana"
+  },
+  "text/vnd.radisys.msml-basic-layout": {
+    "source": "iana"
+  },
+  "text/vnd.si.uricatalogue": {
+    "source": "iana"
+  },
+  "text/vnd.sun.j2me.app-descriptor": {
+    "source": "iana",
+    "extensions": ["jad"]
+  },
+  "text/vnd.trolltech.linguist": {
+    "source": "iana"
+  },
+  "text/vnd.wap.si": {
+    "source": "iana"
+  },
+  "text/vnd.wap.sl": {
+    "source": "iana"
+  },
+  "text/vnd.wap.wml": {
+    "source": "iana",
+    "extensions": ["wml"]
+  },
+  "text/vnd.wap.wmlscript": {
+    "source": "iana",
+    "extensions": ["wmls"]
+  },
+  "text/vtt": {
+    "charset": "UTF-8",
+    "compressible": true,
+    "extensions": ["vtt"]
+  },
+  "text/x-asm": {
+    "source": "apache",
+    "extensions": ["s","asm"]
+  },
+  "text/x-c": {
+    "source": "apache",
+    "extensions": ["c","cc","cxx","cpp","h","hh","dic"]
+  },
+  "text/x-component": {
+    "source": "nginx",
+    "extensions": ["htc"]
+  },
+  "text/x-fortran": {
+    "source": "apache",
+    "extensions": ["f","for","f77","f90"]
+  },
+  "text/x-gwt-rpc": {
+    "compressible": true
+  },
+  "text/x-handlebars-template": {
+    "extensions": ["hbs"]
+  },
+  "text/x-java-source": {
+    "source": "apache",
+    "extensions": ["java"]
+  },
+  "text/x-jquery-tmpl": {
+    "compressible": true
+  },
+  "text/x-lua": {
+    "extensions": ["lua"]
+  },
+  "text/x-markdown": {
+    "compressible": true,
+    "extensions": ["markdown","md","mkd"]
+  },
+  "text/x-nfo": {
+    "source": "apache",
+    "extensions": ["nfo"]
+  },
+  "text/x-opml": {
+    "source": "apache",
+    "extensions": ["opml"]
+  },
+  "text/x-pascal": {
+    "source": "apache",
+    "extensions": ["p","pas"]
+  },
+  "text/x-processing": {
+    "compressible": true,
+    "extensions": ["pde"]
+  },
+  "text/x-sass": {
+    "extensions": ["sass"]
+  },
+  "text/x-scss": {
+    "extensions": ["scss"]
+  },
+  "text/x-setext": {
+    "source": "apache",
+    "extensions": ["etx"]
+  },
+  "text/x-sfv": {
+    "source": "apache",
+    "extensions": ["sfv"]
+  },
+  "text/x-suse-ymp": {
+    "compressible": true,
+    "extensions": ["ymp"]
+  },
+  "text/x-uuencode": {
+    "source": "apache",
+    "extensions": ["uu"]
+  },
+  "text/x-vcalendar": {
+    "source": "apache",
+    "extensions": ["vcs"]
+  },
+  "text/x-vcard": {
+    "source": "apache",
+    "extensions": ["vcf"]
+  },
+  "text/xml": {
+    "source": "iana",
+    "compressible": true,
+    "extensions": ["xml"]
+  },
+  "text/xml-external-parsed-entity": {
+    "source": "iana"
+  },
+  "text/yaml": {
+    "extensions": ["yaml","yml"]
+  },
+  "video/1d-interleaved-parityfec": {
+    "source": "apache"
+  },
+  "video/3gpp": {
+    "source": "apache",
+    "extensions": ["3gp","3gpp"]
+  },
+  "video/3gpp-tt": {
+    "source": "apache"
+  },
+  "video/3gpp2": {
+    "source": "apache",
+    "extensions": ["3g2"]
+  },
+  "video/bmpeg": {
+    "source": "apache"
+  },
+  "video/bt656": {
+    "source": "apache"
+  },
+  "video/celb": {
+    "source": "apache"
+  },
+  "video/dv": {
+    "source": "apache"
+  },
+  "video/h261": {
+    "source": "apache",
+    "extensions": ["h261"]
+  },
+  "video/h263": {
+    "source": "apache",
+    "extensions": ["h263"]
+  },
+  "video/h263-1998": {
+    "source": "apache"
+  },
+  "video/h263-2000": {
+    "source": "apache"
+  },
+  "video/h264": {
+    "source": "apache",
+    "extensions": ["h264"]
+  },
+  "video/h264-rcdo": {
+    "source": "apache"
+  },
+  "video/h264-svc": {
+    "source": "apache"
+  },
+  "video/jpeg": {
+    "source": "apache",
+    "extensions": ["jpgv"]
+  },
+  "video/jpeg2000": {
+    "source": "apache"
+  },
+  "video/jpm": {
+    "source": "apache",
+    "extensions": ["jpm","jpgm"]
+  },
+  "video/mj2": {
+    "source": "apache",
+    "extensions": ["mj2","mjp2"]
+  },
+  "video/mp1s": {
+    "source": "apache"
+  },
+  "video/mp2p": {
+    "source": "apache"
+  },
+  "video/mp2t": {
+    "source": "apache",
+    "extensions": ["ts"]
+  },
+  "video/mp4": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["mp4","mp4v","mpg4"]
+  },
+  "video/mp4v-es": {
+    "source": "apache"
+  },
+  "video/mpeg": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["mpeg","mpg","mpe","m1v","m2v"]
+  },
+  "video/mpeg4-generic": {
+    "source": "apache"
+  },
+  "video/mpv": {
+    "source": "apache"
+  },
+  "video/nv": {
+    "source": "apache"
+  },
+  "video/ogg": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["ogv"]
+  },
+  "video/parityfec": {
+    "source": "apache"
+  },
+  "video/pointer": {
+    "source": "apache"
+  },
+  "video/quicktime": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["qt","mov"]
+  },
+  "video/raw": {
+    "source": "apache"
+  },
+  "video/rtp-enc-aescm128": {
+    "source": "apache"
+  },
+  "video/rtx": {
+    "source": "apache"
+  },
+  "video/smpte292m": {
+    "source": "apache"
+  },
+  "video/ulpfec": {
+    "source": "apache"
+  },
+  "video/vc1": {
+    "source": "apache"
+  },
+  "video/vnd.cctv": {
+    "source": "apache"
+  },
+  "video/vnd.dece.hd": {
+    "source": "apache",
+    "extensions": ["uvh","uvvh"]
+  },
+  "video/vnd.dece.mobile": {
+    "source": "apache",
+    "extensions": ["uvm","uvvm"]
+  },
+  "video/vnd.dece.mp4": {
+    "source": "apache"
+  },
+  "video/vnd.dece.pd": {
+    "source": "apache",
+    "extensions": ["uvp","uvvp"]
+  },
+  "video/vnd.dece.sd": {
+    "source": "apache",
+    "extensions": ["uvs","uvvs"]
+  },
+  "video/vnd.dece.video": {
+    "source": "apache",
+    "extensions": ["uvv","uvvv"]
+  },
+  "video/vnd.directv.mpeg": {
+    "source": "apache"
+  },
+  "video/vnd.directv.mpeg-tts": {
+    "source": "apache"
+  },
+  "video/vnd.dlna.mpeg-tts": {
+    "source": "apache"
+  },
+  "video/vnd.dvb.file": {
+    "source": "apache",
+    "extensions": ["dvb"]
+  },
+  "video/vnd.fvt": {
+    "source": "apache",
+    "extensions": ["fvt"]
+  },
+  "video/vnd.hns.video": {
+    "source": "apache"
+  },
+  "video/vnd.iptvforum.1dparityfec-1010": {
+    "source": "apache"
+  },
+  "video/vnd.iptvforum.1dparityfec-2005": {
+    "source": "apache"
+  },
+  "video/vnd.iptvforum.2dparityfec-1010": {
+    "source": "apache"
+  },
+  "video/vnd.iptvforum.2dparityfec-2005": {
+    "source": "apache"
+  },
+  "video/vnd.iptvforum.ttsavc": {
+    "source": "apache"
+  },
+  "video/vnd.iptvforum.ttsmpeg2": {
+    "source": "apache"
+  },
+  "video/vnd.motorola.video": {
+    "source": "apache"
+  },
+  "video/vnd.motorola.videop": {
+    "source": "apache"
+  },
+  "video/vnd.mpegurl": {
+    "source": "apache",
+    "extensions": ["mxu","m4u"]
+  },
+  "video/vnd.ms-playready.media.pyv": {
+    "source": "apache",
+    "extensions": ["pyv"]
+  },
+  "video/vnd.nokia.interleaved-multimedia": {
+    "source": "apache"
+  },
+  "video/vnd.nokia.videovoip": {
+    "source": "apache"
+  },
+  "video/vnd.objectvideo": {
+    "source": "apache"
+  },
+  "video/vnd.sealed.mpeg1": {
+    "source": "apache"
+  },
+  "video/vnd.sealed.mpeg4": {
+    "source": "apache"
+  },
+  "video/vnd.sealed.swf": {
+    "source": "apache"
+  },
+  "video/vnd.sealedmedia.softseal.mov": {
+    "source": "apache"
+  },
+  "video/vnd.uvvu.mp4": {
+    "source": "apache",
+    "extensions": ["uvu","uvvu"]
+  },
+  "video/vnd.vivo": {
+    "source": "apache",
+    "extensions": ["viv"]
+  },
+  "video/webm": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["webm"]
+  },
+  "video/x-f4v": {
+    "source": "apache",
+    "extensions": ["f4v"]
+  },
+  "video/x-fli": {
+    "source": "apache",
+    "extensions": ["fli"]
+  },
+  "video/x-flv": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["flv"]
+  },
+  "video/x-m4v": {
+    "source": "apache",
+    "extensions": ["m4v"]
+  },
+  "video/x-matroska": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["mkv","mk3d","mks"]
+  },
+  "video/x-mng": {
+    "source": "apache",
+    "extensions": ["mng"]
+  },
+  "video/x-ms-asf": {
+    "source": "apache",
+    "extensions": ["asf","asx"]
+  },
+  "video/x-ms-vob": {
+    "source": "apache",
+    "extensions": ["vob"]
+  },
+  "video/x-ms-wm": {
+    "source": "apache",
+    "extensions": ["wm"]
+  },
+  "video/x-ms-wmv": {
+    "source": "apache",
+    "compressible": false,
+    "extensions": ["wmv"]
+  },
+  "video/x-ms-wmx": {
+    "source": "apache",
+    "extensions": ["wmx"]
+  },
+  "video/x-ms-wvx": {
+    "source": "apache",
+    "extensions": ["wvx"]
+  },
+  "video/x-msvideo": {
+    "source": "apache",
+    "extensions": ["avi"]
+  },
+  "video/x-sgi-movie": {
+    "source": "apache",
+    "extensions": ["movie"]
+  },
+  "video/x-smv": {
+    "source": "apache",
+    "extensions": ["smv"]
+  },
+  "x-conference/x-cooltalk": {
+    "source": "apache",
+    "extensions": ["ice"]
+  },
+  "x-shader/x-fragment": {
+    "compressible": true
+  },
+  "x-shader/x-vertex": {
+    "compressible": true
+  }
+}
+},{}],269:[function(require,module,exports){
+module["exports"] = [
+  "ants",
+  "bats",
+  "bears",
+  "bees",
+  "birds",
+  "buffalo",
+  "cats",
+  "chickens",
+  "cattle",
+  "dogs",
+  "dolphins",
+  "ducks",
+  "elephants",
+  "fishes",
+  "foxes",
+  "frogs",
+  "geese",
+  "goats",
+  "horses",
+  "kangaroos",
+  "lions",
+  "monkeys",
+  "owls",
+  "oxen",
+  "penguins",
+  "people",
+  "pigs",
+  "rabbits",
+  "sheep",
+  "tigers",
+  "whales",
+  "wolves",
+  "zebras",
+  "banshees",
+  "crows",
+  "black cats",
+  "chimeras",
+  "ghosts",
+  "conspirators",
+  "dragons",
+  "dwarves",
+  "elves",
+  "enchanters",
+  "exorcists",
+  "sons",
+  "foes",
+  "giants",
+  "gnomes",
+  "goblins",
+  "gooses",
+  "griffins",
+  "lycanthropes",
+  "nemesis",
+  "ogres",
+  "oracles",
+  "prophets",
+  "sorcerors",
+  "spiders",
+  "spirits",
+  "vampires",
+  "warlocks",
+  "vixens",
+  "werewolves",
+  "witches",
+  "worshipers",
+  "zombies",
+  "druids"
+];
+
+},{}],270:[function(require,module,exports){
+var team = {};
+module['exports'] = team;
+team.creature = require("./creature");
+team.name = require("./name");
+
+},{"./creature":269,"./name":271}],271:[function(require,module,exports){
+module["exports"] = [
+  "#{Address.state} #{creature}"
+];
+
+},{}],272:[function(require,module,exports){
+module["exports"] = [
+  "####",
+  "###",
+  "##"
+];
+
+},{}],273:[function(require,module,exports){
+module["exports"] = [
+  "Australia"
+];
+
+},{}],274:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.state_abbr = require("./state_abbr");
+address.state = require("./state");
+address.postcode = require("./postcode");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.default_country = require("./default_country");
+
+},{"./building_number":272,"./default_country":273,"./postcode":275,"./state":276,"./state_abbr":277,"./street_suffix":278}],275:[function(require,module,exports){
+module["exports"] = [
+  "0###",
+  "2###",
+  "3###",
+  "4###",
+  "5###",
+  "6###",
+  "7###"
+];
+
+},{}],276:[function(require,module,exports){
+module["exports"] = [
+  "New South Wales",
+  "Queensland",
+  "Northern Territory",
+  "South Australia",
+  "Western Australia",
+  "Tasmania",
+  "Australian Capital Territory",
+  "Victoria"
+];
+
+},{}],277:[function(require,module,exports){
+module["exports"] = [
+  "NSW",
+  "QLD",
+  "NT",
+  "SA",
+  "WA",
+  "TAS",
+  "ACT",
+  "VIC"
+];
+
+},{}],278:[function(require,module,exports){
+module["exports"] = [
+  "Avenue",
+  "Boulevard",
+  "Circle",
+  "Circuit",
+  "Court",
+  "Crescent",
+  "Crest",
+  "Drive",
+  "Estate Dr",
+  "Grove",
+  "Hill",
+  "Island",
+  "Junction",
+  "Knoll",
+  "Lane",
+  "Loop",
+  "Mall",
+  "Manor",
+  "Meadow",
+  "Mews",
+  "Parade",
+  "Parkway",
+  "Pass",
+  "Place",
+  "Plaza",
+  "Ridge",
+  "Road",
+  "Run",
+  "Square",
+  "Station St",
+  "Street",
+  "Summit",
+  "Terrace",
+  "Track",
+  "Trail",
+  "View Rd",
+  "Way"
+];
+
+},{}],279:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+
+},{"./suffix":280}],280:[function(require,module,exports){
+module["exports"] = [
+  "Pty Ltd",
+  "and Sons",
+  "Corp",
+  "Group",
+  "Brothers",
+  "Partners"
+];
+
+},{}],281:[function(require,module,exports){
+var en_AU = {};
+module['exports'] = en_AU;
+en_AU.title = "Australia (English)";
+en_AU.name = require("./name");
+en_AU.company = require("./company");
+en_AU.internet = require("./internet");
+en_AU.address = require("./address");
+en_AU.phone_number = require("./phone_number");
+
+},{"./address":274,"./company":279,"./internet":283,"./name":285,"./phone_number":288}],282:[function(require,module,exports){
+module["exports"] = [
+  "com.au",
+  "com",
+  "net.au",
+  "net",
+  "org.au",
+  "org"
+];
+
+},{}],283:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":282,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],284:[function(require,module,exports){
+module["exports"] = [
+  "William",
+  "Jack",
+  "Oliver",
+  "Joshua",
+  "Thomas",
+  "Lachlan",
+  "Cooper",
+  "Noah",
+  "Ethan",
+  "Lucas",
+  "James",
+  "Samuel",
+  "Jacob",
+  "Liam",
+  "Alexander",
+  "Benjamin",
+  "Max",
+  "Isaac",
+  "Daniel",
+  "Riley",
+  "Ryan",
+  "Charlie",
+  "Tyler",
+  "Jake",
+  "Matthew",
+  "Xavier",
+  "Harry",
+  "Jayden",
+  "Nicholas",
+  "Harrison",
+  "Levi",
+  "Luke",
+  "Adam",
+  "Henry",
+  "Aiden",
+  "Dylan",
+  "Oscar",
+  "Michael",
+  "Jackson",
+  "Logan",
+  "Joseph",
+  "Blake",
+  "Nathan",
+  "Connor",
+  "Elijah",
+  "Nate",
+  "Archie",
+  "Bailey",
+  "Marcus",
+  "Cameron",
+  "Jordan",
+  "Zachary",
+  "Caleb",
+  "Hunter",
+  "Ashton",
+  "Toby",
+  "Aidan",
+  "Hayden",
+  "Mason",
+  "Hamish",
+  "Edward",
+  "Angus",
+  "Eli",
+  "Sebastian",
+  "Christian",
+  "Patrick",
+  "Andrew",
+  "Anthony",
+  "Luca",
+  "Kai",
+  "Beau",
+  "Alex",
+  "George",
+  "Callum",
+  "Finn",
+  "Zac",
+  "Mitchell",
+  "Jett",
+  "Jesse",
+  "Gabriel",
+  "Leo",
+  "Declan",
+  "Charles",
+  "Jasper",
+  "Jonathan",
+  "Aaron",
+  "Hugo",
+  "David",
+  "Christopher",
+  "Chase",
+  "Owen",
+  "Justin",
+  "Ali",
+  "Darcy",
+  "Lincoln",
+  "Cody",
+  "Phoenix",
+  "Sam",
+  "John",
+  "Joel",
+  "Isabella",
+  "Ruby",
+  "Chloe",
+  "Olivia",
+  "Charlotte",
+  "Mia",
+  "Lily",
+  "Emily",
+  "Ella",
+  "Sienna",
+  "Sophie",
+  "Amelia",
+  "Grace",
+  "Ava",
+  "Zoe",
+  "Emma",
+  "Sophia",
+  "Matilda",
+  "Hannah",
+  "Jessica",
+  "Lucy",
+  "Georgia",
+  "Sarah",
+  "Abigail",
+  "Zara",
+  "Eva",
+  "Scarlett",
+  "Jasmine",
+  "Chelsea",
+  "Lilly",
+  "Ivy",
+  "Isla",
+  "Evie",
+  "Isabelle",
+  "Maddison",
+  "Layla",
+  "Summer",
+  "Annabelle",
+  "Alexis",
+  "Elizabeth",
+  "Bella",
+  "Holly",
+  "Lara",
+  "Madison",
+  "Alyssa",
+  "Maya",
+  "Tahlia",
+  "Claire",
+  "Hayley",
+  "Imogen",
+  "Jade",
+  "Ellie",
+  "Sofia",
+  "Addison",
+  "Molly",
+  "Phoebe",
+  "Alice",
+  "Savannah",
+  "Gabriella",
+  "Kayla",
+  "Mikayla",
+  "Abbey",
+  "Eliza",
+  "Willow",
+  "Alexandra",
+  "Poppy",
+  "Samantha",
+  "Stella",
+  "Amy",
+  "Amelie",
+  "Anna",
+  "Piper",
+  "Gemma",
+  "Isabel",
+  "Victoria",
+  "Stephanie",
+  "Caitlin",
+  "Heidi",
+  "Paige",
+  "Rose",
+  "Amber",
+  "Audrey",
+  "Claudia",
+  "Taylor",
+  "Madeline",
+  "Angelina",
+  "Natalie",
+  "Charli",
+  "Lauren",
+  "Ashley",
+  "Violet",
+  "Mackenzie",
+  "Abby",
+  "Skye",
+  "Lillian",
+  "Alana",
+  "Lola",
+  "Leah",
+  "Eve",
+  "Kiara"
+];
+
+},{}],285:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+
+},{"./first_name":284,"./last_name":286}],286:[function(require,module,exports){
+module["exports"] = [
+  "Smith",
+  "Jones",
+  "Williams",
+  "Brown",
+  "Wilson",
+  "Taylor",
+  "Johnson",
+  "White",
+  "Martin",
+  "Anderson",
+  "Thompson",
+  "Nguyen",
+  "Thomas",
+  "Walker",
+  "Harris",
+  "Lee",
+  "Ryan",
+  "Robinson",
+  "Kelly",
+  "King",
+  "Davis",
+  "Wright",
+  "Evans",
+  "Roberts",
+  "Green",
+  "Hall",
+  "Wood",
+  "Jackson",
+  "Clarke",
+  "Patel",
+  "Khan",
+  "Lewis",
+  "James",
+  "Phillips",
+  "Mason",
+  "Mitchell",
+  "Rose",
+  "Davies",
+  "Rodriguez",
+  "Cox",
+  "Alexander",
+  "Garden",
+  "Campbell",
+  "Johnston",
+  "Moore",
+  "Smyth",
+  "O'neill",
+  "Doherty",
+  "Stewart",
+  "Quinn",
+  "Murphy",
+  "Graham",
+  "Mclaughlin",
+  "Hamilton",
+  "Murray",
+  "Hughes",
+  "Robertson",
+  "Thomson",
+  "Scott",
+  "Macdonald",
+  "Reid",
+  "Clark",
+  "Ross",
+  "Young",
+  "Watson",
+  "Paterson",
+  "Morrison",
+  "Morgan",
+  "Griffiths",
+  "Edwards",
+  "Rees",
+  "Jenkins",
+  "Owen",
+  "Price",
+  "Moss",
+  "Richards",
+  "Abbott",
+  "Adams",
+  "Armstrong",
+  "Bahringer",
+  "Bailey",
+  "Barrows",
+  "Bartell",
+  "Bartoletti",
+  "Barton",
+  "Bauch",
+  "Baumbach",
+  "Bayer",
+  "Beahan",
+  "Beatty",
+  "Becker",
+  "Beier",
+  "Berge",
+  "Bergstrom",
+  "Bode",
+  "Bogan",
+  "Borer",
+  "Bosco",
+  "Botsford",
+  "Boyer",
+  "Boyle",
+  "Braun",
+  "Bruen",
+  "Carroll",
+  "Carter",
+  "Cartwright",
+  "Casper",
+  "Cassin",
+  "Champlin",
+  "Christiansen",
+  "Cole",
+  "Collier",
+  "Collins",
+  "Connelly",
+  "Conroy",
+  "Corkery",
+  "Cormier",
+  "Corwin",
+  "Cronin",
+  "Crooks",
+  "Cruickshank",
+  "Cummings",
+  "D'amore",
+  "Daniel",
+  "Dare",
+  "Daugherty",
+  "Dickens",
+  "Dickinson",
+  "Dietrich",
+  "Donnelly",
+  "Dooley",
+  "Douglas",
+  "Doyle",
+  "Durgan",
+  "Ebert",
+  "Emard",
+  "Emmerich",
+  "Erdman",
+  "Ernser",
+  "Fadel",
+  "Fahey",
+  "Farrell",
+  "Fay",
+  "Feeney",
+  "Feil",
+  "Ferry",
+  "Fisher",
+  "Flatley",
+  "Gibson",
+  "Gleason",
+  "Glover",
+  "Goldner",
+  "Goodwin",
+  "Grady",
+  "Grant",
+  "Greenfelder",
+  "Greenholt",
+  "Grimes",
+  "Gutmann",
+  "Hackett",
+  "Hahn",
+  "Haley",
+  "Hammes",
+  "Hand",
+  "Hane",
+  "Hansen",
+  "Harber",
+  "Hartmann",
+  "Harvey",
+  "Hayes",
+  "Heaney",
+  "Heathcote",
+  "Heller",
+  "Hermann",
+  "Hermiston",
+  "Hessel",
+  "Hettinger",
+  "Hickle",
+  "Hill",
+  "Hills",
+  "Hoppe",
+  "Howe",
+  "Howell",
+  "Hudson",
+  "Huel",
+  "Hyatt",
+  "Jacobi",
+  "Jacobs",
+  "Jacobson",
+  "Jerde",
+  "Johns",
+  "Keeling",
+  "Kemmer",
+  "Kessler",
+  "Kiehn",
+  "Kirlin",
+  "Klein",
+  "Koch",
+  "Koelpin",
+  "Kohler",
+  "Koss",
+  "Kovacek",
+  "Kreiger",
+  "Kris",
+  "Kuhlman",
+  "Kuhn",
+  "Kulas",
+  "Kunde",
+  "Kutch",
+  "Lakin",
+  "Lang",
+  "Langworth",
+  "Larkin",
+  "Larson",
+  "Leannon",
+  "Leffler",
+  "Little",
+  "Lockman",
+  "Lowe",
+  "Lynch",
+  "Mann",
+  "Marks",
+  "Marvin",
+  "Mayer",
+  "Mccullough",
+  "Mcdermott",
+  "Mckenzie",
+  "Miller",
+  "Mills",
+  "Monahan",
+  "Morissette",
+  "Mueller",
+  "Muller",
+  "Nader",
+  "Nicolas",
+  "Nolan",
+  "O'connell",
+  "O'conner",
+  "O'hara",
+  "O'keefe",
+  "Olson",
+  "O'reilly",
+  "Parisian",
+  "Parker",
+  "Quigley",
+  "Reilly",
+  "Reynolds",
+  "Rice",
+  "Ritchie",
+  "Rohan",
+  "Rolfson",
+  "Rowe",
+  "Russel",
+  "Rutherford",
+  "Sanford",
+  "Sauer",
+  "Schmidt",
+  "Schmitt",
+  "Schneider",
+  "Schroeder",
+  "Schultz",
+  "Shields",
+  "Smitham",
+  "Spencer",
+  "Stanton",
+  "Stark",
+  "Stokes",
+  "Swift",
+  "Tillman",
+  "Towne",
+  "Tremblay",
+  "Tromp",
+  "Turcotte",
+  "Turner",
+  "Walsh",
+  "Walter",
+  "Ward",
+  "Waters",
+  "Weber",
+  "Welch",
+  "West",
+  "Wilderman",
+  "Wilkinson",
+  "Williamson",
+  "Windler",
+  "Wolf"
+];
+
+},{}],287:[function(require,module,exports){
+module["exports"] = [
+  "0# #### ####",
+  "+61 # #### ####",
+  "04## ### ###",
+  "+61 4## ### ###"
+];
+
+},{}],288:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":287,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],289:[function(require,module,exports){
+var en_BORK = {};
+module['exports'] = en_BORK;
+en_BORK.title = "Bork (English)";
+en_BORK.lorem = require("./lorem");
+
+},{"./lorem":290}],290:[function(require,module,exports){
+arguments[4][121][0].apply(exports,arguments)
+},{"./words":291,"/Users/a/dev/faker.js/lib/locales/de/lorem/index.js":121}],291:[function(require,module,exports){
+module["exports"] = [
+  "Boot",
+  "I",
+  "Nu",
+  "Nur",
+  "Tu",
+  "Um",
+  "a",
+  "becoose-a",
+  "boot",
+  "bork",
+  "burn",
+  "chuuses",
+  "cumplete-a",
+  "cun",
+  "cunseqooences",
+  "curcoomstunces",
+  "dee",
+  "deeslikes",
+  "denuoonceeng",
+  "desures",
+  "du",
+  "eccuoont",
+  "ectooel",
+  "edfuntege-a",
+  "efueeds",
+  "egeeen",
+  "ell",
+  "ere-a",
+  "feend",
+  "foolt",
+  "frum",
+  "geefe-a",
+  "gesh",
+  "greet",
+  "heem",
+  "heppeeness",
+  "hes",
+  "hoo",
+  "hoomun",
+  "idea",
+  "ifer",
+  "in",
+  "incuoonter",
+  "injuy",
+  "itselff",
+  "ixcept",
+  "ixemple-a",
+  "ixerceese-a",
+  "ixpleeen",
+  "ixplurer",
+  "ixpuoond",
+  "ixtremely",
+  "knoo",
+  "lebureeuoos",
+  "lufes",
+  "meestekee",
+  "mester-booeelder",
+  "moost",
+  "mun",
+  "nu",
+  "nut",
+  "oobteeen",
+  "oocceseeunelly",
+  "ooccoor",
+  "ooff",
+  "oone-a",
+  "oor",
+  "peeen",
+  "peeenffool",
+  "physeecel",
+  "pleesoore-a",
+  "poorsooe-a",
+  "poorsooes",
+  "preeesing",
+  "prucoore-a",
+  "prudooces",
+  "reeght",
+  "reshunelly",
+  "resooltunt",
+  "sume-a",
+  "teecheengs",
+  "teke-a",
+  "thees",
+  "thet",
+  "thuse-a",
+  "treefiel",
+  "troot",
+  "tu",
+  "tueel",
+  "und",
+  "undertekes",
+  "unnuyeeng",
+  "uny",
+  "unyune-a",
+  "us",
+  "veell",
+  "veet",
+  "ves",
+  "vheech",
+  "vhu",
+  "yuoo",
+  "zee",
+  "zeere-a"
+];
+
+},{}],292:[function(require,module,exports){
+module["exports"] = [
+  "Canada"
+];
+
+},{}],293:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.default_country = require("./default_country");
+address.postcode = require('./postcode.js');
+
+},{"./default_country":292,"./postcode.js":294,"./state":295,"./state_abbr":296}],294:[function(require,module,exports){
+module["exports"] = [
+  "?#? #?#"
+];
+
+},{}],295:[function(require,module,exports){
+module["exports"] = [
+  "Alberta",
+  "British Columbia",
+  "Manitoba",
+  "New Brunswick",
+  "Newfoundland and Labrador",
+  "Nova Scotia",
+  "Northwest Territories",
+  "Nunavut",
+  "Ontario",
+  "Prince Edward Island",
+  "Quebec",
+  "Saskatchewan",
+  "Yukon"
+];
+
+},{}],296:[function(require,module,exports){
+module["exports"] = [
+  "AB",
+  "BC",
+  "MB",
+  "NB",
+  "NL",
+  "NS",
+  "NU",
+  "NT",
+  "ON",
+  "PE",
+  "QC",
+  "SK",
+  "YT"
+];
+
+},{}],297:[function(require,module,exports){
+var en_CA = {};
+module['exports'] = en_CA;
+en_CA.title = "Canada (English)";
+en_CA.address = require("./address");
+en_CA.internet = require("./internet");
+en_CA.phone_number = require("./phone_number");
+
+},{"./address":293,"./internet":300,"./phone_number":302}],298:[function(require,module,exports){
+module["exports"] = [
+  "ca",
+  "com",
+  "biz",
+  "info",
+  "name",
+  "net",
+  "org"
+];
+
+},{}],299:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.ca",
+  "hotmail.com"
+];
+
+},{}],300:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":298,"./free_email":299,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],301:[function(require,module,exports){
+module["exports"] = [
+  "###-###-####",
+  "(###)###-####",
+  "###.###.####",
+  "1-###-###-####",
+  "###-###-#### x###",
+  "(###)###-#### x###",
+  "1-###-###-#### x###",
+  "###.###.#### x###",
+  "###-###-#### x####",
+  "(###)###-#### x####",
+  "1-###-###-#### x####",
+  "###.###.#### x####",
+  "###-###-#### x#####",
+  "(###)###-#### x#####",
+  "1-###-###-#### x#####",
+  "###.###.#### x#####"
+];
+
+},{}],302:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":301,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],303:[function(require,module,exports){
+module["exports"] = [
+  "Avon",
+  "Bedfordshire",
+  "Berkshire",
+  "Borders",
+  "Buckinghamshire",
+  "Cambridgeshire",
+  "Central",
+  "Cheshire",
+  "Cleveland",
+  "Clwyd",
+  "Cornwall",
+  "County Antrim",
+  "County Armagh",
+  "County Down",
+  "County Fermanagh",
+  "County Londonderry",
+  "County Tyrone",
+  "Cumbria",
+  "Derbyshire",
+  "Devon",
+  "Dorset",
+  "Dumfries and Galloway",
+  "Durham",
+  "Dyfed",
+  "East Sussex",
+  "Essex",
+  "Fife",
+  "Gloucestershire",
+  "Grampian",
+  "Greater Manchester",
+  "Gwent",
+  "Gwynedd County",
+  "Hampshire",
+  "Herefordshire",
+  "Hertfordshire",
+  "Highlands and Islands",
+  "Humberside",
+  "Isle of Wight",
+  "Kent",
+  "Lancashire",
+  "Leicestershire",
+  "Lincolnshire",
+  "Lothian",
+  "Merseyside",
+  "Mid Glamorgan",
+  "Norfolk",
+  "North Yorkshire",
+  "Northamptonshire",
+  "Northumberland",
+  "Nottinghamshire",
+  "Oxfordshire",
+  "Powys",
+  "Rutland",
+  "Shropshire",
+  "Somerset",
+  "South Glamorgan",
+  "South Yorkshire",
+  "Staffordshire",
+  "Strathclyde",
+  "Suffolk",
+  "Surrey",
+  "Tayside",
+  "Tyne and Wear",
+  "Warwickshire",
+  "West Glamorgan",
+  "West Midlands",
+  "West Sussex",
+  "West Yorkshire",
+  "Wiltshire",
+  "Worcestershire"
+];
+
+},{}],304:[function(require,module,exports){
+module["exports"] = [
+  "England",
+  "Scotland",
+  "Wales",
+  "Northern Ireland"
+];
+
+},{}],305:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.county = require("./county");
+address.uk_country = require("./uk_country");
+address.default_country = require("./default_country");
+address.postcode = require("./postcode");
+
+},{"./county":303,"./default_country":304,"./postcode":306,"./uk_country":307}],306:[function(require,module,exports){
+module["exports"] = [
+  "??# #??",
+  "??## #??",
+];
+
+},{}],307:[function(require,module,exports){
+module.exports=require(304)
+},{"/Users/a/dev/faker.js/lib/locales/en_GB/address/default_country.js":304}],308:[function(require,module,exports){
+module["exports"] = [
+  "074## ######",
+  "075## ######",
+  "076## ######",
+  "077## ######",
+  "078## ######",
+  "079## ######"
+];
+
+},{}],309:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":308,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],310:[function(require,module,exports){
+var en_GB = {};
+module['exports'] = en_GB;
+en_GB.title = "Great Britain (English)";
+en_GB.address = require("./address");
+en_GB.internet = require("./internet");
+en_GB.phone_number = require("./phone_number");
+en_GB.cell_phone = require("./cell_phone");
+
+},{"./address":305,"./cell_phone":309,"./internet":312,"./phone_number":314}],311:[function(require,module,exports){
+module["exports"] = [
+  "co.uk",
+  "com",
+  "biz",
+  "info",
+  "name"
+];
+
+},{}],312:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":311,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],313:[function(require,module,exports){
+module["exports"] = [
+  "01#### #####",
+  "01### ######",
+  "01#1 ### ####",
+  "011# ### ####",
+  "02# #### ####",
+  "03## ### ####",
+  "055 #### ####",
+  "056 #### ####",
+  "0800 ### ####",
+  "08## ### ####",
+  "09## ### ####",
+  "016977 ####",
+  "01### #####",
+  "0500 ######",
+  "0800 ######"
+];
+
+},{}],314:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":313,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],315:[function(require,module,exports){
+module["exports"] = [
+  "Carlow",
+  "Cavan",
+  "Clare",
+  "Cork",
+  "Donegal",
+  "Dublin",
+  "Galway",
+  "Kerry",
+  "Kildare",
+  "Kilkenny",
+  "Laois",
+  "Leitrim",
+  "Limerick",
+  "Longford",
+  "Louth",
+  "Mayo",
+  "Meath",
+  "Monaghan",
+  "Offaly",
+  "Roscommon",
+  "Sligo",
+  "Tipperary",
+  "Waterford",
+  "Westmeath",
+  "Wexford",
+  "Wicklow"
+];
+
+},{}],316:[function(require,module,exports){
+module["exports"] = [
+  "Ireland"
+];
+
+},{}],317:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.county = require("./county");
+address.default_country = require("./default_country");
+
+},{"./county":315,"./default_country":316}],318:[function(require,module,exports){
+module["exports"] = [
+  "082 ### ####",
+  "083 ### ####",
+  "085 ### ####",
+  "086 ### ####",
+  "087 ### ####",
+  "089 ### ####"
+];
+
+},{}],319:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":318,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],320:[function(require,module,exports){
+var en_IE = {};
+module['exports'] = en_IE;
+en_IE.title = "Ireland (English)";
+en_IE.address = require("./address");
+en_IE.internet = require("./internet");
+en_IE.phone_number = require("./phone_number");
+en_IE.cell_phone = require("./cell_phone");
+
+},{"./address":317,"./cell_phone":319,"./internet":322,"./phone_number":324}],321:[function(require,module,exports){
+module["exports"] = [
+  "ie",
+  "com",
+  "net",
+  "info",
+  "eu"
+];
+
+},{}],322:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":321,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],323:[function(require,module,exports){
+module["exports"] = [
+  "01 #######",
+  "021 #######",
+  "022 #######",
+  "023 #######",
+  "024 #######",
+  "025 #######",
+  "026 #######",
+  "027 #######",
+  "028 #######",
+  "029 #######",
+  "0402 #######",
+  "0404 #######",
+  "041 #######",
+  "042 #######",
+  "043 #######",
+  "044 #######",
+  "045 #######",
+  "046 #######",
+  "047 #######",
+  "049 #######",
+  "0504 #######",
+  "0505 #######",
+  "051 #######",
+  "052 #######",
+  "053 #######",
+  "056 #######",
+  "057 #######",
+  "058 #######",
+  "059 #######",
+  "061 #######",
+  "062 #######",
+  "063 #######",
+  "064 #######",
+  "065 #######",
+  "066 #######",
+  "067 #######",
+  "068 #######",
+  "069 #######",
+  "071 #######",
+  "074 #######",
+  "090 #######",
+  "091 #######",
+  "093 #######",
+  "094 #######",
+  "095 #######",
+  "096 #######",
+  "097 #######",
+  "098 #######",
+  "099 #######"
+];
+
+},{}],324:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":323,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],325:[function(require,module,exports){
+module["exports"] = [
+  "India",
+  "Indian Republic",
+  "Bharat",
+  "Hindustan"
+];
+
+},{}],326:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.default_country = require("./default_country");
+
+},{"./default_country":325,"./postcode":327,"./state":328,"./state_abbr":329}],327:[function(require,module,exports){
+module.exports=require(294)
+},{"/Users/a/dev/faker.js/lib/locales/en_CA/address/postcode.js":294}],328:[function(require,module,exports){
+module["exports"] = [
+  "Andra Pradesh",
+  "Arunachal Pradesh",
+  "Assam",
+  "Bihar",
+  "Chhattisgarh",
+  "Goa",
+  "Gujarat",
+  "Haryana",
+  "Himachal Pradesh",
+  "Jammu and Kashmir",
+  "Jharkhand",
+  "Karnataka",
+  "Kerala",
+  "Madya Pradesh",
+  "Maharashtra",
+  "Manipur",
+  "Meghalaya",
+  "Mizoram",
+  "Nagaland",
+  "Orissa",
+  "Punjab",
+  "Rajasthan",
+  "Sikkim",
+  "Tamil Nadu",
+  "Tripura",
+  "Uttaranchal",
+  "Uttar Pradesh",
+  "West Bengal",
+  "Andaman and Nicobar Islands",
+  "Chandigarh",
+  "Dadar and Nagar Haveli",
+  "Daman and Diu",
+  "Delhi",
+  "Lakshadweep",
+  "Pondicherry"
+];
+
+},{}],329:[function(require,module,exports){
+module["exports"] = [
+  "AP",
+  "AR",
+  "AS",
+  "BR",
+  "CG",
+  "DL",
+  "GA",
+  "GJ",
+  "HR",
+  "HP",
+  "JK",
+  "JS",
+  "KA",
+  "KL",
+  "MP",
+  "MH",
+  "MN",
+  "ML",
+  "MZ",
+  "NL",
+  "OR",
+  "PB",
+  "RJ",
+  "SK",
+  "TN",
+  "TR",
+  "UK",
+  "UP",
+  "WB",
+  "AN",
+  "CH",
+  "DN",
+  "DD",
+  "LD",
+  "PY"
+];
+
+},{}],330:[function(require,module,exports){
+arguments[4][279][0].apply(exports,arguments)
+},{"./suffix":331,"/Users/a/dev/faker.js/lib/locales/en_AU/company/index.js":279}],331:[function(require,module,exports){
+module["exports"] = [
+  "Pvt Ltd",
+  "Limited",
+  "Ltd",
+  "and Sons",
+  "Corp",
+  "Group",
+  "Brothers"
+];
+
+},{}],332:[function(require,module,exports){
+var en_IND = {};
+module['exports'] = en_IND;
+en_IND.title = "India (English)";
+en_IND.name = require("./name");
+en_IND.address = require("./address");
+en_IND.internet = require("./internet");
+en_IND.company = require("./company");
+en_IND.phone_number = require("./phone_number");
+
+},{"./address":326,"./company":330,"./internet":335,"./name":337,"./phone_number":340}],333:[function(require,module,exports){
+module["exports"] = [
+  "in",
+  "com",
+  "biz",
+  "info",
+  "name",
+  "net",
+  "org",
+  "co.in"
+];
+
+},{}],334:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.co.in",
+  "hotmail.com"
+];
+
+},{}],335:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":333,"./free_email":334,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],336:[function(require,module,exports){
+module["exports"] = [
+  "Aadrika",
+  "Aanandinii",
+  "Aaratrika",
+  "Aarya",
+  "Arya",
+  "Aashritha",
+  "Aatmaja",
+  "Atmaja",
+  "Abhaya",
+  "Adwitiya",
+  "Agrata",
+  "Ahilya",
+  "Ahalya",
+  "Aishani",
+  "Akshainie",
+  "Akshata",
+  "Akshita",
+  "Akula",
+  "Ambar",
+  "Amodini",
+  "Amrita",
+  "Amritambu",
+  "Anala",
+  "Anamika",
+  "Ananda",
+  "Anandamayi",
+  "Ananta",
+  "Anila",
+  "Anjali",
+  "Anjushri",
+  "Anjushree",
+  "Annapurna",
+  "Anshula",
+  "Anuja",
+  "Anusuya",
+  "Anasuya",
+  "Anasooya",
+  "Anwesha",
+  "Apsara",
+  "Aruna",
+  "Asha",
+  "Aasa",
+  "Aasha",
+  "Aslesha",
+  "Atreyi",
+  "Atreyee",
+  "Avani",
+  "Abani",
+  "Avantika",
+  "Ayushmati",
+  "Baidehi",
+  "Vaidehi",
+  "Bala",
+  "Baala",
+  "Balamani",
+  "Basanti",
+  "Vasanti",
+  "Bela",
+  "Bhadra",
+  "Bhagirathi",
+  "Bhagwanti",
+  "Bhagwati",
+  "Bhamini",
+  "Bhanumati",
+  "Bhaanumati",
+  "Bhargavi",
+  "Bhavani",
+  "Bhilangana",
+  "Bilwa",
+  "Bilva",
+  "Buddhana",
+  "Chakrika",
+  "Chanda",
+  "Chandi",
+  "Chandni",
+  "Chandini",
+  "Chandani",
+  "Chandra",
+  "Chandira",
+  "Chandrabhaga",
+  "Chandrakala",
+  "Chandrakin",
+  "Chandramani",
+  "Chandrani",
+  "Chandraprabha",
+  "Chandraswaroopa",
+  "Chandravati",
+  "Chapala",
+  "Charumati",
+  "Charvi",
+  "Chatura",
+  "Chitrali",
+  "Chitramala",
+  "Chitrangada",
+  "Daksha",
+  "Dakshayani",
+  "Damayanti",
+  "Darshwana",
+  "Deepali",
+  "Dipali",
+  "Deeptimoyee",
+  "Deeptimayee",
+  "Devangana",
+  "Devani",
+  "Devasree",
+  "Devi",
+  "Daevi",
+  "Devika",
+  "Daevika",
+  "Dhaanyalakshmi",
+  "Dhanalakshmi",
+  "Dhana",
+  "Dhanadeepa",
+  "Dhara",
+  "Dharani",
+  "Dharitri",
+  "Dhatri",
+  "Diksha",
+  "Deeksha",
+  "Divya",
+  "Draupadi",
+  "Dulari",
+  "Durga",
+  "Durgeshwari",
+  "Ekaparnika",
+  "Elakshi",
+  "Enakshi",
+  "Esha",
+  "Eshana",
+  "Eshita",
+  "Gautami",
+  "Gayatri",
+  "Geeta",
+  "Geetanjali",
+  "Gitanjali",
+  "Gemine",
+  "Gemini",
+  "Girja",
+  "Girija",
+  "Gita",
+  "Hamsini",
+  "Harinakshi",
+  "Harita",
+  "Heema",
+  "Himadri",
+  "Himani",
+  "Hiranya",
+  "Indira",
+  "Jaimini",
+  "Jaya",
+  "Jyoti",
+  "Jyotsana",
+  "Kali",
+  "Kalinda",
+  "Kalpana",
+  "Kalyani",
+  "Kama",
+  "Kamala",
+  "Kamla",
+  "Kanchan",
+  "Kanishka",
+  "Kanti",
+  "Kashyapi",
+  "Kumari",
+  "Kumuda",
+  "Lakshmi",
+  "Laxmi",
+  "Lalita",
+  "Lavanya",
+  "Leela",
+  "Lila",
+  "Leela",
+  "Madhuri",
+  "Malti",
+  "Malati",
+  "Mandakini",
+  "Mandaakin",
+  "Mangala",
+  "Mangalya",
+  "Mani",
+  "Manisha",
+  "Manjusha",
+  "Meena",
+  "Mina",
+  "Meenakshi",
+  "Minakshi",
+  "Menka",
+  "Menaka",
+  "Mohana",
+  "Mohini",
+  "Nalini",
+  "Nikita",
+  "Ojaswini",
+  "Omana",
+  "Oormila",
+  "Urmila",
+  "Opalina",
+  "Opaline",
+  "Padma",
+  "Parvati",
+  "Poornima",
+  "Purnima",
+  "Pramila",
+  "Prasanna",
+  "Preity",
+  "Prema",
+  "Priya",
+  "Priyala",
+  "Pushti",
+  "Radha",
+  "Rageswari",
+  "Rageshwari",
+  "Rajinder",
+  "Ramaa",
+  "Rati",
+  "Rita",
+  "Rohana",
+  "Rukhmani",
+  "Rukmin",
+  "Rupinder",
+  "Sanya",
+  "Sarada",
+  "Sharda",
+  "Sarala",
+  "Sarla",
+  "Saraswati",
+  "Sarisha",
+  "Saroja",
+  "Shakti",
+  "Shakuntala",
+  "Shanti",
+  "Sharmila",
+  "Shashi",
+  "Shashikala",
+  "Sheela",
+  "Shivakari",
+  "Shobhana",
+  "Shresth",
+  "Shresthi",
+  "Shreya",
+  "Shreyashi",
+  "Shridevi",
+  "Shrishti",
+  "Shubha",
+  "Shubhaprada",
+  "Siddhi",
+  "Sitara",
+  "Sloka",
+  "Smita",
+  "Smriti",
+  "Soma",
+  "Subhashini",
+  "Subhasini",
+  "Sucheta",
+  "Sudeva",
+  "Sujata",
+  "Sukanya",
+  "Suma",
+  "Suma",
+  "Sumitra",
+  "Sunita",
+  "Suryakantam",
+  "Sushma",
+  "Swara",
+  "Swarnalata",
+  "Sweta",
+  "Shwet",
+  "Tanirika",
+  "Tanushree",
+  "Tanushri",
+  "Tanushri",
+  "Tanya",
+  "Tara",
+  "Trisha",
+  "Uma",
+  "Usha",
+  "Vaijayanti",
+  "Vaijayanthi",
+  "Baijayanti",
+  "Vaishvi",
+  "Vaishnavi",
+  "Vaishno",
+  "Varalakshmi",
+  "Vasudha",
+  "Vasundhara",
+  "Veda",
+  "Vedanshi",
+  "Vidya",
+  "Vimala",
+  "Vrinda",
+  "Vrund",
+  "Aadi",
+  "Aadidev",
+  "Aadinath",
+  "Aaditya",
+  "Aagam",
+  "Aagney",
+  "Aamod",
+  "Aanandaswarup",
+  "Anand Swarup",
+  "Aanjaneya",
+  "Anjaneya",
+  "Aaryan",
+  "Aryan",
+  "Aatmaj",
+  "Aatreya",
+  "Aayushmaan",
+  "Aayushman",
+  "Abhaidev",
+  "Abhaya",
+  "Abhirath",
+  "Abhisyanta",
+  "Acaryatanaya",
+  "Achalesvara",
+  "Acharyanandana",
+  "Acharyasuta",
+  "Achintya",
+  "Achyut",
+  "Adheesh",
+  "Adhiraj",
+  "Adhrit",
+  "Adikavi",
+  "Adinath",
+  "Aditeya",
+  "Aditya",
+  "Adityanandan",
+  "Adityanandana",
+  "Adripathi",
+  "Advaya",
+  "Agasti",
+  "Agastya",
+  "Agneya",
+  "Aagneya",
+  "Agnimitra",
+  "Agniprava",
+  "Agnivesh",
+  "Agrata",
+  "Ajit",
+  "Ajeet",
+  "Akroor",
+  "Akshaj",
+  "Akshat",
+  "Akshayakeerti",
+  "Alok",
+  "Aalok",
+  "Amaranaath",
+  "Amarnath",
+  "Amaresh",
+  "Ambar",
+  "Ameyatma",
+  "Amish",
+  "Amogh",
+  "Amrit",
+  "Anaadi",
+  "Anagh",
+  "Anal",
+  "Anand",
+  "Aanand",
+  "Anang",
+  "Anil",
+  "Anilaabh",
+  "Anilabh",
+  "Anish",
+  "Ankal",
+  "Anunay",
+  "Anurag",
+  "Anuraag",
+  "Archan",
+  "Arindam",
+  "Arjun",
+  "Arnesh",
+  "Arun",
+  "Ashlesh",
+  "Ashok",
+  "Atmanand",
+  "Atmananda",
+  "Avadhesh",
+  "Baalaaditya",
+  "Baladitya",
+  "Baalagopaal",
+  "Balgopal",
+  "Balagopal",
+  "Bahula",
+  "Bakula",
+  "Bala",
+  "Balaaditya",
+  "Balachandra",
+  "Balagovind",
+  "Bandhu",
+  "Bandhul",
+  "Bankim",
+  "Bankimchandra",
+  "Bhadrak",
+  "Bhadraksh",
+  "Bhadran",
+  "Bhagavaan",
+  "Bhagvan",
+  "Bharadwaj",
+  "Bhardwaj",
+  "Bharat",
+  "Bhargava",
+  "Bhasvan",
+  "Bhaasvan",
+  "Bhaswar",
+  "Bhaaswar",
+  "Bhaumik",
+  "Bhaves",
+  "Bheeshma",
+  "Bhisham",
+  "Bhishma",
+  "Bhima",
+  "Bhoj",
+  "Bhramar",
+  "Bhudev",
+  "Bhudeva",
+  "Bhupati",
+  "Bhoopati",
+  "Bhoopat",
+  "Bhupen",
+  "Bhushan",
+  "Bhooshan",
+  "Bhushit",
+  "Bhooshit",
+  "Bhuvanesh",
+  "Bhuvaneshwar",
+  "Bilva",
+  "Bodhan",
+  "Brahma",
+  "Brahmabrata",
+  "Brahmanandam",
+  "Brahmaanand",
+  "Brahmdev",
+  "Brajendra",
+  "Brajesh",
+  "Brijesh",
+  "Birjesh",
+  "Budhil",
+  "Chakor",
+  "Chakradhar",
+  "Chakravartee",
+  "Chakravarti",
+  "Chanakya",
+  "Chaanakya",
+  "Chandak",
+  "Chandan",
+  "Chandra",
+  "Chandraayan",
+  "Chandrabhan",
+  "Chandradev",
+  "Chandraketu",
+  "Chandramauli",
+  "Chandramohan",
+  "Chandran",
+  "Chandranath",
+  "Chapal",
+  "Charak",
+  "Charuchandra",
+  "Chaaruchandra",
+  "Charuvrat",
+  "Chatur",
+  "Chaturaanan",
+  "Chaturbhuj",
+  "Chetan",
+  "Chaten",
+  "Chaitan",
+  "Chetanaanand",
+  "Chidaakaash",
+  "Chidaatma",
+  "Chidambar",
+  "Chidambaram",
+  "Chidananda",
+  "Chinmayanand",
+  "Chinmayananda",
+  "Chiranjeev",
+  "Chiranjeeve",
+  "Chitraksh",
+  "Daiwik",
+  "Daksha",
+  "Damodara",
+  "Dandak",
+  "Dandapaani",
+  "Darshan",
+  "Datta",
+  "Dayaamay",
+  "Dayamayee",
+  "Dayaananda",
+  "Dayaanidhi",
+  "Kin",
+  "Deenabandhu",
+  "Deepan",
+  "Deepankar",
+  "Dipankar",
+  "Deependra",
+  "Dipendra",
+  "Deepesh",
+  "Dipesh",
+  "Deeptanshu",
+  "Deeptendu",
+  "Diptendu",
+  "Deeptiman",
+  "Deeptimoy",
+  "Deeptimay",
+  "Dev",
+  "Deb",
+  "Devadatt",
+  "Devagya",
+  "Devajyoti",
+  "Devak",
+  "Devdan",
+  "Deven",
+  "Devesh",
+  "Deveshwar",
+  "Devi",
+  "Devvrat",
+  "Dhananjay",
+  "Dhanapati",
+  "Dhanpati",
+  "Dhanesh",
+  "Dhanu",
+  "Dhanvin",
+  "Dharmaketu",
+  "Dhruv",
+  "Dhyanesh",
+  "Dhyaneshwar",
+  "Digambar",
+  "Digambara",
+  "Dinakar",
+  "Dinkar",
+  "Dinesh",
+  "Divaakar",
+  "Divakar",
+  "Deevakar",
+  "Divjot",
+  "Dron",
+  "Drona",
+  "Dwaipayan",
+  "Dwaipayana",
+  "Eekalabya",
+  "Ekalavya",
+  "Ekaksh",
+  "Ekaaksh",
+  "Ekaling",
+  "Ekdant",
+  "Ekadant",
+  "Gajaadhar",
+  "Gajadhar",
+  "Gajbaahu",
+  "Gajabahu",
+  "Ganak",
+  "Ganaka",
+  "Ganapati",
+  "Gandharv",
+  "Gandharva",
+  "Ganesh",
+  "Gangesh",
+  "Garud",
+  "Garuda",
+  "Gati",
+  "Gatik",
+  "Gaurang",
+  "Gauraang",
+  "Gauranga",
+  "Gouranga",
+  "Gautam",
+  "Gautama",
+  "Goutam",
+  "Ghanaanand",
+  "Ghanshyam",
+  "Ghanashyam",
+  "Giri",
+  "Girik",
+  "Girika",
+  "Girindra",
+  "Giriraaj",
+  "Giriraj",
+  "Girish",
+  "Gopal",
+  "Gopaal",
+  "Gopi",
+  "Gopee",
+  "Gorakhnath",
+  "Gorakhanatha",
+  "Goswamee",
+  "Goswami",
+  "Gotum",
+  "Gautam",
+  "Govinda",
+  "Gobinda",
+  "Gudakesha",
+  "Gudakesa",
+  "Gurdev",
+  "Guru",
+  "Hari",
+  "Harinarayan",
+  "Harit",
+  "Himadri",
+  "Hiranmay",
+  "Hiranmaya",
+  "Hiranya",
+  "Inder",
+  "Indra",
+  "Indra",
+  "Jagadish",
+  "Jagadisha",
+  "Jagathi",
+  "Jagdeep",
+  "Jagdish",
+  "Jagmeet",
+  "Jahnu",
+  "Jai",
+  "Javas",
+  "Jay",
+  "Jitendra",
+  "Jitender",
+  "Jyotis",
+  "Kailash",
+  "Kama",
+  "Kamalesh",
+  "Kamlesh",
+  "Kanak",
+  "Kanaka",
+  "Kannan",
+  "Kannen",
+  "Karan",
+  "Karthik",
+  "Kartik",
+  "Karunanidhi",
+  "Kashyap",
+  "Kiran",
+  "Kirti",
+  "Keerti",
+  "Krishna",
+  "Krishnadas",
+  "Krishnadasa",
+  "Kumar",
+  "Lai",
+  "Lakshman",
+  "Laxman",
+  "Lakshmidhar",
+  "Lakshminath",
+  "Lal",
+  "Laal",
+  "Mahendra",
+  "Mohinder",
+  "Mahesh",
+  "Maheswar",
+  "Mani",
+  "Manik",
+  "Manikya",
+  "Manoj",
+  "Marut",
+  "Mayoor",
+  "Meghnad",
+  "Meghnath",
+  "Mohan",
+  "Mukesh",
+  "Mukul",
+  "Nagabhushanam",
+  "Nanda",
+  "Narayan",
+  "Narendra",
+  "Narinder",
+  "Naveen",
+  "Navin",
+  "Nawal",
+  "Naval",
+  "Nimit",
+  "Niranjan",
+  "Nirbhay",
+  "Niro",
+  "Param",
+  "Paramartha",
+  "Pran",
+  "Pranay",
+  "Prasad",
+  "Prathamesh",
+  "Prayag",
+  "Prem",
+  "Puneet",
+  "Purushottam",
+  "Rahul",
+  "Raj",
+  "Rajan",
+  "Rajendra",
+  "Rajinder",
+  "Rajiv",
+  "Rakesh",
+  "Ramesh",
+  "Rameshwar",
+  "Ranjit",
+  "Ranjeet",
+  "Ravi",
+  "Ritesh",
+  "Rohan",
+  "Rohit",
+  "Rudra",
+  "Sachin",
+  "Sameer",
+  "Samir",
+  "Sanjay",
+  "Sanka",
+  "Sarvin",
+  "Satish",
+  "Satyen",
+  "Shankar",
+  "Shantanu",
+  "Shashi",
+  "Sher",
+  "Shiv",
+  "Siddarth",
+  "Siddhran",
+  "Som",
+  "Somu",
+  "Somnath",
+  "Subhash",
+  "Subodh",
+  "Suman",
+  "Suresh",
+  "Surya",
+  "Suryakant",
+  "Suryakanta",
+  "Sushil",
+  "Susheel",
+  "Swami",
+  "Swapnil",
+  "Tapan",
+  "Tara",
+  "Tarun",
+  "Tej",
+  "Tejas",
+  "Trilochan",
+  "Trilochana",
+  "Trilok",
+  "Trilokesh",
+  "Triloki",
+  "Triloki Nath",
+  "Trilokanath",
+  "Tushar",
+  "Udai",
+  "Udit",
+  "Ujjawal",
+  "Ujjwal",
+  "Umang",
+  "Upendra",
+  "Uttam",
+  "Vasudev",
+  "Vasudeva",
+  "Vedang",
+  "Vedanga",
+  "Vidhya",
+  "Vidur",
+  "Vidhur",
+  "Vijay",
+  "Vimal",
+  "Vinay",
+  "Vishnu",
+  "Bishnu",
+  "Vishwamitra",
+  "Vyas",
+  "Yogendra",
+  "Yoginder",
+  "Yogesh"
+];
+
+},{}],337:[function(require,module,exports){
+arguments[4][285][0].apply(exports,arguments)
+},{"./first_name":336,"./last_name":338,"/Users/a/dev/faker.js/lib/locales/en_AU/name/index.js":285}],338:[function(require,module,exports){
+module["exports"] = [
+  "Abbott",
+  "Achari",
+  "Acharya",
+  "Adiga",
+  "Agarwal",
+  "Ahluwalia",
+  "Ahuja",
+  "Arora",
+  "Asan",
+  "Bandopadhyay",
+  "Banerjee",
+  "Bharadwaj",
+  "Bhat",
+  "Butt",
+  "Bhattacharya",
+  "Bhattathiri",
+  "Chaturvedi",
+  "Chattopadhyay",
+  "Chopra",
+  "Desai",
+  "Deshpande",
+  "Devar",
+  "Dhawan",
+  "Dubashi",
+  "Dutta",
+  "Dwivedi",
+  "Embranthiri",
+  "Ganaka",
+  "Gandhi",
+  "Gill",
+  "Gowda",
+  "Guha",
+  "Guneta",
+  "Gupta",
+  "Iyer",
+  "Iyengar",
+  "Jain",
+  "Jha",
+  "Johar",
+  "Joshi",
+  "Kakkar",
+  "Kaniyar",
+  "Kapoor",
+  "Kaul",
+  "Kaur",
+  "Khan",
+  "Khanna",
+  "Khatri",
+  "Kocchar",
+  "Mahajan",
+  "Malik",
+  "Marar",
+  "Menon",
+  "Mehra",
+  "Mehrotra",
+  "Mishra",
+  "Mukhopadhyay",
+  "Nayar",
+  "Naik",
+  "Nair",
+  "Nambeesan",
+  "Namboothiri",
+  "Nehru",
+  "Pandey",
+  "Panicker",
+  "Patel",
+  "Patil",
+  "Pilla",
+  "Pillai",
+  "Pothuvaal",
+  "Prajapat",
+  "Rana",
+  "Reddy",
+  "Saini",
+  "Sethi",
+  "Shah",
+  "Sharma",
+  "Shukla",
+  "Singh",
+  "Sinha",
+  "Somayaji",
+  "Tagore",
+  "Talwar",
+  "Tandon",
+  "Trivedi",
+  "Varrier",
+  "Varma",
+  "Varman",
+  "Verma"
+];
+
+},{}],339:[function(require,module,exports){
+module["exports"] = [
+  "+91###-###-####",
+  "+91##########",
+  "+91-###-#######"
+];
+
+},{}],340:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":339,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],341:[function(require,module,exports){
+module["exports"] = [
+  "United States",
+  "United States of America",
+  "USA"
+];
+
+},{}],342:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.default_country = require("./default_country");
+address.postcode_by_state = require("./postcode_by_state");
+
+},{"./default_country":341,"./postcode_by_state":343}],343:[function(require,module,exports){
+module["exports"] = {
+  "AL": "350##",
+  "AK": "995##",
+  "AS": "967##",
+  "AZ": "850##",
+  "AR": "717##",
+  "CA": "900##",
+  "CO": "800##",
+  "CT": "061##",
+  "DC": "204##",
+  "DE": "198##",
+  "FL": "322##",
+  "GA": "301##",
+  "HI": "967##",
+  "ID": "832##",
+  "IL": "600##",
+  "IN": "463##",
+  "IA": "510##",
+  "KS": "666##",
+  "KY": "404##",
+  "LA": "701##",
+  "ME": "042##",
+  "MD": "210##",
+  "MA": "026##",
+  "MI": "480##",
+  "MN": "555##",
+  "MS": "387##",
+  "MO": "650##",
+  "MT": "590##",
+  "NE": "688##",
+  "NV": "898##",
+  "NH": "036##",
+  "NJ": "076##",
+  "NM": "880##",
+  "NY": "122##",
+  "NC": "288##",
+  "ND": "586##",
+  "OH": "444##",
+  "OK": "730##",
+  "OR": "979##",
+  "PA": "186##",
+  "RI": "029##",
+  "SC": "299##",
+  "SD": "577##",
+  "TN": "383##",
+  "TX": "798##",
+  "UT": "847##",
+  "VT": "050##",
+  "VA": "222##",
+  "WA": "990##",
+  "WV": "247##",
+  "WI": "549##",
+  "WY": "831##"
+};
+
+},{}],344:[function(require,module,exports){
+var en_US = {};
+module['exports'] = en_US;
+en_US.title = "United States (English)";
+en_US.internet = require("./internet");
+en_US.address = require("./address");
+en_US.phone_number = require("./phone_number");
+
+},{"./address":342,"./internet":346,"./phone_number":349}],345:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "us",
+  "biz",
+  "info",
+  "name",
+  "net",
+  "org"
+];
+
+},{}],346:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":345,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],347:[function(require,module,exports){
+module["exports"] = [
+  "201",
+  "202",
+  "203",
+  "205",
+  "206",
+  "207",
+  "208",
+  "209",
+  "210",
+  "212",
+  "213",
+  "214",
+  "215",
+  "216",
+  "217",
+  "218",
+  "219",
+  "224",
+  "225",
+  "227",
+  "228",
+  "229",
+  "231",
+  "234",
+  "239",
+  "240",
+  "248",
+  "251",
+  "252",
+  "253",
+  "254",
+  "256",
+  "260",
+  "262",
+  "267",
+  "269",
+  "270",
+  "276",
+  "281",
+  "283",
+  "301",
+  "302",
+  "303",
+  "304",
+  "305",
+  "307",
+  "308",
+  "309",
+  "310",
+  "312",
+  "313",
+  "314",
+  "315",
+  "316",
+  "317",
+  "318",
+  "319",
+  "320",
+  "321",
+  "323",
+  "330",
+  "331",
+  "334",
+  "336",
+  "337",
+  "339",
+  "347",
+  "351",
+  "352",
+  "360",
+  "361",
+  "386",
+  "401",
+  "402",
+  "404",
+  "405",
+  "406",
+  "407",
+  "408",
+  "409",
+  "410",
+  "412",
+  "413",
+  "414",
+  "415",
+  "417",
+  "419",
+  "423",
+  "424",
+  "425",
+  "434",
+  "435",
+  "440",
+  "443",
+  "445",
+  "464",
+  "469",
+  "470",
+  "475",
+  "478",
+  "479",
+  "480",
+  "484",
+  "501",
+  "502",
+  "503",
+  "504",
+  "505",
+  "507",
+  "508",
+  "509",
+  "510",
+  "512",
+  "513",
+  "515",
+  "516",
+  "517",
+  "518",
+  "520",
+  "530",
+  "540",
+  "541",
+  "551",
+  "557",
+  "559",
+  "561",
+  "562",
+  "563",
+  "564",
+  "567",
+  "570",
+  "571",
+  "573",
+  "574",
+  "580",
+  "585",
+  "586",
+  "601",
+  "602",
+  "603",
+  "605",
+  "606",
+  "607",
+  "608",
+  "609",
+  "610",
+  "612",
+  "614",
+  "615",
+  "616",
+  "617",
+  "618",
+  "619",
+  "620",
+  "623",
+  "626",
+  "630",
+  "631",
+  "636",
+  "641",
+  "646",
+  "650",
+  "651",
+  "660",
+  "661",
+  "662",
+  "667",
+  "678",
+  "682",
+  "701",
+  "702",
+  "703",
+  "704",
+  "706",
+  "707",
+  "708",
+  "712",
+  "713",
+  "714",
+  "715",
+  "716",
+  "717",
+  "718",
+  "719",
+  "720",
+  "724",
+  "727",
+  "731",
+  "732",
+  "734",
+  "737",
+  "740",
+  "754",
+  "757",
+  "760",
+  "763",
+  "765",
+  "770",
+  "772",
+  "773",
+  "774",
+  "775",
+  "781",
+  "785",
+  "786",
+  "801",
+  "802",
+  "803",
+  "804",
+  "805",
+  "806",
+  "808",
+  "810",
+  "812",
+  "813",
+  "814",
+  "815",
+  "816",
+  "817",
+  "818",
+  "828",
+  "830",
+  "831",
+  "832",
+  "835",
+  "843",
+  "845",
+  "847",
+  "848",
+  "850",
+  "856",
+  "857",
+  "858",
+  "859",
+  "860",
+  "862",
+  "863",
+  "864",
+  "865",
+  "870",
+  "872",
+  "878",
+  "901",
+  "903",
+  "904",
+  "906",
+  "907",
+  "908",
+  "909",
+  "910",
+  "912",
+  "913",
+  "914",
+  "915",
+  "916",
+  "917",
+  "918",
+  "919",
+  "920",
+  "925",
+  "928",
+  "931",
+  "936",
+  "937",
+  "940",
+  "941",
+  "947",
+  "949",
+  "952",
+  "954",
+  "956",
+  "959",
+  "970",
+  "971",
+  "972",
+  "973",
+  "975",
+  "978",
+  "979",
+  "980",
+  "984",
+  "985",
+  "989"
+];
+
+},{}],348:[function(require,module,exports){
+module.exports=require(347)
+},{"/Users/a/dev/faker.js/lib/locales/en_US/phone_number/area_code.js":347}],349:[function(require,module,exports){
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.area_code = require("./area_code");
+phone_number.exchange_code = require("./exchange_code");
+
+},{"./area_code":347,"./exchange_code":348}],350:[function(require,module,exports){
+module.exports=require(272)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/address/building_number.js":272}],351:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix}"
+];
+
+},{}],352:[function(require,module,exports){
+module["exports"] = [
+  "Bondi",
+  "Burleigh Heads",
+  "Carlton",
+  "Fitzroy",
+  "Fremantle",
+  "Glenelg",
+  "Manly",
+  "Noosa",
+  "Stones Corner",
+  "St Kilda",
+  "Surry Hills",
+  "Yarra Valley"
+];
+
+},{}],353:[function(require,module,exports){
+module.exports=require(273)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/address/default_country.js":273}],354:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.street_root = require("./street_root");
+address.street_name = require("./street_name");
+address.city_prefix = require("./city_prefix");
+address.city = require("./city");
+address.state_abbr = require("./state_abbr");
+address.region = require("./region");
+address.state = require("./state");
+address.postcode = require("./postcode");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.default_country = require("./default_country");
+
+},{"./building_number":350,"./city":351,"./city_prefix":352,"./default_country":353,"./postcode":355,"./region":356,"./state":357,"./state_abbr":358,"./street_name":359,"./street_root":360,"./street_suffix":361}],355:[function(require,module,exports){
+module.exports=require(275)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/address/postcode.js":275}],356:[function(require,module,exports){
+module["exports"] = [
+  "South East Queensland",
+  "Wide Bay Burnett",
+  "Margaret River",
+  "Port Pirie",
+  "Gippsland",
+  "Elizabeth",
+  "Barossa"
+];
+
+},{}],357:[function(require,module,exports){
+module.exports=require(276)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/address/state.js":276}],358:[function(require,module,exports){
+module.exports=require(277)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/address/state_abbr.js":277}],359:[function(require,module,exports){
+module.exports=require(109)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/street_name.js":109}],360:[function(require,module,exports){
+module["exports"] = [
+  "Ramsay Street",
+  "Bonnie Doon",
+  "Cavill Avenue",
+  "Queen Street"
+];
+
+},{}],361:[function(require,module,exports){
+module.exports=require(278)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/address/street_suffix.js":278}],362:[function(require,module,exports){
+module.exports=require(279)
+},{"./suffix":363,"/Users/a/dev/faker.js/lib/locales/en_AU/company/index.js":279}],363:[function(require,module,exports){
+module.exports=require(280)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/company/suffix.js":280}],364:[function(require,module,exports){
+var en_au_ocker = {};
+module['exports'] = en_au_ocker;
+en_au_ocker.title = "Australia Ocker (English)";
+en_au_ocker.name = require("./name");
+en_au_ocker.company = require("./company");
+en_au_ocker.internet = require("./internet");
+en_au_ocker.address = require("./address");
+en_au_ocker.phone_number = require("./phone_number");
+
+},{"./address":354,"./company":362,"./internet":366,"./name":368,"./phone_number":372}],365:[function(require,module,exports){
+module.exports=require(282)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/internet/domain_suffix.js":282}],366:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":365,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],367:[function(require,module,exports){
+module["exports"] = [
+  "Charlotte",
+  "Ava",
+  "Chloe",
+  "Emily",
+  "Olivia",
+  "Zoe",
+  "Lily",
+  "Sophie",
+  "Amelia",
+  "Sofia",
+  "Ella",
+  "Isabella",
+  "Ruby",
+  "Sienna",
+  "Mia+3",
+  "Grace",
+  "Emma",
+  "Ivy",
+  "Layla",
+  "Abigail",
+  "Isla",
+  "Hannah",
+  "Zara",
+  "Lucy",
+  "Evie",
+  "Annabelle",
+  "Madison",
+  "Alice",
+  "Georgia",
+  "Maya",
+  "Madeline",
+  "Audrey",
+  "Scarlett",
+  "Isabelle",
+  "Chelsea",
+  "Mila",
+  "Holly",
+  "Indiana",
+  "Poppy",
+  "Harper",
+  "Sarah",
+  "Alyssa",
+  "Jasmine",
+  "Imogen",
+  "Hayley",
+  "Pheobe",
+  "Eva",
+  "Evelyn",
+  "Mackenzie",
+  "Ayla",
+  "Oliver",
+  "Jack",
+  "Jackson",
+  "William",
+  "Ethan",
+  "Charlie",
+  "Lucas",
+  "Cooper",
+  "Lachlan",
+  "Noah",
+  "Liam",
+  "Alexander",
+  "Max",
+  "Isaac",
+  "Thomas",
+  "Xavier",
+  "Oscar",
+  "Benjamin",
+  "Aiden",
+  "Mason",
+  "Samuel",
+  "James",
+  "Levi",
+  "Riley",
+  "Harrison",
+  "Ryan",
+  "Henry",
+  "Jacob",
+  "Joshua",
+  "Leo",
+  "Zach",
+  "Harry",
+  "Hunter",
+  "Flynn",
+  "Archie",
+  "Tyler",
+  "Elijah",
+  "Hayden",
+  "Jayden",
+  "Blake",
+  "Archer",
+  "Ashton",
+  "Sebastian",
+  "Zachery",
+  "Lincoln",
+  "Mitchell",
+  "Luca",
+  "Nathan",
+  "Kai",
+  "Connor",
+  "Tom",
+  "Nigel",
+  "Matt",
+  "Sean"
+];
+
+},{}],368:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.ocker_first_name = require("./ocker_first_name");
+
+},{"./first_name":367,"./last_name":369,"./ocker_first_name":370}],369:[function(require,module,exports){
+module["exports"] = [
+  "Smith",
+  "Jones",
+  "Williams",
+  "Brown",
+  "Wilson",
+  "Taylor",
+  "Morton",
+  "White",
+  "Martin",
+  "Anderson",
+  "Thompson",
+  "Nguyen",
+  "Thomas",
+  "Walker",
+  "Harris",
+  "Lee",
+  "Ryan",
+  "Robinson",
+  "Kelly",
+  "King",
+  "Rausch",
+  "Ridge",
+  "Connolly",
+  "LeQuesne"
+];
+
+},{}],370:[function(require,module,exports){
+module["exports"] = [
+  "Bazza",
+  "Bluey",
+  "Davo",
+  "Johno",
+  "Shano",
+  "Shazza"
+];
+
+},{}],371:[function(require,module,exports){
+module.exports=require(287)
+},{"/Users/a/dev/faker.js/lib/locales/en_AU/phone_number/formats.js":287}],372:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":371,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],373:[function(require,module,exports){
+module["exports"] = [
+  " s/n.",
+  ", #",
+  ", ##",
+  " #",
+  " ##"
+];
+
+},{}],374:[function(require,module,exports){
+module.exports=require(351)
+},{"/Users/a/dev/faker.js/lib/locales/en_au_ocker/address/city.js":351}],375:[function(require,module,exports){
+module["exports"] = [
+  "Parla",
+  "Telde",
+  "Baracaldo",
+  "San Fernando",
+  "Torrevieja",
+  "Lugo",
+  "Santiago de Compostela",
+  "Gerona",
+  "Cáceres",
+  "Lorca",
+  "Coslada",
+  "Talavera de la Reina",
+  "El Puerto de Santa María",
+  "Cornellá de Llobregat",
+  "Avilés",
+  "Palencia",
+  "Gecho",
+  "Orihuela",
+  "Pontevedra",
+  "Pozuelo de Alarcón",
+  "Toledo",
+  "El Ejido",
+  "Guadalajara",
+  "Gandía",
+  "Ceuta",
+  "Ferrol",
+  "Chiclana de la Frontera",
+  "Manresa",
+  "Roquetas de Mar",
+  "Ciudad Real",
+  "Rubí",
+  "Benidorm",
+  "San Sebastían de los Reyes",
+  "Ponferrada",
+  "Zamora",
+  "Alcalá de Guadaira",
+  "Fuengirola",
+  "Mijas",
+  "Sanlúcar de Barrameda",
+  "La Línea de la Concepción",
+  "Majadahonda",
+  "Sagunto",
+  "El Prat de LLobregat",
+  "Viladecans",
+  "Linares",
+  "Alcoy",
+  "Irún",
+  "Estepona",
+  "Torremolinos",
+  "Rivas-Vaciamadrid",
+  "Molina de Segura",
+  "Paterna",
+  "Granollers",
+  "Santa Lucía de Tirajana",
+  "Motril",
+  "Cerdañola del Vallés",
+  "Arrecife",
+  "Segovia",
+  "Torrelavega",
+  "Elda",
+  "Mérida",
+  "Ávila",
+  "Valdemoro",
+  "Cuenta",
+  "Collado Villalba",
+  "Benalmádena",
+  "Mollet del Vallés",
+  "Puertollano",
+  "Madrid",
+  "Barcelona",
+  "Valencia",
+  "Sevilla",
+  "Zaragoza",
+  "Málaga",
+  "Murcia",
+  "Palma de Mallorca",
+  "Las Palmas de Gran Canaria",
+  "Bilbao",
+  "Córdoba",
+  "Alicante",
+  "Valladolid",
+  "Vigo",
+  "Gijón",
+  "Hospitalet de LLobregat",
+  "La Coruña",
+  "Granada",
+  "Vitoria",
+  "Elche",
+  "Santa Cruz de Tenerife",
+  "Oviedo",
+  "Badalona",
+  "Cartagena",
+  "Móstoles",
+  "Jerez de la Frontera",
+  "Tarrasa",
+  "Sabadell",
+  "Alcalá de Henares",
+  "Pamplona",
+  "Fuenlabrada",
+  "Almería",
+  "San Sebastián",
+  "Leganés",
+  "Santander",
+  "Burgos",
+  "Castellón de la Plana",
+  "Alcorcón",
+  "Albacete",
+  "Getafe",
+  "Salamanca",
+  "Huelva",
+  "Logroño",
+  "Badajoz",
+  "San Cristróbal de la Laguna",
+  "León",
+  "Tarragona",
+  "Cádiz",
+  "Lérida",
+  "Marbella",
+  "Mataró",
+  "Dos Hermanas",
+  "Santa Coloma de Gramanet",
+  "Jaén",
+  "Algeciras",
+  "Torrejón de Ardoz",
+  "Orense",
+  "Alcobendas",
+  "Reus",
+  "Calahorra",
+  "Inca"
+];
+
+},{}],376:[function(require,module,exports){
+module["exports"] = [
+  "Afganistán",
+  "Albania",
+  "Argelia",
+  "Andorra",
+  "Angola",
+  "Argentina",
+  "Armenia",
+  "Aruba",
+  "Australia",
+  "Austria",
+  "Azerbayán",
+  "Bahamas",
+  "Barein",
+  "Bangladesh",
+  "Barbados",
+  "Bielorusia",
+  "Bélgica",
+  "Belice",
+  "Bermuda",
+  "Bután",
+  "Bolivia",
+  "Bosnia Herzegovina",
+  "Botswana",
+  "Brasil",
+  "Bulgaria",
+  "Burkina Faso",
+  "Burundi",
+  "Camboya",
+  "Camerún",
+  "Canada",
+  "Cabo Verde",
+  "Islas Caimán",
+  "Chad",
+  "Chile",
+  "China",
+  "Isla de Navidad",
+  "Colombia",
+  "Comodos",
+  "Congo",
+  "Costa Rica",
+  "Costa de Marfil",
+  "Croacia",
+  "Cuba",
+  "Chipre",
+  "República Checa",
+  "Dinamarca",
+  "Dominica",
+  "República Dominicana",
+  "Ecuador",
+  "Egipto",
+  "El Salvador",
+  "Guinea Ecuatorial",
+  "Eritrea",
+  "Estonia",
+  "Etiopía",
+  "Islas Faro",
+  "Fiji",
+  "Finlandia",
+  "Francia",
+  "Gabón",
+  "Gambia",
+  "Georgia",
+  "Alemania",
+  "Ghana",
+  "Grecia",
+  "Groenlandia",
+  "Granada",
+  "Guadalupe",
+  "Guam",
+  "Guatemala",
+  "Guinea",
+  "Guinea-Bisau",
+  "Guayana",
+  "Haiti",
+  "Honduras",
+  "Hong Kong",
+  "Hungria",
+  "Islandia",
+  "India",
+  "Indonesia",
+  "Iran",
+  "Irak",
+  "Irlanda",
+  "Italia",
+  "Jamaica",
+  "Japón",
+  "Jordania",
+  "Kazajistan",
+  "Kenia",
+  "Kiribati",
+  "Corea",
+  "Kuwait",
+  "Letonia",
+  "Líbano",
+  "Liberia",
+  "Liechtenstein",
+  "Lituania",
+  "Luxemburgo",
+  "Macao",
+  "Macedonia",
+  "Madagascar",
+  "Malawi",
+  "Malasia",
+  "Maldivas",
+  "Mali",
+  "Malta",
+  "Martinica",
+  "Mauritania",
+  "Méjico",
+  "Micronesia",
+  "Moldavia",
+  "Mónaco",
+  "Mongolia",
+  "Montenegro",
+  "Montserrat",
+  "Marruecos",
+  "Mozambique",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Holanda",
+  "Nueva Zelanda",
+  "Nicaragua",
+  "Niger",
+  "Nigeria",
+  "Noruega",
+  "Omán",
+  "Pakistan",
+  "Panamá",
+  "Papúa Nueva Guinea",
+  "Paraguay",
+  "Perú",
+  "Filipinas",
+  "Poland",
+  "Portugal",
+  "Puerto Rico",
+  "Rusia",
+  "Ruanda",
+  "Samoa",
+  "San Marino",
+  "Santo Tomé y Principe",
+  "Arabia Saudí",
+  "Senegal",
+  "Serbia",
+  "Seychelles",
+  "Sierra Leona",
+  "Singapur",
+  "Eslovaquia",
+  "Eslovenia",
+  "Somalia",
+  "España",
+  "Sri Lanka",
+  "Sudán",
+  "Suriname",
+  "Suecia",
+  "Suiza",
+  "Siria",
+  "Taiwan",
+  "Tajikistan",
+  "Tanzania",
+  "Tailandia",
+  "Timor-Leste",
+  "Togo",
+  "Tonga",
+  "Trinidad y Tobago",
+  "Tunez",
+  "Turquia",
+  "Uganda",
+  "Ucrania",
+  "Emiratos Árabes Unidos",
+  "Reino Unido",
+  "Estados Unidos de América",
+  "Uruguay",
+  "Uzbekistan",
+  "Vanuatu",
+  "Venezuela",
+  "Vietnam",
+  "Yemen",
+  "Zambia",
+  "Zimbabwe"
+];
+
+},{}],377:[function(require,module,exports){
+module["exports"] = [
+  "España"
+];
+
+},{}],378:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.province = require("./province");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.time_zone = require("./time_zone");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":373,"./city":374,"./city_prefix":375,"./country":376,"./default_country":377,"./postcode":379,"./province":380,"./secondary_address":381,"./state":382,"./state_abbr":383,"./street_address":384,"./street_name":385,"./street_suffix":386,"./time_zone":387}],379:[function(require,module,exports){
+module["exports"] = [
+  "#####"
+];
+
+},{}],380:[function(require,module,exports){
+module["exports"] = [
+  "Álava",
+  "Albacete",
+  "Alicante",
+  "Almería",
+  "Asturias",
+  "Ávila",
+  "Badajoz",
+  "Barcelona",
+  "Burgos",
+  "Cantabria",
+  "Castellón",
+  "Ciudad Real",
+  "Cuenca",
+  "Cáceres",
+  "Cádiz",
+  "Córdoba",
+  "Gerona",
+  "Granada",
+  "Guadalajara",
+  "Guipúzcoa",
+  "Huelva",
+  "Huesca",
+  "Islas Baleares",
+  "Jaén",
+  "La Coruña",
+  "La Rioja",
+  "Las Palmas",
+  "León",
+  "Lugo",
+  "lérida",
+  "Madrid",
+  "Murcia",
+  "Málaga",
+  "Navarra",
+  "Orense",
+  "Palencia",
+  "Pontevedra",
+  "Salamanca",
+  "Santa Cruz de Tenerife",
+  "Segovia",
+  "Sevilla",
+  "Soria",
+  "Tarragona",
+  "Teruel",
+  "Toledo",
+  "Valencia",
+  "Valladolid",
+  "Vizcaya",
+  "Zamora",
+  "Zaragoza"
+];
+
+},{}],381:[function(require,module,exports){
+module["exports"] = [
+  "Esc. ###",
+  "Puerta ###"
+];
+
+},{}],382:[function(require,module,exports){
+module["exports"] = [
+  "Andalucía",
+  "Aragón",
+  "Principado de Asturias",
+  "Baleares",
+  "Canarias",
+  "Cantabria",
+  "Castilla-La Mancha",
+  "Castilla y León",
+  "Cataluña",
+  "Comunidad Valenciana",
+  "Extremadura",
+  "Galicia",
+  "La Rioja",
+  "Comunidad de Madrid",
+  "Navarra",
+  "País Vasco",
+  "Región de Murcia"
+];
+
+},{}],383:[function(require,module,exports){
+module["exports"] = [
+  "And",
+  "Ara",
+  "Ast",
+  "Bal",
+  "Can",
+  "Cbr",
+  "Man",
+  "Leo",
+  "Cat",
+  "Com",
+  "Ext",
+  "Gal",
+  "Rio",
+  "Mad",
+  "Nav",
+  "Vas",
+  "Mur"
+];
+
+},{}],384:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name}#{building_number}",
+  "#{street_name}#{building_number} #{secondary_address}"
+];
+
+},{}],385:[function(require,module,exports){
+module["exports"] = [
+  "#{street_suffix} #{Name.first_name}",
+  "#{street_suffix} #{Name.first_name} #{Name.last_name}"
+];
+
+},{}],386:[function(require,module,exports){
+module["exports"] = [
+  "Aldea",
+  "Apartamento",
+  "Arrabal",
+  "Arroyo",
+  "Avenida",
+  "Bajada",
+  "Barranco",
+  "Barrio",
+  "Bloque",
+  "Calle",
+  "Calleja",
+  "Camino",
+  "Carretera",
+  "Caserio",
+  "Colegio",
+  "Colonia",
+  "Conjunto",
+  "Cuesta",
+  "Chalet",
+  "Edificio",
+  "Entrada",
+  "Escalinata",
+  "Explanada",
+  "Extramuros",
+  "Extrarradio",
+  "Ferrocarril",
+  "Glorieta",
+  "Gran Subida",
+  "Grupo",
+  "Huerta",
+  "Jardines",
+  "Lado",
+  "Lugar",
+  "Manzana",
+  "Masía",
+  "Mercado",
+  "Monte",
+  "Muelle",
+  "Municipio",
+  "Parcela",
+  "Parque",
+  "Partida",
+  "Pasaje",
+  "Paseo",
+  "Plaza",
+  "Poblado",
+  "Polígono",
+  "Prolongación",
+  "Puente",
+  "Puerta",
+  "Quinta",
+  "Ramal",
+  "Rambla",
+  "Rampa",
+  "Riera",
+  "Rincón",
+  "Ronda",
+  "Rua",
+  "Salida",
+  "Sector",
+  "Sección",
+  "Senda",
+  "Solar",
+  "Subida",
+  "Terrenos",
+  "Torrente",
+  "Travesía",
+  "Urbanización",
+  "Vía",
+  "Vía Pública"
+];
+
+},{}],387:[function(require,module,exports){
+module["exports"] = [
+  "Pacífico/Midway",
+  "Pacífico/Pago_Pago",
+  "Pacífico/Honolulu",
+  "America/Juneau",
+  "America/Los_Angeles",
+  "America/Tijuana",
+  "America/Denver",
+  "America/Phoenix",
+  "America/Chihuahua",
+  "America/Mazatlan",
+  "America/Chicago",
+  "America/Regina",
+  "America/Mexico_City",
+  "America/Mexico_City",
+  "America/Monterrey",
+  "America/Guatemala",
+  "America/New_York",
+  "America/Indiana/Indianapolis",
+  "America/Bogota",
+  "America/Lima",
+  "America/Lima",
+  "America/Halifax",
+  "America/Caracas",
+  "America/La_Paz",
+  "America/Santiago",
+  "America/St_Johns",
+  "America/Sao_Paulo",
+  "America/Argentina/Buenos_Aires",
+  "America/Guyana",
+  "America/Godthab",
+  "Atlantic/South_Georgia",
+  "Atlantic/Azores",
+  "Atlantic/Cape_Verde",
+  "Europa/Dublin",
+  "Europa/London",
+  "Europa/Lisbon",
+  "Europa/London",
+  "Africa/Casablanca",
+  "Africa/Monrovia",
+  "Etc/UTC",
+  "Europa/Belgrade",
+  "Europa/Bratislava",
+  "Europa/Budapest",
+  "Europa/Ljubljana",
+  "Europa/Prague",
+  "Europa/Sarajevo",
+  "Europa/Skopje",
+  "Europa/Warsaw",
+  "Europa/Zagreb",
+  "Europa/Brussels",
+  "Europa/Copenhagen",
+  "Europa/Madrid",
+  "Europa/Paris",
+  "Europa/Amsterdam",
+  "Europa/Berlin",
+  "Europa/Berlin",
+  "Europa/Rome",
+  "Europa/Stockholm",
+  "Europa/Vienna",
+  "Africa/Algiers",
+  "Europa/Bucharest",
+  "Africa/Cairo",
+  "Europa/Helsinki",
+  "Europa/Kiev",
+  "Europa/Riga",
+  "Europa/Sofia",
+  "Europa/Tallinn",
+  "Europa/Vilnius",
+  "Europa/Athens",
+  "Europa/Istanbul",
+  "Europa/Minsk",
+  "Asia/Jerusalen",
+  "Africa/Harare",
+  "Africa/Johannesburg",
+  "Europa/Moscú",
+  "Europa/Moscú",
+  "Europa/Moscú",
+  "Asia/Kuwait",
+  "Asia/Riyadh",
+  "Africa/Nairobi",
+  "Asia/Baghdad",
+  "Asia/Tehran",
+  "Asia/Muscat",
+  "Asia/Muscat",
+  "Asia/Baku",
+  "Asia/Tbilisi",
+  "Asia/Yerevan",
+  "Asia/Kabul",
+  "Asia/Yekaterinburg",
+  "Asia/Karachi",
+  "Asia/Karachi",
+  "Asia/Tashkent",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kathmandu",
+  "Asia/Dhaka",
+  "Asia/Dhaka",
+  "Asia/Colombo",
+  "Asia/Almaty",
+  "Asia/Novosibirsk",
+  "Asia/Rangoon",
+  "Asia/Bangkok",
+  "Asia/Bangkok",
+  "Asia/Jakarta",
+  "Asia/Krasnoyarsk",
+  "Asia/Shanghai",
+  "Asia/Chongqing",
+  "Asia/Hong_Kong",
+  "Asia/Urumqi",
+  "Asia/Kuala_Lumpur",
+  "Asia/Singapore",
+  "Asia/Taipei",
+  "Australia/Perth",
+  "Asia/Irkutsk",
+  "Asia/Ulaanbaatar",
+  "Asia/Seoul",
+  "Asia/Tokyo",
+  "Asia/Tokyo",
+  "Asia/Tokyo",
+  "Asia/Yakutsk",
+  "Australia/Darwin",
+  "Australia/Adelaide",
+  "Australia/Melbourne",
+  "Australia/Melbourne",
+  "Australia/Sydney",
+  "Australia/Brisbane",
+  "Australia/Hobart",
+  "Asia/Vladivostok",
+  "Pacífico/Guam",
+  "Pacífico/Port_Moresby",
+  "Asia/Magadan",
+  "Asia/Magadan",
+  "Pacífico/Noumea",
+  "Pacífico/Fiji",
+  "Asia/Kamchatka",
+  "Pacífico/Majuro",
+  "Pacífico/Auckland",
+  "Pacífico/Auckland",
+  "Pacífico/Tongatapu",
+  "Pacífico/Fakaofo",
+  "Pacífico/Apia"
+];
+
+},{}],388:[function(require,module,exports){
+module["exports"] = [
+  "6##-###-###",
+  "6##.###.###",
+  "6## ### ###",
+  "6########"
+];
+
+},{}],389:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":388,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],390:[function(require,module,exports){
+module["exports"] = [
+  "Adaptativo",
+  "Avanzado",
+  "Asimilado",
+  "Automatizado",
+  "Equilibrado",
+  "Centrado en el negocio",
+  "Centralizado",
+  "Clonado",
+  "Compatible",
+  "Configurable",
+  "Multi grupo",
+  "Multi plataforma",
+  "Centrado en el usuario",
+  "Configurable",
+  "Descentralizado",
+  "Digitalizado",
+  "Distribuido",
+  "Diverso",
+  "Reducido",
+  "Mejorado",
+  "Para toda la empresa",
+  "Ergonomico",
+  "Exclusivo",
+  "Expandido",
+  "Extendido",
+  "Cara a cara",
+  "Enfocado",
+  "Totalmente configurable",
+  "Fundamental",
+  "Orígenes",
+  "Horizontal",
+  "Implementado",
+  "Innovador",
+  "Integrado",
+  "Intuitivo",
+  "Inverso",
+  "Gestionado",
+  "Obligatorio",
+  "Monitorizado",
+  "Multi canal",
+  "Multi lateral",
+  "Multi capa",
+  "En red",
+  "Orientado a objetos",
+  "Open-source",
+  "Operativo",
+  "Optimizado",
+  "Opcional",
+  "Organico",
+  "Organizado",
+  "Perseverando",
+  "Persistente",
+  "en fases",
+  "Polarizado",
+  "Pre-emptivo",
+  "Proactivo",
+  "Enfocado a benficios",
+  "Profundo",
+  "Programable",
+  "Progresivo",
+  "Public-key",
+  "Enfocado en la calidad",
+  "Reactivo",
+  "Realineado",
+  "Re-contextualizado",
+  "Re-implementado",
+  "Reducido",
+  "Ingenieria inversa",
+  "Robusto",
+  "Fácil",
+  "Seguro",
+  "Auto proporciona",
+  "Compartible",
+  "Intercambiable",
+  "Sincronizado",
+  "Orientado a equipos",
+  "Total",
+  "Universal",
+  "Mejorado",
+  "Actualizable",
+  "Centrado en el usuario",
+  "Amigable",
+  "Versatil",
+  "Virtual",
+  "Visionario"
+];
+
+},{}],391:[function(require,module,exports){
+module["exports"] = [
+  "24 horas",
+  "24/7",
+  "3rd generación",
+  "4th generación",
+  "5th generación",
+  "6th generación",
+  "analizada",
+  "asimétrica",
+  "asíncrona",
+  "monitorizada por red",
+  "bidireccional",
+  "bifurcada",
+  "generada por el cliente",
+  "cliente servidor",
+  "coherente",
+  "cohesiva",
+  "compuesto",
+  "sensible al contexto",
+  "basado en el contexto",
+  "basado en contenido",
+  "dedicada",
+  "generado por la demanda",
+  "didactica",
+  "direccional",
+  "discreta",
+  "dinámica",
+  "potenciada",
+  "acompasada",
+  "ejecutiva",
+  "explícita",
+  "tolerante a fallos",
+  "innovadora",
+  "amplio ábanico",
+  "global",
+  "heurística",
+  "alto nivel",
+  "holística",
+  "homogénea",
+  "hibrida",
+  "incremental",
+  "intangible",
+  "interactiva",
+  "intermedia",
+  "local",
+  "logística",
+  "maximizada",
+  "metódica",
+  "misión crítica",
+  "móbil",
+  "modular",
+  "motivadora",
+  "multimedia",
+  "multiestado",
+  "multitarea",
+  "nacional",
+  "basado en necesidades",
+  "neutral",
+  "nueva generación",
+  "no-volátil",
+  "orientado a objetos",
+  "óptima",
+  "optimizada",
+  "radical",
+  "tiempo real",
+  "recíproca",
+  "regional",
+  "escalable",
+  "secundaria",
+  "orientada a soluciones",
+  "estable",
+  "estatica",
+  "sistemática",
+  "sistémica",
+  "tangible",
+  "terciaria",
+  "transicional",
+  "uniforme",
+  "valor añadido",
+  "vía web",
+  "defectos cero",
+  "tolerancia cero"
+];
+
+},{}],392:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.noun = require("./noun");
+company.descriptor = require("./descriptor");
+company.adjective = require("./adjective");
+company.name = require("./name");
+
+},{"./adjective":390,"./descriptor":391,"./name":393,"./noun":394,"./suffix":395}],393:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name} y #{Name.last_name}",
+  "#{Name.last_name} #{Name.last_name} #{suffix}",
+  "#{Name.last_name}, #{Name.last_name} y #{Name.last_name} Asociados"
+];
+
+},{}],394:[function(require,module,exports){
+module["exports"] = [
+  "habilidad",
+  "acceso",
+  "adaptador",
+  "algoritmo",
+  "alianza",
+  "analista",
+  "aplicación",
+  "enfoque",
+  "arquitectura",
+  "archivo",
+  "inteligencia artificial",
+  "array",
+  "actitud",
+  "medición",
+  "gestión presupuestaria",
+  "capacidad",
+  "desafío",
+  "circuito",
+  "colaboración",
+  "complejidad",
+  "concepto",
+  "conglomeración",
+  "contingencia",
+  "núcleo",
+  "fidelidad",
+  "base de datos",
+  "data-warehouse",
+  "definición",
+  "emulación",
+  "codificar",
+  "encriptar",
+  "extranet",
+  "firmware",
+  "flexibilidad",
+  "focus group",
+  "previsión",
+  "base de trabajo",
+  "función",
+  "funcionalidad",
+  "Interfaz Gráfica",
+  "groupware",
+  "Interfaz gráfico de usuario",
+  "hardware",
+  "Soporte",
+  "jerarquía",
+  "conjunto",
+  "implementación",
+  "infraestructura",
+  "iniciativa",
+  "instalación",
+  "conjunto de instrucciones",
+  "interfaz",
+  "intranet",
+  "base del conocimiento",
+  "red de area local",
+  "aprovechar",
+  "matrices",
+  "metodologías",
+  "middleware",
+  "migración",
+  "modelo",
+  "moderador",
+  "monitorizar",
+  "arquitectura abierta",
+  "sistema abierto",
+  "orquestar",
+  "paradigma",
+  "paralelismo",
+  "política",
+  "portal",
+  "estructura de precios",
+  "proceso de mejora",
+  "producto",
+  "productividad",
+  "proyecto",
+  "proyección",
+  "protocolo",
+  "línea segura",
+  "software",
+  "solución",
+  "estandardización",
+  "estrategia",
+  "estructura",
+  "éxito",
+  "superestructura",
+  "soporte",
+  "sinergia",
+  "mediante",
+  "marco de tiempo",
+  "caja de herramientas",
+  "utilización",
+  "website",
+  "fuerza de trabajo"
+];
+
+},{}],395:[function(require,module,exports){
+module["exports"] = [
+  "S.L.",
+  "e Hijos",
+  "S.A.",
+  "Hermanos"
+];
+
+},{}],396:[function(require,module,exports){
+var es = {};
+module['exports'] = es;
+es.title = "Spanish";
+es.address = require("./address");
+es.company = require("./company");
+es.internet = require("./internet");
+es.name = require("./name");
+es.phone_number = require("./phone_number");
+es.cell_phone = require("./cell_phone");
+
+},{"./address":378,"./cell_phone":389,"./company":392,"./internet":399,"./name":401,"./phone_number":408}],397:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "es",
+  "info",
+  "com.es",
+  "org"
+];
+
+},{}],398:[function(require,module,exports){
+module.exports=require(119)
+},{"/Users/a/dev/faker.js/lib/locales/de/internet/free_email.js":119}],399:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":397,"./free_email":398,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],400:[function(require,module,exports){
+module["exports"] = [
+  "Adán",
+  "Agustín",
+  "Alberto",
+  "Alejandro",
+  "Alfonso",
+  "Alfredo",
+  "Andrés",
+  "Antonio",
+  "Armando",
+  "Arturo",
+  "Benito",
+  "Benjamín",
+  "Bernardo",
+  "Carlos",
+  "César",
+  "Claudio",
+  "Clemente",
+  "Cristian",
+  "Cristobal",
+  "Daniel",
+  "David",
+  "Diego",
+  "Eduardo",
+  "Emilio",
+  "Enrique",
+  "Ernesto",
+  "Esteban",
+  "Federico",
+  "Felipe",
+  "Fernando",
+  "Francisco",
+  "Gabriel",
+  "Gerardo",
+  "Germán",
+  "Gilberto",
+  "Gonzalo",
+  "Gregorio",
+  "Guillermo",
+  "Gustavo",
+  "Hernán",
+  "Homero",
+  "Horacio",
+  "Hugo",
+  "Ignacio",
+  "Jacobo",
+  "Jaime",
+  "Javier",
+  "Jerónimo",
+  "Jesús",
+  "Joaquín",
+  "Jorge",
+  "Jorge Luis",
+  "José",
+  "José Eduardo",
+  "José Emilio",
+  "José Luis",
+  "José María",
+  "Juan",
+  "Juan Carlos",
+  "Julio",
+  "Julio César",
+  "Lorenzo",
+  "Lucas",
+  "Luis",
+  "Luis Miguel",
+  "Manuel",
+  "Marco Antonio",
+  "Marcos",
+  "Mariano",
+  "Mario",
+  "Martín",
+  "Mateo",
+  "Miguel",
+  "Miguel Ángel",
+  "Nicolás",
+  "Octavio",
+  "Óscar",
+  "Pablo",
+  "Patricio",
+  "Pedro",
+  "Rafael",
+  "Ramiro",
+  "Ramón",
+  "Raúl",
+  "Ricardo",
+  "Roberto",
+  "Rodrigo",
+  "Rubén",
+  "Salvador",
+  "Samuel",
+  "Sancho",
+  "Santiago",
+  "Sergio",
+  "Teodoro",
+  "Timoteo",
+  "Tomás",
+  "Vicente",
+  "Víctor",
+  "Adela",
+  "Adriana",
+  "Alejandra",
+  "Alicia",
+  "Amalia",
+  "Ana",
+  "Ana Luisa",
+  "Ana María",
+  "Andrea",
+  "Anita",
+  "Ángela",
+  "Antonia",
+  "Ariadna",
+  "Barbara",
+  "Beatriz",
+  "Berta",
+  "Blanca",
+  "Caridad",
+  "Carla",
+  "Carlota",
+  "Carmen",
+  "Carolina",
+  "Catalina",
+  "Cecilia",
+  "Clara",
+  "Claudia",
+  "Concepción",
+  "Conchita",
+  "Cristina",
+  "Daniela",
+  "Débora",
+  "Diana",
+  "Dolores",
+  "Lola",
+  "Dorotea",
+  "Elena",
+  "Elisa",
+  "Eloisa",
+  "Elsa",
+  "Elvira",
+  "Emilia",
+  "Esperanza",
+  "Estela",
+  "Ester",
+  "Eva",
+  "Florencia",
+  "Francisca",
+  "Gabriela",
+  "Gloria",
+  "Graciela",
+  "Guadalupe",
+  "Guillermina",
+  "Inés",
+  "Irene",
+  "Isabel",
+  "Isabela",
+  "Josefina",
+  "Juana",
+  "Julia",
+  "Laura",
+  "Leonor",
+  "Leticia",
+  "Lilia",
+  "Lorena",
+  "Lourdes",
+  "Lucia",
+  "Luisa",
+  "Luz",
+  "Magdalena",
+  "Manuela",
+  "Marcela",
+  "Margarita",
+  "María",
+  "María del Carmen",
+  "María Cristina",
+  "María Elena",
+  "María Eugenia",
+  "María José",
+  "María Luisa",
+  "María Soledad",
+  "María Teresa",
+  "Mariana",
+  "Maricarmen",
+  "Marilu",
+  "Marisol",
+  "Marta",
+  "Mayte",
+  "Mercedes",
+  "Micaela",
+  "Mónica",
+  "Natalia",
+  "Norma",
+  "Olivia",
+  "Patricia",
+  "Pilar",
+  "Ramona",
+  "Raquel",
+  "Rebeca",
+  "Reina",
+  "Rocio",
+  "Rosa",
+  "Rosalia",
+  "Rosario",
+  "Sara",
+  "Silvia",
+  "Sofia",
+  "Soledad",
+  "Sonia",
+  "Susana",
+  "Teresa",
+  "Verónica",
+  "Victoria",
+  "Virginia",
+  "Yolanda"
+];
+
+},{}],401:[function(require,module,exports){
+arguments[4][259][0].apply(exports,arguments)
+},{"./first_name":400,"./last_name":402,"./name":403,"./prefix":404,"./suffix":405,"./title":406,"/Users/a/dev/faker.js/lib/locales/en/name/index.js":259}],402:[function(require,module,exports){
+module["exports"] = [
+  "Abeyta",
+  "Abrego",
+  "Abreu",
+  "Acevedo",
+  "Acosta",
+  "Acuña",
+  "Adame",
+  "Adorno",
+  "Agosto",
+  "Aguayo",
+  "Águilar",
+  "Aguilera",
+  "Aguirre",
+  "Alanis",
+  "Alaniz",
+  "Alarcón",
+  "Alba",
+  "Alcala",
+  "Alcántar",
+  "Alcaraz",
+  "Alejandro",
+  "Alemán",
+  "Alfaro",
+  "Alicea",
+  "Almanza",
+  "Almaraz",
+  "Almonte",
+  "Alonso",
+  "Alonzo",
+  "Altamirano",
+  "Alva",
+  "Alvarado",
+  "Alvarez",
+  "Amador",
+  "Amaya",
+  "Anaya",
+  "Anguiano",
+  "Angulo",
+  "Aparicio",
+  "Apodaca",
+  "Aponte",
+  "Aragón",
+  "Araña",
+  "Aranda",
+  "Arce",
+  "Archuleta",
+  "Arellano",
+  "Arenas",
+  "Arevalo",
+  "Arguello",
+  "Arias",
+  "Armas",
+  "Armendáriz",
+  "Armenta",
+  "Armijo",
+  "Arredondo",
+  "Arreola",
+  "Arriaga",
+  "Arroyo",
+  "Arteaga",
+  "Atencio",
+  "Ávalos",
+  "Ávila",
+  "Avilés",
+  "Ayala",
+  "Baca",
+  "Badillo",
+  "Báez",
+  "Baeza",
+  "Bahena",
+  "Balderas",
+  "Ballesteros",
+  "Banda",
+  "Bañuelos",
+  "Barajas",
+  "Barela",
+  "Barragán",
+  "Barraza",
+  "Barrera",
+  "Barreto",
+  "Barrientos",
+  "Barrios",
+  "Batista",
+  "Becerra",
+  "Beltrán",
+  "Benavides",
+  "Benavídez",
+  "Benítez",
+  "Bermúdez",
+  "Bernal",
+  "Berríos",
+  "Bétancourt",
+  "Blanco",
+  "Bonilla",
+  "Borrego",
+  "Botello",
+  "Bravo",
+  "Briones",
+  "Briseño",
+  "Brito",
+  "Bueno",
+  "Burgos",
+  "Bustamante",
+  "Bustos",
+  "Caballero",
+  "Cabán",
+  "Cabrera",
+  "Cadena",
+  "Caldera",
+  "Calderón",
+  "Calvillo",
+  "Camacho",
+  "Camarillo",
+  "Campos",
+  "Canales",
+  "Candelaria",
+  "Cano",
+  "Cantú",
+  "Caraballo",
+  "Carbajal",
+  "Cardenas",
+  "Cardona",
+  "Carmona",
+  "Carranza",
+  "Carrasco",
+  "Carrasquillo",
+  "Carreón",
+  "Carrera",
+  "Carrero",
+  "Carrillo",
+  "Carrion",
+  "Carvajal",
+  "Casanova",
+  "Casares",
+  "Casárez",
+  "Casas",
+  "Casillas",
+  "Castañeda",
+  "Castellanos",
+  "Castillo",
+  "Castro",
+  "Cavazos",
+  "Cazares",
+  "Ceballos",
+  "Cedillo",
+  "Ceja",
+  "Centeno",
+  "Cepeda",
+  "Cerda",
+  "Cervantes",
+  "Cervántez",
+  "Chacón",
+  "Chapa",
+  "Chavarría",
+  "Chávez",
+  "Cintrón",
+  "Cisneros",
+  "Collado",
+  "Collazo",
+  "Colón",
+  "Colunga",
+  "Concepción",
+  "Contreras",
+  "Cordero",
+  "Córdova",
+  "Cornejo",
+  "Corona",
+  "Coronado",
+  "Corral",
+  "Corrales",
+  "Correa",
+  "Cortés",
+  "Cortez",
+  "Cotto",
+  "Covarrubias",
+  "Crespo",
+  "Cruz",
+  "Cuellar",
+  "Curiel",
+  "Dávila",
+  "de Anda",
+  "de Jesús",
+  "Delacrúz",
+  "Delafuente",
+  "Delagarza",
+  "Delao",
+  "Delapaz",
+  "Delarosa",
+  "Delatorre",
+  "Deleón",
+  "Delgadillo",
+  "Delgado",
+  "Delrío",
+  "Delvalle",
+  "Díaz",
+  "Domínguez",
+  "Domínquez",
+  "Duarte",
+  "Dueñas",
+  "Duran",
+  "Echevarría",
+  "Elizondo",
+  "Enríquez",
+  "Escalante",
+  "Escamilla",
+  "Escobar",
+  "Escobedo",
+  "Esparza",
+  "Espinal",
+  "Espino",
+  "Espinosa",
+  "Espinoza",
+  "Esquibel",
+  "Esquivel",
+  "Estévez",
+  "Estrada",
+  "Fajardo",
+  "Farías",
+  "Feliciano",
+  "Fernández",
+  "Ferrer",
+  "Fierro",
+  "Figueroa",
+  "Flores",
+  "Flórez",
+  "Fonseca",
+  "Franco",
+  "Frías",
+  "Fuentes",
+  "Gaitán",
+  "Galarza",
+  "Galindo",
+  "Gallardo",
+  "Gallegos",
+  "Galván",
+  "Gálvez",
+  "Gamboa",
+  "Gamez",
+  "Gaona",
+  "Garay",
+  "García",
+  "Garibay",
+  "Garica",
+  "Garrido",
+  "Garza",
+  "Gastélum",
+  "Gaytán",
+  "Gil",
+  "Girón",
+  "Godínez",
+  "Godoy",
+  "Gómez",
+  "Gonzales",
+  "González",
+  "Gollum",
+  "Gracia",
+  "Granado",
+  "Granados",
+  "Griego",
+  "Grijalva",
+  "Guajardo",
+  "Guardado",
+  "Guerra",
+  "Guerrero",
+  "Guevara",
+  "Guillen",
+  "Gurule",
+  "Gutiérrez",
+  "Guzmán",
+  "Haro",
+  "Henríquez",
+  "Heredia",
+  "Hernádez",
+  "Hernandes",
+  "Hernández",
+  "Herrera",
+  "Hidalgo",
+  "Hinojosa",
+  "Holguín",
+  "Huerta",
+  "Hurtado",
+  "Ibarra",
+  "Iglesias",
+  "Irizarry",
+  "Jaime",
+  "Jaimes",
+  "Jáquez",
+  "Jaramillo",
+  "Jasso",
+  "Jiménez",
+  "Jimínez",
+  "Juárez",
+  "Jurado",
+  "Laboy",
+  "Lara",
+  "Laureano",
+  "Leal",
+  "Lebrón",
+  "Ledesma",
+  "Leiva",
+  "Lemus",
+  "León",
+  "Lerma",
+  "Leyva",
+  "Limón",
+  "Linares",
+  "Lira",
+  "Llamas",
+  "Loera",
+  "Lomeli",
+  "Longoria",
+  "López",
+  "Lovato",
+  "Loya",
+  "Lozada",
+  "Lozano",
+  "Lucero",
+  "Lucio",
+  "Luevano",
+  "Lugo",
+  "Luna",
+  "Macías",
+  "Madera",
+  "Madrid",
+  "Madrigal",
+  "Maestas",
+  "Magaña",
+  "Malave",
+  "Maldonado",
+  "Manzanares",
+  "Mares",
+  "Marín",
+  "Márquez",
+  "Marrero",
+  "Marroquín",
+  "Martínez",
+  "Mascareñas",
+  "Mata",
+  "Mateo",
+  "Matías",
+  "Matos",
+  "Maya",
+  "Mayorga",
+  "Medina",
+  "Medrano",
+  "Mejía",
+  "Meléndez",
+  "Melgar",
+  "Mena",
+  "Menchaca",
+  "Méndez",
+  "Mendoza",
+  "Menéndez",
+  "Meraz",
+  "Mercado",
+  "Merino",
+  "Mesa",
+  "Meza",
+  "Miramontes",
+  "Miranda",
+  "Mireles",
+  "Mojica",
+  "Molina",
+  "Mondragón",
+  "Monroy",
+  "Montalvo",
+  "Montañez",
+  "Montaño",
+  "Montemayor",
+  "Montenegro",
+  "Montero",
+  "Montes",
+  "Montez",
+  "Montoya",
+  "Mora",
+  "Morales",
+  "Moreno",
+  "Mota",
+  "Moya",
+  "Munguía",
+  "Muñiz",
+  "Muñoz",
+  "Murillo",
+  "Muro",
+  "Nájera",
+  "Naranjo",
+  "Narváez",
+  "Nava",
+  "Navarrete",
+  "Navarro",
+  "Nazario",
+  "Negrete",
+  "Negrón",
+  "Nevárez",
+  "Nieto",
+  "Nieves",
+  "Niño",
+  "Noriega",
+  "Núñez",
+  "Ocampo",
+  "Ocasio",
+  "Ochoa",
+  "Ojeda",
+  "Olivares",
+  "Olivárez",
+  "Olivas",
+  "Olivera",
+  "Olivo",
+  "Olmos",
+  "Olvera",
+  "Ontiveros",
+  "Oquendo",
+  "Ordóñez",
+  "Orellana",
+  "Ornelas",
+  "Orosco",
+  "Orozco",
+  "Orta",
+  "Ortega",
+  "Ortiz",
+  "Osorio",
+  "Otero",
+  "Ozuna",
+  "Pabón",
+  "Pacheco",
+  "Padilla",
+  "Padrón",
+  "Páez",
+  "Pagan",
+  "Palacios",
+  "Palomino",
+  "Palomo",
+  "Pantoja",
+  "Paredes",
+  "Parra",
+  "Partida",
+  "Patiño",
+  "Paz",
+  "Pedraza",
+  "Pedroza",
+  "Pelayo",
+  "Peña",
+  "Perales",
+  "Peralta",
+  "Perea",
+  "Peres",
+  "Pérez",
+  "Pichardo",
+  "Piña",
+  "Pineda",
+  "Pizarro",
+  "Polanco",
+  "Ponce",
+  "Porras",
+  "Portillo",
+  "Posada",
+  "Prado",
+  "Preciado",
+  "Prieto",
+  "Puente",
+  "Puga",
+  "Pulido",
+  "Quesada",
+  "Quezada",
+  "Quiñones",
+  "Quiñónez",
+  "Quintana",
+  "Quintanilla",
+  "Quintero",
+  "Quiroz",
+  "Rael",
+  "Ramírez",
+  "Ramón",
+  "Ramos",
+  "Rangel",
+  "Rascón",
+  "Raya",
+  "Razo",
+  "Regalado",
+  "Rendón",
+  "Rentería",
+  "Reséndez",
+  "Reyes",
+  "Reyna",
+  "Reynoso",
+  "Rico",
+  "Rincón",
+  "Riojas",
+  "Ríos",
+  "Rivas",
+  "Rivera",
+  "Rivero",
+  "Robledo",
+  "Robles",
+  "Rocha",
+  "Rodarte",
+  "Rodrígez",
+  "Rodríguez",
+  "Rodríquez",
+  "Rojas",
+  "Rojo",
+  "Roldán",
+  "Rolón",
+  "Romero",
+  "Romo",
+  "Roque",
+  "Rosado",
+  "Rosales",
+  "Rosario",
+  "Rosas",
+  "Roybal",
+  "Rubio",
+  "Ruelas",
+  "Ruiz",
+  "Saavedra",
+  "Sáenz",
+  "Saiz",
+  "Salas",
+  "Salazar",
+  "Salcedo",
+  "Salcido",
+  "Saldaña",
+  "Saldivar",
+  "Salgado",
+  "Salinas",
+  "Samaniego",
+  "Sanabria",
+  "Sanches",
+  "Sánchez",
+  "Sandoval",
+  "Santacruz",
+  "Santana",
+  "Santiago",
+  "Santillán",
+  "Sarabia",
+  "Sauceda",
+  "Saucedo",
+  "Sedillo",
+  "Segovia",
+  "Segura",
+  "Sepúlveda",
+  "Serna",
+  "Serrano",
+  "Serrato",
+  "Sevilla",
+  "Sierra",
+  "Sisneros",
+  "Solano",
+  "Solís",
+  "Soliz",
+  "Solorio",
+  "Solorzano",
+  "Soria",
+  "Sosa",
+  "Sotelo",
+  "Soto",
+  "Suárez",
+  "Tafoya",
+  "Tamayo",
+  "Tamez",
+  "Tapia",
+  "Tejada",
+  "Tejeda",
+  "Téllez",
+  "Tello",
+  "Terán",
+  "Terrazas",
+  "Tijerina",
+  "Tirado",
+  "Toledo",
+  "Toro",
+  "Torres",
+  "Tórrez",
+  "Tovar",
+  "Trejo",
+  "Treviño",
+  "Trujillo",
+  "Ulibarri",
+  "Ulloa",
+  "Urbina",
+  "Ureña",
+  "Urías",
+  "Uribe",
+  "Urrutia",
+  "Vaca",
+  "Valadez",
+  "Valdés",
+  "Valdez",
+  "Valdivia",
+  "Valencia",
+  "Valentín",
+  "Valenzuela",
+  "Valladares",
+  "Valle",
+  "Vallejo",
+  "Valles",
+  "Valverde",
+  "Vanegas",
+  "Varela",
+  "Vargas",
+  "Vásquez",
+  "Vázquez",
+  "Vega",
+  "Vela",
+  "Velasco",
+  "Velásquez",
+  "Velázquez",
+  "Vélez",
+  "Véliz",
+  "Venegas",
+  "Vera",
+  "Verdugo",
+  "Verduzco",
+  "Vergara",
+  "Viera",
+  "Vigil",
+  "Villa",
+  "Villagómez",
+  "Villalobos",
+  "Villalpando",
+  "Villanueva",
+  "Villareal",
+  "Villarreal",
+  "Villaseñor",
+  "Villegas",
+  "Yáñez",
+  "Ybarra",
+  "Zambrano",
+  "Zamora",
+  "Zamudio",
+  "Zapata",
+  "Zaragoza",
+  "Zarate",
+  "Zavala",
+  "Zayas",
+  "Zelaya",
+  "Zepeda",
+  "Zúñiga"
+];
+
+},{}],403:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}"
+];
+
+},{}],404:[function(require,module,exports){
+module["exports"] = [
+  "Sr.",
+  "Sra.",
+  "Sta."
+];
+
+},{}],405:[function(require,module,exports){
+module.exports=require(263)
+},{"/Users/a/dev/faker.js/lib/locales/en/name/suffix.js":263}],406:[function(require,module,exports){
+module["exports"] = {
+  "descriptor": [
+    "Jefe",
+    "Senior",
+    "Directo",
+    "Corporativo",
+    "Dinánmico",
+    "Futuro",
+    "Producto",
+    "Nacional",
+    "Regional",
+    "Distrito",
+    "Central",
+    "Global",
+    "Cliente",
+    "Inversor",
+    "International",
+    "Heredado",
+    "Adelante",
+    "Interno",
+    "Humano",
+    "Gerente",
+    "Director"
+  ],
+  "level": [
+    "Soluciones",
+    "Programa",
+    "Marca",
+    "Seguridada",
+    "Investigación",
+    "Marketing",
+    "Normas",
+    "Implementación",
+    "Integración",
+    "Funcionalidad",
+    "Respuesta",
+    "Paradigma",
+    "Tácticas",
+    "Identidad",
+    "Mercados",
+    "Grupo",
+    "División",
+    "Aplicaciones",
+    "Optimización",
+    "Operaciones",
+    "Infraestructura",
+    "Intranet",
+    "Comunicaciones",
+    "Web",
+    "Calidad",
+    "Seguro",
+    "Mobilidad",
+    "Cuentas",
+    "Datos",
+    "Creativo",
+    "Configuración",
+    "Contabilidad",
+    "Interacciones",
+    "Factores",
+    "Usabilidad",
+    "Métricas"
+  ],
+  "job": [
+    "Supervisor",
+    "Asociado",
+    "Ejecutivo",
+    "Relacciones",
+    "Oficial",
+    "Gerente",
+    "Ingeniero",
+    "Especialista",
+    "Director",
+    "Coordinador",
+    "Administrador",
+    "Arquitecto",
+    "Analista",
+    "Diseñador",
+    "Planificador",
+    "Técnico",
+    "Funcionario",
+    "Desarrollador",
+    "Productor",
+    "Consultor",
+    "Asistente",
+    "Facilitador",
+    "Agente",
+    "Representante",
+    "Estratega"
+  ]
+};
+
+},{}],407:[function(require,module,exports){
+module["exports"] = [
+  "9##-###-###",
+  "9##.###.###",
+  "9## ### ###",
+  "9########"
+];
+
+},{}],408:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":407,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],409:[function(require,module,exports){
+module["exports"] = [
+  " s/n.",
+  ", #",
+  ", ##",
+  " #",
+  " ##",
+  " ###",
+  " ####"
+];
+
+},{}],410:[function(require,module,exports){
+module.exports=require(351)
+},{"/Users/a/dev/faker.js/lib/locales/en_au_ocker/address/city.js":351}],411:[function(require,module,exports){
+module["exports"] = [
+  "Aguascalientes",
+  "Apodaca",
+  "Buenavista",
+  "Campeche",
+  "Cancún",
+  "Cárdenas",
+  "Celaya",
+  "Chalco",
+  "Chetumal",
+  "Chicoloapan",
+  "Chignahuapan",
+  "Chihuahua",
+  "Chilpancingo",
+  "Chimalhuacán",
+  "Ciudad Acuña",
+  "Ciudad de México",
+  "Ciudad del Carmen",
+  "Ciudad López Mateos",
+  "Ciudad Madero",
+  "Ciudad Obregón",
+  "Ciudad Valles",
+  "Ciudad Victoria",
+  "Coatzacoalcos",
+  "Colima-Villa de Álvarez",
+  "Comitán de Dominguez",
+  "Córdoba",
+  "Cuautitlán Izcalli",
+  "Cuautla",
+  "Cuernavaca",
+  "Culiacán",
+  "Delicias",
+  "Durango",
+  "Ensenada",
+  "Fresnillo",
+  "General Escobedo",
+  "Gómez Palacio",
+  "Guadalajara",
+  "Guadalupe",
+  "Guanajuato",
+  "Guaymas",
+  "Hermosillo",
+  "Hidalgo del Parral",
+  "Iguala",
+  "Irapuato",
+  "Ixtapaluca",
+  "Jiutepec",
+  "Juárez",
+  "La Laguna",
+  "La Paz",
+  "La Piedad-Pénjamo",
+  "León",
+  "Los Cabos",
+  "Los Mochis",
+  "Manzanillo",
+  "Matamoros",
+  "Mazatlán",
+  "Mérida",
+  "Mexicali",
+  "Minatitlán",
+  "Miramar",
+  "Monclova",
+  "Monclova-Frontera",
+  "Monterrey",
+  "Morelia",
+  "Naucalpan de Juárez",
+  "Navojoa",
+  "Nezahualcóyotl",
+  "Nogales",
+  "Nuevo Laredo",
+  "Oaxaca",
+  "Ocotlán",
+  "Ojo de agua",
+  "Orizaba",
+  "Pachuca",
+  "Piedras Negras",
+  "Poza Rica",
+  "Puebla",
+  "Puerto Vallarta",
+  "Querétaro",
+  "Reynosa-Río Bravo",
+  "Rioverde-Ciudad Fernández",
+  "Salamanca",
+  "Saltillo",
+  "San Cristobal de las Casas",
+  "San Francisco Coacalco",
+  "San Francisco del Rincón",
+  "San Juan Bautista Tuxtepec",
+  "San Juan del Río",
+  "San Luis Potosí-Soledad",
+  "San Luis Río Colorado",
+  "San Nicolás de los Garza",
+  "San Pablo de las Salinas",
+  "San Pedro Garza García",
+  "Santa Catarina",
+  "Soledad de Graciano Sánchez",
+  "Tampico-Pánuco",
+  "Tapachula",
+  "Tecomán",
+  "Tehuacán",
+  "Tehuacán",
+  "Tehuantepec-Salina Cruz",
+  "Tepexpan",
+  "Tepic",
+  "Tetela de Ocampo",
+  "Texcoco de Mora",
+  "Tijuana",
+  "Tlalnepantla",
+  "Tlaquepaque",
+  "Tlaxcala-Apizaco",
+  "Toluca",
+  "Tonalá",
+  "Torreón",
+  "Tula",
+  "Tulancingo",
+  "Tulancingo de Bravo",
+  "Tuxtla Gutiérrez",
+  "Uruapan",
+  "Uruapan del Progreso",
+  "Valle de México",
+  "Veracruz",
+  "Villa de Álvarez",
+  "Villa Nicolás Romero",
+  "Villahermosa",
+  "Xalapa",
+  "Zacatecas-Guadalupe",
+  "Zacatlan",
+  "Zacatzingo",
+  "Zamora-Jacona",
+  "Zapopan",
+  "Zitacuaro"
+];
+
+},{}],412:[function(require,module,exports){
+module.exports=require(182)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/city_suffix.js":182}],413:[function(require,module,exports){
+module["exports"] = [
+  "Afganistán",
+  "Albania",
+  "Argelia",
+  "Andorra",
+  "Angola",
+  "Argentina",
+  "Armenia",
+  "Aruba",
+  "Australia",
+  "Austria",
+  "Azerbayán",
+  "Bahamas",
+  "Barein",
+  "Bangladesh",
+  "Barbados",
+  "Bielorusia",
+  "Bélgica",
+  "Belice",
+  "Bermuda",
+  "Bután",
+  "Bolivia",
+  "Bosnia Herzegovina",
+  "Botswana",
+  "Brasil",
+  "Bulgaria",
+  "Burkina Faso",
+  "Burundi",
+  "Camboya",
+  "Camerún",
+  "Canada",
+  "Cabo Verde",
+  "Islas Caimán",
+  "Chad",
+  "Chile",
+  "China",
+  "Isla de Navidad",
+  "Colombia",
+  "Comodos",
+  "Congo",
+  "Costa Rica",
+  "Costa de Marfil",
+  "Croacia",
+  "Cuba",
+  "Chipre",
+  "República Checa",
+  "Dinamarca",
+  "Dominica",
+  "República Dominicana",
+  "Ecuador",
+  "Egipto",
+  "El Salvador",
+  "Guinea Ecuatorial",
+  "Eritrea",
+  "Estonia",
+  "Etiopía",
+  "Islas Faro",
+  "Fiji",
+  "Finlandia",
+  "Francia",
+  "Gabón",
+  "Gambia",
+  "Georgia",
+  "Alemania",
+  "Ghana",
+  "Grecia",
+  "Groenlandia",
+  "Granada",
+  "Guadalupe",
+  "Guam",
+  "Guatemala",
+  "Guinea",
+  "Guinea-Bisau",
+  "Guayana",
+  "Haiti",
+  "Honduras",
+  "Hong Kong",
+  "Hungria",
+  "Islandia",
+  "India",
+  "Indonesia",
+  "Iran",
+  "Irak",
+  "Irlanda",
+  "Italia",
+  "Jamaica",
+  "Japón",
+  "Jordania",
+  "Kazajistan",
+  "Kenia",
+  "Kiribati",
+  "Corea",
+  "Kuwait",
+  "Letonia",
+  "Líbano",
+  "Liberia",
+  "Liechtenstein",
+  "Lituania",
+  "Luxemburgo",
+  "Macao",
+  "Macedonia",
+  "Madagascar",
+  "Malawi",
+  "Malasia",
+  "Maldivas",
+  "Mali",
+  "Malta",
+  "Martinica",
+  "Mauritania",
+  "México",
+  "Micronesia",
+  "Moldavia",
+  "Mónaco",
+  "Mongolia",
+  "Montenegro",
+  "Montserrat",
+  "Marruecos",
+  "Mozambique",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Holanda",
+  "Nueva Zelanda",
+  "Nicaragua",
+  "Niger",
+  "Nigeria",
+  "Noruega",
+  "Omán",
+  "Pakistan",
+  "Panamá",
+  "Papúa Nueva Guinea",
+  "Paraguay",
+  "Perú",
+  "Filipinas",
+  "Poland",
+  "Portugal",
+  "Puerto Rico",
+  "Rusia",
+  "Ruanda",
+  "Samoa",
+  "San Marino",
+  "Santo Tomé y Principe",
+  "Arabia Saudí",
+  "Senegal",
+  "Serbia",
+  "Seychelles",
+  "Sierra Leona",
+  "Singapur",
+  "Eslovaquia",
+  "Eslovenia",
+  "Somalia",
+  "España",
+  "Sri Lanka",
+  "Sudán",
+  "Suriname",
+  "Suecia",
+  "Suiza",
+  "Siria",
+  "Taiwan",
+  "Tajikistan",
+  "Tanzania",
+  "Tailandia",
+  "Timor-Leste",
+  "Togo",
+  "Tonga",
+  "Trinidad y Tobago",
+  "Tunez",
+  "Turquia",
+  "Uganda",
+  "Ucrania",
+  "Emiratos Árabes Unidos",
+  "Reino Unido",
+  "Estados Unidos de América",
+  "Uruguay",
+  "Uzbekistan",
+  "Vanuatu",
+  "Venezuela",
+  "Vietnam",
+  "Yemen",
+  "Zambia",
+  "Zimbabwe"
+];
+
+},{}],414:[function(require,module,exports){
+module["exports"] = [
+  "México"
+];
+
+},{}],415:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.time_zone = require("./time_zone");
+address.city = require("./city");
+address.street = require("./street");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+},{"./building_number":409,"./city":410,"./city_prefix":411,"./city_suffix":412,"./country":413,"./default_country":414,"./postcode":416,"./secondary_address":417,"./state":418,"./state_abbr":419,"./street":420,"./street_address":421,"./street_name":422,"./street_suffix":423,"./time_zone":424}],416:[function(require,module,exports){
+module.exports=require(379)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/postcode.js":379}],417:[function(require,module,exports){
+module["exports"] = [
+  "Esc. ###",
+  "Puerta ###",
+  "Edificio #"
+];
+
+},{}],418:[function(require,module,exports){
+module["exports"] = [
+  "Aguascalientes",
+  "Baja California Norte",
+  "Baja California Sur",
+  'Estado de México',
+  "Campeche",
+  "Chiapas",
+  "Chihuahua",
+  "Coahuila",
+  "Colima",
+  "Durango",
+  "Guanajuato",
+  "Guerrero",
+  "Hidalgo",
+  "Jalisco",
+  "Michoacan",
+  "Morelos",
+  "Nayarit",
+  'Nuevo León',
+  "Oaxaca",
+  "Puebla",
+  "Querétaro",
+  "Quintana Roo",
+  "San Luis Potosí",
+  "Sinaloa",
+  "Sonora",
+  "Tabasco",
+  "Tamaulipas",
+  "Tlaxcala",
+  "Veracruz",
+  "Yucatán",
+  "Zacatecas"
+];
+
+},{}],419:[function(require,module,exports){
+module["exports"] = [
+  "AS",
+  "BC",
+  "BS",
+  "CC",
+  "CS",
+  "CH",
+  "CL",
+  "CM",
+  "DF",
+  "DG",
+  "GT",
+  "GR",
+  "HG",
+  "JC",
+  "MC",
+  "MN",
+  "MS",
+  "NT",
+  "NL",
+  "OC",
+  "PL",
+  "QT",
+  "QR",
+  "SP",
+  "SL",
+  "SR",
+  "TC",
+  "TS",
+  "TL",
+  "VZ",
+  "YN",
+  "ZS"
+];
+
+},{}],420:[function(require,module,exports){
+module["exports"] = [
+	"20 de Noviembre",
+	"Cinco de Mayo",
+	"Cuahutemoc",
+	"Manzanares",
+	"Donceles",
+	"Francisco I. Madero",
+	"Juárez",
+	"Repúplica de Cuba",
+	"Repúplica de Chile",
+	"Repúplica de Argentina",
+	"Repúplica de Uruguay",
+	"Isabel la Católica",
+	"Izazaga",
+	"Eje Central",
+	"Eje 6",
+	"Eje 5",
+	"La viga",
+	"Aniceto Ortega",
+	"Miguel Ángel de Quevedo",
+	"Amores",
+	"Coyoacán",
+	"Coruña",
+	"Batalla de Naco",
+	"La otra banda",
+	"Piedra del Comal",
+	"Balcón de los edecanes",
+	"Barrio la Lonja",
+	"Jicolapa",
+	"Zacatlán",
+	"Zapata",
+	"Polotitlan",
+	"Calimaya",
+	"Flor Marina",
+	"Flor Solvestre",
+	"San Miguel",
+	"Naranjo",
+	"Cedro",
+	"Jalisco",
+	"Avena"
+];
+},{}],421:[function(require,module,exports){
+module.exports=require(384)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/street_address.js":384}],422:[function(require,module,exports){
+module["exports"] = [
+  "#{street_suffix} #{Name.first_name}",
+  "#{street_suffix} #{Name.first_name} #{Name.last_name}",
+  "#{street_suffix} #{street}",
+  "#{street_suffix} #{street}",
+  "#{street_suffix} #{street}",
+  "#{street_suffix} #{street}"
+
+];
+
+},{}],423:[function(require,module,exports){
+module.exports=require(386)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/street_suffix.js":386}],424:[function(require,module,exports){
+module["exports"] = [
+  "Pacífico/Midway",
+  "Pacífico/Pago_Pago",
+  "Pacífico/Honolulu",
+  "America/Juneau",
+  "America/Los_Angeles",
+  "America/Tijuana",
+  "America/Denver",
+  "America/Phoenix",
+  "America/Chihuahua",
+  "America/Mazatlan",
+  "America/Chicago",
+  "America/Regina",
+  "America/Mexico_City",
+  "America/Monterrey",
+  "America/Guatemala",
+  "America/New_York",
+  "America/Indiana/Indianapolis",
+  "America/Bogota",
+  "America/Lima",
+  "America/Lima",
+  "America/Halifax",
+  "America/Caracas",
+  "America/La_Paz",
+  "America/Santiago",
+  "America/St_Johns",
+  "America/Sao_Paulo",
+  "America/Argentina/Buenos_Aires",
+  "America/Guyana",
+  "America/Godthab",
+  "Atlantic/South_Georgia",
+  "Atlantic/Azores",
+  "Atlantic/Cape_Verde",
+  "Europa/Dublin",
+  "Europa/London",
+  "Europa/Lisbon",
+  "Europa/London",
+  "Africa/Casablanca",
+  "Africa/Monrovia",
+  "Etc/UTC",
+  "Europa/Belgrade",
+  "Europa/Bratislava",
+  "Europa/Budapest",
+  "Europa/Ljubljana",
+  "Europa/Prague",
+  "Europa/Sarajevo",
+  "Europa/Skopje",
+  "Europa/Warsaw",
+  "Europa/Zagreb",
+  "Europa/Brussels",
+  "Europa/Copenhagen",
+  "Europa/Madrid",
+  "Europa/Paris",
+  "Europa/Amsterdam",
+  "Europa/Berlin",
+  "Europa/Berlin",
+  "Europa/Rome",
+  "Europa/Stockholm",
+  "Europa/Vienna",
+  "Africa/Algiers",
+  "Europa/Bucharest",
+  "Africa/Cairo",
+  "Europa/Helsinki",
+  "Europa/Kiev",
+  "Europa/Riga",
+  "Europa/Sofia",
+  "Europa/Tallinn",
+  "Europa/Vilnius",
+  "Europa/Athens",
+  "Europa/Istanbul",
+  "Europa/Minsk",
+  "Asia/Jerusalen",
+  "Africa/Harare",
+  "Africa/Johannesburg",
+  "Europa/Moscú",
+  "Europa/Moscú",
+  "Europa/Moscú",
+  "Asia/Kuwait",
+  "Asia/Riyadh",
+  "Africa/Nairobi",
+  "Asia/Baghdad",
+  "Asia/Tehran",
+  "Asia/Muscat",
+  "Asia/Muscat",
+  "Asia/Baku",
+  "Asia/Tbilisi",
+  "Asia/Yerevan",
+  "Asia/Kabul",
+  "Asia/Yekaterinburg",
+  "Asia/Karachi",
+  "Asia/Karachi",
+  "Asia/Tashkent",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kolkata",
+  "Asia/Kathmandu",
+  "Asia/Dhaka",
+  "Asia/Dhaka",
+  "Asia/Colombo",
+  "Asia/Almaty",
+  "Asia/Novosibirsk",
+  "Asia/Rangoon",
+  "Asia/Bangkok",
+  "Asia/Bangkok",
+  "Asia/Jakarta",
+  "Asia/Krasnoyarsk",
+  "Asia/Shanghai",
+  "Asia/Chongqing",
+  "Asia/Hong_Kong",
+  "Asia/Urumqi",
+  "Asia/Kuala_Lumpur",
+  "Asia/Singapore",
+  "Asia/Taipei",
+  "Australia/Perth",
+  "Asia/Irkutsk",
+  "Asia/Ulaanbaatar",
+  "Asia/Seoul",
+  "Asia/Tokyo",
+  "Asia/Tokyo",
+  "Asia/Tokyo",
+  "Asia/Yakutsk",
+  "Australia/Darwin",
+  "Australia/Adelaide",
+  "Australia/Melbourne",
+  "Australia/Melbourne",
+  "Australia/Sydney",
+  "Australia/Brisbane",
+  "Australia/Hobart",
+  "Asia/Vladivostok",
+  "Pacífico/Guam",
+  "Pacífico/Port_Moresby",
+  "Asia/Magadan",
+  "Asia/Magadan",
+  "Pacífico/Noumea",
+  "Pacífico/Fiji",
+  "Asia/Kamchatka",
+  "Pacífico/Majuro",
+  "Pacífico/Auckland",
+  "Pacífico/Auckland",
+  "Pacífico/Tongatapu",
+  "Pacífico/Fakaofo",
+  "Pacífico/Apia"
+];
+
+},{}],425:[function(require,module,exports){
+module["exports"] = [
+  "5##-###-###",
+  "5##.###.###",
+  "5## ### ###",
+  "5########"
+];
+
+},{}],426:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":425,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],427:[function(require,module,exports){
+module["exports"] = [
+   "rojo",
+   "verde",
+   "azul",
+   "amarillo",
+   "morado",
+   "Menta verde",
+   "teal",
+   "blanco",
+   "negro",
+   "Naranja",
+   "Rosa",
+   "gris",
+   "marrón",
+   "violeta",
+   "turquesa",
+   "tan",
+   "cielo azul",
+   "salmón",
+   "ciruela",
+   "orquídea",
+   "aceituna",
+   "magenta",
+   "Lima",
+   "marfil",
+   "índigo",
+   "oro",
+   "fucsia",
+   "cian",
+   "azul",
+   "lavanda",
+   "plata"
+];
+
+},{}],428:[function(require,module,exports){
+module["exports"] = [
+   "Libros",
+   "Películas",
+   "Música",
+   "Juegos",
+   "Electrónica",
+   "Ordenadores",
+   "Hogar",
+   "Jardín",
+   "Herramientas",
+   "Ultramarinos",
+   "Salud",
+   "Belleza",
+   "Juguetes",
+   "Kids",
+   "Baby",
+   "Ropa",
+   "Zapatos",
+   "Joyería",
+   "Deportes",
+   "Aire libre",
+   "Automoción",
+   "Industrial"
+];
+
+},{}],429:[function(require,module,exports){
+arguments[4][31][0].apply(exports,arguments)
+},{"./color":427,"./department":428,"./product_name":430,"/Users/a/dev/faker.js/lib/locales/az/commerce/index.js":31}],430:[function(require,module,exports){
+module["exports"] = {
+"adjective": [
+     "Pequeño",
+     "Ergonómico",
+     "Rústico",
+     "Inteligente",
+     "Gorgeous",
+     "Increíble",
+     "Fantástico",
+     "Práctica",
+     "Elegante",
+     "Increíble",
+     "Genérica",
+     "Artesanal",
+     "Hecho a mano",
+     "Licencia",
+     "Refinado",
+     "Sin marca",
+     "Sabrosa"
+   ],
+"material": [
+     "Acero",
+     "Madera",
+     "Hormigón",
+     "Plástico",
+     "Cotton",
+     "Granito",
+     "Caucho",
+     "Metal",
+     "Soft",
+     "Fresco",
+     "Frozen"
+   ],
+"product": [
+     "Presidente",
+     "Auto",
+     "Computadora",
+     "Teclado",
+     "Ratón",
+     "Bike",
+     "Pelota",
+     "Guantes",
+     "Pantalones",
+     "Camisa",
+     "Mesa",
+     "Zapatos",
+     "Sombrero",
+     "Toallas",
+     "Jabón",
+     "Tuna",
+     "Pollo",
+     "Pescado",
+     "Queso",
+     "Tocino",
+     "Pizza",
+     "Ensalada",
+     "Embutidos"
+  ]
+};
+
+},{}],431:[function(require,module,exports){
+module.exports=require(390)
+},{"/Users/a/dev/faker.js/lib/locales/es/company/adjective.js":390}],432:[function(require,module,exports){
+module["exports"] = [
+  "Clics y mortero",
+  "Valor añadido",
+  "Vertical",
+  "Proactivo",
+  "Robusto",
+  "Revolucionario",
+  "Escalable",
+  "De vanguardia",
+  "Innovador",
+  "Intuitivo",
+  "Estratégico",
+  "E-business",
+  "Misión crítica",
+  "Pegajosa",
+  "Doce y cincuenta y nueve de la noche",
+  "24/7",
+  "De extremo a extremo",
+  "Global",
+  "B2B",
+  "B2C",
+  "Granular",
+  "Fricción",
+  "Virtual",
+  "Viral",
+  "Dinámico",
+  "24/365",
+  "Mejor de su clase",
+  "Asesino",
+  "Magnética",
+  "Filo sangriento",
+  "Habilitado web",
+  "Interactiva",
+  "Punto com",
+  "Sexy",
+  "Back-end",
+  "Tiempo real",
+  "Eficiente",
+  "Frontal",
+  "Distribuida",
+  "Sin costura",
+  "Extensible",
+  "Llave en mano",
+  "Clase mundial",
+  "Código abierto",
+  "Multiplataforma",
+  "Cross-media",
+  "Sinérgico",
+  "ladrillos y clics",
+  "Fuera de la caja",
+  "Empresa",
+  "Integrado",
+  "Impactante",
+  "Inalámbrico",
+  "Transparente",
+  "Próxima generación",
+  "Innovador",
+  "User-centric",
+  "Visionario",
+  "A medida",
+  "Ubicua",
+  "Enchufa y juega",
+  "Colaboración",
+  "Convincente",
+  "Holístico",
+  "Ricos"
+];
+
+},{}],433:[function(require,module,exports){
+module["exports"] = [
+   "sinergias",
+   "web-readiness",
+   "paradigmas",
+   "mercados",
+   "asociaciones",
+   "infraestructuras",
+   "plataformas",
+   "iniciativas",
+   "canales",
+   "ojos",
+   "comunidades",
+   "ROI",
+   "soluciones",
+   "minoristas electrónicos",
+   "e-servicios",
+   "elementos de acción",
+   "portales",
+   "nichos",
+   "tecnologías",
+   "contenido",
+   "vortales",
+   "cadenas de suministro",
+   "convergencia",
+   "relaciones",
+   "arquitecturas",
+   "interfaces",
+   "mercados electrónicos",
+   "e-commerce",
+   "sistemas",
+   "ancho de banda",
+   "infomediarios",
+   "modelos",
+   "Mindshare",
+   "entregables",
+   "usuarios",
+   "esquemas",
+   "redes",
+   "aplicaciones",
+   "métricas",
+   "e-business",
+   "funcionalidades",
+   "experiencias",
+   "servicios web",
+   "metodologías"
+];
+
+},{}],434:[function(require,module,exports){
+module["exports"] = [
+   "poner en práctica",
+   "utilizar",
+   "integrar",
+   "racionalizar",
+   "optimizar",
+   "evolucionar",
+   "transformar",
+   "abrazar",
+   "habilitar",
+   "orquestar",
+   "apalancamiento",
+   "reinventar",
+   "agregado",
+   "arquitecto",
+   "mejorar",
+   "incentivar",
+   "transformarse",
+   "empoderar",
+   "Envisioneer",
+   "monetizar",
+   "arnés",
+   "facilitar",
+   "aprovechar",
+   "desintermediar",
+   "sinergia",
+   "estrategias",
+   "desplegar",
+   "marca",
+   "crecer",
+   "objetivo",
+   "sindicato",
+   "sintetizar",
+   "entregue",
+   "malla",
+   "incubar",
+   "enganchar",
+   "maximizar",
+   "punto de referencia",
+   "acelerar",
+   "reintermediate",
+   "pizarra",
+   "visualizar",
+   "reutilizar",
+   "innovar",
+   "escala",
+   "desatar",
+   "conducir",
+   "extender",
+   "ingeniero",
+   "revolucionar",
+   "generar",
+   "explotar",
+   "transición",
+   "e-enable",
+   "repetir",
+   "cultivar",
+   "matriz",
+   "productize",
+   "redefinir",
+   "recontextualizar"
+]
+
+},{}],435:[function(require,module,exports){
+module.exports=require(391)
+},{"/Users/a/dev/faker.js/lib/locales/es/company/descriptor.js":391}],436:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.adjective = require("./adjective");
+company.descriptor = require("./descriptor");
+company.noun = require("./noun");
+company.bs_verb = require("./bs_verb");
+company.name = require("./name");
+company.bs_adjective = require("./bs_adjective");
+company.bs_noun = require("./bs_noun");
+
+},{"./adjective":431,"./bs_adjective":432,"./bs_noun":433,"./bs_verb":434,"./descriptor":435,"./name":437,"./noun":438,"./suffix":439}],437:[function(require,module,exports){
+module.exports=require(393)
+},{"/Users/a/dev/faker.js/lib/locales/es/company/name.js":393}],438:[function(require,module,exports){
+module.exports=require(394)
+},{"/Users/a/dev/faker.js/lib/locales/es/company/noun.js":394}],439:[function(require,module,exports){
+module.exports=require(395)
+},{"/Users/a/dev/faker.js/lib/locales/es/company/suffix.js":395}],440:[function(require,module,exports){
+var es_MX = {};
+module['exports'] = es_MX;
+es_MX.title = "Spanish Mexico";
+es_MX.separator = " & ";
+es_MX.name = require("./name");
+es_MX.address = require("./address");
+es_MX.company = require("./company");
+es_MX.internet = require("./internet");
+es_MX.phone_number = require("./phone_number");
+es_MX.cell_phone = require("./cell_phone");
+es_MX.lorem = require("./lorem");
+es_MX.commerce = require("./commerce");
+es_MX.team = require("./team");
+},{"./address":415,"./cell_phone":426,"./commerce":429,"./company":436,"./internet":443,"./lorem":444,"./name":448,"./phone_number":455,"./team":457}],441:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "mx",
+  "info",
+  "com.mx",
+  "org",
+  "gob.mx"
+];
+
+},{}],442:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com",
+  "nearbpo.com",
+  "corpfolder.com"
+];
+
+},{}],443:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":441,"./free_email":442,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],444:[function(require,module,exports){
+arguments[4][83][0].apply(exports,arguments)
+},{"./supplemental":445,"./words":446,"/Users/a/dev/faker.js/lib/locales/cz/lorem/index.js":83}],445:[function(require,module,exports){
+module.exports=require(84)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/supplemental.js":84}],446:[function(require,module,exports){
+module["exports"] = [
+"Abacalero",
+"Abacería",
+"Abacero",
+"Abacial",
+"Abaco",
+"Abacora",
+"Abacorar",
+"Abad",
+"Abada",
+"Abadejo",
+"Abadengo",
+"Abadernar",
+"Abadesa",
+"Abadí",
+"Abadía",
+"Abadiado",
+"Abadiato",
+"Abajadero",
+"Abajamiento",
+"Abajar",
+"Abajeño",
+"Abajera",
+"Abajo",
+"Abalada",
+"Abalanzar",
+"Abalar",
+"Abalaustrado",
+"Abaldonadamente",
+"Abaldonamiento",
+"Bastonada",
+"Bastonazo",
+"Bastoncillo",
+"Bastonear",
+"Bastonero",
+"Bástulo",
+"Basura",
+"Basural",
+"Basurear",
+"Basurero",
+"Bata",
+"Batacazo",
+"Batahola",
+"Batalán",
+"Batalla",
+"Batallador",
+"Batallar",
+"Batallaroso",
+"Batallola",
+"Batallón",
+"Batallona",
+"Batalloso",
+"Batán",
+"Batanar",
+"Batanear",
+"Batanero",
+"Batanga",
+"Bataola",
+"Batata",
+"Batatazo",
+"Batato",
+"Batavia",
+"Bátavo",
+"Batayola",
+"Batazo",
+"Bate",
+"Batea",
+"Bateador",
+"Bateaguas",
+"Cenagar",
+"Cenagoso",
+"Cenal",
+"Cenaoscuras",
+"Ceñar",
+"Cenata",
+"Cenca",
+"Cencapa",
+"Cencellada",
+"Cenceñada",
+"Cenceño",
+"Cencero",
+"Cencerra",
+"Cencerrada",
+"Cencerrado",
+"Cencerrear",
+"Cencerreo",
+"Cencerril",
+"Cencerrillas",
+"Cencerro",
+"Cencerrón",
+"Cencha",
+"Cencido",
+"Cencío",
+"Cencivera",
+"Cenco",
+"Cencuate",
+"Cendal",
+"Cendalí",
+"Céndea",
+"Cendolilla",
+"Cendra",
+"Cendrada",
+"Cendradilla",
+"Cendrado",
+"Cendrar",
+"Cendrazo",
+"Cenefa",
+"Cenegar",
+"Ceneque",
+"Cenero",
+"Cenestesia",
+"Desceñir",
+"Descensión",
+"Descenso",
+"Descentrado",
+"Descentralización",
+"Descentralizador",
+"Descentralizar",
+"Descentrar",
+"Descepar",
+"Descerar",
+"Descercado",
+"Descercador",
+"Descercar",
+"Descerco",
+"Descerebración",
+"Descerebrado",
+"Descerebrar",
+"Descerezar",
+"Descerrajado",
+"Descerrajadura",
+"Descerrajar",
+"Descerrar",
+"Descerrumarse",
+"Descervigamiento",
+"Descervigar",
+"Deschapar",
+"Descharchar",
+"Deschavetado",
+"Deschavetarse",
+"Deschuponar",
+"Descifrable",
+"Descifrador",
+"Desciframiento",
+"Descifrar",
+"Descifre",
+"Descimbramiento",
+"Descimbrar",
+"Engarbarse",
+"Engarberar",
+"Engarbullar",
+"Engarce",
+"Engarfiar",
+"Engargantadura",
+"Engargantar",
+"Engargante",
+"Engargolado",
+"Engargolar",
+"Engaritar",
+"Engarmarse",
+"Engarnio",
+"Engarrafador",
+"Engarrafar",
+"Engarrar",
+"Engarro",
+"Engarronar",
+"Engarrotar",
+"Engarzador",
+"Engarzadura",
+"Engarzar",
+"Engasgarse",
+"Engastador",
+"Engastadura",
+"Engastar",
+"Engaste",
+"Ficción",
+"Fice",
+"Ficha",
+"Fichaje",
+"Fichar",
+"Fichero",
+"Ficoideo",
+"Ficticio",
+"Fidalgo",
+"Fidecomiso",
+"Fidedigno",
+"Fideero",
+"Fideicomisario",
+"Fideicomiso",
+"Fideicomitente",
+"Fideísmo",
+"Fidelidad",
+"Fidelísimo",
+"Fideo",
+"Fido",
+"Fiducia",
+"Geminación",
+"Geminado",
+"Geminar",
+"Géminis",
+"Gémino",
+"Gemíparo",
+"Gemiquear",
+"Gemiqueo",
+"Gemir",
+"Gemología",
+"Gemológico",
+"Gemólogo",
+"Gemonias",
+"Gemoso",
+"Gemoterapia",
+"Gen",
+"Genciana",
+"Gencianáceo",
+"Gencianeo",
+"Gendarme",
+"Gendarmería",
+"Genealogía",
+"Genealógico",
+"Genealogista",
+"Genearca",
+"Geneático",
+"Generable",
+"Generación",
+"Generacional",
+"Generador",
+"General",
+"Generala",
+"Generalato",
+"Generalidad",
+"Generalísimo",
+"Incordio",
+"Incorporación",
+"Incorporal",
+"Incorporalmente",
+"Incorporar",
+"Incorporeidad",
+"Incorpóreo",
+"Incorporo",
+"Incorrección",
+"Incorrectamente",
+"Incorrecto",
+"Incorregibilidad",
+"Incorregible",
+"Incorregiblemente",
+"Incorrupción",
+"Incorruptamente",
+"Incorruptibilidad",
+"Incorruptible",
+"Incorrupto",
+"Incrasar",
+"Increado",
+"Incredibilidad",
+"Incrédulamente",
+"Incredulidad",
+"Incrédulo",
+"Increíble",
+"Increíblemente",
+"Incrementar",
+"Incremento",
+"Increpación",
+"Increpador",
+"Increpar",
+"Incriminación",
+"Incriminar",
+"Incristalizable",
+"Incruentamente",
+"Incruento",
+"Incrustación"
+];
+
+},{}],447:[function(require,module,exports){
+module["exports"] = [
+"Aarón",
+"Abraham",
+"Adán",
+"Agustín",
+"Alan",
+"Alberto",
+"Alejandro",
+"Alexander",
+"Alexis",
+"Alfonso",
+"Alfredo",
+"Andrés",
+"Ángel Daniel",
+"Ángel Gabriel",
+"Antonio",
+"Armando",
+"Arturo",
+"Axel",
+"Benito",
+"Benjamín",
+"Bernardo",
+"Brandon",
+"Brayan",
+"Carlos",
+"César",
+"Claudio",
+"Clemente",
+"Cristian",
+"Cristobal",
+"Damián",
+"Daniel",
+"David",
+"Diego",
+"Eduardo",
+"Elías",
+"Emiliano",
+"Emilio",
+"Emilio",
+"Emmanuel",
+"Enrique",
+"Erick",
+"Ernesto",
+"Esteban",
+"Federico",
+"Felipe",
+"Fernando",
+"Fernando Javier",
+"Francisco",
+"Francisco Javier",
+"Gabriel",
+"Gael",
+"Gerardo",
+"Germán",
+"Gilberto",
+"Gonzalo",
+"Gregorio",
+"Guillermo",
+"Gustavo",
+"Hernán",
+"Homero",
+"Horacio",
+"Hugo",
+"Ignacio",
+"Iker",
+"Isaac",
+"Isaias",
+"Israel",
+"Ivan",
+"Jacobo",
+"Jaime",
+"Javier",
+"Jerónimo",
+"Jesús",
+"Joaquín",
+"Jorge",
+"Jorge Luis",
+"José",
+"José Antonio",
+"Jose Daniel",
+"José Eduardo",
+"José Emilio",
+"José Luis",
+"José María",
+"José Miguel",
+"Juan",
+"Juan Carlos",
+"Juan Manuel",
+"Juan Pablo",
+"Julio",
+"Julio César",
+"Kevin",
+"Leonardo",
+"Lorenzo",
+"Lucas",
+"Luis",
+"Luis Ángel",
+"Luis Fernando",
+"Luis Gabino",
+"Luis Miguel",
+"Manuel",
+"Marco Antonio",
+"Marcos",
+"Mariano",
+"Mario",
+"Martín",
+"Mateo",
+"Matías",
+"Mauricio",
+"Maximiliano",
+"Miguel",
+"Miguel Ángel",
+"Nicolás",
+"Octavio",
+"Óscar",
+"Pablo",
+"Patricio",
+"Pedro",
+"Rafael",
+"Ramiro",
+"Ramón",
+"Raúl",
+"Ricardo",
+"Roberto",
+"Rodrigo",
+"Rubén",
+"Salvador",
+"Samuel",
+"Sancho",
+"Santiago",
+"Saúl",
+"Sebastian",
+"Sergio",
+"Tadeo",
+"Teodoro",
+"Timoteo",
+"Tomás",
+"Uriel",
+"Vicente",
+"Víctor",
+"Victor Manuel",
+"Adriana",
+"Alejandra",
+"Alicia",
+"Amalia",
+"Ana",
+"Ana Luisa",
+"Ana María",
+"Andrea",
+"Ángela",
+"Anita",
+"Antonia",
+"Araceli",
+"Ariadna",
+"Barbara",
+"Beatriz",
+"Berta",
+"Blanca",
+"Caridad",
+"Carla",
+"Carlota",
+"Carmen",
+"Carolina",
+"Catalina",
+"Cecilia",
+"Clara",
+"Claudia",
+"Concepción",
+"Conchita",
+"Cristina",
+"Daniela",
+"Débora",
+"Diana",
+"Dolores",
+"Dorotea",
+"Elena",
+"Elisa",
+"Elizabeth",
+"Eloisa",
+"Elsa",
+"Elvira",
+"Emilia",
+"Esperanza",
+"Estela",
+"Ester",
+"Eva",
+"Florencia",
+"Francisca",
+"Gabriela",
+"Gloria",
+"Graciela",
+"Guadalupe",
+"Guillermina",
+"Inés",
+"Irene",
+"Isabel",
+"Isabela",
+"Josefina",
+"Juana",
+"Julia",
+"Laura",
+"Leonor",
+"Leticia",
+"Lilia",
+"Lola",
+"Lorena",
+"Lourdes",
+"Lucia",
+"Luisa",
+"Luz",
+"Magdalena",
+"Manuela",
+"Marcela",
+"Margarita",
+"María",
+"María Cristina",
+"María de Jesús",
+"María de los Ángeles",
+"María del Carmen",
+"María Elena",
+"María Eugenia",
+"María Guadalupe",
+"María José",
+"María Luisa",
+"María Soledad",
+"María Teresa",
+"Mariana",
+"Maricarmen",
+"Marilu",
+"Marisol",
+"Marta",
+"Mayte",
+"Mercedes",
+"Micaela",
+"Mónica",
+"Natalia",
+"Norma",
+"Olivia",
+"Patricia",
+"Pilar",
+"Ramona",
+"Raquel",
+"Rebeca",
+"Reina",
+"Rocio",
+"Rosa",
+"Rosa María",
+"Rosalia",
+"Rosario",
+"Sara",
+"Silvia",
+"Sofia",
+"Soledad",
+"Sonia",
+"Susana",
+"Teresa",
+"Verónica",
+"Victoria",
+"Virginia",
+"Xochitl",
+"Yolanda",
+"Abigail",
+"Abril",
+"Adela",
+"Alexa",
+"Alondra Romina",
+"Ana Sofía",
+"Ana Victoria",
+"Camila",
+"Carolina",
+"Daniela",
+"Dulce María",
+"Emily",
+"Esmeralda",
+"Estefanía",
+"Evelyn",
+"Fatima",
+"Ivanna",
+"Jazmin",
+"Jennifer",
+"Jimena",
+"Julieta",
+"Kimberly",
+"Liliana",
+"Lizbeth",
+"María Fernanda",
+"Melany",
+"Melissa",
+"Miranda",
+"Monserrat",
+"Naomi",
+"Natalia",
+"Nicole",
+"Paola",
+"Paulina",
+"Regina",
+"Renata",
+"Valentina",
+"Valeria",
+"Vanessa",
+"Ximena",
+"Ximena Guadalupe",
+"Yamileth",
+"Yaretzi",
+"Zoe"
+]
+},{}],448:[function(require,module,exports){
+arguments[4][259][0].apply(exports,arguments)
+},{"./first_name":447,"./last_name":449,"./name":450,"./prefix":451,"./suffix":452,"./title":453,"/Users/a/dev/faker.js/lib/locales/en/name/index.js":259}],449:[function(require,module,exports){
+module["exports"] = [
+  "Abeyta",
+"Abrego",
+"Abreu",
+"Acevedo",
+"Acosta",
+"Acuña",
+"Adame",
+"Adorno",
+"Agosto",
+"Aguayo",
+"Águilar",
+"Aguilera",
+"Aguirre",
+"Alanis",
+"Alaniz",
+"Alarcón",
+"Alba",
+"Alcala",
+"Alcántar",
+"Alcaraz",
+"Alejandro",
+"Alemán",
+"Alfaro",
+"Alicea",
+"Almanza",
+"Almaraz",
+"Almonte",
+"Alonso",
+"Alonzo",
+"Altamirano",
+"Alva",
+"Alvarado",
+"Alvarez",
+"Amador",
+"Amaya",
+"Anaya",
+"Anguiano",
+"Angulo",
+"Aparicio",
+"Apodaca",
+"Aponte",
+"Aragón",
+"Aranda",
+"Araña",
+"Arce",
+"Archuleta",
+"Arellano",
+"Arenas",
+"Arevalo",
+"Arguello",
+"Arias",
+"Armas",
+"Armendáriz",
+"Armenta",
+"Armijo",
+"Arredondo",
+"Arreola",
+"Arriaga",
+"Arroyo",
+"Arteaga",
+"Atencio",
+"Ávalos",
+"Ávila",
+"Avilés",
+"Ayala",
+"Baca",
+"Badillo",
+"Báez",
+"Baeza",
+"Bahena",
+"Balderas",
+"Ballesteros",
+"Banda",
+"Bañuelos",
+"Barajas",
+"Barela",
+"Barragán",
+"Barraza",
+"Barrera",
+"Barreto",
+"Barrientos",
+"Barrios",
+"Batista",
+"Becerra",
+"Beltrán",
+"Benavides",
+"Benavídez",
+"Benítez",
+"Bermúdez",
+"Bernal",
+"Berríos",
+"Bétancourt",
+"Blanco",
+"Bonilla",
+"Borrego",
+"Botello",
+"Bravo",
+"Briones",
+"Briseño",
+"Brito",
+"Bueno",
+"Burgos",
+"Bustamante",
+"Bustos",
+"Caballero",
+"Cabán",
+"Cabrera",
+"Cadena",
+"Caldera",
+"Calderón",
+"Calvillo",
+"Camacho",
+"Camarillo",
+"Campos",
+"Canales",
+"Candelaria",
+"Cano",
+"Cantú",
+"Caraballo",
+"Carbajal",
+"Cardenas",
+"Cardona",
+"Carmona",
+"Carranza",
+"Carrasco",
+"Carrasquillo",
+"Carreón",
+"Carrera",
+"Carrero",
+"Carrillo",
+"Carrion",
+"Carvajal",
+"Casanova",
+"Casares",
+"Casárez",
+"Casas",
+"Casillas",
+"Castañeda",
+"Castellanos",
+"Castillo",
+"Castro",
+"Cavazos",
+"Cazares",
+"Ceballos",
+"Cedillo",
+"Ceja",
+"Centeno",
+"Cepeda",
+"Cerda",
+"Cervantes",
+"Cervántez",
+"Chacón",
+"Chapa",
+"Chavarría",
+"Chávez",
+"Cintrón",
+"Cisneros",
+"Collado",
+"Collazo",
+"Colón",
+"Colunga",
+"Concepción",
+"Contreras",
+"Cordero",
+"Córdova",
+"Cornejo",
+"Corona",
+"Coronado",
+"Corral",
+"Corrales",
+"Correa",
+"Cortés",
+"Cortez",
+"Cotto",
+"Covarrubias",
+"Crespo",
+"Cruz",
+"Cuellar",
+"Curiel",
+"Dávila",
+"de Anda",
+"de Jesús",
+"Delacrúz",
+"Delafuente",
+"Delagarza",
+"Delao",
+"Delapaz",
+"Delarosa",
+"Delatorre",
+"Deleón",
+"Delgadillo",
+"Delgado",
+"Delrío",
+"Delvalle",
+"Díaz",
+"Domínguez",
+"Domínquez",
+"Duarte",
+"Dueñas",
+"Duran",
+"Echevarría",
+"Elizondo",
+"Enríquez",
+"Escalante",
+"Escamilla",
+"Escobar",
+"Escobedo",
+"Esparza",
+"Espinal",
+"Espino",
+"Espinosa",
+"Espinoza",
+"Esquibel",
+"Esquivel",
+"Estévez",
+"Estrada",
+"Fajardo",
+"Farías",
+"Feliciano",
+"Fernández",
+"Ferrer",
+"Fierro",
+"Figueroa",
+"Flores",
+"Flórez",
+"Fonseca",
+"Franco",
+"Frías",
+"Fuentes",
+"Gaitán",
+"Galarza",
+"Galindo",
+"Gallardo",
+"Gallegos",
+"Galván",
+"Gálvez",
+"Gamboa",
+"Gamez",
+"Gaona",
+"Garay",
+"García",
+"Garibay",
+"Garica",
+"Garrido",
+"Garza",
+"Gastélum",
+"Gaytán",
+"Gil",
+"Girón",
+"Godínez",
+"Godoy",
+"Gollum",
+"Gómez",
+"Gonzales",
+"González",
+"Gracia",
+"Granado",
+"Granados",
+"Griego",
+"Grijalva",
+"Guajardo",
+"Guardado",
+"Guerra",
+"Guerrero",
+"Guevara",
+"Guillen",
+"Gurule",
+"Gutiérrez",
+"Guzmán",
+"Haro",
+"Henríquez",
+"Heredia",
+"Hernádez",
+"Hernandes",
+"Hernández",
+"Herrera",
+"Hidalgo",
+"Hinojosa",
+"Holguín",
+"Huerta",
+"Huixtlacatl",
+"Hurtado",
+"Ibarra",
+"Iglesias",
+"Irizarry",
+"Jaime",
+"Jaimes",
+"Jáquez",
+"Jaramillo",
+"Jasso",
+"Jiménez",
+"Jimínez",
+"Juárez",
+"Jurado",
+"Kadar rodriguez",
+"Kamal",
+"Kamat",
+"Kanaria",
+"Kanea",
+"Kanimal",
+"Kano",
+"Kanzaki",
+"Kaplan",
+"Kara",
+"Karam",
+"Karan",
+"Kardache soto",
+"Karem",
+"Karen",
+"Khalid",
+"Kindelan",
+"Koenig",
+"Korta",
+"Korta hernandez",
+"Kortajarena",
+"Kranz sans",
+"Krasnova",
+"Krauel natera",
+"Kuzmina",
+"Kyra",
+"Laboy",
+"Lara",
+"Laureano",
+"Leal",
+"Lebrón",
+"Ledesma",
+"Leiva",
+"Lemus",
+"León",
+"Lerma",
+"Leyva",
+"Limón",
+"Linares",
+"Lira",
+"Llamas",
+"Loera",
+"Lomeli",
+"Longoria",
+"López",
+"Lovato",
+"Loya",
+"Lozada",
+"Lozano",
+"Lucero",
+"Lucio",
+"Luevano",
+"Lugo",
+"Luna",
+"Macías",
+"Madera",
+"Madrid",
+"Madrigal",
+"Maestas",
+"Magaña",
+"Malave",
+"Maldonado",
+"Manzanares",
+"Mares",
+"Marín",
+"Márquez",
+"Marrero",
+"Marroquín",
+"Martínez",
+"Mascareñas",
+"Mata",
+"Mateo",
+"Matías",
+"Matos",
+"Maya",
+"Mayorga",
+"Medina",
+"Medrano",
+"Mejía",
+"Meléndez",
+"Melgar",
+"Mena",
+"Menchaca",
+"Méndez",
+"Mendoza",
+"Menéndez",
+"Meraz",
+"Mercado",
+"Merino",
+"Mesa",
+"Meza",
+"Miramontes",
+"Miranda",
+"Mireles",
+"Mojica",
+"Molina",
+"Mondragón",
+"Monroy",
+"Montalvo",
+"Montañez",
+"Montaño",
+"Montemayor",
+"Montenegro",
+"Montero",
+"Montes",
+"Montez",
+"Montoya",
+"Mora",
+"Morales",
+"Moreno",
+"Mota",
+"Moya",
+"Munguía",
+"Muñiz",
+"Muñoz",
+"Murillo",
+"Muro",
+"Nájera",
+"Naranjo",
+"Narváez",
+"Nava",
+"Navarrete",
+"Navarro",
+"Nazario",
+"Negrete",
+"Negrón",
+"Nevárez",
+"Nieto",
+"Nieves",
+"Niño",
+"Noriega",
+"Núñez",
+"Ñañez",
+"Ocampo",
+"Ocasio",
+"Ochoa",
+"Ojeda",
+"Olivares",
+"Olivárez",
+"Olivas",
+"Olivera",
+"Olivo",
+"Olmos",
+"Olvera",
+"Ontiveros",
+"Oquendo",
+"Ordóñez",
+"Orellana",
+"Ornelas",
+"Orosco",
+"Orozco",
+"Orta",
+"Ortega",
+"Ortiz",
+"Osorio",
+"Otero",
+"Ozuna",
+"Pabón",
+"Pacheco",
+"Padilla",
+"Padrón",
+"Páez",
+"Pagan",
+"Palacios",
+"Palomino",
+"Palomo",
+"Pantoja",
+"Paredes",
+"Parra",
+"Partida",
+"Patiño",
+"Paz",
+"Pedraza",
+"Pedroza",
+"Pelayo",
+"Peña",
+"Perales",
+"Peralta",
+"Perea",
+"Peres",
+"Pérez",
+"Pichardo",
+"Pineda",
+"Piña",
+"Pizarro",
+"Polanco",
+"Ponce",
+"Porras",
+"Portillo",
+"Posada",
+"Prado",
+"Preciado",
+"Prieto",
+"Puente",
+"Puga",
+"Pulido",
+"Quesada",
+"Quevedo",
+"Quezada",
+"Quinta",
+"Quintairos",
+"Quintana",
+"Quintanilla",
+"Quintero",
+"Quintero cruz",
+"Quintero de la cruz",
+"Quiñones",
+"Quiñónez",
+"Quiros",
+"Quiroz",
+"Rael",
+"Ramírez",
+"Ramón",
+"Ramos",
+"Rangel",
+"Rascón",
+"Raya",
+"Razo",
+"Regalado",
+"Rendón",
+"Rentería",
+"Reséndez",
+"Reyes",
+"Reyna",
+"Reynoso",
+"Rico",
+"Rincón",
+"Riojas",
+"Ríos",
+"Rivas",
+"Rivera",
+"Rivero",
+"Robledo",
+"Robles",
+"Rocha",
+"Rodarte",
+"Rodrígez",
+"Rodríguez",
+"Rodríquez",
+"Rojas",
+"Rojo",
+"Roldán",
+"Rolón",
+"Romero",
+"Romo",
+"Roque",
+"Rosado",
+"Rosales",
+"Rosario",
+"Rosas",
+"Roybal",
+"Rubio",
+"Ruelas",
+"Ruiz",
+"Saavedra",
+"Sáenz",
+"Saiz",
+"Salas",
+"Salazar",
+"Salcedo",
+"Salcido",
+"Saldaña",
+"Saldivar",
+"Salgado",
+"Salinas",
+"Samaniego",
+"Sanabria",
+"Sanches",
+"Sánchez",
+"Sandoval",
+"Santacruz",
+"Santana",
+"Santiago",
+"Santillán",
+"Sarabia",
+"Sauceda",
+"Saucedo",
+"Sedillo",
+"Segovia",
+"Segura",
+"Sepúlveda",
+"Serna",
+"Serrano",
+"Serrato",
+"Sevilla",
+"Sierra",
+"Sisneros",
+"Solano",
+"Solís",
+"Soliz",
+"Solorio",
+"Solorzano",
+"Soria",
+"Sosa",
+"Sotelo",
+"Soto",
+"Suárez",
+"Tafoya",
+"Tamayo",
+"Tamez",
+"Tapia",
+"Tejada",
+"Tejeda",
+"Téllez",
+"Tello",
+"Terán",
+"Terrazas",
+"Tijerina",
+"Tirado",
+"Toledo",
+"Toro",
+"Torres",
+"Tórrez",
+"Tovar",
+"Trejo",
+"Treviño",
+"Trujillo",
+"Ulibarri",
+"Ulloa",
+"Urbina",
+"Ureña",
+"Urías",
+"Uribe",
+"Urrutia",
+"Vaca",
+"Valadez",
+"Valdés",
+"Valdez",
+"Valdivia",
+"Valencia",
+"Valentín",
+"Valenzuela",
+"Valladares",
+"Valle",
+"Vallejo",
+"Valles",
+"Valverde",
+"Vanegas",
+"Varela",
+"Vargas",
+"Vásquez",
+"Vázquez",
+"Vega",
+"Vela",
+"Velasco",
+"Velásquez",
+"Velázquez",
+"Vélez",
+"Véliz",
+"Venegas",
+"Vera",
+"Verdugo",
+"Verduzco",
+"Vergara",
+"Viera",
+"Vigil",
+"Villa",
+"Villagómez",
+"Villalobos",
+"Villalpando",
+"Villanueva",
+"Villareal",
+"Villarreal",
+"Villaseñor",
+"Villegas",
+"Xacon",
+"Xairo Belmonte",
+"Xana",
+"Xenia",
+"Xiana",
+"Xicoy",
+"Yago",
+"Yami",
+"Yanes",
+"Yáñez",
+"Ybarra",
+"Yebra",
+"Yunta",
+"Zabaleta",
+"Zamarreno",
+"Zamarripa",
+"Zambrana",
+"Zambrano",
+"Zamora",
+"Zamudio",
+"Zapata",
+"Zaragoza",
+"Zarate",
+"Zavala",
+"Zayas",
+"Zelaya",
+"Zepeda",
+"Zúñiga"
+];
+
+},{}],450:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} de #{last_name}",
+  "#{suffix} #{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}"
+];
+
+},{}],451:[function(require,module,exports){
+module.exports=require(404)
+},{"/Users/a/dev/faker.js/lib/locales/es/name/prefix.js":404}],452:[function(require,module,exports){
+module["exports"] = [
+  "Jr.",
+  "Sr.",
+  "I",
+  "II",
+  "III",
+  "IV",
+  "V",
+  "MD",
+  "DDS",
+  "PhD",
+  "DVM",
+  "Ing.",
+  "Lic.",
+  "Dr.",
+  "Mtro."
+];
+
+},{}],453:[function(require,module,exports){
+ module["exports"] = {
+  "descriptor": [
+    "Jefe",
+    "Senior",
+    "Directo",
+    "Corporativo",
+    "Dinánmico",
+    "Futuro",
+    "Producto",
+    "Nacional",
+    "Regional",
+    "Distrito",
+    "Central",
+    "Global",
+    "Cliente",
+    "Inversor",
+    "International",
+    "Heredado",
+    "Adelante",
+    "Interno",
+    "Humano",
+    "Gerente",
+    "SubGerente",
+    "Director"
+  ],
+  "level": [
+    "Soluciones",
+    "Programa",
+    "Marca",
+    "Seguridad",
+    "Investigación",
+    "Marketing",
+    "Normas",
+    "Implementación",
+    "Integración",
+    "Funcionalidad",
+    "Respuesta",
+    "Paradigma",
+    "Tácticas",
+    "Identidad",
+    "Mercados",
+    "Grupo",
+    "División",
+    "Aplicaciones",
+    "Optimización",
+    "Operaciones",
+    "Infraestructura",
+    "Intranet",
+    "Comunicaciones",
+    "Web",
+    "Calidad",
+    "Seguro",
+    "Mobilidad",
+    "Cuentas",
+    "Datos",
+    "Creativo",
+    "Configuración",
+    "Contabilidad",
+    "Interacciones",
+    "Factores",
+    "Usabilidad",
+    "Métricas",
+  ],
+  "job": [
+    "Supervisor",
+    "Asociado",
+    "Ejecutivo",
+    "Relacciones",
+    "Oficial",
+    "Gerente",
+    "Ingeniero",
+    "Especialista",
+    "Director",
+    "Coordinador",
+    "Administrador",
+    "Arquitecto",
+    "Analista",
+    "Diseñador",
+    "Planificador",
+    "Técnico",
+    "Funcionario",
+    "Desarrollador",
+    "Productor",
+    "Consultor",
+    "Asistente",
+    "Facilitador",
+    "Agente",
+    "Representante",
+    "Estratega",
+    "Scrum Master",
+    "Scrum Owner",
+    "Product Owner",
+    "Scrum Developer"
+  ]
+};
+
+},{}],454:[function(require,module,exports){
+module["exports"] = [
+  "5###-###-###",
+  "5##.###.###",
+  "5## ### ###",
+  "5########"
+];
+
+},{}],455:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":454,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],456:[function(require,module,exports){
+module["exports"] = [
+  "hormigas",
+   "murciélagos",
+   "osos",
+   "abejas",
+   "pájaros",
+   "búfalo",
+   "gatos",
+   "pollos",
+   "ganado",
+   "perros",
+   "delfines",
+   "patos",
+   "elefantes",
+   "peces",
+   "zorros",
+   "ranas",
+   "gansos",
+   "cabras",
+   "caballos",
+   "canguros",
+   "leones",
+   "monos",
+   "búhos",
+   "bueyes",
+   "pingüinos",
+   "pueblo",
+   "cerdos",
+   "conejos",
+   "ovejas",
+   "tigres",
+   "ballenas",
+   "lobos",
+   "cebras",
+   "almas en pena",
+   "cuervos",
+   "gatos negros",
+   "quimeras",
+   "fantasmas",
+   "conspiradores",
+   "dragones",
+   "enanos",
+   "duendes",
+   "encantadores",
+   "exorcistas",
+   "hijos",
+   "enemigos",
+   "gigantes",
+   "gnomos",
+   "duendes",
+   "gansos",
+   "grifos",
+   "licántropos",
+   "némesis",
+   "ogros",
+   "oráculos",
+   "profetas",
+   "hechiceros",
+   "arañas",
+   "espíritus",
+   "vampiros",
+   "brujos",
+   "zorras",
+   "hombres lobo",
+   "brujas",
+   "adoradores",
+   "zombies",
+   "druidas"
+];
+
+},{}],457:[function(require,module,exports){
+arguments[4][270][0].apply(exports,arguments)
+},{"./creature":456,"./name":458,"/Users/a/dev/faker.js/lib/locales/en/team/index.js":270}],458:[function(require,module,exports){
+module.exports=require(271)
+},{"/Users/a/dev/faker.js/lib/locales/en/team/name.js":271}],459:[function(require,module,exports){
+var fa = {};
+module['exports'] = fa;
+fa.title = "Farsi";
+fa.name = require("./name");
+
+},{"./name":461}],460:[function(require,module,exports){
+module["exports"] = [
+  "آبان دخت",
+  "آبتین",
+  "آتوسا",
+  "آفر",
+  "آفره دخت",
+  "آذرنوش‌",
+  "آذین",
+  "آراه",
+  "آرزو",
+  "آرش",
+  "آرتین",
+  "آرتام",
+  "آرتمن",
+  "آرشام",
+  "آرمان",
+  "آرمین",
+  "آرمیتا",
+  "آریا فر",
+  "آریا",
+  "آریا مهر",
+  "آرین",
+  "آزاده",
+  "آزرم",
+  "آزرمدخت",
+  "آزیتا",
+  "آناهیتا",
+  "آونگ",
+  "آهو",
+  "آیدا",
+  "اتسز",
+  "اختر",
+  "ارد",
+  "ارد شیر",
+  "اردوان",
+  "ارژن",
+  "ارژنگ",
+  "ارسلان",
+  "ارغوان",
+  "ارمغان",
+  "ارنواز",
+  "اروانه",
+  "استر",
+  "اسفندیار",
+  "اشکان",
+  "اشکبوس",
+  "افسانه",
+  "افسون",
+  "افشین",
+  "امید",
+  "انوش (‌ آنوشا )",
+  "انوشروان",
+  "اورنگ",
+  "اوژن",
+  "اوستا",
+  "اهورا",
+  "ایاز",
+  "ایران",
+  "ایراندخت",
+  "ایرج",
+  "ایزدیار",
+  "بابک",
+  "باپوک",
+  "باربد",
+  "بارمان",
+  "بامداد",
+  "بامشاد",
+  "بانو",
+  "بختیار",
+  "برانوش",
+  "بردیا",
+  "برزو",
+  "برزویه",
+  "برزین",
+  "برمک",
+  "بزرگمهر",
+  "بنفشه",
+  "بوژان",
+  "بویان",
+  "بهار",
+  "بهارک",
+  "بهاره",
+  "بهتاش",
+  "بهداد",
+  "بهرام",
+  "بهدیس",
+  "بهرخ",
+  "بهرنگ",
+  "بهروز",
+  "بهزاد",
+  "بهشاد",
+  "بهمن",
+  "بهناز",
+  "بهنام",
+  "بهنود",
+  "بهنوش",
+  "بیتا",
+  "بیژن",
+  "پارسا",
+  "پاکان",
+  "پاکتن",
+  "پاکدخت",
+  "پانته آ",
+  "پدرام",
+  "پرتو",
+  "پرشنگ",
+  "پرتو",
+  "پرستو",
+  "پرویز",
+  "پردیس",
+  "پرهام",
+  "پژمان",
+  "پژوا",
+  "پرنیا",
+  "پشنگ",
+  "پروانه",
+  "پروین",
+  "پری",
+  "پریچهر",
+  "پریدخت",
+  "پریسا",
+  "پرناز",
+  "پریوش",
+  "پریا",
+  "پوپک",
+  "پوران",
+  "پوراندخت",
+  "پوریا",
+  "پولاد",
+  "پویا",
+  "پونه",
+  "پیام",
+  "پیروز",
+  "پیمان",
+  "تابان",
+  "تاباندخت",
+  "تاجی",
+  "تارا",
+  "تاویار",
+  "ترانه",
+  "تناز",
+  "توران",
+  "توراندخت",
+  "تورج",
+  "تورتک",
+  "توفان",
+  "توژال",
+  "تیر داد",
+  "تینا",
+  "تینو",
+  "جابان",
+  "جامین",
+  "جاوید",
+  "جریره",
+  "جمشید",
+  "جوان",
+  "جویا",
+  "جهان",
+  "جهانبخت",
+  "جهانبخش",
+  "جهاندار",
+  "جهانگیر",
+  "جهان بانو",
+  "جهاندخت",
+  "جهان ناز",
+  "جیران",
+  "چابک",
+  "چالاک",
+  "چاوش",
+  "چترا",
+  "چوبین",
+  "چهرزاد",
+  "خاوردخت",
+  "خداداد",
+  "خدایار",
+  "خرم",
+  "خرمدخت",
+  "خسرو",
+  "خشایار",
+  "خورشید",
+  "دادمهر",
+  "دارا",
+  "داراب",
+  "داریا",
+  "داریوش",
+  "دانوش",
+  "داور‌",
+  "دایان",
+  "دریا",
+  "دل آرا",
+  "دل آویز",
+  "دلارام",
+  "دل انگیز",
+  "دلبر",
+  "دلبند",
+  "دلربا",
+  "دلشاد",
+  "دلکش",
+  "دلناز",
+  "دلنواز",
+  "دورشاسب",
+  "دنیا",
+  "دیااکو",
+  "دیانوش",
+  "دیبا",
+  "دیبا دخت",
+  "رابو",
+  "رابین",
+  "رادبانو",
+  "رادمان",
+  "رازبان",
+  "راژانه",
+  "راسا",
+  "رامتین",
+  "رامش",
+  "رامشگر",
+  "رامونا",
+  "رامیار",
+  "رامیلا",
+  "رامین",
+  "راویار",
+  "رژینا",
+  "رخپاک",
+  "رخسار",
+  "رخشانه",
+  "رخشنده",
+  "رزمیار",
+  "رستم",
+  "رکسانا",
+  "روبینا",
+  "رودابه",
+  "روزبه",
+  "روشنک",
+  "روناک",
+  "رهام",
+  "رهی",
+  "ریبار",
+  "راسپینا",
+  "زادبخت",
+  "زاد به",
+  "زاد چهر",
+  "زاد فر",
+  "زال",
+  "زادماسب",
+  "زاوا",
+  "زردشت",
+  "زرنگار",
+  "زری",
+  "زرین",
+  "زرینه",
+  "زمانه",
+  "زونا",
+  "زیبا",
+  "زیبار",
+  "زیما",
+  "زینو",
+  "ژاله",
+  "ژالان",
+  "ژیار",
+  "ژینا",
+  "ژیوار",
+  "سارا",
+  "سارک",
+  "سارنگ",
+  "ساره",
+  "ساسان",
+  "ساغر",
+  "سام",
+  "سامان",
+  "سانا",
+  "ساناز",
+  "سانیار",
+  "ساویز",
+  "ساهی",
+  "ساینا",
+  "سایه",
+  "سپنتا",
+  "سپند",
+  "سپهر",
+  "سپهرداد",
+  "سپیدار",
+  "سپید بانو",
+  "سپیده",
+  "ستاره",
+  "ستی",
+  "سرافراز",
+  "سرور",
+  "سروش",
+  "سرور",
+  "سوبا",
+  "سوبار",
+  "سنبله",
+  "سودابه",
+  "سوری",
+  "سورن",
+  "سورنا",
+  "سوزان",
+  "سوزه",
+  "سوسن",
+  "سومار",
+  "سولان",
+  "سولماز",
+  "سوگند",
+  "سهراب",
+  "سهره",
+  "سهند",
+  "سیامک",
+  "سیاوش",
+  "سیبوبه ‌",
+  "سیما",
+  "سیمدخت",
+  "سینا",
+  "سیمین",
+  "سیمین دخت",
+  "شاپرک",
+  "شادی",
+  "شادمهر",
+  "شاران",
+  "شاهپور",
+  "شاهدخت",
+  "شاهرخ",
+  "شاهین",
+  "شاهیندخت",
+  "شایسته",
+  "شباهنگ",
+  "شب بو",
+  "شبدیز",
+  "شبنم",
+  "شراره",
+  "شرمین",
+  "شروین",
+  "شکوفه",
+  "شکفته",
+  "شمشاد",
+  "شمین",
+  "شوان",
+  "شمیلا",
+  "شورانگیز",
+  "شوری",
+  "شهاب",
+  "شهبار",
+  "شهباز",
+  "شهبال",
+  "شهپر",
+  "شهداد",
+  "شهرآرا",
+  "شهرام",
+  "شهربانو",
+  "شهرزاد",
+  "شهرناز",
+  "شهرنوش",
+  "شهره",
+  "شهریار",
+  "شهرزاد",
+  "شهلا",
+  "شهنواز",
+  "شهین",
+  "شیبا",
+  "شیدا",
+  "شیده",
+  "شیردل",
+  "شیرزاد",
+  "شیرنگ",
+  "شیرو",
+  "شیرین دخت",
+  "شیما",
+  "شینا",
+  "شیرین",
+  "شیوا",
+  "طوس",
+  "طوطی",
+  "طهماسب",
+  "طهمورث",
+  "غوغا",
+  "غنچه",
+  "فتانه",
+  "فدا",
+  "فراز",
+  "فرامرز",
+  "فرانک",
+  "فراهان",
+  "فربد",
+  "فربغ",
+  "فرجاد",
+  "فرخ",
+  "فرخ پی",
+  "فرخ داد",
+  "فرخ رو",
+  "فرخ زاد",
+  "فرخ لقا",
+  "فرخ مهر",
+  "فرداد",
+  "فردیس",
+  "فرین",
+  "فرزاد",
+  "فرزام",
+  "فرزان",
+  "فرزانه",
+  "فرزین",
+  "فرشاد",
+  "فرشته",
+  "فرشید",
+  "فرمان",
+  "فرناز",
+  "فرنگیس",
+  "فرنود",
+  "فرنوش",
+  "فرنیا",
+  "فروتن",
+  "فرود",
+  "فروز",
+  "فروزان",
+  "فروزش",
+  "فروزنده",
+  "فروغ",
+  "فرهاد",
+  "فرهنگ",
+  "فرهود",
+  "فربار",
+  "فریبا",
+  "فرید",
+  "فریدخت",
+  "فریدون",
+  "فریمان",
+  "فریناز",
+  "فرینوش",
+  "فریوش",
+  "فیروز",
+  "فیروزه",
+  "قابوس",
+  "قباد",
+  "قدسی",
+  "کابان",
+  "کابوک",
+  "کارا",
+  "کارو",
+  "کاراکو",
+  "کامبخت",
+  "کامبخش",
+  "کامبیز",
+  "کامجو",
+  "کامدین",
+  "کامران",
+  "کامراوا",
+  "کامک",
+  "کامنوش",
+  "کامیار",
+  "کانیار",
+  "کاووس",
+  "کاوه",
+  "کتایون",
+  "کرشمه",
+  "کسری",
+  "کلاله",
+  "کمبوجیه",
+  "کوشا",
+  "کهبد",
+  "کهرام",
+  "کهزاد",
+  "کیارش",
+  "کیان",
+  "کیانا",
+  "کیانچهر",
+  "کیاندخت",
+  "کیانوش",
+  "کیاوش",
+  "کیخسرو",
+  "کیقباد",
+  "کیکاووس",
+  "کیوان",
+  "کیوان دخت",
+  "کیومرث",
+  "کیهان",
+  "کیاندخت",
+  "کیهانه",
+  "گرد آفرید",
+  "گردان",
+  "گرشا",
+  "گرشاسب",
+  "گرشین",
+  "گرگین",
+  "گزل",
+  "گشتاسب",
+  "گشسب",
+  "گشسب بانو",
+  "گل",
+  "گل آذین",
+  "گل آرا‌",
+  "گلاره",
+  "گل افروز",
+  "گلاله",
+  "گل اندام",
+  "گلاویز",
+  "گلباد",
+  "گلبار",
+  "گلبام",
+  "گلبان",
+  "گلبانو",
+  "گلبرگ",
+  "گلبو",
+  "گلبهار",
+  "گلبیز",
+  "گلپاره",
+  "گلپر",
+  "گلپری",
+  "گلپوش",
+  "گل پونه",
+  "گلچین",
+  "گلدخت",
+  "گلدیس",
+  "گلربا",
+  "گلرخ",
+  "گلرنگ",
+  "گلرو",
+  "گلشن",
+  "گلریز",
+  "گلزاد",
+  "گلزار",
+  "گلسا",
+  "گلشید",
+  "گلنار",
+  "گلناز",
+  "گلنسا",
+  "گلنواز",
+  "گلنوش",
+  "گلی",
+  "گودرز",
+  "گوماتو",
+  "گهر چهر",
+  "گوهر ناز",
+  "گیتی",
+  "گیسو",
+  "گیلدا",
+  "گیو",
+  "لادن",
+  "لاله",
+  "لاله رخ",
+  "لاله دخت",
+  "لبخند",
+  "لقاء",
+  "لومانا",
+  "لهراسب",
+  "مارال",
+  "ماری",
+  "مازیار",
+  "ماکان",
+  "مامک",
+  "مانا",
+  "ماندانا",
+  "مانوش",
+  "مانی",
+  "مانیا",
+  "ماهان",
+  "ماهاندخت",
+  "ماه برزین",
+  "ماه جهان",
+  "ماهچهر",
+  "ماهدخت",
+  "ماهور",
+  "ماهرخ",
+  "ماهزاد",
+  "مردآویز",
+  "مرداس",
+  "مرزبان",
+  "مرمر",
+  "مزدک",
+  "مژده",
+  "مژگان",
+  "مستان",
+  "مستانه",
+  "مشکاندخت",
+  "مشکناز",
+  "مشکین دخت",
+  "منیژه",
+  "منوچهر",
+  "مهبانو",
+  "مهبد",
+  "مه داد",
+  "مهتاب",
+  "مهدیس",
+  "مه جبین",
+  "مه دخت",
+  "مهر آذر",
+  "مهر آرا",
+  "مهر آسا",
+  "مهر آفاق",
+  "مهر افرین",
+  "مهرآب",
+  "مهرداد",
+  "مهر افزون",
+  "مهرام",
+  "مهران",
+  "مهراندخت",
+  "مهراندیش",
+  "مهرانفر",
+  "مهرانگیز",
+  "مهرداد",
+  "مهر دخت",
+  "مهرزاده ‌",
+  "مهرناز",
+  "مهرنوش",
+  "مهرنکار",
+  "مهرنیا",
+  "مهروز",
+  "مهری",
+  "مهریار",
+  "مهسا",
+  "مهستی",
+  "مه سیما",
+  "مهشاد",
+  "مهشید",
+  "مهنام",
+  "مهناز",
+  "مهنوش",
+  "مهوش",
+  "مهیار",
+  "مهین",
+  "مهین دخت",
+  "میترا",
+  "میخک",
+  "مینا",
+  "مینا دخت",
+  "مینو",
+  "مینودخت",
+  "مینو فر",
+  "نادر",
+  "ناز آفرین",
+  "نازبانو",
+  "نازپرور",
+  "نازچهر",
+  "نازفر",
+  "نازلی",
+  "نازی",
+  "نازیدخت",
+  "نامور",
+  "ناهید",
+  "ندا",
+  "نرسی",
+  "نرگس",
+  "نرمک",
+  "نرمین",
+  "نریمان",
+  "نسترن",
+  "نسرین",
+  "نسرین دخت",
+  "نسرین نوش",
+  "نکیسا",
+  "نگار",
+  "نگاره",
+  "نگارین",
+  "نگین",
+  "نوا",
+  "نوش",
+  "نوش آذر",
+  "نوش آور",
+  "نوشا",
+  "نوش آفرین",
+  "نوشدخت",
+  "نوشروان",
+  "نوشفر",
+  "نوشناز",
+  "نوشین",
+  "نوید",
+  "نوین",
+  "نوین دخت",
+  "نیش ا",
+  "نیک بین",
+  "نیک پی",
+  "نیک چهر",
+  "نیک خواه",
+  "نیکداد",
+  "نیکدخت",
+  "نیکدل",
+  "نیکزاد",
+  "نیلوفر",
+  "نیما",
+  "وامق",
+  "ورجاوند",
+  "وریا",
+  "وشمگیر",
+  "وهرز",
+  "وهسودان",
+  "ویدا",
+  "ویس",
+  "ویشتاسب",
+  "ویگن",
+  "هژیر",
+  "هخامنش",
+  "هربد( هیربد )",
+  "هرمز",
+  "همایون",
+  "هما",
+  "همادخت",
+  "همدم",
+  "همراز",
+  "همراه",
+  "هنگامه",
+  "هوتن",
+  "هور",
+  "هورتاش",
+  "هورچهر",
+  "هورداد",
+  "هوردخت",
+  "هورزاد",
+  "هورمند",
+  "هوروش",
+  "هوشنگ",
+  "هوشیار",
+  "هومان",
+  "هومن",
+  "هونام",
+  "هویدا",
+  "هیتاسب",
+  "هیرمند",
+  "هیما",
+  "هیوا",
+  "یادگار",
+  "یاسمن ( یاسمین )",
+  "یاشار",
+  "یاور",
+  "یزدان",
+  "یگانه",
+  "یوشیتا"
+];
+
+},{}],461:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+
+},{"./first_name":460,"./last_name":462,"./prefix":463}],462:[function(require,module,exports){
+module["exports"] = [
+  "عارف",
+  "عاشوری",
+  "عالی",
+  "عبادی",
+  "عبدالکریمی",
+  "عبدالملکی",
+  "عراقی",
+  "عزیزی",
+  "عصار",
+  "عقیلی",
+  "علم",
+  "علم‌الهدی",
+  "علی عسگری",
+  "علی‌آبادی",
+  "علیا",
+  "علی‌پور",
+  "علی‌زمانی",
+  "عنایت",
+  "غضنفری",
+  "غنی",
+  "فارسی",
+  "فاطمی",
+  "فانی",
+  "فتاحی",
+  "فرامرزی",
+  "فرج",
+  "فرشیدورد",
+  "فرمانفرمائیان",
+  "فروتن",
+  "فرهنگ",
+  "فریاد",
+  "فنایی",
+  "فنی‌زاده",
+  "فولادوند",
+  "فهمیده",
+  "قاضی",
+  "قانعی",
+  "قانونی",
+  "قمیشی",
+  "قنبری",
+  "قهرمان",
+  "قهرمانی",
+  "قهرمانیان",
+  "قهستانی",
+  "کاشی",
+  "کاکاوند",
+  "کامکار",
+  "کاملی",
+  "کاویانی",
+  "کدیور",
+  "کردبچه",
+  "کرمانی",
+  "کریمی",
+  "کلباسی",
+  "کمالی",
+  "کوشکی",
+  "کهنمویی",
+  "کیان",
+  "کیانی (نام خانوادگی)",
+  "کیمیایی",
+  "گل محمدی",
+  "گلپایگانی",
+  "گنجی",
+  "لاجوردی",
+  "لاچینی",
+  "لاهوتی",
+  "لنکرانی",
+  "لوکس",
+  "مجاهد",
+  "مجتبایی",
+  "مجتبوی",
+  "مجتهد شبستری",
+  "مجتهدی",
+  "مجرد",
+  "محجوب",
+  "محجوبی",
+  "محدثی",
+  "محمدرضایی",
+  "محمدی",
+  "مددی",
+  "مرادخانی",
+  "مرتضوی",
+  "مستوفی",
+  "مشا",
+  "مصاحب",
+  "مصباح",
+  "مصباح‌زاده",
+  "مطهری",
+  "مظفر",
+  "معارف",
+  "معروف",
+  "معین",
+  "مفتاح",
+  "مفتح",
+  "مقدم",
+  "ملایری",
+  "ملک",
+  "ملکیان",
+  "منوچهری",
+  "موحد",
+  "موسوی",
+  "موسویان",
+  "مهاجرانی",
+  "مهدی‌پور",
+  "میرباقری",
+  "میردامادی",
+  "میرزاده",
+  "میرسپاسی",
+  "میزبانی",
+  "ناظری",
+  "نامور",
+  "نجفی",
+  "ندوشن",
+  "نراقی",
+  "نعمت‌زاده",
+  "نقدی",
+  "نقیب‌زاده",
+  "نواب",
+  "نوبخت",
+  "نوبختی",
+  "نهاوندی",
+  "نیشابوری",
+  "نیلوفری",
+  "واثقی",
+  "واعظ",
+  "واعظ‌زاده",
+  "واعظی",
+  "وکیلی",
+  "هاشمی",
+  "هاشمی رفسنجانی",
+  "هاشمیان",
+  "هامون",
+  "هدایت",
+  "هراتی",
+  "هروی",
+  "همایون",
+  "همت",
+  "همدانی",
+  "هوشیار",
+  "هومن",
+  "یاحقی",
+  "یادگار",
+  "یثربی",
+  "یلدا"
+];
+
+},{}],463:[function(require,module,exports){
+module["exports"] = [
+  "آقای",
+  "خانم",
+  "دکتر"
+];
+
+},{}],464:[function(require,module,exports){
+module["exports"] = [
+  "####",
+  "###",
+  "##",
+  "#"
+];
+
+},{}],465:[function(require,module,exports){
+module.exports=require(55)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/city.js":55}],466:[function(require,module,exports){
+module["exports"] = [
+  "Paris",
+  "Marseille",
+  "Lyon",
+  "Toulouse",
+  "Nice",
+  "Nantes",
+  "Strasbourg",
+  "Montpellier",
+  "Bordeaux",
+  "Lille13",
+  "Rennes",
+  "Reims",
+  "Le Havre",
+  "Saint-Étienne",
+  "Toulon",
+  "Grenoble",
+  "Dijon",
+  "Angers",
+  "Saint-Denis",
+  "Villeurbanne",
+  "Le Mans",
+  "Aix-en-Provence",
+  "Brest",
+  "Nîmes",
+  "Limoges",
+  "Clermont-Ferrand",
+  "Tours",
+  "Amiens",
+  "Metz",
+  "Perpignan",
+  "Besançon",
+  "Orléans",
+  "Boulogne-Billancourt",
+  "Mulhouse",
+  "Rouen",
+  "Caen",
+  "Nancy",
+  "Saint-Denis",
+  "Saint-Paul",
+  "Montreuil",
+  "Argenteuil",
+  "Roubaix",
+  "Dunkerque14",
+  "Tourcoing",
+  "Nanterre",
+  "Avignon",
+  "Créteil",
+  "Poitiers",
+  "Fort-de-France",
+  "Courbevoie",
+  "Versailles",
+  "Vitry-sur-Seine",
+  "Colombes",
+  "Pau",
+  "Aulnay-sous-Bois",
+  "Asnières-sur-Seine",
+  "Rueil-Malmaison",
+  "Saint-Pierre",
+  "Antibes",
+  "Saint-Maur-des-Fossés",
+  "Champigny-sur-Marne",
+  "La Rochelle",
+  "Aubervilliers",
+  "Calais",
+  "Cannes",
+  "Le Tampon",
+  "Béziers",
+  "Colmar",
+  "Bourges",
+  "Drancy",
+  "Mérignac",
+  "Saint-Nazaire",
+  "Valence",
+  "Ajaccio",
+  "Issy-les-Moulineaux",
+  "Villeneuve-d'Ascq",
+  "Levallois-Perret",
+  "Noisy-le-Grand",
+  "Quimper",
+  "La Seyne-sur-Mer",
+  "Antony",
+  "Troyes",
+  "Neuilly-sur-Seine",
+  "Sarcelles",
+  "Les Abymes",
+  "Vénissieux",
+  "Clichy",
+  "Lorient",
+  "Pessac",
+  "Ivry-sur-Seine",
+  "Cergy",
+  "Cayenne",
+  "Niort",
+  "Chambéry",
+  "Montauban",
+  "Saint-Quentin",
+  "Villejuif",
+  "Hyères",
+  "Beauvais",
+  "Cholet"
+];
+
+},{}],467:[function(require,module,exports){
+module["exports"] = [
+  "France"
+];
+
+},{}],468:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.building_number = require("./building_number");
+address.street_prefix = require("./street_prefix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street_suffix = require("./street_suffix");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":464,"./city":465,"./city_name":466,"./default_country":467,"./postcode":469,"./secondary_address":470,"./state":471,"./street_address":472,"./street_name":473,"./street_prefix":474,"./street_suffix":475}],469:[function(require,module,exports){
+module.exports=require(379)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/postcode.js":379}],470:[function(require,module,exports){
+module["exports"] = [
+  "Apt. ###",
+  "# étage"
+];
+
+},{}],471:[function(require,module,exports){
+module["exports"] = [
+  "Alsace",
+  "Aquitaine",
+  "Auvergne",
+  "Basse-Normandie",
+  "Bourgogne",
+  "Bretagne",
+  "Centre",
+  "Champagne-Ardenne",
+  "Corse",
+  "Franche-Comté",
+  "Haute-Normandie",
+  "Île-de-France",
+  "Languedoc-Roussillon",
+  "Limousin",
+  "Lorraine",
+  "Midi-Pyrénées",
+  "Nord-Pas-de-Calais",
+  "Pays de la Loire",
+  "Picardie",
+  "Poitou-Charentes",
+  "Provence-Alpes-Côte d'Azur",
+  "Rhône-Alpes"
+];
+
+},{}],472:[function(require,module,exports){
+module.exports=require(193)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/street_address.js":193}],473:[function(require,module,exports){
+module["exports"] = [
+  "#{street_prefix} #{street_suffix}"
+];
+
+},{}],474:[function(require,module,exports){
+module["exports"] = [
+  "Allée, Voie",
+  "Rue",
+  "Avenue",
+  "Boulevard",
+  "Quai",
+  "Passage",
+  "Impasse",
+  "Place"
+];
+
+},{}],475:[function(require,module,exports){
+module["exports"] = [
+  "de l'Abbaye",
+  "Adolphe Mille",
+  "d'Alésia",
+  "d'Argenteuil",
+  "d'Assas",
+  "du Bac",
+  "de Paris",
+  "La Boétie",
+  "Bonaparte",
+  "de la Bûcherie",
+  "de Caumartin",
+  "Charlemagne",
+  "du Chat-qui-Pêche",
+  "de la Chaussée-d'Antin",
+  "du Dahomey",
+  "Dauphine",
+  "Delesseux",
+  "du Faubourg Saint-Honoré",
+  "du Faubourg-Saint-Denis",
+  "de la Ferronnerie",
+  "des Francs-Bourgeois",
+  "des Grands Augustins",
+  "de la Harpe",
+  "du Havre",
+  "de la Huchette",
+  "Joubert",
+  "Laffitte",
+  "Lepic",
+  "des Lombards",
+  "Marcadet",
+  "Molière",
+  "Monsieur-le-Prince",
+  "de Montmorency",
+  "Montorgueil",
+  "Mouffetard",
+  "de Nesle",
+  "Oberkampf",
+  "de l'Odéon",
+  "d'Orsel",
+  "de la Paix",
+  "des Panoramas",
+  "Pastourelle",
+  "Pierre Charron",
+  "de la Pompe",
+  "de Presbourg",
+  "de Provence",
+  "de Richelieu",
+  "de Rivoli",
+  "des Rosiers",
+  "Royale",
+  "d'Abbeville",
+  "Saint-Honoré",
+  "Saint-Bernard",
+  "Saint-Denis",
+  "Saint-Dominique",
+  "Saint-Jacques",
+  "Saint-Séverin",
+  "des Saussaies",
+  "de Seine",
+  "de Solférino",
+  "Du Sommerard",
+  "de Tilsitt",
+  "Vaneau",
+  "de Vaugirard",
+  "de la Victoire",
+  "Zadkine"
+];
+
+},{}],476:[function(require,module,exports){
+module.exports=require(68)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/adjective.js":68}],477:[function(require,module,exports){
+module.exports=require(212)
+},{"/Users/a/dev/faker.js/lib/locales/en/company/bs_adjective.js":212}],478:[function(require,module,exports){
+module.exports=require(213)
+},{"/Users/a/dev/faker.js/lib/locales/en/company/bs_noun.js":213}],479:[function(require,module,exports){
+module.exports=require(70)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/bs_verb.js":70}],480:[function(require,module,exports){
+module.exports=require(71)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/descriptor.js":71}],481:[function(require,module,exports){
+arguments[4][216][0].apply(exports,arguments)
+},{"./adjective":476,"./bs_adjective":477,"./bs_noun":478,"./bs_verb":479,"./descriptor":480,"./name":482,"./noun":483,"./suffix":484,"/Users/a/dev/faker.js/lib/locales/en/company/index.js":216}],482:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name} et #{Name.last_name}"
+];
+
+},{}],483:[function(require,module,exports){
+module.exports=require(74)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/noun.js":74}],484:[function(require,module,exports){
+module["exports"] = [
+  "SARL",
+  "SA",
+  "EURL",
+  "SAS",
+  "SEM",
+  "SCOP",
+  "GIE",
+  "EI"
+];
+
+},{}],485:[function(require,module,exports){
+var fr = {};
+module['exports'] = fr;
+fr.title = "French";
+fr.address = require("./address");
+fr.company = require("./company");
+fr.internet = require("./internet");
+fr.lorem = require("./lorem");
+fr.name = require("./name");
+fr.phone_number = require("./phone_number");
+
+},{"./address":468,"./company":481,"./internet":488,"./lorem":489,"./name":493,"./phone_number":499}],486:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "fr",
+  "eu",
+  "info",
+  "name",
+  "net",
+  "org"
+];
+
+},{}],487:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.fr",
+  "hotmail.fr"
+];
+
+},{}],488:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":486,"./free_email":487,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],489:[function(require,module,exports){
+module.exports=require(83)
+},{"./supplemental":490,"./words":491,"/Users/a/dev/faker.js/lib/locales/cz/lorem/index.js":83}],490:[function(require,module,exports){
+module.exports=require(84)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/supplemental.js":84}],491:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],492:[function(require,module,exports){
+module["exports"] = [
+  "Enzo",
+  "Lucas",
+  "Mathis",
+  "Nathan",
+  "Thomas",
+  "Hugo",
+  "Théo",
+  "Tom",
+  "Louis",
+  "Raphaël",
+  "Clément",
+  "Léo",
+  "Mathéo",
+  "Maxime",
+  "Alexandre",
+  "Antoine",
+  "Yanis",
+  "Paul",
+  "Baptiste",
+  "Alexis",
+  "Gabriel",
+  "Arthur",
+  "Jules",
+  "Ethan",
+  "Noah",
+  "Quentin",
+  "Axel",
+  "Evan",
+  "Mattéo",
+  "Romain",
+  "Valentin",
+  "Maxence",
+  "Noa",
+  "Adam",
+  "Nicolas",
+  "Julien",
+  "Mael",
+  "Pierre",
+  "Rayan",
+  "Victor",
+  "Mohamed",
+  "Adrien",
+  "Kylian",
+  "Sacha",
+  "Benjamin",
+  "Léa",
+  "Clara",
+  "Manon",
+  "Chloé",
+  "Camille",
+  "Ines",
+  "Sarah",
+  "Jade",
+  "Lola",
+  "Anaïs",
+  "Lucie",
+  "Océane",
+  "Lilou",
+  "Marie",
+  "Eva",
+  "Romane",
+  "Lisa",
+  "Zoe",
+  "Julie",
+  "Mathilde",
+  "Louise",
+  "Juliette",
+  "Clémence",
+  "Célia",
+  "Laura",
+  "Lena",
+  "Maëlys",
+  "Charlotte",
+  "Ambre",
+  "Maeva",
+  "Pauline",
+  "Lina",
+  "Jeanne",
+  "Lou",
+  "Noémie",
+  "Justine",
+  "Louna",
+  "Elisa",
+  "Alice",
+  "Emilie",
+  "Carla",
+  "Maëlle",
+  "Alicia",
+  "Mélissa"
+];
+
+},{}],493:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.title = require("./title");
+name.name = require("./name");
+
+},{"./first_name":492,"./last_name":494,"./name":495,"./prefix":496,"./title":497}],494:[function(require,module,exports){
+module["exports"] = [
+  "Martin",
+  "Bernard",
+  "Dubois",
+  "Thomas",
+  "Robert",
+  "Richard",
+  "Petit",
+  "Durand",
+  "Leroy",
+  "Moreau",
+  "Simon",
+  "Laurent",
+  "Lefebvre",
+  "Michel",
+  "Garcia",
+  "David",
+  "Bertrand",
+  "Roux",
+  "Vincent",
+  "Fournier",
+  "Morel",
+  "Girard",
+  "Andre",
+  "Lefevre",
+  "Mercier",
+  "Dupont",
+  "Lambert",
+  "Bonnet",
+  "Francois",
+  "Martinez",
+  "Legrand",
+  "Garnier",
+  "Faure",
+  "Rousseau",
+  "Blanc",
+  "Guerin",
+  "Muller",
+  "Henry",
+  "Roussel",
+  "Nicolas",
+  "Perrin",
+  "Morin",
+  "Mathieu",
+  "Clement",
+  "Gauthier",
+  "Dumont",
+  "Lopez",
+  "Fontaine",
+  "Chevalier",
+  "Robin",
+  "Masson",
+  "Sanchez",
+  "Gerard",
+  "Nguyen",
+  "Boyer",
+  "Denis",
+  "Lemaire",
+  "Duval",
+  "Joly",
+  "Gautier",
+  "Roger",
+  "Roche",
+  "Roy",
+  "Noel",
+  "Meyer",
+  "Lucas",
+  "Meunier",
+  "Jean",
+  "Perez",
+  "Marchand",
+  "Dufour",
+  "Blanchard",
+  "Marie",
+  "Barbier",
+  "Brun",
+  "Dumas",
+  "Brunet",
+  "Schmitt",
+  "Leroux",
+  "Colin",
+  "Fernandez",
+  "Pierre",
+  "Renard",
+  "Arnaud",
+  "Rolland",
+  "Caron",
+  "Aubert",
+  "Giraud",
+  "Leclerc",
+  "Vidal",
+  "Bourgeois",
+  "Renaud",
+  "Lemoine",
+  "Picard",
+  "Gaillard",
+  "Philippe",
+  "Leclercq",
+  "Lacroix",
+  "Fabre",
+  "Dupuis",
+  "Olivier",
+  "Rodriguez",
+  "Da silva",
+  "Hubert",
+  "Louis",
+  "Charles",
+  "Guillot",
+  "Riviere",
+  "Le gall",
+  "Guillaume",
+  "Adam",
+  "Rey",
+  "Moulin",
+  "Gonzalez",
+  "Berger",
+  "Lecomte",
+  "Menard",
+  "Fleury",
+  "Deschamps",
+  "Carpentier",
+  "Julien",
+  "Benoit",
+  "Paris",
+  "Maillard",
+  "Marchal",
+  "Aubry",
+  "Vasseur",
+  "Le roux",
+  "Renault",
+  "Jacquet",
+  "Collet",
+  "Prevost",
+  "Poirier",
+  "Charpentier",
+  "Royer",
+  "Huet",
+  "Baron",
+  "Dupuy",
+  "Pons",
+  "Paul",
+  "Laine",
+  "Carre",
+  "Breton",
+  "Remy",
+  "Schneider",
+  "Perrot",
+  "Guyot",
+  "Barre",
+  "Marty",
+  "Cousin"
+];
+
+},{}],495:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{last_name} #{first_name}"
+];
+
+},{}],496:[function(require,module,exports){
+module["exports"] = [
+  "M",
+  "Mme",
+  "Mlle",
+  "Dr",
+  "Prof"
+];
+
+},{}],497:[function(require,module,exports){
+module["exports"] = {
+  "job": [
+    "Superviseur",
+    "Executif",
+    "Manager",
+    "Ingenieur",
+    "Specialiste",
+    "Directeur",
+    "Coordinateur",
+    "Administrateur",
+    "Architecte",
+    "Analyste",
+    "Designer",
+    "Technicien",
+    "Developpeur",
+    "Producteur",
+    "Consultant",
+    "Assistant",
+    "Agent",
+    "Stagiaire"
+  ]
+};
+
+},{}],498:[function(require,module,exports){
+module["exports"] = [
+  "01########",
+  "02########",
+  "03########",
+  "04########",
+  "05########",
+  "06########",
+  "07########",
+  "+33 1########",
+  "+33 2########",
+  "+33 3########",
+  "+33 4########",
+  "+33 5########",
+  "+33 6########",
+  "+33 7########"
+];
+
+},{}],499:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":498,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],500:[function(require,module,exports){
+module.exports=require(292)
+},{"/Users/a/dev/faker.js/lib/locales/en_CA/address/default_country.js":292}],501:[function(require,module,exports){
+arguments[4][326][0].apply(exports,arguments)
+},{"./default_country":500,"./postcode":502,"./state":503,"./state_abbr":504,"/Users/a/dev/faker.js/lib/locales/en_IND/address/index.js":326}],502:[function(require,module,exports){
+module.exports=require(294)
+},{"/Users/a/dev/faker.js/lib/locales/en_CA/address/postcode.js":294}],503:[function(require,module,exports){
+module["exports"] = [
+  "Alberta",
+  "Colombie-Britannique",
+  "Manitoba",
+  "Nouveau-Brunswick",
+  "Terre-Neuve-et-Labrador",
+  "Nouvelle-Écosse",
+  "Territoires du Nord-Ouest",
+  "Nunavut",
+  "Ontario",
+  "Île-du-Prince-Édouard",
+  "Québec",
+  "Saskatchewan",
+  "Yukon"
+];
+
+},{}],504:[function(require,module,exports){
+module["exports"] = [
+  "AB",
+  "BC",
+  "MB",
+  "NB",
+  "NL",
+  "NS",
+  "NU",
+  "NT",
+  "ON",
+  "PE",
+  "QC",
+  "SK",
+  "YK"
+];
+
+},{}],505:[function(require,module,exports){
+var fr_CA = {};
+module['exports'] = fr_CA;
+fr_CA.title = "Canada (French)";
+fr_CA.address = require("./address");
+fr_CA.internet = require("./internet");
+fr_CA.phone_number = require("./phone_number");
+
+},{"./address":501,"./internet":508,"./phone_number":510}],506:[function(require,module,exports){
+module["exports"] = [
+  "qc.ca",
+  "ca",
+  "com",
+  "biz",
+  "info",
+  "name",
+  "net",
+  "org"
+];
+
+},{}],507:[function(require,module,exports){
+module.exports=require(299)
+},{"/Users/a/dev/faker.js/lib/locales/en_CA/internet/free_email.js":299}],508:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":506,"./free_email":507,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],509:[function(require,module,exports){
+module["exports"] = [
+  "### ###-####",
+  "1 ### ###-####",
+  "### ###-####, poste ###"
+];
+
+},{}],510:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":509,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],511:[function(require,module,exports){
+module["exports"] = [
+  "###",
+  "##",
+  "#"
+];
+
+},{}],512:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix} #{Name.first_name}#{city_suffix}",
+  "#{city_prefix} #{Name.first_name}",
+  "#{Name.first_name}#{city_suffix}",
+  "#{Name.first_name}#{city_suffix}",
+  "#{Name.last_name}#{city_suffix}",
+  "#{Name.last_name}#{city_suffix}"
+];
+
+},{}],513:[function(require,module,exports){
+module["exports"] = [
+  "აბასთუმანი",
+  "აბაშა",
+  "ადიგენი",
+  "ამბროლაური",
+  "ანაკლია",
+  "ასპინძა",
+  "ახალგორი",
+  "ახალქალაქი",
+  "ახალციხე",
+  "ახმეტა",
+  "ბათუმი",
+  "ბაკურიანი",
+  "ბაღდათი",
+  "ბახმარო",
+  "ბოლნისი",
+  "ბორჯომი",
+  "გარდაბანი",
+  "გონიო",
+  "გორი",
+  "გრიგოლეთი",
+  "გუდაური",
+  "გურჯაანი",
+  "დედოფლისწყარო",
+  "დმანისი",
+  "დუშეთი",
+  "ვანი",
+  "ზესტაფონი",
+  "ზუგდიდი",
+  "თბილისი",
+  "თეთრიწყარო",
+  "თელავი",
+  "თერჯოლა",
+  "თიანეთი",
+  "კასპი",
+  "კვარიათი",
+  "კიკეთი",
+  "კოჯორი",
+  "ლაგოდეხი",
+  "ლანჩხუთი",
+  "ლენტეხი",
+  "მარნეული",
+  "მარტვილი",
+  "მესტია",
+  "მცხეთა",
+  "მწვანე კონცხი",
+  "ნინოწმინდა",
+  "ოზურგეთი",
+  "ონი",
+  "რუსთავი",
+  "საგარეჯო",
+  "საგურამო",
+  "საირმე",
+  "სამტრედია",
+  "სარფი",
+  "საჩხერე",
+  "სენაკი",
+  "სიღნაღი",
+  "სტეფანწმინდა",
+  "სურამი",
+  "ტაბახმელა",
+  "ტყიბული",
+  "ურეკი",
+  "ფოთი",
+  "ქარელი",
+  "ქედა",
+  "ქობულეთი",
+  "ქუთაისი",
+  "ყვარელი",
+  "შუახევი",
+  "ჩაქვი",
+  "ჩოხატაური",
+  "ცაგერი",
+  "ცხოროჭყუ",
+  "წავკისი",
+  "წალენჯიხა",
+  "წალკა",
+  "წაღვერი",
+  "წეროვანი",
+  "წნორი",
+  "წყალტუბო",
+  "წყნეთი",
+  "ჭიათურა",
+  "ხარაგაული",
+  "ხაშური",
+  "ხელვაჩაური",
+  "ხობი",
+  "ხონი",
+  "ხულო"
+];
+
+},{}],514:[function(require,module,exports){
+module["exports"] = [
+  "ახალი",
+  "ძველი",
+  "ზემო",
+  "ქვემო"
+];
+
+},{}],515:[function(require,module,exports){
+module["exports"] = [
+  "სოფელი",
+  "ძირი",
+  "სკარი",
+  "დაბა"
+];
+
+},{}],516:[function(require,module,exports){
+module["exports"] = [
+  "ავსტრალია",
+  "ავსტრია",
+  "ავღანეთი",
+  "აზავადი",
+  "აზერბაიჯანი",
+  "აზიაში",
+  "აზიის",
+  "ალბანეთი",
+  "ალჟირი",
+  "ამაღლება და ტრისტანი-და-კუნია",
+  "ამერიკის ვირჯინიის კუნძულები",
+  "ამერიკის სამოა",
+  "ამერიკის შეერთებული შტატები",
+  "ამერიკის",
+  "ანგილია",
+  "ანგოლა",
+  "ანდორა",
+  "ანტიგუა და ბარბუდა",
+  "არაბეთის საემიროები",
+  "არაბთა გაერთიანებული საამიროები",
+  "არაბული ქვეყნების ლიგის",
+  "არგენტინა",
+  "არუბა",
+  "არცნობილი ქვეყნების სია",
+  "აფრიკაში",
+  "აფრიკაშია",
+  "აღდგომის კუნძული",
+  "აღმ. ტიმორი",
+  "აღმოსავლეთი აფრიკა",
+  "აღმოსავლეთი ტიმორი",
+  "აშშ",
+  "აშშ-ის ვირჯინის კუნძულები",
+  "ახალი ზელანდია",
+  "ახალი კალედონია",
+  "ბანგლადეში",
+  "ბარბადოსი",
+  "ბაჰამის კუნძულები",
+  "ბაჰრეინი",
+  "ბელარუსი",
+  "ბელგია",
+  "ბელიზი",
+  "ბენინი",
+  "ბერმუდა",
+  "ბერმუდის კუნძულები",
+  "ბოლივია",
+  "ბოსნია და ჰერცეგოვინა",
+  "ბოტსვანა",
+  "ბრაზილია",
+  "ბრიტანეთის ვირჯინიის კუნძულები",
+  "ბრიტანეთის ვირჯინის კუნძულები",
+  "ბრიტანეთის ინდოეთის ოკეანის ტერიტორია",
+  "ბრუნეი",
+  "ბულგარეთი",
+  "ბურკინა ფასო",
+  "ბურკინა-ფასო",
+  "ბურუნდი",
+  "ბჰუტანი",
+  "გაბონი",
+  "გაერთიანებული სამეფო",
+  "გაეროს",
+  "გაიანა",
+  "გამბია",
+  "განა",
+  "გერმანია",
+  "გვადელუპა",
+  "გვატემალა",
+  "გვინეა",
+  "გვინეა-ბისაუ",
+  "გიბრალტარი",
+  "გრენადა",
+  "გრენლანდია",
+  "გუამი",
+  "დამოკიდებული ტერ.",
+  "დამოკიდებული ტერიტორია",
+  "დამოკიდებული",
+  "დანია",
+  "დასავლეთი აფრიკა",
+  "დასავლეთი საჰარა",
+  "დიდი ბრიტანეთი",
+  "დომინიკა",
+  "დომინიკელთა რესპუბლიკა",
+  "ეგვიპტე",
+  "ევროკავშირის",
+  "ევროპასთან",
+  "ევროპაშია",
+  "ევროპის ქვეყნები",
+  "ეთიოპია",
+  "ეკვადორი",
+  "ეკვატორული გვინეა",
+  "ეპარსეს კუნძული",
+  "ერაყი",
+  "ერიტრეა",
+  "ესპანეთი",
+  "ესპანეთის სუვერენული ტერიტორიები",
+  "ესტონეთი",
+  "ეშმორის და კარტიეს კუნძულები",
+  "ვანუატუ",
+  "ვატიკანი",
+  "ვენესუელა",
+  "ვიეტნამი",
+  "ზამბია",
+  "ზიმბაბვე",
+  "თურქეთი",
+  "თურქმენეთი",
+  "იამაიკა",
+  "იან მაიენი",
+  "იაპონია",
+  "იემენი",
+  "ინდოეთი",
+  "ინდონეზია",
+  "იორდანია",
+  "ირანი",
+  "ირლანდია",
+  "ისლანდია",
+  "ისრაელი",
+  "იტალია",
+  "კაბო-ვერდე",
+  "კაიმანის კუნძულები",
+  "კამბოჯა",
+  "კამერუნი",
+  "კანადა",
+  "კანარის კუნძულები",
+  "კარიბის ზღვის",
+  "კატარი",
+  "კენია",
+  "კვიპროსი",
+  "კინგმენის რიფი",
+  "კირიბატი",
+  "კლიპერტონი",
+  "კოლუმბია",
+  "კომორი",
+  "კომორის კუნძულები",
+  "კონგოს დემოკრატიული რესპუბლიკა",
+  "კონგოს რესპუბლიკა",
+  "კორეის რესპუბლიკა",
+  "კოსტა-რიკა",
+  "კოტ-დ’ივუარი",
+  "კუბა",
+  "კუკის კუნძულები",
+  "ლაოსი",
+  "ლატვია",
+  "ლესოთო",
+  "ლიბანი",
+  "ლიბერია",
+  "ლიბია",
+  "ლიტვა",
+  "ლიხტენშტაინი",
+  "ლუქსემბურგი",
+  "მადაგასკარი",
+  "მადეირა",
+  "მავრიკი",
+  "მავრიტანია",
+  "მაიოტა",
+  "მაკაო",
+  "მაკედონია",
+  "მალავი",
+  "მალაიზია",
+  "მალდივი",
+  "მალდივის კუნძულები",
+  "მალი",
+  "მალტა",
+  "მაროკო",
+  "მარტინიკა",
+  "მარშალის კუნძულები",
+  "მარჯნის ზღვის კუნძულები",
+  "მელილია",
+  "მექსიკა",
+  "მიანმარი",
+  "მიკრონეზია",
+  "მიკრონეზიის ფედერაციული შტატები",
+  "მიმდებარე კუნძულები",
+  "მოზამბიკი",
+  "მოლდოვა",
+  "მონაკო",
+  "მონსერატი",
+  "მონღოლეთი",
+  "ნამიბია",
+  "ნაურუ",
+  "ნაწილობრივ აფრიკაში",
+  "ნეპალი",
+  "ნიგერი",
+  "ნიგერია",
+  "ნიდერლანდი",
+  "ნიდერლანდის ანტილები",
+  "ნიკარაგუა",
+  "ნიუე",
+  "ნორვეგია",
+  "ნორფოლკის კუნძული",
+  "ოკეანეთის",
+  "ოკეანიას",
+  "ომანი",
+  "პაკისტანი",
+  "პალაუ",
+  "პალესტინა",
+  "პალმირა (ატოლი)",
+  "პანამა",
+  "პანტელერია",
+  "პაპუა-ახალი გვინეა",
+  "პარაგვაი",
+  "პერუ",
+  "პიტკერნის კუნძულები",
+  "პოლონეთი",
+  "პორტუგალია",
+  "პრინც-ედუარდის კუნძული",
+  "პუერტო-რიკო",
+  "რეუნიონი",
+  "როტუმა",
+  "რუანდა",
+  "რუმინეთი",
+  "რუსეთი",
+  "საბერძნეთი",
+  "სადავო ტერიტორიები",
+  "სალვადორი",
+  "სამოა",
+  "სამხ. კორეა",
+  "სამხრეთ ამერიკაშია",
+  "სამხრეთ ამერიკის",
+  "სამხრეთ აფრიკის რესპუბლიკა",
+  "სამხრეთი აფრიკა",
+  "სამხრეთი გეორგია და სამხრეთ სენდვიჩის კუნძულები",
+  "სამხრეთი სუდანი",
+  "სან-მარინო",
+  "სან-ტომე და პრინსიპი",
+  "საუდის არაბეთი",
+  "საფრანგეთი",
+  "საფრანგეთის გვიანა",
+  "საფრანგეთის პოლინეზია",
+  "საქართველო",
+  "საჰარის არაბთა დემოკრატიული რესპუბლიკა",
+  "სეიშელის კუნძულები",
+  "სენ-ბართელმი",
+  "სენ-მარტენი",
+  "სენ-პიერი და მიკელონი",
+  "სენეგალი",
+  "სენტ-ვინსენტი და გრენადინები",
+  "სენტ-კიტსი და ნევისი",
+  "სენტ-ლუსია",
+  "სერბეთი",
+  "სეუტა",
+  "სვაზილენდი",
+  "სვალბარდი",
+  "სიერა-ლეონე",
+  "სინგაპური",
+  "სირია",
+  "სლოვაკეთი",
+  "სლოვენია",
+  "სოკოტრა",
+  "სოლომონის კუნძულები",
+  "სომალი",
+  "სომალილენდი",
+  "სომხეთი",
+  "სუდანი",
+  "სუვერენული სახელმწიფოები",
+  "სურინამი",
+  "ტაივანი",
+  "ტაილანდი",
+  "ტანზანია",
+  "ტაჯიკეთი",
+  "ტერიტორიები",
+  "ტერქსისა და კაიკოსის კუნძულები",
+  "ტოგო",
+  "ტოკელაუ",
+  "ტონგა",
+  "ტრანსკონტინენტური ქვეყანა",
+  "ტრინიდადი და ტობაგო",
+  "ტუვალუ",
+  "ტუნისი",
+  "უგანდა",
+  "უზბეკეთი",
+  "უკრაინა",
+  "უნგრეთი",
+  "უოლისი და ფუტუნა",
+  "ურუგვაი",
+  "ფარერის კუნძულები",
+  "ფილიპინები",
+  "ფინეთი",
+  "ფიჯი",
+  "ფოლკლენდის კუნძულები",
+  "ქვეყნები",
+  "ქოქოსის კუნძულები",
+  "ქუვეითი",
+  "ღაზის სექტორი",
+  "ყაზახეთი",
+  "ყირგიზეთი",
+  "შვედეთი",
+  "შვეიცარია",
+  "შობის კუნძული",
+  "შრი-ლანკა",
+  "ჩადი",
+  "ჩერნოგორია",
+  "ჩეჩნეთის რესპუბლიკა იჩქერია",
+  "ჩეხეთი",
+  "ჩილე",
+  "ჩინეთი",
+  "ჩრდ. კორეა",
+  "ჩრდილოეთ ამერიკის",
+  "ჩრდილოეთ მარიანას კუნძულები",
+  "ჩრდილოეთი აფრიკა",
+  "ჩრდილოეთი კორეა",
+  "ჩრდილოეთი მარიანას კუნძულები",
+  "ცენტრალური აფრიკა",
+  "ცენტრალური აფრიკის რესპუბლიკა",
+  "წევრები",
+  "წმინდა ელენე",
+  "წმინდა ელენეს კუნძული",
+  "ხორვატია",
+  "ჯერსი",
+  "ჯიბუტი",
+  "ჰავაი",
+  "ჰაიტი",
+  "ჰერდი და მაკდონალდის კუნძულები",
+  "ჰონდურასი",
+  "ჰონკონგი"
+];
+
+},{}],517:[function(require,module,exports){
+module["exports"] = [
+  "საქართველო"
+];
+
+},{}],518:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.city = require("./city");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.city_name = require("./city_name");
+address.street_title = require("./street_title");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":511,"./city":512,"./city_name":513,"./city_prefix":514,"./city_suffix":515,"./country":516,"./default_country":517,"./postcode":519,"./secondary_address":520,"./street_address":521,"./street_name":522,"./street_suffix":523,"./street_title":524}],519:[function(require,module,exports){
+module["exports"] = [
+  "01##"
+];
+
+},{}],520:[function(require,module,exports){
+module["exports"] = [
+  "კორპ. ##",
+  "შენობა ###"
+];
+
+},{}],521:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],522:[function(require,module,exports){
+module["exports"] = [
+  "#{street_title} #{street_suffix}"
+];
+
+},{}],523:[function(require,module,exports){
+module["exports"] = [
+  "გამზ.",
+  "გამზირი",
+  "ქ.",
+  "ქუჩა",
+  "ჩიხი",
+  "ხეივანი"
+];
+
+},{}],524:[function(require,module,exports){
+module["exports"] = [
+  "აბაშიძის",
+  "აბესაძის",
+  "აბულაძის",
+  "აგლაძის",
+  "ადლერის",
+  "ავიაქიმიის",
+  "ავლაბრის",
+  "ათარბეგოვის",
+  "ათონელის",
+  "ალავერდოვის",
+  "ალექსიძის",
+  "ალილუევის",
+  "ალმასიანის",
+  "ამაღლების",
+  "ამირეჯიბის",
+  "ანაგის",
+  "ანდრონიკაშვილის",
+  "ანთელავას",
+  "ანჯაფარიძის",
+  "არაგვის",
+  "არდონის",
+  "არეშიძის",
+  "ასათიანის",
+  "ასკურავას",
+  "ასლანიდის",
+  "ატენის",
+  "აფხაზი",
+  "აღმაშენებლის",
+  "ახალშენის",
+  "ახვლედიანის",
+  "ბააზოვის",
+  "ბაბისხევის",
+  "ბაბუშკინის",
+  "ბაგრატიონის",
+  "ბალანჩივაძეების",
+  "ბალანჩივაძის",
+  "ბალანჩინის",
+  "ბალმაშევის",
+  "ბარამიძის",
+  "ბარნოვის",
+  "ბაშალეიშვილის",
+  "ბევრეთის",
+  "ბელინსკის",
+  "ბელოსტოკის",
+  "ბენაშვილის",
+  "ბეჟანიშვილის",
+  "ბერიძის",
+  "ბოლქვაძის",
+  "ბოცვაძის",
+  "ბოჭორიშვილის",
+  "ბოჭორიძის",
+  "ბუაჩიძის",
+  "ბუდაპეშტის",
+  "ბურკიაშვილის",
+  "ბურძგლას",
+  "გაბესკირიას",
+  "გაგარინის",
+  "გაზაფხულის",
+  "გამრეკელის",
+  "გამსახურდიას",
+  "გარეჯელის",
+  "გეგეჭკორის",
+  "გედაურის",
+  "გელოვანი",
+  "გელოვანის",
+  "გერცენის",
+  "გლდანის",
+  "გოგებაშვილის",
+  "გოგიბერიძის",
+  "გოგოლის",
+  "გონაშვილის",
+  "გორგასლის",
+  "გრანელის",
+  "გრიზოდუბოვას",
+  "გრინევიცკის",
+  "გრომოვას",
+  "გრუზინსკის",
+  "გუდიაშვილის",
+  "გულრიფშის",
+  "გულუას",
+  "გურამიშვილის",
+  "გურგენიძის",
+  "დადიანის",
+  "დავითაშვილის",
+  "დამაკავშირებელი",
+  "დარიალის",
+  "დედოფლისწყაროს",
+  "დეპუტატის",
+  "დიდგორის",
+  "დიდი",
+  "დიდუბის",
+  "დიუმას",
+  "დიღმის",
+  "დიღომში",
+  "დოლიძის",
+  "დუნდუას",
+  "დურმიშიძის",
+  "ელიავას",
+  "ენგელსის",
+  "ენგურის",
+  "ეპისკოპოსის",
+  "ერისთავი",
+  "ერისთავის",
+  "ვაზისუბნის",
+  "ვაკელის",
+  "ვართაგავას",
+  "ვატუტინის",
+  "ვაჩნაძის",
+  "ვაცეკის",
+  "ვეკუას",
+  "ვეშაპურის",
+  "ვირსალაძის",
+  "ვოლოდარსკის",
+  "ვორონინის",
+  "ზაარბრიუკენის",
+  "ზაზიაშვილის",
+  "ზაზიშვილის",
+  "ზაკომოლდინის",
+  "ზანდუკელის",
+  "ზაქარაიას",
+  "ზაქარიაძის",
+  "ზახაროვის",
+  "ზაჰესის",
+  "ზნაურის",
+  "ზურაბაშვილის",
+  "ზღვის",
+  "თაბუკაშვილის",
+  "თავაძის",
+  "თავისუფლების",
+  "თამარაშვილის",
+  "თაქთაქიშვილის",
+  "თბილელის",
+  "თელიას",
+  "თორაძის",
+  "თოფურიძის",
+  "იალბუზის",
+  "იამანიძის",
+  "იაშვილის",
+  "იბერიის",
+  "იერუსალიმის",
+  "ივანიძის",
+  "ივერიელის",
+  "იზაშვილის",
+  "ილურიძის",
+  "იმედაშვილის",
+  "იმედაძის",
+  "იმედის",
+  "ინანიშვილის",
+  "ინგოროყვას",
+  "ინდუსტრიალიზაციის",
+  "ინჟინრის",
+  "ინწკირველის",
+  "ირბახის",
+  "ირემაშვილის",
+  "ისაკაძის",
+  "ისპასჰანლის",
+  "იტალიის",
+  "იუნკერთა",
+  "კათალიკოსის",
+  "კაიროს",
+  "კაკაბაძის",
+  "კაკაბეთის",
+  "კაკლიანის",
+  "კალანდაძის",
+  "კალიაევის",
+  "კალინინის",
+  "კამალოვის",
+  "კამოს",
+  "კაშენის",
+  "კახოვკის",
+  "კედიას",
+  "კელაპტრიშვილის",
+  "კერესელიძის",
+  "კეცხოველის",
+  "კიბალჩიჩის",
+  "კიკნაძის",
+  "კიროვის",
+  "კობარეთის",
+  "კოლექტივიზაციის",
+  "კოლმეურნეობის",
+  "კოლხეთის",
+  "კომკავშირის",
+  "კომუნისტური",
+  "კონსტიტუციის",
+  "კოოპერაციის",
+  "კოსტავას",
+  "კოტეტიშვილის",
+  "კოჩეტკოვის",
+  "კოჯრის",
+  "კრონშტადტის",
+  "კროპოტკინის",
+  "კრუპსკაიას",
+  "კუიბიშევის",
+  "კურნატოვსკის",
+  "კურტანოვსკის",
+  "კუტუზოვის",
+  "ლაღიძის",
+  "ლელაშვილის",
+  "ლენინაშენის",
+  "ლენინგრადის",
+  "ლენინის",
+  "ლენის",
+  "ლეონიძის",
+  "ლვოვის",
+  "ლორთქიფანიძის",
+  "ლოტკინის",
+  "ლუბლიანის",
+  "ლუბოვსკის",
+  "ლუნაჩარსკის",
+  "ლუქსემბურგის",
+  "მაგნიტოგორსკის",
+  "მაზნიაშვილის",
+  "მაისურაძის",
+  "მამარდაშვილის",
+  "მამაცაშვილის",
+  "მანაგაძის",
+  "მანჯგალაძის",
+  "მარის",
+  "მარუაშვილის",
+  "მარქსის",
+  "მარჯანის",
+  "მატროსოვის",
+  "მაჭავარიანი",
+  "მახალდიანის",
+  "მახარაძის",
+  "მებაღიშვილის",
+  "მეგობრობის",
+  "მელაანის",
+  "მერკვილაძის",
+  "მესხიას",
+  "მესხის",
+  "მეტეხის",
+  "მეტრეველი",
+  "მეჩნიკოვის",
+  "მთავარანგელოზის",
+  "მიასნიკოვის",
+  "მილორავას",
+  "მიმინოშვილის",
+  "მიროტაძის",
+  "მიქატაძის",
+  "მიქელაძის",
+  "მონტინის",
+  "მორეტის",
+  "მოსკოვის",
+  "მრევლიშვილის",
+  "მუშკორის",
+  "მუჯირიშვილის",
+  "მშვიდობის",
+  "მცხეთის",
+  "ნადირაძის",
+  "ნაკაშიძის",
+  "ნარიმანოვის",
+  "ნასიძის",
+  "ნაფარეულის",
+  "ნეკრასოვის",
+  "ნიაღვრის",
+  "ნინიძის",
+  "ნიშნიანიძის",
+  "ობოლაძის",
+  "ონიანის",
+  "ოჟიოს",
+  "ორახელაშვილის",
+  "ორბელიანის",
+  "ორჯონიკიძის",
+  "ოქტომბრის",
+  "ოცდაექვსი",
+  "პავლოვის",
+  "პარალელურის",
+  "პარიზის",
+  "პეკინის",
+  "პეროვსკაიას",
+  "პეტეფის",
+  "პიონერის",
+  "პირველი",
+  "პისარევის",
+  "პლეხანოვის",
+  "პრავდის",
+  "პროლეტარიატის",
+  "ჟელიაბოვის",
+  "ჟვანიას",
+  "ჟორდანიას",
+  "ჟღენტი",
+  "ჟღენტის",
+  "რადიანის",
+  "რამიშვილი",
+  "რასკოვას",
+  "რენინგერის",
+  "რინგის",
+  "რიჟინაშვილის",
+  "რობაქიძის",
+  "რობესპიერის",
+  "რუსის",
+  "რუხაძის",
+  "რჩეულიშვილის",
+  "სააკაძის",
+  "საბადურის",
+  "საბაშვილის",
+  "საბურთალოს",
+  "საბჭოს",
+  "საგურამოს",
+  "სამრეკლოს",
+  "სამღერეთის",
+  "სანაკოევის",
+  "სარაჯიშვილის",
+  "საჯაიას",
+  "სევასტოპოლის",
+  "სერგი",
+  "სვანიძის",
+  "სვერდლოვის",
+  "სტახანოვის",
+  "სულთნიშნის",
+  "სურგულაძის",
+  "სხირტლაძის",
+  "ტაბიძის",
+  "ტატიშვილის",
+  "ტელმანის",
+  "ტერევერკოს",
+  "ტეტელაშვილის",
+  "ტოვსტონოგოვის",
+  "ტოროშელიძის",
+  "ტრაქტორის",
+  "ტრიკოტაჟის",
+  "ტურბინის",
+  "უბილავას",
+  "უბინაშვილის",
+  "უზნაძის",
+  "უკლებას",
+  "ულიანოვის",
+  "ურიდიას",
+  "ფაბრიციუსის",
+  "ფაღავას",
+  "ფერისცვალების",
+  "ფიგნერის",
+  "ფიზკულტურის",
+  "ფიოლეტოვის",
+  "ფიფიების",
+  "ფოცხიშვილის",
+  "ქართველიშვილის",
+  "ქართლელიშვილის",
+  "ქინქლაძის",
+  "ქიქოძის",
+  "ქსოვრელის",
+  "ქუთათელაძის",
+  "ქუთათელის",
+  "ქურდიანის",
+  "ღოღობერიძის",
+  "ღუდუშაურის",
+  "ყავლაშვილის",
+  "ყაზბეგის",
+  "ყარყარაშვილის",
+  "ყიფიანის",
+  "ყუშიტაშვილის",
+  "შანიძის",
+  "შარტავას",
+  "შატილოვის",
+  "შაუმიანის",
+  "შენგელაიას",
+  "შერვაშიძის",
+  "შეროზიას",
+  "შირშოვის",
+  "შმიდტის",
+  "შრომის",
+  "შუშინის",
+  "შჩორსის",
+  "ჩალაუბნის",
+  "ჩანტლაძის",
+  "ჩაპაევის",
+  "ჩაჩავას",
+  "ჩელუსკინელების",
+  "ჩერნიახოვსკის",
+  "ჩერქეზიშვილი",
+  "ჩერქეზიშვილის",
+  "ჩვიდმეტი",
+  "ჩიტაიას",
+  "ჩიტაძის",
+  "ჩიქვანაიას",
+  "ჩიქობავას",
+  "ჩიხლაძის",
+  "ჩოდრიშვილის",
+  "ჩოლოყაშვილის",
+  "ჩუღურეთის",
+  "ცაბაძის",
+  "ცაგარელის",
+  "ცეტკინის",
+  "ცინცაძის",
+  "ცისკარიშვილის",
+  "ცურტაველის",
+  "ცქიტიშვილის",
+  "ცხაკაიას",
+  "ძმობის",
+  "ძნელაძის",
+  "წერეთლის",
+  "წითელი",
+  "წითელწყაროს",
+  "წინამძღვრიშვილის",
+  "წულაძის",
+  "წულუკიძის",
+  "ჭაბუკიანის",
+  "ჭავჭავაძის",
+  "ჭანტურიას",
+  "ჭოველიძის",
+  "ჭონქაძის",
+  "ჭყონდიდელის",
+  "ხანძთელის",
+  "ხვამლის",
+  "ხვინგიას",
+  "ხვიჩიას",
+  "ხიმშიაშვილის",
+  "ხმელნიცკის",
+  "ხორნაბუჯის",
+  "ხრამჰესის",
+  "ხუციშვილის",
+  "ჯავახიშვილის",
+  "ჯაფარიძის",
+  "ჯიბლაძის",
+  "ჯორჯიაშვილის"
+];
+
+},{}],525:[function(require,module,exports){
+module["exports"] = [
+  "(+995 32) 2-##-##-##",
+  "032-2-##-##-##",
+  "032-2-######",
+  "032-2-###-###",
+  "032 2 ## ## ##",
+  "032 2 ######",
+  "2 ## ## ##",
+  "2######",
+  "2 ### ###"
+];
+
+},{}],526:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":525,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],527:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./name":528,"./prefix":529,"./suffix":530,"/Users/a/dev/faker.js/lib/locales/az/company/index.js":33}],528:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{Name.first_name}",
+  "#{prefix} #{Name.last_name}",
+  "#{prefix} #{Name.last_name} #{suffix}",
+  "#{prefix} #{Name.first_name} #{suffix}",
+  "#{prefix} #{Name.last_name}-#{Name.last_name}"
+];
+
+},{}],529:[function(require,module,exports){
+module["exports"] = [
+  "შპს",
+  "სს",
+  "ააიპ",
+  "სსიპ"
+];
+
+},{}],530:[function(require,module,exports){
+module["exports"] = [
+  "ჯგუფი",
+  "და კომპანია",
+  "სტუდია",
+  "გრუპი"
+];
+
+},{}],531:[function(require,module,exports){
+var ge = {};
+module['exports'] = ge;
+ge.title = "Georgian";
+ge.separator = " და ";
+ge.name = require("./name");
+ge.address = require("./address");
+ge.internet = require("./internet");
+ge.company = require("./company");
+ge.phone_number = require("./phone_number");
+ge.cell_phone = require("./cell_phone");
+
+},{"./address":518,"./cell_phone":526,"./company":527,"./internet":534,"./name":536,"./phone_number":542}],532:[function(require,module,exports){
+module["exports"] = [
+  "ge",
+  "com",
+  "net",
+  "org",
+  "com.ge",
+  "org.ge"
+];
+
+},{}],533:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.com",
+  "posta.ge"
+];
+
+},{}],534:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":532,"./free_email":533,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],535:[function(require,module,exports){
+module["exports"] = [
+  "აგული",
+  "აგუნა",
+  "ადოლა",
+  "ავთანდილ",
+  "ავთო",
+  "აკაკი",
+  "აკო",
+  "ალეკო",
+  "ალექსანდრე",
+  "ალექსი",
+  "ალიო",
+  "ამირან",
+  "ანა",
+  "ანანო",
+  "ანზორ",
+  "ანნა",
+  "ანუკა",
+  "ანუკი",
+  "არჩილ",
+  "ასკილა",
+  "ასლანაზ",
+  "აჩიკო",
+  "ბადრი",
+  "ბაია",
+  "ბარბარე",
+  "ბაქარ",
+  "ბაჩა",
+  "ბაჩანა",
+  "ბაჭუა",
+  "ბაჭუკი",
+  "ბახვა",
+  "ბელა",
+  "ბერა",
+  "ბერდია",
+  "ბესიკ",
+  "ბესიკ",
+  "ბესო",
+  "ბექა",
+  "ბიძინა",
+  "ბიჭიკო",
+  "ბოჩია",
+  "ბოცო",
+  "ბროლა",
+  "ბუბუ",
+  "ბუდუ",
+  "ბუხუტი",
+  "გაგა",
+  "გაგი",
+  "გახა",
+  "გეგა",
+  "გეგი",
+  "გედია",
+  "გელა",
+  "გენადი",
+  "გვადი",
+  "გვანცა",
+  "გვანჯი",
+  "გვიტია",
+  "გვრიტა",
+  "გია",
+  "გიგა",
+  "გიგი",
+  "გიგილო",
+  "გიგლა",
+  "გიგოლი",
+  "გივი",
+  "გივიკო",
+  "გიორგი",
+  "გოგი",
+  "გოგიტა",
+  "გოგიჩა",
+  "გოგოთურ",
+  "გოგოლა",
+  "გოდერძი",
+  "გოლა",
+  "გოჩა",
+  "გრიგოლ",
+  "გუგა",
+  "გუგუ",
+  "გუგულა",
+  "გუგული",
+  "გუგუნა",
+  "გუკა",
+  "გულარისა",
+  "გულვარდი",
+  "გულვარდისა",
+  "გულთამზე",
+  "გულია",
+  "გულიკო",
+  "გულისა",
+  "გულნარა",
+  "გურამ",
+  "დავით",
+  "დალი",
+  "დარეჯან",
+  "დიანა",
+  "დიმიტრი",
+  "დოდო",
+  "დუტუ",
+  "ეთერ",
+  "ეთო",
+  "ეკა",
+  "ეკატერინე",
+  "ელგუჯა",
+  "ელენა",
+  "ელენე",
+  "ელზა",
+  "ელიკო",
+  "ელისო",
+  "ემზარ",
+  "ეშხა",
+  "ვალენტინა",
+  "ვალერი",
+  "ვანო",
+  "ვაჟა",
+  "ვაჟა",
+  "ვარდო",
+  "ვარსკვლავისა",
+  "ვასიკო",
+  "ვასილ",
+  "ვატო",
+  "ვახო",
+  "ვახტანგ",
+  "ვენერა",
+  "ვერა",
+  "ვერიკო",
+  "ზაზა",
+  "ზაირა",
+  "ზაურ",
+  "ზეზვა",
+  "ზვიად",
+  "ზინა",
+  "ზოია",
+  "ზუკა",
+  "ზურა",
+  "ზურაბ",
+  "ზურია",
+  "ზურიკო",
+  "თაზო",
+  "თათა",
+  "თათია",
+  "თათული",
+  "თაია",
+  "თაკო",
+  "თალიკო",
+  "თამაზ",
+  "თამარ",
+  "თამარა",
+  "თამთა",
+  "თამთიკე",
+  "თამი",
+  "თამილა",
+  "თამრიკო",
+  "თამრო",
+  "თამუნა",
+  "თამჩო",
+  "თანანა",
+  "თანდილა",
+  "თაყა",
+  "თეა",
+  "თებრონე",
+  "თეიმურაზ",
+  "თემურ",
+  "თენგიზ",
+  "თენგო",
+  "თეონა",
+  "თიკა",
+  "თიკო",
+  "თიკუნა",
+  "თინა",
+  "თინათინ",
+  "თინიკო",
+  "თმაგიშერა",
+  "თორნიკე",
+  "თუთა",
+  "თუთია",
+  "ია",
+  "იათამზე",
+  "იამზე",
+  "ივანე",
+  "ივერი",
+  "ივქირიონ",
+  "იზოლდა",
+  "ილია",
+  "ილიკო",
+  "იმედა",
+  "ინგა",
+  "იოსებ",
+  "ირაკლი",
+  "ირინა",
+  "ირინე",
+  "ირინკა",
+  "ირმა",
+  "იური",
+  "კაკო",
+  "კალე",
+  "კატო",
+  "კახა",
+  "კახაბერ",
+  "კეკელა",
+  "კესანე",
+  "კესო",
+  "კვირია",
+  "კიტა",
+  "კობა",
+  "კოკა",
+  "კონსტანტინე",
+  "კოსტა",
+  "კოტე",
+  "კუკური",
+  "ლადო",
+  "ლალი",
+  "ლამაზა",
+  "ლამარა",
+  "ლამზირა",
+  "ლაშა",
+  "ლევან",
+  "ლეილა",
+  "ლელა",
+  "ლენა",
+  "ლერწამისა",
+  "ლექსო",
+  "ლია",
+  "ლიანა",
+  "ლიზა",
+  "ლიზიკო",
+  "ლილე",
+  "ლილი",
+  "ლილიკო",
+  "ლომია",
+  "ლუიზა",
+  "მაგული",
+  "მადონა",
+  "მათიკო",
+  "მაია",
+  "მაიკო",
+  "მაისა",
+  "მაკა",
+  "მაკო",
+  "მაკუნა",
+  "მალხაზ",
+  "მამამზე",
+  "მამია",
+  "მამისა",
+  "მამისთვალი",
+  "მამისიმედი",
+  "მამუკა",
+  "მამულა",
+  "მანანა",
+  "მანჩო",
+  "მარადი",
+  "მარი",
+  "მარია",
+  "მარიამი",
+  "მარიკა",
+  "მარინა",
+  "მარინე",
+  "მარიტა",
+  "მაყვალა",
+  "მაყვალა",
+  "მაშიკო",
+  "მაშო",
+  "მაცაცო",
+  "მგელია",
+  "მგელიკა",
+  "მედეა",
+  "მეკაშო",
+  "მელანო",
+  "მერაბ",
+  "მერი",
+  "მეტია",
+  "მზაღო",
+  "მზევინარ",
+  "მზეთამზე",
+  "მზეთვალა",
+  "მზეონა",
+  "მზექალა",
+  "მზეხა",
+  "მზეხათუნი",
+  "მზია",
+  "მზირა",
+  "მზისადარ",
+  "მზისთანადარი",
+  "მზიულა",
+  "მთვარისა",
+  "მინდია",
+  "მიშა",
+  "მიშიკო",
+  "მიხეილ",
+  "მნათობი",
+  "მნათობისა",
+  "მოგელი",
+  "მონავარდისა",
+  "მურმან",
+  "მუხრან",
+  "ნაზი",
+  "ნაზიკო",
+  "ნათელა",
+  "ნათია",
+  "ნაირა",
+  "ნანა",
+  "ნანი",
+  "ნანიკო",
+  "ნანუკა",
+  "ნანული",
+  "ნარგიზი",
+  "ნასყიდა",
+  "ნატალია",
+  "ნატო",
+  "ნელი",
+  "ნენე",
+  "ნესტან",
+  "ნია",
+  "ნიაკო",
+  "ნიკა",
+  "ნიკოლოზ",
+  "ნინა",
+  "ნინაკა",
+  "ნინი",
+  "ნინიკო",
+  "ნინო",
+  "ნინუკა",
+  "ნინუცა",
+  "ნოდარ",
+  "ნოდო",
+  "ნონა",
+  "ნორა",
+  "ნუგზარ",
+  "ნუგო",
+  "ნუკა",
+  "ნუკი",
+  "ნუკრი",
+  "ნუნუ",
+  "ნუნუ",
+  "ნუნუკა",
+  "ნუცა",
+  "ნუცი",
+  "ოთარ",
+  "ოთია",
+  "ოთო",
+  "ომარ",
+  "ორბელ",
+  "ოტია",
+  "ოქროპირ",
+  "პაატა",
+  "პაპუნა",
+  "პატარკაცი",
+  "პატარქალი",
+  "პეპელა",
+  "პირვარდისა",
+  "პირიმზე",
+  "ჟამიერა",
+  "ჟამიტა",
+  "ჟამუტა",
+  "ჟუჟუნა",
+  "რამაზ",
+  "რევაზ",
+  "რეზი",
+  "რეზო",
+  "როზა",
+  "რომან",
+  "რუსკა",
+  "რუსუდან",
+  "საბა",
+  "სალი",
+  "სალომე",
+  "სანათა",
+  "სანდრო",
+  "სერგო",
+  "სესია",
+  "სეხნია",
+  "სვეტლანა",
+  "სიხარულა",
+  "სოსო",
+  "სოფიკო",
+  "სოფიო",
+  "სოფო",
+  "სულა",
+  "სულიკო",
+  "ტარიელ",
+  "ტასიკო",
+  "ტასო",
+  "ტატიანა",
+  "ტატო",
+  "ტეტია",
+  "ტურია",
+  "უმანკო",
+  "უტა",
+  "უჩა",
+  "ფაქიზო",
+  "ფაცია",
+  "ფეფელა",
+  "ფეფენა",
+  "ფეფიკო",
+  "ფეფო",
+  "ფოსო",
+  "ფოფო",
+  "ქაბატო",
+  "ქავთარი",
+  "ქალია",
+  "ქართლოს",
+  "ქეთათო",
+  "ქეთევან",
+  "ქეთი",
+  "ქეთინო",
+  "ქეთო",
+  "ქველი",
+  "ქიტესა",
+  "ქიშვარდი",
+  "ქობული",
+  "ქრისტესია",
+  "ქტისტეფორე",
+  "ქურციკა",
+  "ღარიბა",
+  "ღვთისავარი",
+  "ღვთისია",
+  "ღვთისო",
+  "ღვინია",
+  "ღუღუნა",
+  "ყაითამზა",
+  "ყაყიტა",
+  "ყვარყვარე",
+  "ყიასა",
+  "შაბური",
+  "შაკო",
+  "შალვა",
+  "შალიკო",
+  "შანშე",
+  "შარია",
+  "შაქარა",
+  "შაქრო",
+  "შოთა",
+  "შორენა",
+  "შოშია",
+  "შუქია",
+  "ჩიორა",
+  "ჩიტო",
+  "ჩიტო",
+  "ჩოყოლა",
+  "ცაგო",
+  "ცაგული",
+  "ცანგალა",
+  "ცარო",
+  "ცაცა",
+  "ცაცო",
+  "ციალა",
+  "ციკო",
+  "ცინარა",
+  "ცირა",
+  "ცისანა",
+  "ცისია",
+  "ცისკარა",
+  "ცისკარი",
+  "ცისმარა",
+  "ცისმარი",
+  "ციური",
+  "ციცი",
+  "ციცია",
+  "ციცინო",
+  "ცოტნე",
+  "ცოქალა",
+  "ცუცა",
+  "ცხვარი",
+  "ძაბული",
+  "ძამისა",
+  "ძაღინა",
+  "ძიძია",
+  "წათე",
+  "წყალობა",
+  "ჭაბუკა",
+  "ჭიაბერ",
+  "ჭიკჭიკა",
+  "ჭიჭია",
+  "ჭიჭიკო",
+  "ჭოლა",
+  "ხათუნა",
+  "ხარება",
+  "ხატია",
+  "ხახულა",
+  "ხახუტა",
+  "ხეჩუა",
+  "ხვიჩა",
+  "ხიზანა",
+  "ხირხელა",
+  "ხობელასი",
+  "ხოხია",
+  "ხოხიტა",
+  "ხუტა",
+  "ხუცია",
+  "ჯაბა",
+  "ჯავახი",
+  "ჯარჯი",
+  "ჯემალ",
+  "ჯონდო",
+  "ჯოტო",
+  "ჯუბი",
+  "ჯულიეტა",
+  "ჯუმბერ",
+  "ჰამლეტ"
+];
+
+},{}],536:[function(require,module,exports){
+arguments[4][493][0].apply(exports,arguments)
+},{"./first_name":535,"./last_name":537,"./name":538,"./prefix":539,"./title":540,"/Users/a/dev/faker.js/lib/locales/fr/name/index.js":493}],537:[function(require,module,exports){
+module["exports"] = [
+  "აბაზაძე",
+  "აბაშიძე",
+  "აბრამაშვილი",
+  "აბუსერიძე",
+  "აბშილავა",
+  "ავაზნელი",
+  "ავალიშვილი",
+  "ამილახვარი",
+  "ანთაძე",
+  "ასლამაზიშვილი",
+  "ასპანიძე",
+  "აშკარელი",
+  "ახალბედაშვილი",
+  "ახალკაცი",
+  "ახვლედიანი",
+  "ბარათაშვილი",
+  "ბარდაველიძე",
+  "ბახტაძე",
+  "ბედიანიძე",
+  "ბერიძე",
+  "ბერუაშვილი",
+  "ბეჟანიშვილი",
+  "ბოგველიშვილი",
+  "ბოტკოველი",
+  "გაბრიჩიძე",
+  "გაგნიძე",
+  "გამრეკელი",
+  "გელაშვილი",
+  "გზირიშვილი",
+  "გიგაური",
+  "გურამიშვილი",
+  "გურგენიძე",
+  "დადიანი",
+  "დავითიშვილი",
+  "დათუაშვილი",
+  "დარბაისელი",
+  "დეკანოიძე",
+  "დვალი",
+  "დოლაბერიძე",
+  "ედიშერაშვილი",
+  "ელიზბარაშვილი",
+  "ელიოზაშვილი",
+  "ერისთავი",
+  "ვარამაშვილი",
+  "ვარდიაშვილი",
+  "ვაჩნაძე",
+  "ვარდანიძე",
+  "ველიაშვილი",
+  "ველიჯანაშვილი",
+  "ზარანდია",
+  "ზარიძე",
+  "ზედგინიძე",
+  "ზუბიაშვილი",
+  "თაბაგარი",
+  "თავდგირიძე",
+  "თათარაშვილი",
+  "თამაზაშვილი",
+  "თამარაშვილი",
+  "თაქთაქიშვილი",
+  "თაყაიშვილი",
+  "თბილელი",
+  "თუხარელი",
+  "იაშვილი",
+  "იგითხანიშვილი",
+  "ინასარიძე",
+  "იშხნელი",
+  "კანდელაკი",
+  "კაცია",
+  "კერესელიძე",
+  "კვირიკაშვილი",
+  "კიკნაძე",
+  "კლდიაშვილი",
+  "კოვზაძე",
+  "კოპაძე",
+  "კოპტონაშვილი",
+  "კოშკელაშვილი",
+  "ლაბაძე",
+  "ლეკიშვილი",
+  "ლიქოკელი",
+  "ლოლაძე",
+  "ლურსმანაშვილი",
+  "მაისურაძე",
+  "მარტოლეკი",
+  "მაღალაძე",
+  "მახარაშვილი",
+  "მგალობლიშვილი",
+  "მეგრელიშვილი",
+  "მელაშვილი",
+  "მელიქიძე",
+  "მერაბიშვილი",
+  "მეფარიშვილი",
+  "მუჯირი",
+  "მჭედლიძე",
+  "მხეიძე",
+  "ნათაძე",
+  "ნაჭყებია",
+  "ნოზაძე",
+  "ოდიშვილი",
+  "ონოფრიშვილი",
+  "პარეხელაშვილი",
+  "პეტრიაშვილი",
+  "სააკაძე",
+  "სააკაშვილი",
+  "საგინაშვილი",
+  "სადუნიშვილი",
+  "საძაგლიშვილი",
+  "სებისკვერიძე",
+  "სეთური",
+  "სუთიაშვილი",
+  "სულაშვილი",
+  "ტაბაღუა",
+  "ტყეშელაშვილი",
+  "ულუმბელაშვილი",
+  "უნდილაძე",
+  "ქავთარაძე",
+  "ქართველიშვილი",
+  "ყაზბეგი",
+  "ყაუხჩიშვილი",
+  "შავლაშვილი",
+  "შალიკაშვილი",
+  "შონია",
+  "ჩიბუხაშვილი",
+  "ჩიხრაძე",
+  "ჩიქოვანი",
+  "ჩუბინიძე",
+  "ჩოლოყაშვილი",
+  "ჩოხელი",
+  "ჩხვიმიანი",
+  "ცალუღელაშვილი",
+  "ცაძიკიძე",
+  "ციციშვილი",
+  "ციხელაშვილი",
+  "ციხისთავი",
+  "ცხოვრებაძე",
+  "ცხომარია",
+  "წამალაიძე",
+  "წერეთელი",
+  "წიკლაური",
+  "წიფურია",
+  "ჭაბუკაშვილი",
+  "ჭავჭავაძე",
+  "ჭანტურია",
+  "ჭარელიძე",
+  "ჭიორელი",
+  "ჭუმბურიძე",
+  "ხაბაზი",
+  "ხარაძე",
+  "ხარატიშვილი",
+  "ხარატასშვილი",
+  "ხარისჭირაშვილი",
+  "ხარხელაური",
+  "ხაშმელაშვილი",
+  "ხეთაგური",
+  "ხიზამბარელი",
+  "ხიზანიშვილი",
+  "ხიმშიაშვილი",
+  "ხოსრუაშვილი",
+  "ხოჯივანიშვილი",
+  "ხუციშვილი",
+  "ჯაბადარი",
+  "ჯავახი",
+  "ჯავახიშვილი",
+  "ჯანელიძე",
+  "ჯაფარიძე",
+  "ჯაყელი",
+  "ჯაჯანიძე",
+  "ჯვარელია",
+  "ჯინიუზაშვილი",
+  "ჯუღაშვილი"
+];
+
+},{}],538:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}"
+];
+
+},{}],539:[function(require,module,exports){
+module["exports"] = [
+  "ბ-ნი",
+  "ბატონი",
+  "ქ-ნი",
+  "ქალბატონი"
+];
+
+},{}],540:[function(require,module,exports){
+module["exports"] = {
+  "descriptor": [
+    "გენერალური",
+    "მთავარი",
+    "სტაჟიორ",
+    "უმცროსი",
+    "ყოფილი",
+    "წამყვანი"
+  ],
+  "level": [
+    "აღრიცხვების",
+    "ბრენდინგის",
+    "ბრენიდს",
+    "ბუღალტერიის",
+    "განყოფილების",
+    "გაყიდვების",
+    "გუნდის",
+    "დახმარების",
+    "დიზაინის",
+    "თავდაცვის",
+    "ინფორმაციის",
+    "კვლევების",
+    "კომუნიკაციების",
+    "მარკეტინგის",
+    "ოპერაციათა",
+    "ოპტიმიზაციების",
+    "პიარ",
+    "პროგრამის",
+    "საქმეთა",
+    "ტაქტიკური",
+    "უსაფრთხოების",
+    "ფინანსთა",
+    "ქსელის",
+    "ხარისხის",
+    "ჯგუფის"
+  ],
+  "job": [
+    "აგენტი",
+    "ადვოკატი",
+    "ადმინისტრატორი",
+    "არქიტექტორი",
+    "ასისტენტი",
+    "აღმასრულებელი დირექტორი",
+    "დეველოპერი",
+    "დეკანი",
+    "დიზაინერი",
+    "დირექტორი",
+    "ელექტრიკოსი",
+    "ექსპერტი",
+    "ინჟინერი",
+    "იურისტი",
+    "კონსტრუქტორი",
+    "კონსულტანტი",
+    "კოორდინატორი",
+    "ლექტორი",
+    "მასაჟისტი",
+    "მემანქანე",
+    "მენეჯერი",
+    "მძღოლი",
+    "მწვრთნელი",
+    "ოპერატორი",
+    "ოფიცერი",
+    "პედაგოგი",
+    "პოლიციელი",
+    "პროგრამისტი",
+    "პროდიუსერი",
+    "პრორექტორი",
+    "ჟურნალისტი",
+    "რექტორი",
+    "სპეციალისტი",
+    "სტრატეგისტი",
+    "ტექნიკოსი",
+    "ფოტოგრაფი",
+    "წარმომადგენელი"
+  ]
+};
+
+},{}],541:[function(require,module,exports){
+module["exports"] = [
+  "5##-###-###",
+  "5########",
+  "5## ## ## ##",
+  "5## ######",
+  "5## ### ###",
+  "995 5##-###-###",
+  "995 5########",
+  "995 5## ## ## ##",
+  "995 5## ######",
+  "995 5## ### ###",
+  "+995 5##-###-###",
+  "+995 5########",
+  "+995 5## ## ## ##",
+  "+995 5## ######",
+  "+995 5## ### ###",
+  "(+995) 5##-###-###",
+  "(+995) 5########",
+  "(+995) 5## ## ## ##",
+  "(+995) 5## ######",
+  "(+995) 5## ### ###"
+];
+
+},{}],542:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":541,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],543:[function(require,module,exports){
+module["exports"] = [  
+  "##",
+  "#"
+];
+
+},{}],544:[function(require,module,exports){
+module.exports=require(55)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/city.js":55}],545:[function(require,module,exports){
+module["exports"] = [
+  "Airmadidi",
+  "Ampana",
+  "Amurang",
+  "Andolo",
+  "Banggai",
+  "Bantaeng",
+  "Barru",
+  "Bau-Bau",
+  "Benteng",
+  "Bitung",
+  "Bolaang Uki",
+  "Boroko",
+  "Bulukumba",
+  "Bungku",
+  "Buol",
+  "Buranga",
+  "Donggala",
+  "Enrekang",
+  "Gorontalo",
+  "Jeneponto",
+  "Kawangkoan",
+  "Kendari",
+  "Kolaka",
+  "Kotamobagu",
+  "Kota Raha",
+  "Kwandang",
+  "Lasusua",
+  "Luwuk",
+  "Majene",
+  "Makale",
+  "Makassar",
+  "Malili",
+  "Mamasa",
+  "Mamuju",
+  "Manado",
+  "Marisa",
+  "Maros",
+  "Masamba",
+  "Melonguane",
+  "Ondong Siau",
+  "Palopo",
+  "Palu",
+  "Pangkajene",
+  "Pare-Pare",
+  "Parigi",
+  "Pasangkayu",
+  "Pinrang",
+  "Polewali",
+  "Poso",
+  "Rantepao",
+  "Ratahan",
+  "Rumbia",
+  "Sengkang",
+  "Sidenreng",
+  "Sigi Biromaru",
+  "Sinjai",
+  "Sunggu Minasa",
+  "Suwawa",
+  "Tahuna",
+  "Takalar",
+  "Tilamuta",
+  "Toli Toli",
+  "Tomohon",
+  "Tondano",
+  "Tutuyan",
+  "Unaaha",
+  "Wangi Wangi",
+  "Wanggudu",
+  "Watampone",
+  "Watan Soppeng",
+  "Ambarawa",
+  "Anyer",
+  "Bandung",
+  "Bangil",
+  "Banjar (Jawa Barat)",
+  "Banjarnegara",
+  "Bangkalan",
+  "Bantul",
+  "Banyumas",
+  "Banyuwangi",
+  "Batang",
+  "Batu",
+  "Bekasi",
+  "Blitar",
+  "Blora",
+  "Bogor",
+  "Bojonegoro",
+  "Bondowoso",
+  "Boyolali",
+  "Bumiayu",
+  "Brebes",
+  "Caruban",
+  "Cianjur",
+  "Ciamis",
+  "Cibinong",
+  "Cikampek",
+  "Cikarang",
+  "Cilacap",
+  "Cilegon",
+  "Cirebon",
+  "Demak",
+  "Depok",
+  "Garut",
+  "Gresik",
+  "Indramayu",
+  "Jakarta",
+  "Jember",
+  "Jepara",
+  "Jombang",
+  "Kajen",
+  "Karanganyar",
+  "Kebumen",
+  "Kediri",
+  "Kendal",
+  "Kepanjen",
+  "Klaten",
+  "Pelabuhan Ratu",
+  "Kraksaan",
+  "Kudus",
+  "Kuningan",
+  "Lamongan",
+  "Lumajang",
+  "Madiun",
+  "Magelang",
+  "Magetan",
+  "Majalengka",
+  "Malang",
+  "Mojokerto",
+  "Mojosari",
+  "Mungkid",
+  "Ngamprah",
+  "Nganjuk",
+  "Ngawi",
+  "Pacitan",
+  "Pamekasan",
+  "Pandeglang",
+  "Pare",
+  "Pati",
+  "Pasuruan",
+  "Pekalongan",
+  "Pemalang",
+  "Ponorogo",
+  "Probolinggo",
+  "Purbalingga",
+  "Purwakarta",
+  "Purwodadi",
+  "Purwokerto",
+  "Purworejo",
+  "Rangkasbitung",
+  "Rembang",
+  "Salatiga",
+  "Sampang",
+  "Semarang",
+  "Serang",
+  "Sidayu",
+  "Sidoarjo",
+  "Singaparna",
+  "Situbondo",
+  "Slawi",
+  "Sleman",
+  "Soreang",
+  "Sragen",
+  "Subang",
+  "Sukabumi",
+  "Sukoharjo",
+  "Sumber",
+  "Sumedang",
+  "Sumenep",
+  "Surabaya",
+  "Surakarta",
+  "Tasikmalaya",
+  "Tangerang",
+  "Tangerang Selatan",
+  "Tegal",
+  "Temanggung",
+  "Tigaraksa",
+  "Trenggalek",
+  "Tuban",
+  "Tulungagung",
+  "Ungaran",
+  "Wates",
+  "Wlingi",
+  "Wonogiri",
+  "Wonosari",
+  "Wonosobo",
+  "Yogyakarta",
+  "Atambua",
+  "Baa",
+  "Badung",
+  "Bajawa",
+  "Bangli",
+  "Bima",
+  "Denpasar",
+  "Dompu",
+  "Ende",
+  "Gianyar",
+  "Kalabahi",
+  "Karangasem",
+  "Kefamenanu",
+  "Klungkung",
+  "Kupang",
+  "Labuhan Bajo",
+  "Larantuka",
+  "Lewoleba",
+  "Maumere",
+  "Mataram",
+  "Mbay",
+  "Negara",
+  "Praya",
+  "Raba",
+  "Ruteng",
+  "Selong",
+  "Singaraja",
+  "Soe",
+  "Sumbawa Besar",
+  "Tabanan",
+  "Taliwang",
+  "Tambolaka",
+  "Tanjung",
+  "Waibakul",
+  "Waikabubak",
+  "Waingapu",
+  "Denpasar",
+  "Negara,Bali",
+  "Singaraja",
+  "Tabanan",
+  "Bangli"
+];
+},{}],546:[function(require,module,exports){
+module["exports"] = [
+  "Indonesia"
+];
+
+},{}],547:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.building_number = require("./building_number");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street_prefix = require("./street_prefix");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":543,"./city":544,"./city_name":545,"./default_country":546,"./postcode":548,"./state":549,"./street_address":550,"./street_name":551,"./street_prefix":552}],548:[function(require,module,exports){
+module["exports"] = [
+  "#####"
+];
+},{}],549:[function(require,module,exports){
+module["exports"] = [
+  "Aceh",
+  "Sumatera Utara",
+  "Sumatera Barat",
+  "Jambi",
+  "Bangka Belitung",
+  "Riau",
+  "Kepulauan Riau",
+  "Bengkulu",
+  "Sumatera Selatan",
+  "Lampung",
+  "Banten",
+  "DKI Jakarta",
+  "Jawa Barat",
+  "Jawa Tengah",
+  "Jawa Timur",
+  "Nusa Tenggara Timur",
+  "DI Yogyakarta",
+  "Bali",
+  "Nusa Tenggara Barat",
+  "Kalimantan Barat",
+  "Kalimantan Tengah",
+  "Kalimantan Selatan",
+  "Kalimantan Timur",
+  "Kalimantan Utara",
+  "Sulawesi Selatan",
+  "Sulawesi Utara",
+  "Gorontalo",
+  "Sulawesi Tengah",
+  "Sulawesi Barat",
+  "Sulawesi Tenggara",
+  "Maluku",
+  "Maluku Utara",
+  "Papua Barat",
+  "Papua"
+];
+},{}],550:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name} no #{building_number}"
+];
+},{}],551:[function(require,module,exports){
+module["exports"] = [
+  "#{street_prefix} #{Name.first_name}",
+  "#{street_prefix} #{Name.last_name}"
+];
+},{}],552:[function(require,module,exports){
+module["exports"] = [
+  "Ds.",
+  "Dk.",
+  "Gg.",
+  "Jln.",
+  "Jr.",
+  "Kpg.",
+  "Ki.",
+  "Psr."
+];
+},{}],553:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./name":554,"./prefix":555,"./suffix":556,"/Users/a/dev/faker.js/lib/locales/az/company/index.js":33}],554:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{Name.last_name}",
+  "#{Name.last_name} #{suffix}",
+  "#{prefix} #{Name.last_name} #{suffix}"
+];
+
+},{}],555:[function(require,module,exports){
+module["exports"] = [
+  "PT",
+  "CV",
+  "UD",
+  "PD",
+  "Perum"
+];
+},{}],556:[function(require,module,exports){
+module["exports"] = [
+  "(Persero) Tbk",
+  "Tbk"
+];
+},{}],557:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"./month":558,"./weekday":559,"/Users/a/dev/faker.js/lib/locales/az/date/index.js":37}],558:[function(require,module,exports){
+module["exports"] = {
+  wide: [
+    "Januari",
+    "Februari",
+    "Maret",
+    "April",
+    "Mei",
+    "Juni",
+    "Juli",
+    "Agustus",
+    "September",
+    "Oktober",
+    "November",
+    "Desember"
+  ],
+  wide_context: [
+    "Januari",
+    "Februari",
+    "Maret",
+    "April",
+    "Mei",
+    "Juni",
+    "Juli",
+    "Agustus",
+    "September",
+    "Oktober",
+    "November",
+    "Desember"
+  ],
+  abbr: [
+    "Jan",
+    "Feb",
+    "Mar",
+    "Apr",
+    "Mei",
+    "Jun",
+    "Jul",
+    "Ags",
+    "Sep",
+    "Okt",
+    "Nov",
+    "Des"
+  ],
+  abbr_context: [
+    "Jan",
+    "Feb",
+    "Mar",
+    "Apr",
+    "Mei",
+    "Jun",
+    "Jul",
+    "Ags",
+    "Sep",
+    "Okt",
+    "Nov",
+    "Des"
+  ]
+};
+
+},{}],559:[function(require,module,exports){
+module["exports"] = {
+  wide: [
+    "Minggu",
+    "Senin",
+    "Selasa",
+    "Rabu",
+    "Kamis",
+    "Jumat",
+    "Sabtu"
+  ],
+  wide_context: [
+    "Minggu",
+    "Senin",
+    "Selasa",
+    "Rabu",
+    "Kamis",
+    "Jumat",
+    "Sabtu"
+  ],
+  abbr: [
+    "Min",
+    "Sen",
+    "Sel",
+    "Rab",
+    "Kam",
+    "Jum",
+    "Sab"
+  ],
+  abbr_context: [
+    "Min",
+    "Sen",
+    "Sel",
+    "Rab",
+    "Kam",
+    "Jum",
+    "Sab"
+  ]
+};
+
+},{}],560:[function(require,module,exports){
+var id = {};
+module['exports'] = id;
+id.title = "Indonesia";
+id.address = require("./address");
+id.company = require("./company");
+id.internet = require("./internet");
+id.date = require("./date");
+id.name = require("./name");
+id.phone_number = require("./phone_number");
+
+},{"./address":547,"./company":553,"./date":557,"./internet":563,"./name":566,"./phone_number":573}],561:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "net",
+  "org",
+  "asia",
+  "tv",
+  "biz",
+  "info",
+  "in",
+  "name",
+  "co",
+  "ac.id",
+  "sch.id",
+  "go.id",
+  "mil.id",
+  "co.id",
+  "or.id",
+  "web.id",
+  "my.id",
+  "biz.id",
+  "desa.id"
+];
+},{}],562:[function(require,module,exports){
+module["exports"] = [
+  'gmail.com',
+  'yahoo.com',
+  'gmail.co.id',
+  'yahoo.co.id'
+];
+},{}],563:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":561,"./free_email":562,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],564:[function(require,module,exports){
+module["exports"] = [
+  "Ade",
+  "Agnes",
+  "Ajeng",
+  "Amalia",
+  "Anita",
+  "Ayu",
+  "Aisyah",
+  "Ana",
+  "Ami",
+  "Ani",
+  "Azalea",
+  "Aurora",
+  "Alika",
+  "Anastasia",
+  "Amelia",
+  "Almira",
+  "Bella",
+  "Betania",
+  "Belinda",
+  "Citra",
+  "Cindy",
+  "Chelsea",
+  "Clara",
+  "Cornelia",
+  "Cinta",
+  "Cinthia",
+  "Ciaobella",
+  "Cici",
+  "Carla",
+  "Calista",
+  "Devi",
+  "Dewi","Dian",
+  "Diah",
+  "Diana",
+  "Dina",
+  "Dinda",
+  "Dalima",
+  "Eka",
+  "Eva",
+  "Endah",
+  "Elisa",
+  "Eli",
+  "Ella",
+  "Ellis",
+  "Elma",
+  "Elvina",
+  "Fitria",
+  "Fitriani",
+  "Febi",
+  "Faizah",
+  "Farah",
+  "Farhunnisa",
+  "Fathonah",
+  "Gabriella",
+  "Gasti",
+  "Gawati",
+  "Genta",
+  "Ghaliyati",
+  "Gina",
+  "Gilda",
+  "Halima",
+  "Hesti",
+  "Hilda",
+  "Hafshah",
+  "Hamima",
+  "Hana",
+  "Hani",
+  "Hasna",
+  "Humaira",
+  "Ika",
+  "Indah",
+  "Intan",
+  "Irma",
+  "Icha",
+  "Ida",
+  "Ifa",
+  "Ilsa",
+  "Ina",
+  "Ira",
+  "Iriana",
+  "Jamalia",
+  "Janet",
+  "Jane",
+  "Julia",
+  "Juli",
+  "Jessica",
+  "Jasmin",
+  "Jelita",
+  "Kamaria",
+  "Kamila",
+  "Kani",
+  "Karen",
+  "Karimah",
+  "Kartika",
+  "Kasiyah",
+  "Keisha",
+  "Kezia",
+  "Kiandra",
+  "Kayla",
+  "Kania",
+  "Lala",
+  "Lalita",
+  "Latika",
+  "Laila",
+  "Laras",
+  "Lidya",
+  "Lili",
+  "Lintang",
+  "Maria",
+  "Mala",
+  "Maya",
+  "Maida",
+  "Maimunah",
+  "Melinda",
+  "Mila",
+  "Mutia",
+  "Michelle",
+  "Malika",
+  "Nadia",
+  "Nadine",
+  "Nabila",
+  "Natalia",
+  "Novi",
+  "Nova",
+  "Nurul",
+  "Nilam",
+  "Najwa",
+  "Olivia",
+  "Ophelia",
+  "Oni",
+  "Oliva",
+  "Padma",
+  "Putri",
+  "Paramita",
+  "Paris",
+  "Patricia",
+  "Paulin",
+  "Puput",
+  "Puji",
+  "Pia",
+  "Puspa",
+  "Puti",
+  "Putri",
+  "Padmi",
+  "Qori",
+  "Queen",
+  "Ratih",
+  "Ratna",
+  "Restu",
+  "Rini",
+  "Rika",
+  "Rina",
+  "Rahayu",
+  "Rahmi",
+  "Rachel",
+  "Rahmi",
+  "Raisa",
+  "Raina",
+  "Sarah",
+  "Sari",
+  "Siti",
+  "Siska",
+  "Suci",
+  "Syahrini",
+  "Septi",
+  "Sadina",
+  "Safina",
+  "Sakura",
+  "Salimah",
+  "Salwa",
+  "Salsabila",
+  "Samiah",
+  "Shania",
+  "Sabrina",
+  "Silvia",
+  "Shakila",
+  "Talia",
+  "Tami",
+  "Tira",
+  "Tiara",
+  "Titin",
+  "Tania",
+  "Tina",
+  "Tantri",
+  "Tari",
+  "Titi",
+  "Uchita",
+  "Unjani",
+  "Ulya",
+  "Uli",
+  "Ulva",
+  "Umi",
+  "Usyi",
+  "Vanya",
+  "Vanesa",
+  "Vivi",
+  "Vera",
+  "Vicky",
+  "Victoria",
+  "Violet",
+  "Winda",
+  "Widya",
+  "Wulan",
+  "Wirda",
+  "Wani",
+  "Yani",
+  "Yessi",
+  "Yulia",
+  "Yuliana",
+  "Yuni",
+  "Yunita",
+  "Yance",
+  "Zahra",
+  "Zalindra",
+  "Zaenab",
+  "Zulfa",
+  "Zizi",
+  "Zulaikha",
+  "Zamira",
+  "Zelda",
+  "Zelaya"
+];
+},{}],565:[function(require,module,exports){
+module["exports"] = [
+  "Agustina",
+  "Andriani",
+  "Anggraini",
+  "Aryani",
+  "Astuti",
+  "Fujiati",
+  "Farida",
+  "Handayani",
+  "Hassanah",
+  "Hartati",
+  "Hasanah",
+  "Haryanti",
+  "Hariyah",
+  "Hastuti",
+  "Halimah",
+  "Kusmawati",
+  "Kuswandari",
+  "Laksmiwati",
+  "Laksita",
+  "Lestari",
+  "Lailasari",
+  "Mandasari",
+  "Mardhiyah",
+  "Mayasari",
+  "Melani",
+  "Mulyani",
+  "Maryati",
+  "Nurdiyanti",
+  "Novitasari",
+  "Nuraini",
+  "Nasyidah",
+  "Nasyiah",
+  "Namaga",
+  "Palastri",
+  "Pudjiastuti",
+  "Puspasari",
+  "Puspita",
+  "Purwanti",
+  "Pratiwi",
+  "Purnawati",
+  "Pertiwi",
+  "Permata",
+  "Prastuti",
+  "Padmasari",
+  "Rahmawati",
+  "Rahayu",
+  "Riyanti",
+  "Rahimah",
+  "Suartini",
+  "Sudiati",
+  "Suryatmi",
+  "Susanti",
+  "Safitri",
+  "Oktaviani",
+  "Utami",
+  "Usamah",
+  "Usada",
+  "Uyainah",
+  "Yuniar",
+  "Yuliarti",
+  "Yulianti",
+  "Yolanda",
+  "Wahyuni",
+  "Wijayanti",
+  "Widiastuti",
+  "Winarsih",
+  "Wulandari",
+  "Wastuti",
+  "Zulaika"
+];
+},{}],566:[function(require,module,exports){
+arguments[4][46][0].apply(exports,arguments)
+},{"./female_first_name":564,"./female_last_name":565,"./male_first_name":567,"./male_last_name":568,"./name":569,"./prefix":570,"./suffix":571,"/Users/a/dev/faker.js/lib/locales/az/name/index.js":46}],567:[function(require,module,exports){
+module["exports"] = [
+  "Abyasa",
+  "Ade",
+  "Adhiarja",
+  "Adiarja",
+  "Adika",
+  "Adikara",
+  "Adinata",
+  "Aditya",
+  "Agus",
+  "Ajiman",
+  "Ajimat",
+  "Ajimin",
+  "Ajiono",
+  "Akarsana",
+  "Alambana",
+  "Among",
+  "Anggabaya",
+  "Anom",
+  "Argono",
+  "Aris",
+  "Arta",
+  "Artanto",
+  "Artawan",
+  "Arsipatra",
+  "Asirwada",
+  "Asirwanda",
+  "Aslijan",
+  "Asmadi",
+  "Asman",
+  "Asmianto",
+  "Asmuni",
+  "Aswani",
+  "Atma",
+  "Atmaja",
+  "Bagas",
+  "Bagiya",
+  "Bagus",
+  "Bagya",
+  "Bahuraksa",
+  "Bahuwarna",
+  "Bahuwirya",
+  "Bajragin",
+  "Bakda",
+  "Bakiadi",
+  "Bakianto",
+  "Bakidin",
+  "Bakijan",
+  "Bakiman",
+  "Bakiono",
+  "Bakti",
+  "Baktiadi",
+  "Baktianto",
+  "Baktiono",
+  "Bala",
+  "Balamantri",
+  "Balangga",
+  "Balapati",
+  "Balidin",
+  "Balijan",
+  "Bambang",
+  "Banara",
+  "Banawa",
+  "Banawi",
+  "Bancar",
+  "Budi",
+  "Cagak",
+  "Cager",
+  "Cahyadi",
+  "Cahyanto",
+  "Cahya",
+  "Cahyo",
+  "Cahyono",
+  "Caket",
+  "Cakrabirawa",
+  "Cakrabuana",
+  "Cakrajiya",
+  "Cakrawala",
+  "Cakrawangsa",
+  "Candra",
+  "Chandra",
+  "Candrakanta",
+  "Capa",
+  "Caraka",
+  "Carub",
+  "Catur",
+  "Caturangga",
+  "Cawisadi",
+  "Cawisono",
+  "Cawuk",
+  "Cayadi",
+  "Cecep",
+  "Cemani",
+  "Cemeti",
+  "Cemplunk",
+  "Cengkal",
+  "Cengkir",
+  "Dacin",
+  "Dadap",
+  "Dadi",
+  "Dagel",
+  "Daliman",
+  "Dalimin",
+  "Daliono",
+  "Damar",
+  "Damu",
+  "Danang",
+  "Daniswara",
+  "Danu",
+  "Danuja",
+  "Dariati",
+  "Darijan",
+  "Darimin",
+  "Darmaji",
+  "Darman",
+  "Darmana",
+  "Darmanto",
+  "Darsirah",
+  "Dartono",
+  "Daru",
+  "Daruna",
+  "Daryani",
+  "Dasa",
+  "Digdaya",
+  "Dimas",
+  "Dimaz",
+  "Dipa",
+  "Dirja",
+  "Drajat",
+  "Dwi",
+  "Dono",
+  "Dodo",
+  "Edi",
+  "Eka",
+  "Elon",
+  "Eluh",
+  "Eman",
+  "Emas",
+  "Embuh",
+  "Emong",
+  "Empluk",
+  "Endra",
+  "Enteng",
+  "Estiawan",
+  "Estiono",
+  "Eko",
+  "Edi",
+  "Edison",
+  "Edward",
+  "Elvin",
+  "Erik",
+  "Emil",
+  "Ega",
+  "Emin",
+  "Eja",
+  "Gada",
+  "Gadang",
+  "Gaduh",
+  "Gaiman",
+  "Galak",
+  "Galang",
+  "Galar",
+  "Galih",
+  "Galiono",
+  "Galuh",
+  "Galur",
+  "Gaman",
+  "Gamani",
+  "Gamanto",
+  "Gambira",
+  "Gamblang",
+  "Ganda",
+  "Gandewa",
+  "Gandi",
+  "Gandi",
+  "Ganep",
+  "Gangsa",
+  "Gangsar",
+  "Ganjaran",
+  "Gantar",
+  "Gara",
+  "Garan",
+  "Garang",
+  "Garda",
+  "Gatot",
+  "Gatra",
+  "Gilang",
+  "Galih",
+  "Ghani",
+  "Gading",
+  "Hairyanto",
+  "Hardana",
+  "Hardi",
+  "Harimurti",
+  "Harja",
+  "Harjasa",
+  "Harjaya",
+  "Harjo",
+  "Harsana",
+  "Harsanto",
+  "Harsaya",
+  "Hartaka",
+  "Hartana",
+  "Harto",
+  "Hasta",
+  "Heru",
+  "Himawan",
+  "Hadi",
+  "Halim",
+  "Hasim",
+  "Hasan",
+  "Hendra",
+  "Hendri",
+  "Heryanto",
+  "Hamzah",
+  "Hari",
+  "Imam",
+  "Indra",
+  "Irwan",
+  "Irsad",
+  "Ikhsan",
+  "Irfan",
+  "Ian",
+  "Ibrahim",
+  "Ibrani",
+  "Ismail",
+  "Irnanto",
+  "Ilyas",
+  "Ibun",
+  "Ivan",
+  "Ikin",
+  "Ihsan",
+  "Jabal",
+  "Jaeman",
+  "Jaga",
+  "Jagapati",
+  "Jagaraga",
+  "Jail",
+  "Jaiman",
+  "Jaka",
+  "Jarwa",
+  "Jarwadi",
+  "Jarwi",
+  "Jasmani",
+  "Jaswadi",
+  "Jati",
+  "Jatmiko",
+  "Jaya",
+  "Jayadi",
+  "Jayeng",
+  "Jinawi",
+  "Jindra",
+  "Joko",
+  "Jumadi",
+  "Jumari",
+  "Jamal",
+  "Jamil",
+  "Jais",
+  "Jefri",
+  "Johan",
+  "Jono",
+  "Kacung",
+  "Kajen",
+  "Kambali",
+  "Kamidin",
+  "Kariman",
+  "Karja",
+  "Karma",
+  "Karman",
+  "Karna",
+  "Karsa",
+  "Karsana",
+  "Karta",
+  "Kasiran",
+  "Kasusra",
+  "Kawaca",
+  "Kawaya",
+  "Kayun",
+  "Kemba",
+  "Kenari",
+  "Kenes",
+  "Kuncara",
+  "Kunthara",
+  "Kusuma",
+  "Kadir",
+  "Kala",
+  "Kalim",
+  "Kurnia",
+  "Kanda",
+  "Kardi",
+  "Karya",
+  "Kasim",
+  "Kairav",
+  "Kenzie",
+  "Kemal",
+  "Kamal",
+  "Koko",
+  "Labuh",
+  "Laksana",
+  "Lamar",
+  "Lanang",
+  "Langgeng",
+  "Lanjar",
+  "Lantar",
+  "Lega",
+  "Legawa",
+  "Lembah",
+  "Liman",
+  "Limar",
+  "Luhung",
+  "Lukita",
+  "Luluh",
+  "Lulut",
+  "Lurhur",
+  "Luwar",
+  "Luwes",
+  "Latif",
+  "Lasmanto",
+  "Lukman",
+  "Luthfi",
+  "Leo",
+  "Luis",
+  "Lutfan",
+  "Lasmono",
+  "Laswi",
+  "Mahesa",
+  "Makara",
+  "Makuta",
+  "Manah",
+  "Maras",
+  "Margana",
+  "Mariadi",
+  "Marsudi",
+  "Martaka",
+  "Martana",
+  "Martani",
+  "Marwata",
+  "Maryadi",
+  "Maryanto",
+  "Mitra",
+  "Mujur",
+  "Mulya",
+  "Mulyanto",
+  "Mulyono",
+  "Mumpuni",
+  "Muni",
+  "Mursita",
+  "Murti",
+  "Mustika",
+  "Maman",
+  "Mahmud",
+  "Mahdi",
+  "Mahfud",
+  "Malik",
+  "Muhammad",
+  "Mustofa",
+  "Marsito",
+  "Mursinin",
+  "Nalar",
+  "Naradi",
+  "Nardi",
+  "Niyaga",
+  "Nrima",
+  "Nugraha",
+  "Nyana",
+  "Narji",
+  "Nasab",
+  "Nasrullah",
+  "Nasim",
+  "Najib",
+  "Najam",
+  "Nyoman",
+  "Olga",
+  "Ozy",
+  "Omar",
+  "Opan",
+  "Oskar",
+  "Oman",
+  "Okto",
+  "Okta",
+  "Opung",
+  "Paiman",
+  "Panca",
+  "Pangeran",
+  "Pangestu",
+  "Pardi",
+  "Parman",
+  "Perkasa",
+  "Praba",
+  "Prabu",
+  "Prabawa",
+  "Prabowo",
+  "Prakosa",
+  "Pranata",
+  "Pranawa",
+  "Prasetya",
+  "Prasetyo",
+  "Prayitna",
+  "Prayoga",
+  "Prayogo",
+  "Purwadi",
+  "Purwa",
+  "Purwanto",
+  "Panji",
+  "Pandu",
+  "Paiman",
+  "Prima",
+  "Putu",
+  "Raden",
+  "Raditya",
+  "Raharja",
+  "Rama",
+  "Rangga",
+  "Reksa",
+  "Respati",
+  "Rusman",
+  "Rosman",
+  "Rahmat",
+  "Rahman",
+  "Rendy",
+  "Reza",
+  "Rizki",
+  "Ridwan",
+  "Rudi",
+  "Raden",
+  "Radit",
+  "Radika",
+  "Rafi",
+  "Rafid",
+  "Raihan",
+  "Salman",
+  "Saadat",
+  "Saiful",
+  "Surya",
+  "Slamet",
+  "Samsul",
+  "Soleh",
+  "Simon",
+  "Sabar",
+  "Sabri",
+  "Sidiq",
+  "Satya",
+  "Setya",
+  "Saka",
+  "Sakti",
+  "Taswir",
+  "Tedi",
+  "Teddy",
+  "Taufan",
+  "Taufik",
+  "Tomi",
+  "Tasnim",
+  "Teguh",
+  "Tasdik",
+  "Timbul",
+  "Tirta",
+  "Tirtayasa",
+  "Tri",
+  "Tugiman",
+  "Umar",
+  "Usman",
+  "Uda",
+  "Umay",
+  "Unggul",
+  "Utama",
+  "Umaya",
+  "Upik",
+  "Viktor",
+  "Vino",
+  "Vinsen",
+  "Vero",
+  "Vega",
+  "Viman",
+  "Virman",
+  "Wahyu",
+  "Wira",
+  "Wisnu",
+  "Wadi",
+  "Wardi",
+  "Warji",
+  "Waluyo",
+  "Wakiman",
+  "Wage",
+  "Wardaya",
+  "Warsa",
+  "Warsita",
+  "Warta",
+  "Wasis",
+  "Wawan",
+  "Xanana",
+  "Yahya",
+  "Yusuf",
+  "Yosef",
+  "Yono",
+  "Yoga"
+];
+},{}],568:[function(require,module,exports){
+module["exports"] = [
+  "Adriansyah",
+  "Ardianto",
+  "Anggriawan",
+  "Budiman",
+  "Budiyanto",
+  "Damanik",
+  "Dongoran",
+  "Dabukke",
+  "Firmansyah",
+  "Firgantoro",
+  "Gunarto",
+  "Gunawan",
+  "Hardiansyah",
+  "Habibi",
+  "Hakim",
+  "Halim",
+  "Haryanto",
+  "Hidayat",
+  "Hidayanto",
+  "Hutagalung",
+  "Hutapea",
+  "Hutasoit",
+  "Irawan",
+  "Iswahyudi",
+  "Kuswoyo",
+  "Januar",
+  "Jailani",
+  "Kurniawan",
+  "Kusumo",
+  "Latupono",
+  "Lazuardi",
+  "Maheswara",
+  "Mahendra",
+  "Mustofa",
+  "Mansur",
+  "Mandala",
+  "Megantara",
+  "Maulana",
+  "Maryadi",
+  "Mangunsong",
+  "Manullang",
+  "Marpaung",
+  "Marbun",
+  "Narpati",
+  "Natsir",
+  "Nugroho",
+  "Najmudin",
+  "Nashiruddin",
+  "Nainggolan",
+  "Nababan",
+  "Napitupulu",
+  "Pangestu",
+  "Putra",
+  "Pranowo",
+  "Prabowo",
+  "Pratama",
+  "Prasetya",
+  "Prasetyo",
+  "Pradana",
+  "Pradipta",
+  "Prakasa",
+  "Permadi",
+  "Prasasta",
+  "Prayoga",
+  "Ramadan",
+  "Rajasa",
+  "Rajata",
+  "Saptono",
+  "Santoso",
+  "Saputra",
+  "Saefullah",
+  "Setiawan",
+  "Suryono",
+  "Suwarno",
+  "Siregar",
+  "Sihombing",
+  "Salahudin",
+  "Sihombing",
+  "Samosir",
+  "Saragih",
+  "Sihotang",
+  "Simanjuntak",
+  "Sinaga",
+  "Simbolon",
+  "Sitompul",
+  "Sitorus",
+  "Sirait",
+  "Siregar",
+  "Situmorang",
+  "Tampubolon",
+  "Thamrin",
+  "Tamba",
+  "Tarihoran",
+  "Utama",
+  "Uwais",
+  "Wahyudin",
+  "Waluyo",
+  "Wibowo",
+  "Winarno",
+  "Wibisono",
+  "Wijaya",
+  "Widodo",
+  "Wacana",
+  "Waskita",
+  "Wasita",
+  "Zulkarnain"
+];
+},{}],569:[function(require,module,exports){
+module["exports"] = [
+  "#{male_first_name} #{male_last_name}",
+  "#{male_last_name} #{male_first_name}",
+  "#{male_first_name} #{male_first_name} #{male_last_name}",
+  "#{female_first_name} #{female_last_name}",
+  "#{female_first_name} #{male_last_name}",
+  "#{female_last_name} #{female_first_name}",
+  "#{female_first_name} #{female_first_name} #{female_last_name}"
+];
+
+},{}],570:[function(require,module,exports){
+module["exports"] = [];
+},{}],571:[function(require,module,exports){
+module["exports"] = [
+  "S.Ked",
+  "S.Gz",
+  "S.Pt",
+  "S.IP",
+  "S.E.I",
+  "S.E.",
+  "S.Kom",
+  "S.H.",
+  "S.T.",
+  "S.Pd",
+  "S.Psi",
+  "S.I.Kom",
+  "S.Sos",
+  "S.Farm",
+  "M.M.",
+  "M.Kom.",
+  "M.TI.",
+  "M.Pd",
+  "M.Farm",
+  "M.Ak"
+];
+},{}],572:[function(require,module,exports){
+module["exports"] = [
+  "02# #### ###",
+  "02## #### ###",
+  "03## #### ###",
+  "04## #### ###",
+  "05## #### ###",
+  "06## #### ###",
+  "07## #### ###",
+  "09## #### ###",
+  "02# #### ####",
+  "02## #### ####",
+  "03## #### ####",
+  "04## #### ####",
+  "05## #### ####",
+  "06## #### ####",
+  "07## #### ####",
+  "09## #### ####",
+  "08## ### ###",
+  "08## #### ###",
+  "08## #### ####",
+  "(+62) 8## ### ###",
+  "(+62) 2# #### ###",
+  "(+62) 2## #### ###",
+  "(+62) 3## #### ###",
+  "(+62) 4## #### ###",
+  "(+62) 5## #### ###",
+  "(+62) 6## #### ###",
+  "(+62) 7## #### ###",
+  "(+62) 8## #### ###",
+  "(+62) 9## #### ###",
+  "(+62) 2# #### ####",
+  "(+62) 2## #### ####",
+  "(+62) 3## #### ####",
+  "(+62) 4## #### ####",
+  "(+62) 5## #### ####",
+  "(+62) 6## #### ####",
+  "(+62) 7## #### ####",
+  "(+62) 8## #### ####",
+  "(+62) 9## #### ####"
+];
+},{}],573:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":572,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],574:[function(require,module,exports){
+module.exports=require(511)
+},{"/Users/a/dev/faker.js/lib/locales/ge/address/building_number.js":511}],575:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix} #{Name.first_name} #{city_suffix}",
+  "#{city_prefix} #{Name.first_name}",
+  "#{Name.first_name} #{city_suffix}",
+  "#{Name.last_name} #{city_suffix}"
+];
+
+},{}],576:[function(require,module,exports){
+module["exports"] = [
+  "San",
+  "Borgo",
+  "Sesto",
+  "Quarto",
+  "Settimo"
+];
+
+},{}],577:[function(require,module,exports){
+module["exports"] = [
+  "a mare",
+  "lido",
+  "ligure",
+  "del friuli",
+  "salentino",
+  "calabro",
+  "veneto",
+  "nell'emilia",
+  "umbro",
+  "laziale",
+  "terme",
+  "sardo"
+];
+
+},{}],578:[function(require,module,exports){
+module["exports"] = [
+  "Afghanistan",
+  "Albania",
+  "Algeria",
+  "American Samoa",
+  "Andorra",
+  "Angola",
+  "Anguilla",
+  "Antartide (territori a sud del 60° parallelo)",
+  "Antigua e Barbuda",
+  "Argentina",
+  "Armenia",
+  "Aruba",
+  "Australia",
+  "Austria",
+  "Azerbaijan",
+  "Bahamas",
+  "Bahrain",
+  "Bangladesh",
+  "Barbados",
+  "Bielorussia",
+  "Belgio",
+  "Belize",
+  "Benin",
+  "Bermuda",
+  "Bhutan",
+  "Bolivia",
+  "Bosnia e Herzegovina",
+  "Botswana",
+  "Bouvet Island (Bouvetoya)",
+  "Brasile",
+  "Territorio dell'arcipelago indiano",
+  "Isole Vergini Britanniche",
+  "Brunei Darussalam",
+  "Bulgaria",
+  "Burkina Faso",
+  "Burundi",
+  "Cambogia",
+  "Cameroon",
+  "Canada",
+  "Capo Verde",
+  "Isole Cayman",
+  "Repubblica Centrale Africana",
+  "Chad",
+  "Cile",
+  "Cina",
+  "Isola di Pasqua",
+  "Isola di Cocos (Keeling)",
+  "Colombia",
+  "Comoros",
+  "Congo",
+  "Isole Cook",
+  "Costa Rica",
+  "Costa d'Avorio",
+  "Croazia",
+  "Cuba",
+  "Cipro",
+  "Repubblica Ceca",
+  "Danimarca",
+  "Gibuti",
+  "Repubblica Dominicana",
+  "Equador",
+  "Egitto",
+  "El Salvador",
+  "Guinea Equatoriale",
+  "Eritrea",
+  "Estonia",
+  "Etiopia",
+  "Isole Faroe",
+  "Isole Falkland (Malvinas)",
+  "Fiji",
+  "Finlandia",
+  "Francia",
+  "Guyana Francese",
+  "Polinesia Francese",
+  "Territori Francesi del sud",
+  "Gabon",
+  "Gambia",
+  "Georgia",
+  "Germania",
+  "Ghana",
+  "Gibilterra",
+  "Grecia",
+  "Groenlandia",
+  "Grenada",
+  "Guadalupa",
+  "Guam",
+  "Guatemala",
+  "Guernsey",
+  "Guinea",
+  "Guinea-Bissau",
+  "Guyana",
+  "Haiti",
+  "Heard Island and McDonald Islands",
+  "Città del Vaticano",
+  "Honduras",
+  "Hong Kong",
+  "Ungheria",
+  "Islanda",
+  "India",
+  "Indonesia",
+  "Iran",
+  "Iraq",
+  "Irlanda",
+  "Isola di Man",
+  "Israele",
+  "Italia",
+  "Giamaica",
+  "Giappone",
+  "Jersey",
+  "Giordania",
+  "Kazakhstan",
+  "Kenya",
+  "Kiribati",
+  "Korea",
+  "Kuwait",
+  "Republicca Kirgiza",
+  "Repubblica del Laos",
+  "Latvia",
+  "Libano",
+  "Lesotho",
+  "Liberia",
+  "Libyan Arab Jamahiriya",
+  "Liechtenstein",
+  "Lituania",
+  "Lussemburgo",
+  "Macao",
+  "Macedonia",
+  "Madagascar",
+  "Malawi",
+  "Malesia",
+  "Maldive",
+  "Mali",
+  "Malta",
+  "Isole Marshall",
+  "Martinica",
+  "Mauritania",
+  "Mauritius",
+  "Mayotte",
+  "Messico",
+  "Micronesia",
+  "Moldova",
+  "Principato di Monaco",
+  "Mongolia",
+  "Montenegro",
+  "Montserrat",
+  "Marocco",
+  "Mozambico",
+  "Myanmar",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Antille Olandesi",
+  "Olanda",
+  "Nuova Caledonia",
+  "Nuova Zelanda",
+  "Nicaragua",
+  "Niger",
+  "Nigeria",
+  "Niue",
+  "Isole Norfolk",
+  "Northern Mariana Islands",
+  "Norvegia",
+  "Oman",
+  "Pakistan",
+  "Palau",
+  "Palestina",
+  "Panama",
+  "Papua Nuova Guinea",
+  "Paraguay",
+  "Peru",
+  "Filippine",
+  "Pitcairn Islands",
+  "Polonia",
+  "Portogallo",
+  "Porto Rico",
+  "Qatar",
+  "Reunion",
+  "Romania",
+  "Russia",
+  "Rwanda",
+  "San Bartolomeo",
+  "Sant'Elena",
+  "Saint Kitts and Nevis",
+  "Saint Lucia",
+  "Saint Martin",
+  "Saint Pierre and Miquelon",
+  "Saint Vincent and the Grenadines",
+  "Samoa",
+  "San Marino",
+  "Sao Tome and Principe",
+  "Arabia Saudita",
+  "Senegal",
+  "Serbia",
+  "Seychelles",
+  "Sierra Leone",
+  "Singapore",
+  "Slovenia",
+  "Isole Solomon",
+  "Somalia",
+  "Sud Africa",
+  "Georgia del sud e South Sandwich Islands",
+  "Spagna",
+  "Sri Lanka",
+  "Sudan",
+  "Suriname",
+  "Svalbard & Jan Mayen Islands",
+  "Swaziland",
+  "Svezia",
+  "Svizzera",
+  "Siria",
+  "Taiwan",
+  "Tajikistan",
+  "Tanzania",
+  "Tailandia",
+  "Timor-Leste",
+  "Togo",
+  "Tokelau",
+  "Tonga",
+  "Trinidad e Tobago",
+  "Tunisia",
+  "Turchia",
+  "Turkmenistan",
+  "Isole di Turks and Caicos",
+  "Tuvalu",
+  "Uganda",
+  "Ucraina",
+  "Emirati Arabi Uniti",
+  "Regno Unito",
+  "Stati Uniti d'America",
+  "United States Minor Outlying Islands",
+  "Isole Vergini Statunitensi",
+  "Uruguay",
+  "Uzbekistan",
+  "Vanuatu",
+  "Venezuela",
+  "Vietnam",
+  "Wallis and Futuna",
+  "Western Sahara",
+  "Yemen",
+  "Zambia",
+  "Zimbabwe"
+];
+
+},{}],579:[function(require,module,exports){
+module["exports"] = [
+  "Italia"
+];
+
+},{}],580:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":574,"./city":575,"./city_prefix":576,"./city_suffix":577,"./country":578,"./default_country":579,"./postcode":581,"./secondary_address":582,"./state":583,"./state_abbr":584,"./street_address":585,"./street_name":586,"./street_suffix":587}],581:[function(require,module,exports){
+module.exports=require(379)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/postcode.js":379}],582:[function(require,module,exports){
+module["exports"] = [
+  "Appartamento ##",
+  "Piano #"
+];
+
+},{}],583:[function(require,module,exports){
+module["exports"] = [
+  "Agrigento",
+  "Alessandria",
+  "Ancona",
+  "Aosta",
+  "Arezzo",
+  "Ascoli Piceno",
+  "Asti",
+  "Avellino",
+  "Bari",
+  "Barletta-Andria-Trani",
+  "Belluno",
+  "Benevento",
+  "Bergamo",
+  "Biella",
+  "Bologna",
+  "Bolzano",
+  "Brescia",
+  "Brindisi",
+  "Cagliari",
+  "Caltanissetta",
+  "Campobasso",
+  "Carbonia-Iglesias",
+  "Caserta",
+  "Catania",
+  "Catanzaro",
+  "Chieti",
+  "Como",
+  "Cosenza",
+  "Cremona",
+  "Crotone",
+  "Cuneo",
+  "Enna",
+  "Fermo",
+  "Ferrara",
+  "Firenze",
+  "Foggia",
+  "Forlì-Cesena",
+  "Frosinone",
+  "Genova",
+  "Gorizia",
+  "Grosseto",
+  "Imperia",
+  "Isernia",
+  "La Spezia",
+  "L'Aquila",
+  "Latina",
+  "Lecce",
+  "Lecco",
+  "Livorno",
+  "Lodi",
+  "Lucca",
+  "Macerata",
+  "Mantova",
+  "Massa-Carrara",
+  "Matera",
+  "Messina",
+  "Milano",
+  "Modena",
+  "Monza e della Brianza",
+  "Napoli",
+  "Novara",
+  "Nuoro",
+  "Olbia-Tempio",
+  "Oristano",
+  "Padova",
+  "Palermo",
+  "Parma",
+  "Pavia",
+  "Perugia",
+  "Pesaro e Urbino",
+  "Pescara",
+  "Piacenza",
+  "Pisa",
+  "Pistoia",
+  "Pordenone",
+  "Potenza",
+  "Prato",
+  "Ragusa",
+  "Ravenna",
+  "Reggio Calabria",
+  "Reggio Emilia",
+  "Rieti",
+  "Rimini",
+  "Roma",
+  "Rovigo",
+  "Salerno",
+  "Medio Campidano",
+  "Sassari",
+  "Savona",
+  "Siena",
+  "Siracusa",
+  "Sondrio",
+  "Taranto",
+  "Teramo",
+  "Terni",
+  "Torino",
+  "Ogliastra",
+  "Trapani",
+  "Trento",
+  "Treviso",
+  "Trieste",
+  "Udine",
+  "Varese",
+  "Venezia",
+  "Verbano-Cusio-Ossola",
+  "Vercelli",
+  "Verona",
+  "Vibo Valentia",
+  "Vicenza",
+  "Viterbo"
+];
+
+},{}],584:[function(require,module,exports){
+module["exports"] = [
+  "AG",
+  "AL",
+  "AN",
+  "AO",
+  "AR",
+  "AP",
+  "AT",
+  "AV",
+  "BA",
+  "BT",
+  "BL",
+  "BN",
+  "BG",
+  "BI",
+  "BO",
+  "BZ",
+  "BS",
+  "BR",
+  "CA",
+  "CL",
+  "CB",
+  "CI",
+  "CE",
+  "CT",
+  "CZ",
+  "CH",
+  "CO",
+  "CS",
+  "CR",
+  "KR",
+  "CN",
+  "EN",
+  "FM",
+  "FE",
+  "FI",
+  "FG",
+  "FC",
+  "FR",
+  "GE",
+  "GO",
+  "GR",
+  "IM",
+  "IS",
+  "SP",
+  "AQ",
+  "LT",
+  "LE",
+  "LC",
+  "LI",
+  "LO",
+  "LU",
+  "MC",
+  "MN",
+  "MS",
+  "MT",
+  "ME",
+  "MI",
+  "MO",
+  "MB",
+  "NA",
+  "NO",
+  "NU",
+  "OT",
+  "OR",
+  "PD",
+  "PA",
+  "PR",
+  "PV",
+  "PG",
+  "PU",
+  "PE",
+  "PC",
+  "PI",
+  "PT",
+  "PN",
+  "PZ",
+  "PO",
+  "RG",
+  "RA",
+  "RC",
+  "RE",
+  "RI",
+  "RN",
+  "RM",
+  "RO",
+  "SA",
+  "VS",
+  "SS",
+  "SV",
+  "SI",
+  "SR",
+  "SO",
+  "TA",
+  "TE",
+  "TR",
+  "TO",
+  "OG",
+  "TP",
+  "TN",
+  "TV",
+  "TS",
+  "UD",
+  "VA",
+  "VE",
+  "VB",
+  "VC",
+  "VR",
+  "VV",
+  "VI",
+  "VT"
+];
+
+},{}],585:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name} #{building_number}",
+  "#{street_name} #{building_number}, #{secondary_address}"
+];
+
+},{}],586:[function(require,module,exports){
+module["exports"] = [
+  "#{street_suffix} #{Name.first_name}",
+  "#{street_suffix} #{Name.last_name}"
+];
+
+},{}],587:[function(require,module,exports){
+module["exports"] = [
+  "Piazza",
+  "Strada",
+  "Via",
+  "Borgo",
+  "Contrada",
+  "Rotonda",
+  "Incrocio"
+];
+
+},{}],588:[function(require,module,exports){
+module["exports"] = [
+  "24 ore",
+  "24/7",
+  "terza generazione",
+  "quarta generazione",
+  "quinta generazione",
+  "sesta generazione",
+  "asimmetrica",
+  "asincrona",
+  "background",
+  "bi-direzionale",
+  "biforcata",
+  "bottom-line",
+  "coerente",
+  "coesiva",
+  "composita",
+  "sensibile al contesto",
+  "basta sul contesto",
+  "basata sul contenuto",
+  "dedicata",
+  "didattica",
+  "direzionale",
+  "discreta",
+  "dinamica",
+  "eco-centrica",
+  "esecutiva",
+  "esplicita",
+  "full-range",
+  "globale",
+  "euristica",
+  "alto livello",
+  "olistica",
+  "omogenea",
+  "ibrida",
+  "impattante",
+  "incrementale",
+  "intangibile",
+  "interattiva",
+  "intermediaria",
+  "locale",
+  "logistica",
+  "massimizzata",
+  "metodica",
+  "mission-critical",
+  "mobile",
+  "modulare",
+  "motivazionale",
+  "multimedia",
+  "multi-tasking",
+  "nazionale",
+  "neutrale",
+  "nextgeneration",
+  "non-volatile",
+  "object-oriented",
+  "ottima",
+  "ottimizzante",
+  "radicale",
+  "real-time",
+  "reciproca",
+  "regionale",
+  "responsiva",
+  "scalabile",
+  "secondaria",
+  "stabile",
+  "statica",
+  "sistematica",
+  "sistemica",
+  "tangibile",
+  "terziaria",
+  "uniforme",
+  "valore aggiunto"
+];
+
+},{}],589:[function(require,module,exports){
+module["exports"] = [
+  "valore aggiunto",
+  "verticalizzate",
+  "proattive",
+  "forti",
+  "rivoluzionari",
+  "scalabili",
+  "innovativi",
+  "intuitivi",
+  "strategici",
+  "e-business",
+  "mission-critical",
+  "24/7",
+  "globali",
+  "B2B",
+  "B2C",
+  "granulari",
+  "virtuali",
+  "virali",
+  "dinamiche",
+  "magnetiche",
+  "web",
+  "interattive",
+  "sexy",
+  "back-end",
+  "real-time",
+  "efficienti",
+  "front-end",
+  "distributivi",
+  "estensibili",
+  "mondiali",
+  "open-source",
+  "cross-platform",
+  "sinergiche",
+  "out-of-the-box",
+  "enterprise",
+  "integrate",
+  "di impatto",
+  "wireless",
+  "trasparenti",
+  "next-generation",
+  "cutting-edge",
+  "visionari",
+  "plug-and-play",
+  "collaborative",
+  "olistiche",
+  "ricche"
+];
+
+},{}],590:[function(require,module,exports){
+module["exports"] = [
+  "partnerships",
+  "comunità",
+  "ROI",
+  "soluzioni",
+  "e-services",
+  "nicchie",
+  "tecnologie",
+  "contenuti",
+  "supply-chains",
+  "convergenze",
+  "relazioni",
+  "architetture",
+  "interfacce",
+  "mercati",
+  "e-commerce",
+  "sistemi",
+  "modelli",
+  "schemi",
+  "reti",
+  "applicazioni",
+  "metriche",
+  "e-business",
+  "funzionalità",
+  "esperienze",
+  "webservices",
+  "metodologie"
+];
+
+},{}],591:[function(require,module,exports){
+module["exports"] = [
+  "implementate",
+  "utilizzo",
+  "integrate",
+  "ottimali",
+  "evolutive",
+  "abilitate",
+  "reinventate",
+  "aggregate",
+  "migliorate",
+  "incentivate",
+  "monetizzate",
+  "sinergizzate",
+  "strategiche",
+  "deploy",
+  "marchi",
+  "accrescitive",
+  "target",
+  "sintetizzate",
+  "spedizioni",
+  "massimizzate",
+  "innovazione",
+  "guida",
+  "estensioni",
+  "generate",
+  "exploit",
+  "transizionali",
+  "matrici",
+  "ricontestualizzate"
+];
+
+},{}],592:[function(require,module,exports){
+module["exports"] = [
+  "adattiva",
+  "avanzata",
+  "migliorata",
+  "assimilata",
+  "automatizzata",
+  "bilanciata",
+  "centralizzata",
+  "compatibile",
+  "configurabile",
+  "cross-platform",
+  "decentralizzata",
+  "digitalizzata",
+  "distribuita",
+  "piccola",
+  "ergonomica",
+  "esclusiva",
+  "espansa",
+  "estesa",
+  "configurabile",
+  "fondamentale",
+  "orizzontale",
+  "implementata",
+  "innovativa",
+  "integrata",
+  "intuitiva",
+  "inversa",
+  "gestita",
+  "obbligatoria",
+  "monitorata",
+  "multi-canale",
+  "multi-laterale",
+  "open-source",
+  "operativa",
+  "ottimizzata",
+  "organica",
+  "persistente",
+  "polarizzata",
+  "proattiva",
+  "programmabile",
+  "progressiva",
+  "reattiva",
+  "riallineata",
+  "ricontestualizzata",
+  "ridotta",
+  "robusta",
+  "sicura",
+  "condivisibile",
+  "stand-alone",
+  "switchabile",
+  "sincronizzata",
+  "sinergica",
+  "totale",
+  "universale",
+  "user-friendly",
+  "versatile",
+  "virtuale",
+  "visionaria"
+];
+
+},{}],593:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.noun = require("./noun");
+company.descriptor = require("./descriptor");
+company.adjective = require("./adjective");
+company.bs_noun = require("./bs_noun");
+company.bs_verb = require("./bs_verb");
+company.bs_adjective = require("./bs_adjective");
+company.name = require("./name");
+
+},{"./adjective":588,"./bs_adjective":589,"./bs_noun":590,"./bs_verb":591,"./descriptor":592,"./name":594,"./noun":595,"./suffix":596}],594:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name}-#{Name.last_name} #{suffix}",
+  "#{Name.last_name}, #{Name.last_name} e #{Name.last_name} #{suffix}"
+];
+
+},{}],595:[function(require,module,exports){
+module["exports"] = [
+  "Abilità",
+  "Access",
+  "Adattatore",
+  "Algoritmo",
+  "Alleanza",
+  "Analizzatore",
+  "Applicazione",
+  "Approccio",
+  "Architettura",
+  "Archivio",
+  "Intelligenza artificiale",
+  "Array",
+  "Attitudine",
+  "Benchmark",
+  "Capacità",
+  "Sfida",
+  "Circuito",
+  "Collaborazione",
+  "Complessità",
+  "Concetto",
+  "Conglomerato",
+  "Contingenza",
+  "Core",
+  "Database",
+  "Data-warehouse",
+  "Definizione",
+  "Emulazione",
+  "Codifica",
+  "Criptazione",
+  "Firmware",
+  "Flessibilità",
+  "Previsione",
+  "Frame",
+  "framework",
+  "Funzione",
+  "Funzionalità",
+  "Interfaccia grafica",
+  "Hardware",
+  "Help-desk",
+  "Gerarchia",
+  "Hub",
+  "Implementazione",
+  "Infrastruttura",
+  "Iniziativa",
+  "Installazione",
+  "Set di istruzioni",
+  "Interfaccia",
+  "Soluzione internet",
+  "Intranet",
+  "Conoscenza base",
+  "Matrici",
+  "Matrice",
+  "Metodologia",
+  "Middleware",
+  "Migrazione",
+  "Modello",
+  "Moderazione",
+  "Monitoraggio",
+  "Moratoria",
+  "Rete",
+  "Architettura aperta",
+  "Sistema aperto",
+  "Orchestrazione",
+  "Paradigma",
+  "Parallelismo",
+  "Policy",
+  "Portale",
+  "Struttura di prezzo",
+  "Prodotto",
+  "Produttività",
+  "Progetto",
+  "Proiezione",
+  "Protocollo",
+  "Servizio clienti",
+  "Software",
+  "Soluzione",
+  "Standardizzazione",
+  "Strategia",
+  "Struttura",
+  "Successo",
+  "Sovrastruttura",
+  "Supporto",
+  "Sinergia",
+  "Task-force",
+  "Finestra temporale",
+  "Strumenti",
+  "Utilizzazione",
+  "Sito web",
+  "Forza lavoro"
+];
+
+},{}],596:[function(require,module,exports){
+module["exports"] = [
+  "SPA",
+  "e figli",
+  "Group",
+  "s.r.l."
+];
+
+},{}],597:[function(require,module,exports){
+var it = {};
+module['exports'] = it;
+it.title = "Italian";
+it.address = require("./address");
+it.company = require("./company");
+it.internet = require("./internet");
+it.name = require("./name");
+it.phone_number = require("./phone_number");
+
+},{"./address":580,"./company":593,"./internet":600,"./name":602,"./phone_number":608}],598:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "com",
+  "com",
+  "net",
+  "org",
+  "it",
+  "it",
+  "it"
+];
+
+},{}],599:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com",
+  "email.it",
+  "libero.it",
+  "yahoo.it"
+];
+
+},{}],600:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":598,"./free_email":599,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],601:[function(require,module,exports){
+module["exports"] = [
+  "Aaron",
+  "Akira",
+  "Alberto",
+  "Alessandro",
+  "Alighieri",
+  "Amedeo",
+  "Amos",
+  "Anselmo",
+  "Antonino",
+  "Arcibaldo",
+  "Armando",
+  "Artes",
+  "Audenico",
+  "Ausonio",
+  "Bacchisio",
+  "Battista",
+  "Bernardo",
+  "Boris",
+  "Caio",
+  "Carlo",
+  "Cecco",
+  "Cirino",
+  "Cleros",
+  "Costantino",
+  "Damiano",
+  "Danny",
+  "Davide",
+  "Demian",
+  "Dimitri",
+  "Domingo",
+  "Dylan",
+  "Edilio",
+  "Egidio",
+  "Elio",
+  "Emanuel",
+  "Enrico",
+  "Ercole",
+  "Ermes",
+  "Ethan",
+  "Eusebio",
+  "Evangelista",
+  "Fabiano",
+  "Ferdinando",
+  "Fiorentino",
+  "Flavio",
+  "Fulvio",
+  "Gabriele",
+  "Gastone",
+  "Germano",
+  "Giacinto",
+  "Gianantonio",
+  "Gianleonardo",
+  "Gianmarco",
+  "Gianriccardo",
+  "Gioacchino",
+  "Giordano",
+  "Giuliano",
+  "Graziano",
+  "Guido",
+  "Harry",
+  "Iacopo",
+  "Ilario",
+  "Ione",
+  "Italo",
+  "Jack",
+  "Jari",
+  "Joey",
+  "Joseph",
+  "Kai",
+  "Kociss",
+  "Laerte",
+  "Lauro",
+  "Leonardo",
+  "Liborio",
+  "Lorenzo",
+  "Ludovico",
+  "Maggiore",
+  "Manuele",
+  "Mariano",
+  "Marvin",
+  "Matteo",
+  "Mauro",
+  "Michael",
+  "Mirco",
+  "Modesto",
+  "Muzio",
+  "Nabil",
+  "Nathan",
+  "Nick",
+  "Noah",
+  "Odino",
+  "Olo",
+  "Oreste",
+  "Osea",
+  "Pablo",
+  "Patrizio",
+  "Piererminio",
+  "Pierfrancesco",
+  "Piersilvio",
+  "Priamo",
+  "Quarto",
+  "Quirino",
+  "Radames",
+  "Raniero",
+  "Renato",
+  "Rocco",
+  "Romeo",
+  "Rosalino",
+  "Rudy",
+  "Sabatino",
+  "Samuel",
+  "Santo",
+  "Sebastian",
+  "Serse",
+  "Silvano",
+  "Sirio",
+  "Tancredi",
+  "Terzo",
+  "Timoteo",
+  "Tolomeo",
+  "Trevis",
+  "Ubaldo",
+  "Ulrico",
+  "Valdo",
+  "Neri",
+  "Vinicio",
+  "Walter",
+  "Xavier",
+  "Yago",
+  "Zaccaria",
+  "Abramo",
+  "Adriano",
+  "Alan",
+  "Albino",
+  "Alessio",
+  "Alighiero",
+  "Amerigo",
+  "Anastasio",
+  "Antimo",
+  "Antonio",
+  "Arduino",
+  "Aroldo",
+  "Arturo",
+  "Augusto",
+  "Avide",
+  "Baldassarre",
+  "Bettino",
+  "Bortolo",
+  "Caligola",
+  "Carmelo",
+  "Celeste",
+  "Ciro",
+  "Costanzo",
+  "Dante",
+  "Danthon",
+  "Davis",
+  "Demis",
+  "Dindo",
+  "Domiziano",
+  "Edipo",
+  "Egisto",
+  "Eliziario",
+  "Emidio",
+  "Enzo",
+  "Eriberto",
+  "Erminio",
+  "Ettore",
+  "Eustachio",
+  "Fabio",
+  "Fernando",
+  "Fiorenzo",
+  "Folco",
+  "Furio",
+  "Gaetano",
+  "Gavino",
+  "Gerlando",
+  "Giacobbe",
+  "Giancarlo",
+  "Gianmaria",
+  "Giobbe",
+  "Giorgio",
+  "Giulio",
+  "Gregorio",
+  "Hector",
+  "Ian",
+  "Ippolito",
+  "Ivano",
+  "Jacopo",
+  "Jarno",
+  "Joannes",
+  "Joshua",
+  "Karim",
+  "Kris",
+  "Lamberto",
+  "Lazzaro",
+  "Leone",
+  "Lino",
+  "Loris",
+  "Luigi",
+  "Manfredi",
+  "Marco",
+  "Marino",
+  "Marzio",
+  "Mattia",
+  "Max",
+  "Michele",
+  "Mirko",
+  "Moreno",
+  "Nadir",
+  "Nazzareno",
+  "Nestore",
+  "Nico",
+  "Noel",
+  "Odone",
+  "Omar",
+  "Orfeo",
+  "Osvaldo",
+  "Pacifico",
+  "Pericle",
+  "Pietro",
+  "Primo",
+  "Quasimodo",
+  "Radio",
+  "Raoul",
+  "Renzo",
+  "Rodolfo",
+  "Romolo",
+  "Rosolino",
+  "Rufo",
+  "Sabino",
+  "Sandro",
+  "Sasha",
+  "Secondo",
+  "Sesto",
+  "Silverio",
+  "Siro",
+  "Tazio",
+  "Teseo",
+  "Timothy",
+  "Tommaso",
+  "Tristano",
+  "Umberto",
+  "Ariel",
+  "Artemide",
+  "Assia",
+  "Azue",
+  "Benedetta",
+  "Bibiana",
+  "Brigitta",
+  "Carmela",
+  "Cassiopea",
+  "Cesidia",
+  "Cira",
+  "Clea",
+  "Cleopatra",
+  "Clodovea",
+  "Concetta",
+  "Cosetta",
+  "Cristyn",
+  "Damiana",
+  "Danuta",
+  "Deborah",
+  "Demi",
+  "Diamante",
+  "Diana",
+  "Donatella",
+  "Doriana",
+  "Edvige",
+  "Elda",
+  "Elga",
+  "Elsa",
+  "Emilia",
+  "Enrica",
+  "Erminia",
+  "Eufemia",
+  "Evita",
+  "Fatima",
+  "Felicia",
+  "Filomena",
+  "Flaviana",
+  "Fortunata",
+  "Gelsomina",
+  "Genziana",
+  "Giacinta",
+  "Gilda",
+  "Giovanna",
+  "Giulietta",
+  "Grazia",
+  "Guendalina",
+  "Helga",
+  "Ileana",
+  "Ingrid",
+  "Irene",
+  "Isabel",
+  "Isira",
+  "Ivonne",
+  "Jelena",
+  "Jole",
+  "Claudia",
+  "Kayla",
+  "Kristel",
+  "Laura",
+  "Lucia",
+  "Lia",
+  "Lidia",
+  "Lisa",
+  "Loredana",
+  "Loretta",
+  "Luce",
+  "Lucrezia",
+  "Luna",
+  "Maika",
+  "Marcella",
+  "Maria",
+  "Mariagiulia",
+  "Marianita",
+  "Mariapia",
+  "Marieva",
+  "Marina",
+  "Maristella",
+  "Maruska",
+  "Matilde",
+  "Mecren",
+  "Mercedes",
+  "Mietta",
+  "Miriana",
+  "Miriam",
+  "Monia",
+  "Morgana",
+  "Naomi",
+  "Nayade",
+  "Nicoletta",
+  "Ninfa",
+  "Noemi",
+  "Nunzia",
+  "Olimpia",
+  "Oretta",
+  "Ortensia",
+  "Penelope",
+  "Piccarda",
+  "Prisca",
+  "Rebecca",
+  "Rita",
+  "Rosalba",
+  "Rosaria",
+  "Rosita",
+  "Ruth",
+  "Samira",
+  "Sarita",
+  "Selvaggia",
+  "Shaira",
+  "Sibilla",
+  "Soriana",
+  "Thea",
+  "Tosca",
+  "Ursula",
+  "Vania",
+  "Vera",
+  "Vienna",
+  "Violante",
+  "Vitalba",
+  "Zelida"
+];
+
+},{}],602:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.name = require("./name");
+
+},{"./first_name":601,"./last_name":603,"./name":604,"./prefix":605,"./suffix":606}],603:[function(require,module,exports){
+module["exports"] = [
+  "Amato",
+  "Barbieri",
+  "Barone",
+  "Basile",
+  "Battaglia",
+  "Bellini",
+  "Benedetti",
+  "Bernardi",
+  "Bianc",
+  "Bianchi",
+  "Bruno",
+  "Caputo",
+  "Carbon",
+  "Caruso",
+  "Cattaneo",
+  "Colombo",
+  "Cont",
+  "Conte",
+  "Coppola",
+  "Costa",
+  "Costantin",
+  "D'amico",
+  "D'angelo",
+  "Damico",
+  "De Angelis",
+  "De luca",
+  "De rosa",
+  "De Santis",
+  "Donati",
+  "Esposito",
+  "Fabbri",
+  "Farin",
+  "Ferrara",
+  "Ferrari",
+  "Ferraro",
+  "Ferretti",
+  "Ferri",
+  "Fior",
+  "Fontana",
+  "Galli",
+  "Gallo",
+  "Gatti",
+  "Gentile",
+  "Giordano",
+  "Giuliani",
+  "Grassi",
+  "Grasso",
+  "Greco",
+  "Guerra",
+  "Leone",
+  "Lombardi",
+  "Lombardo",
+  "Longo",
+  "Mancini",
+  "Marchetti",
+  "Marian",
+  "Marini",
+  "Marino",
+  "Martinelli",
+  "Martini",
+  "Martino",
+  "Mazza",
+  "Messina",
+  "Milani",
+  "Montanari",
+  "Monti",
+  "Morelli",
+  "Moretti",
+  "Negri",
+  "Neri",
+  "Orlando",
+  "Pagano",
+  "Palmieri",
+  "Palumbo",
+  "Parisi",
+  "Pellegrini",
+  "Pellegrino",
+  "Piras",
+  "Ricci",
+  "Rinaldi",
+  "Riva",
+  "Rizzi",
+  "Rizzo",
+  "Romano",
+  "Ross",
+  "Rossetti",
+  "Ruggiero",
+  "Russo",
+  "Sala",
+  "Sanna",
+  "Santoro",
+  "Sartori",
+  "Serr",
+  "Silvestri",
+  "Sorrentino",
+  "Testa",
+  "Valentini",
+  "Villa",
+  "Vitale",
+  "Vitali"
+];
+
+},{}],604:[function(require,module,exports){
+module.exports=require(538)
+},{"/Users/a/dev/faker.js/lib/locales/ge/name/name.js":538}],605:[function(require,module,exports){
+module["exports"] = [
+  "Sig.",
+  "Dott.",
+  "Dr.",
+  "Ing."
+];
+
+},{}],606:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],607:[function(require,module,exports){
+module["exports"] = [
+  "+## ### ## ## ####",
+  "+## ## #######",
+  "+## ## ########",
+  "+## ### #######",
+  "+## ### ########",
+  "+## #### #######",
+  "+## #### ########",
+  "0## ### ####",
+  "+39 0## ### ###",
+  "3## ### ###",
+  "+39 3## ### ###"
+];
+
+},{}],608:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":607,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],609:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix}#{Name.first_name}#{city_suffix}",
+  "#{Name.first_name}#{city_suffix}",
+  "#{city_prefix}#{Name.last_name}#{city_suffix}",
+  "#{Name.last_name}#{city_suffix}"
+];
+
+},{}],610:[function(require,module,exports){
+module["exports"] = [
+  "北",
+  "東",
+  "西",
+  "南",
+  "新",
+  "湖",
+  "港"
+];
+
+},{}],611:[function(require,module,exports){
+module["exports"] = [
+  "市",
+  "区",
+  "町",
+  "村"
+];
+
+},{}],612:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.city = require("./city");
+address.street_name = require("./street_name");
+
+},{"./city":609,"./city_prefix":610,"./city_suffix":611,"./postcode":613,"./state":614,"./state_abbr":615,"./street_name":616}],613:[function(require,module,exports){
+module["exports"] = [
+  "###-####"
+];
+
+},{}],614:[function(require,module,exports){
+module["exports"] = [
+  "北海道",
+  "青森県",
+  "岩手県",
+  "宮城県",
+  "秋田県",
+  "山形県",
+  "福島県",
+  "茨城県",
+  "栃木県",
+  "群馬県",
+  "埼玉県",
+  "千葉県",
+  "東京都",
+  "神奈川県",
+  "新潟県",
+  "富山県",
+  "石川県",
+  "福井県",
+  "山梨県",
+  "長野県",
+  "岐阜県",
+  "静岡県",
+  "愛知県",
+  "三重県",
+  "滋賀県",
+  "京都府",
+  "大阪府",
+  "兵庫県",
+  "奈良県",
+  "和歌山県",
+  "鳥取県",
+  "島根県",
+  "岡山県",
+  "広島県",
+  "山口県",
+  "徳島県",
+  "香川県",
+  "愛媛県",
+  "高知県",
+  "福岡県",
+  "佐賀県",
+  "長崎県",
+  "熊本県",
+  "大分県",
+  "宮崎県",
+  "鹿児島県",
+  "沖縄県"
+];
+
+},{}],615:[function(require,module,exports){
+module["exports"] = [
+  "1",
+  "2",
+  "3",
+  "4",
+  "5",
+  "6",
+  "7",
+  "8",
+  "9",
+  "10",
+  "11",
+  "12",
+  "13",
+  "14",
+  "15",
+  "16",
+  "17",
+  "18",
+  "19",
+  "20",
+  "21",
+  "22",
+  "23",
+  "24",
+  "25",
+  "26",
+  "27",
+  "28",
+  "29",
+  "30",
+  "31",
+  "32",
+  "33",
+  "34",
+  "35",
+  "36",
+  "37",
+  "38",
+  "39",
+  "40",
+  "41",
+  "42",
+  "43",
+  "44",
+  "45",
+  "46",
+  "47"
+];
+
+},{}],616:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.first_name}#{street_suffix}",
+  "#{Name.last_name}#{street_suffix}"
+];
+
+},{}],617:[function(require,module,exports){
+module["exports"] = [
+  "090-####-####",
+  "080-####-####",
+  "070-####-####"
+];
+
+},{}],618:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":617,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],619:[function(require,module,exports){
+var ja = {};
+module['exports'] = ja;
+ja.title = "Japanese";
+ja.address = require("./address");
+ja.phone_number = require("./phone_number");
+ja.cell_phone = require("./cell_phone");
+ja.name = require("./name");
+
+},{"./address":612,"./cell_phone":618,"./name":621,"./phone_number":625}],620:[function(require,module,exports){
+module["exports"] = [
+  "大翔",
+  "蓮",
+  "颯太",
+  "樹",
+  "大和",
+  "陽翔",
+  "陸斗",
+  "太一",
+  "海翔",
+  "蒼空",
+  "翼",
+  "陽菜",
+  "結愛",
+  "結衣",
+  "杏",
+  "莉子",
+  "美羽",
+  "結菜",
+  "心愛",
+  "愛菜",
+  "美咲"
+];
+
+},{}],621:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.last_name = require("./last_name");
+name.first_name = require("./first_name");
+name.name = require("./name");
+
+},{"./first_name":620,"./last_name":622,"./name":623}],622:[function(require,module,exports){
+module["exports"] = [
+  "佐藤",
+  "鈴木",
+  "高橋",
+  "田中",
+  "渡辺",
+  "伊藤",
+  "山本",
+  "中村",
+  "小林",
+  "加藤",
+  "吉田",
+  "山田",
+  "佐々木",
+  "山口",
+  "斎藤",
+  "松本",
+  "井上",
+  "木村",
+  "林",
+  "清水"
+];
+
+},{}],623:[function(require,module,exports){
+module["exports"] = [
+  "#{last_name} #{first_name}"
+];
+
+},{}],624:[function(require,module,exports){
+module["exports"] = [
+  "0####-#-####",
+  "0###-##-####",
+  "0##-###-####",
+  "0#-####-####"
+];
+
+},{}],625:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":624,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],626:[function(require,module,exports){
+module["exports"] = [
+  "#{city_name}#{city_suffix}"
+];
+
+},{}],627:[function(require,module,exports){
+module["exports"] = [
+  "강릉",
+  "양양",
+  "인제",
+  "광주",
+  "구리",
+  "부천",
+  "밀양",
+  "통영",
+  "창원",
+  "거창",
+  "고성",
+  "양산",
+  "김천",
+  "구미",
+  "영주",
+  "광산",
+  "남",
+  "북",
+  "고창",
+  "군산",
+  "남원",
+  "동작",
+  "마포",
+  "송파",
+  "용산",
+  "부평",
+  "강화",
+  "수성"
+];
+
+},{}],628:[function(require,module,exports){
+module["exports"] = [
+  "구",
+  "시",
+  "군"
+];
+
+},{}],629:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city_suffix = require("./city_suffix");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street_root = require("./street_root");
+address.street_suffix = require("./street_suffix");
+address.street_name = require("./street_name");
+
+},{"./city":626,"./city_name":627,"./city_suffix":628,"./postcode":630,"./state":631,"./state_abbr":632,"./street_name":633,"./street_root":634,"./street_suffix":635}],630:[function(require,module,exports){
+module["exports"] = [
+  "###-###"
+];
+
+},{}],631:[function(require,module,exports){
+module["exports"] = [
+  "강원",
+  "경기",
+  "경남",
+  "경북",
+  "광주",
+  "대구",
+  "대전",
+  "부산",
+  "서울",
+  "울산",
+  "인천",
+  "전남",
+  "전북",
+  "제주",
+  "충남",
+  "충북",
+  "세종"
+];
+
+},{}],632:[function(require,module,exports){
+module.exports=require(631)
+},{"/Users/a/dev/faker.js/lib/locales/ko/address/state.js":631}],633:[function(require,module,exports){
+module["exports"] = [
+  "#{street_root}#{street_suffix}"
+];
+
+},{}],634:[function(require,module,exports){
+module["exports"] = [
+  "상계",
+  "화곡",
+  "신정",
+  "목",
+  "잠실",
+  "면목",
+  "주안",
+  "안양",
+  "중",
+  "정왕",
+  "구로",
+  "신월",
+  "연산",
+  "부평",
+  "창",
+  "만수",
+  "중계",
+  "검단",
+  "시흥",
+  "상도",
+  "방배",
+  "장유",
+  "상",
+  "광명",
+  "신길",
+  "행신",
+  "대명",
+  "동탄"
+];
+
+},{}],635:[function(require,module,exports){
+module["exports"] = [
+  "읍",
+  "면",
+  "동"
+];
+
+},{}],636:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.prefix = require("./prefix");
+company.name = require("./name");
+
+},{"./name":637,"./prefix":638,"./suffix":639}],637:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{Name.first_name}",
+  "#{Name.first_name} #{suffix}"
+];
+
+},{}],638:[function(require,module,exports){
+module["exports"] = [
+  "주식회사",
+  "한국"
+];
+
+},{}],639:[function(require,module,exports){
+module["exports"] = [
+  "연구소",
+  "게임즈",
+  "그룹",
+  "전자",
+  "물산",
+  "코리아"
+];
+
+},{}],640:[function(require,module,exports){
+var ko = {};
+module['exports'] = ko;
+ko.title = "Korean";
+ko.address = require("./address");
+ko.phone_number = require("./phone_number");
+ko.company = require("./company");
+ko.internet = require("./internet");
+ko.lorem = require("./lorem");
+ko.name = require("./name");
+
+},{"./address":629,"./company":636,"./internet":643,"./lorem":644,"./name":647,"./phone_number":651}],641:[function(require,module,exports){
+module["exports"] = [
+  "co.kr",
+  "com",
+  "biz",
+  "info",
+  "ne.kr",
+  "net",
+  "or.kr",
+  "org"
+];
+
+},{}],642:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.co.kr",
+  "hanmail.net",
+  "naver.com"
+];
+
+},{}],643:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":641,"./free_email":642,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],644:[function(require,module,exports){
+arguments[4][121][0].apply(exports,arguments)
+},{"./words":645,"/Users/a/dev/faker.js/lib/locales/de/lorem/index.js":121}],645:[function(require,module,exports){
+module["exports"] = [
+  "국가는",
+  "법률이",
+  "정하는",
+  "바에",
+  "의하여",
+  "재외국민을",
+  "보호할",
+  "의무를",
+  "진다.",
+  "모든",
+  "국민은",
+  "신체의",
+  "자유를",
+  "가진다.",
+  "국가는",
+  "전통문화의",
+  "계승·발전과",
+  "민족문화의",
+  "창달에",
+  "노력하여야",
+  "한다.",
+  "통신·방송의",
+  "시설기준과",
+  "신문의",
+  "기능을",
+  "보장하기",
+  "위하여",
+  "필요한",
+  "사항은",
+  "법률로",
+  "정한다.",
+  "헌법에",
+  "의하여",
+  "체결·공포된",
+  "조약과",
+  "일반적으로",
+  "승인된",
+  "국제법규는",
+  "국내법과",
+  "같은",
+  "효력을",
+  "가진다.",
+  "다만,",
+  "현행범인인",
+  "경우와",
+  "장기",
+  "3년",
+  "이상의",
+  "형에",
+  "해당하는",
+  "죄를",
+  "범하고",
+  "도피",
+  "또는",
+  "증거인멸의",
+  "염려가",
+  "있을",
+  "때에는",
+  "사후에",
+  "영장을",
+  "청구할",
+  "수",
+  "있다.",
+  "저작자·발명가·과학기술자와",
+  "예술가의",
+  "권리는",
+  "법률로써",
+  "보호한다.",
+  "형사피고인은",
+  "유죄의",
+  "판결이",
+  "확정될",
+  "때까지는",
+  "무죄로",
+  "추정된다.",
+  "모든",
+  "국민은",
+  "행위시의",
+  "법률에",
+  "의하여",
+  "범죄를",
+  "구성하지",
+  "아니하는",
+  "행위로",
+  "소추되지",
+  "아니하며,",
+  "동일한",
+  "범죄에",
+  "대하여",
+  "거듭",
+  "처벌받지",
+  "아니한다.",
+  "국가는",
+  "평생교육을",
+  "진흥하여야",
+  "한다.",
+  "모든",
+  "국민은",
+  "사생활의",
+  "비밀과",
+  "자유를",
+  "침해받지",
+  "아니한다.",
+  "의무교육은",
+  "무상으로",
+  "한다.",
+  "저작자·발명가·과학기술자와",
+  "예술가의",
+  "권리는",
+  "법률로써",
+  "보호한다.",
+  "국가는",
+  "모성의",
+  "보호를",
+  "위하여",
+  "노력하여야",
+  "한다.",
+  "헌법에",
+  "의하여",
+  "체결·공포된",
+  "조약과",
+  "일반적으로",
+  "승인된",
+  "국제법규는",
+  "국내법과",
+  "같은",
+  "효력을",
+  "가진다."
+];
+
+},{}],646:[function(require,module,exports){
+module["exports"] = [
+  "서연",
+  "민서",
+  "서현",
+  "지우",
+  "서윤",
+  "지민",
+  "수빈",
+  "하은",
+  "예은",
+  "윤서",
+  "민준",
+  "지후",
+  "지훈",
+  "준서",
+  "현우",
+  "예준",
+  "건우",
+  "현준",
+  "민재",
+  "우진",
+  "은주"
+];
+
+},{}],647:[function(require,module,exports){
+arguments[4][621][0].apply(exports,arguments)
+},{"./first_name":646,"./last_name":648,"./name":649,"/Users/a/dev/faker.js/lib/locales/ja/name/index.js":621}],648:[function(require,module,exports){
+module["exports"] = [
+  "김",
+  "이",
+  "박",
+  "최",
+  "정",
+  "강",
+  "조",
+  "윤",
+  "장",
+  "임",
+  "오",
+  "한",
+  "신",
+  "서",
+  "권",
+  "황",
+  "안",
+  "송",
+  "류",
+  "홍"
+];
+
+},{}],649:[function(require,module,exports){
+module.exports=require(623)
+},{"/Users/a/dev/faker.js/lib/locales/ja/name/name.js":623}],650:[function(require,module,exports){
+module["exports"] = [
+  "0#-#####-####",
+  "0##-###-####",
+  "0##-####-####"
+];
+
+},{}],651:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":650,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],652:[function(require,module,exports){
+module["exports"] = [
+  "#",
+  "##"
+];
+
+},{}],653:[function(require,module,exports){
+module["exports"] = [
+  "#{city_root}#{city_suffix}"
+];
+
+},{}],654:[function(require,module,exports){
+module["exports"] = [
+  "Fet",
+  "Gjes",
+  "Høy",
+  "Inn",
+  "Fager",
+  "Lille",
+  "Lo",
+  "Mal",
+  "Nord",
+  "Nær",
+  "Sand",
+  "Sme",
+  "Stav",
+  "Stor",
+  "Tand",
+  "Ut",
+  "Vest"
+];
+
+},{}],655:[function(require,module,exports){
+module["exports"] = [
+  "berg",
+  "borg",
+  "by",
+  "bø",
+  "dal",
+  "eid",
+  "fjell",
+  "fjord",
+  "foss",
+  "grunn",
+  "hamn",
+  "havn",
+  "helle",
+  "mark",
+  "nes",
+  "odden",
+  "sand",
+  "sjøen",
+  "stad",
+  "strand",
+  "strøm",
+  "sund",
+  "vik",
+  "vær",
+  "våg",
+  "ø",
+  "øy",
+  "ås"
+];
+
+},{}],656:[function(require,module,exports){
+module["exports"] = [
+  "sgate",
+  "svei",
+  "s Gate",
+  "s Vei",
+  "gata",
+  "veien"
+];
+
+},{}],657:[function(require,module,exports){
+module["exports"] = [
+  "Norge"
+];
+
+},{}],658:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_root = require("./city_root");
+address.city_suffix = require("./city_suffix");
+address.street_prefix = require("./street_prefix");
+address.street_root = require("./street_root");
+address.street_suffix = require("./street_suffix");
+address.common_street_suffix = require("./common_street_suffix");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":652,"./city":653,"./city_root":654,"./city_suffix":655,"./common_street_suffix":656,"./default_country":657,"./postcode":659,"./secondary_address":660,"./state":661,"./street_address":662,"./street_name":663,"./street_prefix":664,"./street_root":665,"./street_suffix":666}],659:[function(require,module,exports){
+module["exports"] = [
+  "####",
+  "####",
+  "####",
+  "0###"
+];
+
+},{}],660:[function(require,module,exports){
+module["exports"] = [
+  "Leil. ###",
+  "Oppgang A",
+  "Oppgang B"
+];
+
+},{}],661:[function(require,module,exports){
+module["exports"] = [
+  ""
+];
+
+},{}],662:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],663:[function(require,module,exports){
+module["exports"] = [
+  "#{street_root}#{street_suffix}",
+  "#{street_prefix} #{street_root}#{street_suffix}",
+  "#{Name.first_name}#{common_street_suffix}",
+  "#{Name.last_name}#{common_street_suffix}"
+];
+
+},{}],664:[function(require,module,exports){
+module["exports"] = [
+  "Øvre",
+  "Nedre",
+  "Søndre",
+  "Gamle",
+  "Østre",
+  "Vestre"
+];
+
+},{}],665:[function(require,module,exports){
+module["exports"] = [
+  "Eike",
+  "Bjørke",
+  "Gran",
+  "Vass",
+  "Furu",
+  "Litj",
+  "Lille",
+  "Høy",
+  "Fosse",
+  "Elve",
+  "Ku",
+  "Konvall",
+  "Soldugg",
+  "Hestemyr",
+  "Granitt",
+  "Hegge",
+  "Rogne",
+  "Fiol",
+  "Sol",
+  "Ting",
+  "Malm",
+  "Klokker",
+  "Preste",
+  "Dam",
+  "Geiterygg",
+  "Bekke",
+  "Berg",
+  "Kirke",
+  "Kors",
+  "Bru",
+  "Blåveis",
+  "Torg",
+  "Sjø"
+];
+
+},{}],666:[function(require,module,exports){
+module["exports"] = [
+  "alléen",
+  "bakken",
+  "berget",
+  "bråten",
+  "eggen",
+  "engen",
+  "ekra",
+  "faret",
+  "flata",
+  "gata",
+  "gjerdet",
+  "grenda",
+  "gropa",
+  "hagen",
+  "haugen",
+  "havna",
+  "holtet",
+  "høgda",
+  "jordet",
+  "kollen",
+  "kroken",
+  "lia",
+  "lunden",
+  "lyngen",
+  "løkka",
+  "marka",
+  "moen",
+  "myra",
+  "plassen",
+  "ringen",
+  "roa",
+  "røa",
+  "skogen",
+  "skrenten",
+  "spranget",
+  "stien",
+  "stranda",
+  "stubben",
+  "stykket",
+  "svingen",
+  "tjernet",
+  "toppen",
+  "tunet",
+  "vollen",
+  "vika",
+  "åsen"
+];
+
+},{}],667:[function(require,module,exports){
+arguments[4][166][0].apply(exports,arguments)
+},{"./name":668,"./suffix":669,"/Users/a/dev/faker.js/lib/locales/de_CH/company/index.js":166}],668:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name}-#{Name.last_name}",
+  "#{Name.last_name}, #{Name.last_name} og #{Name.last_name}"
+];
+
+},{}],669:[function(require,module,exports){
+module["exports"] = [
+  "Gruppen",
+  "AS",
+  "ASA",
+  "BA",
+  "RFH",
+  "og Sønner"
+];
+
+},{}],670:[function(require,module,exports){
+var nb_NO = {};
+module['exports'] = nb_NO;
+nb_NO.title = "Norwegian";
+nb_NO.address = require("./address");
+nb_NO.company = require("./company");
+nb_NO.internet = require("./internet");
+nb_NO.name = require("./name");
+nb_NO.phone_number = require("./phone_number");
+
+},{"./address":658,"./company":667,"./internet":672,"./name":675,"./phone_number":682}],671:[function(require,module,exports){
+module["exports"] = [
+  "no",
+  "com",
+  "net",
+  "org"
+];
+
+},{}],672:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":671,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],673:[function(require,module,exports){
+module["exports"] = [
+  "Emma",
+  "Sara",
+  "Thea",
+  "Ida",
+  "Julie",
+  "Nora",
+  "Emilie",
+  "Ingrid",
+  "Hanna",
+  "Maria",
+  "Sofie",
+  "Anna",
+  "Malin",
+  "Amalie",
+  "Vilde",
+  "Frida",
+  "Andrea",
+  "Tuva",
+  "Victoria",
+  "Mia",
+  "Karoline",
+  "Mathilde",
+  "Martine",
+  "Linnea",
+  "Marte",
+  "Hedda",
+  "Marie",
+  "Helene",
+  "Silje",
+  "Leah",
+  "Maja",
+  "Elise",
+  "Oda",
+  "Kristine",
+  "Aurora",
+  "Kaja",
+  "Camilla",
+  "Mari",
+  "Maren",
+  "Mina",
+  "Selma",
+  "Jenny",
+  "Celine",
+  "Eline",
+  "Sunniva",
+  "Natalie",
+  "Tiril",
+  "Synne",
+  "Sandra",
+  "Madeleine"
+];
+
+},{}],674:[function(require,module,exports){
+module["exports"] = [
+  "Emma",
+  "Sara",
+  "Thea",
+  "Ida",
+  "Julie",
+  "Nora",
+  "Emilie",
+  "Ingrid",
+  "Hanna",
+  "Maria",
+  "Sofie",
+  "Anna",
+  "Malin",
+  "Amalie",
+  "Vilde",
+  "Frida",
+  "Andrea",
+  "Tuva",
+  "Victoria",
+  "Mia",
+  "Karoline",
+  "Mathilde",
+  "Martine",
+  "Linnea",
+  "Marte",
+  "Hedda",
+  "Marie",
+  "Helene",
+  "Silje",
+  "Leah",
+  "Maja",
+  "Elise",
+  "Oda",
+  "Kristine",
+  "Aurora",
+  "Kaja",
+  "Camilla",
+  "Mari",
+  "Maren",
+  "Mina",
+  "Selma",
+  "Jenny",
+  "Celine",
+  "Eline",
+  "Sunniva",
+  "Natalie",
+  "Tiril",
+  "Synne",
+  "Sandra",
+  "Madeleine",
+  "Markus",
+  "Mathias",
+  "Kristian",
+  "Jonas",
+  "Andreas",
+  "Alexander",
+  "Martin",
+  "Sander",
+  "Daniel",
+  "Magnus",
+  "Henrik",
+  "Tobias",
+  "Kristoffer",
+  "Emil",
+  "Adrian",
+  "Sebastian",
+  "Marius",
+  "Elias",
+  "Fredrik",
+  "Thomas",
+  "Sondre",
+  "Benjamin",
+  "Jakob",
+  "Oliver",
+  "Lucas",
+  "Oskar",
+  "Nikolai",
+  "Filip",
+  "Mats",
+  "William",
+  "Erik",
+  "Simen",
+  "Ole",
+  "Eirik",
+  "Isak",
+  "Kasper",
+  "Noah",
+  "Lars",
+  "Joakim",
+  "Johannes",
+  "Håkon",
+  "Sindre",
+  "Jørgen",
+  "Herman",
+  "Anders",
+  "Jonathan",
+  "Even",
+  "Theodor",
+  "Mikkel",
+  "Aksel"
+];
+
+},{}],675:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.feminine_name = require("./feminine_name");
+name.masculine_name = require("./masculine_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.name = require("./name");
+
+},{"./feminine_name":673,"./first_name":674,"./last_name":676,"./masculine_name":677,"./name":678,"./prefix":679,"./suffix":680}],676:[function(require,module,exports){
+module["exports"] = [
+  "Johansen",
+  "Hansen",
+  "Andersen",
+  "Kristiansen",
+  "Larsen",
+  "Olsen",
+  "Solberg",
+  "Andresen",
+  "Pedersen",
+  "Nilsen",
+  "Berg",
+  "Halvorsen",
+  "Karlsen",
+  "Svendsen",
+  "Jensen",
+  "Haugen",
+  "Martinsen",
+  "Eriksen",
+  "Sørensen",
+  "Johnsen",
+  "Myhrer",
+  "Johannessen",
+  "Nielsen",
+  "Hagen",
+  "Pettersen",
+  "Bakke",
+  "Skuterud",
+  "Løken",
+  "Gundersen",
+  "Strand",
+  "Jørgensen",
+  "Kvarme",
+  "Røed",
+  "Sæther",
+  "Stensrud",
+  "Moe",
+  "Kristoffersen",
+  "Jakobsen",
+  "Holm",
+  "Aas",
+  "Lie",
+  "Moen",
+  "Andreassen",
+  "Vedvik",
+  "Nguyen",
+  "Jacobsen",
+  "Torgersen",
+  "Ruud",
+  "Krogh",
+  "Christiansen",
+  "Bjerke",
+  "Aalerud",
+  "Borge",
+  "Sørlie",
+  "Berge",
+  "Østli",
+  "Ødegård",
+  "Torp",
+  "Henriksen",
+  "Haukelidsæter",
+  "Fjeld",
+  "Danielsen",
+  "Aasen",
+  "Fredriksen",
+  "Dahl",
+  "Berntsen",
+  "Arnesen",
+  "Wold",
+  "Thoresen",
+  "Solheim",
+  "Skoglund",
+  "Bakken",
+  "Amundsen",
+  "Solli",
+  "Smogeli",
+  "Kristensen",
+  "Glosli",
+  "Fossum",
+  "Evensen",
+  "Eide",
+  "Carlsen",
+  "Østby",
+  "Vegge",
+  "Tangen",
+  "Smedsrud",
+  "Olstad",
+  "Lunde",
+  "Kleven",
+  "Huseby",
+  "Bjørnstad",
+  "Ryan",
+  "Rasmussen",
+  "Nygård",
+  "Nordskaug",
+  "Nordby",
+  "Mathisen",
+  "Hopland",
+  "Gran",
+  "Finstad",
+  "Edvardsen"
+];
+
+},{}],677:[function(require,module,exports){
+module["exports"] = [
+  "Markus",
+  "Mathias",
+  "Kristian",
+  "Jonas",
+  "Andreas",
+  "Alexander",
+  "Martin",
+  "Sander",
+  "Daniel",
+  "Magnus",
+  "Henrik",
+  "Tobias",
+  "Kristoffer",
+  "Emil",
+  "Adrian",
+  "Sebastian",
+  "Marius",
+  "Elias",
+  "Fredrik",
+  "Thomas",
+  "Sondre",
+  "Benjamin",
+  "Jakob",
+  "Oliver",
+  "Lucas",
+  "Oskar",
+  "Nikolai",
+  "Filip",
+  "Mats",
+  "William",
+  "Erik",
+  "Simen",
+  "Ole",
+  "Eirik",
+  "Isak",
+  "Kasper",
+  "Noah",
+  "Lars",
+  "Joakim",
+  "Johannes",
+  "Håkon",
+  "Sindre",
+  "Jørgen",
+  "Herman",
+  "Anders",
+  "Jonathan",
+  "Even",
+  "Theodor",
+  "Mikkel",
+  "Aksel"
+];
+
+},{}],678:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name}",
+  "#{first_name} #{last_name} #{suffix}",
+  "#{feminine_name} #{feminine_name} #{last_name}",
+  "#{masculine_name} #{masculine_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name}"
+];
+
+},{}],679:[function(require,module,exports){
+module["exports"] = [
+  "Dr.",
+  "Prof."
+];
+
+},{}],680:[function(require,module,exports){
+module["exports"] = [
+  "Jr.",
+  "Sr.",
+  "I",
+  "II",
+  "III",
+  "IV",
+  "V"
+];
+
+},{}],681:[function(require,module,exports){
+module["exports"] = [
+  "########",
+  "## ## ## ##",
+  "### ## ###",
+  "+47 ## ## ## ##"
+];
+
+},{}],682:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":681,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],683:[function(require,module,exports){
+module["exports"] = [
+  "Bhaktapur",
+  "Biratnagar",
+  "Birendranagar",
+  "Birgunj",
+  "Butwal",
+  "Damak",
+  "Dharan",
+  "Gaur",
+  "Gorkha",
+  "Hetauda",
+  "Itahari",
+  "Janakpur",
+  "Kathmandu",
+  "Lahan",
+  "Nepalgunj",
+  "Pokhara"
+];
+
+},{}],684:[function(require,module,exports){
+module["exports"] = [
+  "Nepal"
+];
+
+},{}],685:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.city = require("./city");
+address.default_country = require("./default_country");
+
+},{"./city":683,"./default_country":684,"./postcode":686,"./state":687}],686:[function(require,module,exports){
+module["exports"] = [
+  0
+];
+
+},{}],687:[function(require,module,exports){
+module["exports"] = [
+  "Baglung",
+  "Banke",
+  "Bara",
+  "Bardiya",
+  "Bhaktapur",
+  "Bhojupu",
+  "Chitwan",
+  "Dailekh",
+  "Dang",
+  "Dhading",
+  "Dhankuta",
+  "Dhanusa",
+  "Dolakha",
+  "Dolpha",
+  "Gorkha",
+  "Gulmi",
+  "Humla",
+  "Ilam",
+  "Jajarkot",
+  "Jhapa",
+  "Jumla",
+  "Kabhrepalanchok",
+  "Kalikot",
+  "Kapilvastu",
+  "Kaski",
+  "Kathmandu",
+  "Lalitpur",
+  "Lamjung",
+  "Manang",
+  "Mohottari",
+  "Morang",
+  "Mugu",
+  "Mustang",
+  "Myagdi",
+  "Nawalparasi",
+  "Nuwakot",
+  "Palpa",
+  "Parbat",
+  "Parsa",
+  "Ramechhap",
+  "Rauswa",
+  "Rautahat",
+  "Rolpa",
+  "Rupandehi",
+  "Sankhuwasabha",
+  "Sarlahi",
+  "Sindhuli",
+  "Sindhupalchok",
+  "Sunsari",
+  "Surket",
+  "Syangja",
+  "Tanahu",
+  "Terhathum"
+];
+
+},{}],688:[function(require,module,exports){
+arguments[4][279][0].apply(exports,arguments)
+},{"./suffix":689,"/Users/a/dev/faker.js/lib/locales/en_AU/company/index.js":279}],689:[function(require,module,exports){
+module["exports"] = [
+  "Pvt Ltd",
+  "Group",
+  "Ltd",
+  "Limited"
+];
+
+},{}],690:[function(require,module,exports){
+var nep = {};
+module['exports'] = nep;
+nep.title = "Nepalese";
+nep.name = require("./name");
+nep.address = require("./address");
+nep.internet = require("./internet");
+nep.company = require("./company");
+nep.phone_number = require("./phone_number");
+
+},{"./address":685,"./company":688,"./internet":693,"./name":695,"./phone_number":698}],691:[function(require,module,exports){
+module["exports"] = [
+  "np",
+  "com",
+  "info",
+  "net",
+  "org"
+];
+
+},{}],692:[function(require,module,exports){
+module["exports"] = [
+  "worldlink.com.np",
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com"
+];
+
+},{}],693:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":691,"./free_email":692,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],694:[function(require,module,exports){
+module["exports"] = [
+  "Aarav",
+  "Ajita",
+  "Amit",
+  "Amita",
+  "Amrit",
+  "Arijit",
+  "Ashmi",
+  "Asmita",
+  "Bibek",
+  "Bijay",
+  "Bikash",
+  "Bina",
+  "Bishal",
+  "Bishnu",
+  "Buddha",
+  "Deepika",
+  "Dipendra",
+  "Gagan",
+  "Ganesh",
+  "Khem",
+  "Krishna",
+  "Laxmi",
+  "Manisha",
+  "Nabin",
+  "Nikita",
+  "Niraj",
+  "Nischal",
+  "Padam",
+  "Pooja",
+  "Prabin",
+  "Prakash",
+  "Prashant",
+  "Prem",
+  "Purna",
+  "Rajendra",
+  "Rajina",
+  "Raju",
+  "Rakesh",
+  "Ranjan",
+  "Ratna",
+  "Sagar",
+  "Sandeep",
+  "Sanjay",
+  "Santosh",
+  "Sarita",
+  "Shilpa",
+  "Shirisha",
+  "Shristi",
+  "Siddhartha",
+  "Subash",
+  "Sumeet",
+  "Sunita",
+  "Suraj",
+  "Susan",
+  "Sushant"
+];
+
+},{}],695:[function(require,module,exports){
+arguments[4][285][0].apply(exports,arguments)
+},{"./first_name":694,"./last_name":696,"/Users/a/dev/faker.js/lib/locales/en_AU/name/index.js":285}],696:[function(require,module,exports){
+module["exports"] = [
+  "Adhikari",
+  "Aryal",
+  "Baral",
+  "Basnet",
+  "Bastola",
+  "Basynat",
+  "Bhandari",
+  "Bhattarai",
+  "Chettri",
+  "Devkota",
+  "Dhakal",
+  "Dongol",
+  "Ghale",
+  "Gurung",
+  "Gyawali",
+  "Hamal",
+  "Jung",
+  "KC",
+  "Kafle",
+  "Karki",
+  "Khadka",
+  "Koirala",
+  "Lama",
+  "Limbu",
+  "Magar",
+  "Maharjan",
+  "Niroula",
+  "Pandey",
+  "Pradhan",
+  "Rana",
+  "Raut",
+  "Sai",
+  "Shai",
+  "Shakya",
+  "Sherpa",
+  "Shrestha",
+  "Subedi",
+  "Tamang",
+  "Thapa"
+];
+
+},{}],697:[function(require,module,exports){
+module["exports"] = [
+  "##-#######",
+  "+977-#-#######",
+  "+977########"
+];
+
+},{}],698:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":697,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],699:[function(require,module,exports){
+module["exports"] = [
+  "#",
+  "##",
+  "###",
+  "###a",
+  "###b",
+  "###c",
+  "### I",
+  "### II",
+  "### III"
+];
+
+},{}],700:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix}#{city_suffix}",
+  "#{city_prefix}"
+];
+
+},{}],701:[function(require,module,exports){
+module["exports"] = [
+  "Aagte",
+  "Aal",
+  "Aalden",
+  "Aals",
+  "Aalst",
+  "Aalsum",
+  "Aanschot",
+  "Aarden",
+  "Aarle",
+  "Abbe",
+  "Abbegea",
+  "Abben",
+  "Abbestede",
+  "Abcoven",
+  "Absdale",
+  "Abts",
+  "Acht",
+  "Achter",
+  "Achterste",
+  "Achtmaal",
+  "Achttien",
+  "Acquoy",
+  "Aduard",
+  "Aduarder",
+  "Aekinga",
+  "Aerde",
+  "Aerden",
+  "Aerdt",
+  "Afferden",
+  "Aijen",
+  "Akersloot",
+  "Akker",
+  "Akkerput",
+  "Akkrun",
+  "Akmarijp",
+  "Aldeboarn",
+  "Aldegae",
+  "Aldtsjerk",
+  "Aling",
+  "Alkmaar",
+  "Allersma",
+  "Allinga",
+  "Almere",
+  "Alphen",
+  "Altena",
+  "Alteveer",
+  "Alting",
+  "Altweert",
+  "Alverna",
+  "Ameide",
+  "Amerika",
+  "Amerongen",
+  "Ammerstol",
+  "Ams",
+  "Amster",
+  "Andel",
+  "Angeren",
+  "Anholt",
+  "Anjum",
+  "Anke",
+  "Ankum",
+  "Anna",
+  "Annendaal",
+  "Anneville",
+  "Anreep",
+  "Ansen",
+  "Apeldoorn",
+  "Apen",
+  "Appel",
+  "Appen",
+  "Arcen",
+  "Archem",
+  "Arendnest",
+  "Arensge",
+  "Arkens",
+  "Armweide",
+  "Arnhem",
+  "Arnoud",
+  "Arriën",
+  "Arriër",
+  "Arum",
+  "Arwerd",
+  "Asch",
+  "Asenray",
+  "Asperen",
+  "Asschat",
+  "Assel",
+  "Asselt",
+  "Assen",
+  "Asten",
+  "Atze",
+  "Augs",
+  "Averlo",
+  "Avest",
+  "Azelo",
+  "Azewijn",
+  "Ba",
+  "Baaium",
+  "Baak",
+  "Baaks",
+  "Baal",
+  "Baamsum",
+  "Baan",
+  "Baard",
+  "Baarder",
+  "Baarle",
+  "Baarlo",
+  "Baars",
+  "Baarschot",
+  "Baexem",
+  "Baflo",
+  "Bahr",
+  "Bakel",
+  "Bakelse",
+  "Bakertand",
+  "Bakke",
+  "Bakkerom",
+  "Balgoij",
+  "Balinge",
+  "Ballast",
+  "Balleman",
+  "Ballum",
+  "Balma",
+  "Bane",
+  "Bankert",
+  "Bantega",
+  "Bare",
+  "Bargebek",
+  "Barlage",
+  "Barlaque",
+  "Barlo",
+  "Barnflair",
+  "Barrier",
+  "Bars",
+  "Basse",
+  "Basser",
+  "Baten",
+  "Bath",
+  "Bathmen",
+  "Bavinkel",
+  "Bazuin",
+  "Bears",
+  "Beckum",
+  "Bedaf",
+  "Bedum",
+  "Beekb",
+  "Beekkant",
+  "Beemdkant",
+  "Beemte",
+  "Beertsen",
+  "Beerze",
+  "Beerzer",
+  "Beesd",
+  "Beetgum",
+  "Beetgumer",
+  "Behelp",
+  "Beilen",
+  "Beinum",
+  "Beke",
+  "Beldert",
+  "Belgen",
+  "Belgeren",
+  "Belt",
+  "Belvert",
+  "Bemmel",
+  "Bemmer",
+  "Benderse",
+  "Beneden",
+  "Benne",
+  "Bennekom",
+  "Bent",
+  "Bente",
+  "Benthem",
+  "Berg",
+  "Bergakker",
+  "Bergen",
+  "Bergens",
+  "Bergerden",
+  "Bergharen",
+  "Berghem",
+  "Berghum",
+  "Bergstoep",
+  "Berik",
+  "Beringe",
+  "Berk",
+  "Berke",
+  "Berken",
+  "Berkt",
+  "Berlicum",
+  "Bern",
+  "Besse",
+  "Besthmen",
+  "Beswerd",
+  "Bethlehem",
+  "Beugt",
+  "Beuke",
+  "Beun",
+  "Beusb",
+  "Beusichem",
+  "Bever",
+  "Bidding",
+  "Biert",
+  "Bierum",
+  "Biessum",
+  "Biest",
+  "Biezen",
+  "Bigge",
+  "Bijster",
+  "Bijsteren",
+  "Billing",
+  "Bilt",
+  "Bingerden",
+  "Bisselt",
+  "Bissen",
+  "Blaker",
+  "Blaricum",
+  "Blauhûs",
+  "Blauw",
+  "Blauwe",
+  "Blauwen",
+  "Bleijen",
+  "Bleijs",
+  "Blekslage",
+  "Blenkert",
+  "Blerick",
+  "Blessum",
+  "Blije",
+  "Blijham",
+  "Blijnse",
+  "Blok",
+  "Blokken",
+  "Blokum",
+  "Boazum",
+  "Boberden",
+  "Bocholtz",
+  "Bocht",
+  "Boeiink",
+  "Boek",
+  "Boekel",
+  "Boekelo",
+  "Boekelte",
+  "Boekend",
+  "Boer",
+  "Boerakker",
+  "Boerelaan",
+  "Boeren",
+  "Boerengat",
+  "Boerenhol",
+  "Boerhaar",
+  "Boijl",
+  "Boks",
+  "Boksum",
+  "Bokt",
+  "Bollinga",
+  "Bols",
+  "Bolst",
+  "Bolt",
+  "Bommerig",
+  "Bong",
+  "Bonkwert",
+  "Bonner",
+  "Bonrepas",
+  "Bontebok",
+  "Boomen",
+  "Boord",
+  "Borger",
+  "Borgharen",
+  "Borgs",
+  "Borgweg",
+  "Borkel",
+  "Borkeld",
+  "Born",
+  "Borne",
+  "Borneo",
+  "Bornwird",
+  "Bos",
+  "Boschkens",
+  "Bosje",
+  "Bosjes",
+  "Boskamp",
+  "Boskant",
+  "Boskoop",
+  "Boslust",
+  "Bosschen",
+  "Bosscher",
+  "Bosven",
+  "Boter",
+  "Botshoofd",
+  "Boukoul",
+  "Bourtange",
+  "Boven",
+  "Bovenstad",
+  "Boxtel",
+  "Braak",
+  "Braamt",
+  "Brabander",
+  "Brakel",
+  "Brand",
+  "Brande",
+  "Brandt",
+  "Brantgum",
+  "Breda",
+  "Brede",
+  "Bree",
+  "Breede",
+  "Breedeweg",
+  "Breehees",
+  "Breezand",
+  "Brem",
+  "Breskens",
+  "Breugel",
+  "Breukele",
+  "Breyvin",
+  "Brielle",
+  "Brigdamme",
+  "Brij",
+  "Brillerij",
+  "Briltil",
+  "Brinkmans",
+  "Britsum",
+  "Britswert",
+  "Broek",
+  "Broekens",
+  "Broekkant",
+  "Brommelen",
+  "Brons",
+  "Bruchem",
+  "Bruggen",
+  "Brugger",
+  "Bruil",
+  "Bruinisse",
+  "Bruister",
+  "Brumhold",
+  "Brunssum",
+  "Brunsting",
+  "Bruntinge",
+  "Buchten",
+  "Buggenum",
+  "Buis",
+  "Buiten",
+  "Bulkenaar",
+  "Bult",
+  "Bultinge",
+  "Bunne",
+  "Bunnik",
+  "Burdaard",
+  "Burger",
+  "Burgh",
+  "Burgt",
+  "Burgum",
+  "Burgwerd",
+  "Burstum",
+  "Burum",
+  "Bussel",
+  "Busselte",
+  "Busser",
+  "Buttinge",
+  "Buurtje",
+  "Cadier",
+  "Cadzand",
+  "Calfven",
+  "Calslagen",
+  "Caluna",
+  "Camerig",
+  "Capelle",
+  "Carnisse",
+  "Cartils",
+  "Castelré",
+  "Castenray",
+  "Castert",
+  "Castricum",
+  "Catsop",
+  "Chaam",
+  "Clinge",
+  "Coevorden",
+  "Colmont",
+  "Cornjum",
+  "Cornwerd",
+  "Cottessen",
+  "Crapoel",
+  "Crau",
+  "Crix",
+  "Crob",
+  "Croy",
+  "Culemborg",
+  "Daarle",
+  "Dale",
+  "Dalem",
+  "Dalen",
+  "Daler",
+  "Dalerend",
+  "Dalerpeel",
+  "Dallinge",
+  "Damwâld",
+  "Daniken",
+  "Darp",
+  "Dassemus",
+  "Dearsum",
+  "Dedgum",
+  "Deelen",
+  "Deelse",
+  "Deelshurk",
+  "Deense",
+  "Deest",
+  "Deil",
+  "Deinum",
+  "Dekes",
+  "Dekkers",
+  "Del",
+  "Delden",
+  "Delf",
+  "Delft",
+  "Dellen",
+  "Delwijnen",
+  "Demen",
+  "Den ",
+  "Deursen",
+  "Deuteren",
+  "Deventer",
+  "Dieden",
+  "Diemen",
+  "Diepen",
+  "Diependal",
+  "Diepswal",
+  "Diermen",
+  "Dieskant",
+  "Dieteren",
+  "Diever",
+  "Dijken",
+  "Dijker",
+  "Dijkster",
+  "Dijkwel",
+  "Dintelsas",
+  "Dinther",
+  "Dintherse",
+  "Diphoorn",
+  "Dirkshorn",
+  "Dis",
+  "Diunt",
+  "Doenrade",
+  "Does",
+  "Doeveren",
+  "Doezum",
+  "Doijum",
+  "Dokkum",
+  "Doldersum",
+  "Dom",
+  "Dommelen",
+  "Donderen",
+  "Dongen",
+  "Donia",
+  "Doniaga",
+  "Donzel",
+  "Dood",
+  "Doodstil",
+  "Doon",
+  "Doorn",
+  "Doornen",
+  "Doornik",
+  "Doorning",
+  "Doorwerth",
+  "Doosje",
+  "Dorkwerd",
+  "Dorst",
+  "Dorther",
+  "Douverge",
+  "Douwen",
+  "Draai",
+  "Drachten",
+  "Dreischor",
+  "Drie",
+  "Drieboere",
+  "Driehuis",
+  "Driene",
+  "Dries",
+  "Driewegen",
+  "Driezum",
+  "Drieën",
+  "Drijber",
+  "Drimmelen",
+  "Drogeham",
+  "Drogt",
+  "Dronrijp",
+  "Dronten",
+  "Druif",
+  "Drunen",
+  "Druten",
+  "Drylts",
+  "Duifhuis",
+  "Duinen",
+  "Duiven",
+  "Duizel",
+  "Duizend",
+  "Dulder",
+  "Dunsborg",
+  "Dussen",
+  "Duur",
+  "Duurends",
+  "Eagum",
+  "Earnewâld",
+  "Easterein",
+  "Eastermar",
+  "Easthim",
+  "Echt",
+  "Echten",
+  "Echtener",
+  "Echter",
+  "Eder",
+  "Eede",
+  "Eefsele",
+  "Eekt",
+  "Eekwerd",
+  "Eelde",
+  "Eelen",
+  "Eems",
+  "Eemster",
+  "Eemten",
+  "Een",
+  "Eenigen",
+  "Eenrum",
+  "Eenum",
+  "Eerde",
+  "Eersel",
+  "Eerste",
+  "Ees",
+  "Eesterga",
+  "Effen",
+  "Egchel",
+  "Egede",
+  "Egmond",
+  "Egypte",
+  "Eikelen",
+  "Eikelhof",
+  "Eimeren",
+  "Eindewege",
+  "Eindje",
+  "Ekamp",
+  "Elde",
+  "Elden",
+  "Eldik",
+  "Eldrik",
+  "Elft",
+  "Elkerzee",
+  "Ellemeet",
+  "Eller",
+  "Ellerhei",
+  "Ellersing",
+  "Elsen",
+  "Elshof",
+  "Elspeet",
+  "Elst",
+  "Elsteren",
+  "Elzet",
+  "Emmeloord",
+  "Emmen",
+  "Empel",
+  "Endepoel",
+  "Eng",
+  "Enge",
+  "Engel",
+  "Engelbert",
+  "Engelen",
+  "Engelum",
+  "Englum",
+  "Engwegen",
+  "Engwierum",
+  "Enk",
+  "Enschedé",
+  "Enspijk",
+  "Enumatil",
+  "Enzelens",
+  "Eper",
+  "Eppen",
+  "Erichem",
+  "Erlecom",
+  "Ermelo",
+  "Ermer",
+  "Escharen",
+  "Eschoten",
+  "Espelo",
+  "Essen",
+  "Etenaken",
+  "Etzenrade",
+  "Eursing",
+  "Eursinge",
+  "Euverem",
+  "Ever",
+  "Everd",
+  "Everlo",
+  "Everse",
+  "Ewer",
+  "Ewinkel",
+  "Exmorra",
+  "Eygels",
+  "Eyser",
+  "Ezinge",
+  "Ezuma",
+  "Faan",
+  "Falom",
+  "Farmsum",
+  "Fatum",
+  "Feerwerd",
+  "Fel",
+  "Ferwert",
+  "Fiemel",
+  "Fijfhûs",
+  "Finke",
+  "Finkum",
+  "Flieren",
+  "Flânsum",
+  "Fokkers",
+  "Follega",
+  "Folsgeare",
+  "Formerum",
+  "Fort",
+  "Fortmond",
+  "Foudgum",
+  "Fraamklap",
+  "Frankhuis",
+  "Frankrijk",
+  "Fransum",
+  "Friens",
+  "Frytum",
+  "Fûns",
+  "Gaag",
+  "Gaanderen",
+  "Gaar",
+  "Gaast",
+  "Gaasten",
+  "Gaastmar",
+  "Gaete",
+  "Gagel",
+  "Galder",
+  "Gameren",
+  "Gammelke",
+  "Ganzert",
+  "Gapinge",
+  "Garminge",
+  "Garnwerd",
+  "Garre",
+  "Garrels",
+  "Garst",
+  "Garyp",
+  "Gassel",
+  "Gasthuis",
+  "Gawege",
+  "Gebergte",
+  "Geefs",
+  "Geen",
+  "Geer",
+  "Gees",
+  "Geeuwen",
+  "Geffen",
+  "Gelders",
+  "Gelderse",
+  "Geleen",
+  "Gelkenes",
+  "Gellicum",
+  "Gemaal",
+  "Gement",
+  "Gemert",
+  "Gemonde",
+  "Gendt",
+  "Geneijgen",
+  "Genen",
+  "Gening",
+  "Genne",
+  "Gennep",
+  "Genooi",
+  "Gerheggen",
+  "Gerner",
+  "Gersloot",
+  "Gerven",
+  "Gerwen",
+  "Geulhem",
+  "Gever",
+  "Geverik",
+  "Gewande",
+  "Giers",
+  "Giessen",
+  "Gietelo",
+  "Giethmen",
+  "Giethoorn",
+  "Gijbe",
+  "Gijsselte",
+  "Gijzel",
+  "Gilze",
+  "Ginkel",
+  "Ginnum",
+  "Glaner",
+  "Goaiïngea",
+  "Godlinze",
+  "Goes",
+  "Goilberd",
+  "Goirle",
+  "Goldhoorn",
+  "Gooium",
+  "Goor",
+  "Gorinchem",
+  "Gorp",
+  "Gortel",
+  "Gouda",
+  "Gouderak",
+  "Goudseweg",
+  "Goënga",
+  "Graaf",
+  "Graauw",
+  "Gracht",
+  "Graet",
+  "Graf",
+  "Grafwegen",
+  "Gras",
+  "Graspeel",
+  "Graszode",
+  "Grathem",
+  "Grauwe",
+  "Grave",
+  "Grazen",
+  "Greonterp",
+  "Greup",
+  "Griete",
+  "Grijps",
+  "Grits",
+  "Groe",
+  "Groede",
+  "Groen",
+  "Groenekan",
+  "Groeneweg",
+  "Groenlo",
+  "Groep",
+  "Groes",
+  "Groessen",
+  "Groet",
+  "Groeve",
+  "Groeze",
+  "Gron",
+  "Groot",
+  "Groote",
+  "Grote",
+  "Grotel",
+  "Grou",
+  "Gytsjerk",
+  "Haaften",
+  "Haag",
+  "Haagje",
+  "Haaks",
+  "Haakswold",
+  "Haalderen",
+  "Haalweide",
+  "Haamstede",
+  "Haandrik",
+  "Haar",
+  "Haarlem",
+  "Haarsteeg",
+  "Haart",
+  "Haelen",
+  "Haerst",
+  "Hagestein",
+  "Haiink",
+  "Halder",
+  "Haler",
+  "Half",
+  "Halfmijl",
+  "Halfweg",
+  "Halle",
+  "Haller",
+  "Hallum",
+  "Halte",
+  "Halvink",
+  "Hamrik",
+  "Hamshorn",
+  "Handel",
+  "Hane",
+  "Hank",
+  "Hankate",
+  "Hansweert",
+  "Hantum",
+  "Hantumer",
+  "Harculo",
+  "Harde",
+  "Hardinx",
+  "Haren",
+  "Harener",
+  "Haring",
+  "Harke",
+  "Harkema",
+  "Harl",
+  "Harles",
+  "Harpel",
+  "Harre",
+  "Harse",
+  "Harskamp",
+  "Harssens",
+  "Hartwerd",
+  "Haspel",
+  "Hasselt",
+  "Hasselter",
+  "Hatte",
+  "Hattem",
+  "Hauwert",
+  "Havelt",
+  "Havelte",
+  "Hayum",
+  "Haze",
+  "Hazenhurk",
+  "Hazennest",
+  "Heaburgen",
+  "Hedel",
+  "Hedik",
+  "Heech",
+  "Heegher",
+  "Heek",
+  "Heelsum",
+  "Heems",
+  "Heemstede",
+  "Heenweg",
+  "Heer",
+  "Heerde",
+  "Heere",
+  "Heeren",
+  "Heers",
+  "Hees",
+  "Heesakker",
+  "Heesbeen",
+  "Heesboom",
+  "Heesch",
+  "Heesselt",
+  "Heet",
+  "Heezeren",
+  "Hefswal",
+  "Hegge",
+  "Hei",
+  "Heiakker",
+  "Heibloem",
+  "Heid",
+  "Heide",
+  "Heidekant",
+  "Heiden",
+  "Heier",
+  "Heihoefke",
+  "Heij",
+  "Heijen",
+  "Heikant",
+  "Heikantse",
+  "Heille",
+  "Heine",
+  "Heioord",
+  "Heister",
+  "Heitrak",
+  "Hekel",
+  "Hekkum",
+  "Hel",
+  "Helden",
+  "Helkant",
+  "Hell",
+  "Helle",
+  "Hellegat",
+  "Hellen",
+  "Hellevoet",
+  "Helling",
+  "Hellouw",
+  "Helwerd",
+  "Hemert",
+  "Hemrik",
+  "Hendrik",
+  "Henge",
+  "Herfte",
+  "Herike",
+  "Herk",
+  "Herken",
+  "Hermalen",
+  "Hernen",
+  "Herpen",
+  "Herpt",
+  "Hersel",
+  "Hersend",
+  "Hert",
+  "Herten",
+  "Hertme",
+  "Herveld",
+  "Herwen",
+  "Herwijnen",
+  "Herxen",
+  "Hesens",
+  "Hespe",
+  "Hessum",
+  "Heugde",
+  "Heukelom",
+  "Heukelum",
+  "Heult",
+  "Heumen",
+  "Heure",
+  "Heurne",
+  "Heusden",
+  "Heuvel",
+  "Heuvels",
+  "Heuveltje",
+  "Hexel",
+  "Heze",
+  "Hiaure",
+  "Hichtum",
+  "Hidaard",
+  "Hien",
+  "Hierden",
+  "Hieslum",
+  "Hijken",
+  "Hijum",
+  "Hilaard",
+  "Hilakker",
+  "Hild",
+  "Hill",
+  "Hilte",
+  "Hilversum",
+  "Hinnaard",
+  "Hintham",
+  "Hitsertse",
+  "Hodenpijl",
+  "Hoef",
+  "Hoefkens",
+  "Hoek",
+  "Hoekdries",
+  "Hoekelum",
+  "Hoekens",
+  "Hoekje",
+  "Hoeks",
+  "Hoekske",
+  "Hoetmans",
+  "Hoeve",
+  "Hoeven",
+  "Hoeves",
+  "Hoge",
+  "Hogert",
+  "Hogeweg",
+  "Holker",
+  "Hollum",
+  "Holm",
+  "Holset",
+  "Holsloot",
+  "Holst",
+  "Holt",
+  "Holte",
+  "Holten",
+  "Holter",
+  "Holthe",
+  "Holtien",
+  "Holtinge",
+  "Holtum",
+  "Holwerd",
+  "Holwierde",
+  "Holwinde",
+  "Hommelse",
+  "Hommert",
+  "Hommerts",
+  "Honderd",
+  "Honds",
+  "Hondsrug",
+  "Hongerige",
+  "Honthem",
+  "Hoog",
+  "Hoogcruts",
+  "Hooge",
+  "Hoogehaar",
+  "Hoogen",
+  "Hoogeweg",
+  "Hooghalen",
+  "Hoogmade",
+  "Hoogmeien",
+  "Hoogwatum",
+  "Hool",
+  "Hoon",
+  "Hoonte",
+  "Hoorn",
+  "Hoornder",
+  "Hoptille",
+  "Horck",
+  "Horick",
+  "Horn",
+  "Horssen",
+  "Horsten",
+  "Horzik",
+  "Hout",
+  "Houterd",
+  "Houtgoor",
+  "Houthei",
+  "Houthem",
+  "Houw",
+  "Houwer",
+  "Hugten",
+  "Huij",
+  "Huinen",
+  "Huinerwal",
+  "Huis",
+  "Huissen",
+  "Huize",
+  "Huizinge",
+  "Hul",
+  "Huls",
+  "Hulsen",
+  "Hulst",
+  "Hulten",
+  "Hultje",
+  "Humcoven",
+  "Hunnecum",
+  "Hunsel",
+  "Hupsel",
+  "Hurkske",
+  "Hurpesch",
+  "Hutten",
+  "Huurne",
+  "Höchte",
+  "Höfke",
+  "Húns",
+  "Idaerd",
+  "Idserda",
+  "Idsken",
+  "Idzegea",
+  "Iens",
+  "IJmuiden",
+  "IJpe",
+  "IJpelo",
+  "IJsselham",
+  "IJzen",
+  "IJzeren",
+  "IJzerlo",
+  "Illik",
+  "Indoornik",
+  "Ingwert",
+  "Inia",
+  "Itens",
+  "Itteren",
+  "Jaars",
+  "Jammer",
+  "Jannum",
+  "Jellum",
+  "Jelsum",
+  "Jeth",
+  "Jipsing",
+  "Jirnsum",
+  "Jislum",
+  "Jisp",
+  "Jistrum",
+  "Jonas",
+  "Jonen",
+  "Jonkers",
+  "Jorwert",
+  "Joure",
+  "Jous",
+  "Jousterp",
+  "Jouswerd",
+  "Jouwer",
+  "Jubbega",
+  "Jukwerd",
+  "Junne",
+  "Jutryp",
+  "Kaag",
+  "Kaakhorn",
+  "Kaard",
+  "Kaarschot",
+  "Kaat",
+  "Kade",
+  "Kadoelen",
+  "Kalis",
+  "Kalteren",
+  "Kameren",
+  "Kamp",
+  "Kampen",
+  "Kamper",
+  "Kamperei",
+  "Kampers",
+  "Kamperzee",
+  "Kantens",
+  "Kantje",
+  "Kapel",
+  "Kapelle",
+  "Kapolder",
+  "Kappert",
+  "Karre",
+  "Kasen",
+  "Kasteren",
+  "Kater",
+  "Katerveer",
+  "Kathagen",
+  "Katlijk",
+  "Kats",
+  "Katwijk",
+  "Kaumes",
+  "Kavel",
+  "Kaweide",
+  "Kedichem",
+  "Keegen",
+  "Keent",
+  "Keersop",
+  "Keinsmer",
+  "Keizers",
+  "Kekerdom",
+  "Kelmond",
+  "Kelpen",
+  "Kempkens",
+  "Kerk",
+  "Kerken",
+  "Kerkhof",
+  "Kerkrade",
+  "Kerkwerve",
+  "Keske",
+  "Kessel",
+  "Kesseleik",
+  "Ketting",
+  "Keulse",
+  "Keunen",
+  "Keup",
+  "Keuter",
+  "Kibbel",
+  "Kiel",
+  "Kiester",
+  "Kievit",
+  "Kijf",
+  "Kijfwaard",
+  "Kijkuit",
+  "Kilder",
+  "Kille",
+  "Kimswerd",
+  "Kinderbos",
+  "Kink",
+  "Kinnum",
+  "Kipper",
+  "Klaaswaal",
+  "Kladde",
+  "Klaren",
+  "Klatering",
+  "Klef",
+  "Klei",
+  "Klein",
+  "Kleinder",
+  "Kleine",
+  "Kleinge",
+  "Klem",
+  "Kletter",
+  "Klevers",
+  "Klispoel",
+  "Klomp",
+  "Klooster",
+  "Klosse",
+  "Klösse",
+  "Knaphof",
+  "Knegsel",
+  "Knipe",
+  "Knol",
+  "Knolle",
+  "Knuiters",
+  "Koedood",
+  "Koehool",
+  "Koekange",
+  "Koekanger",
+  "Koekoek",
+  "Koel",
+  "Koevering",
+  "Kokkelert",
+  "Kolder",
+  "Kolhol",
+  "Kolhorn",
+  "Kolk",
+  "Kollum",
+  "Kolonie",
+  "Kommer",
+  "Konings",
+  "Koog",
+  "Kooi",
+  "Kooldert",
+  "Kopaf",
+  "Korhorn",
+  "Korn",
+  "Kornhorn",
+  "Kort",
+  "Korte",
+  "Korteraar",
+  "Korteven",
+  "Kortgene",
+  "Kostvlies",
+  "Koude",
+  "Kouden",
+  "Koudhoorn",
+  "Koulen",
+  "Kraan",
+  "Kraanven",
+  "Kraats",
+  "Krabben",
+  "Krachtig",
+  "Kranen",
+  "Krassum",
+  "Kreek",
+  "Kreielt",
+  "Kreijel",
+  "Kreijl",
+  "Krewerd",
+  "Krim",
+  "Krimpen",
+  "Krol",
+  "Kruin",
+  "Kruishaar",
+  "Kruispunt",
+  "Kruisweg",
+  "Kuikhorne",
+  "Kuiks",
+  "Kuinre",
+  "Kuitaart",
+  "Kuivezand",
+  "Kulert",
+  "Kulsdom",
+  "Kunrade",
+  "Kutt",
+  "Kuundert",
+  "Kuzemer",
+  "Kwaal",
+  "Kwakel",
+  "Kwakkel",
+  "Kwartier",
+  "Kûkherne",
+  "Laag",
+  "Laaghalen",
+  "Laaghaler",
+  "Laak",
+  "Laaksum",
+  "Laan",
+  "Lage",
+  "Lagekant",
+  "Lageweg",
+  "Lakei",
+  "Laker",
+  "Lalle",
+  "Lammer",
+  "Lammerweg",
+  "Lamperen",
+  "Landerum",
+  "Landsrade",
+  "Lang",
+  "Lange",
+  "Langeraar",
+  "Langerak",
+  "Langereit",
+  "Lank",
+  "Lankes",
+  "Laren",
+  "Laskwerd",
+  "Lattrop",
+  "Laude",
+  "Lauwer",
+  "Ledeacker",
+  "Leeg",
+  "Leegte",
+  "Leek",
+  "Leem",
+  "Leen",
+  "Leens",
+  "Leensel",
+  "Leermens",
+  "Leersum",
+  "Leeuw",
+  "Leeuwerik",
+  "Leeuwte",
+  "Lege",
+  "Legert",
+  "Leiden",
+  "Leimuiden",
+  "Leker",
+  "Lekker",
+  "Lelystad",
+  "Lemel",
+  "Lemele",
+  "Lemmer",
+  "Lemselo",
+  "Lengel",
+  "Lent",
+  "Lenthe",
+  "Leons",
+  "Lerop",
+  "Lethe",
+  "Lettele",
+  "Leuke",
+  "Leunen",
+  "Leur",
+  "Leusden",
+  "Leutes",
+  "Leuth",
+  "Leuven",
+  "Leuvenum",
+  "Leveroy",
+  "Lexmond",
+  "Lhee",
+  "Lichtaard",
+  "Lichtmis",
+  "Liefkens",
+  "Liempde",
+  "Lienden",
+  "Lier",
+  "Lieren",
+  "Lierop",
+  "Lies",
+  "Lievelde",
+  "Lieving",
+  "Lijnden",
+  "Limbricht",
+  "Limmen",
+  "Linde",
+  "Lingsfort",
+  "Lintelo",
+  "Lintvelde",
+  "Lioessens",
+  "Lippen",
+  "Lith",
+  "Lithoijen",
+  "Lobith",
+  "Loc",
+  "Locht",
+  "Loenen",
+  "Loer",
+  "Loete",
+  "Logt",
+  "Loil",
+  "Lollum",
+  "Lomm",
+  "Lonneker",
+  "Loo",
+  "Loobrink",
+  "Loofaert",
+  "Looi",
+  "Looien",
+  "Look",
+  "Loon",
+  "Loons",
+  "Loonse",
+  "Looveer",
+  "Loppersum",
+  "Lovendaal",
+  "Loveren",
+  "Loënga",
+  "Lubbinge",
+  "Luchen",
+  "Luchten",
+  "Luissel",
+  "Luitert",
+  "Lula",
+  "Lunen",
+  "Lunteren",
+  "Lunters",
+  "Lutjegast",
+  "Lutjerijp",
+  "Lutke",
+  "Lutkepost",
+  "Lutten",
+  "Lutter",
+  "Lytse",
+  "Lytshuzen",
+  "Maagd",
+  "Maaijkant",
+  "Maalb",
+  "Maaldrift",
+  "Maalstede",
+  "Maar",
+  "Maarn",
+  "Maars",
+  "Maarssen",
+  "Maasband",
+  "Maasbree",
+  "Maaskant",
+  "Maat",
+  "Maatsehei",
+  "Macharen",
+  "Made",
+  "Magele",
+  "Magrette",
+  "Makkum",
+  "Mal",
+  "Malden",
+  "Mallem",
+  "Mamelis",
+  "Manen",
+  "Mantgum",
+  "Mantinge",
+  "Maren",
+  "Maria",
+  "Maris",
+  "Mark",
+  "Markvelde",
+  "Marle",
+  "Marrum",
+  "Mars",
+  "Marssum",
+  "Marsum",
+  "Martens",
+  "Marum",
+  "Mataram",
+  "Maten",
+  "Mathijs",
+  "Maurik",
+  "Maxet",
+  "Medemblik",
+  "Medevoort",
+  "Medler",
+  "Meed",
+  "Meeden",
+  "Meele",
+  "Meemortel",
+  "Meene",
+  "Meer",
+  "Meeren",
+  "Meern",
+  "Meerten",
+  "Meerven",
+  "Meerwijck",
+  "Megelsum",
+  "Megen",
+  "Meije",
+  "Meijel",
+  "Melick",
+  "Melis",
+  "Melissant",
+  "Menaldum",
+  "Mensinge",
+  "Menzel",
+  "Meppen",
+  "Merkel",
+  "Merm",
+  "Merselo",
+  "Merum",
+  "Mesch",
+  "Meteren",
+  "Metsla",
+  "Midbuul",
+  "Midde",
+  "Middel",
+  "Middelijk",
+  "Midden",
+  "Middenhof",
+  "Midlaren",
+  "Midlum",
+  "Mids",
+  "Midwolde",
+  "Miedum",
+  "Mildert",
+  "Milheeze",
+  "Mill",
+  "Mils",
+  "Milschot",
+  "Minkeloos",
+  "Mispel",
+  "Moddergat",
+  "Moer",
+  "Moeren",
+  "Moerslag",
+  "Moespot",
+  "Molembaix",
+  "Molenbaan",
+  "Molenbelt",
+  "Molengat",
+  "Molenhof",
+  "Molenperk",
+  "Molenrij",
+  "Molenstad",
+  "Molkwar",
+  "Monster",
+  "Montfort",
+  "Mook",
+  "Moord",
+  "Moorsel",
+  "Morige",
+  "Morra",
+  "Mortel",
+  "Mosbulten",
+  "Mosik",
+  "Moskou",
+  "Mosse",
+  "Mossel",
+  "Most",
+  "Muggenhol",
+  "Muis",
+  "Muizenhol",
+  "Mulderij",
+  "Mullegen",
+  "Munneke",
+  "Munnekens",
+  "Munniken",
+  "Munte",
+  "Murns",
+  "Mussel",
+  "Mûnein",
+  "Naarder",
+  "Nabbegat",
+  "Nagel",
+  "Nansum",
+  "Napels",
+  "Natten",
+  "Neder",
+  "Nederbiel",
+  "Neer",
+  "Neerijnen",
+  "Neeritter",
+  "Neerloon",
+  "Neerst",
+  "Negen",
+  "Nekke",
+  "Nergena",
+  "Nia",
+  "Nie",
+  "Niebert",
+  "Niehove",
+  "Nier",
+  "Niersen",
+  "Niesoord",
+  "Nieuw",
+  "Nieuwaal",
+  "Nieuwe",
+  "Nieuwer",
+  "Nieuwklap",
+  "Nieuwkoop",
+  "Nieuwolda",
+  "Nieuwstad",
+  "Niftrik",
+  "Nijega",
+  "Nijehaske",
+  "Nijesyl",
+  "Nijken",
+  "Nijkerker",
+  "Nijlân",
+  "Nijmegen",
+  "Nijnsel",
+  "Nijrees",
+  "Nijstad",
+  "Nijve",
+  "Nispense",
+  "Noardein",
+  "Noenes",
+  "Nolde",
+  "Noord",
+  "Noorden",
+  "Noorder",
+  "Noordhorn",
+  "Noordink",
+  "Noordkant",
+  "Noordse",
+  "Notendaal",
+  "Notsel",
+  "Noukoop",
+  "Nuenen",
+  "Nuijen",
+  "Nuil",
+  "Nuis",
+  "Nunhem",
+  "Nunspeet",
+  "Nuth",
+  "Obbicht",
+  "Ock",
+  "Oegst",
+  "Oekel",
+  "Oeken",
+  "Oele",
+  "Oensel",
+  "Oentsjerk",
+  "Oerle",
+  "Oete",
+  "Oever",
+  "Offinga",
+  "Ofwegen",
+  "Ohé;",
+  "Oijen",
+  "Oirlo",
+  "Oirs",
+  "Okswerd",
+  "Olde",
+  "Oldehove",
+  "Oldemarkt",
+  "Olden",
+  "Oldeneel",
+  "Oldenhave",
+  "Oldeouwer",
+  "Oldörp",
+  "Olen",
+  "Oler",
+  "Oling",
+  "Olterterp",
+  "Ommel",
+  "Ommen",
+  "Ommeren",
+  "Onder",
+  "Onna",
+  "Onsenoort",
+  "Onstwedde",
+  "Ooij",
+  "Ooijen",
+  "Oost",
+  "Oostappen",
+  "Ooste",
+  "Ooster",
+  "Oosterend",
+  "Oosterens",
+  "Oosterhof",
+  "Oosterik",
+  "Oosternie",
+  "Oosternij",
+  "Oosterse",
+  "Oosterzee",
+  "Oosthem",
+  "Oostindië",
+  "Oostrum",
+  "Oostum",
+  "Oostwold",
+  "Oostzaan",
+  "Op",
+  "Opende",
+  "Ophemert",
+  "Ophuis",
+  "Opijnen",
+  "Opmeeden",
+  "Opper",
+  "Opperdoes",
+  "Opperduit",
+  "Opwetten",
+  "Opwierde",
+  "Oranje",
+  "Orvelte",
+  "Osen",
+  "Oshaar",
+  "Ospel",
+  "Ossen",
+  "Ossenisse",
+  "Ostaaijen",
+  "Osterbos",
+  "Othene",
+  "Otterlo",
+  "Ottersum",
+  "Ou",
+  "OuBildt",
+  "Oude",
+  "Oudega",
+  "Oudehaske",
+  "Oudehorne",
+  "Ouden",
+  "Oudenrijn",
+  "Ouder",
+  "Oudeschip",
+  "Oudleusen",
+  "Oukoop",
+  "OuLeede",
+  "OuLeije",
+  "OuPolder",
+  "OuSchouw",
+  "OuStaten",
+  "OuStee",
+  "OuStoof",
+  "OuStrumpt",
+  "OuWaranda",
+  "Ouwer",
+  "OuWillem",
+  "Ouwster",
+  "Oventje",
+  "Over",
+  "Overa",
+  "Overakker",
+  "Overbiel",
+  "Overeys",
+  "Overgeul",
+  "Overheek",
+  "Overschot",
+  "Overval",
+  "Overwater",
+  "Paal",
+  "Paarde",
+  "Paarlo",
+  "Paauwen",
+  "Paddepoel",
+  "Padhuis",
+  "Paesens",
+  "Palestina",
+  "Pallert",
+  "Pandgat",
+  "Panheel",
+  "Pann",
+  "Pannerden",
+  "Papen",
+  "Papenveer",
+  "Park",
+  "Parrega",
+  "Partij",
+  "Pasop",
+  "Patrijzen",
+  "Peebos",
+  "Peelkant",
+  "Peij",
+  "Peizerweg",
+  "Pelikaan",
+  "Pepinus",
+  "Pernis",
+  "Pers",
+  "Pesaken",
+  "Peters",
+  "Petten",
+  "Piaam",
+  "Pieperij",
+  "Piepert",
+  "Piershil",
+  "Pieter",
+  "Pikesyl",
+  "Piksen",
+  "Pingjum",
+  "Pinkeveer",
+  "Pitteperk",
+  "Plaat",
+  "Plaats",
+  "Plak",
+  "Plantage",
+  "Plas",
+  "Plat",
+  "Plein",
+  "Poffert",
+  "Polen",
+  "Polle",
+  "Pollen",
+  "Ponte",
+  "Poonhaven",
+  "Poppen",
+  "Posterenk",
+  "Posthoorn",
+  "Pot",
+  "Praets",
+  "Prickart",
+  "Puiflijk",
+  "Punt",
+  "Purmer",
+  "Purmerend",
+  "Puth",
+  "Putse",
+  "Putten",
+  "Putters",
+  "Pyramide",
+  "Raai",
+  "Raak",
+  "Raam",
+  "Raar",
+  "Raard",
+  "Raayen",
+  "Raerd",
+  "Rakens",
+  "Rakt",
+  "Rand",
+  "Rande",
+  "Randen",
+  "Ranum",
+  "Raren",
+  "Rasquert",
+  "Ratte",
+  "Ravensgat",
+  "Reahûs",
+  "Rechteren",
+  "Rectum",
+  "Reduzum",
+  "Reeth",
+  "Reidswal",
+  "Reitsum",
+  "Remswerd",
+  "Renesse",
+  "Renkum",
+  "Renneborg",
+  "Rens",
+  "Respel",
+  "Ressen",
+  "Reters",
+  "Reth",
+  "Reuth",
+  "Reutje",
+  "Reuzen",
+  "Rewert",
+  "Rhaan",
+  "Rheder",
+  "Rhee",
+  "Rhenoy",
+  "Rhoon",
+  "Ridder",
+  "Riel",
+  "Rien",
+  "Riet",
+  "Rietven",
+  "Rijckholt",
+  "Rijen",
+  "Rijke",
+  "Rijkel",
+  "Rijker",
+  "Rijlst",
+  "Rijnsater",
+  "Rijsb",
+  "Rijsoord",
+  "Rijt",
+  "Rijtjes",
+  "Ril",
+  "Rimpelt",
+  "Rink",
+  "Rips",
+  "Rith",
+  "Ritsuma",
+  "Roeke",
+  "Roekel",
+  "Roelage",
+  "Roels",
+  "Roermond",
+  "Roeven",
+  "Roggel",
+  "Rohel",
+  "Rolaf",
+  "Roligt",
+  "Rollecate",
+  "Rolpaal",
+  "Rome",
+  "Rond",
+  "Ronduite",
+  "Rood",
+  "Roodehaan",
+  "Rooden",
+  "Roond",
+  "Roosteren",
+  "Rooth",
+  "Ropta",
+  "Roskam",
+  "Rothem",
+  "Rott",
+  "Rotte",
+  "Rotter",
+  "Rotting",
+  "Rottum",
+  "Rozendaal",
+  "Rucphen",
+  "Ruif",
+  "Ruigen",
+  "Ruigezand",
+  "Ruimel",
+  "Ruinen",
+  "Ruischer",
+  "Ruiten",
+  "Rukven",
+  "Rullen",
+  "Rumpt",
+  "Rund",
+  "Rusven",
+  "Rut",
+  "Ryptsjerk",
+  "Rytseterp",
+  "Saaksum",
+  "Saaxum",
+  "Salverd",
+  "Sandebuur",
+  "Santfort",
+  "Santpoort",
+  "Sasput",
+  "Sauwerd",
+  "Schaa",
+  "Schaaphok",
+  "Schaaps",
+  "Schadron",
+  "Schafelt",
+  "Schaft",
+  "Schagen",
+  "Schager",
+  "Schandelo",
+  "Schans",
+  "Schapers",
+  "Scharen",
+  "Scharne",
+  "Scharster",
+  "Schatkuil",
+  "Schaveren",
+  "Scheemder",
+  "Schelf",
+  "Schellach",
+  "Schelm",
+  "Schettens",
+  "Schey",
+  "Schieven",
+  "Schijf",
+  "Schijndel",
+  "Schillers",
+  "Schimmert",
+  "Schin",
+  "Schinnen",
+  "Schippers",
+  "School",
+  "Schoon",
+  "Schoonen",
+  "Schoor",
+  "Schoorl",
+  "Schoot",
+  "Schore",
+  "Schoter",
+  "Schotters",
+  "Schouw",
+  "Schouwen",
+  "Schouwer",
+  "Schraard",
+  "Schrap",
+  "Schuilen",
+  "Schuring",
+  "Schuwacht",
+  "Sebalde",
+  "Seerijp",
+  "Sell",
+  "Selmien",
+  "Selwerd",
+  "Seroos",
+  "Seters",
+  "Sibbe",
+  "Siberië",
+  "Siegers",
+  "Simpel",
+  "Sinouts",
+  "Sinsel",
+  "Sint",
+  "Sion",
+  "Sittard",
+  "Sjunga",
+  "Skarl",
+  "Skillaerd",
+  "Skou",
+  "Skrins",
+  "Skyldum",
+  "Slee",
+  "Sleen",
+  "Slegge",
+  "Slek",
+  "Slichten",
+  "Sliffert",
+  "Slijkwell",
+  "Slikken",
+  "Sloot",
+  "Sluis",
+  "Smakt",
+  "Smal",
+  "Smalle",
+  "Smeerling",
+  "Smelbrêge",
+  "Smele",
+  "Smilde",
+  "Smits",
+  "Sneek",
+  "Sneiders",
+  "Snelle",
+  "Sneps",
+  "Snikzwaag",
+  "Snipperij",
+  "Snoden",
+  "Soeter",
+  "Solwerd",
+  "Someren",
+  "Sopsum",
+  "Spaanrijt",
+  "Spaanse",
+  "Spaken",
+  "Spannen",
+  "Spannum",
+  "Spears",
+  "Spek",
+  "Spekklef",
+  "Spekt",
+  "Speuld",
+  "Speurgt",
+  "Spier",
+  "Spijk",
+  "Spik",
+  "Spits",
+  "Spoolde",
+  "Spoor",
+  "Sprang",
+  "Sprundel",
+  "Spurkt",
+  "Stad",
+  "Stadterij",
+  "Starten",
+  "Stations",
+  "Staverden",
+  "Stedum",
+  "Steeg",
+  "Steegh",
+  "Steel",
+  "Steen",
+  "Steenkamp",
+  "Steenoven",
+  "Steenpaal",
+  "Steensel",
+  "Steenvak",
+  "Stegen",
+  "Steger",
+  "Stegeren",
+  "Stein",
+  "Sterken",
+  "Sterre",
+  "Steurgat",
+  "Stevens",
+  "Stevert",
+  "Stiem",
+  "Stiens",
+  "Stitswerd",
+  "Stobben",
+  "Stokhem",
+  "Stokkelen",
+  "Stokkum",
+  "Stokske",
+  "Stokt",
+  "Stolpen",
+  "Stomme",
+  "Stoof",
+  "Stork",
+  "Stouten",
+  "Stox",
+  "Strand",
+  "Straten",
+  "Strateris",
+  "Streek",
+  "Strepen",
+  "Streukel",
+  "Strij",
+  "Strijen",
+  "Strijp",
+  "Stroet",
+  "Stroo",
+  "Stroopuit",
+  "Strubben",
+  "Strucht",
+  "Strype",
+  "Stuw",
+  "Sumar",
+  "Sumarre",
+  "Surhuizum",
+  "Susteren",
+  "Suttum",
+  "Suwâld",
+  "Swaenwert",
+  "Swalmen",
+  "Sweik",
+  "Syt",
+  "Sânfurd",
+  "Taarlo",
+  "Teeffelen",
+  "Teije",
+  "Teijl",
+  "Telgt",
+  "Tempel",
+  "Ter",
+  "Terband",
+  "Terblijt",
+  "Terdiek",
+  "Tereyken",
+  "Tergêft",
+  "Terhagen",
+  "Terheijl",
+  "Terherne",
+  "Terkaple",
+  "Terlet",
+  "Terlinden",
+  "Termaar",
+  "Termoors",
+  "Termunten",
+  "Termunter",
+  "Ternaard",
+  "Teroele",
+  "Terover",
+  "Tersoal",
+  "Tervaten",
+  "Tervoorst",
+  "Tervoort",
+  "Terwispel",
+  "Terwolde",
+  "Terziet",
+  "Teuge",
+  "Theetuin",
+  "Themaat",
+  "Tholen",
+  "Thull",
+  "Thuserhof",
+  "Tibma",
+  "Tiel",
+  "Tielse",
+  "Tiggelt",
+  "Tijnje",
+  "Tike",
+  "Til",
+  "Timmer",
+  "Tippe",
+  "Tjaard",
+  "Tjams",
+  "Tjerkwerd",
+  "Tjoene",
+  "Tolbert",
+  "Tolkamer",
+  "Tommel",
+  "Tongeren",
+  "Tongerlo",
+  "Tonsel",
+  "Toom",
+  "Toornwerd",
+  "Top",
+  "Toren",
+  "Toterfout",
+  "Toven",
+  "Tragel",
+  "Tranendal",
+  "Trege",
+  "Trent",
+  "Tricht",
+  "Triemen",
+  "Trimpert",
+  "Trintelen",
+  "Tritzum",
+  "Tronde",
+  "Trophorne",
+  "Trutjes",
+  "Tuil",
+  "Tull",
+  "Tungelroy",
+  "Turns",
+  "Tusschen",
+  "Tuut",
+  "Tuuthees",
+  "Twee",
+  "Tweedeweg",
+  "TweeTol",
+  "Twekkelo",
+  "Twello",
+  "Twijzel",
+  "Twijzeler",
+  "Twisk",
+  "Tynaarlo",
+  "Tytsjerk",
+  "Ubach",
+  "Ubbena",
+  "Ubber",
+  "Uddel",
+  "Uffelsen",
+  "Uffelte",
+  "Uit",
+  "Uiter",
+  "Uithoorn",
+  "Uitwierde",
+  "Ulfter",
+  "Ulicoten",
+  "Ulrum",
+  "Ulsda",
+  "Ulvend",
+  "Unga",
+  "Uppel",
+  "Usquert",
+  "Usselo",
+  "Vaals",
+  "Vaar",
+  "Vaarle",
+  "Vaart",
+  "Vaesrade",
+  "Valk",
+  "Valken",
+  "Valom",
+  "Valsteeg",
+  "Varik",
+  "Varsen",
+  "Varssel",
+  "Vebenabos",
+  "Vecht",
+  "Veecaten",
+  "Veele",
+  "Veeler",
+  "Veen",
+  "Veenhof",
+  "Veenhoop",
+  "Veenhuis",
+  "Veere",
+  "Veessen",
+  "Veghel",
+  "Veld",
+  "Veldbraak",
+  "Velde",
+  "Velden",
+  "Veldhuis",
+  "Veldzicht",
+  "Velp",
+  "Velsen",
+  "Veluwe",
+  "Vemde",
+  "Ven",
+  "Venbe",
+  "Vene",
+  "Venekoten",
+  "Venlo",
+  "Venne",
+  "Venray",
+  "Venweg",
+  "Vergelt",
+  "Verloren",
+  "Vessem",
+  "Vestjens",
+  "Vet",
+  "Vetterik",
+  "Veulen",
+  "Vianen",
+  "Viel",
+  "Vier",
+  "Vierhuis",
+  "Vijcie",
+  "Vijf",
+  "Vilgert",
+  "Vilsteren",
+  "Vilt",
+  "Vink",
+  "Vinkel",
+  "Vinken",
+  "Vinkepas",
+  "Vis",
+  "Visschers",
+  "Vissers",
+  "Vlaas",
+  "Vlake",
+  "Vlas",
+  "Vledder",
+  "Vleet",
+  "Vleuten",
+  "Vlie",
+  "Vliegert",
+  "Vlieghuis",
+  "Vlijmen",
+  "Vliss",
+  "Vlist",
+  "Vlodrop",
+  "Vloei",
+  "Vloet",
+  "Vlootkant",
+  "Vogelfort",
+  "Volthe",
+  "Voor",
+  "Voorne",
+  "Voorrijp",
+  "Voorst",
+  "Voorstad",
+  "Voorste",
+  "Voorster",
+  "Voort",
+  "Voortje",
+  "Voorweg",
+  "Vorchten",
+  "Vorst",
+  "Vorsten",
+  "Voske",
+  "Voskuil",
+  "Vosse",
+  "Vossebelt",
+  "Vosselen",
+  "Vossen",
+  "Voulwames",
+  "Vrachelen",
+  "Vragender",
+  "Vredepeel",
+  "Vree",
+  "Vries",
+  "Vriezen",
+  "Vrij",
+  "Vrijhoeve",
+  "Vrilk",
+  "Vroe",
+  "Vroelen",
+  "Vuile",
+  "Vuilpan",
+  "Vuren",
+  "Waaksens",
+  "Waal",
+  "Waar",
+  "Waard",
+  "Waarde",
+  "Waarden",
+  "Waarder",
+  "Waatskamp",
+  "Wachtum",
+  "Waddinx",
+  "Wadway",
+  "Wadwerd",
+  "Wagen",
+  "Waije",
+  "Walder",
+  "Walik",
+  "Walsert",
+  "Wammert",
+  "Wanneper",
+  "Wanroij",
+  "Wapen",
+  "Wapse",
+  "Wapser",
+  "Warf",
+  "Warffum",
+  "Warfster",
+  "Warmen",
+  "Warmond",
+  "Warnia",
+  "Warstiens",
+  "Warten",
+  "Waspik",
+  "Water",
+  "Wateren",
+  "Waterkant",
+  "Waterop",
+  "Waterval",
+  "Waver",
+  "Weakens",
+  "Wedde",
+  "Wedder",
+  "Wee",
+  "Weeg",
+  "Weende",
+  "Weerd",
+  "Weerdinge",
+  "Weere",
+  "Weert",
+  "Weerwille",
+  "Wehe",
+  "Wehl",
+  "Weidum",
+  "Weij",
+  "Weijer",
+  "Weijpoort",
+  "Weilens",
+  "Weimeren",
+  "Weipoort",
+  "Weite",
+  "Weitemans",
+  "Weiwerd",
+  "Wekerom",
+  "Wele",
+  "Wells",
+  "Welsum",
+  "Wely",
+  "Wenum",
+  "Weper",
+  "Wercheren",
+  "Weren",
+  "Wergea",
+  "Werk",
+  "Wernhouts",
+  "Wesch",
+  "Wessing",
+  "Wessinge",
+  "West",
+  "Westeneng",
+  "Wester",
+  "Westerein",
+  "Westerlee",
+  "Westernie",
+  "Westerse",
+  "Westhim",
+  "Westlaren",
+  "Westmaas",
+  "Westrik",
+  "Wetering",
+  "Wetsens",
+  "Weurt",
+  "Wevers",
+  "Weverslo",
+  "Wezel",
+  "Wezep",
+  "Wezup",
+  "Wezuper",
+  "Wielder",
+  "Wieler",
+  "Wielse",
+  "Wiene",
+  "Wierren",
+  "Wierum",
+  "Wiesel",
+  "Wieuwens",
+  "Wijchen",
+  "Wijnaldum",
+  "Wijnb",
+  "Wijnje",
+  "Wijster",
+  "Wijthmen",
+  "Wijzend",
+  "Wilderhof",
+  "Wildert",
+  "Wilgen",
+  "Wilp",
+  "Wils",
+  "Wilsum",
+  "Winde",
+  "Windraak",
+  "Winkel",
+  "Winkels",
+  "Winssen",
+  "Winsum",
+  "Wintelre",
+  "Winthagen",
+  "Wirdum",
+  "Wisse",
+  "Wissel",
+  "Wissen",
+  "Witharen",
+  "Withuis",
+  "Witman",
+  "Witmarsum",
+  "Witrijt",
+  "Witte",
+  "Wittelte",
+  "Witten",
+  "Wiuwert",
+  "Wjelsryp",
+  "Woerd",
+  "Woerdense",
+  "Woezik",
+  "Wognum",
+  "Wolfers",
+  "Wolfhaag",
+  "Wolfhagen",
+  "Wolfheze",
+  "Wolfs",
+  "Wolfshuis",
+  "Wolling",
+  "Wolsum",
+  "Wommels",
+  "Wonne",
+  "Wons",
+  "Woord",
+  "Wopereis",
+  "Wordragen",
+  "Wormer",
+  "Worsum",
+  "Woubrugge",
+  "Wouwse",
+  "Wulpenbek",
+  "Wyns",
+  "Wytgaard",
+  "Wâldsein",
+  "Wânswert",
+  "Yerseke",
+  "Yndyk",
+  "Zaamslag",
+  "Zaarvlaas",
+  "Zalk",
+  "Zand",
+  "Zande",
+  "Zandfort",
+  "Zandkant",
+  "Zandoerle",
+  "Zandplaat",
+  "Zandpol",
+  "Zandput",
+  "Zandvoort",
+  "Zee",
+  "Zeegat",
+  "Zeegse",
+  "Zeerijp",
+  "Zeesse",
+  "Zegge",
+  "Zeijen",
+  "Zeijer",
+  "Zeist",
+  "Zelder",
+  "Zelen",
+  "Zelt",
+  "Zenderen",
+  "Zethuis",
+  "Zeven",
+  "Zevenhuis",
+  "Zierikzee",
+  "Zieuwent",
+  "Zijder",
+  "Zijdewind",
+  "Zijp",
+  "Zijper",
+  "Zijtaart",
+  "Zilven",
+  "Zinkweg",
+  "Zittard",
+  "Zoeke",
+  "Zoelen",
+  "Zoelmond",
+  "Zoerte",
+  "Zoeter",
+  "Zoggel",
+  "Zomerven",
+  "Zond",
+  "Zorgvlied",
+  "Zoutkamp",
+  "Zuid",
+  "Zuider",
+  "Zuidhorn",
+  "Zuidlaren",
+  "Zuidwolde",
+  "Zuidzande",
+  "Zuidzijde",
+  "Zuilichem",
+  "Zundert",
+  "Zurich",
+  "Zutphen",
+  "Zuuk",
+  "Zwaag",
+  "Zwager",
+  "Zwanegat",
+  "Zwart",
+  "Zwarte",
+  "Zweek",
+  "Zwiggelte",
+  "Zwijn",
+  "Zwinderen",
+  "Zwolle"
+];
+
+},{}],702:[function(require,module,exports){
+module["exports"] = [
+  " aan de IJssel",
+  " aan de Rijn",
+  "ambacht",
+  "beek",
+  "berg",
+  "bergen",
+  "bosch",
+  "broek",
+  "brug",
+  "buren",
+  "burg",
+  "buurt",
+  "dam",
+  "dijk",
+  "dijke",
+  "donk",
+  "dorp",
+  "eind",
+  "enmaes",
+  "gat",
+  "geest",
+  "heide",
+  "hoek",
+  "horst",
+  "hout",
+  "hoven",
+  "huizen",
+  "ingen",
+  "kerk",
+  "laar",
+  "land",
+  "meer",
+  "recht",
+  "schoten",
+  "sluis",
+  "stroom",
+  "swaerd",
+  "veen",
+  "veld",
+  "vliet",
+  "weer",
+  "wier",
+  "wijk",
+  "woud",
+  "woude",
+  "zijl",
+  ""
+];
+
+},{}],703:[function(require,module,exports){
+module["exports"] = [
+  "Afghanistan",
+  "Akrotiri",
+  "Albanië",
+  "Algerije",
+  "Amerikaanse Maagdeneilanden",
+  "Amerikaans-Samoa",
+  "Andorra",
+  "Angola",
+  "Anguilla",
+  "Antarctica",
+  "Antigua en Barbuda",
+  "Arctic Ocean",
+  "Argentinië",
+  "Armenië",
+  "Aruba",
+  "Ashmore and Cartier Islands",
+  "Atlantic Ocean",
+  "Australië",
+  "Azerbeidzjan",
+  "Bahama's",
+  "Bahrein",
+  "Bangladesh",
+  "Barbados",
+  "Belarus",
+  "België",
+  "Belize",
+  "Benin",
+  "Bermuda",
+  "Bhutan",
+  "Bolivië",
+  "Bosnië-Herzegovina",
+  "Botswana",
+  "Bouvet Island",
+  "Brazilië",
+  "British Indian Ocean Territory",
+  "Britse Maagdeneilanden",
+  "Brunei",
+  "Bulgarije",
+  "Burkina Faso",
+  "Burundi",
+  "Cambodja",
+  "Canada",
+  "Caymaneilanden",
+  "Centraal-Afrikaanse Republiek",
+  "Chili",
+  "China",
+  "Christmas Island",
+  "Clipperton Island",
+  "Cocos (Keeling) Islands",
+  "Colombia",
+  "Comoren (Unie)",
+  "Congo (Democratische Republiek)",
+  "Congo (Volksrepubliek)",
+  "Cook",
+  "Coral Sea Islands",
+  "Costa Rica",
+  "Cuba",
+  "Cyprus",
+  "Denemarken",
+  "Dhekelia",
+  "Djibouti",
+  "Dominica",
+  "Dominicaanse Republiek",
+  "Duitsland",
+  "Ecuador",
+  "Egypte",
+  "El Salvador",
+  "Equatoriaal-Guinea",
+  "Eritrea",
+  "Estland",
+  "Ethiopië",
+  "European Union",
+  "Falkland",
+  "Faroe Islands",
+  "Fiji",
+  "Filipijnen",
+  "Finland",
+  "Frankrijk",
+  "Frans-Polynesië",
+  "French Southern and Antarctic Lands",
+  "Gabon",
+  "Gambia",
+  "Gaza Strip",
+  "Georgië",
+  "Ghana",
+  "Gibraltar",
+  "Grenada",
+  "Griekenland",
+  "Groenland",
+  "Guam",
+  "Guatemala",
+  "Guernsey",
+  "Guinea",
+  "Guinee-Bissau",
+  "Guyana",
+  "Haïti",
+  "Heard Island and McDonald Islands",
+  "Heilige Stoel",
+  "Honduras",
+  "Hongarije",
+  "Hongkong",
+  "Ierland",
+  "IJsland",
+  "India",
+  "Indian Ocean",
+  "Indonesië",
+  "Irak",
+  "Iran",
+  "Isle of Man",
+  "Israël",
+  "Italië",
+  "Ivoorkust",
+  "Jamaica",
+  "Jan Mayen",
+  "Japan",
+  "Jemen",
+  "Jersey",
+  "Jordanië",
+  "Kaapverdië",
+  "Kameroen",
+  "Kazachstan",
+  "Kenia",
+  "Kirgizstan",
+  "Kiribati",
+  "Koeweit",
+  "Kroatië",
+  "Laos",
+  "Lesotho",
+  "Letland",
+  "Libanon",
+  "Liberia",
+  "Libië",
+  "Liechtenstein",
+  "Litouwen",
+  "Luxemburg",
+  "Macao",
+  "Macedonië",
+  "Madagaskar",
+  "Malawi",
+  "Maldiven",
+  "Maleisië",
+  "Mali",
+  "Malta",
+  "Marokko",
+  "Marshall Islands",
+  "Mauritanië",
+  "Mauritius",
+  "Mayotte",
+  "Mexico",
+  "Micronesia, Federated States of",
+  "Moldavië",
+  "Monaco",
+  "Mongolië",
+  "Montenegro",
+  "Montserrat",
+  "Mozambique",
+  "Myanmar",
+  "Namibië",
+  "Nauru",
+  "Navassa Island",
+  "Nederland",
+  "Nederlandse Antillen",
+  "Nepal",
+  "Ngwane",
+  "Nicaragua",
+  "Nieuw-Caledonië",
+  "Nieuw-Zeeland",
+  "Niger",
+  "Nigeria",
+  "Niue",
+  "Noordelijke Marianen",
+  "Noord-Korea",
+  "Noorwegen",
+  "Norfolk Island",
+  "Oekraïne",
+  "Oezbekistan",
+  "Oman",
+  "Oostenrijk",
+  "Pacific Ocean",
+  "Pakistan",
+  "Palau",
+  "Panama",
+  "Papoea-Nieuw-Guinea",
+  "Paracel Islands",
+  "Paraguay",
+  "Peru",
+  "Pitcairn",
+  "Polen",
+  "Portugal",
+  "Puerto Rico",
+  "Qatar",
+  "Roemenië",
+  "Rusland",
+  "Rwanda",
+  "Saint Helena",
+  "Saint Lucia",
+  "Saint Vincent en de Grenadines",
+  "Saint-Pierre en Miquelon",
+  "Salomon",
+  "Samoa",
+  "San Marino",
+  "São Tomé en Principe",
+  "Saudi-Arabië",
+  "Senegal",
+  "Servië",
+  "Seychellen",
+  "Sierra Leone",
+  "Singapore",
+  "Sint-Kitts en Nevis",
+  "Slovenië",
+  "Slowakije",
+  "Soedan",
+  "Somalië",
+  "South Georgia and the South Sandwich Islands",
+  "Southern Ocean",
+  "Spanje",
+  "Spratly Islands",
+  "Sri Lanka",
+  "Suriname",
+  "Svalbard",
+  "Syrië",
+  "Tadzjikistan",
+  "Taiwan",
+  "Tanzania",
+  "Thailand",
+  "Timor Leste",
+  "Togo",
+  "Tokelau",
+  "Tonga",
+  "Trinidad en Tobago",
+  "Tsjaad",
+  "Tsjechië",
+  "Tunesië",
+  "Turkije",
+  "Turkmenistan",
+  "Turks-en Caicoseilanden",
+  "Tuvalu",
+  "Uganda",
+  "Uruguay",
+  "Vanuatu",
+  "Venezuela",
+  "Verenigd Koninkrijk",
+  "Verenigde Arabische Emiraten",
+  "Verenigde Staten van Amerika",
+  "Vietnam",
+  "Wake Island",
+  "Wallis en Futuna",
+  "Wereld",
+  "West Bank",
+  "Westelijke Sahara",
+  "Zambia",
+  "Zimbabwe",
+  "Zuid-Afrika",
+  "Zuid-Korea",
+  "Zweden",
+  "Zwitserland"
+];
+
+},{}],704:[function(require,module,exports){
+module["exports"] = [
+  "Nederland"
+];
+
+},{}],705:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.city = require("./city");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.default_country = require("./default_country");
+
+},{"./building_number":699,"./city":700,"./city_prefix":701,"./city_suffix":702,"./country":703,"./default_country":704,"./postcode":706,"./secondary_address":707,"./state":708,"./street_address":709,"./street_name":710,"./street_suffix":711}],706:[function(require,module,exports){
+module["exports"] = [
+  "#### ??"
+];
+
+},{}],707:[function(require,module,exports){
+module["exports"] = [
+  "1 hoog",
+  "2 hoog",
+  "3 hoog"
+];
+
+},{}],708:[function(require,module,exports){
+module["exports"] = [
+  "Noord-Holland",
+  "Zuid-Holland",
+  "Utrecht",
+  "Zeeland",
+  "Overijssel",
+  "Gelderland",
+  "Drenthe",
+  "Friesland",
+  "Groningen",
+  "Noord-Brabant",
+  "Limburg",
+  "Flevoland"
+];
+
+},{}],709:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],710:[function(require,module,exports){
+module.exports=require(616)
+},{"/Users/a/dev/faker.js/lib/locales/ja/address/street_name.js":616}],711:[function(require,module,exports){
+module["exports"] = [
+  "straat",
+  "laan",
+  "weg",
+  "plantsoen",
+  "park"
+];
+
+},{}],712:[function(require,module,exports){
+arguments[4][279][0].apply(exports,arguments)
+},{"./suffix":713,"/Users/a/dev/faker.js/lib/locales/en_AU/company/index.js":279}],713:[function(require,module,exports){
+module["exports"] = [
+  "BV",
+  "V.O.F.",
+  "Group",
+  "en Zonen"
+];
+
+},{}],714:[function(require,module,exports){
+var nl = {};
+module['exports'] = nl;
+nl.title = "Dutch";
+nl.address = require("./address");
+nl.company = require("./company");
+nl.internet = require("./internet");
+nl.lorem = require("./lorem");
+nl.name = require("./name");
+nl.phone_number = require("./phone_number");
+
+},{"./address":705,"./company":712,"./internet":717,"./lorem":718,"./name":722,"./phone_number":729}],715:[function(require,module,exports){
+module["exports"] = [
+  "nl",
+  "com",
+  "net",
+  "org"
+];
+
+},{}],716:[function(require,module,exports){
+module.exports=require(119)
+},{"/Users/a/dev/faker.js/lib/locales/de/internet/free_email.js":119}],717:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":715,"./free_email":716,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],718:[function(require,module,exports){
+module.exports=require(83)
+},{"./supplemental":719,"./words":720,"/Users/a/dev/faker.js/lib/locales/cz/lorem/index.js":83}],719:[function(require,module,exports){
+module.exports=require(84)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/supplemental.js":84}],720:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],721:[function(require,module,exports){
+module["exports"] = [
+  "Amber",
+  "Anna",
+  "Anne",
+  "Anouk",
+  "Bas",
+  "Bram",
+  "Britt",
+  "Daan",
+  "Emma",
+  "Eva",
+  "Femke",
+  "Finn",
+  "Fleur",
+  "Iris",
+  "Isa",
+  "Jan",
+  "Jasper",
+  "Jayden",
+  "Jesse",
+  "Johannes",
+  "Julia",
+  "Julian",
+  "Kevin",
+  "Lars",
+  "Lieke",
+  "Lisa",
+  "Lotte",
+  "Lucas",
+  "Luuk",
+  "Maud",
+  "Max",
+  "Mike",
+  "Milan",
+  "Nick",
+  "Niels",
+  "Noa",
+  "Rick",
+  "Roos",
+  "Ruben",
+  "Sander",
+  "Sanne",
+  "Sem",
+  "Sophie",
+  "Stijn",
+  "Sven",
+  "Thijs",
+  "Thijs",
+  "Thomas",
+  "Tim",
+  "Tom"
+];
+
+},{}],722:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.tussenvoegsel = require("./tussenvoegsel");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.name = require("./name");
+
+},{"./first_name":721,"./last_name":723,"./name":724,"./prefix":725,"./suffix":726,"./tussenvoegsel":727}],723:[function(require,module,exports){
+module["exports"] = [
+  "Bakker",
+  "Beek",
+  "Berg",
+  "Boer",
+  "Bos",
+  "Bosch",
+  "Brink",
+  "Broek",
+  "Brouwer",
+  "Bruin",
+  "Dam",
+  "Dekker",
+  "Dijk",
+  "Dijkstra",
+  "Graaf",
+  "Groot",
+  "Haan",
+  "Hendriks",
+  "Heuvel",
+  "Hoek",
+  "Jacobs",
+  "Jansen",
+  "Janssen",
+  "Jong",
+  "Klein",
+  "Kok",
+  "Koning",
+  "Koster",
+  "Leeuwen",
+  "Linden",
+  "Maas",
+  "Meer",
+  "Meijer",
+  "Mulder",
+  "Peters",
+  "Ruiter",
+  "Schouten",
+  "Smit",
+  "Smits",
+  "Stichting",
+  "Veen",
+  "Ven",
+  "Vermeulen",
+  "Visser",
+  "Vliet",
+  "Vos",
+  "Vries",
+  "Wal",
+  "Willems",
+  "Wit"
+];
+
+},{}],724:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{first_name} #{last_name}",
+  "#{first_name} #{last_name} #{suffix}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name}",
+  "#{first_name} #{tussenvoegsel} #{last_name}",
+  "#{first_name} #{tussenvoegsel} #{last_name}"
+];
+
+},{}],725:[function(require,module,exports){
+module["exports"] = [
+  "Dhr.",
+  "Mevr. Dr.",
+  "Bsc",
+  "Msc",
+  "Prof."
+];
+
+},{}],726:[function(require,module,exports){
+module.exports=require(680)
+},{"/Users/a/dev/faker.js/lib/locales/nb_NO/name/suffix.js":680}],727:[function(require,module,exports){
+module["exports"] = [
+  "van",
+  "van de",
+  "van den",
+  "van 't",
+  "van het",
+  "de",
+  "den"
+];
+
+},{}],728:[function(require,module,exports){
+module["exports"] = [
+  "(####) ######",
+  "##########",
+  "06########",
+  "06 #### ####"
+];
+
+},{}],729:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":728,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],730:[function(require,module,exports){
+module.exports=require(179)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/building_number.js":179}],731:[function(require,module,exports){
+module.exports=require(55)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/city.js":55}],732:[function(require,module,exports){
+module["exports"] = [
+  "Aleksandrów Kujawski",
+  "Aleksandrów Łódzki",
+  "Alwernia",
+  "Andrychów",
+  "Annopol",
+  "Augustów",
+  "Babimost",
+  "Baborów",
+  "Baranów Sandomierski",
+  "Barcin",
+  "Barczewo",
+  "Bardo",
+  "Barlinek",
+  "Bartoszyce",
+  "Barwice",
+  "Bełchatów",
+  "Bełżyce",
+  "Będzin",
+  "Biała",
+  "Biała Piska",
+  "Biała Podlaska",
+  "Biała Rawska",
+  "Białobrzegi",
+  "Białogard",
+  "Biały Bór",
+  "Białystok",
+  "Biecz",
+  "Bielawa",
+  "Bielsk Podlaski",
+  "Bielsko-Biała",
+  "Bieruń",
+  "Bierutów",
+  "Bieżuń",
+  "Biłgoraj",
+  "Biskupiec",
+  "Bisztynek",
+  "Blachownia",
+  "Błaszki",
+  "Błażowa",
+  "Błonie",
+  "Bobolice",
+  "Bobowa",
+  "Bochnia",
+  "Bodzentyn",
+  "Bogatynia",
+  "Boguchwała",
+  "Boguszów-Gorce",
+  "Bojanowo",
+  "Bolesławiec",
+  "Bolków",
+  "Borek Wielkopolski",
+  "Borne Sulinowo",
+  "Braniewo",
+  "Brańsk",
+  "Brodnica",
+  "Brok",
+  "Brusy",
+  "Brwinów",
+  "Brzeg",
+  "Brzeg Dolny",
+  "Brzesko",
+  "Brzeszcze",
+  "Brześć Kujawski",
+  "Brzeziny",
+  "Brzostek",
+  "Brzozów",
+  "Buk",
+  "Bukowno",
+  "Busko-Zdrój",
+  "Bychawa",
+  "Byczyna",
+  "Bydgoszcz",
+  "Bystrzyca Kłodzka",
+  "Bytom",
+  "Bytom Odrzański",
+  "Bytów",
+  "Cedynia",
+  "Chełm",
+  "Chełmek",
+  "Chełmno",
+  "Chełmża",
+  "Chęciny",
+  "Chmielnik",
+  "Chocianów",
+  "Chociwel",
+  "Chodecz",
+  "Chodzież",
+  "Chojna",
+  "Chojnice",
+  "Chojnów",
+  "Choroszcz",
+  "Chorzele",
+  "Chorzów",
+  "Choszczno",
+  "Chrzanów",
+  "Ciechanowiec",
+  "Ciechanów",
+  "Ciechocinek",
+  "Cieszanów",
+  "Cieszyn",
+  "Ciężkowice",
+  "Cybinka",
+  "Czaplinek",
+  "Czarna Białostocka",
+  "Czarna Woda",
+  "Czarne",
+  "Czarnków",
+  "Czchów",
+  "Czechowice-Dziedzice",
+  "Czeladź",
+  "Czempiń",
+  "Czerniejewo",
+  "Czersk",
+  "Czerwieńsk",
+  "Czerwionka-Leszczyny",
+  "Częstochowa",
+  "Człopa",
+  "Człuchów",
+  "Czyżew",
+  "Ćmielów",
+  "Daleszyce",
+  "Darłowo",
+  "Dąbie",
+  "Dąbrowa Białostocka",
+  "Dąbrowa Górnicza",
+  "Dąbrowa Tarnowska",
+  "Debrzno",
+  "Dębica",
+  "Dęblin",
+  "Dębno",
+  "Dobczyce",
+  "Dobiegniew",
+  "Dobra (powiat łobeski)",
+  "Dobra (powiat turecki)",
+  "Dobre Miasto",
+  "Dobrodzień",
+  "Dobrzany",
+  "Dobrzyń nad Wisłą",
+  "Dolsk",
+  "Drawno",
+  "Drawsko Pomorskie",
+  "Drezdenko",
+  "Drobin",
+  "Drohiczyn",
+  "Drzewica",
+  "Dukla",
+  "Duszniki-Zdrój",
+  "Dynów",
+  "Działdowo",
+  "Działoszyce",
+  "Działoszyn",
+  "Dzierzgoń",
+  "Dzierżoniów",
+  "Dziwnów",
+  "Elbląg",
+  "Ełk",
+  "Frampol",
+  "Frombork",
+  "Garwolin",
+  "Gąbin",
+  "Gdańsk",
+  "Gdynia",
+  "Giżycko",
+  "Glinojeck",
+  "Gliwice",
+  "Głogów",
+  "Głogów Małopolski",
+  "Głogówek",
+  "Głowno",
+  "Głubczyce",
+  "Głuchołazy",
+  "Głuszyca",
+  "Gniew",
+  "Gniewkowo",
+  "Gniezno",
+  "Gogolin",
+  "Golczewo",
+  "Goleniów",
+  "Golina",
+  "Golub-Dobrzyń",
+  "Gołańcz",
+  "Gołdap",
+  "Goniądz",
+  "Gorlice",
+  "Gorzów Śląski",
+  "Gorzów Wielkopolski",
+  "Gostynin",
+  "Gostyń",
+  "Gościno",
+  "Gozdnica",
+  "Góra",
+  "Góra Kalwaria",
+  "Górowo Iławeckie",
+  "Górzno",
+  "Grabów nad Prosną",
+  "Grajewo",
+  "Grodków",
+  "Grodzisk Mazowiecki",
+  "Grodzisk Wielkopolski",
+  "Grójec",
+  "Grudziądz",
+  "Grybów",
+  "Gryfice",
+  "Gryfino",
+  "Gryfów Śląski",
+  "Gubin",
+  "Hajnówka",
+  "Halinów",
+  "Hel",
+  "Hrubieszów",
+  "Iława",
+  "Iłowa",
+  "Iłża",
+  "Imielin",
+  "Inowrocław",
+  "Ińsko",
+  "Iwonicz-Zdrój",
+  "Izbica Kujawska",
+  "Jabłonowo Pomorskie",
+  "Janikowo",
+  "Janowiec Wielkopolski",
+  "Janów Lubelski",
+  "Jarocin",
+  "Jarosław",
+  "Jasień",
+  "Jasło",
+  "Jastarnia",
+  "Jastrowie",
+  "Jastrzębie-Zdrój",
+  "Jawor",
+  "Jaworzno",
+  "Jaworzyna Śląska",
+  "Jedlicze",
+  "Jedlina-Zdrój",
+  "Jedwabne",
+  "Jelcz-Laskowice",
+  "Jelenia Góra",
+  "Jeziorany",
+  "Jędrzejów",
+  "Jordanów",
+  "Józefów (powiat biłgorajski)",
+  "Józefów (powiat otwocki)",
+  "Jutrosin",
+  "Kalety",
+  "Kalisz",
+  "Kalisz Pomorski",
+  "Kalwaria Zebrzydowska",
+  "Kałuszyn",
+  "Kamienna Góra",
+  "Kamień Krajeński",
+  "Kamień Pomorski",
+  "Kamieńsk",
+  "Kańczuga",
+  "Karczew",
+  "Kargowa",
+  "Karlino",
+  "Karpacz",
+  "Kartuzy",
+  "Katowice",
+  "Kazimierz Dolny",
+  "Kazimierza Wielka",
+  "Kąty Wrocławskie",
+  "Kcynia",
+  "Kędzierzyn-Koźle",
+  "Kępice",
+  "Kępno",
+  "Kętrzyn",
+  "Kęty",
+  "Kielce",
+  "Kietrz",
+  "Kisielice",
+  "Kleczew",
+  "Kleszczele",
+  "Kluczbork",
+  "Kłecko",
+  "Kłobuck",
+  "Kłodawa",
+  "Kłodzko",
+  "Knurów",
+  "Knyszyn",
+  "Kobylin",
+  "Kobyłka",
+  "Kock",
+  "Kolbuszowa",
+  "Kolno",
+  "Kolonowskie",
+  "Koluszki",
+  "Kołaczyce",
+  "Koło",
+  "Kołobrzeg",
+  "Koniecpol",
+  "Konin",
+  "Konstancin-Jeziorna",
+  "Konstantynów Łódzki",
+  "Końskie",
+  "Koprzywnica",
+  "Korfantów",
+  "Koronowo",
+  "Korsze",
+  "Kosów Lacki",
+  "Kostrzyn",
+  "Kostrzyn nad Odrą",
+  "Koszalin",
+  "Kościan",
+  "Kościerzyna",
+  "Kowal",
+  "Kowalewo Pomorskie",
+  "Kowary",
+  "Koziegłowy",
+  "Kozienice",
+  "Koźmin Wielkopolski",
+  "Kożuchów",
+  "Kórnik",
+  "Krajenka",
+  "Kraków",
+  "Krapkowice",
+  "Krasnobród",
+  "Krasnystaw",
+  "Kraśnik",
+  "Krobia",
+  "Krosno",
+  "Krosno Odrzańskie",
+  "Krośniewice",
+  "Krotoszyn",
+  "Kruszwica",
+  "Krynica Morska",
+  "Krynica-Zdrój",
+  "Krynki",
+  "Krzanowice",
+  "Krzepice",
+  "Krzeszowice",
+  "Krzywiń",
+  "Krzyż Wielkopolski",
+  "Książ Wielkopolski",
+  "Kudowa-Zdrój",
+  "Kunów",
+  "Kutno",
+  "Kuźnia Raciborska",
+  "Kwidzyn",
+  "Lądek-Zdrój",
+  "Legionowo",
+  "Legnica",
+  "Lesko",
+  "Leszno",
+  "Leśna",
+  "Leśnica",
+  "Lewin Brzeski",
+  "Leżajsk",
+  "Lębork",
+  "Lędziny",
+  "Libiąż",
+  "Lidzbark",
+  "Lidzbark Warmiński",
+  "Limanowa",
+  "Lipiany",
+  "Lipno",
+  "Lipsk",
+  "Lipsko",
+  "Lubaczów",
+  "Lubań",
+  "Lubartów",
+  "Lubawa",
+  "Lubawka",
+  "Lubień Kujawski",
+  "Lubin",
+  "Lublin",
+  "Lubliniec",
+  "Lubniewice",
+  "Lubomierz",
+  "Luboń",
+  "Lubraniec",
+  "Lubsko",
+  "Lwówek",
+  "Lwówek Śląski",
+  "Łabiszyn",
+  "Łańcut",
+  "Łapy",
+  "Łasin",
+  "Łask",
+  "Łaskarzew",
+  "Łaszczów",
+  "Łaziska Górne",
+  "Łazy",
+  "Łeba",
+  "Łęczna",
+  "Łęczyca",
+  "Łęknica",
+  "Łobez",
+  "Łobżenica",
+  "Łochów",
+  "Łomianki",
+  "Łomża",
+  "Łosice",
+  "Łowicz",
+  "Łódź",
+  "Łuków",
+  "Maków Mazowiecki",
+  "Maków Podhalański",
+  "Malbork",
+  "Małogoszcz",
+  "Małomice",
+  "Margonin",
+  "Marki",
+  "Maszewo",
+  "Miasteczko Śląskie",
+  "Miastko",
+  "Michałowo",
+  "Miechów",
+  "Miejska Górka",
+  "Mielec",
+  "Mieroszów",
+  "Mieszkowice",
+  "Międzybórz",
+  "Międzychód",
+  "Międzylesie",
+  "Międzyrzec Podlaski",
+  "Międzyrzecz",
+  "Międzyzdroje",
+  "Mikołajki",
+  "Mikołów",
+  "Mikstat",
+  "Milanówek",
+  "Milicz",
+  "Miłakowo",
+  "Miłomłyn",
+  "Miłosław",
+  "Mińsk Mazowiecki",
+  "Mirosławiec",
+  "Mirsk",
+  "Mława",
+  "Młynary",
+  "Mogielnica",
+  "Mogilno",
+  "Mońki",
+  "Morąg",
+  "Mordy",
+  "Moryń",
+  "Mosina",
+  "Mrągowo",
+  "Mrocza",
+  "Mszana Dolna",
+  "Mszczonów",
+  "Murowana Goślina",
+  "Muszyna",
+  "Mysłowice",
+  "Myszków",
+  "Myszyniec",
+  "Myślenice",
+  "Myślibórz",
+  "Nakło nad Notecią",
+  "Nałęczów",
+  "Namysłów",
+  "Narol",
+  "Nasielsk",
+  "Nekla",
+  "Nidzica",
+  "Niemcza",
+  "Niemodlin",
+  "Niepołomice",
+  "Nieszawa",
+  "Nisko",
+  "Nowa Dęba",
+  "Nowa Ruda",
+  "Nowa Sarzyna",
+  "Nowa Sól",
+  "Nowe",
+  "Nowe Brzesko",
+  "Nowe Miasteczko",
+  "Nowe Miasto Lubawskie",
+  "Nowe Miasto nad Pilicą",
+  "Nowe Skalmierzyce",
+  "Nowe Warpno",
+  "Nowogard",
+  "Nowogrodziec",
+  "Nowogród",
+  "Nowogród Bobrzański",
+  "Nowy Dwór Gdański",
+  "Nowy Dwór Mazowiecki",
+  "Nowy Sącz",
+  "Nowy Staw",
+  "Nowy Targ",
+  "Nowy Tomyśl",
+  "Nowy Wiśnicz",
+  "Nysa",
+  "Oborniki",
+  "Oborniki Śląskie",
+  "Obrzycko",
+  "Odolanów",
+  "Ogrodzieniec",
+  "Okonek",
+  "Olecko",
+  "Olesno",
+  "Oleszyce",
+  "Oleśnica",
+  "Olkusz",
+  "Olsztyn",
+  "Olsztynek",
+  "Olszyna",
+  "Oława",
+  "Opalenica",
+  "Opatów",
+  "Opoczno",
+  "Opole",
+  "Opole Lubelskie",
+  "Orneta",
+  "Orzesze",
+  "Orzysz",
+  "Osieczna",
+  "Osiek",
+  "Ostrołęka",
+  "Ostroróg",
+  "Ostrowiec Świętokrzyski",
+  "Ostróda",
+  "Ostrów Lubelski",
+  "Ostrów Mazowiecka",
+  "Ostrów Wielkopolski",
+  "Ostrzeszów",
+  "Ośno Lubuskie",
+  "Oświęcim",
+  "Otmuchów",
+  "Otwock",
+  "Ozimek",
+  "Ozorków",
+  "Ożarów",
+  "Ożarów Mazowiecki",
+  "Pabianice",
+  "Paczków",
+  "Pajęczno",
+  "Pakość",
+  "Parczew",
+  "Pasłęk",
+  "Pasym",
+  "Pelplin",
+  "Pełczyce",
+  "Piaseczno",
+  "Piaski",
+  "Piastów",
+  "Piechowice",
+  "Piekary Śląskie",
+  "Pieniężno",
+  "Pieńsk",
+  "Pieszyce",
+  "Pilawa",
+  "Pilica",
+  "Pilzno",
+  "Piła",
+  "Piława Górna",
+  "Pińczów",
+  "Pionki",
+  "Piotrków Kujawski",
+  "Piotrków Trybunalski",
+  "Pisz",
+  "Piwniczna-Zdrój",
+  "Pleszew",
+  "Płock",
+  "Płońsk",
+  "Płoty",
+  "Pniewy",
+  "Pobiedziska",
+  "Poddębice",
+  "Podkowa Leśna",
+  "Pogorzela",
+  "Polanica-Zdrój",
+  "Polanów",
+  "Police",
+  "Polkowice",
+  "Połaniec",
+  "Połczyn-Zdrój",
+  "Poniatowa",
+  "Poniec",
+  "Poręba",
+  "Poznań",
+  "Prabuty",
+  "Praszka",
+  "Prochowice",
+  "Proszowice",
+  "Prószków",
+  "Pruchnik",
+  "Prudnik",
+  "Prusice",
+  "Pruszcz Gdański",
+  "Pruszków",
+  "Przasnysz",
+  "Przecław",
+  "Przedbórz",
+  "Przedecz",
+  "Przemków",
+  "Przemyśl",
+  "Przeworsk",
+  "Przysucha",
+  "Pszczyna",
+  "Pszów",
+  "Puck",
+  "Puławy",
+  "Pułtusk",
+  "Puszczykowo",
+  "Pyrzyce",
+  "Pyskowice",
+  "Pyzdry",
+  "Rabka-Zdrój",
+  "Raciąż",
+  "Racibórz",
+  "Radków",
+  "Radlin",
+  "Radłów",
+  "Radom",
+  "Radomsko",
+  "Radomyśl Wielki",
+  "Radymno",
+  "Radziejów",
+  "Radzionków",
+  "Radzymin",
+  "Radzyń Chełmiński",
+  "Radzyń Podlaski",
+  "Rajgród",
+  "Rakoniewice",
+  "Raszków",
+  "Rawa Mazowiecka",
+  "Rawicz",
+  "Recz",
+  "Reda",
+  "Rejowiec Fabryczny",
+  "Resko",
+  "Reszel",
+  "Rogoźno",
+  "Ropczyce",
+  "Różan",
+  "Ruciane-Nida",
+  "Ruda Śląska",
+  "Rudnik nad Sanem",
+  "Rumia",
+  "Rybnik",
+  "Rychwał",
+  "Rydułtowy",
+  "Rydzyna",
+  "Ryglice",
+  "Ryki",
+  "Rymanów",
+  "Ryn",
+  "Rypin",
+  "Rzepin",
+  "Rzeszów",
+  "Rzgów",
+  "Sandomierz",
+  "Sanok",
+  "Sejny",
+  "Serock",
+  "Sędziszów",
+  "Sędziszów Małopolski",
+  "Sępopol",
+  "Sępólno Krajeńskie",
+  "Sianów",
+  "Siechnice",
+  "Siedlce",
+  "Siemianowice Śląskie",
+  "Siemiatycze",
+  "Sieniawa",
+  "Sieradz",
+  "Sieraków",
+  "Sierpc",
+  "Siewierz",
+  "Skalbmierz",
+  "Skała",
+  "Skarszewy",
+  "Skaryszew",
+  "Skarżysko-Kamienna",
+  "Skawina",
+  "Skępe",
+  "Skierniewice",
+  "Skoczów",
+  "Skoki",
+  "Skórcz",
+  "Skwierzyna",
+  "Sława",
+  "Sławków",
+  "Sławno",
+  "Słomniki",
+  "Słubice",
+  "Słupca",
+  "Słupsk",
+  "Sobótka",
+  "Sochaczew",
+  "Sokołów Małopolski",
+  "Sokołów Podlaski",
+  "Sokółka",
+  "Solec Kujawski",
+  "Sompolno",
+  "Sopot",
+  "Sosnowiec",
+  "Sośnicowice",
+  "Stalowa Wola",
+  "Starachowice",
+  "Stargard Szczeciński",
+  "Starogard Gdański",
+  "Stary Sącz",
+  "Staszów",
+  "Stawiski",
+  "Stawiszyn",
+  "Stąporków",
+  "Stęszew",
+  "Stoczek Łukowski",
+  "Stronie Śląskie",
+  "Strumień",
+  "Stryków",
+  "Strzegom",
+  "Strzelce Krajeńskie",
+  "Strzelce Opolskie",
+  "Strzelin",
+  "Strzelno",
+  "Strzyżów",
+  "Sucha Beskidzka",
+  "Suchań",
+  "Suchedniów",
+  "Suchowola",
+  "Sulechów",
+  "Sulejów",
+  "Sulejówek",
+  "Sulęcin",
+  "Sulmierzyce",
+  "Sułkowice",
+  "Supraśl",
+  "Suraż",
+  "Susz",
+  "Suwałki",
+  "Swarzędz",
+  "Syców",
+  "Szadek",
+  "Szamocin",
+  "Szamotuły",
+  "Szczawnica",
+  "Szczawno-Zdrój",
+  "Szczebrzeszyn",
+  "Szczecin",
+  "Szczecinek",
+  "Szczekociny",
+  "Szczucin",
+  "Szczuczyn",
+  "Szczyrk",
+  "Szczytna",
+  "Szczytno",
+  "Szepietowo",
+  "Szklarska Poręba",
+  "Szlichtyngowa",
+  "Szprotawa",
+  "Sztum",
+  "Szubin",
+  "Szydłowiec",
+  "Ścinawa",
+  "Ślesin",
+  "Śmigiel",
+  "Śrem",
+  "Środa Śląska",
+  "Środa Wielkopolska",
+  "Świątniki Górne",
+  "Świdnica",
+  "Świdnik",
+  "Świdwin",
+  "Świebodzice",
+  "Świebodzin",
+  "Świecie",
+  "Świeradów-Zdrój",
+  "Świerzawa",
+  "Świętochłowice",
+  "Świnoujście",
+  "Tarczyn",
+  "Tarnobrzeg",
+  "Tarnogród",
+  "Tarnowskie Góry",
+  "Tarnów",
+  "Tczew",
+  "Terespol",
+  "Tłuszcz",
+  "Tolkmicko",
+  "Tomaszów Lubelski",
+  "Tomaszów Mazowiecki",
+  "Toruń",
+  "Torzym",
+  "Toszek",
+  "Trzcianka",
+  "Trzciel",
+  "Trzcińsko-Zdrój",
+  "Trzebiatów",
+  "Trzebinia",
+  "Trzebnica",
+  "Trzemeszno",
+  "Tuchola",
+  "Tuchów",
+  "Tuczno",
+  "Tuliszków",
+  "Turek",
+  "Tuszyn",
+  "Twardogóra",
+  "Tychowo",
+  "Tychy",
+  "Tyczyn",
+  "Tykocin",
+  "Tyszowce",
+  "Ujazd",
+  "Ujście",
+  "Ulanów",
+  "Uniejów",
+  "Ustka",
+  "Ustroń",
+  "Ustrzyki Dolne",
+  "Wadowice",
+  "Wałbrzych",
+  "Wałcz",
+  "Warka",
+  "Warszawa",
+  "Warta",
+  "Wasilków",
+  "Wąbrzeźno",
+  "Wąchock",
+  "Wągrowiec",
+  "Wąsosz",
+  "Wejherowo",
+  "Węgliniec",
+  "Węgorzewo",
+  "Węgorzyno",
+  "Węgrów",
+  "Wiązów",
+  "Wieleń",
+  "Wielichowo",
+  "Wieliczka",
+  "Wieluń",
+  "Wieruszów",
+  "Więcbork",
+  "Wilamowice",
+  "Wisła",
+  "Witkowo",
+  "Witnica",
+  "Wleń",
+  "Władysławowo",
+  "Włocławek",
+  "Włodawa",
+  "Włoszczowa",
+  "Wodzisław Śląski",
+  "Wojcieszów",
+  "Wojkowice",
+  "Wojnicz",
+  "Wolbórz",
+  "Wolbrom",
+  "Wolin",
+  "Wolsztyn",
+  "Wołczyn",
+  "Wołomin",
+  "Wołów",
+  "Woźniki",
+  "Wrocław",
+  "Wronki",
+  "Września",
+  "Wschowa",
+  "Wyrzysk",
+  "Wysoka",
+  "Wysokie Mazowieckie",
+  "Wyszków",
+  "Wyszogród",
+  "Wyśmierzyce",
+  "Zabłudów",
+  "Zabrze",
+  "Zagórów",
+  "Zagórz",
+  "Zakliczyn",
+  "Zakopane",
+  "Zakroczym",
+  "Zalewo",
+  "Zambrów",
+  "Zamość",
+  "Zator",
+  "Zawadzkie",
+  "Zawichost",
+  "Zawidów",
+  "Zawiercie",
+  "Ząbki",
+  "Ząbkowice Śląskie",
+  "Zbąszynek",
+  "Zbąszyń",
+  "Zduny",
+  "Zduńska Wola",
+  "Zdzieszowice",
+  "Zelów",
+  "Zgierz",
+  "Zgorzelec",
+  "Zielona Góra",
+  "Zielonka",
+  "Ziębice",
+  "Złocieniec",
+  "Złoczew",
+  "Złotoryja",
+  "Złotów",
+  "Złoty Stok",
+  "Zwierzyniec",
+  "Zwoleń",
+  "Żabno",
+  "Żagań",
+  "Żarki",
+  "Żarów",
+  "Żary",
+  "Żelechów",
+  "Żerków",
+  "Żmigród",
+  "Żnin",
+  "Żory",
+  "Żukowo",
+  "Żuromin",
+  "Żychlin",
+  "Żyrardów",
+  "Żywiec"
+];
+
+},{}],733:[function(require,module,exports){
+module["exports"] = [
+  "Afganistan",
+  "Albania",
+  "Algieria",
+  "Andora",
+  "Angola",
+  "Antigua i Barbuda",
+  "Arabia Saudyjska",
+  "Argentyna",
+  "Armenia",
+  "Australia",
+  "Austria",
+  "Azerbejdżan",
+  "Bahamy",
+  "Bahrajn",
+  "Bangladesz",
+  "Barbados",
+  "Belgia",
+  "Belize",
+  "Benin",
+  "Bhutan",
+  "Białoruś",
+  "Birma",
+  "Boliwia",
+  "Sucre",
+  "Bośnia i Hercegowina",
+  "Botswana",
+  "Brazylia",
+  "Brunei",
+  "Bułgaria",
+  "Burkina Faso",
+  "Burundi",
+  "Chile",
+  "Chiny",
+  "Chorwacja",
+  "Cypr",
+  "Czad",
+  "Czarnogóra",
+  "Czechy",
+  "Dania",
+  "Demokratyczna Republika Konga",
+  "Dominika",
+  "Dominikana",
+  "Dżibuti",
+  "Egipt",
+  "Ekwador",
+  "Erytrea",
+  "Estonia",
+  "Etiopia",
+  "Fidżi",
+  "Filipiny",
+  "Finlandia",
+  "Francja",
+  "Gabon",
+  "Gambia",
+  "Ghana",
+  "Grecja",
+  "Grenada",
+  "Gruzja",
+  "Gujana",
+  "Gwatemala",
+  "Gwinea",
+  "Gwinea Bissau",
+  "Gwinea Równikowa",
+  "Haiti",
+  "Hiszpania",
+  "Holandia",
+  "Haga",
+  "Honduras",
+  "Indie",
+  "Indonezja",
+  "Irak",
+  "Iran",
+  "Irlandia",
+  "Islandia",
+  "Izrael",
+  "Jamajka",
+  "Japonia",
+  "Jemen",
+  "Jordania",
+  "Kambodża",
+  "Kamerun",
+  "Kanada",
+  "Katar",
+  "Kazachstan",
+  "Kenia",
+  "Kirgistan",
+  "Kiribati",
+  "Kolumbia",
+  "Komory",
+  "Kongo",
+  "Korea Południowa",
+  "Korea Północna",
+  "Kostaryka",
+  "Kuba",
+  "Kuwejt",
+  "Laos",
+  "Lesotho",
+  "Liban",
+  "Liberia",
+  "Libia",
+  "Liechtenstein",
+  "Litwa",
+  "Luksemburg",
+  "Łotwa",
+  "Macedonia",
+  "Madagaskar",
+  "Malawi",
+  "Malediwy",
+  "Malezja",
+  "Mali",
+  "Malta",
+  "Maroko",
+  "Mauretania",
+  "Mauritius",
+  "Meksyk",
+  "Mikronezja",
+  "Mołdawia",
+  "Monako",
+  "Mongolia",
+  "Mozambik",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Niemcy",
+  "Niger",
+  "Nigeria",
+  "Nikaragua",
+  "Norwegia",
+  "Nowa Zelandia",
+  "Oman",
+  "Pakistan",
+  "Palau",
+  "Panama",
+  "Papua-Nowa Gwinea",
+  "Paragwaj",
+  "Peru",
+  "Polska",
+  "322 575",
+  "Portugalia",
+  "Republika Południowej Afryki",
+  "Republika Środkowoafrykańska",
+  "Republika Zielonego Przylądka",
+  "Rosja",
+  "Rumunia",
+  "Rwanda",
+  "Saint Kitts i Nevis",
+  "Saint Lucia",
+  "Saint Vincent i Grenadyny",
+  "Salwador",
+  "Samoa",
+  "San Marino",
+  "Senegal",
+  "Serbia",
+  "Seszele",
+  "Sierra Leone",
+  "Singapur",
+  "Słowacja",
+  "Słowenia",
+  "Somalia",
+  "Sri Lanka",
+  "Stany Zjednoczone",
+  "Suazi",
+  "Sudan",
+  "Sudan Południowy",
+  "Surinam",
+  "Syria",
+  "Szwajcaria",
+  "Szwecja",
+  "Tadżykistan",
+  "Tajlandia",
+  "Tanzania",
+  "Timor Wschodni",
+  "Togo",
+  "Tonga",
+  "Trynidad i Tobago",
+  "Tunezja",
+  "Turcja",
+  "Turkmenistan",
+  "Tuvalu",
+  "Funafuti",
+  "Uganda",
+  "Ukraina",
+  "Urugwaj",
+  2008,
+  "Uzbekistan",
+  "Vanuatu",
+  "Watykan",
+  "Wenezuela",
+  "Węgry",
+  "Wielka Brytania",
+  "Wietnam",
+  "Włochy",
+  "Wybrzeże Kości Słoniowej",
+  "Wyspy Marshalla",
+  "Wyspy Salomona",
+  "Wyspy Świętego Tomasza i Książęca",
+  "Zambia",
+  "Zimbabwe",
+  "Zjednoczone Emiraty Arabskie"
+];
+
+},{}],734:[function(require,module,exports){
+module["exports"] = [
+  "Polska"
+];
+
+},{}],735:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_prefix = require("./street_prefix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":730,"./city":731,"./city_name":732,"./country":733,"./default_country":734,"./postcode":736,"./secondary_address":737,"./state":738,"./state_abbr":739,"./street_address":740,"./street_name":741,"./street_prefix":742}],736:[function(require,module,exports){
+module["exports"] = [
+  "##-###"
+];
+
+},{}],737:[function(require,module,exports){
+module.exports=require(61)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/secondary_address.js":61}],738:[function(require,module,exports){
+module["exports"] = [
+  "Dolnośląskie",
+  "Kujawsko-pomorskie",
+  "Lubelskie",
+  "Lubuskie",
+  "Łódzkie",
+  "Małopolskie",
+  "Mazowieckie",
+  "Opolskie",
+  "Podkarpackie",
+  "Podlaskie",
+  "Pomorskie",
+  "Śląskie",
+  "Świętokrzyskie",
+  "Warmińsko-mazurskie",
+  "Wielkopolskie",
+  "Zachodniopomorskie"
+];
+
+},{}],739:[function(require,module,exports){
+module["exports"] = [
+  "DŚ",
+  "KP",
+  "LB",
+  "LS",
+  "ŁD",
+  "MP",
+  "MZ",
+  "OP",
+  "PK",
+  "PL",
+  "PM",
+  "ŚL",
+  "ŚK",
+  "WM",
+  "WP",
+  "ZP"
+];
+
+},{}],740:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],741:[function(require,module,exports){
+module["exports"] = [
+  "#{street_prefix} #{Name.last_name}"
+];
+
+},{}],742:[function(require,module,exports){
+module["exports"] = [
+  "ul.",
+  "al."
+];
+
+},{}],743:[function(require,module,exports){
+module["exports"] = [
+  "50-###-##-##",
+  "51-###-##-##",
+  "53-###-##-##",
+  "57-###-##-##",
+  "60-###-##-##",
+  "66-###-##-##",
+  "69-###-##-##",
+  "72-###-##-##",
+  "73-###-##-##",
+  "78-###-##-##",
+  "79-###-##-##",
+  "88-###-##-##"
+];
+
+},{}],744:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":743,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],745:[function(require,module,exports){
+module.exports=require(68)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/adjective.js":68}],746:[function(require,module,exports){
+module.exports=require(212)
+},{"/Users/a/dev/faker.js/lib/locales/en/company/bs_adjective.js":212}],747:[function(require,module,exports){
+module.exports=require(213)
+},{"/Users/a/dev/faker.js/lib/locales/en/company/bs_noun.js":213}],748:[function(require,module,exports){
+module.exports=require(70)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/bs_verb.js":70}],749:[function(require,module,exports){
+module.exports=require(71)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/descriptor.js":71}],750:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
+company.adjetive = require("./adjetive");
+company.descriptor = require("./descriptor");
+company.noun = require("./noun");
+company.bs_verb = require("./bs_verb");
+company.bs_adjective = require("./bs_adjective");
+company.bs_noun = require("./bs_noun");
+company.name = require("./name");
+
+},{"./adjetive":745,"./bs_adjective":746,"./bs_noun":747,"./bs_verb":748,"./descriptor":749,"./name":751,"./noun":752,"./suffix":753}],751:[function(require,module,exports){
+module.exports=require(217)
+},{"/Users/a/dev/faker.js/lib/locales/en/company/name.js":217}],752:[function(require,module,exports){
+module.exports=require(74)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/noun.js":74}],753:[function(require,module,exports){
+module.exports=require(219)
+},{"/Users/a/dev/faker.js/lib/locales/en/company/suffix.js":219}],754:[function(require,module,exports){
+var pl = {};
+module['exports'] = pl;
+pl.title = "Polish";
+pl.name = require("./name");
+pl.address = require("./address");
+pl.company = require("./company");
+pl.internet = require("./internet");
+pl.lorem = require("./lorem");
+pl.phone_number = require("./phone_number");
+pl.cell_phone = require("./cell_phone");
+
+},{"./address":735,"./cell_phone":744,"./company":750,"./internet":757,"./lorem":758,"./name":762,"./phone_number":768}],755:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "pl",
+  "com.pl",
+  "net",
+  "org"
+];
+
+},{}],756:[function(require,module,exports){
+module.exports=require(119)
+},{"/Users/a/dev/faker.js/lib/locales/de/internet/free_email.js":119}],757:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":755,"./free_email":756,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],758:[function(require,module,exports){
+module.exports=require(83)
+},{"./supplemental":759,"./words":760,"/Users/a/dev/faker.js/lib/locales/cz/lorem/index.js":83}],759:[function(require,module,exports){
+module.exports=require(84)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/supplemental.js":84}],760:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],761:[function(require,module,exports){
+module["exports"] = [
+  "Aaron",
+  "Abraham",
+  "Adam",
+  "Adrian",
+  "Atanazy",
+  "Agaton",
+  "Alan",
+  "Albert",
+  "Aleksander",
+  "Aleksy",
+  "Alfred",
+  "Alwar",
+  "Ambroży",
+  "Anatol",
+  "Andrzej",
+  "Antoni",
+  "Apollinary",
+  "Apollo",
+  "Arkady",
+  "Arkadiusz",
+  "Archibald",
+  "Arystarch",
+  "Arnold",
+  "Arseniusz",
+  "Artur",
+  "August",
+  "Baldwin",
+  "Bazyli",
+  "Benedykt",
+  "Beniamin",
+  "Bernard",
+  "Bertrand",
+  "Bertram",
+  "Borys",
+  "Brajan",
+  "Bruno",
+  "Cezary",
+  "Cecyliusz",
+  "Karol",
+  "Krystian",
+  "Krzysztof",
+  "Klarencjusz",
+  "Klaudiusz",
+  "Klemens",
+  "Konrad",
+  "Konstanty",
+  "Konstantyn",
+  "Kornel",
+  "Korneliusz",
+  "Korneli",
+  "Cyryl",
+  "Cyrus",
+  "Damian",
+  "Daniel",
+  "Dariusz",
+  "Dawid",
+  "Dionizy",
+  "Demetriusz",
+  "Dominik",
+  "Donald",
+  "Dorian",
+  "Edgar",
+  "Edmund",
+  "Edward",
+  "Edwin",
+  "Efrem",
+  "Efraim",
+  "Eliasz",
+  "Eleazar",
+  "Emil",
+  "Emanuel",
+  "Erast",
+  "Ernest",
+  "Eugeniusz",
+  "Eustracjusz",
+  "Fabian",
+  "Feliks",
+  "Florian",
+  "Franciszek",
+  "Fryderyk",
+  "Gabriel",
+  "Gedeon",
+  "Galfryd",
+  "Jerzy",
+  "Gerald",
+  "Gerazym",
+  "Gilbert",
+  "Gonsalwy",
+  "Grzegorz",
+  "Gwido",
+  "Harald",
+  "Henryk",
+  "Herbert",
+  "Herman",
+  "Hilary",
+  "Horacy",
+  "Hubert",
+  "Hugo",
+  "Ignacy",
+  "Igor",
+  "Hilarion",
+  "Innocenty",
+  "Hipolit",
+  "Ireneusz",
+  "Erwin",
+  "Izaak",
+  "Izajasz",
+  "Izydor",
+  "Jakub",
+  "Jeremi",
+  "Jeremiasz",
+  "Hieronim",
+  "Gerald",
+  "Joachim",
+  "Jan",
+  "Janusz",
+  "Jonatan",
+  "Józef",
+  "Jozue",
+  "Julian",
+  "Juliusz",
+  "Justyn",
+  "Kalistrat",
+  "Kazimierz",
+  "Wawrzyniec",
+  "Laurenty",
+  "Laurencjusz",
+  "Łazarz",
+  "Leon",
+  "Leonard",
+  "Leonid",
+  "Leon",
+  "Ludwik",
+  "Łukasz",
+  "Lucjan",
+  "Magnus",
+  "Makary",
+  "Marceli",
+  "Marek",
+  "Marcin",
+  "Mateusz",
+  "Maurycy",
+  "Maksym",
+  "Maksymilian",
+  "Michał",
+  "Miron",
+  "Modest",
+  "Mojżesz",
+  "Natan",
+  "Natanael",
+  "Nazariusz",
+  "Nazary",
+  "Nestor",
+  "Mikołaj",
+  "Nikodem",
+  "Olaf",
+  "Oleg",
+  "Oliwier",
+  "Onufry",
+  "Orestes",
+  "Oskar",
+  "Ansgary",
+  "Osmund",
+  "Pankracy",
+  "Pantaleon",
+  "Patryk",
+  "Patrycjusz",
+  "Patrycy",
+  "Paweł",
+  "Piotr",
+  "Filemon",
+  "Filip",
+  "Platon",
+  "Polikarp",
+  "Porfiry",
+  "Porfiriusz",
+  "Prokles",
+  "Prokul",
+  "Prokop",
+  "Kwintyn",
+  "Randolf",
+  "Rafał",
+  "Rajmund",
+  "Reginald",
+  "Rajnold",
+  "Ryszard",
+  "Robert",
+  "Roderyk",
+  "Roger",
+  "Roland",
+  "Roman",
+  "Romeo",
+  "Reginald",
+  "Rudolf",
+  "Samson",
+  "Samuel",
+  "Salwator",
+  "Sebastian",
+  "Serafin",
+  "Sergiusz",
+  "Seweryn",
+  "Zygmunt",
+  "Sylwester",
+  "Szymon",
+  "Salomon",
+  "Spirydion",
+  "Stanisław",
+  "Szczepan",
+  "Stefan",
+  "Terencjusz",
+  "Teodor",
+  "Tomasz",
+  "Tymoteusz",
+  "Tobiasz",
+  "Walenty",
+  "Walentyn",
+  "Walerian",
+  "Walery",
+  "Wiktor",
+  "Wincenty",
+  "Witalis",
+  "Włodzimierz",
+  "Władysław",
+  "Błażej",
+  "Walter",
+  "Walgierz",
+  "Wacław",
+  "Wilfryd",
+  "Wilhelm",
+  "Ksawery",
+  "Ksenofont",
+  "Jerzy",
+  "Zachariasz",
+  "Zachary",
+  "Ada",
+  "Adelajda",
+  "Agata",
+  "Agnieszka",
+  "Agrypina",
+  "Aida",
+  "Aleksandra",
+  "Alicja",
+  "Alina",
+  "Amanda",
+  "Anastazja",
+  "Angela",
+  "Andżelika",
+  "Angelina",
+  "Anna",
+  "Hanna",
+  "—",
+  "Antonina",
+  "Ariadna",
+  "Aurora",
+  "Barbara",
+  "Beatrycze",
+  "Berta",
+  "Brygida",
+  "Kamila",
+  "Karolina",
+  "Karolina",
+  "Kornelia",
+  "Katarzyna",
+  "Cecylia",
+  "Karolina",
+  "Chloe",
+  "Krystyna",
+  "Klara",
+  "Klaudia",
+  "Klementyna",
+  "Konstancja",
+  "Koralia",
+  "Daria",
+  "Diana",
+  "Dina",
+  "Dorota",
+  "Edyta",
+  "Eleonora",
+  "Eliza",
+  "Elżbieta",
+  "Izabela",
+  "Elwira",
+  "Emilia",
+  "Estera",
+  "Eudoksja",
+  "Eudokia",
+  "Eugenia",
+  "Ewa",
+  "Ewelina",
+  "Ferdynanda",
+  "Florencja",
+  "Franciszka",
+  "Gabriela",
+  "Gertruda",
+  "Gloria",
+  "Gracja",
+  "Jadwiga",
+  "Helena",
+  "Henryka",
+  "Nadzieja",
+  "Ida",
+  "Ilona",
+  "Helena",
+  "Irena",
+  "Irma",
+  "Izabela",
+  "Izolda",
+  "Jakubina",
+  "Joanna",
+  "Janina",
+  "Żaneta",
+  "Joanna",
+  "Ginewra",
+  "Józefina",
+  "Judyta",
+  "Julia",
+  "Julia",
+  "Julita",
+  "Justyna",
+  "Kira",
+  "Cyra",
+  "Kleopatra",
+  "Larysa",
+  "Laura",
+  "Laurencja",
+  "Laurentyna",
+  "Lea",
+  "Leila",
+  "Eleonora",
+  "Liliana",
+  "Lilianna",
+  "Lilia",
+  "Lilla",
+  "Liza",
+  "Eliza",
+  "Laura",
+  "Ludwika",
+  "Luiza",
+  "Łucja",
+  "Lucja",
+  "Lidia",
+  "Amabela",
+  "Magdalena",
+  "Malwina",
+  "Małgorzata",
+  "Greta",
+  "Marianna",
+  "Maryna",
+  "Marta",
+  "Martyna",
+  "Maria",
+  "Matylda",
+  "Maja",
+  "Maja",
+  "Melania",
+  "Michalina",
+  "Monika",
+  "Nadzieja",
+  "Noemi",
+  "Natalia",
+  "Nikola",
+  "Nina",
+  "Olga",
+  "Olimpia",
+  "Oliwia",
+  "Ofelia",
+  "Patrycja",
+  "Paula",
+  "Pelagia",
+  "Penelopa",
+  "Filipa",
+  "Paulina",
+  "Rachela",
+  "Rebeka",
+  "Regina",
+  "Renata",
+  "Rozalia",
+  "Róża",
+  "Roksana",
+  "Rufina",
+  "Ruta",
+  "Sabina",
+  "Sara",
+  "Serafina",
+  "Sybilla",
+  "Sylwia",
+  "Zofia",
+  "Stella",
+  "Stefania",
+  "Zuzanna",
+  "Tamara",
+  "Tacjana",
+  "Tekla",
+  "Teodora",
+  "Teresa",
+  "Walentyna",
+  "Waleria",
+  "Wanesa",
+  "Wiara",
+  "Weronika",
+  "Wiktoria",
+  "Wirginia",
+  "Bibiana",
+  "Bibianna",
+  "Wanda",
+  "Wilhelmina",
+  "Ksawera",
+  "Ksenia",
+  "Zoe"
+];
+
+},{}],762:[function(require,module,exports){
+arguments[4][493][0].apply(exports,arguments)
+},{"./first_name":761,"./last_name":763,"./name":764,"./prefix":765,"./title":766,"/Users/a/dev/faker.js/lib/locales/fr/name/index.js":493}],763:[function(require,module,exports){
+module["exports"] = [
+  "Adamczak",
+  "Adamczyk",
+  "Adamek",
+  "Adamiak",
+  "Adamiec",
+  "Adamowicz",
+  "Adamski",
+  "Adamus",
+  "Aleksandrowicz",
+  "Andrzejczak",
+  "Andrzejewski",
+  "Antczak",
+  "Augustyn",
+  "Augustyniak",
+  "Bagiński",
+  "Balcerzak",
+  "Banach",
+  "Banasiak",
+  "Banasik",
+  "Banaś",
+  "Baran",
+  "Baranowski",
+  "Barański",
+  "Bartczak",
+  "Bartkowiak",
+  "Bartnik",
+  "Bartosik",
+  "Bednarczyk",
+  "Bednarek",
+  "Bednarski",
+  "Bednarz",
+  "Białas",
+  "Białek",
+  "Białkowski",
+  "Bielak",
+  "Bielawski",
+  "Bielecki",
+  "Bielski",
+  "Bieniek",
+  "Biernacki",
+  "Biernat",
+  "Bieńkowski",
+  "Bilski",
+  "Bober",
+  "Bochenek",
+  "Bogucki",
+  "Bogusz",
+  "Borek",
+  "Borkowski",
+  "Borowiec",
+  "Borowski",
+  "Bożek",
+  "Broda",
+  "Brzeziński",
+  "Brzozowski",
+  "Buczek",
+  "Buczkowski",
+  "Buczyński",
+  "Budziński",
+  "Budzyński",
+  "Bujak",
+  "Bukowski",
+  "Burzyński",
+  "Bąk",
+  "Bąkowski",
+  "Błaszczak",
+  "Błaszczyk",
+  "Cebula",
+  "Chmiel",
+  "Chmielewski",
+  "Chmura",
+  "Chojnacki",
+  "Chojnowski",
+  "Cholewa",
+  "Chrzanowski",
+  "Chudzik",
+  "Cichocki",
+  "Cichoń",
+  "Cichy",
+  "Ciesielski",
+  "Cieśla",
+  "Cieślak",
+  "Cieślik",
+  "Ciszewski",
+  "Cybulski",
+  "Cygan",
+  "Czaja",
+  "Czajka",
+  "Czajkowski",
+  "Czapla",
+  "Czarnecki",
+  "Czech",
+  "Czechowski",
+  "Czekaj",
+  "Czerniak",
+  "Czerwiński",
+  "Czyż",
+  "Czyżewski",
+  "Dec",
+  "Dobosz",
+  "Dobrowolski",
+  "Dobrzyński",
+  "Domagała",
+  "Domański",
+  "Dominiak",
+  "Drabik",
+  "Drozd",
+  "Drozdowski",
+  "Drzewiecki",
+  "Dróżdż",
+  "Dubiel",
+  "Duda",
+  "Dudek",
+  "Dudziak",
+  "Dudzik",
+  "Dudziński",
+  "Duszyński",
+  "Dziedzic",
+  "Dziuba",
+  "Dąbek",
+  "Dąbkowski",
+  "Dąbrowski",
+  "Dębowski",
+  "Dębski",
+  "Długosz",
+  "Falkowski",
+  "Fijałkowski",
+  "Filipek",
+  "Filipiak",
+  "Filipowicz",
+  "Flak",
+  "Flis",
+  "Florczak",
+  "Florek",
+  "Frankowski",
+  "Frąckowiak",
+  "Frączek",
+  "Frątczak",
+  "Furman",
+  "Gadomski",
+  "Gajda",
+  "Gajewski",
+  "Gaweł",
+  "Gawlik",
+  "Gawron",
+  "Gawroński",
+  "Gałka",
+  "Gałązka",
+  "Gil",
+  "Godlewski",
+  "Golec",
+  "Gołąb",
+  "Gołębiewski",
+  "Gołębiowski",
+  "Grabowski",
+  "Graczyk",
+  "Grochowski",
+  "Grudzień",
+  "Gruszczyński",
+  "Gruszka",
+  "Grzegorczyk",
+  "Grzelak",
+  "Grzesiak",
+  "Grzesik",
+  "Grześkowiak",
+  "Grzyb",
+  "Grzybowski",
+  "Grzywacz",
+  "Gutowski",
+  "Guzik",
+  "Gwóźdź",
+  "Góra",
+  "Góral",
+  "Górecki",
+  "Górka",
+  "Górniak",
+  "Górny",
+  "Górski",
+  "Gąsior",
+  "Gąsiorowski",
+  "Głogowski",
+  "Głowacki",
+  "Głąb",
+  "Hajduk",
+  "Herman",
+  "Iwański",
+  "Izdebski",
+  "Jabłoński",
+  "Jackowski",
+  "Jagielski",
+  "Jagiełło",
+  "Jagodziński",
+  "Jakubiak",
+  "Jakubowski",
+  "Janas",
+  "Janiak",
+  "Janicki",
+  "Janik",
+  "Janiszewski",
+  "Jankowiak",
+  "Jankowski",
+  "Janowski",
+  "Janus",
+  "Janusz",
+  "Januszewski",
+  "Jaros",
+  "Jarosz",
+  "Jarząbek",
+  "Jasiński",
+  "Jastrzębski",
+  "Jaworski",
+  "Jaśkiewicz",
+  "Jezierski",
+  "Jurek",
+  "Jurkiewicz",
+  "Jurkowski",
+  "Juszczak",
+  "Jóźwiak",
+  "Jóźwik",
+  "Jędrzejczak",
+  "Jędrzejczyk",
+  "Jędrzejewski",
+  "Kacprzak",
+  "Kaczmarczyk",
+  "Kaczmarek",
+  "Kaczmarski",
+  "Kaczor",
+  "Kaczorowski",
+  "Kaczyński",
+  "Kaleta",
+  "Kalinowski",
+  "Kalisz",
+  "Kamiński",
+  "Kania",
+  "Kaniewski",
+  "Kapusta",
+  "Karaś",
+  "Karczewski",
+  "Karpiński",
+  "Karwowski",
+  "Kasperek",
+  "Kasprzak",
+  "Kasprzyk",
+  "Kaszuba",
+  "Kawa",
+  "Kawecki",
+  "Kałuża",
+  "Kaźmierczak",
+  "Kiełbasa",
+  "Kisiel",
+  "Kita",
+  "Klimczak",
+  "Klimek",
+  "Kmiecik",
+  "Kmieć",
+  "Knapik",
+  "Kobus",
+  "Kogut",
+  "Kolasa",
+  "Komorowski",
+  "Konieczna",
+  "Konieczny",
+  "Konopka",
+  "Kopczyński",
+  "Koper",
+  "Kopeć",
+  "Korzeniowski",
+  "Kos",
+  "Kosiński",
+  "Kosowski",
+  "Kostecki",
+  "Kostrzewa",
+  "Kot",
+  "Kotowski",
+  "Kowal",
+  "Kowalczuk",
+  "Kowalczyk",
+  "Kowalewski",
+  "Kowalik",
+  "Kowalski",
+  "Koza",
+  "Kozak",
+  "Kozieł",
+  "Kozioł",
+  "Kozłowski",
+  "Kołakowski",
+  "Kołodziej",
+  "Kołodziejczyk",
+  "Kołodziejski",
+  "Krajewski",
+  "Krakowiak",
+  "Krawczyk",
+  "Krawiec",
+  "Kruk",
+  "Krukowski",
+  "Krupa",
+  "Krupiński",
+  "Kruszewski",
+  "Krysiak",
+  "Krzemiński",
+  "Krzyżanowski",
+  "Król",
+  "Królikowski",
+  "Książek",
+  "Kubacki",
+  "Kubiak",
+  "Kubica",
+  "Kubicki",
+  "Kubik",
+  "Kuc",
+  "Kucharczyk",
+  "Kucharski",
+  "Kuchta",
+  "Kuciński",
+  "Kuczyński",
+  "Kujawa",
+  "Kujawski",
+  "Kula",
+  "Kulesza",
+  "Kulig",
+  "Kulik",
+  "Kuliński",
+  "Kurek",
+  "Kurowski",
+  "Kuś",
+  "Kwaśniewski",
+  "Kwiatkowski",
+  "Kwiecień",
+  "Kwieciński",
+  "Kędzierski",
+  "Kędziora",
+  "Kępa",
+  "Kłos",
+  "Kłosowski",
+  "Lach",
+  "Laskowski",
+  "Lasota",
+  "Lech",
+  "Lenart",
+  "Lesiak",
+  "Leszczyński",
+  "Lewandowski",
+  "Lewicki",
+  "Leśniak",
+  "Leśniewski",
+  "Lipiński",
+  "Lipka",
+  "Lipski",
+  "Lis",
+  "Lisiecki",
+  "Lisowski",
+  "Maciejewski",
+  "Maciąg",
+  "Mackiewicz",
+  "Madej",
+  "Maj",
+  "Majcher",
+  "Majchrzak",
+  "Majewski",
+  "Majka",
+  "Makowski",
+  "Malec",
+  "Malicki",
+  "Malinowski",
+  "Maliszewski",
+  "Marchewka",
+  "Marciniak",
+  "Marcinkowski",
+  "Marczak",
+  "Marek",
+  "Markiewicz",
+  "Markowski",
+  "Marszałek",
+  "Marzec",
+  "Masłowski",
+  "Matusiak",
+  "Matuszak",
+  "Matuszewski",
+  "Matysiak",
+  "Mazur",
+  "Mazurek",
+  "Mazurkiewicz",
+  "Maćkowiak",
+  "Małecki",
+  "Małek",
+  "Maślanka",
+  "Michalak",
+  "Michalczyk",
+  "Michalik",
+  "Michalski",
+  "Michałek",
+  "Michałowski",
+  "Mielczarek",
+  "Mierzejewski",
+  "Mika",
+  "Mikołajczak",
+  "Mikołajczyk",
+  "Mikulski",
+  "Milczarek",
+  "Milewski",
+  "Miller",
+  "Misiak",
+  "Misztal",
+  "Miśkiewicz",
+  "Modzelewski",
+  "Molenda",
+  "Morawski",
+  "Motyka",
+  "Mroczek",
+  "Mroczkowski",
+  "Mrozek",
+  "Mróz",
+  "Mucha",
+  "Murawski",
+  "Musiał",
+  "Muszyński",
+  "Młynarczyk",
+  "Napierała",
+  "Nawrocki",
+  "Nawrot",
+  "Niedziela",
+  "Niedzielski",
+  "Niedźwiecki",
+  "Niemczyk",
+  "Niemiec",
+  "Niewiadomski",
+  "Noga",
+  "Nowacki",
+  "Nowaczyk",
+  "Nowak",
+  "Nowakowski",
+  "Nowicki",
+  "Nowiński",
+  "Olczak",
+  "Olejniczak",
+  "Olejnik",
+  "Olszewski",
+  "Orzechowski",
+  "Orłowski",
+  "Osiński",
+  "Ossowski",
+  "Ostrowski",
+  "Owczarek",
+  "Paczkowski",
+  "Pająk",
+  "Pakuła",
+  "Paluch",
+  "Panek",
+  "Partyka",
+  "Pasternak",
+  "Paszkowski",
+  "Pawelec",
+  "Pawlak",
+  "Pawlicki",
+  "Pawlik",
+  "Pawlikowski",
+  "Pawłowski",
+  "Pałka",
+  "Piasecki",
+  "Piechota",
+  "Piekarski",
+  "Pietras",
+  "Pietruszka",
+  "Pietrzak",
+  "Pietrzyk",
+  "Pilarski",
+  "Pilch",
+  "Piotrowicz",
+  "Piotrowski",
+  "Piwowarczyk",
+  "Piórkowski",
+  "Piątek",
+  "Piątkowski",
+  "Piłat",
+  "Pluta",
+  "Podgórski",
+  "Polak",
+  "Popławski",
+  "Porębski",
+  "Prokop",
+  "Prus",
+  "Przybylski",
+  "Przybysz",
+  "Przybył",
+  "Przybyła",
+  "Ptak",
+  "Puchalski",
+  "Pytel",
+  "Płonka",
+  "Raczyński",
+  "Radecki",
+  "Radomski",
+  "Rak",
+  "Rakowski",
+  "Ratajczak",
+  "Robak",
+  "Rogala",
+  "Rogalski",
+  "Rogowski",
+  "Rojek",
+  "Romanowski",
+  "Rosa",
+  "Rosiak",
+  "Rosiński",
+  "Ruciński",
+  "Rudnicki",
+  "Rudziński",
+  "Rudzki",
+  "Rusin",
+  "Rutkowski",
+  "Rybak",
+  "Rybarczyk",
+  "Rybicki",
+  "Rzepka",
+  "Różański",
+  "Różycki",
+  "Sadowski",
+  "Sawicki",
+  "Serafin",
+  "Siedlecki",
+  "Sienkiewicz",
+  "Sieradzki",
+  "Sikora",
+  "Sikorski",
+  "Sitek",
+  "Siwek",
+  "Skalski",
+  "Skiba",
+  "Skibiński",
+  "Skoczylas",
+  "Skowron",
+  "Skowronek",
+  "Skowroński",
+  "Skrzypczak",
+  "Skrzypek",
+  "Skóra",
+  "Smoliński",
+  "Sobczak",
+  "Sobczyk",
+  "Sobieraj",
+  "Sobolewski",
+  "Socha",
+  "Sochacki",
+  "Sokołowski",
+  "Sokół",
+  "Sosnowski",
+  "Sowa",
+  "Sowiński",
+  "Sołtys",
+  "Sołtysiak",
+  "Sroka",
+  "Stachowiak",
+  "Stachowicz",
+  "Stachura",
+  "Stachurski",
+  "Stanek",
+  "Staniszewski",
+  "Stanisławski",
+  "Stankiewicz",
+  "Stasiak",
+  "Staszewski",
+  "Stawicki",
+  "Stec",
+  "Stefaniak",
+  "Stefański",
+  "Stelmach",
+  "Stolarczyk",
+  "Stolarski",
+  "Strzelczyk",
+  "Strzelecki",
+  "Stępień",
+  "Stępniak",
+  "Surma",
+  "Suski",
+  "Szafrański",
+  "Szatkowski",
+  "Szczepaniak",
+  "Szczepanik",
+  "Szczepański",
+  "Szczerba",
+  "Szcześniak",
+  "Szczygieł",
+  "Szczęsna",
+  "Szczęsny",
+  "Szeląg",
+  "Szewczyk",
+  "Szostak",
+  "Szulc",
+  "Szwarc",
+  "Szwed",
+  "Szydłowski",
+  "Szymański",
+  "Szymczak",
+  "Szymczyk",
+  "Szymkowiak",
+  "Szyszka",
+  "Sławiński",
+  "Słowik",
+  "Słowiński",
+  "Tarnowski",
+  "Tkaczyk",
+  "Tokarski",
+  "Tomala",
+  "Tomaszewski",
+  "Tomczak",
+  "Tomczyk",
+  "Tracz",
+  "Trojanowski",
+  "Trzciński",
+  "Trzeciak",
+  "Turek",
+  "Twardowski",
+  "Urban",
+  "Urbanek",
+  "Urbaniak",
+  "Urbanowicz",
+  "Urbańczyk",
+  "Urbański",
+  "Walczak",
+  "Walkowiak",
+  "Warchoł",
+  "Wasiak",
+  "Wasilewski",
+  "Wawrzyniak",
+  "Wesołowski",
+  "Wieczorek",
+  "Wierzbicki",
+  "Wilczek",
+  "Wilczyński",
+  "Wilk",
+  "Winiarski",
+  "Witczak",
+  "Witek",
+  "Witkowski",
+  "Wiącek",
+  "Więcek",
+  "Więckowski",
+  "Wiśniewski",
+  "Wnuk",
+  "Wojciechowski",
+  "Wojtas",
+  "Wojtasik",
+  "Wojtczak",
+  "Wojtkowiak",
+  "Wolak",
+  "Woliński",
+  "Wolny",
+  "Wolski",
+  "Woś",
+  "Woźniak",
+  "Wrona",
+  "Wroński",
+  "Wróbel",
+  "Wróblewski",
+  "Wypych",
+  "Wysocki",
+  "Wyszyński",
+  "Wójcicki",
+  "Wójcik",
+  "Wójtowicz",
+  "Wąsik",
+  "Węgrzyn",
+  "Włodarczyk",
+  "Włodarski",
+  "Zaborowski",
+  "Zabłocki",
+  "Zagórski",
+  "Zając",
+  "Zajączkowski",
+  "Zakrzewski",
+  "Zalewski",
+  "Zaremba",
+  "Zarzycki",
+  "Zaręba",
+  "Zawada",
+  "Zawadzki",
+  "Zdunek",
+  "Zieliński",
+  "Zielonka",
+  "Ziółkowski",
+  "Zięba",
+  "Ziętek",
+  "Zwoliński",
+  "Zych",
+  "Zygmunt",
+  "Łapiński",
+  "Łuczak",
+  "Łukasiewicz",
+  "Łukasik",
+  "Łukaszewski",
+  "Śliwa",
+  "Śliwiński",
+  "Ślusarczyk",
+  "Świderski",
+  "Świerczyński",
+  "Świątek",
+  "Żak",
+  "Żebrowski",
+  "Żmuda",
+  "Żuk",
+  "Żukowski",
+  "Żurawski",
+  "Żurek",
+  "Żyła"
+];
+
+},{}],764:[function(require,module,exports){
+module.exports=require(538)
+},{"/Users/a/dev/faker.js/lib/locales/ge/name/name.js":538}],765:[function(require,module,exports){
+module["exports"] = [
+  "Pan",
+  "Pani"
+];
+
+},{}],766:[function(require,module,exports){
+module.exports=require(264)
+},{"/Users/a/dev/faker.js/lib/locales/en/name/title.js":264}],767:[function(require,module,exports){
+module["exports"] = [
+  "12-###-##-##",
+  "13-###-##-##",
+  "14-###-##-##",
+  "15-###-##-##",
+  "16-###-##-##",
+  "17-###-##-##",
+  "18-###-##-##",
+  "22-###-##-##",
+  "23-###-##-##",
+  "24-###-##-##",
+  "25-###-##-##",
+  "29-###-##-##",
+  "32-###-##-##",
+  "33-###-##-##",
+  "34-###-##-##",
+  "41-###-##-##",
+  "42-###-##-##",
+  "43-###-##-##",
+  "44-###-##-##",
+  "46-###-##-##",
+  "48-###-##-##",
+  "52-###-##-##",
+  "54-###-##-##",
+  "55-###-##-##",
+  "56-###-##-##",
+  "58-###-##-##",
+  "59-###-##-##",
+  "61-###-##-##",
+  "62-###-##-##",
+  "63-###-##-##",
+  "65-###-##-##",
+  "67-###-##-##",
+  "68-###-##-##",
+  "71-###-##-##",
+  "74-###-##-##",
+  "75-###-##-##",
+  "76-###-##-##",
+  "77-###-##-##",
+  "81-###-##-##",
+  "82-###-##-##",
+  "83-###-##-##",
+  "84-###-##-##",
+  "85-###-##-##",
+  "86-###-##-##",
+  "87-###-##-##",
+  "89-###-##-##",
+  "91-###-##-##",
+  "94-###-##-##",
+  "95-###-##-##"
+];
+
+},{}],768:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":767,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],769:[function(require,module,exports){
+module.exports=require(179)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/building_number.js":179}],770:[function(require,module,exports){
+module["exports"] = [
+  "Nova",
+  "Velha",
+  "Grande",
+  "Vila",
+  "Município de"
+];
+
+},{}],771:[function(require,module,exports){
+module["exports"] = [
+  "do Descoberto",
+  "de Nossa Senhora",
+  "do Norte",
+  "do Sul"
+];
+
+},{}],772:[function(require,module,exports){
+module["exports"] = [
+  "Afeganistão",
+  "Albânia",
+  "Algéria",
+  "Samoa",
+  "Andorra",
+  "Angola",
+  "Anguilla",
+  "Antigua and Barbada",
+  "Argentina",
+  "Armênia",
+  "Aruba",
+  "Austrália",
+  "Áustria",
+  "Alzerbajão",
+  "Bahamas",
+  "Barém",
+  "Bangladesh",
+  "Barbado",
+  "Belgrado",
+  "Bélgica",
+  "Belize",
+  "Benin",
+  "Bermuda",
+  "Bhutan",
+  "Bolívia",
+  "Bôsnia",
+  "Botuasuna",
+  "Bouvetoia",
+  "Brasil",
+  "Arquipélago de Chagos",
+  "Ilhas Virgens",
+  "Brunei",
+  "Bulgária",
+  "Burkina Faso",
+  "Burundi",
+  "Cambójia",
+  "Camarões",
+  "Canadá",
+  "Cabo Verde",
+  "Ilhas Caiman",
+  "República da África Central",
+  "Chad",
+  "Chile",
+  "China",
+  "Ilhas Natal",
+  "Ilhas Cocos",
+  "Colômbia",
+  "Comoros",
+  "Congo",
+  "Ilhas Cook",
+  "Costa Rica",
+  "Costa do Marfim",
+  "Croácia",
+  "Cuba",
+  "Cyprus",
+  "República Tcheca",
+  "Dinamarca",
+  "Djibouti",
+  "Dominica",
+  "República Dominicana",
+  "Equador",
+  "Egito",
+  "El Salvador",
+  "Guiné Equatorial",
+  "Eritrea",
+  "Estônia",
+  "Etiópia",
+  "Ilhas Faroe",
+  "Malvinas",
+  "Fiji",
+  "Finlândia",
+  "França",
+  "Guiné Francesa",
+  "Polinésia Francesa",
+  "Gabão",
+  "Gâmbia",
+  "Georgia",
+  "Alemanha",
+  "Gana",
+  "Gibraltar",
+  "Grécia",
+  "Groelândia",
+  "Granada",
+  "Guadalupe",
+  "Guano",
+  "Guatemala",
+  "Guernsey",
+  "Guiné",
+  "Guiné-Bissau",
+  "Guiana",
+  "Haiti",
+  "Heard Island and McDonald Islands",
+  "Vaticano",
+  "Honduras",
+  "Hong Kong",
+  "Hungria",
+  "Iceland",
+  "Índia",
+  "Indonésia",
+  "Irã",
+  "Iraque",
+  "Irlanda",
+  "Ilha de Man",
+  "Israel",
+  "Itália",
+  "Jamaica",
+  "Japão",
+  "Jersey",
+  "Jordânia",
+  "Cazaquistão",
+  "Quênia",
+  "Kiribati",
+  "Coreia do Norte",
+  "Coreia do Sul",
+  "Kuwait",
+  "Kyrgyz Republic",
+  "República Democrática de Lao People",
+  "Latvia",
+  "Líbano",
+  "Lesotho",
+  "Libéria",
+  "Libyan Arab Jamahiriya",
+  "Liechtenstein",
+  "Lituânia",
+  "Luxemburgo",
+  "Macao",
+  "Macedônia",
+  "Madagascar",
+  "Malawi",
+  "Malásia",
+  "Maldives",
+  "Mali",
+  "Malta",
+  "Ilhas Marshall",
+  "Martinica",
+  "Mauritânia",
+  "Mauritius",
+  "Mayotte",
+  "México",
+  "Micronésia",
+  "Moldova",
+  "Mônaco",
+  "Mongólia",
+  "Montenegro",
+  "Montserrat",
+  "Marrocos",
+  "Moçambique",
+  "Myanmar",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Antilhas Holandesas",
+  "Holanda",
+  "Nova Caledonia",
+  "Nova Zelândia",
+  "Nicarágua",
+  "Nigéria",
+  "Niue",
+  "Ilha Norfolk",
+  "Northern Mariana Islands",
+  "Noruega",
+  "Oman",
+  "Paquistão",
+  "Palau",
+  "Território da Palestina",
+  "Panamá",
+  "Nova Guiné Papua",
+  "Paraguai",
+  "Peru",
+  "Filipinas",
+  "Polônia",
+  "Portugal",
+  "Puerto Rico",
+  "Qatar",
+  "Romênia",
+  "Rússia",
+  "Ruanda",
+  "São Bartolomeu",
+  "Santa Helena",
+  "Santa Lúcia",
+  "Saint Martin",
+  "Saint Pierre and Miquelon",
+  "Saint Vincent and the Grenadines",
+  "Samoa",
+  "San Marino",
+  "Sao Tomé e Príncipe",
+  "Arábia Saudita",
+  "Senegal",
+  "Sérvia",
+  "Seychelles",
+  "Serra Leoa",
+  "Singapura",
+  "Eslováquia",
+  "Eslovênia",
+  "Ilhas Salomão",
+  "Somália",
+  "África do Sul",
+  "South Georgia and the South Sandwich Islands",
+  "Spanha",
+  "Sri Lanka",
+  "Sudão",
+  "Suriname",
+  "Svalbard & Jan Mayen Islands",
+  "Swaziland",
+  "Suécia",
+  "Suíça",
+  "Síria",
+  "Taiwan",
+  "Tajiquistão",
+  "Tanzânia",
+  "Tailândia",
+  "Timor-Leste",
+  "Togo",
+  "Tokelau",
+  "Tonga",
+  "Trinidá e Tobago",
+  "Tunísia",
+  "Turquia",
+  "Turcomenistão",
+  "Turks and Caicos Islands",
+  "Tuvalu",
+  "Uganda",
+  "Ucrânia",
+  "Emirados Árabes Unidos",
+  "Reino Unido",
+  "Estados Unidos da América",
+  "Estados Unidos das Ilhas Virgens",
+  "Uruguai",
+  "Uzbequistão",
+  "Vanuatu",
+  "Venezuela",
+  "Vietnã",
+  "Wallis and Futuna",
+  "Sahara",
+  "Yemen",
+  "Zâmbia",
+  "Zimbábue"
+];
+
+},{}],773:[function(require,module,exports){
+module["exports"] = [
+  "Brasil"
+];
+
+},{}],774:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.default_country = require("./default_country");
+
+},{"./building_number":769,"./city_prefix":770,"./city_suffix":771,"./country":772,"./default_country":773,"./postcode":775,"./secondary_address":776,"./state":777,"./state_abbr":778,"./street_suffix":779}],775:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "#####-###"
+];
+
+},{}],776:[function(require,module,exports){
+module["exports"] = [
+  "Apto. ###",
+  "Sobrado ##",
+  "Casa #",
+  "Lote ##",
+  "Quadra ##"
+];
+
+},{}],777:[function(require,module,exports){
+module["exports"] = [
+  "Acre",
+  "Alagoas",
+  "Amapá",
+  "Amazonas",
+  "Bahia",
+  "Ceará",
+  "Distrito Federal",
+  "Espírito Santo",
+  "Goiás",
+  "Maranhão",
+  "Mato Grosso",
+  "Mato Grosso do Sul",
+  "Minas Gerais",
+  "Pará",
+  "Paraíba",
+  "Paraná",
+  "Pernambuco",
+  "Piauí",
+  "Rio de Janeiro",
+  "Rio Grande do Norte",
+  "Rio Grande do Sul",
+  "Rondônia",
+  "Roraima",
+  "Santa Catarina",
+  "São Paulo",
+  "Sergipe",
+  "Tocantins"
+];
+
+},{}],778:[function(require,module,exports){
+module["exports"] = [
+  "AC",
+  "AL",
+  "AP",
+  "AM",
+  "BA",
+  "CE",
+  "DF",
+  "ES",
+  "GO",
+  "MA",
+  "MT",
+  "MS",
+  "PA",
+  "PB",
+  "PR",
+  "PE",
+  "PI",
+  "RJ",
+  "RN",
+  "RS",
+  "RO",
+  "RR",
+  "SC",
+  "SP"
+];
+
+},{}],779:[function(require,module,exports){
+module["exports"] = [
+  "Rua",
+  "Avenida",
+  "Travessa",
+  "Ponte",
+  "Alameda",
+  "Marginal",
+  "Viela",
+  "Rodovia"
+];
+
+},{}],780:[function(require,module,exports){
+arguments[4][166][0].apply(exports,arguments)
+},{"./name":781,"./suffix":782,"/Users/a/dev/faker.js/lib/locales/de_CH/company/index.js":166}],781:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name}-#{Name.last_name}",
+  "#{Name.last_name}, #{Name.last_name} e #{Name.last_name}"
+];
+
+},{}],782:[function(require,module,exports){
+module["exports"] = [
+  "S.A.",
+  "LTDA",
+  "e Associados",
+  "Comércio"
+];
+
+},{}],783:[function(require,module,exports){
+var pt_BR = {};
+module['exports'] = pt_BR;
+pt_BR.title = "Portuguese (Brazil)";
+pt_BR.address = require("./address");
+pt_BR.company = require("./company");
+pt_BR.internet = require("./internet");
+pt_BR.lorem = require("./lorem");
+pt_BR.name = require("./name");
+pt_BR.phone_number = require("./phone_number");
+
+},{"./address":774,"./company":780,"./internet":786,"./lorem":787,"./name":790,"./phone_number":795}],784:[function(require,module,exports){
+module["exports"] = [
+  "br",
+  "com",
+  "biz",
+  "info",
+  "name",
+  "net",
+  "org"
+];
+
+},{}],785:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com",
+  "live.com",
+  "bol.com.br"
+];
+
+},{}],786:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":784,"./free_email":785,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],787:[function(require,module,exports){
+module.exports=require(121)
+},{"./words":788,"/Users/a/dev/faker.js/lib/locales/de/lorem/index.js":121}],788:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],789:[function(require,module,exports){
+module["exports"] = [
+  "Alessandro",
+  "Alessandra",
+  "Alexandre",
+  "Aline",
+  "Antônio",
+  "Breno",
+  "Bruna",
+  "Carlos",
+  "Carla",
+  "Célia",
+  "Cecília",
+  "César",
+  "Danilo",
+  "Dalila",
+  "Deneval",
+  "Eduardo",
+  "Eduarda",
+  "Esther",
+  "Elísio",
+  "Fábio",
+  "Fabrício",
+  "Fabrícia",
+  "Félix",
+  "Felícia",
+  "Feliciano",
+  "Frederico",
+  "Fabiano",
+  "Gustavo",
+  "Guilherme",
+  "Gúbio",
+  "Heitor",
+  "Hélio",
+  "Hugo",
+  "Isabel",
+  "Isabela",
+  "Ígor",
+  "João",
+  "Joana",
+  "Júlio César",
+  "Júlio",
+  "Júlia",
+  "Janaína",
+  "Karla",
+  "Kléber",
+  "Lucas",
+  "Lorena",
+  "Lorraine",
+  "Larissa",
+  "Ladislau",
+  "Marcos",
+  "Meire",
+  "Marcelo",
+  "Marcela",
+  "Margarida",
+  "Mércia",
+  "Márcia",
+  "Marli",
+  "Morgana",
+  "Maria",
+  "Norberto",
+  "Natália",
+  "Nataniel",
+  "Núbia",
+  "Ofélia",
+  "Paulo",
+  "Paula",
+  "Pablo",
+  "Pedro",
+  "Raul",
+  "Rafael",
+  "Rafaela",
+  "Ricardo",
+  "Roberto",
+  "Roberta",
+  "Sílvia",
+  "Sílvia",
+  "Silas",
+  "Suélen",
+  "Sara",
+  "Salvador",
+  "Sirineu",
+  "Talita",
+  "Tertuliano",
+  "Vicente",
+  "Víctor",
+  "Vitória",
+  "Yango",
+  "Yago",
+  "Yuri",
+  "Washington",
+  "Warley"
+];
+
+},{}],790:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+
+},{"./first_name":789,"./last_name":791,"./prefix":792,"./suffix":793}],791:[function(require,module,exports){
+module["exports"] = [
+  "Silva",
+  "Souza",
+  "Carvalho",
+  "Santos",
+  "Reis",
+  "Xavier",
+  "Franco",
+  "Braga",
+  "Macedo",
+  "Batista",
+  "Barros",
+  "Moraes",
+  "Costa",
+  "Pereira",
+  "Carvalho",
+  "Melo",
+  "Saraiva",
+  "Nogueira",
+  "Oliveira",
+  "Martins",
+  "Moreira",
+  "Albuquerque"
+];
+
+},{}],792:[function(require,module,exports){
+module["exports"] = [
+  "Sr.",
+  "Sra.",
+  "Srta.",
+  "Dr."
+];
+
+},{}],793:[function(require,module,exports){
+module["exports"] = [
+  "Jr.",
+  "Neto",
+  "Filho"
+];
+
+},{}],794:[function(require,module,exports){
+module["exports"] = [
+  "(##) ####-####",
+  "+55 (##) ####-####",
+  "(##) #####-####"
+];
+
+},{}],795:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":794,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],796:[function(require,module,exports){
+module.exports=require(16)
+},{"/Users/a/dev/faker.js/lib/locales/az/address/building_number.js":16}],797:[function(require,module,exports){
+module.exports=require(17)
+},{"/Users/a/dev/faker.js/lib/locales/az/address/city.js":17}],798:[function(require,module,exports){
+module["exports"] = [
+  "Москва",
+  "Владимир",
+  "Санкт-Петербург",
+  "Новосибирск",
+  "Екатеринбург",
+  "Нижний Новгород",
+  "Самара",
+  "Казань",
+  "Омск",
+  "Челябинск",
+  "Ростов-на-Дону",
+  "Уфа",
+  "Волгоград",
+  "Пермь",
+  "Красноярск",
+  "Воронеж",
+  "Саратов",
+  "Краснодар",
+  "Тольятти",
+  "Ижевск",
+  "Барнаул",
+  "Ульяновск",
+  "Тюмень",
+  "Иркутск",
+  "Владивосток",
+  "Ярославль",
+  "Хабаровск",
+  "Махачкала",
+  "Оренбург",
+  "Новокузнецк",
+  "Томск",
+  "Кемерово",
+  "Рязань",
+  "Астрахань",
+  "Пенза",
+  "Липецк",
+  "Тула",
+  "Киров",
+  "Чебоксары",
+  "Курск",
+  "Брянскm Магнитогорск",
+  "Иваново",
+  "Тверь",
+  "Ставрополь",
+  "Белгород",
+  "Сочи"
+];
+
+},{}],799:[function(require,module,exports){
+module["exports"] = [
+  "Австралия",
+  "Австрия",
+  "Азербайджан",
+  "Албания",
+  "Алжир",
+  "Американское Самоа (не признана)",
+  "Ангилья",
+  "Ангола",
+  "Андорра",
+  "Антарктика (не признана)",
+  "Антигуа и Барбуда",
+  "Антильские Острова (не признана)",
+  "Аомынь (не признана)",
+  "Аргентина",
+  "Армения",
+  "Афганистан",
+  "Багамские Острова",
+  "Бангладеш",
+  "Барбадос",
+  "Бахрейн",
+  "Беларусь",
+  "Белиз",
+  "Бельгия",
+  "Бенин",
+  "Болгария",
+  "Боливия",
+  "Босния и Герцеговина",
+  "Ботсвана",
+  "Бразилия",
+  "Бруней",
+  "Буркина-Фасо",
+  "Бурунди",
+  "Бутан",
+  "Вануату",
+  "Ватикан",
+  "Великобритания",
+  "Венгрия",
+  "Венесуэла",
+  "Восточный Тимор",
+  "Вьетнам",
+  "Габон",
+  "Гаити",
+  "Гайана",
+  "Гамбия",
+  "Гана",
+  "Гваделупа (не признана)",
+  "Гватемала",
+  "Гвиана (не признана)",
+  "Гвинея",
+  "Гвинея-Бисау",
+  "Германия",
+  "Гондурас",
+  "Гренада",
+  "Греция",
+  "Грузия",
+  "Дания",
+  "Джибути",
+  "Доминика",
+  "Доминиканская Республика",
+  "Египет",
+  "Замбия",
+  "Зимбабве",
+  "Израиль",
+  "Индия",
+  "Индонезия",
+  "Иордания",
+  "Ирак",
+  "Иран",
+  "Ирландия",
+  "Исландия",
+  "Испания",
+  "Италия",
+  "Йемен",
+  "Кабо-Верде",
+  "Казахстан",
+  "Камбоджа",
+  "Камерун",
+  "Канада",
+  "Катар",
+  "Кения",
+  "Кипр",
+  "Кирибати",
+  "Китай",
+  "Колумбия",
+  "Коморские Острова",
+  "Конго",
+  "Демократическая Республика",
+  "Корея (Северная)",
+  "Корея (Южная)",
+  "Косово",
+  "Коста-Рика",
+  "Кот-д'Ивуар",
+  "Куба",
+  "Кувейт",
+  "Кука острова",
+  "Кыргызстан",
+  "Лаос",
+  "Латвия",
+  "Лесото",
+  "Либерия",
+  "Ливан",
+  "Ливия",
+  "Литва",
+  "Лихтенштейн",
+  "Люксембург",
+  "Маврикий",
+  "Мавритания",
+  "Мадагаскар",
+  "Македония",
+  "Малави",
+  "Малайзия",
+  "Мали",
+  "Мальдивы",
+  "Мальта",
+  "Маршалловы Острова",
+  "Мексика",
+  "Микронезия",
+  "Мозамбик",
+  "Молдова",
+  "Монако",
+  "Монголия",
+  "Марокко",
+  "Мьянма",
+  "Намибия",
+  "Науру",
+  "Непал",
+  "Нигер",
+  "Нигерия",
+  "Нидерланды",
+  "Никарагуа",
+  "Новая Зеландия",
+  "Норвегия",
+  "Объединенные Арабские Эмираты",
+  "Оман",
+  "Пакистан",
+  "Палау",
+  "Панама",
+  "Папуа — Новая Гвинея",
+  "Парагвай",
+  "Перу",
+  "Польша",
+  "Португалия",
+  "Республика Конго",
+  "Россия",
+  "Руанда",
+  "Румыния",
+  "Сальвадор",
+  "Самоа",
+  "Сан-Марино",
+  "Сан-Томе и Принсипи",
+  "Саудовская Аравия",
+  "Свазиленд",
+  "Сейшельские острова",
+  "Сенегал",
+  "Сент-Винсент и Гренадины",
+  "Сент-Киттс и Невис",
+  "Сент-Люсия",
+  "Сербия",
+  "Сингапур",
+  "Сирия",
+  "Словакия",
+  "Словения",
+  "Соединенные Штаты Америки",
+  "Соломоновы Острова",
+  "Сомали",
+  "Судан",
+  "Суринам",
+  "Сьерра-Леоне",
+  "Таджикистан",
+  "Таиланд",
+  "Тайвань (не признана)",
+  "Тамил-Илам (не признана)",
+  "Танзания",
+  "Тёркс и Кайкос (не признана)",
+  "Того",
+  "Токелау (не признана)",
+  "Тонга",
+  "Тринидад и Тобаго",
+  "Тувалу",
+  "Тунис",
+  "Турецкая Республика Северного Кипра (не признана)",
+  "Туркменистан",
+  "Турция",
+  "Уганда",
+  "Узбекистан",
+  "Украина",
+  "Уругвай",
+  "Фарерские Острова (не признана)",
+  "Фиджи",
+  "Филиппины",
+  "Финляндия",
+  "Франция",
+  "Французская Полинезия (не признана)",
+  "Хорватия",
+  "Центральноафриканская Республика",
+  "Чад",
+  "Черногория",
+  "Чехия",
+  "Чили",
+  "Швейцария",
+  "Швеция",
+  "Шри-Ланка",
+  "Эквадор",
+  "Экваториальная Гвинея",
+  "Эритрея",
+  "Эстония",
+  "Эфиопия",
+  "Южно-Африканская Республика",
+  "Ямайка",
+  "Япония"
+];
+
+},{}],800:[function(require,module,exports){
+module["exports"] = [
+  "Россия"
+];
+
+},{}],801:[function(require,module,exports){
+arguments[4][21][0].apply(exports,arguments)
+},{"./building_number":796,"./city":797,"./city_name":798,"./country":799,"./default_country":800,"./postcode":802,"./secondary_address":803,"./state":804,"./street_address":805,"./street_name":806,"./street_suffix":807,"./street_title":808,"/Users/a/dev/faker.js/lib/locales/az/address/index.js":21}],802:[function(require,module,exports){
+module["exports"] = [
+  "######"
+];
+
+},{}],803:[function(require,module,exports){
+module["exports"] = [
+  "кв. ###"
+];
+
+},{}],804:[function(require,module,exports){
+module["exports"] = [
+  "Республика Адыгея",
+  "Республика Башкортостан",
+  "Республика Бурятия",
+  "Республика Алтай Республика Дагестан",
+  "Республика Ингушетия",
+  "Кабардино-Балкарская Республика",
+  "Республика Калмыкия",
+  "Республика Карачаево-Черкессия",
+  "Республика Карелия",
+  "Республика Коми",
+  "Республика Марий Эл",
+  "Республика Мордовия",
+  "Республика Саха (Якутия)",
+  "Республика Северная Осетия-Алания",
+  "Республика Татарстан",
+  "Республика Тыва",
+  "Удмуртская Республика",
+  "Республика Хакасия",
+  "Чувашская Республика",
+  "Алтайский край",
+  "Краснодарский край",
+  "Красноярский край",
+  "Приморский край",
+  "Ставропольский край",
+  "Хабаровский край",
+  "Амурская область",
+  "Архангельская область",
+  "Астраханская область",
+  "Белгородская область",
+  "Брянская область",
+  "Владимирская область",
+  "Волгоградская область",
+  "Вологодская область",
+  "Воронежская область",
+  "Ивановская область",
+  "Иркутская область",
+  "Калиниградская область",
+  "Калужская область",
+  "Камчатская область",
+  "Кемеровская область",
+  "Кировская область",
+  "Костромская область",
+  "Курганская область",
+  "Курская область",
+  "Ленинградская область",
+  "Липецкая область",
+  "Магаданская область",
+  "Московская область",
+  "Мурманская область",
+  "Нижегородская область",
+  "Новгородская область",
+  "Новосибирская область",
+  "Омская область",
+  "Оренбургская область",
+  "Орловская область",
+  "Пензенская область",
+  "Пермская область",
+  "Псковская область",
+  "Ростовская область",
+  "Рязанская область",
+  "Самарская область",
+  "Саратовская область",
+  "Сахалинская область",
+  "Свердловская область",
+  "Смоленская область",
+  "Тамбовская область",
+  "Тверская область",
+  "Томская область",
+  "Тульская область",
+  "Тюменская область",
+  "Ульяновская область",
+  "Челябинская область",
+  "Читинская область",
+  "Ярославская область",
+  "Еврейская автономная область",
+  "Агинский Бурятский авт. округ",
+  "Коми-Пермяцкий автономный округ",
+  "Корякский автономный округ",
+  "Ненецкий автономный округ",
+  "Таймырский (Долгано-Ненецкий) автономный округ",
+  "Усть-Ордынский Бурятский автономный округ",
+  "Ханты-Мансийский автономный округ",
+  "Чукотский автономный округ",
+  "Эвенкийский автономный округ",
+  "Ямало-Ненецкий автономный округ",
+  "Чеченская Республика"
+];
+
+},{}],805:[function(require,module,exports){
+module.exports=require(25)
+},{"/Users/a/dev/faker.js/lib/locales/az/address/street_address.js":25}],806:[function(require,module,exports){
+module.exports=require(26)
+},{"/Users/a/dev/faker.js/lib/locales/az/address/street_name.js":26}],807:[function(require,module,exports){
+module["exports"] = [
+  "ул.",
+  "улица",
+  "проспект",
+  "пр.",
+  "площадь",
+  "пл."
+];
+
+},{}],808:[function(require,module,exports){
+module["exports"] = [
+  "Советская",
+  "Молодежная",
+  "Центральная",
+  "Школьная",
+  "Новая",
+  "Садовая",
+  "Лесная",
+  "Набережная",
+  "Ленина",
+  "Мира",
+  "Октябрьская",
+  "Зеленая",
+  "Комсомольская",
+  "Заречная",
+  "Первомайская",
+  "Гагарина",
+  "Полевая",
+  "Луговая",
+  "Пионерская",
+  "Кирова",
+  "Юбилейная",
+  "Северная",
+  "Пролетарская",
+  "Степная",
+  "Пушкина",
+  "Калинина",
+  "Южная",
+  "Колхозная",
+  "Рабочая",
+  "Солнечная",
+  "Железнодорожная",
+  "Восточная",
+  "Заводская",
+  "Чапаева",
+  "Нагорная",
+  "Строителей",
+  "Береговая",
+  "Победы",
+  "Горького",
+  "Кооперативная",
+  "Красноармейская",
+  "Совхозная",
+  "Речная",
+  "Школьный",
+  "Спортивная",
+  "Озерная",
+  "Строительная",
+  "Парковая",
+  "Чкалова",
+  "Мичурина",
+  "речень улиц",
+  "Подгорная",
+  "Дружбы",
+  "Почтовая",
+  "Партизанская",
+  "Вокзальная",
+  "Лермонтова",
+  "Свободы",
+  "Дорожная",
+  "Дачная",
+  "Маяковского",
+  "Западная",
+  "Фрунзе",
+  "Дзержинского",
+  "Московская",
+  "Свердлова",
+  "Некрасова",
+  "Гоголя",
+  "Красная",
+  "Трудовая",
+  "Шоссейная",
+  "Чехова",
+  "Коммунистическая",
+  "Труда",
+  "Комарова",
+  "Матросова",
+  "Островского",
+  "Сосновая",
+  "Клубная",
+  "Куйбышева",
+  "Крупской",
+  "Березовая",
+  "Карла Маркса",
+  "8 Марта",
+  "Больничная",
+  "Садовый",
+  "Интернациональная",
+  "Суворова",
+  "Цветочная",
+  "Трактовая",
+  "Ломоносова",
+  "Горная",
+  "Космонавтов",
+  "Энергетиков",
+  "Шевченко",
+  "Весенняя",
+  "Механизаторов",
+  "Коммунальная",
+  "Лесной",
+  "40 лет Победы",
+  "Майская"
+];
+
+},{}],809:[function(require,module,exports){
+module["exports"] = [
+  "красный",
+  "зеленый",
+  "синий",
+  "желтый",
+  "багровый",
+  "мятный",
+  "зеленовато-голубой",
+  "белый",
+  "черный",
+  "оранжевый",
+  "розовый",
+  "серый",
+  "красно-коричневый",
+  "фиолетовый",
+  "бирюзовый",
+  "желто-коричневый",
+  "небесно голубой",
+  "оранжево-розовый",
+  "темно-фиолетовый",
+  "орхидный",
+  "оливковый",
+  "пурпурный",
+  "лимонный",
+  "кремовый",
+  "сине-фиолетовый",
+  "золотой",
+  "красно-пурпурный",
+  "голубой",
+  "лазурный",
+  "лиловый",
+  "серебряный"
+];
+
+},{}],810:[function(require,module,exports){
+module["exports"] = [
+  "Книги",
+  "Фильмы",
+  "музыка",
+  "игры",
+  "Электроника",
+  "компьютеры",
+  "Дом",
+  "садинструмент",
+  "Бакалея",
+  "здоровье",
+  "красота",
+  "Игрушки",
+  "детское",
+  "для малышей",
+  "Одежда",
+  "обувь",
+  "украшения",
+  "Спорт",
+  "туризм",
+  "Автомобильное",
+  "промышленное"
+];
+
+},{}],811:[function(require,module,exports){
+arguments[4][31][0].apply(exports,arguments)
+},{"./color":809,"./department":810,"./product_name":812,"/Users/a/dev/faker.js/lib/locales/az/commerce/index.js":31}],812:[function(require,module,exports){
+module["exports"] = {
+  "adjective": [
+    "Маленький",
+    "Эргономичный",
+    "Грубый",
+    "Интеллектуальный",
+    "Великолепный",
+    "Невероятный",
+    "Фантастический",
+    "Практчиный",
+    "Лоснящийся",
+    "Потрясающий"
+  ],
+  "material": [
+    "Стальной",
+    "Деревянный",
+    "Бетонный",
+    "Пластиковый",
+    "Хлопковый",
+    "Гранитный",
+    "Резиновый"
+  ],
+  "product": [
+    "Стул",
+    "Автомобиль",
+    "Компьютер",
+    "Берет",
+    "Кулон",
+    "Стол",
+    "Свитер",
+    "Ремень",
+    "Ботинок"
+  ]
+};
+
+},{}],813:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./name":814,"./prefix":815,"./suffix":816,"/Users/a/dev/faker.js/lib/locales/az/company/index.js":33}],814:[function(require,module,exports){
+module.exports=require(34)
+},{"/Users/a/dev/faker.js/lib/locales/az/company/name.js":34}],815:[function(require,module,exports){
+module["exports"] = [
+  "ИП",
+  "ООО",
+  "ЗАО",
+  "ОАО",
+  "НКО",
+  "ТСЖ",
+  "ОП"
+];
+
+},{}],816:[function(require,module,exports){
+module["exports"] = [
+  "Снаб",
+  "Торг",
+  "Пром",
+  "Трейд",
+  "Сбыт"
+];
+
+},{}],817:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"./month":818,"./weekday":819,"/Users/a/dev/faker.js/lib/locales/az/date/index.js":37}],818:[function(require,module,exports){
+// source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/ru.xml#L1734
+module["exports"] = {
+  wide: [
+    "январь",
+    "февраль",
+    "март",
+    "апрель",
+    "май",
+    "июнь",
+    "июль",
+    "август",
+    "сентябрь",
+    "октябрь",
+    "ноябрь",
+    "декабрь"
+  ],
+  wide_context: [
+    "января",
+    "февраля",
+    "марта",
+    "апреля",
+    "мая",
+    "июня",
+    "июля",
+    "августа",
+    "сентября",
+    "октября",
+    "ноября",
+    "декабря"
+  ],
+  abbr: [
+    "янв.",
+    "февр.",
+    "март",
+    "апр.",
+    "май",
+    "июнь",
+    "июль",
+    "авг.",
+    "сент.",
+    "окт.",
+    "нояб.",
+    "дек."
+  ],
+  abbr_context: [
+    "янв.",
+    "февр.",
+    "марта",
+    "апр.",
+    "мая",
+    "июня",
+    "июля",
+    "авг.",
+    "сент.",
+    "окт.",
+    "нояб.",
+    "дек."
+  ]
+};
+
+},{}],819:[function(require,module,exports){
+// source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/ru.xml#L1825
+module["exports"] = {
+  wide: [
+    "Воскресенье",
+    "Понедельник",
+    "Вторник",
+    "Среда",
+    "Четверг",
+    "Пятница",
+    "Суббота"
+  ],
+  wide_context: [
+    "воскресенье",
+    "понедельник",
+    "вторник",
+    "среда",
+    "четверг",
+    "пятница",
+    "суббота"
+  ],
+  abbr: [
+    "Вс",
+    "Пн",
+    "Вт",
+    "Ср",
+    "Чт",
+    "Пт",
+    "Сб"
+  ],
+  abbr_context: [
+    "вс",
+    "пн",
+    "вт",
+    "ср",
+    "чт",
+    "пт",
+    "сб"
+  ]
+};
+
+},{}],820:[function(require,module,exports){
+var ru = {};
+module['exports'] = ru;
+ru.title = "Russian";
+ru.separator = " и ";
+ru.address = require("./address");
+ru.internet = require("./internet");
+ru.name = require("./name");
+ru.phone_number = require("./phone_number");
+ru.commerce = require("./commerce");
+ru.company = require("./company");
+ru.date = require("./date");
+
+},{"./address":801,"./commerce":811,"./company":813,"./date":817,"./internet":823,"./name":827,"./phone_number":835}],821:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "ru",
+  "info",
+  "рф",
+  "net",
+  "org"
+];
+
+},{}],822:[function(require,module,exports){
+module["exports"] = [
+  "yandex.ru",
+  "ya.ru",
+  "mail.ru",
+  "gmail.com",
+  "yahoo.com",
+  "hotmail.com"
+];
+
+},{}],823:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":821,"./free_email":822,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],824:[function(require,module,exports){
+module["exports"] = [
+  "Анна",
+  "Алёна",
+  "Алевтина",
+  "Александра",
+  "Алина",
+  "Алла",
+  "Анастасия",
+  "Ангелина",
+  "Анжела",
+  "Анжелика",
+  "Антонида",
+  "Антонина",
+  "Анфиса",
+  "Арина",
+  "Валентина",
+  "Валерия",
+  "Варвара",
+  "Василиса",
+  "Вера",
+  "Вероника",
+  "Виктория",
+  "Галина",
+  "Дарья",
+  "Евгения",
+  "Екатерина",
+  "Елена",
+  "Елизавета",
+  "Жанна",
+  "Зинаида",
+  "Зоя",
+  "Ирина",
+  "Кира",
+  "Клавдия",
+  "Ксения",
+  "Лариса",
+  "Лидия",
+  "Любовь",
+  "Людмила",
+  "Маргарита",
+  "Марина",
+  "Мария",
+  "Надежда",
+  "Наталья",
+  "Нина",
+  "Оксана",
+  "Ольга",
+  "Раиса",
+  "Регина",
+  "Римма",
+  "Светлана",
+  "София",
+  "Таисия",
+  "Тамара",
+  "Татьяна",
+  "Ульяна",
+  "Юлия"
+];
+
+},{}],825:[function(require,module,exports){
+module["exports"] = [
+  "Смирнова",
+  "Иванова",
+  "Кузнецова",
+  "Попова",
+  "Соколова",
+  "Лебедева",
+  "Козлова",
+  "Новикова",
+  "Морозова",
+  "Петрова",
+  "Волкова",
+  "Соловьева",
+  "Васильева",
+  "Зайцева",
+  "Павлова",
+  "Семенова",
+  "Голубева",
+  "Виноградова",
+  "Богданова",
+  "Воробьева",
+  "Федорова",
+  "Михайлова",
+  "Беляева",
+  "Тарасова",
+  "Белова",
+  "Комарова",
+  "Орлова",
+  "Киселева",
+  "Макарова",
+  "Андреева",
+  "Ковалева",
+  "Ильина",
+  "Гусева",
+  "Титова",
+  "Кузьмина",
+  "Кудрявцева",
+  "Баранова",
+  "Куликова",
+  "Алексеева",
+  "Степанова",
+  "Яковлева",
+  "Сорокина",
+  "Сергеева",
+  "Романова",
+  "Захарова",
+  "Борисова",
+  "Королева",
+  "Герасимова",
+  "Пономарева",
+  "Григорьева",
+  "Лазарева",
+  "Медведева",
+  "Ершова",
+  "Никитина",
+  "Соболева",
+  "Рябова",
+  "Полякова",
+  "Цветкова",
+  "Данилова",
+  "Жукова",
+  "Фролова",
+  "Журавлева",
+  "Николаева",
+  "Крылова",
+  "Максимова",
+  "Сидорова",
+  "Осипова",
+  "Белоусова",
+  "Федотова",
+  "Дорофеева",
+  "Егорова",
+  "Матвеева",
+  "Боброва",
+  "Дмитриева",
+  "Калинина",
+  "Анисимова",
+  "Петухова",
+  "Антонова",
+  "Тимофеева",
+  "Никифорова",
+  "Веселова",
+  "Филиппова",
+  "Маркова",
+  "Большакова",
+  "Суханова",
+  "Миронова",
+  "Ширяева",
+  "Александрова",
+  "Коновалова",
+  "Шестакова",
+  "Казакова",
+  "Ефимова",
+  "Денисова",
+  "Громова",
+  "Фомина",
+  "Давыдова",
+  "Мельникова",
+  "Щербакова",
+  "Блинова",
+  "Колесникова",
+  "Карпова",
+  "Афанасьева",
+  "Власова",
+  "Маслова",
+  "Исакова",
+  "Тихонова",
+  "Аксенова",
+  "Гаврилова",
+  "Родионова",
+  "Котова",
+  "Горбунова",
+  "Кудряшова",
+  "Быкова",
+  "Зуева",
+  "Третьякова",
+  "Савельева",
+  "Панова",
+  "Рыбакова",
+  "Суворова",
+  "Абрамова",
+  "Воронова",
+  "Мухина",
+  "Архипова",
+  "Трофимова",
+  "Мартынова",
+  "Емельянова",
+  "Горшкова",
+  "Чернова",
+  "Овчинникова",
+  "Селезнева",
+  "Панфилова",
+  "Копылова",
+  "Михеева",
+  "Галкина",
+  "Назарова",
+  "Лобанова",
+  "Лукина",
+  "Белякова",
+  "Потапова",
+  "Некрасова",
+  "Хохлова",
+  "Жданова",
+  "Наумова",
+  "Шилова",
+  "Воронцова",
+  "Ермакова",
+  "Дроздова",
+  "Игнатьева",
+  "Савина",
+  "Логинова",
+  "Сафонова",
+  "Капустина",
+  "Кириллова",
+  "Моисеева",
+  "Елисеева",
+  "Кошелева",
+  "Костина",
+  "Горбачева",
+  "Орехова",
+  "Ефремова",
+  "Исаева",
+  "Евдокимова",
+  "Калашникова",
+  "Кабанова",
+  "Носкова",
+  "Юдина",
+  "Кулагина",
+  "Лапина",
+  "Прохорова",
+  "Нестерова",
+  "Харитонова",
+  "Агафонова",
+  "Муравьева",
+  "Ларионова",
+  "Федосеева",
+  "Зимина",
+  "Пахомова",
+  "Шубина",
+  "Игнатова",
+  "Филатова",
+  "Крюкова",
+  "Рогова",
+  "Кулакова",
+  "Терентьева",
+  "Молчанова",
+  "Владимирова",
+  "Артемьева",
+  "Гурьева",
+  "Зиновьева",
+  "Гришина",
+  "Кононова",
+  "Дементьева",
+  "Ситникова",
+  "Симонова",
+  "Мишина",
+  "Фадеева",
+  "Комиссарова",
+  "Мамонтова",
+  "Носова",
+  "Гуляева",
+  "Шарова",
+  "Устинова",
+  "Вишнякова",
+  "Евсеева",
+  "Лаврентьева",
+  "Брагина",
+  "Константинова",
+  "Корнилова",
+  "Авдеева",
+  "Зыкова",
+  "Бирюкова",
+  "Шарапова",
+  "Никонова",
+  "Щукина",
+  "Дьячкова",
+  "Одинцова",
+  "Сазонова",
+  "Якушева",
+  "Красильникова",
+  "Гордеева",
+  "Самойлова",
+  "Князева",
+  "Беспалова",
+  "Уварова",
+  "Шашкова",
+  "Бобылева",
+  "Доронина",
+  "Белозерова",
+  "Рожкова",
+  "Самсонова",
+  "Мясникова",
+  "Лихачева",
+  "Бурова",
+  "Сысоева",
+  "Фомичева",
+  "Русакова",
+  "Стрелкова",
+  "Гущина",
+  "Тетерина",
+  "Колобова",
+  "Субботина",
+  "Фокина",
+  "Блохина",
+  "Селиверстова",
+  "Пестова",
+  "Кондратьева",
+  "Силина",
+  "Меркушева",
+  "Лыткина",
+  "Турова"
+];
+
+},{}],826:[function(require,module,exports){
+module["exports"] = [
+  "Александровна",
+  "Алексеевна",
+  "Альбертовна",
+  "Анатольевна",
+  "Андреевна",
+  "Антоновна",
+  "Аркадьевна",
+  "Арсеньевна",
+  "Артёмовна",
+  "Борисовна",
+  "Вадимовна",
+  "Валентиновна",
+  "Валерьевна",
+  "Васильевна",
+  "Викторовна",
+  "Витальевна",
+  "Владимировна",
+  "Владиславовна",
+  "Вячеславовна",
+  "Геннадьевна",
+  "Георгиевна",
+  "Германовна",
+  "Григорьевна",
+  "Данииловна",
+  "Денисовна",
+  "Дмитриевна",
+  "Евгеньевна",
+  "Егоровна",
+  "Ивановна",
+  "Игнатьевна",
+  "Игоревна",
+  "Ильинична",
+  "Константиновна",
+  "Лаврентьевна",
+  "Леонидовна",
+  "Макаровна",
+  "Максимовна",
+  "Матвеевна",
+  "Михайловна",
+  "Никитична",
+  "Николаевна",
+  "Олеговна",
+  "Романовна",
+  "Семёновна",
+  "Сергеевна",
+  "Станиславовна",
+  "Степановна",
+  "Фёдоровна",
+  "Эдуардовна",
+  "Юрьевна",
+  "Ярославовна"
+];
+
+},{}],827:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.male_first_name = require("./male_first_name");
+name.male_middle_name = require("./male_middle_name");
+name.male_last_name = require("./male_last_name");
+name.female_first_name = require("./female_first_name");
+name.female_middle_name = require("./female_middle_name");
+name.female_last_name = require("./female_last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.name = require("./name");
+
+},{"./female_first_name":824,"./female_last_name":825,"./female_middle_name":826,"./male_first_name":828,"./male_last_name":829,"./male_middle_name":830,"./name":831,"./prefix":832,"./suffix":833}],828:[function(require,module,exports){
+module["exports"] = [
+  "Александр",
+  "Алексей",
+  "Альберт",
+  "Анатолий",
+  "Андрей",
+  "Антон",
+  "Аркадий",
+  "Арсений",
+  "Артём",
+  "Борис",
+  "Вадим",
+  "Валентин",
+  "Валерий",
+  "Василий",
+  "Виктор",
+  "Виталий",
+  "Владимир",
+  "Владислав",
+  "Вячеслав",
+  "Геннадий",
+  "Георгий",
+  "Герман",
+  "Григорий",
+  "Даниил",
+  "Денис",
+  "Дмитрий",
+  "Евгений",
+  "Егор",
+  "Иван",
+  "Игнатий",
+  "Игорь",
+  "Илья",
+  "Константин",
+  "Лаврентий",
+  "Леонид",
+  "Лука",
+  "Макар",
+  "Максим",
+  "Матвей",
+  "Михаил",
+  "Никита",
+  "Николай",
+  "Олег",
+  "Роман",
+  "Семён",
+  "Сергей",
+  "Станислав",
+  "Степан",
+  "Фёдор",
+  "Эдуард",
+  "Юрий",
+  "Ярослав"
+];
+
+},{}],829:[function(require,module,exports){
+module["exports"] = [
+  "Смирнов",
+  "Иванов",
+  "Кузнецов",
+  "Попов",
+  "Соколов",
+  "Лебедев",
+  "Козлов",
+  "Новиков",
+  "Морозов",
+  "Петров",
+  "Волков",
+  "Соловьев",
+  "Васильев",
+  "Зайцев",
+  "Павлов",
+  "Семенов",
+  "Голубев",
+  "Виноградов",
+  "Богданов",
+  "Воробьев",
+  "Федоров",
+  "Михайлов",
+  "Беляев",
+  "Тарасов",
+  "Белов",
+  "Комаров",
+  "Орлов",
+  "Киселев",
+  "Макаров",
+  "Андреев",
+  "Ковалев",
+  "Ильин",
+  "Гусев",
+  "Титов",
+  "Кузьмин",
+  "Кудрявцев",
+  "Баранов",
+  "Куликов",
+  "Алексеев",
+  "Степанов",
+  "Яковлев",
+  "Сорокин",
+  "Сергеев",
+  "Романов",
+  "Захаров",
+  "Борисов",
+  "Королев",
+  "Герасимов",
+  "Пономарев",
+  "Григорьев",
+  "Лазарев",
+  "Медведев",
+  "Ершов",
+  "Никитин",
+  "Соболев",
+  "Рябов",
+  "Поляков",
+  "Цветков",
+  "Данилов",
+  "Жуков",
+  "Фролов",
+  "Журавлев",
+  "Николаев",
+  "Крылов",
+  "Максимов",
+  "Сидоров",
+  "Осипов",
+  "Белоусов",
+  "Федотов",
+  "Дорофеев",
+  "Егоров",
+  "Матвеев",
+  "Бобров",
+  "Дмитриев",
+  "Калинин",
+  "Анисимов",
+  "Петухов",
+  "Антонов",
+  "Тимофеев",
+  "Никифоров",
+  "Веселов",
+  "Филиппов",
+  "Марков",
+  "Большаков",
+  "Суханов",
+  "Миронов",
+  "Ширяев",
+  "Александров",
+  "Коновалов",
+  "Шестаков",
+  "Казаков",
+  "Ефимов",
+  "Денисов",
+  "Громов",
+  "Фомин",
+  "Давыдов",
+  "Мельников",
+  "Щербаков",
+  "Блинов",
+  "Колесников",
+  "Карпов",
+  "Афанасьев",
+  "Власов",
+  "Маслов",
+  "Исаков",
+  "Тихонов",
+  "Аксенов",
+  "Гаврилов",
+  "Родионов",
+  "Котов",
+  "Горбунов",
+  "Кудряшов",
+  "Быков",
+  "Зуев",
+  "Третьяков",
+  "Савельев",
+  "Панов",
+  "Рыбаков",
+  "Суворов",
+  "Абрамов",
+  "Воронов",
+  "Мухин",
+  "Архипов",
+  "Трофимов",
+  "Мартынов",
+  "Емельянов",
+  "Горшков",
+  "Чернов",
+  "Овчинников",
+  "Селезнев",
+  "Панфилов",
+  "Копылов",
+  "Михеев",
+  "Галкин",
+  "Назаров",
+  "Лобанов",
+  "Лукин",
+  "Беляков",
+  "Потапов",
+  "Некрасов",
+  "Хохлов",
+  "Жданов",
+  "Наумов",
+  "Шилов",
+  "Воронцов",
+  "Ермаков",
+  "Дроздов",
+  "Игнатьев",
+  "Савин",
+  "Логинов",
+  "Сафонов",
+  "Капустин",
+  "Кириллов",
+  "Моисеев",
+  "Елисеев",
+  "Кошелев",
+  "Костин",
+  "Горбачев",
+  "Орехов",
+  "Ефремов",
+  "Исаев",
+  "Евдокимов",
+  "Калашников",
+  "Кабанов",
+  "Носков",
+  "Юдин",
+  "Кулагин",
+  "Лапин",
+  "Прохоров",
+  "Нестеров",
+  "Харитонов",
+  "Агафонов",
+  "Муравьев",
+  "Ларионов",
+  "Федосеев",
+  "Зимин",
+  "Пахомов",
+  "Шубин",
+  "Игнатов",
+  "Филатов",
+  "Крюков",
+  "Рогов",
+  "Кулаков",
+  "Терентьев",
+  "Молчанов",
+  "Владимиров",
+  "Артемьев",
+  "Гурьев",
+  "Зиновьев",
+  "Гришин",
+  "Кононов",
+  "Дементьев",
+  "Ситников",
+  "Симонов",
+  "Мишин",
+  "Фадеев",
+  "Комиссаров",
+  "Мамонтов",
+  "Носов",
+  "Гуляев",
+  "Шаров",
+  "Устинов",
+  "Вишняков",
+  "Евсеев",
+  "Лаврентьев",
+  "Брагин",
+  "Константинов",
+  "Корнилов",
+  "Авдеев",
+  "Зыков",
+  "Бирюков",
+  "Шарапов",
+  "Никонов",
+  "Щукин",
+  "Дьячков",
+  "Одинцов",
+  "Сазонов",
+  "Якушев",
+  "Красильников",
+  "Гордеев",
+  "Самойлов",
+  "Князев",
+  "Беспалов",
+  "Уваров",
+  "Шашков",
+  "Бобылев",
+  "Доронин",
+  "Белозеров",
+  "Рожков",
+  "Самсонов",
+  "Мясников",
+  "Лихачев",
+  "Буров",
+  "Сысоев",
+  "Фомичев",
+  "Русаков",
+  "Стрелков",
+  "Гущин",
+  "Тетерин",
+  "Колобов",
+  "Субботин",
+  "Фокин",
+  "Блохин",
+  "Селиверстов",
+  "Пестов",
+  "Кондратьев",
+  "Силин",
+  "Меркушев",
+  "Лыткин",
+  "Туров"
+];
+
+},{}],830:[function(require,module,exports){
+module["exports"] = [
+  "Александрович",
+  "Алексеевич",
+  "Альбертович",
+  "Анатольевич",
+  "Андреевич",
+  "Антонович",
+  "Аркадьевич",
+  "Арсеньевич",
+  "Артёмович",
+  "Борисович",
+  "Вадимович",
+  "Валентинович",
+  "Валерьевич",
+  "Васильевич",
+  "Викторович",
+  "Витальевич",
+  "Владимирович",
+  "Владиславович",
+  "Вячеславович",
+  "Геннадьевич",
+  "Георгиевич",
+  "Германович",
+  "Григорьевич",
+  "Даниилович",
+  "Денисович",
+  "Дмитриевич",
+  "Евгеньевич",
+  "Егорович",
+  "Иванович",
+  "Игнатьевич",
+  "Игоревич",
+  "Ильич",
+  "Константинович",
+  "Лаврентьевич",
+  "Леонидович",
+  "Лукич",
+  "Макарович",
+  "Максимович",
+  "Матвеевич",
+  "Михайлович",
+  "Никитич",
+  "Николаевич",
+  "Олегович",
+  "Романович",
+  "Семёнович",
+  "Сергеевич",
+  "Станиславович",
+  "Степанович",
+  "Фёдорович",
+  "Эдуардович",
+  "Юрьевич",
+  "Ярославович"
+];
+
+},{}],831:[function(require,module,exports){
+module["exports"] = [
+  "#{male_first_name} #{male_last_name}",
+  "#{male_last_name} #{male_first_name}",
+  "#{male_first_name} #{male_middle_name} #{male_last_name}",
+  "#{male_last_name} #{male_first_name} #{male_middle_name}",
+  "#{female_first_name} #{female_last_name}",
+  "#{female_last_name} #{female_first_name}",
+  "#{female_first_name} #{female_middle_name} #{female_last_name}",
+  "#{female_last_name} #{female_first_name} #{female_middle_name}"
+];
+
+},{}],832:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],833:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],834:[function(require,module,exports){
+module.exports=require(52)
+},{"/Users/a/dev/faker.js/lib/locales/az/phone_number/formats.js":52}],835:[function(require,module,exports){
+module.exports=require(53)
+},{"./formats":834,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],836:[function(require,module,exports){
+module.exports=require(54)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/building_number.js":54}],837:[function(require,module,exports){
+module.exports=require(55)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/city.js":55}],838:[function(require,module,exports){
+module["exports"] = [
+  "Bánovce nad Bebravou",
+  "Banská Bystrica",
+  "Banská Štiavnica",
+  "Bardejov",
+  "Bratislava I",
+  "Bratislava II",
+  "Bratislava III",
+  "Bratislava IV",
+  "Bratislava V",
+  "Brezno",
+  "Bytča",
+  "Čadca",
+  "Detva",
+  "Dolný Kubín",
+  "Dunajská Streda",
+  "Galanta",
+  "Gelnica",
+  "Hlohovec",
+  "Humenné",
+  "Ilava",
+  "Kežmarok",
+  "Komárno",
+  "Košice I",
+  "Košice II",
+  "Košice III",
+  "Košice IV",
+  "Košice-okolie",
+  "Krupina",
+  "Kysucké Nové Mesto",
+  "Levice",
+  "Levoča",
+  "Liptovský Mikuláš",
+  "Lučenec",
+  "Malacky",
+  "Martin",
+  "Medzilaborce",
+  "Michalovce",
+  "Myjava",
+  "Námestovo",
+  "Nitra",
+  "Nové Mesto n.Váhom",
+  "Nové Zámky",
+  "Partizánske",
+  "Pezinok",
+  "Piešťany",
+  "Poltár",
+  "Poprad",
+  "Považská Bystrica",
+  "Prešov",
+  "Prievidza",
+  "Púchov",
+  "Revúca",
+  "Rimavská Sobota",
+  "Rožňava",
+  "Ružomberok",
+  "Sabinov",
+  "Šaľa",
+  "Senec",
+  "Senica",
+  "Skalica",
+  "Snina",
+  "Sobrance",
+  "Spišská Nová Ves",
+  "Stará Ľubovňa",
+  "Stropkov",
+  "Svidník",
+  "Topoľčany",
+  "Trebišov",
+  "Trenčín",
+  "Trnava",
+  "Turčianske Teplice",
+  "Tvrdošín",
+  "Veľký Krtíš",
+  "Vranov nad Topľou",
+  "Žarnovica",
+  "Žiar nad Hronom",
+  "Žilina",
+  "Zlaté Moravce",
+  "Zvolen"
+];
+
+},{}],839:[function(require,module,exports){
+module.exports=require(181)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/city_prefix.js":181}],840:[function(require,module,exports){
+module.exports=require(182)
+},{"/Users/a/dev/faker.js/lib/locales/en/address/city_suffix.js":182}],841:[function(require,module,exports){
+module["exports"] = [
+  "Afganistan",
+  "Afgánsky islamský štát",
+  "Albánsko",
+  "Albánska republika",
+  "Alžírsko",
+  "Alžírska demokratická ľudová republika",
+  "Andorra",
+  "Andorrské kniežatsvo",
+  "Angola",
+  "Angolská republika",
+  "Antigua a Barbuda",
+  "Antigua a Barbuda",
+  "Argentína",
+  "Argentínska republika",
+  "Arménsko",
+  "Arménska republika",
+  "Austrália",
+  "Austrálsky zväz",
+  "Azerbajdžan",
+  "Azerbajdžanská republika",
+  "Bahamy",
+  "Bahamské spoločenstvo",
+  "Bahrajn",
+  "Bahrajnské kráľovstvo",
+  "Bangladéš",
+  "Bangladéšska ľudová republika",
+  "Barbados",
+  "Barbados",
+  "Belgicko",
+  "Belgické kráľovstvo",
+  "Belize",
+  "Belize",
+  "Benin",
+  "Beninská republika",
+  "Bhután",
+  "Bhutánske kráľovstvo",
+  "Bielorusko",
+  "Bieloruská republika",
+  "Bolívia",
+  "Bolívijská republika",
+  "Bosna a Hercegovina",
+  "Republika Bosny a Hercegoviny",
+  "Botswana",
+  "Botswanská republika",
+  "Brazília",
+  "Brazílska federatívna republika",
+  "Brunej",
+  "Brunejský sultanát",
+  "Bulharsko",
+  "Bulharská republika",
+  "Burkina Faso",
+  "Burkina Faso",
+  "Burundi",
+  "Burundská republika",
+  "Cyprus",
+  "Cyperská republika",
+  "Čad",
+  "Republika Čad",
+  "Česko",
+  "Česká republika",
+  "Čína",
+  "Čínska ľudová republika",
+  "Dánsko",
+  "Dánsko kráľovstvo",
+  "Dominika",
+  "Spoločenstvo Dominika",
+  "Dominikánska republika",
+  "Dominikánska republika",
+  "Džibutsko",
+  "Džibutská republika",
+  "Egypt",
+  "Egyptská arabská republika",
+  "Ekvádor",
+  "Ekvádorská republika",
+  "Eritrea",
+  "Eritrejský štát",
+  "Estónsko",
+  "Estónska republika",
+  "Etiópia",
+  "Etiópska federatívna demokratická republika",
+  "Fidži",
+  "Republika ostrovy Fidži",
+  "Filipíny",
+  "Filipínska republika",
+  "Fínsko",
+  "Fínska republika",
+  "Francúzsko",
+  "Francúzska republika",
+  "Gabon",
+  "Gabonská republika",
+  "Gambia",
+  "Gambijská republika",
+  "Ghana",
+  "Ghanská republika",
+  "Grécko",
+  "Helénska republika",
+  "Grenada",
+  "Grenada",
+  "Gruzínsko",
+  "Gruzínsko",
+  "Guatemala",
+  "Guatemalská republika",
+  "Guinea",
+  "Guinejská republika",
+  "Guinea-Bissau",
+  "Republika Guinea-Bissau",
+  "Guayana",
+  "Guayanská republika",
+  "Haiti",
+  "Republika Haiti",
+  "Holandsko",
+  "Holandské kráľovstvo",
+  "Honduras",
+  "Honduraská republika",
+  "Chile",
+  "Čílska republika",
+  "Chorvátsko",
+  "Chorvátska republika",
+  "India",
+  "Indická republika",
+  "Indonézia",
+  "Indonézska republika",
+  "Irak",
+  "Iracká republika",
+  "Irán",
+  "Iránska islamská republika",
+  "Island",
+  "Islandská republika",
+  "Izrael",
+  "Štát Izrael",
+  "Írsko",
+  "Írska republika",
+  "Jamajka",
+  "Jamajka",
+  "Japonsko",
+  "Japonsko",
+  "Jemen",
+  "Jemenská republika",
+  "Jordánsko",
+  "Jordánske hášimovské kráľovstvo",
+  "Južná Afrika",
+  "Juhoafrická republika",
+  "Kambodža",
+  "Kambodžské kráľovstvo",
+  "Kamerun",
+  "Kamerunská republika",
+  "Kanada",
+  "Kanada",
+  "Kapverdy",
+  "Kapverdská republika",
+  "Katar",
+  "Štát Katar",
+  "Kazachstan",
+  "Kazašská republika",
+  "Keňa",
+  "Kenská republika",
+  "Kirgizsko",
+  "Kirgizská republika",
+  "Kiribati",
+  "Kiribatská republika",
+  "Kolumbia",
+  "Kolumbijská republika",
+  "Komory",
+  "Komorská únia",
+  "Kongo",
+  "Konžská demokratická republika",
+  "Kongo (\"Brazzaville\")",
+  "Konžská republika",
+  "Kórea (\"Južná\")",
+  "Kórejská republika",
+  "Kórea (\"Severná\")",
+  "Kórejská ľudovodemokratická republika",
+  "Kostarika",
+  "Kostarická republika",
+  "Kuba",
+  "Kubánska republika",
+  "Kuvajt",
+  "Kuvajtský štát",
+  "Laos",
+  "Laoská ľudovodemokratická republika",
+  "Lesotho",
+  "Lesothské kráľovstvo",
+  "Libanon",
+  "Libanonská republika",
+  "Libéria",
+  "Libérijská republika",
+  "Líbya",
+  "Líbyjská arabská ľudová socialistická džamáhírija",
+  "Lichtenštajnsko",
+  "Lichtenštajnské kniežatstvo",
+  "Litva",
+  "Litovská republika",
+  "Lotyšsko",
+  "Lotyšská republika",
+  "Luxembursko",
+  "Luxemburské veľkovojvodstvo",
+  "Macedónsko",
+  "Macedónska republika",
+  "Madagaskar",
+  "Madagaskarská republika",
+  "Maďarsko",
+  "Maďarská republika",
+  "Malajzia",
+  "Malajzia",
+  "Malawi",
+  "Malawijská republika",
+  "Maldivy",
+  "Maldivská republika",
+  "Mali",
+  "Malijská republika",
+  "Malta",
+  "Malta",
+  "Maroko",
+  "Marocké kráľovstvo",
+  "Marshallove ostrovy",
+  "Republika Marshallových ostrovy",
+  "Mauritánia",
+  "Mauritánska islamská republika",
+  "Maurícius",
+  "Maurícijská republika",
+  "Mexiko",
+  "Spojené štáty mexické",
+  "Mikronézia",
+  "Mikronézske federatívne štáty",
+  "Mjanmarsko",
+  "Mjanmarský zväz",
+  "Moldavsko",
+  "Moldavská republika",
+  "Monako",
+  "Monacké kniežatstvo",
+  "Mongolsko",
+  "Mongolsko",
+  "Mozambik",
+  "Mozambická republika",
+  "Namíbia",
+  "Namíbijská republika",
+  "Nauru",
+  "Naurská republika",
+  "Nemecko",
+  "Nemecká spolková republika",
+  "Nepál",
+  "Nepálske kráľovstvo",
+  "Niger",
+  "Nigerská republika",
+  "Nigéria",
+  "Nigérijská federatívna republika",
+  "Nikaragua",
+  "Nikaragujská republika",
+  "Nový Zéland",
+  "Nový Zéland",
+  "Nórsko",
+  "Nórske kráľovstvo",
+  "Omán",
+  "Ománsky sultanát",
+  "Pakistan",
+  "Pakistanská islamská republika",
+  "Palau",
+  "Palauská republika",
+  "Panama",
+  "Panamská republika",
+  "Papua-Nová Guinea",
+  "Nezávislý štát Papua-Nová Guinea",
+  "Paraguaj",
+  "Paraguajská republika",
+  "Peru",
+  "Peruánska republika",
+  "Pobrežie Slonoviny",
+  "Republika Pobrežie Slonoviny",
+  "Poľsko",
+  "Poľská republika",
+  "Portugalsko",
+  "Portugalská republika",
+  "Rakúsko",
+  "Rakúska republika",
+  "Rovníková Guinea",
+  "Republika Rovníková Guinea",
+  "Rumunsko",
+  "Rumunsko",
+  "Rusko",
+  "Ruská federácia",
+  "Rwanda",
+  "Rwandská republika",
+  "Salvádor",
+  "Salvádorská republika",
+  "Samoa",
+  "Nezávislý štát Samoa",
+  "San Maríno",
+  "Sanmarínska republika",
+  "Saudská Arábia",
+  "Kráľovstvo Saudskej Arábie",
+  "Senegal",
+  "Senegalská republika",
+  "Seychely",
+  "Seychelská republika",
+  "Sierra Leone",
+  "Republika Sierra Leone",
+  "Singapur",
+  "Singapurska republika",
+  "Slovensko",
+  "Slovenská republika",
+  "Slovinsko",
+  "Slovinská republika",
+  "Somálsko",
+  "Somálska demokratická republika",
+  "Spojené arabské emiráty",
+  "Spojené arabské emiráty",
+  "Spojené štáty americké",
+  "Spojené štáty americké",
+  "Srbsko a Čierna Hora",
+  "Srbsko a Čierna Hora",
+  "Srí Lanka",
+  "Demokratická socialistická republika Srí Lanka",
+  "Stredoafrická republika",
+  "Stredoafrická republika",
+  "Sudán",
+  "Sudánska republika",
+  "Surinam",
+  "Surinamská republika",
+  "Svazijsko",
+  "Svazijské kráľovstvo",
+  "Svätá Lucia",
+  "Svätá Lucia",
+  "Svätý Krištof a Nevis",
+  "Federácia Svätý Krištof a Nevis",
+  "Sv. Tomáš a Princov Ostrov",
+  "Demokratická republika Svätý Tomáš a Princov Ostrov",
+  "Sv. Vincent a Grenadíny",
+  "Svätý Vincent a Grenadíny",
+  "Sýria",
+  "Sýrska arabská republika",
+  "Šalamúnove ostrovy",
+  "Šalamúnove ostrovy",
+  "Španielsko",
+  "Španielske kráľovstvo",
+  "Švajčiarsko",
+  "Švajčiarska konfederácia",
+  "Švédsko",
+  "Švédske kráľovstvo",
+  "Tadžikistan",
+  "Tadžická republika",
+  "Taliansko",
+  "Talianska republika",
+  "Tanzánia",
+  "Tanzánijská zjednotená republika",
+  "Thajsko",
+  "Thajské kráľovstvo",
+  "Togo",
+  "Tožská republika",
+  "Tonga",
+  "Tonžské kráľovstvo",
+  "Trinidad a Tobago",
+  "Republika Trinidad a Tobago",
+  "Tunisko",
+  "Tuniská republika",
+  "Turecko",
+  "Turecká republika",
+  "Turkménsko",
+  "Turkménsko",
+  "Tuvalu",
+  "Tuvalu",
+  "Uganda",
+  "Ugandská republika",
+  "Ukrajina",
+  "Uruguaj",
+  "Uruguajská východná republika",
+  "Uzbekistan",
+  "Vanuatu",
+  "Vanuatská republika",
+  "Vatikán",
+  "Svätá Stolica",
+  "Veľká Británia",
+  "Spojené kráľovstvo Veľkej Británie a Severného Írska",
+  "Venezuela",
+  "Venezuelská bolívarovská republika",
+  "Vietnam",
+  "Vietnamská socialistická republika",
+  "Východný Timor",
+  "Demokratická republika Východný Timor",
+  "Zambia",
+  "Zambijská republika",
+  "Zimbabwe",
+  "Zimbabwianska republika"
+];
+
+},{}],842:[function(require,module,exports){
+module["exports"] = [
+  "Slovensko"
+];
+
+},{}],843:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.time_zone = require("./time_zone");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.street = require("./street");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":836,"./city":837,"./city_name":838,"./city_prefix":839,"./city_suffix":840,"./country":841,"./default_country":842,"./postcode":844,"./secondary_address":845,"./state":846,"./state_abbr":847,"./street":848,"./street_address":849,"./street_name":850,"./time_zone":851}],844:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "### ##",
+  "## ###"
+];
+
+},{}],845:[function(require,module,exports){
+module.exports=require(61)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/secondary_address.js":61}],846:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],847:[function(require,module,exports){
+module.exports=require(50)
+},{"/Users/a/dev/faker.js/lib/locales/az/name/prefix.js":50}],848:[function(require,module,exports){
+module["exports"] = [
+  "Adámiho",
+  "Ahoj",
+  "Albína Brunovského",
+  "Albrechtova",
+  "Alejová",
+  "Alešova",
+  "Alibernetová",
+  "Alžbetínska",
+  "Alžbety Gwerkovej",
+  "Ambroseho",
+  "Ambrušova",
+  "Americká",
+  "Americké námestie",
+  "Americké námestie",
+  "Andreja Mráza",
+  "Andreja Plávku",
+  "Andrusovova",
+  "Anenská",
+  "Anenská",
+  "Antolská",
+  "Astronomická",
+  "Astrová",
+  "Azalková",
+  "Azovská",
+  "Babuškova",
+  "Bachova",
+  "Bajkalská",
+  "Bajkalská",
+  "Bajkalská",
+  "Bajkalská",
+  "Bajkalská",
+  "Bajkalská",
+  "Bajzova",
+  "Bancíkovej",
+  "Banícka",
+  "Baníkova",
+  "Banskobystrická",
+  "Banšelova",
+  "Bardejovská",
+  "Bartókova",
+  "Bartoňova",
+  "Bartoškova",
+  "Baštová",
+  "Bazová",
+  "Bažantia",
+  "Beblavého",
+  "Beckovská",
+  "Bedľová",
+  "Belániková",
+  "Belehradská",
+  "Belinského",
+  "Belopotockého",
+  "Beňadická",
+  "Bencúrova",
+  "Benediktiho",
+  "Beniakova",
+  "Bernolákova",
+  "Beskydská",
+  "Betliarska",
+  "Bezručova",
+  "Biela",
+  "Bielkova",
+  "Björnsonova",
+  "Blagoevova",
+  "Blatnická",
+  "Blumentálska",
+  "Blyskáčová",
+  "Bočná",
+  "Bohrova",
+  "Bohúňova",
+  "Bojnická",
+  "Borodáčova",
+  "Borská",
+  "Bosákova",
+  "Botanická",
+  "Bottova",
+  "Boženy Němcovej",
+  "Bôrik",
+  "Bradáčova",
+  "Bradlianska",
+  "Brančská",
+  "Bratská",
+  "Brestová",
+  "Brezovská",
+  "Briežky",
+  "Brnianska",
+  "Brodná",
+  "Brodská",
+  "Broskyňová",
+  "Břeclavská",
+  "Budatínska",
+  "Budatínska",
+  "Budatínska",
+  "Búdkova  cesta",
+  "Budovateľská",
+  "Budyšínska",
+  "Budyšínska",
+  "Buková",
+  "Bukureštská",
+  "Bulharská",
+  "Bulíkova",
+  "Bystrého",
+  "Bzovícka",
+  "Cablkova",
+  "Cesta na Červený most",
+  "Cesta na Červený most",
+  "Cesta na Senec",
+  "Cikkerova",
+  "Cintorínska",
+  "Cintulova",
+  "Cukrová",
+  "Cyrilova",
+  "Čajakova",
+  "Čajkovského",
+  "Čaklovská",
+  "Čalovská",
+  "Čapajevova",
+  "Čapkova",
+  "Čárskeho",
+  "Čavojského",
+  "Čečinová",
+  "Čelakovského",
+  "Čerešňová",
+  "Černyševského",
+  "Červeňova",
+  "Česká",
+  "Československých par",
+  "Čipkárska",
+  "Čmelíkova",
+  "Čmeľovec",
+  "Čulenova",
+  "Daliborovo námestie",
+  "Dankovského",
+  "Dargovská",
+  "Ďatelinová",
+  "Daxnerovo námestie",
+  "Devínska cesta",
+  "Dlhé diely I.",
+  "Dlhé diely II.",
+  "Dlhé diely III.",
+  "Dobrovičova",
+  "Dobrovičova",
+  "Dobrovského",
+  "Dobšinského",
+  "Dohnalova",
+  "Dohnányho",
+  "Doležalova",
+  "Dolná",
+  "Dolnozemská cesta",
+  "Domkárska",
+  "Domové role",
+  "Donnerova",
+  "Donovalova",
+  "Dostojevského rad",
+  "Dr. Vladimíra Clemen",
+  "Drevená",
+  "Drieňová",
+  "Drieňová",
+  "Drieňová",
+  "Drotárska cesta",
+  "Drotárska cesta",
+  "Drotárska cesta",
+  "Družicová",
+  "Družstevná",
+  "Dubnická",
+  "Dubová",
+  "Dúbravská cesta",
+  "Dudova",
+  "Dulovo námestie",
+  "Dulovo námestie",
+  "Dunajská",
+  "Dvořákovo nábrežie",
+  "Edisonova",
+  "Einsteinova",
+  "Elektrárenská",
+  "Exnárova",
+  "F. Kostku",
+  "Fadruszova",
+  "Fajnorovo nábrežie",
+  "Fándlyho",
+  "Farebná",
+  "Farská",
+  "Farského",
+  "Fazuľová",
+  "Fedinova",
+  "Ferienčíkova",
+  "Fialkové údolie",
+  "Fibichova",
+  "Filiálne nádražie",
+  "Flöglova",
+  "Floriánske námestie",
+  "Fraňa Kráľa",
+  "Francisciho",
+  "Francúzskych partizá",
+  "Františkánska",
+  "Františkánske námest",
+  "Furdekova",
+  "Furdekova",
+  "Gabčíkova",
+  "Gagarinova",
+  "Gagarinova",
+  "Gagarinova",
+  "Gajova",
+  "Galaktická",
+  "Galandova",
+  "Gallova",
+  "Galvaniho",
+  "Gašparíkova",
+  "Gaštanová",
+  "Gavlovičova",
+  "Gemerská",
+  "Gercenova",
+  "Gessayova",
+  "Gettingová",
+  "Godrova",
+  "Gogoľova",
+  "Goláňova",
+  "Gondova",
+  "Goralská",
+  "Gorazdova",
+  "Gorkého",
+  "Gregorovej",
+  "Grösslingova",
+  "Gruzínska",
+  "Gunduličova",
+  "Gusevova",
+  "Haanova",
+  "Haburská",
+  "Halašova",
+  "Hálkova",
+  "Hálova",
+  "Hamuliakova",
+  "Hanácka",
+  "Handlovská",
+  "Hany Meličkovej",
+  "Harmanecká",
+  "Hasičská",
+  "Hattalova",
+  "Havlíčkova",
+  "Havrania",
+  "Haydnova",
+  "Herlianska",
+  "Herlianska",
+  "Heydukova",
+  "Hlaváčikova",
+  "Hlavatého",
+  "Hlavné námestie",
+  "Hlboká cesta",
+  "Hlboká cesta",
+  "Hlivová",
+  "Hlučínska",
+  "Hodálova",
+  "Hodžovo námestie",
+  "Holekova",
+  "Holíčska",
+  "Hollého",
+  "Holubyho",
+  "Hontianska",
+  "Horárska",
+  "Horné Židiny",
+  "Horská",
+  "Horská",
+  "Hrad",
+  "Hradné údolie",
+  "Hrachová",
+  "Hraničná",
+  "Hrebendova",
+  "Hríbová",
+  "Hriňovská",
+  "Hrobákova",
+  "Hrobárska",
+  "Hroboňova",
+  "Hudecova",
+  "Humenské námestie",
+  "Hummelova",
+  "Hurbanovo námestie",
+  "Hurbanovo námestie",
+  "Hviezdoslavovo námes",
+  "Hýrošova",
+  "Chalupkova",
+  "Chemická",
+  "Chlumeckého",
+  "Chorvátska",
+  "Chorvátska",
+  "Iľjušinova",
+  "Ilkovičova",
+  "Inovecká",
+  "Inovecká",
+  "Iskerníková",
+  "Ivana Horvátha",
+  "Ivánska cesta",
+  "J.C.Hronského",
+  "Jabloňová",
+  "Jadrová",
+  "Jakabova",
+  "Jakubovo námestie",
+  "Jamnického",
+  "Jána Stanislava",
+  "Janáčkova",
+  "Jančova",
+  "Janíkove role",
+  "Jankolova",
+  "Jánošíkova",
+  "Jánoškova",
+  "Janotova",
+  "Jánska",
+  "Jantárová cesta",
+  "Jarabinková",
+  "Jarná",
+  "Jaroslavova",
+  "Jarošova",
+  "Jaseňová",
+  "Jasná",
+  "Jasovská",
+  "Jastrabia",
+  "Jašíkova",
+  "Javorinská",
+  "Javorová",
+  "Jazdecká",
+  "Jedlíkova",
+  "Jégého",
+  "Jelačičova",
+  "Jelenia",
+  "Jesenná",
+  "Jesenského",
+  "Jiráskova",
+  "Jiskrova",
+  "Jozefská",
+  "Junácka",
+  "Jungmannova",
+  "Jurigovo námestie",
+  "Jurovského",
+  "Jurská",
+  "Justičná",
+  "K lomu",
+  "K Železnej studienke",
+  "Kalinčiakova",
+  "Kamenárska",
+  "Kamenné námestie",
+  "Kapicova",
+  "Kapitulská",
+  "Kapitulský dvor",
+  "Kapucínska",
+  "Kapušianska",
+  "Karadžičova",
+  "Karadžičova",
+  "Karadžičova",
+  "Karadžičova",
+  "Karloveská",
+  "Karloveské rameno",
+  "Karpatská",
+  "Kašmírska",
+  "Kaštielska",
+  "Kaukazská",
+  "Kempelenova",
+  "Kežmarské námestie",
+  "Kladnianska",
+  "Klariská",
+  "Kláštorská",
+  "Klatovská",
+  "Klatovská",
+  "Klemensova",
+  "Klincová",
+  "Klobučnícka",
+  "Klokočova",
+  "Kľukatá",
+  "Kmeťovo námestie",
+  "Koceľova",
+  "Kočánkova",
+  "Kohútova",
+  "Kolárska",
+  "Kolískova",
+  "Kollárovo námestie",
+  "Kollárovo námestie",
+  "Kolmá",
+  "Komárňanská",
+  "Komárnická",
+  "Komárnická",
+  "Komenského námestie",
+  "Kominárska",
+  "Komonicová",
+  "Konopná",
+  "Konvalinková",
+  "Konventná",
+  "Kopanice",
+  "Kopčianska",
+  "Koperníkova",
+  "Korabinského",
+  "Koreničova",
+  "Kostlivého",
+  "Kostolná",
+  "Košická",
+  "Košická",
+  "Košická",
+  "Kováčska",
+  "Kovorobotnícka",
+  "Kozia",
+  "Koziarka",
+  "Kozmonautická",
+  "Krajná",
+  "Krakovská",
+  "Kráľovské údolie",
+  "Krasinského",
+  "Kraskova",
+  "Krásna",
+  "Krásnohorská",
+  "Krasovského",
+  "Krátka",
+  "Krčméryho",
+  "Kremnická",
+  "Kresánkova",
+  "Krivá",
+  "Križkova",
+  "Krížna",
+  "Krížna",
+  "Krížna",
+  "Krížna",
+  "Krmanova",
+  "Krompašská",
+  "Krupinská",
+  "Krupkova",
+  "Kubániho",
+  "Kubínska",
+  "Kuklovská",
+  "Kukučínova",
+  "Kukuričná",
+  "Kulíškova",
+  "Kultúrna",
+  "Kupeckého",
+  "Kúpeľná",
+  "Kutlíkova",
+  "Kutuzovova",
+  "Kuzmányho",
+  "Kvačalova",
+  "Kvetná",
+  "Kýčerského",
+  "Kyjevská",
+  "Kysucká",
+  "Laborecká",
+  "Lackova",
+  "Ladislava Sáru",
+  "Ľadová",
+  "Lachova",
+  "Ľaliová",
+  "Lamačská cesta",
+  "Lamačská cesta",
+  "Lamanského",
+  "Landererova",
+  "Langsfeldova",
+  "Ľanová",
+  "Laskomerského",
+  "Laučekova",
+  "Laurinská",
+  "Lazaretská",
+  "Lazaretská",
+  "Legerského",
+  "Legionárska",
+  "Legionárska",
+  "Lehockého",
+  "Lehockého",
+  "Lenardova",
+  "Lermontovova",
+  "Lesná",
+  "Leškova",
+  "Letecká",
+  "Letisko M.R.Štefánik",
+  "Letná",
+  "Levárska",
+  "Levická",
+  "Levočská",
+  "Lidická",
+  "Lietavská",
+  "Lichardova",
+  "Lipová",
+  "Lipovinová",
+  "Liptovská",
+  "Listová",
+  "Líščie nivy",
+  "Líščie údolie",
+  "Litovská",
+  "Lodná",
+  "Lombardiniho",
+  "Lomonosovova",
+  "Lopenícka",
+  "Lovinského",
+  "Ľubietovská",
+  "Ľubinská",
+  "Ľubľanská",
+  "Ľubochnianska",
+  "Ľubovnianska",
+  "Lúčna",
+  "Ľudové námestie",
+  "Ľudovíta Fullu",
+  "Luhačovická",
+  "Lužická",
+  "Lužná",
+  "Lýcejná",
+  "Lykovcová",
+  "M. Hella",
+  "Magnetová",
+  "Macharova",
+  "Majakovského",
+  "Majerníkova",
+  "Májkova",
+  "Májová",
+  "Makovického",
+  "Malá",
+  "Malé pálenisko",
+  "Malinová",
+  "Malý Draždiak",
+  "Malý trh",
+  "Mamateyova",
+  "Mamateyova",
+  "Mánesovo námestie",
+  "Mariánska",
+  "Marie Curie-Sklodows",
+  "Márie Medveďovej",
+  "Markova",
+  "Marótyho",
+  "Martákovej",
+  "Martinčekova",
+  "Martinčekova",
+  "Martinengova",
+  "Martinská",
+  "Mateja Bela",
+  "Matejkova",
+  "Matičná",
+  "Matúšova",
+  "Medená",
+  "Medzierka",
+  "Medzilaborecká",
+  "Merlotová",
+  "Mesačná",
+  "Mestská",
+  "Meteorová",
+  "Metodova",
+  "Mickiewiczova",
+  "Mierová",
+  "Michalská",
+  "Mikovíniho",
+  "Mikulášska",
+  "Miletičova",
+  "Miletičova",
+  "Mišíkova",
+  "Mišíkova",
+  "Mišíkova",
+  "Mliekárenská",
+  "Mlynarovičova",
+  "Mlynská dolina",
+  "Mlynská dolina",
+  "Mlynská dolina",
+  "Mlynské luhy",
+  "Mlynské nivy",
+  "Mlynské nivy",
+  "Mlynské nivy",
+  "Mlynské nivy",
+  "Mlynské nivy",
+  "Mlyny",
+  "Modranská",
+  "Mojmírova",
+  "Mokráň záhon",
+  "Mokrohájska cesta",
+  "Moldavská",
+  "Molecova",
+  "Moravská",
+  "Moskovská",
+  "Most SNP",
+  "Mostová",
+  "Mošovského",
+  "Motýlia",
+  "Moyzesova",
+  "Mozartova",
+  "Mraziarenská",
+  "Mudroňova",
+  "Mudroňova",
+  "Mudroňova",
+  "Muchovo námestie",
+  "Murgašova",
+  "Muškátová",
+  "Muštová",
+  "Múzejná",
+  "Myjavská",
+  "Mýtna",
+  "Mýtna",
+  "Na Baránku",
+  "Na Brezinách",
+  "Na Hrebienku",
+  "Na Kalvárii",
+  "Na Kampárke",
+  "Na kopci",
+  "Na križovatkách",
+  "Na lánoch",
+  "Na paši",
+  "Na piesku",
+  "Na Riviére",
+  "Na Sitine",
+  "Na Slavíne",
+  "Na stráni",
+  "Na Štyridsiatku",
+  "Na úvrati",
+  "Na vŕšku",
+  "Na výslní",
+  "Nábělkova",
+  "Nábrežie arm. gen. L",
+  "Nábrežná",
+  "Nad Dunajom",
+  "Nad lomom",
+  "Nad lúčkami",
+  "Nad lúčkami",
+  "Nad ostrovom",
+  "Nad Sihoťou",
+  "Námestie 1. mája",
+  "Námestie Alexandra D",
+  "Námestie Biely kríž",
+  "Námestie Hraničiarov",
+  "Námestie Jána Pavla",
+  "Námestie Ľudovíta Št",
+  "Námestie Martina Ben",
+  "Nám. M.R.Štefánika",
+  "Námestie slobody",
+  "Námestie slobody",
+  "Námestie SNP",
+  "Námestie SNP",
+  "Námestie sv. Františ",
+  "Narcisová",
+  "Nedbalova",
+  "Nekrasovova",
+  "Neronetová",
+  "Nerudova",
+  "Nevädzová",
+  "Nezábudková",
+  "Niťová",
+  "Nitrianska",
+  "Nížinná",
+  "Nobelova",
+  "Nobelovo námestie",
+  "Nová",
+  "Nová Rožňavská",
+  "Novackého",
+  "Nové pálenisko",
+  "Nové záhrady I",
+  "Nové záhrady II",
+  "Nové záhrady III",
+  "Nové záhrady IV",
+  "Nové záhrady V",
+  "Nové záhrady VI",
+  "Nové záhrady VII",
+  "Novinárska",
+  "Novobanská",
+  "Novohradská",
+  "Novosvetská",
+  "Novosvetská",
+  "Novosvetská",
+  "Obežná",
+  "Obchodná",
+  "Očovská",
+  "Odbojárov",
+  "Odborárska",
+  "Odborárske námestie",
+  "Odborárske námestie",
+  "Ohnicová",
+  "Okánikova",
+  "Okružná",
+  "Olbrachtova",
+  "Olejkárska",
+  "Ondavská",
+  "Ondrejovova",
+  "Oravská",
+  "Orechová cesta",
+  "Orechový rad",
+  "Oriešková",
+  "Ormisova",
+  "Osadná",
+  "Ostravská",
+  "Ostredková",
+  "Osuského",
+  "Osvetová",
+  "Otonelská",
+  "Ovručská",
+  "Ovsištské námestie",
+  "Pajštúnska",
+  "Palackého",
+  "Palárikova",
+  "Palárikova",
+  "Pálavská",
+  "Palisády",
+  "Palisády",
+  "Palisády",
+  "Palkovičova",
+  "Panenská",
+  "Pankúchova",
+  "Panónska cesta",
+  "Panská",
+  "Papánkovo námestie",
+  "Papraďová",
+  "Páričkova",
+  "Parková",
+  "Partizánska",
+  "Pasienky",
+  "Paulínyho",
+  "Pavlovičova",
+  "Pavlovova",
+  "Pavlovská",
+  "Pažického",
+  "Pažítková",
+  "Pečnianska",
+  "Pernecká",
+  "Pestovateľská",
+  "Peterská",
+  "Petzvalova",
+  "Pezinská",
+  "Piesočná",
+  "Piešťanská",
+  "Pifflova",
+  "Pilárikova",
+  "Pionierska",
+  "Pivoňková",
+  "Planckova",
+  "Planét",
+  "Plátenícka",
+  "Pluhová",
+  "Plynárenská",
+  "Plzenská",
+  "Pobrežná",
+  "Pod Bôrikom",
+  "Pod Kalváriou",
+  "Pod lesom",
+  "Pod Rovnicami",
+  "Pod vinicami",
+  "Podhorského",
+  "Podjavorinskej",
+  "Podlučinského",
+  "Podniková",
+  "Podtatranského",
+  "Pohronská",
+  "Polárna",
+  "Poloreckého",
+  "Poľná",
+  "Poľská",
+  "Poludníková",
+  "Porubského",
+  "Poštová",
+  "Považská",
+  "Povraznícka",
+  "Povraznícka",
+  "Pražská",
+  "Predstaničné námesti",
+  "Prepoštská",
+  "Prešernova",
+  "Prešovská",
+  "Prešovská",
+  "Prešovská",
+  "Pri Bielom kríži",
+  "Pri dvore",
+  "Pri Dynamitke",
+  "Pri Habánskom mlyne",
+  "Pri hradnej studni",
+  "Pri seči",
+  "Pri Starej Prachárni",
+  "Pri Starom háji",
+  "Pri Starom Mýte",
+  "Pri strelnici",
+  "Pri Suchom mlyne",
+  "Pri zvonici",
+  "Pribinova",
+  "Pribinova",
+  "Pribinova",
+  "Pribišova",
+  "Pribylinská",
+  "Priečna",
+  "Priekopy",
+  "Priemyselná",
+  "Priemyselná",
+  "Prievozská",
+  "Prievozská",
+  "Prievozská",
+  "Príkopova",
+  "Primaciálne námestie",
+  "Prístav",
+  "Prístavná",
+  "Prokofievova",
+  "Prokopa Veľkého",
+  "Prokopova",
+  "Prúdová",
+  "Prvosienková",
+  "Púpavová",
+  "Pustá",
+  "Puškinova",
+  "Račianska",
+  "Račianska",
+  "Račianske mýto",
+  "Radarová",
+  "Rádiová",
+  "Radlinského",
+  "Radničná",
+  "Radničné námestie",
+  "Radvanská",
+  "Rajská",
+  "Raketová",
+  "Rákosová",
+  "Rastislavova",
+  "Rázusovo nábrežie",
+  "Repná",
+  "Rešetkova",
+  "Revolučná",
+  "Révová",
+  "Revúcka",
+  "Rezedová",
+  "Riazanská",
+  "Riazanská",
+  "Ribayová",
+  "Riečna",
+  "Rigeleho",
+  "Rízlingová",
+  "Riznerova",
+  "Robotnícka",
+  "Romanova",
+  "Röntgenova",
+  "Rosná",
+  "Rovná",
+  "Rovniankova",
+  "Rovníková",
+  "Rozmarínová",
+  "Rožňavská",
+  "Rožňavská",
+  "Rožňavská",
+  "Rubinsteinova",
+  "Rudnayovo námestie",
+  "Rumančeková",
+  "Rusovská cesta",
+  "Ružičková",
+  "Ružinovská",
+  "Ružinovská",
+  "Ružinovská",
+  "Ružomberská",
+  "Ružová dolina",
+  "Ružová dolina",
+  "Rybárska brána",
+  "Rybné námestie",
+  "Rýdziková",
+  "Sabinovská",
+  "Sabinovská",
+  "Sad Janka Kráľa",
+  "Sadová",
+  "Sartorisova",
+  "Sasinkova",
+  "Seberíniho",
+  "Sečovská",
+  "Sedlárska",
+  "Sedmokrásková",
+  "Segnerova",
+  "Sekulská",
+  "Semianova",
+  "Senická",
+  "Senná",
+  "Schillerova",
+  "Schody pri starej vo",
+  "Sibírska",
+  "Sienkiewiczova",
+  "Silvánska",
+  "Sinokvetná",
+  "Skalická cesta",
+  "Skalná",
+  "Sklenárova",
+  "Sklenárska",
+  "Sládkovičova",
+  "Sladová",
+  "Slávičie údolie",
+  "Slavín",
+  "Slepá",
+  "Sliačska",
+  "Sliezska",
+  "Slivková",
+  "Slnečná",
+  "Slovanská",
+  "Slovinská",
+  "Slovnaftská",
+  "Slowackého",
+  "Smetanova",
+  "Smikova",
+  "Smolenická",
+  "Smolnícka",
+  "Smrečianska",
+  "Soferove schody",
+  "Socháňova",
+  "Sokolská",
+  "Solivarská",
+  "Sološnická",
+  "Somolického",
+  "Somolického",
+  "Sosnová",
+  "Spišská",
+  "Spojná",
+  "Spoločenská",
+  "Sputniková",
+  "Sreznevského",
+  "Srnčia",
+  "Stachanovská",
+  "Stálicová",
+  "Staničná",
+  "Stará Černicová",
+  "Stará Ivánska cesta",
+  "Stará Prievozská",
+  "Stará Vajnorská",
+  "Stará vinárska",
+  "Staré Grunty",
+  "Staré ihrisko",
+  "Staré záhrady",
+  "Starhradská",
+  "Starohájska",
+  "Staromestská",
+  "Staroturský chodník",
+  "Staviteľská",
+  "Stodolova",
+  "Stoklasová",
+  "Strakova",
+  "Strážnická",
+  "Strážny dom",
+  "Strečnianska",
+  "Stredná",
+  "Strelecká",
+  "Strmá cesta",
+  "Strojnícka",
+  "Stropkovská",
+  "Struková",
+  "Studená",
+  "Stuhová",
+  "Súbežná",
+  "Súhvezdná",
+  "Suché mýto",
+  "Suchohradská",
+  "Súkennícka",
+  "Súľovská",
+  "Sumbalova",
+  "Súmračná",
+  "Súťažná",
+  "Svätého Vincenta",
+  "Svätoplukova",
+  "Svätoplukova",
+  "Svätovojtešská",
+  "Svetlá",
+  "Svíbová",
+  "Svidnícka",
+  "Svoradova",
+  "Svrčia",
+  "Syslia",
+  "Šafárikovo námestie",
+  "Šafárikovo námestie",
+  "Šafránová",
+  "Šagátova",
+  "Šalviová",
+  "Šancová",
+  "Šancová",
+  "Šancová",
+  "Šancová",
+  "Šándorova",
+  "Šarišská",
+  "Šášovská",
+  "Šaštínska",
+  "Ševčenkova",
+  "Šintavská",
+  "Šípková",
+  "Škarniclova",
+  "Školská",
+  "Škovránčia",
+  "Škultétyho",
+  "Šoltésovej",
+  "Špieszova",
+  "Špitálska",
+  "Športová",
+  "Šrobárovo námestie",
+  "Šťastná",
+  "Štedrá",
+  "Štefánikova",
+  "Štefánikova",
+  "Štefánikova",
+  "Štefanovičova",
+  "Štefunkova",
+  "Štetinova",
+  "Štiavnická",
+  "Štúrova",
+  "Štyndlova",
+  "Šulekova",
+  "Šulekova",
+  "Šulekova",
+  "Šumavská",
+  "Šuňavcova",
+  "Šustekova",
+  "Švabinského",
+  "Tabaková",
+  "Tablicova",
+  "Táborská",
+  "Tajovského",
+  "Tallerova",
+  "Tehelná",
+  "Technická",
+  "Tekovská",
+  "Telocvičná",
+  "Tematínska",
+  "Teplická",
+  "Terchovská",
+  "Teslova",
+  "Tetmayerova",
+  "Thurzova",
+  "Tichá",
+  "Tilgnerova",
+  "Timravina",
+  "Tobrucká",
+  "Tokajícka",
+  "Tolstého",
+  "Tománkova",
+  "Tomášikova",
+  "Tomášikova",
+  "Tomášikova",
+  "Tomášikova",
+  "Tomášikova",
+  "Topoľčianska",
+  "Topoľová",
+  "Továrenská",
+  "Trebišovská",
+  "Trebišovská",
+  "Trebišovská",
+  "Trenčianska",
+  "Treskoňova",
+  "Trnavská cesta",
+  "Trnavská cesta",
+  "Trnavská cesta",
+  "Trnavská cesta",
+  "Trnavská cesta",
+  "Trnavské mýto",
+  "Tŕňová",
+  "Trojdomy",
+  "Tučkova",
+  "Tupolevova",
+  "Turbínova",
+  "Turčianska",
+  "Turnianska",
+  "Tvarožkova",
+  "Tylova",
+  "Tyršovo nábrežie",
+  "Údernícka",
+  "Údolná",
+  "Uhorková",
+  "Ukrajinská",
+  "Ulica 29. augusta",
+  "Ulica 29. augusta",
+  "Ulica 29. augusta",
+  "Ulica 29. augusta",
+  "Ulica Imricha Karvaš",
+  "Ulica Jozefa Krónera",
+  "Ulica Viktora Tegelh",
+  "Úprkova",
+  "Úradnícka",
+  "Uránová",
+  "Urbánkova",
+  "Ursínyho",
+  "Uršulínska",
+  "Úzka",
+  "V záhradách",
+  "Vajanského nábrežie",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Vajnorská",
+  "Valašská",
+  "Valchárska",
+  "Vansovej",
+  "Vápenná",
+  "Varínska",
+  "Varšavská",
+  "Varšavská",
+  "Vavilovova",
+  "Vavrínova",
+  "Vazovova",
+  "Včelárska",
+  "Velehradská",
+  "Veltlínska",
+  "Ventúrska",
+  "Veterná",
+  "Veternicová",
+  "Vetvová",
+  "Viedenská cesta",
+  "Viedenská cesta",
+  "Vietnamská",
+  "Vígľašská",
+  "Vihorlatská",
+  "Viktorínova",
+  "Vilová",
+  "Vincenta Hložníka",
+  "Vínna",
+  "Vlastenecké námestie",
+  "Vlčkova",
+  "Vlčkova",
+  "Vlčkova",
+  "Vodný vrch",
+  "Votrubova",
+  "Vrábeľská",
+  "Vrakunská cesta",
+  "Vranovská",
+  "Vretenová",
+  "Vrchná",
+  "Vrútocká",
+  "Vyhliadka",
+  "Vyhnianska cesta",
+  "Vysoká",
+  "Vyšehradská",
+  "Vyšná",
+  "Wattova",
+  "Wilsonova",
+  "Wolkrova",
+  "Za Kasárňou",
+  "Za sokolovňou",
+  "Za Stanicou",
+  "Za tehelňou",
+  "Záborského",
+  "Zadunajská cesta",
+  "Záhorácka",
+  "Záhradnícka",
+  "Záhradnícka",
+  "Záhradnícka",
+  "Záhradnícka",
+  "Záhrebská",
+  "Záhrebská",
+  "Zálužická",
+  "Zámocká",
+  "Zámocké schody",
+  "Zámočnícka",
+  "Západná",
+  "Západný rad",
+  "Záporožská",
+  "Zátišie",
+  "Závodníkova",
+  "Zelená",
+  "Zelinárska",
+  "Zimná",
+  "Zlaté piesky",
+  "Zlaté schody",
+  "Znievska",
+  "Zohorská",
+  "Zochova",
+  "Zrinského",
+  "Zvolenská",
+  "Žabí majer",
+  "Žabotova",
+  "Žehrianska",
+  "Železná",
+  "Železničiarska",
+  "Žellova",
+  "Žiarska",
+  "Židovská",
+  "Žilinská",
+  "Žilinská",
+  "Živnostenská",
+  "Žižkova",
+  "Župné námestie"
+];
+
+},{}],849:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],850:[function(require,module,exports){
+module.exports=require(66)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_name.js":66}],851:[function(require,module,exports){
+module.exports=require(67)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/time_zone.js":67}],852:[function(require,module,exports){
+module.exports=require(68)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/adjective.js":68}],853:[function(require,module,exports){
+module.exports=require(69)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/bs_noun.js":69}],854:[function(require,module,exports){
+module.exports=require(70)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/bs_verb.js":70}],855:[function(require,module,exports){
+module.exports=require(71)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/descriptor.js":71}],856:[function(require,module,exports){
+module.exports=require(72)
+},{"./adjective":852,"./bs_noun":853,"./bs_verb":854,"./descriptor":855,"./name":857,"./noun":858,"./suffix":859,"/Users/a/dev/faker.js/lib/locales/cz/company/index.js":72}],857:[function(require,module,exports){
+module.exports=require(73)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/name.js":73}],858:[function(require,module,exports){
+module.exports=require(74)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/noun.js":74}],859:[function(require,module,exports){
+module.exports=require(75)
+},{"/Users/a/dev/faker.js/lib/locales/cz/company/suffix.js":75}],860:[function(require,module,exports){
+var sk = {};
+module['exports'] = sk;
+sk.title = "Slovakian";
+sk.address = require("./address");
+sk.company = require("./company");
+sk.internet = require("./internet");
+sk.lorem = require("./lorem");
+sk.name = require("./name");
+sk.phone_number = require("./phone_number");
+
+},{"./address":843,"./company":856,"./internet":863,"./lorem":864,"./name":869,"./phone_number":877}],861:[function(require,module,exports){
+module["exports"] = [
+  "sk",
+  "com",
+  "net",
+  "eu",
+  "org"
+];
+
+},{}],862:[function(require,module,exports){
+module["exports"] = [
+  "gmail.com",
+  "zoznam.sk",
+  "azet.sk"
+];
+
+},{}],863:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":861,"./free_email":862,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],864:[function(require,module,exports){
+module.exports=require(83)
+},{"./supplemental":865,"./words":866,"/Users/a/dev/faker.js/lib/locales/cz/lorem/index.js":83}],865:[function(require,module,exports){
+module.exports=require(84)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/supplemental.js":84}],866:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],867:[function(require,module,exports){
+module["exports"] = [
+  "Alexandra",
+  "Karina",
+  "Daniela",
+  "Andrea",
+  "Antónia",
+  "Bohuslava",
+  "Dáša",
+  "Malvína",
+  "Kristína",
+  "Nataša",
+  "Bohdana",
+  "Drahomíra",
+  "Sára",
+  "Zora",
+  "Tamara",
+  "Ema",
+  "Tatiana",
+  "Erika",
+  "Veronika",
+  "Agáta",
+  "Dorota",
+  "Vanda",
+  "Zoja",
+  "Gabriela",
+  "Perla",
+  "Ida",
+  "Liana",
+  "Miloslava",
+  "Vlasta",
+  "Lívia",
+  "Eleonóra",
+  "Etela",
+  "Romana",
+  "Zlatica",
+  "Anežka",
+  "Bohumila",
+  "Františka",
+  "Angela",
+  "Matilda",
+  "Svetlana",
+  "Ľubica",
+  "Alena",
+  "Soňa",
+  "Vieroslava",
+  "Zita",
+  "Miroslava",
+  "Irena",
+  "Milena",
+  "Estera",
+  "Justína",
+  "Dana",
+  "Danica",
+  "Jela",
+  "Jaroslava",
+  "Jarmila",
+  "Lea",
+  "Anastázia",
+  "Galina",
+  "Lesana",
+  "Hermína",
+  "Monika",
+  "Ingrida",
+  "Viktória",
+  "Blažena",
+  "Žofia",
+  "Sofia",
+  "Gizela",
+  "Viola",
+  "Gertrúda",
+  "Zina",
+  "Júlia",
+  "Juliana",
+  "Želmíra",
+  "Ela",
+  "Vanesa",
+  "Iveta",
+  "Vilma",
+  "Petronela",
+  "Žaneta",
+  "Xénia",
+  "Karolína",
+  "Lenka",
+  "Laura",
+  "Stanislava",
+  "Margaréta",
+  "Dobroslava",
+  "Blanka",
+  "Valéria",
+  "Paulína",
+  "Sidónia",
+  "Adriána",
+  "Beáta",
+  "Petra",
+  "Melánia",
+  "Diana",
+  "Berta",
+  "Patrícia",
+  "Lujza",
+  "Amália",
+  "Milota",
+  "Nina",
+  "Margita",
+  "Kamila",
+  "Dušana",
+  "Magdaléna",
+  "Oľga",
+  "Anna",
+  "Hana",
+  "Božena",
+  "Marta",
+  "Libuša",
+  "Božidara",
+  "Dominika",
+  "Hortenzia",
+  "Jozefína",
+  "Štefánia",
+  "Ľubomíra",
+  "Zuzana",
+  "Darina",
+  "Marcela",
+  "Milica",
+  "Elena",
+  "Helena",
+  "Lýdia",
+  "Anabela",
+  "Jana",
+  "Silvia",
+  "Nikola",
+  "Ružena",
+  "Nora",
+  "Drahoslava",
+  "Linda",
+  "Melinda",
+  "Rebeka",
+  "Rozália",
+  "Regína",
+  "Alica",
+  "Marianna",
+  "Miriama",
+  "Martina",
+  "Mária",
+  "Jolana",
+  "Ľudomila",
+  "Ľudmila",
+  "Olympia",
+  "Eugénia",
+  "Ľuboslava",
+  "Zdenka",
+  "Edita",
+  "Michaela",
+  "Stela",
+  "Viera",
+  "Natália",
+  "Eliška",
+  "Brigita",
+  "Valentína",
+  "Terézia",
+  "Vladimíra",
+  "Hedviga",
+  "Uršuľa",
+  "Alojza",
+  "Kvetoslava",
+  "Sabína",
+  "Dobromila",
+  "Klára",
+  "Simona",
+  "Aurélia",
+  "Denisa",
+  "Renáta",
+  "Irma",
+  "Agnesa",
+  "Klaudia",
+  "Alžbeta",
+  "Elvíra",
+  "Cecília",
+  "Emília",
+  "Katarína",
+  "Henrieta",
+  "Bibiána",
+  "Barbora",
+  "Marína",
+  "Izabela",
+  "Hilda",
+  "Otília",
+  "Lucia",
+  "Branislava",
+  "Bronislava",
+  "Ivica",
+  "Albína",
+  "Kornélia",
+  "Sláva",
+  "Slávka",
+  "Judita",
+  "Dagmara",
+  "Adela",
+  "Nadežda",
+  "Eva",
+  "Filoména",
+  "Ivana",
+  "Milada"
+];
+
+},{}],868:[function(require,module,exports){
+module["exports"] = [
+  "Antalová",
+  "Babková",
+  "Bahnová",
+  "Balážová",
+  "Baranová",
+  "Baranková",
+  "Bartovičová",
+  "Bartošová",
+  "Bačová",
+  "Bernoláková",
+  "Beňová",
+  "Biceková",
+  "Bieliková",
+  "Blahová",
+  "Bondrová",
+  "Bosáková",
+  "Bošková",
+  "Brezinová",
+  "Bukovská",
+  "Chalupková",
+  "Chudíková",
+  "Cibulová",
+  "Cibulková",
+  "Cyprichová",
+  "Cígerová",
+  "Danková",
+  "Daňková",
+  "Daňová",
+  "Debnárová",
+  "Dejová",
+  "Dekýšová",
+  "Doležalová",
+  "Dočolomanská",
+  "Droppová",
+  "Dubovská",
+  "Dudeková",
+  "Dulová",
+  "Dullová",
+  "Dusíková",
+  "Dvončová",
+  "Dzurjaninová",
+  "Dávidová",
+  "Fabianová",
+  "Fabiánová",
+  "Fajnorová",
+  "Farkašovská",
+  "Ficová",
+  "Filcová",
+  "Filipová",
+  "Finková",
+  "Ftoreková",
+  "Gašparová",
+  "Gašparovičová",
+  "Gocníková",
+  "Gregorová",
+  "Gregušová",
+  "Grznárová",
+  "Habláková",
+  "Habšudová",
+  "Haldová",
+  "Halušková",
+  "Haláková",
+  "Hanková",
+  "Hanzalová",
+  "Haščáková",
+  "Heretiková",
+  "Hečková",
+  "Hlaváčeková",
+  "Hlinková",
+  "Holubová",
+  "Holubyová",
+  "Hossová",
+  "Hozová",
+  "Hrašková",
+  "Hricová",
+  "Hrmová",
+  "Hrušovská",
+  "Hubová",
+  "Ihnačáková",
+  "Janečeková",
+  "Janošková",
+  "Jantošovičová",
+  "Janíková",
+  "Jančeková",
+  "Jedľovská",
+  "Jendeková",
+  "Jonatová",
+  "Jurinová",
+  "Jurkovičová",
+  "Juríková",
+  "Jánošíková",
+  "Kafendová",
+  "Kaliská",
+  "Karulová",
+  "Kenížová",
+  "Klapková",
+  "Kmeťová",
+  "Kolesárová",
+  "Kollárová",
+  "Kolniková",
+  "Kolníková",
+  "Kolárová",
+  "Korecová",
+  "Kostkaová",
+  "Kostrecová",
+  "Kováčová",
+  "Kováčiková",
+  "Kozová",
+  "Kočišová",
+  "Krajíčeková",
+  "Krajčová",
+  "Krajčovičová",
+  "Krajčírová",
+  "Králiková",
+  "Krúpová",
+  "Kubíková",
+  "Kyseľová",
+  "Kállayová",
+  "Labudová",
+  "Lepšíková",
+  "Liptáková",
+  "Lisická",
+  "Lubinová",
+  "Lukáčová",
+  "Luptáková",
+  "Líšková",
+  "Madejová",
+  "Majeská",
+  "Malachovská",
+  "Malíšeková",
+  "Mamojková",
+  "Marcinková",
+  "Mariánová",
+  "Masaryková",
+  "Maslová",
+  "Matiašková",
+  "Medveďová",
+  "Melcerová",
+  "Mečiarová",
+  "Michalíková",
+  "Mihaliková",
+  "Mihálová",
+  "Miháliková",
+  "Miklošková",
+  "Mikulíková",
+  "Mikušová",
+  "Mikúšová",
+  "Milotová",
+  "Mináčová",
+  "Mišíková",
+  "Mojžišová",
+  "Mokrošová",
+  "Morová",
+  "Moravčíková",
+  "Mydlová",
+  "Nemcová",
+  "Nováková",
+  "Obšutová",
+  "Ondrušová",
+  "Otčenášová",
+  "Pauková",
+  "Pavlikovská",
+  "Pavúková",
+  "Pašeková",
+  "Pašková",
+  "Pelikánová",
+  "Petrovická",
+  "Petrušková",
+  "Pešková",
+  "Plchová",
+  "Plekanecová",
+  "Podhradská",
+  "Podkonická",
+  "Poliaková",
+  "Pupáková",
+  "Raková",
+  "Repiská",
+  "Romančíková",
+  "Rusová",
+  "Ružičková",
+  "Rybníčeková",
+  "Rybárová",
+  "Rybáriková",
+  "Samsonová",
+  "Sedliaková",
+  "Senková",
+  "Sklenková",
+  "Skokanová",
+  "Skutecká",
+  "Slašťanová",
+  "Slobodová",
+  "Slobodníková",
+  "Slotová",
+  "Slováková",
+  "Smreková",
+  "Stodolová",
+  "Straková",
+  "Strnisková",
+  "Svrbíková",
+  "Sámelová",
+  "Sýkorová",
+  "Tatarová",
+  "Tatarková",
+  "Tatárová",
+  "Tatárkaová",
+  "Thomková",
+  "Tomečeková",
+  "Tomková",
+  "Trubenová",
+  "Turčoková",
+  "Uramová",
+  "Urblíková",
+  "Vajcíková",
+  "Vajdová",
+  "Valachová",
+  "Valachovičová",
+  "Valentová",
+  "Valušková",
+  "Vaneková",
+  "Veselová",
+  "Vicenová",
+  "Višňovská",
+  "Vlachová",
+  "Vojteková",
+  "Vydarená",
+  "Zajacová",
+  "Zimová",
+  "Zimková",
+  "Záborská",
+  "Zúbriková",
+  "Čapkovičová",
+  "Čaplovičová",
+  "Čarnogurská",
+  "Čierná",
+  "Čobrdová",
+  "Ďaďová",
+  "Ďuricová",
+  "Ďurišová",
+  "Šidlová",
+  "Šimonovičová",
+  "Škriniarová",
+  "Škultétyová",
+  "Šmajdová",
+  "Šoltésová",
+  "Šoltýsová",
+  "Štefanová",
+  "Štefanková",
+  "Šulcová",
+  "Šurková",
+  "Švehlová",
+  "Šťastná"
+];
+
+},{}],869:[function(require,module,exports){
+arguments[4][88][0].apply(exports,arguments)
+},{"./female_first_name":867,"./female_last_name":868,"./male_first_name":870,"./male_last_name":871,"./name":872,"./prefix":873,"./suffix":874,"./title":875,"/Users/a/dev/faker.js/lib/locales/cz/name/index.js":88}],870:[function(require,module,exports){
+module["exports"] = [
+  "Drahoslav",
+  "Severín",
+  "Alexej",
+  "Ernest",
+  "Rastislav",
+  "Radovan",
+  "Dobroslav",
+  "Dalibor",
+  "Vincent",
+  "Miloš",
+  "Timotej",
+  "Gejza",
+  "Bohuš",
+  "Alfonz",
+  "Gašpar",
+  "Emil",
+  "Erik",
+  "Blažej",
+  "Zdenko",
+  "Dezider",
+  "Arpád",
+  "Valentín",
+  "Pravoslav",
+  "Jaromír",
+  "Roman",
+  "Matej",
+  "Frederik",
+  "Viktor",
+  "Alexander",
+  "Radomír",
+  "Albín",
+  "Bohumil",
+  "Kazimír",
+  "Fridrich",
+  "Radoslav",
+  "Tomáš",
+  "Alan",
+  "Branislav",
+  "Bruno",
+  "Gregor",
+  "Vlastimil",
+  "Boleslav",
+  "Eduard",
+  "Jozef",
+  "Víťazoslav",
+  "Blahoslav",
+  "Beňadik",
+  "Adrián",
+  "Gabriel",
+  "Marián",
+  "Emanuel",
+  "Miroslav",
+  "Benjamín",
+  "Hugo",
+  "Richard",
+  "Izidor",
+  "Zoltán",
+  "Albert",
+  "Igor",
+  "Július",
+  "Aleš",
+  "Fedor",
+  "Rudolf",
+  "Valér",
+  "Marcel",
+  "Ervín",
+  "Slavomír",
+  "Vojtech",
+  "Juraj",
+  "Marek",
+  "Jaroslav",
+  "Žigmund",
+  "Florián",
+  "Roland",
+  "Pankrác",
+  "Servác",
+  "Bonifác",
+  "Svetozár",
+  "Bernard",
+  "Júlia",
+  "Urban",
+  "Dušan",
+  "Viliam",
+  "Ferdinand",
+  "Norbert",
+  "Róbert",
+  "Medard",
+  "Zlatko",
+  "Anton",
+  "Vasil",
+  "Vít",
+  "Adolf",
+  "Vratislav",
+  "Alfréd",
+  "Alojz",
+  "Ján",
+  "Tadeáš",
+  "Ladislav",
+  "Peter",
+  "Pavol",
+  "Miloslav",
+  "Prokop",
+  "Cyril",
+  "Metod",
+  "Patrik",
+  "Oliver",
+  "Ivan",
+  "Kamil",
+  "Henrich",
+  "Drahomír",
+  "Bohuslav",
+  "Iľja",
+  "Daniel",
+  "Vladimír",
+  "Jakub",
+  "Krištof",
+  "Ignác",
+  "Gustáv",
+  "Jerguš",
+  "Dominik",
+  "Oskar",
+  "Vavrinec",
+  "Ľubomír",
+  "Mojmír",
+  "Leonard",
+  "Tichomír",
+  "Filip",
+  "Bartolomej",
+  "Ľudovít",
+  "Samuel",
+  "Augustín",
+  "Belo",
+  "Oleg",
+  "Bystrík",
+  "Ctibor",
+  "Ľudomil",
+  "Konštantín",
+  "Ľuboslav",
+  "Matúš",
+  "Móric",
+  "Ľuboš",
+  "Ľubor",
+  "Vladislav",
+  "Cyprián",
+  "Václav",
+  "Michal",
+  "Jarolím",
+  "Arnold",
+  "Levoslav",
+  "František",
+  "Dionýz",
+  "Maximilián",
+  "Koloman",
+  "Boris",
+  "Lukáš",
+  "Kristián",
+  "Vendelín",
+  "Sergej",
+  "Aurel",
+  "Demeter",
+  "Denis",
+  "Hubert",
+  "Karol",
+  "Imrich",
+  "René",
+  "Bohumír",
+  "Teodor",
+  "Tibor",
+  "Maroš",
+  "Martin",
+  "Svätopluk",
+  "Stanislav",
+  "Leopold",
+  "Eugen",
+  "Félix",
+  "Klement",
+  "Kornel",
+  "Milan",
+  "Vratko",
+  "Ondrej",
+  "Andrej",
+  "Edmund",
+  "Oldrich",
+  "Oto",
+  "Mikuláš",
+  "Ambróz",
+  "Radúz",
+  "Bohdan",
+  "Adam",
+  "Štefan",
+  "Dávid",
+  "Silvester"
+];
+
+},{}],871:[function(require,module,exports){
+module["exports"] = [
+  "Antal",
+  "Babka",
+  "Bahna",
+  "Bahno",
+  "Baláž",
+  "Baran",
+  "Baranka",
+  "Bartovič",
+  "Bartoš",
+  "Bača",
+  "Bernolák",
+  "Beňo",
+  "Bicek",
+  "Bielik",
+  "Blaho",
+  "Bondra",
+  "Bosák",
+  "Boška",
+  "Brezina",
+  "Bukovský",
+  "Chalupka",
+  "Chudík",
+  "Cibula",
+  "Cibulka",
+  "Cibuľa",
+  "Cyprich",
+  "Cíger",
+  "Danko",
+  "Daňko",
+  "Daňo",
+  "Debnár",
+  "Dej",
+  "Dekýš",
+  "Doležal",
+  "Dočolomanský",
+  "Droppa",
+  "Dubovský",
+  "Dudek",
+  "Dula",
+  "Dulla",
+  "Dusík",
+  "Dvonč",
+  "Dzurjanin",
+  "Dávid",
+  "Fabian",
+  "Fabián",
+  "Fajnor",
+  "Farkašovský",
+  "Fico",
+  "Filc",
+  "Filip",
+  "Finka",
+  "Ftorek",
+  "Gašpar",
+  "Gašparovič",
+  "Gocník",
+  "Gregor",
+  "Greguš",
+  "Grznár",
+  "Hablák",
+  "Habšuda",
+  "Halda",
+  "Haluška",
+  "Halák",
+  "Hanko",
+  "Hanzal",
+  "Haščák",
+  "Heretik",
+  "Hečko",
+  "Hlaváček",
+  "Hlinka",
+  "Holub",
+  "Holuby",
+  "Hossa",
+  "Hoza",
+  "Hraško",
+  "Hric",
+  "Hrmo",
+  "Hrušovský",
+  "Huba",
+  "Ihnačák",
+  "Janeček",
+  "Janoška",
+  "Jantošovič",
+  "Janík",
+  "Janček",
+  "Jedľovský",
+  "Jendek",
+  "Jonata",
+  "Jurina",
+  "Jurkovič",
+  "Jurík",
+  "Jánošík",
+  "Kafenda",
+  "Kaliský",
+  "Karul",
+  "Keníž",
+  "Klapka",
+  "Kmeť",
+  "Kolesár",
+  "Kollár",
+  "Kolnik",
+  "Kolník",
+  "Kolár",
+  "Korec",
+  "Kostka",
+  "Kostrec",
+  "Kováč",
+  "Kováčik",
+  "Koza",
+  "Kočiš",
+  "Krajíček",
+  "Krajči",
+  "Krajčo",
+  "Krajčovič",
+  "Krajčír",
+  "Králik",
+  "Krúpa",
+  "Kubík",
+  "Kyseľ",
+  "Kállay",
+  "Labuda",
+  "Lepšík",
+  "Lipták",
+  "Lisický",
+  "Lubina",
+  "Lukáč",
+  "Lupták",
+  "Líška",
+  "Madej",
+  "Majeský",
+  "Malachovský",
+  "Malíšek",
+  "Mamojka",
+  "Marcinko",
+  "Marián",
+  "Masaryk",
+  "Maslo",
+  "Matiaško",
+  "Medveď",
+  "Melcer",
+  "Mečiar",
+  "Michalík",
+  "Mihalik",
+  "Mihál",
+  "Mihálik",
+  "Mikloško",
+  "Mikulík",
+  "Mikuš",
+  "Mikúš",
+  "Milota",
+  "Mináč",
+  "Mišík",
+  "Mojžiš",
+  "Mokroš",
+  "Mora",
+  "Moravčík",
+  "Mydlo",
+  "Nemec",
+  "Nitra",
+  "Novák",
+  "Obšut",
+  "Ondruš",
+  "Otčenáš",
+  "Pauko",
+  "Pavlikovský",
+  "Pavúk",
+  "Pašek",
+  "Paška",
+  "Paško",
+  "Pelikán",
+  "Petrovický",
+  "Petruška",
+  "Peško",
+  "Plch",
+  "Plekanec",
+  "Podhradský",
+  "Podkonický",
+  "Poliak",
+  "Pupák",
+  "Rak",
+  "Repiský",
+  "Romančík",
+  "Rus",
+  "Ružička",
+  "Rybníček",
+  "Rybár",
+  "Rybárik",
+  "Samson",
+  "Sedliak",
+  "Senko",
+  "Sklenka",
+  "Skokan",
+  "Skutecký",
+  "Slašťan",
+  "Sloboda",
+  "Slobodník",
+  "Slota",
+  "Slovák",
+  "Smrek",
+  "Stodola",
+  "Straka",
+  "Strnisko",
+  "Svrbík",
+  "Sámel",
+  "Sýkora",
+  "Tatar",
+  "Tatarka",
+  "Tatár",
+  "Tatárka",
+  "Thomka",
+  "Tomeček",
+  "Tomka",
+  "Tomko",
+  "Truben",
+  "Turčok",
+  "Uram",
+  "Urblík",
+  "Vajcík",
+  "Vajda",
+  "Valach",
+  "Valachovič",
+  "Valent",
+  "Valuška",
+  "Vanek",
+  "Vesel",
+  "Vicen",
+  "Višňovský",
+  "Vlach",
+  "Vojtek",
+  "Vydarený",
+  "Zajac",
+  "Zima",
+  "Zimka",
+  "Záborský",
+  "Zúbrik",
+  "Čapkovič",
+  "Čaplovič",
+  "Čarnogurský",
+  "Čierny",
+  "Čobrda",
+  "Ďaďo",
+  "Ďurica",
+  "Ďuriš",
+  "Šidlo",
+  "Šimonovič",
+  "Škriniar",
+  "Škultéty",
+  "Šmajda",
+  "Šoltés",
+  "Šoltýs",
+  "Štefan",
+  "Štefanka",
+  "Šulc",
+  "Šurka",
+  "Švehla",
+  "Šťastný"
+];
+
+},{}],872:[function(require,module,exports){
+module.exports=require(91)
+},{"/Users/a/dev/faker.js/lib/locales/cz/name/name.js":91}],873:[function(require,module,exports){
+module.exports=require(92)
+},{"/Users/a/dev/faker.js/lib/locales/cz/name/prefix.js":92}],874:[function(require,module,exports){
+module.exports=require(93)
+},{"/Users/a/dev/faker.js/lib/locales/cz/name/suffix.js":93}],875:[function(require,module,exports){
+module.exports=require(264)
+},{"/Users/a/dev/faker.js/lib/locales/en/name/title.js":264}],876:[function(require,module,exports){
+module["exports"] = [
+  "09## ### ###",
+  "0## #### ####",
+  "0# #### ####",
+  "+421 ### ### ###"
+];
+
+},{}],877:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":876,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],878:[function(require,module,exports){
+module.exports=require(511)
+},{"/Users/a/dev/faker.js/lib/locales/ge/address/building_number.js":511}],879:[function(require,module,exports){
+module["exports"] = [
+  "#{city_prefix}#{city_suffix}"
+];
+
+},{}],880:[function(require,module,exports){
+module["exports"] = [
+  "Söder",
+  "Norr",
+  "Väst",
+  "Öster",
+  "Aling",
+  "Ar",
+  "Av",
+  "Bo",
+  "Br",
+  "Bå",
+  "Ek",
+  "En",
+  "Esk",
+  "Fal",
+  "Gäv",
+  "Göte",
+  "Ha",
+  "Helsing",
+  "Karl",
+  "Krist",
+  "Kram",
+  "Kung",
+  "Kö",
+  "Lyck",
+  "Ny"
+];
+
+},{}],881:[function(require,module,exports){
+module["exports"] = [
+  "stad",
+  "land",
+  "sås",
+  "ås",
+  "holm",
+  "tuna",
+  "sta",
+  "berg",
+  "löv",
+  "borg",
+  "mora",
+  "hamn",
+  "fors",
+  "köping",
+  "by",
+  "hult",
+  "torp",
+  "fred",
+  "vik"
+];
+
+},{}],882:[function(require,module,exports){
+module["exports"] = [
+  "s Väg",
+  "s Gata"
+];
+
+},{}],883:[function(require,module,exports){
+module["exports"] = [
+  "Ryssland",
+  "Kanada",
+  "Kina",
+  "USA",
+  "Brasilien",
+  "Australien",
+  "Indien",
+  "Argentina",
+  "Kazakstan",
+  "Algeriet",
+  "DR Kongo",
+  "Danmark",
+  "Färöarna",
+  "Grönland",
+  "Saudiarabien",
+  "Mexiko",
+  "Indonesien",
+  "Sudan",
+  "Libyen",
+  "Iran",
+  "Mongoliet",
+  "Peru",
+  "Tchad",
+  "Niger",
+  "Angola",
+  "Mali",
+  "Sydafrika",
+  "Colombia",
+  "Etiopien",
+  "Bolivia",
+  "Mauretanien",
+  "Egypten",
+  "Tanzania",
+  "Nigeria",
+  "Venezuela",
+  "Namibia",
+  "Pakistan",
+  "Moçambique",
+  "Turkiet",
+  "Chile",
+  "Zambia",
+  "Marocko",
+  "Västsahara",
+  "Burma",
+  "Afghanistan",
+  "Somalia",
+  "Centralafrikanska republiken",
+  "Sydsudan",
+  "Ukraina",
+  "Botswana",
+  "Madagaskar",
+  "Kenya",
+  "Frankrike",
+  "Franska Guyana",
+  "Jemen",
+  "Thailand",
+  "Spanien",
+  "Turkmenistan",
+  "Kamerun",
+  "Papua Nya Guinea",
+  "Sverige",
+  "Uzbekistan",
+  "Irak",
+  "Paraguay",
+  "Zimbabwe",
+  "Japan",
+  "Tyskland",
+  "Kongo",
+  "Finland",
+  "Malaysia",
+  "Vietnam",
+  "Norge",
+  "Svalbard",
+  "Jan Mayen",
+  "Elfenbenskusten",
+  "Polen",
+  "Italien",
+  "Filippinerna",
+  "Ecuador",
+  "Burkina Faso",
+  "Nya Zeeland",
+  "Gabon",
+  "Guinea",
+  "Storbritannien",
+  "Ghana",
+  "Rumänien",
+  "Laos",
+  "Uganda",
+  "Guyana",
+  "Oman",
+  "Vitryssland",
+  "Kirgizistan",
+  "Senegal",
+  "Syrien",
+  "Kambodja",
+  "Uruguay",
+  "Tunisien",
+  "Surinam",
+  "Nepal",
+  "Bangladesh",
+  "Tadzjikistan",
+  "Grekland",
+  "Nicaragua",
+  "Eritrea",
+  "Nordkorea",
+  "Malawi",
+  "Benin",
+  "Honduras",
+  "Liberia",
+  "Bulgarien",
+  "Kuba",
+  "Guatemala",
+  "Island",
+  "Sydkorea",
+  "Ungern",
+  "Portugal",
+  "Jordanien",
+  "Serbien",
+  "Azerbajdzjan",
+  "Österrike",
+  "Förenade Arabemiraten",
+  "Tjeckien",
+  "Panama",
+  "Sierra Leone",
+  "Irland",
+  "Georgien",
+  "Sri Lanka",
+  "Litauen",
+  "Lettland",
+  "Togo",
+  "Kroatien",
+  "Bosnien och Hercegovina",
+  "Costa Rica",
+  "Slovakien",
+  "Dominikanska republiken",
+  "Bhutan",
+  "Estland",
+  "Danmark",
+  "Färöarna",
+  "Grönland",
+  "Nederländerna",
+  "Schweiz",
+  "Guinea-Bissau",
+  "Taiwan",
+  "Moldavien",
+  "Belgien",
+  "Lesotho",
+  "Armenien",
+  "Albanien",
+  "Salomonöarna",
+  "Ekvatorialguinea",
+  "Burundi",
+  "Haiti",
+  "Rwanda",
+  "Makedonien",
+  "Djibouti",
+  "Belize",
+  "Israel",
+  "El Salvador",
+  "Slovenien",
+  "Fiji",
+  "Kuwait",
+  "Swaziland",
+  "Timor-Leste",
+  "Montenegro",
+  "Bahamas",
+  "Vanuatu",
+  "Qatar",
+  "Gambia",
+  "Jamaica",
+  "Kosovo",
+  "Libanon",
+  "Cypern",
+  "Brunei",
+  "Trinidad och Tobago",
+  "Kap Verde",
+  "Samoa",
+  "Luxemburg",
+  "Komorerna",
+  "Mauritius",
+  "São Tomé och Príncipe",
+  "Kiribati",
+  "Dominica",
+  "Tonga",
+  "Mikronesiens federerade stater",
+  "Singapore",
+  "Bahrain",
+  "Saint Lucia",
+  "Andorra",
+  "Palau",
+  "Seychellerna",
+  "Antigua och Barbuda",
+  "Barbados",
+  "Saint Vincent och Grenadinerna",
+  "Grenada",
+  "Malta",
+  "Maldiverna",
+  "Saint Kitts och Nevis",
+  "Marshallöarna",
+  "Liechtenstein",
+  "San Marino",
+  "Tuvalu",
+  "Nauru",
+  "Monaco",
+  "Vatikanstaten"
+];
+
+},{}],884:[function(require,module,exports){
+module["exports"] = [
+  "Sverige"
+];
+
+},{}],885:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.country = require("./country");
+address.common_street_suffix = require("./common_street_suffix");
+address.street_prefix = require("./street_prefix");
+address.street_root = require("./street_root");
+address.street_suffix = require("./street_suffix");
+address.state = require("./state");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.postcode = require("./postcode");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":878,"./city":879,"./city_prefix":880,"./city_suffix":881,"./common_street_suffix":882,"./country":883,"./default_country":884,"./postcode":886,"./secondary_address":887,"./state":888,"./street_address":889,"./street_name":890,"./street_prefix":891,"./street_root":892,"./street_suffix":893}],886:[function(require,module,exports){
+module.exports=require(379)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/postcode.js":379}],887:[function(require,module,exports){
+module["exports"] = [
+  "Lgh. ###",
+  "Hus ###"
+];
+
+},{}],888:[function(require,module,exports){
+module["exports"] = [
+  "Blekinge",
+  "Dalarna",
+  "Gotland",
+  "Gävleborg",
+  "Göteborg",
+  "Halland",
+  "Jämtland",
+  "Jönköping",
+  "Kalmar",
+  "Kronoberg",
+  "Norrbotten",
+  "Skaraborg",
+  "Skåne",
+  "Stockholm",
+  "Södermanland",
+  "Uppsala",
+  "Värmland",
+  "Västerbotten",
+  "Västernorrland",
+  "Västmanland",
+  "Älvsborg",
+  "Örebro",
+  "Östergötland"
+];
+
+},{}],889:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],890:[function(require,module,exports){
+module.exports=require(663)
+},{"/Users/a/dev/faker.js/lib/locales/nb_NO/address/street_name.js":663}],891:[function(require,module,exports){
+module["exports"] = [
+  "Västra",
+  "Östra",
+  "Norra",
+  "Södra",
+  "Övre",
+  "Undre"
+];
+
+},{}],892:[function(require,module,exports){
+module["exports"] = [
+  "Björk",
+  "Järnvägs",
+  "Ring",
+  "Skol",
+  "Skogs",
+  "Ny",
+  "Gran",
+  "Idrotts",
+  "Stor",
+  "Kyrk",
+  "Industri",
+  "Park",
+  "Strand",
+  "Skol",
+  "Trädgård",
+  "Ängs",
+  "Kyrko",
+  "Villa",
+  "Ek",
+  "Kvarn",
+  "Stations",
+  "Back",
+  "Furu",
+  "Gen",
+  "Fabriks",
+  "Åker",
+  "Bäck",
+  "Asp"
+];
+
+},{}],893:[function(require,module,exports){
+module["exports"] = [
+  "vägen",
+  "gatan",
+  "gränden",
+  "gärdet",
+  "allén"
+];
+
+},{}],894:[function(require,module,exports){
+module["exports"] = [
+  56,
+  62,
+  59
+];
+
+},{}],895:[function(require,module,exports){
+module["exports"] = [
+  "#{common_cell_prefix}-###-####"
+];
+
+},{}],896:[function(require,module,exports){
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.common_cell_prefix = require("./common_cell_prefix");
+cell_phone.formats = require("./formats");
+
+},{"./common_cell_prefix":894,"./formats":895}],897:[function(require,module,exports){
+module["exports"] = [
+  "vit",
+  "silver",
+  "grå",
+  "svart",
+  "röd",
+  "grön",
+  "blå",
+  "gul",
+  "lila",
+  "indigo",
+  "guld",
+  "brun",
+  "rosa",
+  "purpur",
+  "korall"
+];
+
+},{}],898:[function(require,module,exports){
+module["exports"] = [
+  "Böcker",
+  "Filmer",
+  "Musik",
+  "Spel",
+  "Elektronik",
+  "Datorer",
+  "Hem",
+  "Trädgård",
+  "Verktyg",
+  "Livsmedel",
+  "Hälsa",
+  "Skönhet",
+  "Leksaker",
+  "Klädsel",
+  "Skor",
+  "Smycken",
+  "Sport"
+];
+
+},{}],899:[function(require,module,exports){
+arguments[4][31][0].apply(exports,arguments)
+},{"./color":897,"./department":898,"./product_name":900,"/Users/a/dev/faker.js/lib/locales/az/commerce/index.js":31}],900:[function(require,module,exports){
+module["exports"] = {
+  "adjective": [
+    "Liten",
+    "Ergonomisk",
+    "Robust",
+    "Intelligent",
+    "Söt",
+    "Otrolig",
+    "Fatastisk",
+    "Praktisk",
+    "Slimmad",
+    "Grym"
+  ],
+  "material": [
+    "Stål",
+    "Metall",
+    "Trä",
+    "Betong",
+    "Plast",
+    "Bomul",
+    "Grnit",
+    "Gummi",
+    "Latex"
+  ],
+  "product": [
+    "Stol",
+    "Bil",
+    "Dator",
+    "Handskar",
+    "Pants",
+    "Shirt",
+    "Table",
+    "Shoes",
+    "Hat"
+  ]
+};
+
+},{}],901:[function(require,module,exports){
+arguments[4][166][0].apply(exports,arguments)
+},{"./name":902,"./suffix":903,"/Users/a/dev/faker.js/lib/locales/de_CH/company/index.js":166}],902:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name} #{suffix}",
+  "#{Name.last_name}-#{Name.last_name}",
+  "#{Name.last_name}, #{Name.last_name} #{suffix}"
+];
+
+},{}],903:[function(require,module,exports){
+module["exports"] = [
+  "Gruppen",
+  "AB",
+  "HB",
+  "Group",
+  "Investment",
+  "Kommanditbolag",
+  "Aktiebolag"
+];
+
+},{}],904:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"./month":905,"./weekday":906,"/Users/a/dev/faker.js/lib/locales/az/date/index.js":37}],905:[function(require,module,exports){
+// Source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/en.xml#L1799
+module["exports"] = {
+  wide: [
+    "januari",
+    "februari",
+    "mars",
+    "april",
+    "maj",
+    "juni",
+    "juli",
+    "augusti",
+    "september",
+    "oktober",
+    "november",
+    "december"
+  ],
+  abbr: [
+    "jan",
+    "feb",
+    "mar",
+    "apr",
+    "maj",
+    "jun",
+    "jul",
+    "aug",
+    "sep",
+    "okt",
+    "nov",
+    "dec"
+  ]
+};
+
+},{}],906:[function(require,module,exports){
+// Source: http://unicode.org/cldr/trac/browser/tags/release-27/common/main/en.xml#L1847
+module["exports"] = {
+  wide: [
+    "söndag",
+    "måndag",
+    "tisdag",
+    "onsdag",
+    "torsdag",
+    "fredag",
+    "lördag"
+  ],
+  abbr: [
+    "sön",
+    "mån",
+    "tis",
+    "ons",
+    "tor",
+    "fre",
+    "lör"
+  ]
+};
+
+},{}],907:[function(require,module,exports){
+var sv = {};
+module['exports'] = sv;
+sv.title = "Swedish";
+sv.address = require("./address");
+sv.company = require("./company");
+sv.internet = require("./internet");
+sv.name = require("./name");
+sv.phone_number = require("./phone_number");
+sv.cell_phone = require("./cell_phone");
+sv.commerce = require("./commerce");
+sv.team = require("./team");
+sv.date = require("./date");
+
+},{"./address":885,"./cell_phone":896,"./commerce":899,"./company":901,"./date":904,"./internet":909,"./name":912,"./phone_number":918,"./team":919}],908:[function(require,module,exports){
+module["exports"] = [
+  "se",
+  "nu",
+  "info",
+  "com",
+  "org"
+];
+
+},{}],909:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":908,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],910:[function(require,module,exports){
+module["exports"] = [
+  "Erik",
+  "Lars",
+  "Karl",
+  "Anders",
+  "Per",
+  "Johan",
+  "Nils",
+  "Lennart",
+  "Emil",
+  "Hans"
+];
+
+},{}],911:[function(require,module,exports){
+module["exports"] = [
+  "Maria",
+  "Anna",
+  "Margareta",
+  "Elisabeth",
+  "Eva",
+  "Birgitta",
+  "Kristina",
+  "Karin",
+  "Elisabet",
+  "Marie"
+];
+
+},{}],912:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name_women = require("./first_name_women");
+name.first_name_men = require("./first_name_men");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.title = require("./title");
+name.name = require("./name");
+
+},{"./first_name_men":910,"./first_name_women":911,"./last_name":913,"./name":914,"./prefix":915,"./title":916}],913:[function(require,module,exports){
+module["exports"] = [
+  "Johansson",
+  "Andersson",
+  "Karlsson",
+  "Nilsson",
+  "Eriksson",
+  "Larsson",
+  "Olsson",
+  "Persson",
+  "Svensson",
+  "Gustafsson"
+];
+
+},{}],914:[function(require,module,exports){
+module["exports"] = [
+  "#{first_name_women} #{last_name}",
+  "#{first_name_men} #{last_name}",
+  "#{first_name_women} #{last_name}",
+  "#{first_name_men} #{last_name}",
+  "#{first_name_women} #{last_name}",
+  "#{first_name_men} #{last_name}",
+  "#{prefix} #{first_name_men} #{last_name}",
+  "#{prefix} #{first_name_women} #{last_name}"
+];
+
+},{}],915:[function(require,module,exports){
+module["exports"] = [
+  "Dr.",
+  "Prof.",
+  "PhD."
+];
+
+},{}],916:[function(require,module,exports){
+module.exports=require(264)
+},{"/Users/a/dev/faker.js/lib/locales/en/name/title.js":264}],917:[function(require,module,exports){
+module["exports"] = [
+  "####-#####",
+  "####-######"
+];
+
+},{}],918:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":917,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],919:[function(require,module,exports){
+var team = {};
+module['exports'] = team;
+team.suffix = require("./suffix");
+team.name = require("./name");
+
+},{"./name":920,"./suffix":921}],920:[function(require,module,exports){
+module["exports"] = [
+  "#{Address.city} #{suffix}"
+];
+
+},{}],921:[function(require,module,exports){
+module["exports"] = [
+  "IF",
+  "FF",
+  "BK",
+  "HK",
+  "AIF",
+  "SK",
+  "FC",
+  "SK",
+  "BoIS",
+  "FK",
+  "BIS",
+  "FIF",
+  "IK"
+];
+
+},{}],922:[function(require,module,exports){
+module.exports=require(97)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/building_number.js":97}],923:[function(require,module,exports){
+module["exports"] = [
+  "Adana",
+  "Adıyaman",
+  "Afyon",
+  "Ağrı",
+  "Amasya",
+  "Ankara",
+  "Antalya",
+  "Artvin",
+  "Aydın",
+  "Balıkesir",
+  "Bilecik",
+  "Bingöl",
+  "Bitlis",
+  "Bolu",
+  "Burdur",
+  "Bursa",
+  "Çanakkale",
+  "Çankırı",
+  "Çorum",
+  "Denizli",
+  "Diyarbakır",
+  "Edirne",
+  "Elazığ",
+  "Erzincan",
+  "Erzurum",
+  "Eskişehir",
+  "Gaziantep",
+  "Giresun",
+  "Gümüşhane",
+  "Hakkari",
+  "Hatay",
+  "Isparta",
+  "İçel (Mersin)",
+  "İstanbul",
+  "İzmir",
+  "Kars",
+  "Kastamonu",
+  "Kayseri",
+  "Kırklareli",
+  "Kırşehir",
+  "Kocaeli",
+  "Konya",
+  "Kütahya",
+  "Malatya",
+  "Manisa",
+  "K.maraş",
+  "Mardin",
+  "Muğla",
+  "Muş",
+  "Nevşehir",
+  "Niğde",
+  "Ordu",
+  "Rize",
+  "Sakarya",
+  "Samsun",
+  "Siirt",
+  "Sinop",
+  "Sivas",
+  "Tekirdağ",
+  "Tokat",
+  "Trabzon",
+  "Tunceli",
+  "Şanlıurfa",
+  "Uşak",
+  "Van",
+  "Yozgat",
+  "Zonguldak",
+  "Aksaray",
+  "Bayburt",
+  "Karaman",
+  "Kırıkkale",
+  "Batman",
+  "Şırnak",
+  "Bartın",
+  "Ardahan",
+  "Iğdır",
+  "Yalova",
+  "Karabük",
+  "Kilis",
+  "Osmaniye",
+  "Düzce"
+];
+
+},{}],924:[function(require,module,exports){
+module["exports"] = [
+  "Afganistan",
+  "Almanya",
+  "Amerika Birleşik Devletleri",
+  "Amerikan Samoa",
+  "Andorra",
+  "Angola",
+  "Anguilla, İngiltere",
+  "Antigua ve Barbuda",
+  "Arjantin",
+  "Arnavutluk",
+  "Aruba, Hollanda",
+  "Avustralya",
+  "Avusturya",
+  "Azerbaycan",
+  "Bahama Adaları",
+  "Bahreyn",
+  "Bangladeş",
+  "Barbados",
+  "Belçika",
+  "Belize",
+  "Benin",
+  "Bermuda, İngiltere",
+  "Beyaz Rusya",
+  "Bhutan",
+  "Birleşik Arap Emirlikleri",
+  "Birmanya (Myanmar)",
+  "Bolivya",
+  "Bosna Hersek",
+  "Botswana",
+  "Brezilya",
+  "Brunei",
+  "Bulgaristan",
+  "Burkina Faso",
+  "Burundi",
+  "Cape Verde",
+  "Cayman Adaları, İngiltere",
+  "Cebelitarık, İngiltere",
+  "Cezayir",
+  "Christmas Adası , Avusturalya",
+  "Cibuti",
+  "Çad",
+  "Çek Cumhuriyeti",
+  "Çin",
+  "Danimarka",
+  "Doğu Timor",
+  "Dominik Cumhuriyeti",
+  "Dominika",
+  "Ekvator",
+  "Ekvator Ginesi",
+  "El Salvador",
+  "Endonezya",
+  "Eritre",
+  "Ermenistan",
+  "Estonya",
+  "Etiyopya",
+  "Fas",
+  "Fiji",
+  "Fildişi Sahili",
+  "Filipinler",
+  "Filistin",
+  "Finlandiya",
+  "Folkland Adaları, İngiltere",
+  "Fransa",
+  "Fransız Guyanası",
+  "Fransız Güney Eyaletleri (Kerguelen Adaları)",
+  "Fransız Polinezyası",
+  "Gabon",
+  "Galler",
+  "Gambiya",
+  "Gana",
+  "Gine",
+  "Gine-Bissau",
+  "Grenada",
+  "Grönland",
+  "Guadalup, Fransa",
+  "Guam, Amerika",
+  "Guatemala",
+  "Guyana",
+  "Güney Afrika",
+  "Güney Georgia ve Güney Sandviç Adaları, İngiltere",
+  "Güney Kıbrıs Rum Yönetimi",
+  "Güney Kore",
+  "Gürcistan H",
+  "Haiti",
+  "Hırvatistan",
+  "Hindistan",
+  "Hollanda",
+  "Hollanda Antilleri",
+  "Honduras",
+  "Irak",
+  "İngiltere",
+  "İran",
+  "İrlanda",
+  "İspanya",
+  "İsrail",
+  "İsveç",
+  "İsviçre",
+  "İtalya",
+  "İzlanda",
+  "Jamaika",
+  "Japonya",
+  "Johnston Atoll, Amerika",
+  "K.K.T.C.",
+  "Kamboçya",
+  "Kamerun",
+  "Kanada",
+  "Kanarya Adaları",
+  "Karadağ",
+  "Katar",
+  "Kazakistan",
+  "Kenya",
+  "Kırgızistan",
+  "Kiribati",
+  "Kolombiya",
+  "Komorlar",
+  "Kongo",
+  "Kongo Demokratik Cumhuriyeti",
+  "Kosova",
+  "Kosta Rika",
+  "Kuveyt",
+  "Kuzey İrlanda",
+  "Kuzey Kore",
+  "Kuzey Maryana Adaları",
+  "Küba",
+  "Laos",
+  "Lesotho",
+  "Letonya",
+  "Liberya",
+  "Libya",
+  "Liechtenstein",
+  "Litvanya",
+  "Lübnan",
+  "Lüksemburg",
+  "Macaristan",
+  "Madagaskar",
+  "Makau (Makao)",
+  "Makedonya",
+  "Malavi",
+  "Maldiv Adaları",
+  "Malezya",
+  "Mali",
+  "Malta",
+  "Marşal Adaları",
+  "Martinik, Fransa",
+  "Mauritius",
+  "Mayotte, Fransa",
+  "Meksika",
+  "Mısır",
+  "Midway Adaları, Amerika",
+  "Mikronezya",
+  "Moğolistan",
+  "Moldavya",
+  "Monako",
+  "Montserrat",
+  "Moritanya",
+  "Mozambik",
+  "Namibia",
+  "Nauru",
+  "Nepal",
+  "Nijer",
+  "Nijerya",
+  "Nikaragua",
+  "Niue, Yeni Zelanda",
+  "Norveç",
+  "Orta Afrika Cumhuriyeti",
+  "Özbekistan",
+  "Pakistan",
+  "Palau Adaları",
+  "Palmyra Atoll, Amerika",
+  "Panama",
+  "Papua Yeni Gine",
+  "Paraguay",
+  "Peru",
+  "Polonya",
+  "Portekiz",
+  "Porto Riko, Amerika",
+  "Reunion, Fransa",
+  "Romanya",
+  "Ruanda",
+  "Rusya Federasyonu",
+  "Saint Helena, İngiltere",
+  "Saint Martin, Fransa",
+  "Saint Pierre ve Miquelon, Fransa",
+  "Samoa",
+  "San Marino",
+  "Santa Kitts ve Nevis",
+  "Santa Lucia",
+  "Santa Vincent ve Grenadinler",
+  "Sao Tome ve Principe",
+  "Senegal",
+  "Seyşeller",
+  "Sırbistan",
+  "Sierra Leone",
+  "Singapur",
+  "Slovakya",
+  "Slovenya",
+  "Solomon Adaları",
+  "Somali",
+  "Sri Lanka",
+  "Sudan",
+  "Surinam",
+  "Suriye",
+  "Suudi Arabistan",
+  "Svalbard, Norveç",
+  "Svaziland",
+  "Şili",
+  "Tacikistan",
+  "Tanzanya",
+  "Tayland",
+  "Tayvan",
+  "Togo",
+  "Tonga",
+  "Trinidad ve Tobago",
+  "Tunus",
+  "Turks ve Caicos Adaları, İngiltere",
+  "Tuvalu",
+  "Türkiye",
+  "Türkmenistan",
+  "Uganda",
+  "Ukrayna",
+  "Umman",
+  "Uruguay",
+  "Ürdün",
+  "Vallis ve Futuna, Fransa",
+  "Vanuatu",
+  "Venezuela",
+  "Vietnam",
+  "Virgin Adaları, Amerika",
+  "Virgin Adaları, İngiltere",
+  "Wake Adaları, Amerika",
+  "Yemen",
+  "Yeni Kaledonya, Fransa",
+  "Yeni Zelanda",
+  "Yunanistan",
+  "Zambiya",
+  "Zimbabve"
+];
+
+},{}],925:[function(require,module,exports){
+module["exports"] = [
+  "Türkiye"
+];
+
+},{}],926:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city = require("./city");
+address.street_root = require("./street_root");
+address.country = require("./country");
+address.postcode = require("./postcode");
+address.default_country = require("./default_country");
+address.building_number = require("./building_number");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+
+},{"./building_number":922,"./city":923,"./country":924,"./default_country":925,"./postcode":927,"./street_address":928,"./street_name":929,"./street_root":930}],927:[function(require,module,exports){
+module.exports=require(379)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/postcode.js":379}],928:[function(require,module,exports){
+module.exports=require(65)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/street_address.js":65}],929:[function(require,module,exports){
+module.exports=require(109)
+},{"/Users/a/dev/faker.js/lib/locales/de/address/street_name.js":109}],930:[function(require,module,exports){
+module["exports"] = [
+  "Atatürk Bulvarı",
+  "Alparslan Türkeş Bulvarı",
+  "Ali Çetinkaya Caddesi",
+  "Tevfik Fikret Caddesi",
+  "Kocatepe Caddesi",
+  "İsmet Paşa Caddesi",
+  "30 Ağustos Caddesi",
+  "İsmet Attila Caddesi",
+  "Namık Kemal Caddesi",
+  "Lütfi Karadirek Caddesi",
+  "Sarıkaya Caddesi",
+  "Yunus Emre Sokak",
+  "Dar Sokak",
+  "Fatih Sokak ",
+  "Harman Yolu Sokak ",
+  "Ergenekon Sokak  ",
+  "Ülkü Sokak",
+  "Sağlık Sokak",
+  "Okul Sokak",
+  "Harman Altı Sokak",
+  "Kaldırım Sokak",
+  "Mevlana Sokak",
+  "Gül Sokak",
+  "Sıran Söğüt Sokak",
+  "Güven Yaka Sokak",
+  "Saygılı Sokak",
+  "Menekşe Sokak",
+  "Dağınık Evler Sokak",
+  "Sevgi Sokak",
+  "Afyon Kaya Sokak",
+  "Oğuzhan Sokak",
+  "İbn-i Sina Sokak",
+  "Okul Sokak",
+  "Bahçe Sokak",
+  "Köypınar Sokak",
+  "Kekeçoğlu Sokak",
+  "Barış Sokak",
+  "Bayır Sokak",
+  "Kerimoğlu Sokak",
+  "Nalbant Sokak",
+  "Bandak Sokak"
+];
+
+},{}],931:[function(require,module,exports){
+module["exports"] = [
+  "+90-53#-###-##-##",
+  "+90-54#-###-##-##",
+  "+90-55#-###-##-##",
+  "+90-50#-###-##-##"
+];
+
+},{}],932:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":931,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],933:[function(require,module,exports){
+var tr = {};
+module['exports'] = tr;
+tr.title = "Turkish";
+tr.address = require("./address");
+tr.internet = require("./internet");
+tr.lorem = require("./lorem");
+tr.phone_number = require("./phone_number");
+tr.cell_phone = require("./cell_phone");
+tr.name = require("./name");
+
+},{"./address":926,"./cell_phone":932,"./internet":935,"./lorem":936,"./name":939,"./phone_number":945}],934:[function(require,module,exports){
+module["exports"] = [
+  "com.tr",
+  "com",
+  "biz",
+  "info",
+  "name",
+  "gov.tr"
+];
+
+},{}],935:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":934,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],936:[function(require,module,exports){
+module.exports=require(121)
+},{"./words":937,"/Users/a/dev/faker.js/lib/locales/de/lorem/index.js":121}],937:[function(require,module,exports){
+module.exports=require(85)
+},{"/Users/a/dev/faker.js/lib/locales/cz/lorem/words.js":85}],938:[function(require,module,exports){
+module["exports"] = [
+  "Aba",
+  "Abak",
+  "Abaka",
+  "Abakan",
+  "Abakay",
+  "Abar",
+  "Abay",
+  "Abı",
+  "Abılay",
+  "Abluç",
+  "Abşar",
+  "Açığ",
+  "Açık",
+  "Açuk",
+  "Adalan",
+  "Adaldı",
+  "Adalmış",
+  "Adar",
+  "Adaş",
+  "Adberilgen",
+  "Adıgüzel",
+  "Adık",
+  "Adıkutlu",
+  "Adıkutlutaş",
+  "Adlı",
+  "Adlıbeğ",
+  "Adraman",
+  "Adsız",
+  "Afşar",
+  "Afşın",
+  "Ağabay",
+  "Ağakağan",
+  "Ağalak",
+  "Ağlamış",
+  "Ak",
+  "Akaş",
+  "Akata",
+  "Akbaş",
+  "Akbay",
+  "Akboğa",
+  "Akbörü",
+  "Akbudak",
+  "Akbuğra",
+  "Akbulak",
+  "Akça",
+  "Akçakoca",
+  "Akçora",
+  "Akdemir",
+  "Akdoğan",
+  "Akı",
+  "Akıbudak",
+  "Akım",
+  "Akın",
+  "Akınçı",
+  "Akkun",
+  "Akkunlu",
+  "Akkurt",
+  "Akkuş",
+  "Akpıra",
+  "Aksungur",
+  "Aktan",
+  "Al",
+  "Ala",
+  "Alaban",
+  "Alabörü",
+  "Aladağ",
+  "Aladoğan",
+  "Alakurt",
+  "Alayunt",
+  "Alayuntlu",
+  "Aldemir",
+  "Aldıgerey",
+  "Aldoğan",
+  "Algu",
+  "Alımga",
+  "Alka",
+  "Alkabölük",
+  "Alkaevli",
+  "Alkan",
+  "Alkaşı",
+  "Alkış",
+  "Alp",
+  "Alpagut",
+  "Alpamış",
+  "Alparsbeğ",
+  "Alparslan",
+  "Alpata",
+  "Alpay",
+  "Alpaya",
+  "Alpaykağan",
+  "Alpbamsı",
+  "Alpbilge",
+  "Alpdirek",
+  "Alpdoğan",
+  "Alper",
+  "Alperen",
+  "Alpertunga",
+  "Alpgerey",
+  "Alpış",
+  "Alpilig",
+  "Alpkara",
+  "Alpkutlu",
+  "Alpkülük",
+  "Alpşalçı",
+  "Alptegin",
+  "Alptuğrul",
+  "Alptunga",
+  "Alpturan",
+  "Alptutuk",
+  "Alpuluğ",
+  "Alpurungu",
+  "Alpurungututuk",
+  "Alpyörük",
+  "Altan",
+  "Altankağan",
+  "Altankan",
+  "Altay",
+  "Altın",
+  "Altınkağan",
+  "Altınkan",
+  "Altınoba",
+  "Altıntamgan",
+  "Altıntamgantarkan",
+  "Altıntarkan",
+  "Altıntay",
+  "Altmışkara",
+  "Altuga",
+  "Amaç",
+  "Amrak",
+  "Amul",
+  "Ançuk",
+  "Andarıman",
+  "Anıl",
+  "Ant",
+  "Apa",
+  "Apak",
+  "Apatarkan",
+  "Aprançur",
+  "Araboğa",
+  "Arademir",
+  "Aral",
+  "Arbay",
+  "Arbuz",
+  "Arçuk",
+  "Ardıç",
+  "Argıl",
+  "Argu",
+  "Argun",
+  "Arı",
+  "Arıboğa",
+  "Arık",
+  "Arıkağan",
+  "Arıkdoruk",
+  "Arınç",
+  "Arkın",
+  "Arkış",
+  "Armağan",
+  "Arnaç",
+  "Arpat",
+  "Arsal",
+  "Arsıl",
+  "Arslan",
+  "Arslanargun",
+  "Arslanbörü",
+  "Arslansungur",
+  "Arslantegin",
+  "Arslanyabgu",
+  "Arşun",
+  "Artıınal",
+  "Artuk",
+  "Artukaç",
+  "Artut",
+  "Aruk",
+  "Asartegin",
+  "Asığ",
+  "Asrı",
+  "Asuğ",
+  "Aşan",
+  "Aşanboğa",
+  "Aşantuğrul",
+  "Aşantudun",
+  "Aşıkbulmuş",
+  "Aşkın",
+  "Aştaloğul",
+  "Aşuk",
+  "Ataç",
+  "Atakağan",
+  "Atakan",
+  "Atalan",
+  "Ataldı",
+  "Atalmış",
+  "Ataman",
+  "Atasagun",
+  "Atasu",
+  "Atberilgen",
+  "Atıgay",
+  "Atıkutlu",
+  "Atıkutlutaş",
+  "Atıla",
+  "Atılgan",
+  "Atım",
+  "Atımer",
+  "Atış",
+  "Atlı",
+  "Atlıbeğ",
+  "Atlıkağan",
+  "Atmaca",
+  "Atsız",
+  "Atunçu",
+  "Avar",
+  "Avluç",
+  "Avşar",
+  "Ay",
+  "Ayaçı",
+  "Ayas",
+  "Ayaş",
+  "Ayaz",
+  "Aybalta",
+  "Ayban",
+  "Aybars",
+  "Aybeğ",
+  "Aydarkağan",
+  "Aydemir",
+  "Aydın",
+  "Aydınalp",
+  "Aydoğan",
+  "Aydoğdu",
+  "Aydoğmuş",
+  "Aygırak",
+  "Ayıtmış",
+  "Ayız",
+  "Ayızdağ",
+  "Aykağan",
+  "Aykan",
+  "Aykurt",
+  "Ayluç",
+  "Ayluçtarkan",
+  "Ayma",
+  "Ayruk",
+  "Aysılığ",
+  "Aytak",
+  "Ayyıldız",
+  "Azak",
+  "Azban",
+  "Azgan",
+  "Azganaz",
+  "Azıl",
+  "Babır",
+  "Babur",
+  "Baçara",
+  "Baççayman",
+  "Baçman",
+  "Badabul",
+  "Badruk",
+  "Badur",
+  "Bağa",
+  "Bağaalp",
+  "Bağaışbara",
+  "Bağan",
+  "Bağaşatulu",
+  "Bağatarkan",
+  "Bağatengrikağan",
+  "Bağatur",
+  "Bağaturçigşi",
+  "Bağaturgerey",
+  "Bağaturipi",
+  "Bağatursepi",
+  "Bağış",
+  "Bağtaş",
+  "Bakağul",
+  "Bakır",
+  "Bakırsokum",
+  "Baksı",
+  "Bakşı",
+  "Balaban",
+  "Balaka",
+  "Balakatay",
+  "Balamır",
+  "Balçar",
+  "Baldu",
+  "Balkık",
+  "Balta",
+  "Baltacı",
+  "Baltar",
+  "Baltır",
+  "Baltur",
+  "Bamsı",
+  "Bangu",
+  "Barak",
+  "Baraktöre",
+  "Baran",
+  "Barbeğ",
+  "Barboğa",
+  "Barbol",
+  "Barbulsun",
+  "Barça",
+  "Barçadoğdu",
+  "Barçadoğmuş",
+  "Barçadurdu",
+  "Barçadurmuş",
+  "Barçan",
+  "Barçatoyun",
+  "Bardıbay",
+  "Bargan",
+  "Barımtay",
+  "Barın",
+  "Barkan",
+  "Barkdoğdu",
+  "Barkdoğmuş",
+  "Barkdurdu",
+  "Barkdurmuş",
+  "Barkın",
+  "Barlas",
+  "Barlıbay",
+  "Barmaklak",
+  "Barmaklı",
+  "Barman",
+  "Bars",
+  "Barsbeğ",
+  "Barsboğa",
+  "Barsgan",
+  "Barskan",
+  "Barsurungu",
+  "Bartu",
+  "Basademir",
+  "Basan",
+  "Basanyalavaç",
+  "Basar",
+  "Basat",
+  "Baskın",
+  "Basmıl",
+  "Bastı",
+  "Bastuğrul",
+  "Basu",
+  "Basut",
+  "Başak",
+  "Başbuğ",
+  "Başçı",
+  "Başgan",
+  "Başkırt",
+  "Başkurt",
+  "Baştar",
+  "Batrak",
+  "Batu",
+  "Batuk",
+  "Batur",
+  "Baturalp",
+  "Bay",
+  "Bayançar",
+  "Bayankağan",
+  "Bayat",
+  "Bayazıt",
+  "Baybars",
+  "Baybayık",
+  "Baybiçen",
+  "Bayboğa",
+  "Baybora",
+  "Baybüre",
+  "Baydar",
+  "Baydemir",
+  "Baydur",
+  "Bayık",
+  "Bayınçur",
+  "Bayındır",
+  "Baykal",
+  "Baykara",
+  "Baykoca",
+  "Baykuzu",
+  "Baymünke",
+  "Bayna",
+  "Baynal",
+  "Baypüre",
+  "Bayrı",
+  "Bayraç",
+  "Bayrak",
+  "Bayram",
+  "Bayrın",
+  "Bayruk",
+  "Baysungur",
+  "Baytara",
+  "Baytaş",
+  "Bayunçur",
+  "Bayur",
+  "Bayurku",
+  "Bayutmuş",
+  "Bayuttu",
+  "Bazır",
+  "Beçeapa",
+  "Beçkem",
+  "Beğ",
+  "Beğarslan",
+  "Beğbars",
+  "Beğbilgeçikşin",
+  "Beğboğa",
+  "Beğçur",
+  "Beğdemir",
+  "Beğdilli",
+  "Beğdurmuş",
+  "Beğkulu",
+  "Beğtaş",
+  "Beğtegin",
+  "Beğtüzün",
+  "Begi",
+  "Begil",
+  "Begine",
+  "Begitutuk",
+  "Beglen",
+  "Begni",
+  "Bek",
+  "Bekazıl",
+  "Bekbekeç",
+  "Bekeç",
+  "Bekeçarslan",
+  "Bekeçarslantegin",
+  "Bekeçtegin",
+  "Beker",
+  "Beklemiş",
+  "Bektür",
+  "Belçir",
+  "Belek",
+  "Belgi",
+  "Belgüc",
+  "Beltir",
+  "Bengi",
+  "Bengü",
+  "Benlidemir",
+  "Berdibeğ",
+  "Berendey",
+  "Bergü",
+  "Berginsenge",
+  "Berk",
+  "Berke",
+  "Berkiş",
+  "Berkyaruk",
+  "Bermek",
+  "Besentegin",
+  "Betemir",
+  "Beyizçi",
+  "Beyrek",
+  "Beyrem",
+  "Bıçkı",
+  "Bıçkıcı",
+  "Bıdın",
+  "Bıtaybıkı",
+  "Bıtrı",
+  "Biçek",
+  "Bilge",
+  "Bilgebayunçur",
+  "Bilgebeğ",
+  "Bilgeçikşin",
+  "Bilgeışbara",
+  "Bilgeışbaratamgan",
+  "Bilgekağan",
+  "Bilgekan",
+  "Bilgekutluk",
+  "Bilgekülüçur",
+  "Bilgetaçam",
+  "Bilgetamgacı",
+  "Bilgetardu",
+  "Bilgetegin",
+  "Bilgetonyukuk",
+  "Bilgez",
+  "Bilgiç",
+  "Bilgin",
+  "Bilig",
+  "Biligköngülsengün",
+  "Bilik",
+  "Binbeği",
+  "Bindir",
+  "Boğa",
+  "Boğaç",
+  "Boğaçuk",
+  "Boldaz",
+  "Bolmuş",
+  "Bolsun",
+  "Bolun",
+  "Boncuk",
+  "Bongul",
+  "Bongulboğa",
+  "Bora",
+  "Boran",
+  "Borçul",
+  "Borlukçu",
+  "Bornak",
+  "Boyan",
+  "Boyankulu",
+  "Boylabağa",
+  "Boylabağatarkan",
+  "Boylakutlutarkan",
+  "Bozan",
+  "Bozbörü",
+  "Bozdoğan",
+  "Bozkurt",
+  "Bozkuş",
+  "Bozok",
+  "Bögde",
+  "Böge",
+  "Bögü",
+  "Bökde",
+  "Bökde",
+  "Böke",
+  "Bölen",
+  "Bölükbaşı",
+  "Bönek",
+  "Bönge",
+  "Börü",
+  "Börübars",
+  "Börüsengün",
+  "Börteçine",
+  "Buçan",
+  "Buçur",
+  "Budağ",
+  "Budak",
+  "Budunlu",
+  "Buğday",
+  "Buğra",
+  "Buğrakarakağan",
+  "Bukak",
+  "Bukaktutuk",
+  "Bulaçapan",
+  "Bulak",
+  "Bulan",
+  "Buldur",
+  "Bulgak",
+  "Bulmaz",
+  "Bulmuş",
+  "Buluç",
+  "Buluğ",
+  "Buluk",
+  "Buluş",
+  "Bulut",
+  "Bumın",
+  "Bunsuz",
+  "Burçak",
+  "Burguçan",
+  "Burkay",
+  "Burslan",
+  "Burulday",
+  "Burulgu",
+  "Burunduk",
+  "Buşulgan",
+  "Butak",
+  "Butuk",
+  "Buyan",
+  "Buyançuk",
+  "Buyandemir",
+  "Buyankara",
+  "Buyat",
+  "Buyraç",
+  "Buyruç",
+  "Buyruk",
+  "Buzaç",
+  "Buzaçtutuk",
+  "Büdüs",
+  "Büdüstudun",
+  "Bügü",
+  "Bügdüz",
+  "Bügdüzemen",
+  "Büge",
+  "Büğübilge",
+  "Bükdüz",
+  "Büke",
+  "Bükebuyraç",
+  "Bükebuyruç",
+  "Bükey",
+  "Büktegin",
+  "Büküşboğa",
+  "Bümen",
+  "Bünül",
+  "Büre",
+  "Bürgüt",
+  "Bürkek",
+  "Bürküt",
+  "Bürlük",
+  "Cebe",
+  "Ceyhun",
+  "Cılasun",
+  "Çaba",
+  "Çabdar",
+  "Çablı",
+  "Çabuş",
+  "Çağan",
+  "Çağatay",
+  "Çağlar",
+  "Çağlayan",
+  "Çağrı",
+  "Çağrıbeğ",
+  "Çağrıtegin",
+  "Çağru",
+  "Çalapkulu",
+  "Çankız",
+  "Çemen",
+  "Çemgen",
+  "Çeykün",
+  "Çıngır",
+  "Çiçek",
+  "Çiçem",
+  "Çiğdem",
+  "Çilenti",
+  "Çimen",
+  "Çobulmak",
+  "Çocukbörü",
+  "Çokramayul",
+  "Çolman",
+  "Çolpan",
+  "Çölü",
+  "Damla",
+  "Deniz",
+  "Dilek",
+  "Diri",
+  "Dizik",
+  "Duru",
+  "Dururbunsuz",
+  "Duygu",
+  "Ebin",
+  "Ebkızı",
+  "Ebren",
+  "Edil",
+  "Ediz",
+  "Egemen",
+  "Eğrim",
+  "Ekeç",
+  "Ekim",
+  "Ekin",
+  "Elkin",
+  "Elti",
+  "Engin",
+  "Erdem",
+  "Erdeni",
+  "Erdeniözük",
+  "Erdenikatun",
+  "Erentüz",
+  "Ergene",
+  "Ergenekatun",
+  "Erinç",
+  "Erke",
+  "Ermen",
+  "Erten",
+  "Ertenözük",
+  "Esen",
+  "Esenbike",
+  "Eser",
+  "Esin",
+  "Etil",
+  "Evin",
+  "Eyiz",
+  "Gelin",
+  "Gelincik",
+  "Gökbörü",
+  "Gökçe",
+  "Gökçegöl",
+  "Gökçen",
+  "Gökçiçek",
+  "Gökşin",
+  "Gönül",
+  "Görün",
+  "Gözde",
+  "Gülegen",
+  "Gülemen",
+  "Güler",
+  "Gülümser",
+  "Gümüş",
+  "Gün",
+  "Günay",
+  "Günçiçek",
+  "Gündoğdu",
+  "Gündoğmuş",
+  "Güneş",
+  "Günyaruk",
+  "Gürbüz",
+  "Güvercin",
+  "Güzey",
+  "Işığ",
+  "Işık",
+  "Işıl",
+  "Işılay",
+  "Ila",
+  "Ilaçın",
+  "Ilgın",
+  "Inanç",
+  "Irmak",
+  "Isığ",
+  "Isık",
+  "Iyık",
+  "Iyıktağ",
+  "İdil",
+  "İkeme",
+  "İkiçitoyun",
+  "İlbilge",
+  "İldike",
+  "İlgegü",
+  "İmrem",
+  "İnci",
+  "İnç",
+  "İrinç",
+  "İrinçköl",
+  "İrtiş",
+  "İtil",
+  "Kancı",
+  "Kançı",
+  "Kapgar",
+  "Karaca",
+  "Karaça",
+  "Karak",
+  "Kargılaç",
+  "Karlıgaç",
+  "Katun",
+  "Katunkız",
+  "Kayacık",
+  "Kayaçık",
+  "Kayça",
+  "Kaynak",
+  "Kazanç",
+  "Kazkatun",
+  "Kekik",
+  "Keklik",
+  "Kepez",
+  "Kesme",
+  "Keyken",
+  "Kezlik",
+  "Kımız",
+  "Kımızın",
+  "Kımızalma",
+  "Kımızalmıla",
+  "Kırçiçek",
+  "Kırgavul",
+  "Kırlangıç",
+  "Kıvanç",
+  "Kıvılcım",
+  "Kızdurmuş",
+  "Kızılalma"
+];
+
+},{}],939:[function(require,module,exports){
+arguments[4][173][0].apply(exports,arguments)
+},{"./first_name":938,"./last_name":940,"./name":941,"./prefix":942,"/Users/a/dev/faker.js/lib/locales/de_CH/name/index.js":173}],940:[function(require,module,exports){
+module["exports"] = [
+  "Abacı",
+  "Abadan",
+  "Aclan",
+  "Adal",
+  "Adan",
+  "Adıvar",
+  "Akal",
+  "Akan",
+  "Akar ",
+  "Akay",
+  "Akaydın",
+  "Akbulut",
+  "Akgül",
+  "Akışık",
+  "Akman",
+  "Akyürek",
+  "Akyüz",
+  "Akşit",
+  "Alnıaçık",
+  "Alpuğan",
+  "Alyanak",
+  "Arıcan",
+  "Arslanoğlu",
+  "Atakol",
+  "Atan",
+  "Avan",
+  "Ayaydın",
+  "Aybar",
+  "Aydan",
+  "Aykaç",
+  "Ayverdi",
+  "Ağaoğlu",
+  "Aşıkoğlu",
+  "Babacan",
+  "Babaoğlu",
+  "Bademci",
+  "Bakırcıoğlu",
+  "Balaban",
+  "Balcı",
+  "Barbarosoğlu",
+  "Baturalp",
+  "Baykam",
+  "Başoğlu",
+  "Berberoğlu",
+  "Beşerler",
+  "Beşok",
+  "Biçer",
+  "Bolatlı",
+  "Dalkıran",
+  "Dağdaş",
+  "Dağlaroğlu",
+  "Demirbaş",
+  "Demirel",
+  "Denkel",
+  "Dizdar ",
+  "Doğan ",
+  "Durak ",
+  "Durmaz",
+  "Duygulu",
+  "Düşenkalkar",
+  "Egeli",
+  "Ekici",
+  "Ekşioğlu",
+  "Eliçin",
+  "Elmastaşoğlu",
+  "Elçiboğa",
+  "Erbay",
+  "Erberk",
+  "Erbulak",
+  "Erdoğan",
+  "Erez",
+  "Erginsoy",
+  "Erkekli",
+  "Eronat",
+  "Ertepınar",
+  "Ertürk",
+  "Erçetin",
+  "Evliyaoğlu",
+  "Gönültaş",
+  "Gümüşpala",
+  "Günday",
+  "Gürmen",
+  "Hakyemez",
+  "Hamzaoğlu",
+  "Ilıcalı",
+  "Kahveci",
+  "Kaplangı",
+  "Karabulut",
+  "Karaböcek",
+  "Karadaş",
+  "Karaduman",
+  "Karaer",
+  "Kasapoğlu",
+  "Kavaklıoğlu",
+  "Kaya ",
+  "Keseroğlu",
+  "Keçeci",
+  "Kılıççı",
+  "Kıraç ",
+  "Kocabıyık",
+  "Korol",
+  "Koyuncu",
+  "Koç",
+  "Koçoğlu",
+  "Koçyiğit",
+  "Kuday",
+  "Kulaksızoğlu",
+  "Kumcuoğlu",
+  "Kunt",
+  "Kunter",
+  "Kurutluoğlu",
+  "Kutlay",
+  "Kuzucu",
+  "Körmükçü",
+  "Köybaşı",
+  "Köylüoğlu",
+  "Küçükler",
+  "Limoncuoğlu",
+  "Mayhoş",
+  "Menemencioğlu",
+  "Mertoğlu",
+  "Nalbantoğlu",
+  "Nebioğlu",
+  "Numanoğlu",
+  "Okumuş",
+  "Okur",
+  "Oraloğlu",
+  "Orbay",
+  "Ozansoy",
+  "Paksüt",
+  "Pekkan",
+  "Pektemek",
+  "Polat",
+  "Poyrazoğlu",
+  "Poçan",
+  "Sadıklar",
+  "Samancı",
+  "Sandalcı",
+  "Sarıoğlu",
+  "Saygıner",
+  "Sepetçi",
+  "Sezek",
+  "Sinanoğlu",
+  "Solmaz",
+  "Sözeri",
+  "Süleymanoğlu",
+  "Tahincioğlu",
+  "Tanrıkulu",
+  "Tazegül",
+  "Taşlı",
+  "Taşçı",
+  "Tekand",
+  "Tekelioğlu",
+  "Tokatlıoğlu",
+  "Tokgöz",
+  "Topaloğlu",
+  "Topçuoğlu",
+  "Toraman",
+  "Tunaboylu",
+  "Tunçeri",
+  "Tuğlu",
+  "Tuğluk",
+  "Türkdoğan",
+  "Türkyılmaz",
+  "Tütüncü",
+  "Tüzün",
+  "Uca",
+  "Uluhan",
+  "Velioğlu",
+  "Yalçın",
+  "Yazıcı",
+  "Yetkiner",
+  "Yeşilkaya",
+  "Yıldırım ",
+  "Yıldızoğlu",
+  "Yılmazer",
+  "Yorulmaz",
+  "Çamdalı",
+  "Çapanoğlu",
+  "Çatalbaş",
+  "Çağıran",
+  "Çetin",
+  "Çetiner",
+  "Çevik",
+  "Çörekçi",
+  "Önür",
+  "Örge",
+  "Öymen",
+  "Özberk",
+  "Özbey",
+  "Özbir",
+  "Özdenak",
+  "Özdoğan",
+  "Özgörkey",
+  "Özkara",
+  "Özkök ",
+  "Öztonga",
+  "Öztuna"
+];
+
+},{}],941:[function(require,module,exports){
+module.exports=require(538)
+},{"/Users/a/dev/faker.js/lib/locales/ge/name/name.js":538}],942:[function(require,module,exports){
+module["exports"] = [
+  "Bay",
+  "Bayan",
+  "Dr.",
+  "Prof. Dr."
+];
+
+},{}],943:[function(require,module,exports){
+module["exports"] = [
+  "392",
+  "510",
+  "512",
+  "522",
+  "562",
+  "564",
+  "592",
+  "594",
+  "800",
+  "811",
+  "822",
+  "850",
+  "888",
+  "898",
+  "900",
+  "322",
+  "416",
+  "272",
+  "472",
+  "382",
+  "358",
+  "312",
+  "242",
+  "478",
+  "466",
+  "256",
+  "266",
+  "378",
+  "488",
+  "458",
+  "228",
+  "426",
+  "434",
+  "374",
+  "248",
+  "224",
+  "286",
+  "376",
+  "364",
+  "258",
+  "412",
+  "380",
+  "284",
+  "424",
+  "446",
+  "442",
+  "222",
+  "342",
+  "454",
+  "456",
+  "438",
+  "326",
+  "476",
+  "246",
+  "216",
+  "212",
+  "232",
+  "344",
+  "370",
+  "338",
+  "474",
+  "366",
+  "352",
+  "318",
+  "288",
+  "386",
+  "348",
+  "262",
+  "332",
+  "274",
+  "422",
+  "236",
+  "482",
+  "324",
+  "252",
+  "436",
+  "384",
+  "388",
+  "452",
+  "328",
+  "464",
+  "264",
+  "362",
+  "484",
+  "368",
+  "346",
+  "414",
+  "486",
+  "282",
+  "356",
+  "462",
+  "428",
+  "276",
+  "432",
+  "226",
+  "354",
+  "372"
+];
+
+},{}],944:[function(require,module,exports){
+module["exports"] = [
+  "+90-###-###-##-##",
+  "+90-###-###-#-###"
+];
+
+},{}],945:[function(require,module,exports){
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.area_code = require("./area_code");
+phone_number.formats = require("./formats");
+
+},{"./area_code":943,"./formats":944}],946:[function(require,module,exports){
+module.exports=require(54)
+},{"/Users/a/dev/faker.js/lib/locales/cz/address/building_number.js":54}],947:[function(require,module,exports){
+module["exports"] = [
+  "#{city_name}",
+  "#{city_prefix} #{Name.male_first_name}"
+];
+
+},{}],948:[function(require,module,exports){
+module["exports"] = [
+  "Алчевськ",
+  "Артемівськ",
+  "Бердичів",
+  "Бердянськ",
+  "Біла Церква",
+  "Бровари",
+  "Вінниця",
+  "Горлівка",
+  "Дніпродзержинськ",
+  "Дніпропетровськ",
+  "Донецьк",
+  "Євпаторія",
+  "Єнакієве",
+  "Житомир",
+  "Запоріжжя",
+  "Івано-Франківськ",
+  "Ізмаїл",
+  "Кам’янець-Подільський",
+  "Керч",
+  "Київ",
+  "Кіровоград",
+  "Конотоп",
+  "Краматорськ",
+  "Красний Луч",
+  "Кременчук",
+  "Кривий Ріг",
+  "Лисичанськ",
+  "Луганськ",
+  "Луцьк",
+  "Львів",
+  "Макіївка",
+  "Маріуполь",
+  "Мелітополь",
+  "Миколаїв",
+  "Мукачеве",
+  "Нікополь",
+  "Одеса",
+  "Олександрія",
+  "Павлоград",
+  "Полтава",
+  "Рівне",
+  "Севастополь",
+  "Сєвєродонецьк",
+  "Сімферополь",
+  "Слов’янськ",
+  "Суми",
+  "Тернопіль",
+  "Ужгород",
+  "Умань",
+  "Харків",
+  "Херсон",
+  "Хмельницький",
+  "Черкаси",
+  "Чернівці",
+  "Чернігів",
+  "Шостка",
+  "Ялта"
+];
+
+},{}],949:[function(require,module,exports){
+module["exports"] = [
+  "Південний",
+  "Північний",
+  "Східний",
+  "Західний"
+];
+
+},{}],950:[function(require,module,exports){
+module["exports"] = [
+  "град"
+];
+
+},{}],951:[function(require,module,exports){
+module["exports"] = [
+  "Австралія",
+  "Австрія",
+  "Азербайджан",
+  "Албанія",
+  "Алжир",
+  "Ангола",
+  "Андорра",
+  "Антигуа і Барбуда",
+  "Аргентина",
+  "Афганістан",
+  "Багамські Острови",
+  "Бангладеш",
+  "Барбадос",
+  "Бахрейн",
+  "Беліз",
+  "Бельгія",
+  "Бенін",
+  "Білорусь",
+  "Болгарія",
+  "Болівія",
+  "Боснія і Герцеговина",
+  "Ботсвана",
+  "Бразилія",
+  "Бруней",
+  "Буркіна-Фасо",
+  "Бурунді",
+  "Бутан",
+  "В’єтнам",
+  "Вануату",
+  "Ватикан",
+  "Велика Британія",
+  "Венесуела",
+  "Вірменія",
+  "Габон",
+  "Гаїті",
+  "Гайана",
+  "Гамбія",
+  "Гана",
+  "Гватемала",
+  "Гвінея",
+  "Гвінея-Бісау",
+  "Гондурас",
+  "Гренада",
+  "Греція",
+  "Грузія",
+  "Данія",
+  "Демократична Республіка Конго",
+  "Джибуті",
+  "Домініка",
+  "Домініканська Республіка",
+  "Еквадор",
+  "Екваторіальна Гвінея",
+  "Еритрея",
+  "Естонія",
+  "Ефіопія",
+  "Єгипет",
+  "Ємен",
+  "Замбія",
+  "Зімбабве",
+  "Ізраїль",
+  "Індія",
+  "Індонезія",
+  "Ірак",
+  "Іран",
+  "Ірландія",
+  "Ісландія",
+  "Іспанія",
+  "Італія",
+  "Йорданія",
+  "Кабо-Верде",
+  "Казахстан",
+  "Камбоджа",
+  "Камерун",
+  "Канада",
+  "Катар",
+  "Кенія",
+  "Киргизстан",
+  "Китай",
+  "Кіпр",
+  "Кірибаті",
+  "Колумбія",
+  "Коморські Острови",
+  "Конго",
+  "Коста-Рика",
+  "Кот-д’Івуар",
+  "Куба",
+  "Кувейт",
+  "Лаос",
+  "Латвія",
+  "Лесото",
+  "Литва",
+  "Ліберія",
+  "Ліван",
+  "Лівія",
+  "Ліхтенштейн",
+  "Люксембург",
+  "Маврикій",
+  "Мавританія",
+  "Мадаґаскар",
+  "Македонія",
+  "Малаві",
+  "Малайзія",
+  "Малі",
+  "Мальдіви",
+  "Мальта",
+  "Марокко",
+  "Маршаллові Острови",
+  "Мексика",
+  "Мозамбік",
+  "Молдова",
+  "Монако",
+  "Монголія",
+  "Намібія",
+  "Науру",
+  "Непал",
+  "Нігер",
+  "Нігерія",
+  "Нідерланди",
+  "Нікарагуа",
+  "Німеччина",
+  "Нова Зеландія",
+  "Норвегія",
+  "Об’єднані Арабські Емірати",
+  "Оман",
+  "Пакистан",
+  "Палау",
+  "Панама",
+  "Папуа-Нова Гвінея",
+  "Парагвай",
+  "Перу",
+  "Південна Корея",
+  "Південний Судан",
+  "Південно-Африканська Республіка",
+  "Північна Корея",
+  "Польща",
+  "Португалія",
+  "Російська Федерація",
+  "Руанда",
+  "Румунія",
+  "Сальвадор",
+  "Самоа",
+  "Сан-Марино",
+  "Сан-Томе і Принсіпі",
+  "Саудівська Аравія",
+  "Свазіленд",
+  "Сейшельські Острови",
+  "Сенеґал",
+  "Сент-Вінсент і Гренадини",
+  "Сент-Кітс і Невіс",
+  "Сент-Люсія",
+  "Сербія",
+  "Сирія",
+  "Сінгапур",
+  "Словаччина",
+  "Словенія",
+  "Соломонові Острови",
+  "Сомалі",
+  "Судан",
+  "Суринам",
+  "Східний Тимор",
+  "США",
+  "Сьєрра-Леоне",
+  "Таджикистан",
+  "Таїланд",
+  "Танзанія",
+  "Того",
+  "Тонга",
+  "Тринідад і Тобаго",
+  "Тувалу",
+  "Туніс",
+  "Туреччина",
+  "Туркменістан",
+  "Уганда",
+  "Угорщина",
+  "Узбекистан",
+  "Україна",
+  "Уругвай",
+  "Федеративні Штати Мікронезії",
+  "Фіджі",
+  "Філіппіни",
+  "Фінляндія",
+  "Франція",
+  "Хорватія",
+  "Центральноафриканська Республіка",
+  "Чад",
+  "Чехія",
+  "Чилі",
+  "Чорногорія",
+  "Швейцарія",
+  "Швеція",
+  "Шрі-Ланка",
+  "Ямайка",
+  "Японія"
+];
+
+},{}],952:[function(require,module,exports){
+module["exports"] = [
+  "Україна"
+];
+
+},{}],953:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.street_prefix = require("./street_prefix");
+address.street_suffix = require("./street_suffix");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.street_title = require("./street_title");
+address.city_name = require("./city_name");
+address.city = require("./city");
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":946,"./city":947,"./city_name":948,"./city_prefix":949,"./city_suffix":950,"./country":951,"./default_country":952,"./postcode":954,"./secondary_address":955,"./state":956,"./street_address":957,"./street_name":958,"./street_prefix":959,"./street_suffix":960,"./street_title":961}],954:[function(require,module,exports){
+module.exports=require(379)
+},{"/Users/a/dev/faker.js/lib/locales/es/address/postcode.js":379}],955:[function(require,module,exports){
+module.exports=require(803)
+},{"/Users/a/dev/faker.js/lib/locales/ru/address/secondary_address.js":803}],956:[function(require,module,exports){
+module["exports"] = [
+  "АР Крим",
+  "Вінницька область",
+  "Волинська область",
+  "Дніпропетровська область",
+  "Донецька область",
+  "Житомирська область",
+  "Закарпатська область",
+  "Запорізька область",
+  "Івано-Франківська область",
+  "Київська область",
+  "Кіровоградська область",
+  "Луганська область",
+  "Львівська область",
+  "Миколаївська область",
+  "Одеська область",
+  "Полтавська область",
+  "Рівненська область",
+  "Сумська область",
+  "Тернопільська область",
+  "Харківська область",
+  "Херсонська область",
+  "Хмельницька область",
+  "Черкаська область",
+  "Чернівецька область",
+  "Чернігівська область",
+  "Київ",
+  "Севастополь"
+];
+
+},{}],957:[function(require,module,exports){
+module.exports=require(25)
+},{"/Users/a/dev/faker.js/lib/locales/az/address/street_address.js":25}],958:[function(require,module,exports){
+module["exports"] = [
+  "#{street_prefix} #{Address.street_title}",
+  "#{Address.street_title} #{street_suffix}"
+];
+
+},{}],959:[function(require,module,exports){
+module["exports"] = [
+  "вул.",
+  "вулиця",
+  "пр.",
+  "проспект",
+  "пл.",
+  "площа",
+  "пров.",
+  "провулок"
+];
+
+},{}],960:[function(require,module,exports){
+module["exports"] = [
+  "майдан"
+];
+
+},{}],961:[function(require,module,exports){
+module["exports"] = [
+  "Зелена",
+  "Молодіжна",
+  "Городоцька",
+  "Стрийська",
+  "Вузька",
+  "Нижанківського",
+  "Староміська",
+  "Ліста",
+  "Вічева",
+  "Брюховичів",
+  "Винників",
+  "Рудного",
+  "Коліївщини"
+];
+
+},{}],962:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./name":963,"./prefix":964,"./suffix":965,"/Users/a/dev/faker.js/lib/locales/az/company/index.js":33}],963:[function(require,module,exports){
+module.exports=require(34)
+},{"/Users/a/dev/faker.js/lib/locales/az/company/name.js":34}],964:[function(require,module,exports){
+module["exports"] = [
+  "ТОВ",
+  "ПАТ",
+  "ПрАТ",
+  "ТДВ",
+  "КТ",
+  "ПТ",
+  "ДП",
+  "ФОП"
+];
+
+},{}],965:[function(require,module,exports){
+module["exports"] = [
+  "Постач",
+  "Торг",
+  "Пром",
+  "Трейд",
+  "Збут"
+];
+
+},{}],966:[function(require,module,exports){
+var uk = {};
+module['exports'] = uk;
+uk.title = "Ukrainian";
+uk.address = require("./address");
+uk.company = require("./company");
+uk.internet = require("./internet");
+uk.name = require("./name");
+uk.phone_number = require("./phone_number");
+
+},{"./address":953,"./company":962,"./internet":969,"./name":973,"./phone_number":982}],967:[function(require,module,exports){
+module["exports"] = [
+  "cherkassy.ua",
+  "cherkasy.ua",
+  "ck.ua",
+  "cn.ua",
+  "com.ua",
+  "crimea.ua",
+  "cv.ua",
+  "dn.ua",
+  "dnepropetrovsk.ua",
+  "dnipropetrovsk.ua",
+  "donetsk.ua",
+  "dp.ua",
+  "if.ua",
+  "in.ua",
+  "ivano-frankivsk.ua",
+  "kh.ua",
+  "kharkiv.ua",
+  "kharkov.ua",
+  "kherson.ua",
+  "khmelnitskiy.ua",
+  "kiev.ua",
+  "kirovograd.ua",
+  "km.ua",
+  "kr.ua",
+  "ks.ua",
+  "lg.ua",
+  "lt.ua",
+  "lugansk.ua",
+  "lutsk.ua",
+  "lutsk.net",
+  "lviv.ua",
+  "mk.ua",
+  "net.ua",
+  "nikolaev.ua",
+  "od.ua",
+  "odessa.ua",
+  "org.ua",
+  "pl.ua",
+  "pl.ua",
+  "poltava.ua",
+  "rovno.ua",
+  "rv.ua",
+  "sebastopol.ua",
+  "sm.ua",
+  "sumy.ua",
+  "te.ua",
+  "ternopil.ua",
+  "ua",
+  "uz.ua",
+  "uzhgorod.ua",
+  "vinnica.ua",
+  "vn.ua",
+  "volyn.net",
+  "volyn.ua",
+  "yalta.ua",
+  "zaporizhzhe.ua",
+  "zhitomir.ua",
+  "zp.ua",
+  "zt.ua",
+  "укр"
+];
+
+},{}],968:[function(require,module,exports){
+module["exports"] = [
+  "ukr.net",
+  "ex.ua",
+  "e-mail.ua",
+  "i.ua",
+  "meta.ua",
+  "yandex.ua",
+  "gmail.com"
+];
+
+},{}],969:[function(require,module,exports){
+arguments[4][43][0].apply(exports,arguments)
+},{"./domain_suffix":967,"./free_email":968,"/Users/a/dev/faker.js/lib/locales/az/internet/index.js":43}],970:[function(require,module,exports){
+module["exports"] = [
+  "Аврелія",
+  "Аврора",
+  "Агапія",
+  "Агата",
+  "Агафія",
+  "Агнеса",
+  "Агнія",
+  "Агрипина",
+  "Ада",
+  "Аделаїда",
+  "Аделіна",
+  "Адріана",
+  "Азалія",
+  "Алевтина",
+  "Аліна",
+  "Алла",
+  "Альбіна",
+  "Альвіна",
+  "Анастасія",
+  "Анастасія",
+  "Анатолія",
+  "Ангеліна",
+  "Анжела",
+  "Анна",
+  "Антонида",
+  "Антоніна",
+  "Антонія",
+  "Анфіса",
+  "Аполлінарія",
+  "Аполлонія",
+  "Аркадія",
+  "Артемія",
+  "Афанасія",
+  "Білослава",
+  "Біляна",
+  "Благовіста",
+  "Богдана",
+  "Богуслава",
+  "Божена",
+  "Болеслава",
+  "Борислава",
+  "Броніслава",
+  "В’ячеслава",
+  "Валентина",
+  "Валерія",
+  "Варвара",
+  "Василина",
+  "Вікторія",
+  "Вілена",
+  "Віленіна",
+  "Віліна",
+  "Віола",
+  "Віолетта",
+  "Віра",
+  "Віргінія",
+  "Віта",
+  "Віталіна",
+  "Влада",
+  "Владислава",
+  "Власта",
+  "Всеслава",
+  "Галина",
+  "Ганна",
+  "Гелена",
+  "Далеслава",
+  "Дана",
+  "Дарина",
+  "Дарислава",
+  "Діана",
+  "Діяна",
+  "Добринка",
+  "Добромила",
+  "Добромира",
+  "Добромисла",
+  "Доброслава",
+  "Долеслава",
+  "Доляна",
+  "Жанна",
+  "Жозефіна",
+  "Забава",
+  "Звенислава",
+  "Зінаїда",
+  "Злата",
+  "Зореслава",
+  "Зорина",
+  "Зоряна",
+  "Зоя",
+  "Іванна",
+  "Ілона",
+  "Інна",
+  "Іннеса",
+  "Ірина",
+  "Ірма",
+  "Калина",
+  "Каріна",
+  "Катерина",
+  "Квітка",
+  "Квітослава",
+  "Клавдія",
+  "Крентта",
+  "Ксенія",
+  "Купава",
+  "Лада",
+  "Лариса",
+  "Леся",
+  "Ликера",
+  "Лідія",
+  "Лілія",
+  "Любава",
+  "Любислава",
+  "Любов",
+  "Любомила",
+  "Любомира",
+  "Люборада",
+  "Любослава",
+  "Людмила",
+  "Людомила",
+  "Майя",
+  "Мальва",
+  "Мар’яна",
+  "Марина",
+  "Марічка",
+  "Марія",
+  "Марта",
+  "Меланія",
+  "Мечислава",
+  "Милодара",
+  "Милослава",
+  "Мирослава",
+  "Мілана",
+  "Мокрина",
+  "Мотря",
+  "Мстислава",
+  "Надія",
+  "Наталія",
+  "Неля",
+  "Немира",
+  "Ніна",
+  "Огняна",
+  "Оксана",
+  "Олександра",
+  "Олена",
+  "Олеся",
+  "Ольга",
+  "Ореста",
+  "Орина",
+  "Орислава",
+  "Орися",
+  "Оріяна",
+  "Павліна",
+  "Палажка",
+  "Пелагея",
+  "Пелагія",
+  "Поліна",
+  "Поляна",
+  "Потішана",
+  "Радміла",
+  "Радослава",
+  "Раїна",
+  "Раїса",
+  "Роксолана",
+  "Ромена",
+  "Ростислава",
+  "Руслана",
+  "Світлана",
+  "Святослава",
+  "Слава",
+  "Сміяна",
+  "Сніжана",
+  "Соломія",
+  "Соня",
+  "Софія",
+  "Станислава",
+  "Сюзана",
+  "Таїсія",
+  "Тамара",
+  "Тетяна",
+  "Устина",
+  "Фаїна",
+  "Февронія",
+  "Федора",
+  "Феодосія",
+  "Харитина",
+  "Христина",
+  "Христя",
+  "Юліанна",
+  "Юлія",
+  "Юстина",
+  "Юхима",
+  "Юхимія",
+  "Яна",
+  "Ярина",
+  "Ярослава"
+];
+
+},{}],971:[function(require,module,exports){
+module["exports"] = [
+  "Андрухович",
+  "Бабух",
+  "Балабан",
+  "Балабуха",
+  "Балакун",
+  "Балицька",
+  "Бамбула",
+  "Бандера",
+  "Барановська",
+  "Бачей",
+  "Башук",
+  "Бердник",
+  "Білич",
+  "Бондаренко",
+  "Борецька",
+  "Боровська",
+  "Борочко",
+  "Боярчук",
+  "Брицька",
+  "Бурмило",
+  "Бутько",
+  "Василишина",
+  "Васильківська",
+  "Вергун",
+  "Вередун",
+  "Верещук",
+  "Витребенько",
+  "Вітряк",
+  "Волощук",
+  "Гайдук",
+  "Гайова",
+  "Гайчук",
+  "Галаєнко",
+  "Галатей",
+  "Галаціон",
+  "Гаман",
+  "Гамула",
+  "Ганич",
+  "Гарай",
+  "Гарун",
+  "Гладківська",
+  "Гладух",
+  "Глинська",
+  "Гнатишина",
+  "Гойко",
+  "Головець",
+  "Горбач",
+  "Гордійчук",
+  "Горова",
+  "Городоцька",
+  "Гречко",
+  "Григоришина",
+  "Гриневецька",
+  "Гриневська",
+  "Гришко",
+  "Громико",
+  "Данилишина",
+  "Данилко",
+  "Демків",
+  "Демчишина",
+  "Дзюб’як",
+  "Дзюба",
+  "Дідух",
+  "Дмитришина",
+  "Дмитрук",
+  "Довгалевська",
+  "Дурдинець",
+  "Євенко",
+  "Євпак",
+  "Ємець",
+  "Єрмак",
+  "Забіла",
+  "Зварич",
+  "Зінкевич",
+  "Зленко",
+  "Іванишина",
+  "Калач",
+  "Кандиба",
+  "Карпух",
+  "Кивач",
+  "Коваленко",
+  "Ковальська",
+  "Коломієць",
+  "Коман",
+  "Компанієць",
+  "Кононець",
+  "Кордун",
+  "Корецька",
+  "Корнїйчук",
+  "Коров’як",
+  "Коцюбинська",
+  "Кулинич",
+  "Кульчицька",
+  "Лагойда",
+  "Лазірко",
+  "Ланова",
+  "Латан",
+  "Латанська",
+  "Лахман",
+  "Левадовська",
+  "Ликович",
+  "Линдик",
+  "Ліхно",
+  "Лобачевська",
+  "Ломова",
+  "Лугова",
+  "Луцька",
+  "Луцьків",
+  "Лученко",
+  "Лучко",
+  "Люта",
+  "Лящук",
+  "Магера",
+  "Мазайло",
+  "Мазило",
+  "Мазун",
+  "Майборода",
+  "Майстренко",
+  "Маковецька",
+  "Малкович",
+  "Мамій",
+  "Маринич",
+  "Марієвська",
+  "Марків",
+  "Махно",
+  "Миклашевська",
+  "Миклухо",
+  "Милославська",
+  "Михайлюк",
+  "Міняйло",
+  "Могилевська",
+  "Москаль",
+  "Москалюк",
+  "Мотрієнко",
+  "Негода",
+  "Ногачевська",
+  "Опенько",
+  "Осадко",
+  "Павленко",
+  "Павлишина",
+  "Павлів",
+  "Пагутяк",
+  "Паламарчук",
+  "Палій",
+  "Паращук",
+  "Пасічник",
+  "Пендик",
+  "Петик",
+  "Петлюра",
+  "Петренко",
+  "Петрина",
+  "Петришина",
+  "Петрів",
+  "Плаксій",
+  "Погиба",
+  "Поліщук",
+  "Пономарів",
+  "Поривай",
+  "Поривайло",
+  "Потебенько",
+  "Потоцька",
+  "Пригода",
+  "Приймак",
+  "Притула",
+  "Прядун",
+  "Розпутня",
+  "Романишина",
+  "Ромей",
+  "Роменець",
+  "Ромочко",
+  "Савицька",
+  "Саєнко",
+  "Свидригайло",
+  "Семеночко",
+  "Семещук",
+  "Сердюк",
+  "Силецька",
+  "Сідлецька",
+  "Сідляк",
+  "Сірко",
+  "Скиба",
+  "Скоропадська",
+  "Слободян",
+  "Сосюра",
+  "Сплюха",
+  "Спотикач",
+  "Степанець",
+  "Стигайло",
+  "Сторожук",
+  "Сторчак",
+  "Стоян",
+  "Сучак",
+  "Сушко",
+  "Тарасюк",
+  "Тиндарей",
+  "Ткаченко",
+  "Третяк",
+  "Троян",
+  "Трублаєвська",
+  "Трясило",
+  "Трясун",
+  "Уманець",
+  "Унич",
+  "Усич",
+  "Федоришина",
+  "Цушко",
+  "Червоній",
+  "Шамрило",
+  "Шевченко",
+  "Шестак",
+  "Шиндарей",
+  "Шиян",
+  "Шкараба",
+  "Шудрик",
+  "Шумило",
+  "Шупик",
+  "Шухевич",
+  "Щербак",
+  "Юрчишина",
+  "Юхно",
+  "Ющик",
+  "Ющук",
+  "Яворівська",
+  "Ялова",
+  "Ялюк",
+  "Янюк",
+  "Ярмак",
+  "Яцишина",
+  "Яцьків",
+  "Ящук"
+];
+
+},{}],972:[function(require,module,exports){
+module["exports"] = [
+  "Адамівна",
+  "Азарівна",
+  "Алевтинівна",
+  "Альбертівна",
+  "Анастасівна",
+  "Анатоліївна",
+  "Андріївна",
+  "Антонівна",
+  "Аркадіївна",
+  "Арсенівна",
+  "Арсеніївна",
+  "Артемівна",
+  "Архипівна",
+  "Аскольдівна",
+  "Афанасіївна",
+  "Білославівна",
+  "Богданівна",
+  "Божемирівна",
+  "Боженівна",
+  "Болеславівна",
+  "Боримирівна",
+  "Борисівна",
+  "Бориславівна",
+  "Братиславівна",
+  "В’ячеславівна",
+  "Вадимівна",
+  "Валентинівна",
+  "Валеріївна",
+  "Василівна",
+  "Вікторівна",
+  "Віталіївна",
+  "Владиславівна",
+  "Володимирівна",
+  "Всеволодівна",
+  "Всеславівна",
+  "Гаврилівна",
+  "Гарасимівна",
+  "Георгіївна",
+  "Гнатівна",
+  "Гордіївна",
+  "Григоріївна",
+  "Данилівна",
+  "Даромирівна",
+  "Денисівна",
+  "Дмитрівна",
+  "Добромирівна",
+  "Доброславівна",
+  "Євгенівна",
+  "Захарівна",
+  "Захаріївна",
+  "Збориславівна",
+  "Звенимирівна",
+  "Звениславівна",
+  "Зеновіївна",
+  "Зиновіївна",
+  "Златомирівна",
+  "Зореславівна",
+  "Іванівна",
+  "Ігорівна",
+  "Ізяславівна",
+  "Корнеліївна",
+  "Корнилівна",
+  "Корніївна",
+  "Костянтинівна",
+  "Лаврентіївна",
+  "Любомирівна",
+  "Макарівна",
+  "Максимівна",
+  "Марківна",
+  "Маркіянівна",
+  "Матвіївна",
+  "Мечиславівна",
+  "Микитівна",
+  "Миколаївна",
+  "Миронівна",
+  "Мирославівна",
+  "Михайлівна",
+  "Мстиславівна",
+  "Назарівна",
+  "Назаріївна",
+  "Натанівна",
+  "Немирівна",
+  "Несторівна",
+  "Олегівна",
+  "Олександрівна",
+  "Олексіївна",
+  "Олельківна",
+  "Омелянівна",
+  "Орестівна",
+  "Орхипівна",
+  "Остапівна",
+  "Охрімівна",
+  "Павлівна",
+  "Панасівна",
+  "Пантелеймонівна",
+  "Петрівна",
+  "Пилипівна",
+  "Радимирівна",
+  "Радимівна",
+  "Родіонівна",
+  "Романівна",
+  "Ростиславівна",
+  "Русланівна",
+  "Святославівна",
+  "Сергіївна",
+  "Славутівна",
+  "Станіславівна",
+  "Степанівна",
+  "Стефаніївна",
+  "Тарасівна",
+  "Тимофіївна",
+  "Тихонівна",
+  "Устимівна",
+  "Юріївна",
+  "Юхимівна",
+  "Ярославівна"
+];
+
+},{}],973:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.male_first_name = require("./male_first_name");
+name.male_middle_name = require("./male_middle_name");
+name.male_last_name = require("./male_last_name");
+name.female_first_name = require("./female_first_name");
+name.female_middle_name = require("./female_middle_name");
+name.female_last_name = require("./female_last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.title = require("./title");
+name.name = require("./name");
+
+},{"./female_first_name":970,"./female_last_name":971,"./female_middle_name":972,"./male_first_name":974,"./male_last_name":975,"./male_middle_name":976,"./name":977,"./prefix":978,"./suffix":979,"./title":980}],974:[function(require,module,exports){
+module["exports"] = [
+  "Августин",
+  "Аврелій",
+  "Адам",
+  "Адріян",
+  "Азарій",
+  "Алевтин",
+  "Альберт",
+  "Анастас",
+  "Анастасій",
+  "Анатолій",
+  "Андрій",
+  "Антін",
+  "Антон",
+  "Антоній",
+  "Аркадій",
+  "Арсен",
+  "Арсеній",
+  "Артем",
+  "Архип",
+  "Аскольд",
+  "Афанасій",
+  "Біломир",
+  "Білослав",
+  "Богдан",
+  "Божемир",
+  "Божен",
+  "Болеслав",
+  "Боримир",
+  "Боримисл",
+  "Борис",
+  "Борислав",
+  "Братимир",
+  "Братислав",
+  "Братомил",
+  "Братослав",
+  "Брячислав",
+  "Будимир",
+  "Буйтур",
+  "Буревіст",
+  "В’ячеслав",
+  "Вадим",
+  "Валентин",
+  "Валерій",
+  "Василь",
+  "Велемир",
+  "Віктор",
+  "Віталій",
+  "Влад",
+  "Владислав",
+  "Володимир",
+  "Володислав",
+  "Всевлад",
+  "Всеволод",
+  "Всеслав",
+  "Гаврило",
+  "Гарнослав",
+  "Геннадій",
+  "Георгій",
+  "Герасим",
+  "Гліб",
+  "Гнат",
+  "Гордій",
+  "Горимир",
+  "Горислав",
+  "Градимир",
+  "Григорій",
+  "Далемир",
+  "Данило",
+  "Дарій",
+  "Даромир",
+  "Денис",
+  "Дмитро",
+  "Добромир",
+  "Добромисл",
+  "Доброслав",
+  "Євген",
+  "Єремій",
+  "Захар",
+  "Захарій",
+  "Зборислав",
+  "Звенигор",
+  "Звенимир",
+  "Звенислав",
+  "Земислав",
+  "Зеновій",
+  "Зиновій",
+  "Злат",
+  "Златомир",
+  "Зоремир",
+  "Зореслав",
+  "Зорян",
+  "Іван",
+  "Ігор",
+  "Ізяслав",
+  "Ілля",
+  "Кий",
+  "Корнелій",
+  "Корнилій",
+  "Корнило",
+  "Корній",
+  "Костянтин",
+  "Кузьма",
+  "Лаврентій",
+  "Лаврін",
+  "Лад",
+  "Ладислав",
+  "Ладо",
+  "Ладомир",
+  "Левко",
+  "Листвич",
+  "Лук’ян",
+  "Любодар",
+  "Любозар",
+  "Любомир",
+  "Макар",
+  "Максим",
+  "Мар’ян",
+  "Маркіян",
+  "Марко",
+  "Матвій",
+  "Мечислав",
+  "Микита",
+  "Микола",
+  "Мирон",
+  "Мирослав",
+  "Михайло",
+  "Мстислав",
+  "Мусій",
+  "Назар",
+  "Назарій",
+  "Натан",
+  "Немир",
+  "Нестор",
+  "Олег",
+  "Олександр",
+  "Олексій",
+  "Олелько",
+  "Олесь",
+  "Омелян",
+  "Орест",
+  "Орхип",
+  "Остап",
+  "Охрім",
+  "Павло",
+  "Панас",
+  "Пантелеймон",
+  "Петро",
+  "Пилип",
+  "Подолян",
+  "Потап",
+  "Радим",
+  "Радимир",
+  "Ратибор",
+  "Ратимир",
+  "Родіон",
+  "Родослав",
+  "Роксолан",
+  "Роман",
+  "Ростислав",
+  "Руслан",
+  "Святополк",
+  "Святослав",
+  "Семибор",
+  "Сергій",
+  "Синьоок",
+  "Славолюб",
+  "Славомир",
+  "Славута",
+  "Сніжан",
+  "Сологуб",
+  "Станіслав",
+  "Степан",
+  "Стефаній",
+  "Стожар",
+  "Тарас",
+  "Тиміш",
+  "Тимофій",
+  "Тихон",
+  "Тур",
+  "Устим",
+  "Хвалимир",
+  "Хорив",
+  "Чорнота",
+  "Щастислав",
+  "Щек",
+  "Юліан",
+  "Юрій",
+  "Юхим",
+  "Ян",
+  "Ярема",
+  "Яровид",
+  "Яромил",
+  "Яромир",
+  "Ярополк",
+  "Ярослав"
+];
+
+},{}],975:[function(require,module,exports){
+module["exports"] = [
+  "Андрухович",
+  "Бабух",
+  "Балабан",
+  "Балабух",
+  "Балакун",
+  "Балицький",
+  "Бамбула",
+  "Бандера",
+  "Барановський",
+  "Бачей",
+  "Башук",
+  "Бердник",
+  "Білич",
+  "Бондаренко",
+  "Борецький",
+  "Боровський",
+  "Борочко",
+  "Боярчук",
+  "Брицький",
+  "Бурмило",
+  "Бутько",
+  "Василин",
+  "Василишин",
+  "Васильківський",
+  "Вергун",
+  "Вередун",
+  "Верещук",
+  "Витребенько",
+  "Вітряк",
+  "Волощук",
+  "Гайдук",
+  "Гайовий",
+  "Гайчук",
+  "Галаєнко",
+  "Галатей",
+  "Галаціон",
+  "Гаман",
+  "Гамула",
+  "Ганич",
+  "Гарай",
+  "Гарун",
+  "Гладківський",
+  "Гладух",
+  "Глинський",
+  "Гнатишин",
+  "Гойко",
+  "Головець",
+  "Горбач",
+  "Гордійчук",
+  "Горовий",
+  "Городоцький",
+  "Гречко",
+  "Григоришин",
+  "Гриневецький",
+  "Гриневський",
+  "Гришко",
+  "Громико",
+  "Данилишин",
+  "Данилко",
+  "Демків",
+  "Демчишин",
+  "Дзюб’як",
+  "Дзюба",
+  "Дідух",
+  "Дмитришин",
+  "Дмитрук",
+  "Довгалевський",
+  "Дурдинець",
+  "Євенко",
+  "Євпак",
+  "Ємець",
+  "Єрмак",
+  "Забіла",
+  "Зварич",
+  "Зінкевич",
+  "Зленко",
+  "Іванишин",
+  "Іванів",
+  "Іванців",
+  "Калач",
+  "Кандиба",
+  "Карпух",
+  "Каськів",
+  "Кивач",
+  "Коваленко",
+  "Ковальський",
+  "Коломієць",
+  "Коман",
+  "Компанієць",
+  "Кононець",
+  "Кордун",
+  "Корецький",
+  "Корнїйчук",
+  "Коров’як",
+  "Коцюбинський",
+  "Кулинич",
+  "Кульчицький",
+  "Лагойда",
+  "Лазірко",
+  "Лановий",
+  "Латаний",
+  "Латанський",
+  "Лахман",
+  "Левадовський",
+  "Ликович",
+  "Линдик",
+  "Ліхно",
+  "Лобачевський",
+  "Ломовий",
+  "Луговий",
+  "Луцький",
+  "Луцьків",
+  "Лученко",
+  "Лучко",
+  "Лютий",
+  "Лящук",
+  "Магера",
+  "Мазайло",
+  "Мазило",
+  "Мазун",
+  "Майборода",
+  "Майстренко",
+  "Маковецький",
+  "Малкович",
+  "Мамій",
+  "Маринич",
+  "Марієвський",
+  "Марків",
+  "Махно",
+  "Миклашевський",
+  "Миклухо",
+  "Милославський",
+  "Михайлюк",
+  "Міняйло",
+  "Могилевський",
+  "Москаль",
+  "Москалюк",
+  "Мотрієнко",
+  "Негода",
+  "Ногачевський",
+  "Опенько",
+  "Осадко",
+  "Павленко",
+  "Павлишин",
+  "Павлів",
+  "Пагутяк",
+  "Паламарчук",
+  "Палій",
+  "Паращук",
+  "Пасічник",
+  "Пендик",
+  "Петик",
+  "Петлюра",
+  "Петренко",
+  "Петрин",
+  "Петришин",
+  "Петрів",
+  "Плаксій",
+  "Погиба",
+  "Поліщук",
+  "Пономарів",
+  "Поривай",
+  "Поривайло",
+  "Потебенько",
+  "Потоцький",
+  "Пригода",
+  "Приймак",
+  "Притула",
+  "Прядун",
+  "Розпутній",
+  "Романишин",
+  "Романів",
+  "Ромей",
+  "Роменець",
+  "Ромочко",
+  "Савицький",
+  "Саєнко",
+  "Свидригайло",
+  "Семеночко",
+  "Семещук",
+  "Сердюк",
+  "Силецький",
+  "Сідлецький",
+  "Сідляк",
+  "Сірко",
+  "Скиба",
+  "Скоропадський",
+  "Слободян",
+  "Сосюра",
+  "Сплюх",
+  "Спотикач",
+  "Стахів",
+  "Степанець",
+  "Стецьків",
+  "Стигайло",
+  "Сторожук",
+  "Сторчак",
+  "Стоян",
+  "Сучак",
+  "Сушко",
+  "Тарасюк",
+  "Тиндарей",
+  "Ткаченко",
+  "Третяк",
+  "Троян",
+  "Трублаєвський",
+  "Трясило",
+  "Трясун",
+  "Уманець",
+  "Унич",
+  "Усич",
+  "Федоришин",
+  "Хитрово",
+  "Цимбалістий",
+  "Цушко",
+  "Червоній",
+  "Шамрило",
+  "Шевченко",
+  "Шестак",
+  "Шиндарей",
+  "Шиян",
+  "Шкараба",
+  "Шудрик",
+  "Шумило",
+  "Шупик",
+  "Шухевич",
+  "Щербак",
+  "Юрчишин",
+  "Юхно",
+  "Ющик",
+  "Ющук",
+  "Яворівський",
+  "Яловий",
+  "Ялюк",
+  "Янюк",
+  "Ярмак",
+  "Яцишин",
+  "Яцьків",
+  "Ящук"
+];
+
+},{}],976:[function(require,module,exports){
+module["exports"] = [
+  "Адамович",
+  "Азарович",
+  "Алевтинович",
+  "Альбертович",
+  "Анастасович",
+  "Анатолійович",
+  "Андрійович",
+  "Антонович",
+  "Аркадійович",
+  "Арсенійович",
+  "Арсенович",
+  "Артемович",
+  "Архипович",
+  "Аскольдович",
+  "Афанасійович",
+  "Білославович",
+  "Богданович",
+  "Божемирович",
+  "Боженович",
+  "Болеславович",
+  "Боримирович",
+  "Борисович",
+  "Бориславович",
+  "Братиславович",
+  "В’ячеславович",
+  "Вадимович",
+  "Валентинович",
+  "Валерійович",
+  "Васильович",
+  "Вікторович",
+  "Віталійович",
+  "Владиславович",
+  "Володимирович",
+  "Всеволодович",
+  "Всеславович",
+  "Гаврилович",
+  "Герасимович",
+  "Георгійович",
+  "Гнатович",
+  "Гордійович",
+  "Григорійович",
+  "Данилович",
+  "Даромирович",
+  "Денисович",
+  "Дмитрович",
+  "Добромирович",
+  "Доброславович",
+  "Євгенович",
+  "Захарович",
+  "Захарійович",
+  "Збориславович",
+  "Звенимирович",
+  "Звениславович",
+  "Зеновійович",
+  "Зиновійович",
+  "Златомирович",
+  "Зореславович",
+  "Іванович",
+  "Ігорович",
+  "Ізяславович",
+  "Корнелійович",
+  "Корнилович",
+  "Корнійович",
+  "Костянтинович",
+  "Лаврентійович",
+  "Любомирович",
+  "Макарович",
+  "Максимович",
+  "Маркович",
+  "Маркіянович",
+  "Матвійович",
+  "Мечиславович",
+  "Микитович",
+  "Миколайович",
+  "Миронович",
+  "Мирославович",
+  "Михайлович",
+  "Мстиславович",
+  "Назарович",
+  "Назарійович",
+  "Натанович",
+  "Немирович",
+  "Несторович",
+  "Олегович",
+  "Олександрович",
+  "Олексійович",
+  "Олелькович",
+  "Омелянович",
+  "Орестович",
+  "Орхипович",
+  "Остапович",
+  "Охрімович",
+  "Павлович",
+  "Панасович",
+  "Пантелеймонович",
+  "Петрович",
+  "Пилипович",
+  "Радимирович",
+  "Радимович",
+  "Родіонович",
+  "Романович",
+  "Ростиславович",
+  "Русланович",
+  "Святославович",
+  "Сергійович",
+  "Славутович",
+  "Станіславович",
+  "Степанович",
+  "Стефанович",
+  "Тарасович",
+  "Тимофійович",
+  "Тихонович",
+  "Устимович",
+  "Юрійович",
+  "Юхимович",
+  "Ярославович"
+];
+
+},{}],977:[function(require,module,exports){
+module.exports=require(831)
+},{"/Users/a/dev/faker.js/lib/locales/ru/name/name.js":831}],978:[function(require,module,exports){
+module["exports"] = [
+  "Пан",
+  "Пані"
+];
+
+},{}],979:[function(require,module,exports){
+module["exports"] = [
+  "проф.",
+  "доц.",
+  "докт. пед. наук",
+  "докт. політ. наук",
+  "докт. філол. наук",
+  "докт. філос. наук",
+  "докт. і. наук",
+  "докт. юрид. наук",
+  "докт. техн. наук",
+  "докт. психол. наук",
+  "канд. пед. наук",
+  "канд. політ. наук",
+  "канд. філол. наук",
+  "канд. філос. наук",
+  "канд. і. наук",
+  "канд. юрид. наук",
+  "канд. техн. наук",
+  "канд. психол. наук"
+];
+
+},{}],980:[function(require,module,exports){
+module["exports"] = {
+  "descriptor": [
+    "Головний",
+    "Генеральний",
+    "Провідний",
+    "Національний",
+    "Регіональний",
+    "Обласний",
+    "Районний",
+    "Глобальний",
+    "Міжнародний",
+    "Центральний"
+  ],
+  "level": [
+    "маркетинговий",
+    "оптимізаційний",
+    "страховий",
+    "функціональний",
+    "інтеграційний",
+    "логістичний"
+  ],
+  "job": [
+    "інженер",
+    "агент",
+    "адміністратор",
+    "аналітик",
+    "архітектор",
+    "дизайнер",
+    "керівник",
+    "консультант",
+    "координатор",
+    "менеджер",
+    "планувальник",
+    "помічник",
+    "розробник",
+    "спеціаліст",
+    "співробітник",
+    "технік"
+  ]
+};
+
+},{}],981:[function(require,module,exports){
+module["exports"] = [
+  "(044) ###-##-##",
+  "(050) ###-##-##",
+  "(063) ###-##-##",
+  "(066) ###-##-##",
+  "(073) ###-##-##",
+  "(091) ###-##-##",
+  "(092) ###-##-##",
+  "(093) ###-##-##",
+  "(094) ###-##-##",
+  "(095) ###-##-##",
+  "(096) ###-##-##",
+  "(097) ###-##-##",
+  "(098) ###-##-##",
+  "(099) ###-##-##"
+];
+
+},{}],982:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":981,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],983:[function(require,module,exports){
+module["exports"] = [
+  "#{city_root}"
+];
+
+},{}],984:[function(require,module,exports){
+module["exports"] = [
+  "Bắc Giang",
+  "Bắc Kạn",
+  "Bắc Ninh",
+  "Cao Bằng",
+  "Điện Biên",
+  "Hà Giang",
+  "Hà Nam",
+  "Hà Tây",
+  "Hải Dương",
+  "TP Hải Phòng",
+  "Hòa Bình",
+  "Hưng Yên",
+  "Lai Châu",
+  "Lào Cai",
+  "Lạng Sơn",
+  "Nam Định",
+  "Ninh Bình",
+  "Phú Thọ",
+  "Quảng Ninh",
+  "Sơn La",
+  "Thái Bình",
+  "Thái Nguyên",
+  "Tuyên Quang",
+  "Vĩnh Phúc",
+  "Yên Bái",
+  "TP Đà Nẵng",
+  "Bình Định",
+  "Đắk Lắk",
+  "Đắk Nông",
+  "Gia Lai",
+  "Hà Tĩnh",
+  "Khánh Hòa",
+  "Kon Tum",
+  "Nghệ An",
+  "Phú Yên",
+  "Quảng Bình",
+  "Quảng Nam",
+  "Quảng Ngãi",
+  "Quảng Trị",
+  "Thanh Hóa",
+  "Thừa Thiên Huế",
+  "TP TP. Hồ Chí Minh",
+  "An Giang",
+  "Bà Rịa Vũng Tàu",
+  "Bạc Liêu",
+  "Bến Tre",
+  "Bình Dương",
+  "Bình Phước",
+  "Bình Thuận",
+  "Cà Mau",
+  "TP Cần Thơ",
+  "Đồng Nai",
+  "Đồng Tháp",
+  "Hậu Giang",
+  "Kiên Giang",
+  "Lâm Đồng",
+  "Long An",
+  "Ninh Thuận",
+  "Sóc Trăng",
+  "Tây Ninh",
+  "Tiền Giang",
+  "Trà Vinh",
+  "Vĩnh Long"
+];
+
+},{}],985:[function(require,module,exports){
+module["exports"] = [
+  "Avon",
+  "Bedfordshire",
+  "Berkshire",
+  "Borders",
+  "Buckinghamshire",
+  "Cambridgeshire",
+  "Central",
+  "Cheshire",
+  "Cleveland",
+  "Clwyd",
+  "Cornwall",
+  "County Antrim",
+  "County Armagh",
+  "County Down",
+  "County Fermanagh",
+  "County Londonderry",
+  "County Tyrone",
+  "Cumbria",
+  "Derbyshire",
+  "Devon",
+  "Dorset",
+  "Dumfries and Galloway",
+  "Durham",
+  "Dyfed",
+  "East Sussex",
+  "Essex",
+  "Fife",
+  "Gloucestershire",
+  "Grampian",
+  "Greater Manchester",
+  "Gwent",
+  "Gwynedd County",
+  "Hampshire",
+  "Herefordshire",
+  "Hertfordshire",
+  "Highlands and Islands",
+  "Humberside",
+  "Isle of Wight",
+  "Kent",
+  "Lancashire",
+  "Leicestershire",
+  "Lincolnshire",
+  "Lothian",
+  "Merseyside",
+  "Mid Glamorgan",
+  "Norfolk",
+  "North Yorkshire",
+  "Northamptonshire",
+  "Northumberland",
+  "Nottinghamshire",
+  "Oxfordshire",
+  "Powys",
+  "Rutland",
+  "Shropshire",
+  "Somerset",
+  "South Glamorgan",
+  "South Yorkshire",
+  "Staffordshire",
+  "Strathclyde",
+  "Suffolk",
+  "Surrey",
+  "Tayside",
+  "Tyne and Wear",
+  "Việt Nam",
+  "Warwickshire",
+  "West Glamorgan",
+  "West Midlands",
+  "West Sussex",
+  "West Yorkshire",
+  "Wiltshire",
+  "Worcestershire"
+];
+
+},{}],986:[function(require,module,exports){
+module["exports"] = [
+  "Việt Nam"
+];
+
+},{}],987:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_root = require("./city_root");
+address.city = require("./city");
+address.county = require("./county");
+address.default_country = require("./default_country");
+
+},{"./city":983,"./city_root":984,"./county":985,"./default_country":986}],988:[function(require,module,exports){
+module.exports=require(308)
+},{"/Users/a/dev/faker.js/lib/locales/en_GB/cell_phone/formats.js":308}],989:[function(require,module,exports){
+arguments[4][112][0].apply(exports,arguments)
+},{"./formats":988,"/Users/a/dev/faker.js/lib/locales/de/cell_phone/index.js":112}],990:[function(require,module,exports){
+var company = {};
+module['exports'] = company;
+company.prefix = require("./prefix");
+company.name = require("./name");
+
+},{"./name":991,"./prefix":992}],991:[function(require,module,exports){
+module["exports"] = [
+  "#{prefix} #{Name.last_name}"
+];
+
+},{}],992:[function(require,module,exports){
+module["exports"] = [
+  "Công ty",
+  "Cty TNHH",
+  "Cty",
+  "Cửa hàng",
+  "Trung tâm",
+  "Chi nhánh"
+];
+
+},{}],993:[function(require,module,exports){
+var vi = {};
+module['exports'] = vi;
+vi.title = "Vietnamese";
+vi.address = require("./address");
+vi.internet = require("./internet");
+vi.phone_number = require("./phone_number");
+vi.cell_phone = require("./cell_phone");
+vi.name = require("./name");
+vi.company = require("./company");
+vi.lorem = require("./lorem");
+
+},{"./address":987,"./cell_phone":989,"./company":990,"./internet":995,"./lorem":996,"./name":999,"./phone_number":1003}],994:[function(require,module,exports){
+module["exports"] = [
+  "com",
+  "net",
+  "info",
+  "vn",
+  "com.vn"
+];
+
+},{}],995:[function(require,module,exports){
+arguments[4][171][0].apply(exports,arguments)
+},{"./domain_suffix":994,"/Users/a/dev/faker.js/lib/locales/de_CH/internet/index.js":171}],996:[function(require,module,exports){
+arguments[4][121][0].apply(exports,arguments)
+},{"./words":997,"/Users/a/dev/faker.js/lib/locales/de/lorem/index.js":121}],997:[function(require,module,exports){
+module["exports"] = [
+  "đã",
+  "đang",
+  "ừ",
+  "ờ",
+  "á",
+  "không",
+  "biết",
+  "gì",
+  "hết",
+  "đâu",
+  "nha",
+  "thế",
+  "thì",
+  "là",
+  "đánh",
+  "đá",
+  "đập",
+  "phá",
+  "viết",
+  "vẽ",
+  "tô",
+  "thuê",
+  "mướn",
+  "mượn",
+  "mua",
+  "một",
+  "hai",
+  "ba",
+  "bốn",
+  "năm",
+  "sáu",
+  "bảy",
+  "tám",
+  "chín",
+  "mười",
+  "thôi",
+  "việc",
+  "nghỉ",
+  "làm",
+  "nhà",
+  "cửa",
+  "xe",
+  "đạp",
+  "ác",
+  "độc",
+  "khoảng",
+  "khoan",
+  "thuyền",
+  "tàu",
+  "bè",
+  "lầu",
+  "xanh",
+  "đỏ",
+  "tím",
+  "vàng",
+  "kim",
+  "chỉ",
+  "khâu",
+  "may",
+  "vá",
+  "em",
+  "anh",
+  "yêu",
+  "thương",
+  "thích",
+  "con",
+  "cái",
+  "bàn",
+  "ghế",
+  "tủ",
+  "quần",
+  "áo",
+  "nón",
+  "dép",
+  "giày",
+  "lỗi",
+  "được",
+  "ghét",
+  "giết",
+  "chết",
+  "hết",
+  "tôi",
+  "bạn",
+  "tui",
+  "trời",
+  "trăng",
+  "mây",
+  "gió",
+  "máy",
+  "hàng",
+  "hóa",
+  "leo",
+  "núi",
+  "bơi",
+  "biển",
+  "chìm",
+  "xuồng",
+  "nước",
+  "ngọt",
+  "ruộng",
+  "đồng",
+  "quê",
+  "hương"
+];
+
+},{}],998:[function(require,module,exports){
+module["exports"] = [
+  "Phạm",
+  "Nguyễn",
+  "Trần",
+  "Lê",
+  "Lý",
+  "Hoàng",
+  "Phan",
+  "Vũ",
+  "Tăng",
+  "Đặng",
+  "Bùi",
+  "Đỗ",
+  "Hồ",
+  "Ngô",
+  "Dương",
+  "Đào",
+  "Đoàn",
+  "Vương",
+  "Trịnh",
+  "Đinh",
+  "Lâm",
+  "Phùng",
+  "Mai",
+  "Tô",
+  "Trương",
+  "Hà"
+];
+
+},{}],999:[function(require,module,exports){
+var name = {};
+module['exports'] = name;
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.name = require("./name");
+
+},{"./first_name":998,"./last_name":1000,"./name":1001}],1000:[function(require,module,exports){
+module["exports"] = [
+  "Nam",
+  "Trung",
+  "Thanh",
+  "Thị",
+  "Văn",
+  "Dương",
+  "Tăng",
+  "Quốc",
+  "Như",
+  "Phạm",
+  "Nguyễn",
+  "Trần",
+  "Lê",
+  "Lý",
+  "Hoàng",
+  "Phan",
+  "Vũ",
+  "Tăng",
+  "Đặng",
+  "Bùi",
+  "Đỗ",
+  "Hồ",
+  "Ngô",
+  "Dương",
+  "Đào",
+  "Đoàn",
+  "Vương",
+  "Trịnh",
+  "Đinh",
+  "Lâm",
+  "Phùng",
+  "Mai",
+  "Tô",
+  "Trương",
+  "Hà",
+  "Vinh",
+  "Nhung",
+  "Hòa",
+  "Tiến",
+  "Tâm",
+  "Bửu",
+  "Loan",
+  "Hiền",
+  "Hải",
+  "Vân",
+  "Kha",
+  "Minh",
+  "Nhân",
+  "Triệu",
+  "Tuân",
+  "Hữu",
+  "Đức",
+  "Phú",
+  "Khoa",
+  "Thắgn",
+  "Sơn",
+  "Dung",
+  "Tú",
+  "Trinh",
+  "Thảo",
+  "Sa",
+  "Kim",
+  "Long",
+  "Thi",
+  "Cường",
+  "Ngọc",
+  "Sinh",
+  "Khang",
+  "Phong",
+  "Thắm",
+  "Thu",
+  "Thủy",
+  "Nhàn"
+];
+
+},{}],1001:[function(require,module,exports){
+module["exports"] = [
+  "#{first_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name}",
+  "#{first_name} #{last_name} #{last_name} #{last_name}"
+];
+
+},{}],1002:[function(require,module,exports){
+module.exports=require(313)
+},{"/Users/a/dev/faker.js/lib/locales/en_GB/phone_number/formats.js":313}],1003:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":1002,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],1004:[function(require,module,exports){
+module["exports"] = [
+  "#####",
+  "####",
+  "###",
+  "##",
+  "#"
+];
+
+},{}],1005:[function(require,module,exports){
+module.exports=require(879)
+},{"/Users/a/dev/faker.js/lib/locales/sv/address/city.js":879}],1006:[function(require,module,exports){
+module["exports"] = [
+  "长",
+  "上",
+  "南",
+  "西",
+  "北",
+  "诸",
+  "宁",
+  "珠",
+  "武",
+  "衡",
+  "成",
+  "福",
+  "厦",
+  "贵",
+  "吉",
+  "海",
+  "太",
+  "济",
+  "安",
+  "吉",
+  "包"
+];
+
+},{}],1007:[function(require,module,exports){
+module["exports"] = [
+  "沙市",
+  "京市",
+  "宁市",
+  "安市",
+  "乡县",
+  "海市",
+  "码市",
+  "汉市",
+  "阳市",
+  "都市",
+  "州市",
+  "门市",
+  "阳市",
+  "口市",
+  "原市",
+  "南市",
+  "徽市",
+  "林市",
+  "头市"
+];
+
+},{}],1008:[function(require,module,exports){
+module["exports"] = [
+  "中国"
+];
+
+},{}],1009:[function(require,module,exports){
+var address = {};
+module['exports'] = address;
+address.city_prefix = require("./city_prefix");
+address.city_suffix = require("./city_suffix");
+address.building_number = require("./building_number");
+address.street_suffix = require("./street_suffix");
+address.postcode = require("./postcode");
+address.state = require("./state");
+address.state_abbr = require("./state_abbr");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
+
+},{"./building_number":1004,"./city":1005,"./city_prefix":1006,"./city_suffix":1007,"./default_country":1008,"./postcode":1010,"./state":1011,"./state_abbr":1012,"./street_address":1013,"./street_name":1014,"./street_suffix":1015}],1010:[function(require,module,exports){
+module.exports=require(802)
+},{"/Users/a/dev/faker.js/lib/locales/ru/address/postcode.js":802}],1011:[function(require,module,exports){
+module["exports"] = [
+  "北京市",
+  "上海市",
+  "天津市",
+  "重庆市",
+  "黑龙江省",
+  "吉林省",
+  "辽宁省",
+  "内蒙古",
+  "河北省",
+  "新疆",
+  "甘肃省",
+  "青海省",
+  "陕西省",
+  "宁夏",
+  "河南省",
+  "山东省",
+  "山西省",
+  "安徽省",
+  "湖北省",
+  "湖南省",
+  "江苏省",
+  "四川省",
+  "贵州省",
+  "云南省",
+  "广西省",
+  "西藏",
+  "浙江省",
+  "江西省",
+  "广东省",
+  "福建省",
+  "台湾省",
+  "海南省",
+  "香港",
+  "澳门"
+];
+
+},{}],1012:[function(require,module,exports){
+module["exports"] = [
+  "京",
+  "沪",
+  "津",
+  "渝",
+  "黑",
+  "吉",
+  "辽",
+  "蒙",
+  "冀",
+  "新",
+  "甘",
+  "青",
+  "陕",
+  "宁",
+  "豫",
+  "鲁",
+  "晋",
+  "皖",
+  "鄂",
+  "湘",
+  "苏",
+  "川",
+  "黔",
+  "滇",
+  "桂",
+  "藏",
+  "浙",
+  "赣",
+  "粤",
+  "闽",
+  "台",
+  "琼",
+  "港",
+  "澳"
+];
+
+},{}],1013:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name}#{building_number}号"
+];
+
+},{}],1014:[function(require,module,exports){
+module["exports"] = [
+  "#{Name.last_name}#{street_suffix}"
+];
+
+},{}],1015:[function(require,module,exports){
+module["exports"] = [
+  "巷",
+  "街",
+  "路",
+  "桥",
+  "侬",
+  "旁",
+  "中心",
+  "栋"
+];
+
+},{}],1016:[function(require,module,exports){
+var zh_CN = {};
+module['exports'] = zh_CN;
+zh_CN.title = "Chinese";
+zh_CN.address = require("./address");
+zh_CN.name = require("./name");
+zh_CN.phone_number = require("./phone_number");
+
+},{"./address":1009,"./name":1018,"./phone_number":1022}],1017:[function(require,module,exports){
+module["exports"] = [
+  "王",
+  "李",
+  "张",
+  "刘",
+  "陈",
+  "杨",
+  "黄",
+  "吴",
+  "赵",
+  "周",
+  "徐",
+  "孙",
+  "马",
+  "朱",
+  "胡",
+  "林",
+  "郭",
+  "何",
+  "高",
+  "罗",
+  "郑",
+  "梁",
+  "谢",
+  "宋",
+  "唐",
+  "许",
+  "邓",
+  "冯",
+  "韩",
+  "曹",
+  "曾",
+  "彭",
+  "萧",
+  "蔡",
+  "潘",
+  "田",
+  "董",
+  "袁",
+  "于",
+  "余",
+  "叶",
+  "蒋",
+  "杜",
+  "苏",
+  "魏",
+  "程",
+  "吕",
+  "丁",
+  "沈",
+  "任",
+  "姚",
+  "卢",
+  "傅",
+  "钟",
+  "姜",
+  "崔",
+  "谭",
+  "廖",
+  "范",
+  "汪",
+  "陆",
+  "金",
+  "石",
+  "戴",
+  "贾",
+  "韦",
+  "夏",
+  "邱",
+  "方",
+  "侯",
+  "邹",
+  "熊",
+  "孟",
+  "秦",
+  "白",
+  "江",
+  "阎",
+  "薛",
+  "尹",
+  "段",
+  "雷",
+  "黎",
+  "史",
+  "龙",
+  "陶",
+  "贺",
+  "顾",
+  "毛",
+  "郝",
+  "龚",
+  "邵",
+  "万",
+  "钱",
+  "严",
+  "赖",
+  "覃",
+  "洪",
+  "武",
+  "莫",
+  "孔"
+];
+
+},{}],1018:[function(require,module,exports){
+arguments[4][999][0].apply(exports,arguments)
+},{"./first_name":1017,"./last_name":1019,"./name":1020,"/Users/a/dev/faker.js/lib/locales/vi/name/index.js":999}],1019:[function(require,module,exports){
+module["exports"] = [
+  "绍齐",
+  "博文",
+  "梓晨",
+  "胤祥",
+  "瑞霖",
+  "明哲",
+  "天翊",
+  "凯瑞",
+  "健雄",
+  "耀杰",
+  "潇然",
+  "子涵",
+  "越彬",
+  "钰轩",
+  "智辉",
+  "致远",
+  "俊驰",
+  "雨泽",
+  "烨磊",
+  "晟睿",
+  "文昊",
+  "修洁",
+  "黎昕",
+  "远航",
+  "旭尧",
+  "鸿涛",
+  "伟祺",
+  "荣轩",
+  "越泽",
+  "浩宇",
+  "瑾瑜",
+  "皓轩",
+  "擎苍",
+  "擎宇",
+  "志泽",
+  "子轩",
+  "睿渊",
+  "弘文",
+  "哲瀚",
+  "雨泽",
+  "楷瑞",
+  "建辉",
+  "晋鹏",
+  "天磊",
+  "绍辉",
+  "泽洋",
+  "鑫磊",
+  "鹏煊",
+  "昊强",
+  "伟宸",
+  "博超",
+  "君浩",
+  "子骞",
+  "鹏涛",
+  "炎彬",
+  "鹤轩",
+  "越彬",
+  "风华",
+  "靖琪",
+  "明辉",
+  "伟诚",
+  "明轩",
+  "健柏",
+  "修杰",
+  "志泽",
+  "弘文",
+  "峻熙",
+  "嘉懿",
+  "煜城",
+  "懿轩",
+  "烨伟",
+  "苑博",
+  "伟泽",
+  "熠彤",
+  "鸿煊",
+  "博涛",
+  "烨霖",
+  "烨华",
+  "煜祺",
+  "智宸",
+  "正豪",
+  "昊然",
+  "明杰",
+  "立诚",
+  "立轩",
+  "立辉",
+  "峻熙",
+  "弘文",
+  "熠彤",
+  "鸿煊",
+  "烨霖",
+  "哲瀚",
+  "鑫鹏",
+  "昊天",
+  "思聪",
+  "展鹏",
+  "笑愚",
+  "志强",
+  "炫明",
+  "雪松",
+  "思源",
+  "智渊",
+  "思淼",
+  "晓啸",
+  "天宇",
+  "浩然",
+  "文轩",
+  "鹭洋",
+  "振家",
+  "乐驹",
+  "晓博",
+  "文博",
+  "昊焱",
+  "立果",
+  "金鑫",
+  "锦程",
+  "嘉熙",
+  "鹏飞",
+  "子默",
+  "思远",
+  "浩轩",
+  "语堂",
+  "聪健",
+  "明",
+  "文",
+  "果",
+  "思",
+  "鹏",
+  "驰",
+  "涛",
+  "琪",
+  "浩",
+  "航",
+  "彬"
+];
+
+},{}],1020:[function(require,module,exports){
+module["exports"] = [
+  "#{first_name}#{last_name}"
+];
+
+},{}],1021:[function(require,module,exports){
+module["exports"] = [
+  "###-########",
+  "####-########",
+  "###########"
+];
+
+},{}],1022:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":1021,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],1023:[function(require,module,exports){
+module.exports=require(464)
+},{"/Users/a/dev/faker.js/lib/locales/fr/address/building_number.js":464}],1024:[function(require,module,exports){
+module.exports=require(879)
+},{"/Users/a/dev/faker.js/lib/locales/sv/address/city.js":879}],1025:[function(require,module,exports){
+module["exports"] = [
+  "臺北",
+  "新北",
+  "桃園",
+  "臺中",
+  "臺南",
+  "高雄",
+  "基隆",
+  "新竹",
+  "嘉義",
+  "苗栗",
+  "彰化",
+  "南投",
+  "雲林",
+  "屏東",
+  "宜蘭",
+  "花蓮",
+  "臺東",
+  "澎湖",
+  "金門",
+  "連江"
+];
+
+},{}],1026:[function(require,module,exports){
+module["exports"] = [
+  "縣",
+  "市"
+];
+
+},{}],1027:[function(require,module,exports){
+module["exports"] = [
+  "Taiwan (R.O.C.)"
+];
+
+},{}],1028:[function(require,module,exports){
+arguments[4][1009][0].apply(exports,arguments)
+},{"./building_number":1023,"./city":1024,"./city_prefix":1025,"./city_suffix":1026,"./default_country":1027,"./postcode":1029,"./state":1030,"./state_abbr":1031,"./street_address":1032,"./street_name":1033,"./street_suffix":1034,"/Users/a/dev/faker.js/lib/locales/zh_CN/address/index.js":1009}],1029:[function(require,module,exports){
+module.exports=require(802)
+},{"/Users/a/dev/faker.js/lib/locales/ru/address/postcode.js":802}],1030:[function(require,module,exports){
+module["exports"] = [
+  "福建省",
+  "台灣省"
+];
+
+},{}],1031:[function(require,module,exports){
+module["exports"] = [
+  "北",
+  "新北",
+  "桃",
+  "中",
+  "南",
+  "高",
+  "基",
+  "竹市",
+  "嘉市",
+  "竹縣",
+  "苗",
+  "彰",
+  "投",
+  "雲",
+  "嘉縣",
+  "宜",
+  "花",
+  "東",
+  "澎",
+  "金",
+  "馬"
+];
+
+},{}],1032:[function(require,module,exports){
+module["exports"] = [
+  "#{street_name}#{building_number}號"
+];
+
+},{}],1033:[function(require,module,exports){
+module.exports=require(1014)
+},{"/Users/a/dev/faker.js/lib/locales/zh_CN/address/street_name.js":1014}],1034:[function(require,module,exports){
+module["exports"] = [
+  "街",
+  "路",
+  "北路",
+  "南路",
+  "東路",
+  "西路"
+];
+
+},{}],1035:[function(require,module,exports){
+var zh_TW = {};
+module['exports'] = zh_TW;
+zh_TW.title = "Chinese (Taiwan)";
+zh_TW.address = require("./address");
+zh_TW.name = require("./name");
+zh_TW.phone_number = require("./phone_number");
+
+},{"./address":1028,"./name":1037,"./phone_number":1041}],1036:[function(require,module,exports){
+module["exports"] = [
+  "王",
+  "李",
+  "張",
+  "劉",
+  "陳",
+  "楊",
+  "黃",
+  "吳",
+  "趙",
+  "週",
+  "徐",
+  "孫",
+  "馬",
+  "朱",
+  "胡",
+  "林",
+  "郭",
+  "何",
+  "高",
+  "羅",
+  "鄭",
+  "梁",
+  "謝",
+  "宋",
+  "唐",
+  "許",
+  "鄧",
+  "馮",
+  "韓",
+  "曹",
+  "曾",
+  "彭",
+  "蕭",
+  "蔡",
+  "潘",
+  "田",
+  "董",
+  "袁",
+  "於",
+  "餘",
+  "葉",
+  "蔣",
+  "杜",
+  "蘇",
+  "魏",
+  "程",
+  "呂",
+  "丁",
+  "沈",
+  "任",
+  "姚",
+  "盧",
+  "傅",
+  "鐘",
+  "姜",
+  "崔",
+  "譚",
+  "廖",
+  "範",
+  "汪",
+  "陸",
+  "金",
+  "石",
+  "戴",
+  "賈",
+  "韋",
+  "夏",
+  "邱",
+  "方",
+  "侯",
+  "鄒",
+  "熊",
+  "孟",
+  "秦",
+  "白",
+  "江",
+  "閻",
+  "薛",
+  "尹",
+  "段",
+  "雷",
+  "黎",
+  "史",
+  "龍",
+  "陶",
+  "賀",
+  "顧",
+  "毛",
+  "郝",
+  "龔",
+  "邵",
+  "萬",
+  "錢",
+  "嚴",
+  "賴",
+  "覃",
+  "洪",
+  "武",
+  "莫",
+  "孔"
+];
+
+},{}],1037:[function(require,module,exports){
+arguments[4][999][0].apply(exports,arguments)
+},{"./first_name":1036,"./last_name":1038,"./name":1039,"/Users/a/dev/faker.js/lib/locales/vi/name/index.js":999}],1038:[function(require,module,exports){
+module["exports"] = [
+  "紹齊",
+  "博文",
+  "梓晨",
+  "胤祥",
+  "瑞霖",
+  "明哲",
+  "天翊",
+  "凱瑞",
+  "健雄",
+  "耀傑",
+  "瀟然",
+  "子涵",
+  "越彬",
+  "鈺軒",
+  "智輝",
+  "致遠",
+  "俊馳",
+  "雨澤",
+  "燁磊",
+  "晟睿",
+  "文昊",
+  "修潔",
+  "黎昕",
+  "遠航",
+  "旭堯",
+  "鴻濤",
+  "偉祺",
+  "榮軒",
+  "越澤",
+  "浩宇",
+  "瑾瑜",
+  "皓軒",
+  "擎蒼",
+  "擎宇",
+  "志澤",
+  "子軒",
+  "睿淵",
+  "弘文",
+  "哲瀚",
+  "雨澤",
+  "楷瑞",
+  "建輝",
+  "晉鵬",
+  "天磊",
+  "紹輝",
+  "澤洋",
+  "鑫磊",
+  "鵬煊",
+  "昊強",
+  "偉宸",
+  "博超",
+  "君浩",
+  "子騫",
+  "鵬濤",
+  "炎彬",
+  "鶴軒",
+  "越彬",
+  "風華",
+  "靖琪",
+  "明輝",
+  "偉誠",
+  "明軒",
+  "健柏",
+  "修傑",
+  "志澤",
+  "弘文",
+  "峻熙",
+  "嘉懿",
+  "煜城",
+  "懿軒",
+  "燁偉",
+  "苑博",
+  "偉澤",
+  "熠彤",
+  "鴻煊",
+  "博濤",
+  "燁霖",
+  "燁華",
+  "煜祺",
+  "智宸",
+  "正豪",
+  "昊然",
+  "明杰",
+  "立誠",
+  "立軒",
+  "立輝",
+  "峻熙",
+  "弘文",
+  "熠彤",
+  "鴻煊",
+  "燁霖",
+  "哲瀚",
+  "鑫鵬",
+  "昊天",
+  "思聰",
+  "展鵬",
+  "笑愚",
+  "志強",
+  "炫明",
+  "雪松",
+  "思源",
+  "智淵",
+  "思淼",
+  "曉嘯",
+  "天宇",
+  "浩然",
+  "文軒",
+  "鷺洋",
+  "振家",
+  "樂駒",
+  "曉博",
+  "文博",
+  "昊焱",
+  "立果",
+  "金鑫",
+  "錦程",
+  "嘉熙",
+  "鵬飛",
+  "子默",
+  "思遠",
+  "浩軒",
+  "語堂",
+  "聰健"
+];
+
+},{}],1039:[function(require,module,exports){
+module.exports=require(1020)
+},{"/Users/a/dev/faker.js/lib/locales/zh_CN/name/name.js":1020}],1040:[function(require,module,exports){
+module["exports"] = [
+  "0#-#######",
+  "02-########",
+  "09##-######"
+];
+
+},{}],1041:[function(require,module,exports){
+arguments[4][53][0].apply(exports,arguments)
+},{"./formats":1040,"/Users/a/dev/faker.js/lib/locales/az/phone_number/index.js":53}],1042:[function(require,module,exports){
+
+/**
+ *
+ * @namespace faker.lorem
+ */
+var Lorem = function (faker) {
+  var self = this;
+  var Helpers = faker.helpers;
+
+  /**
+   * word
+   *
+   * @method faker.lorem.word
+   * @param {number} num
+   */
+  self.word = function (num) {
+    return faker.random.arrayElement(faker.definitions.lorem.words);
+  };
+
+  /**
+   * generates a space separated list of words
+   *
+   * @method faker.lorem.words
+   * @param {number} num number of words, defaults to 3
+   */
+  self.words = function (num) {
+      if (typeof num == 'undefined') { num = 3; }
+      var words = [];
+      for (var i = 0; i < num; i++) {
+        words.push(faker.lorem.word());
+      }
+      return words.join(' ');
+  };
+
+  /**
+   * sentence
+   *
+   * @method faker.lorem.sentence
+   * @param {number} wordCount defaults to a random number between 3 and 10
+   * @param {number} range
+   */
+  self.sentence = function (wordCount, range) {
+      if (typeof wordCount == 'undefined') { wordCount = faker.random.number({ min: 3, max: 10 }); }
+      // if (typeof range == 'undefined') { range = 7; }
+
+      // strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back
+      //return  faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize();
+
+      var sentence = faker.lorem.words(wordCount);
+      return sentence.charAt(0).toUpperCase() + sentence.slice(1) + '.';
+  };
+
+  /**
+   * slug
+   *
+   * @method faker.lorem.slug
+   * @param {number} wordCount number of words, defaults to 3
+   */
+  self.slug = function (wordCount) {
+      var words = faker.lorem.words(wordCount);
+      return Helpers.slugify(words);
+  };
+
+  /**
+   * sentences
+   *
+   * @method faker.lorem.sentences
+   * @param {number} sentenceCount defautls to a random number between 2 and 6
+   * @param {string} separator defaults to `' '`
+   */
+  self.sentences = function (sentenceCount, separator) {
+      if (typeof sentenceCount === 'undefined') { sentenceCount = faker.random.number({ min: 2, max: 6 });}
+      if (typeof separator == 'undefined') { separator = " "; }
+      var sentences = [];
+      for (sentenceCount; sentenceCount > 0; sentenceCount--) {
+        sentences.push(faker.lorem.sentence());
+      }
+      return sentences.join(separator);
+  };
+
+  /**
+   * paragraph
+   *
+   * @method faker.lorem.paragraph
+   * @param {number} sentenceCount defaults to 3
+   */
+  self.paragraph = function (sentenceCount) {
+      if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
+      return faker.lorem.sentences(sentenceCount + faker.random.number(3));
+  };
+
+  /**
+   * paragraphs
+   *
+   * @method faker.lorem.paragraphs
+   * @param {number} paragraphCount defaults to 3
+   * @param {string} separator defaults to `'\n \r'`
+   */
+  self.paragraphs = function (paragraphCount, separator) {
+    if (typeof separator === "undefined") {
+      separator = "\n \r";
+    }
+    if (typeof paragraphCount == 'undefined') { paragraphCount = 3; }
+    var paragraphs = [];
+    for (paragraphCount; paragraphCount > 0; paragraphCount--) {
+        paragraphs.push(faker.lorem.paragraph());
+    }
+    return paragraphs.join(separator);
+  }
+
+  /**
+   * returns random text based on a random lorem method
+   *
+   * @method faker.lorem.text
+   * @param {number} times
+   */
+  self.text = function loremText (times) {
+    var loremMethods = ['lorem.word', 'lorem.words', 'lorem.sentence', 'lorem.sentences', 'lorem.paragraph', 'lorem.paragraphs', 'lorem.lines'];
+    var randomLoremMethod = faker.random.arrayElement(loremMethods);
+    return faker.fake('{{' + randomLoremMethod + '}}');
+  };
+
+  /**
+   * returns lines of lorem separated by `'\n'`
+   *
+   * @method faker.lorem.lines
+   * @param {number} lineCount defaults to a random number between 1 and 5
+   */
+  self.lines = function lines (lineCount) {
+    if (typeof lineCount === 'undefined') { lineCount = faker.random.number({ min: 1, max: 5 });}
+    return faker.lorem.sentences(lineCount, '\n')
+  };
+
+  return self;
+};
+
+
+module["exports"] = Lorem;
+
+},{}],1043:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.name
+ */
+function Name (faker) {
+
+  /**
+   * firstName
+   *
+   * @method firstName
+   * @param {mixed} gender
+   * @memberof faker.name
+   */
+  this.firstName = function (gender) {
+    if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") {
+      // some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets,
+      // we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback )
+      if (typeof gender !== 'number') {
+        gender = faker.random.number(1);
+      }
+      if (gender === 0) {
+        return faker.random.arrayElement(faker.locales[faker.locale].name.male_first_name)
+      } else {
+        return faker.random.arrayElement(faker.locales[faker.locale].name.female_first_name);
+      }
+    }
+    return faker.random.arrayElement(faker.definitions.name.first_name);
+  };
+
+  /**
+   * lastName
+   *
+   * @method lastName
+   * @param {mixed} gender
+   * @memberof faker.name
+   */
+  this.lastName = function (gender) {
+    if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.definitions.name.female_last_name !== "undefined") {
+      // some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian
+      // see above comment of firstName method
+      if (typeof gender !== 'number') {
+        gender = faker.random.number(1);
+      }
+      if (gender === 0) {
+        return faker.random.arrayElement(faker.locales[faker.locale].name.male_last_name);
+      } else {
+        return faker.random.arrayElement(faker.locales[faker.locale].name.female_last_name);
+      }
+    }
+    return faker.random.arrayElement(faker.definitions.name.last_name);
+  };
+
+  /**
+   * findName
+   *
+   * @method findName
+   * @param {string} firstName
+   * @param {string} lastName
+   * @param {mixed} gender
+   * @memberof faker.name
+   */
+  this.findName = function (firstName, lastName, gender) {
+      var r = faker.random.number(8);
+      var prefix, suffix;
+      // in particular locales first and last names split by gender,
+      // thus we keep consistency by passing 0 as male and 1 as female
+      if (typeof gender !== 'number') {
+        gender = faker.random.number(1);
+      }
+      firstName = firstName || faker.name.firstName(gender);
+      lastName = lastName || faker.name.lastName(gender);
+      switch (r) {
+      case 0:
+          prefix = faker.name.prefix(gender);
+          if (prefix) {
+              return prefix + " " + firstName + " " + lastName;
+          }
+      case 1:
+          suffix = faker.name.suffix(gender);
+          if (suffix) {
+              return firstName + " " + lastName + " " + suffix;
+          }
+      }
+
+      return firstName + " " + lastName;
+  };
+
+  /**
+   * jobTitle
+   *
+   * @method jobTitle
+   * @memberof faker.name
+   */
+  this.jobTitle = function () {
+    return  faker.name.jobDescriptor() + " " +
+      faker.name.jobArea() + " " +
+      faker.name.jobType();
+  };
+  
+  /**
+   * prefix
+   *
+   * @method prefix
+   * @param {mixed} gender
+   * @memberof faker.name
+   */
+  this.prefix = function (gender) {
+    if (typeof faker.definitions.name.male_prefix !== "undefined" && typeof faker.definitions.name.female_prefix !== "undefined") {
+      if (typeof gender !== 'number') {
+        gender = faker.random.number(1);
+      }
+      if (gender === 0) {
+        return faker.random.arrayElement(faker.locales[faker.locale].name.male_prefix);
+      } else {
+        return faker.random.arrayElement(faker.locales[faker.locale].name.female_prefix);
+      }
+    }
+    return faker.random.arrayElement(faker.definitions.name.prefix);
+  };
+
+  /**
+   * suffix
+   *
+   * @method suffix
+   * @memberof faker.name
+   */
+  this.suffix = function () {
+      return faker.random.arrayElement(faker.definitions.name.suffix);
+  };
+
+  /**
+   * title
+   *
+   * @method title
+   * @memberof faker.name
+   */
+  this.title = function() {
+      var descriptor  = faker.random.arrayElement(faker.definitions.name.title.descriptor),
+          level       = faker.random.arrayElement(faker.definitions.name.title.level),
+          job         = faker.random.arrayElement(faker.definitions.name.title.job);
+
+      return descriptor + " " + level + " " + job;
+  };
+
+  /**
+   * jobDescriptor
+   *
+   * @method jobDescriptor
+   * @memberof faker.name
+   */
+  this.jobDescriptor = function () {
+    return faker.random.arrayElement(faker.definitions.name.title.descriptor);
+  };
+
+  /**
+   * jobArea
+   *
+   * @method jobArea
+   * @memberof faker.name
+   */
+  this.jobArea = function () {
+    return faker.random.arrayElement(faker.definitions.name.title.level);
+  };
+
+  /**
+   * jobType
+   *
+   * @method jobType
+   * @memberof faker.name
+   */
+  this.jobType = function () {
+    return faker.random.arrayElement(faker.definitions.name.title.job);
+  };
+
+}
+
+module['exports'] = Name;
+
+},{}],1044:[function(require,module,exports){
+/**
+ *
+ * @namespace faker.phone
+ */
+var Phone = function (faker) {
+  var self = this;
+
+  /**
+   * phoneNumber
+   *
+   * @method faker.phone.phoneNumber
+   * @param {string} format
+   */
+  self.phoneNumber = function (format) {
+      format = format || faker.phone.phoneFormats();
+      return faker.helpers.replaceSymbolWithNumber(format);
+  };
+
+  // FIXME: this is strange passing in an array index.
+  /**
+   * phoneNumberFormat
+   *
+   * @method faker.phone.phoneFormatsArrayIndex
+   * @param phoneFormatsArrayIndex
+   */
+  self.phoneNumberFormat = function (phoneFormatsArrayIndex) {
+      phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0;
+      return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]);
+  };
+
+  /**
+   * phoneFormats
+   *
+   * @method faker.phone.phoneFormats
+   */
+  self.phoneFormats = function () {
+    return faker.random.arrayElement(faker.definitions.phone_number.formats);
+  };
+  
+  return self;
+
+};
+
+module['exports'] = Phone;
+},{}],1045:[function(require,module,exports){
+var mersenne = require('../vendor/mersenne');
+
+/**
+ *
+ * @namespace faker.random
+ */
+function Random (faker, seed) {
+  // Use a user provided seed if it exists
+  if (seed) {
+    if (Array.isArray(seed) && seed.length) {
+      mersenne.seed_array(seed);
+    }
+    else {
+      mersenne.seed(seed);
+    }
+  }
+  /**
+   * returns a single random number based on a max number or range
+   *
+   * @method faker.random.number
+   * @param {mixed} options
+   */
+  this.number = function (options) {
+
+    if (typeof options === "number") {
+      options = {
+        max: options
+      };
+    }
+
+    options = options || {};
+
+    if (typeof options.min === "undefined") {
+      options.min = 0;
+    }
+
+    if (typeof options.max === "undefined") {
+      options.max = 99999;
+    }
+    if (typeof options.precision === "undefined") {
+      options.precision = 1;
+    }
+
+    // Make the range inclusive of the max value
+    var max = options.max;
+    if (max >= 0) {
+      max += options.precision;
+    }
+
+    var randomNumber = options.precision * Math.floor(
+      mersenne.rand(max / options.precision, options.min / options.precision));
+
+    return randomNumber;
+
+  }
+
+  /**
+   * takes an array and returns a random element of the array
+   *
+   * @method faker.random.arrayElement
+   * @param {array} array
+   */
+  this.arrayElement = function (array) {
+      array = array || ["a", "b", "c"];
+      var r = faker.random.number({ max: array.length - 1 });
+      return array[r];
+  }
+
+  /**
+   * takes an object and returns the randomly key or value
+   *
+   * @method faker.random.objectElement
+   * @param {object} object
+   * @param {mixed} field
+   */
+  this.objectElement = function (object, field) {
+      object = object || { "foo": "bar", "too": "car" };
+      var array = Object.keys(object);
+      var key = faker.random.arrayElement(array);
+
+      return field === "key" ? key : object[key];
+  }
+
+  /**
+   * uuid
+   *
+   * @method faker.random.uuid
+   */
+  this.uuid = function () {
+      var self = this;
+      var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
+      var replacePlaceholders = function (placeholder) {
+          var random = self.number({ min: 0, max: 15 });
+          var value = placeholder == 'x' ? random : (random &0x3 | 0x8);
+          return value.toString(16);
+      };
+      return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders);
+  }
+
+  /**
+   * boolean
+   *
+   * @method faker.random.boolean
+   */
+  this.boolean = function () {
+      return !!faker.random.number(1)
+  }
+
+  // TODO: have ability to return specific type of word? As in: noun, adjective, verb, etc
+  /**
+   * word
+   *
+   * @method faker.random.word
+   * @param {string} type
+   */
+  this.word = function randomWord (type) {
+
+    var wordMethods = [
+    'commerce.department',
+    'commerce.productName',
+    'commerce.productAdjective',
+    'commerce.productMaterial',
+    'commerce.product',
+    'commerce.color',
+
+    'company.catchPhraseAdjective',
+    'company.catchPhraseDescriptor',
+    'company.catchPhraseNoun',
+    'company.bsAdjective',
+    'company.bsBuzz',
+    'company.bsNoun',
+    'address.streetSuffix',
+    'address.county',
+    'address.country',
+    'address.state',
+
+    'finance.accountName',
+    'finance.transactionType',
+    'finance.currencyName',
+
+    'hacker.noun',
+    'hacker.verb',
+    'hacker.adjective',
+    'hacker.ingverb',
+    'hacker.abbreviation',
+
+    'name.jobDescriptor',
+    'name.jobArea',
+    'name.jobType'];
+
+    // randomly pick from the many faker methods that can generate words
+    var randomWordMethod = faker.random.arrayElement(wordMethods);
+    return faker.fake('{{' + randomWordMethod + '}}');
+
+  }
+
+  /**
+   * randomWords
+   *
+   * @method faker.random.words
+   * @param {number} count defaults to a random value between 1 and 3
+   */
+  this.words = function randomWords (count) {
+    var words = [];
+    if (typeof count === "undefined") {
+      count = faker.random.number({min:1, max: 3});
+    }
+    for (var i = 0; i<count; i++) {
+      words.push(faker.random.word());
+    }
+    return words.join(' ');
+  }
+
+  /**
+   * locale
+   *
+   * @method faker.random.image
+   */
+  this.image = function randomImage () {
+    return faker.image.image();
+  }
+
+  /**
+   * locale
+   *
+   * @method faker.random.locale
+   */
+  this.locale = function randomLocale () {
+    return faker.random.arrayElement(Object.keys(faker.locales));
+  };
+
+  /**
+   * alphaNumeric
+   *
+   * @method faker.random.alphaNumeric
+   * @param {number} count defaults to 1
+   */
+  this.alphaNumeric = function alphaNumeric(count) {
+    if (typeof count === "undefined") {
+      count = 1;
+    }
+
+    var wholeString = "";
+    for(var i = 0; i < count; i++) {
+      wholeString += faker.random.arrayElement(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]);
+    }
+
+    return wholeString;
+  };
+
+  return this;
+
+}
+
+module['exports'] = Random;
+
+},{"../vendor/mersenne":1047}],1046:[function(require,module,exports){
+// generates fake data for many computer systems properties
+
+/**
+ *
+ * @namespace faker.system
+ */
+function System (faker) {
+
+  /**
+   * generates a file name with extension or optional type
+   *
+   * @method faker.system.fileName
+   * @param {string} ext
+   * @param {string} type
+   */
+  this.fileName = function (ext, type) {
+    var str = faker.fake("{{random.words}}.{{system.fileExt}}");
+    str = str.replace(/ /g, '_');
+    str = str.replace(/\,/g, '_');
+    str = str.replace(/\-/g, '_');
+    str = str.replace(/\\/g, '_');
+    str = str.replace(/\//g, '_');
+    str = str.toLowerCase();
+    return str;
+  };
+
+  /**
+   * commonFileName
+   *
+   * @method faker.system.commonFileName
+   * @param {string} ext
+   * @param {string} type
+   */
+  this.commonFileName = function (ext, type) {
+    var str = faker.random.words() + "." + (ext || faker.system.commonFileExt());
+    str = str.replace(/ /g, '_');
+    str = str.replace(/\,/g, '_');
+    str = str.replace(/\-/g, '_');
+    str = str.replace(/\\/g, '_');
+    str = str.replace(/\//g, '_');
+    str = str.toLowerCase();
+    return str;
+  };
+
+  /**
+   * mimeType
+   *
+   * @method faker.system.mimeType
+   */
+  this.mimeType = function () {
+    return faker.random.arrayElement(Object.keys(faker.definitions.system.mimeTypes));
+  };
+
+  /**
+   * returns a commonly used file type
+   *
+   * @method faker.system.commonFileType
+   */
+  this.commonFileType = function () {
+    var types = ['video', 'audio', 'image', 'text', 'application'];
+    return faker.random.arrayElement(types)
+  };
+
+  /**
+   * returns a commonly used file extension based on optional type
+   *
+   * @method faker.system.commonFileExt
+   * @param {string} type
+   */
+  this.commonFileExt = function (type) {
+    var types = [
+      'application/pdf',
+      'audio/mpeg',
+      'audio/wav',
+      'image/png',
+      'image/jpeg',
+      'image/gif',
+      'video/mp4',
+      'video/mpeg',
+      'text/html'
+    ];
+    return faker.system.fileExt(faker.random.arrayElement(types));
+  };
+
+
+  /**
+   * returns any file type available as mime-type
+   *
+   * @method faker.system.fileType
+   */
+  this.fileType = function () {
+    var types = [];
+    var mimes = faker.definitions.system.mimeTypes;
+    Object.keys(mimes).forEach(function(m){
+      var parts = m.split('/');
+      if (types.indexOf(parts[0]) === -1) {
+        types.push(parts[0]);
+      }
+    });
+    return faker.random.arrayElement(types);
+  };
+
+  /**
+   * fileExt
+   *
+   * @method faker.system.fileExt
+   * @param {string} mimeType
+   */
+  this.fileExt = function (mimeType) {
+    var exts = [];
+    var mimes = faker.definitions.system.mimeTypes;
+
+    // get specific ext by mime-type
+    if (typeof mimes[mimeType] === "object") {
+      return faker.random.arrayElement(mimes[mimeType].extensions);
+    }
+
+    // reduce mime-types to those with file-extensions
+    Object.keys(mimes).forEach(function(m){
+      if (mimes[m].extensions instanceof Array) {
+        mimes[m].extensions.forEach(function(ext){
+          exts.push(ext)
+        });
+      }
+    });
+    return faker.random.arrayElement(exts);
+  };
+
+  /**
+   * not yet implemented
+   *
+   * @method faker.system.directoryPath
+   */
+  this.directoryPath = function () {
+    // TODO
+  };
+
+  /**
+   * not yet implemented
+   *
+   * @method faker.system.filePath
+   */
+  this.filePath = function () {
+    // TODO
+  };
+
+  /**
+   * semver
+   *
+   * @method faker.system.semver
+   */
+  this.semver = function () {
+      return [faker.random.number(9),
+              faker.random.number(9),
+              faker.random.number(9)].join('.');
+  }
+
+}
+
+module['exports'] = System;
+
+},{}],1047:[function(require,module,exports){
+// this program is a JavaScript version of Mersenne Twister, with concealment and encapsulation in class,
+// an almost straight conversion from the original program, mt19937ar.c,
+// translated by y. okada on July 17, 2006.
+// and modified a little at july 20, 2006, but there are not any substantial differences.
+// in this program, procedure descriptions and comments of original source code were not removed.
+// lines commented with //c// were originally descriptions of c procedure. and a few following lines are appropriate JavaScript descriptions.
+// lines commented with /* and */ are original comments.
+// lines commented with // are additional comments in this JavaScript version.
+// before using this version, create at least one instance of MersenneTwister19937 class, and initialize the each state, given below in c comments, of all the instances.
+/*
+   A C-program for MT19937, with initialization improved 2002/1/26.
+   Coded by Takuji Nishimura and Makoto Matsumoto.
+
+   Before using, initialize the state by using init_genrand(seed)
+   or init_by_array(init_key, key_length).
+
+   Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+     1. Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+     2. Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in the
+        documentation and/or other materials provided with the distribution.
+
+     3. The names of its contributors may not be used to endorse or promote
+        products derived from this software without specific prior written
+        permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+   Any feedback is very welcome.
+   http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
+   email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)
+*/
+
+function MersenneTwister19937()
+{
+	/* constants should be scoped inside the class */
+	var N, M, MATRIX_A, UPPER_MASK, LOWER_MASK;
+	/* Period parameters */
+	//c//#define N 624
+	//c//#define M 397
+	//c//#define MATRIX_A 0x9908b0dfUL   /* constant vector a */
+	//c//#define UPPER_MASK 0x80000000UL /* most significant w-r bits */
+	//c//#define LOWER_MASK 0x7fffffffUL /* least significant r bits */
+	N = 624;
+	M = 397;
+	MATRIX_A = 0x9908b0df;   /* constant vector a */
+	UPPER_MASK = 0x80000000; /* most significant w-r bits */
+	LOWER_MASK = 0x7fffffff; /* least significant r bits */
+	//c//static unsigned long mt[N]; /* the array for the state vector  */
+	//c//static int mti=N+1; /* mti==N+1 means mt[N] is not initialized */
+	var mt = new Array(N);   /* the array for the state vector  */
+	var mti = N+1;           /* mti==N+1 means mt[N] is not initialized */
+
+	function unsigned32 (n1) // returns a 32-bits unsiged integer from an operand to which applied a bit operator.
+	{
+		return n1 < 0 ? (n1 ^ UPPER_MASK) + UPPER_MASK : n1;
+	}
+
+	function subtraction32 (n1, n2) // emulates lowerflow of a c 32-bits unsiged integer variable, instead of the operator -. these both arguments must be non-negative integers expressible using unsigned 32 bits.
+	{
+		return n1 < n2 ? unsigned32((0x100000000 - (n2 - n1)) & 0xffffffff) : n1 - n2;
+	}
+
+	function addition32 (n1, n2) // emulates overflow of a c 32-bits unsiged integer variable, instead of the operator +. these both arguments must be non-negative integers expressible using unsigned 32 bits.
+	{
+		return unsigned32((n1 + n2) & 0xffffffff)
+	}
+
+	function multiplication32 (n1, n2) // emulates overflow of a c 32-bits unsiged integer variable, instead of the operator *. these both arguments must be non-negative integers expressible using unsigned 32 bits.
+	{
+		var sum = 0;
+		for (var i = 0; i < 32; ++i){
+			if ((n1 >>> i) & 0x1){
+				sum = addition32(sum, unsigned32(n2 << i));
+			}
+		}
+		return sum;
+	}
+
+	/* initializes mt[N] with a seed */
+	//c//void init_genrand(unsigned long s)
+	this.init_genrand = function (s)
+	{
+		//c//mt[0]= s & 0xffffffff;
+		mt[0]= unsigned32(s & 0xffffffff);
+		for (mti=1; mti<N; mti++) {
+			mt[mti] =
+			//c//(1812433253 * (mt[mti-1] ^ (mt[mti-1] >> 30)) + mti);
+			addition32(multiplication32(1812433253, unsigned32(mt[mti-1] ^ (mt[mti-1] >>> 30))), mti);
+			/* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */
+			/* In the previous versions, MSBs of the seed affect   */
+			/* only MSBs of the array mt[].                        */
+			/* 2002/01/09 modified by Makoto Matsumoto             */
+			//c//mt[mti] &= 0xffffffff;
+			mt[mti] = unsigned32(mt[mti] & 0xffffffff);
+			/* for >32 bit machines */
+		}
+	}
+
+	/* initialize by an array with array-length */
+	/* init_key is the array for initializing keys */
+	/* key_length is its length */
+	/* slight change for C++, 2004/2/26 */
+	//c//void init_by_array(unsigned long init_key[], int key_length)
+	this.init_by_array = function (init_key, key_length)
+	{
+		//c//int i, j, k;
+		var i, j, k;
+		//c//init_genrand(19650218);
+		this.init_genrand(19650218);
+		i=1; j=0;
+		k = (N>key_length ? N : key_length);
+		for (; k; k--) {
+			//c//mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1664525))
+			//c//	+ init_key[j] + j; /* non linear */
+			mt[i] = addition32(addition32(unsigned32(mt[i] ^ multiplication32(unsigned32(mt[i-1] ^ (mt[i-1] >>> 30)), 1664525)), init_key[j]), j);
+			mt[i] =
+			//c//mt[i] &= 0xffffffff; /* for WORDSIZE > 32 machines */
+			unsigned32(mt[i] & 0xffffffff);
+			i++; j++;
+			if (i>=N) { mt[0] = mt[N-1]; i=1; }
+			if (j>=key_length) j=0;
+		}
+		for (k=N-1; k; k--) {
+			//c//mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1566083941))
+			//c//- i; /* non linear */
+			mt[i] = subtraction32(unsigned32((dbg=mt[i]) ^ multiplication32(unsigned32(mt[i-1] ^ (mt[i-1] >>> 30)), 1566083941)), i);
+			//c//mt[i] &= 0xffffffff; /* for WORDSIZE > 32 machines */
+			mt[i] = unsigned32(mt[i] & 0xffffffff);
+			i++;
+			if (i>=N) { mt[0] = mt[N-1]; i=1; }
+		}
+		mt[0] = 0x80000000; /* MSB is 1; assuring non-zero initial array */
+	}
+
+    /* moved outside of genrand_int32() by jwatte 2010-11-17; generate less garbage */
+    var mag01 = [0x0, MATRIX_A];
+
+	/* generates a random number on [0,0xffffffff]-interval */
+	//c//unsigned long genrand_int32(void)
+	this.genrand_int32 = function ()
+	{
+		//c//unsigned long y;
+		//c//static unsigned long mag01[2]={0x0UL, MATRIX_A};
+		var y;
+		/* mag01[x] = x * MATRIX_A  for x=0,1 */
+
+		if (mti >= N) { /* generate N words at one time */
+			//c//int kk;
+			var kk;
+
+			if (mti == N+1)   /* if init_genrand() has not been called, */
+				//c//init_genrand(5489); /* a default initial seed is used */
+				this.init_genrand(5489); /* a default initial seed is used */
+
+			for (kk=0;kk<N-M;kk++) {
+				//c//y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
+				//c//mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1];
+				y = unsigned32((mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK));
+				mt[kk] = unsigned32(mt[kk+M] ^ (y >>> 1) ^ mag01[y & 0x1]);
+			}
+			for (;kk<N-1;kk++) {
+				//c//y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
+				//c//mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1];
+				y = unsigned32((mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK));
+				mt[kk] = unsigned32(mt[kk+(M-N)] ^ (y >>> 1) ^ mag01[y & 0x1]);
+			}
+			//c//y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK);
+			//c//mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1];
+			y = unsigned32((mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK));
+			mt[N-1] = unsigned32(mt[M-1] ^ (y >>> 1) ^ mag01[y & 0x1]);
+			mti = 0;
+		}
+
+		y = mt[mti++];
+
+		/* Tempering */
+		//c//y ^= (y >> 11);
+		//c//y ^= (y << 7) & 0x9d2c5680;
+		//c//y ^= (y << 15) & 0xefc60000;
+		//c//y ^= (y >> 18);
+		y = unsigned32(y ^ (y >>> 11));
+		y = unsigned32(y ^ ((y << 7) & 0x9d2c5680));
+		y = unsigned32(y ^ ((y << 15) & 0xefc60000));
+		y = unsigned32(y ^ (y >>> 18));
+
+		return y;
+	}
+
+	/* generates a random number on [0,0x7fffffff]-interval */
+	//c//long genrand_int31(void)
+	this.genrand_int31 = function ()
+	{
+		//c//return (genrand_int32()>>1);
+		return (this.genrand_int32()>>>1);
+	}
+
+	/* generates a random number on [0,1]-real-interval */
+	//c//double genrand_real1(void)
+	this.genrand_real1 = function ()
+	{
+		//c//return genrand_int32()*(1.0/4294967295.0);
+		return this.genrand_int32()*(1.0/4294967295.0);
+		/* divided by 2^32-1 */
+	}
+
+	/* generates a random number on [0,1)-real-interval */
+	//c//double genrand_real2(void)
+	this.genrand_real2 = function ()
+	{
+		//c//return genrand_int32()*(1.0/4294967296.0);
+		return this.genrand_int32()*(1.0/4294967296.0);
+		/* divided by 2^32 */
+	}
+
+	/* generates a random number on (0,1)-real-interval */
+	//c//double genrand_real3(void)
+	this.genrand_real3 = function ()
+	{
+		//c//return ((genrand_int32()) + 0.5)*(1.0/4294967296.0);
+		return ((this.genrand_int32()) + 0.5)*(1.0/4294967296.0);
+		/* divided by 2^32 */
+	}
+
+	/* generates a random number on [0,1) with 53-bit resolution*/
+	//c//double genrand_res53(void)
+	this.genrand_res53 = function ()
+	{
+		//c//unsigned long a=genrand_int32()>>5, b=genrand_int32()>>6;
+		var a=this.genrand_int32()>>>5, b=this.genrand_int32()>>>6;
+		return(a*67108864.0+b)*(1.0/9007199254740992.0);
+	}
+	/* These real versions are due to Isaku Wada, 2002/01/09 added */
+}
+
+//  Exports: Public API
+
+//  Export the twister class
+exports.MersenneTwister19937 = MersenneTwister19937;
+
+//  Export a simplified function to generate random numbers
+var gen = new MersenneTwister19937;
+gen.init_genrand((new Date).getTime() % 1000000000);
+
+// Added max, min range functionality, Marak Squires Sept 11 2014
+exports.rand = function(max, min) {
+    if (max === undefined)
+        {
+        min = 0;
+        max = 32768;
+        }
+    return Math.floor(gen.genrand_real2() * (max - min) + min);
+}
+exports.seed = function(S) {
+    if (typeof(S) != 'number')
+        {
+        throw new Error("seed(S) must take numeric argument; is " + typeof(S));
+        }
+    gen.init_genrand(S);
+}
+exports.seed_array = function(A) {
+    if (typeof(A) != 'object')
+        {
+        throw new Error("seed_array(A) must take array of numbers; is " + typeof(A));
+        }
+    gen.init_by_array(A);
+}
+
+},{}],1048:[function(require,module,exports){
+/*
+
+Copyright (c) 2012-2014 Jeffrey Mealo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
+to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------------------------------------------------------------
+
+Based loosely on Luka Pusic's PHP Script: http://360percents.com/posts/php-random-user-agent-generator/
+
+The license for that script is as follows:
+
+"THE BEER-WARE LICENSE" (Revision 42):
+
+<pusic93@gmail.com> wrote this file. As long as you retain this notice you can do whatever you want with this stuff.
+If we meet some day, and you think this stuff is worth it, you can buy me a beer in return. Luka Pusic
+*/
+
+function rnd(a, b) {
+    //calling rnd() with no arguments is identical to rnd(0, 100)
+    a = a || 0;
+    b = b || 100;
+
+    if (typeof b === 'number' && typeof a === 'number') {
+        //rnd(int min, int max) returns integer between min, max
+        return (function (min, max) {
+            if (min > max) {
+                throw new RangeError('expected min <= max; got min = ' + min + ', max = ' + max);
+            }
+            return Math.floor(Math.random() * (max - min + 1)) + min;
+        }(a, b));
+    }
+
+    if (Object.prototype.toString.call(a) === "[object Array]") {
+        //returns a random element from array (a), even weighting
+        return a[Math.floor(Math.random() * a.length)];
+    }
+
+    if (a && typeof a === 'object') {
+        //returns a random key from the passed object; keys are weighted by the decimal probability in their value
+        return (function (obj) {
+            var rand = rnd(0, 100) / 100, min = 0, max = 0, key, return_val;
+
+            for (key in obj) {
+                if (obj.hasOwnProperty(key)) {
+                    max = obj[key] + min;
+                    return_val = key;
+                    if (rand >= min && rand <= max) {
+                        break;
+                    }
+                    min = min + obj[key];
+                }
+            }
+
+            return return_val;
+        }(a));
+    }
+
+    throw new TypeError('Invalid arguments passed to rnd. (' + (b ? a + ', ' + b : a) + ')');
+}
+
+function randomLang() {
+    return rnd(['AB', 'AF', 'AN', 'AR', 'AS', 'AZ', 'BE', 'BG', 'BN', 'BO', 'BR', 'BS', 'CA', 'CE', 'CO', 'CS',
+                'CU', 'CY', 'DA', 'DE', 'EL', 'EN', 'EO', 'ES', 'ET', 'EU', 'FA', 'FI', 'FJ', 'FO', 'FR', 'FY',
+                'GA', 'GD', 'GL', 'GV', 'HE', 'HI', 'HR', 'HT', 'HU', 'HY', 'ID', 'IS', 'IT', 'JA', 'JV', 'KA',
+                'KG', 'KO', 'KU', 'KW', 'KY', 'LA', 'LB', 'LI', 'LN', 'LT', 'LV', 'MG', 'MK', 'MN', 'MO', 'MS',
+                'MT', 'MY', 'NB', 'NE', 'NL', 'NN', 'NO', 'OC', 'PL', 'PT', 'RM', 'RO', 'RU', 'SC', 'SE', 'SK',
+                'SL', 'SO', 'SQ', 'SR', 'SV', 'SW', 'TK', 'TR', 'TY', 'UK', 'UR', 'UZ', 'VI', 'VO', 'YI', 'ZH']);
+}
+
+function randomBrowserAndOS() {
+    var browser = rnd({
+        chrome:    .45132810566,
+        iexplorer: .27477061836,
+        firefox:   .19384170608,
+        safari:    .06186781118,
+        opera:     .01574236955
+    }),
+    os = {
+        chrome:  {win: .89,  mac: .09 , lin: .02},
+        firefox: {win: .83,  mac: .16,  lin: .01},
+        opera:   {win: .91,  mac: .03 , lin: .06},
+        safari:  {win: .04 , mac: .96  },
+        iexplorer: ['win']
+    };
+
+    return [browser, rnd(os[browser])];
+}
+
+function randomProc(arch) {
+    var procs = {
+        lin:['i686', 'x86_64'],
+        mac: {'Intel' : .48, 'PPC': .01, 'U; Intel':.48, 'U; PPC' :.01},
+        win:['', 'WOW64', 'Win64; x64']
+    };
+    return rnd(procs[arch]);
+}
+
+function randomRevision(dots) {
+    var return_val = '';
+    //generate a random revision
+    //dots = 2 returns .x.y where x & y are between 0 and 9
+    for (var x = 0; x < dots; x++) {
+        return_val += '.' + rnd(0, 9);
+    }
+    return return_val;
+}
+
+var version_string = {
+    net: function () {
+        return [rnd(1, 4), rnd(0, 9), rnd(10000, 99999), rnd(0, 9)].join('.');
+    },
+    nt: function () {
+        return rnd(5, 6) + '.' + rnd(0, 3);
+    },
+    ie: function () {
+        return rnd(7, 11);
+    },
+    trident: function () {
+        return rnd(3, 7) + '.' + rnd(0, 1);
+    },
+    osx: function (delim) {
+        return [10, rnd(5, 10), rnd(0, 9)].join(delim || '.');
+    },
+    chrome: function () {
+        return [rnd(13, 39), 0, rnd(800, 899), 0].join('.');
+    },
+    presto: function () {
+        return '2.9.' + rnd(160, 190);
+    },
+    presto2: function () {
+        return rnd(10, 12) + '.00';
+    },
+    safari: function () {
+        return rnd(531, 538) + '.' + rnd(0, 2) + '.' + rnd(0,2);
+    }
+};
+
+var browser = {
+    firefox: function firefox(arch) {
+        //https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference
+        var firefox_ver = rnd(5, 15) + randomRevision(2),
+            gecko_ver = 'Gecko/20100101 Firefox/' + firefox_ver,
+            proc = randomProc(arch),
+            os_ver = (arch === 'win') ? '(Windows NT ' + version_string.nt() + ((proc) ? '; ' + proc : '')
+            : (arch === 'mac') ? '(Macintosh; ' + proc + ' Mac OS X ' + version_string.osx()
+            : '(X11; Linux ' + proc;
+
+        return 'Mozilla/5.0 ' + os_ver + '; rv:' + firefox_ver.slice(0, -2) + ') ' + gecko_ver;
+    },
+
+    iexplorer: function iexplorer() {
+        var ver = version_string.ie();
+
+        if (ver >= 11) {
+            //http://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
+            return 'Mozilla/5.0 (Windows NT 6.' + rnd(1,3) + '; Trident/7.0; ' + rnd(['Touch; ', '']) + 'rv:11.0) like Gecko';
+        }
+
+        //http://msdn.microsoft.com/en-us/library/ie/ms537503(v=vs.85).aspx
+        return 'Mozilla/5.0 (compatible; MSIE ' + ver + '.0; Windows NT ' + version_string.nt() + '; Trident/' +
+            version_string.trident() + ((rnd(0, 1) === 1) ? '; .NET CLR ' + version_string.net() : '') + ')';
+    },
+
+    opera: function opera(arch) {
+        //http://www.opera.com/docs/history/
+        var presto_ver = ' Presto/' + version_string.presto() + ' Version/' + version_string.presto2() + ')',
+            os_ver = (arch === 'win') ? '(Windows NT ' + version_string.nt() + '; U; ' + randomLang() + presto_ver
+            : (arch === 'lin') ? '(X11; Linux ' + randomProc(arch) + '; U; ' + randomLang() + presto_ver
+            : '(Macintosh; Intel Mac OS X ' + version_string.osx() + ' U; ' + randomLang() + ' Presto/' +
+            version_string.presto() + ' Version/' + version_string.presto2() + ')';
+
+        return 'Opera/' + rnd(9, 14) + '.' + rnd(0, 99) + ' ' + os_ver;
+    },
+
+    safari: function safari(arch) {
+        var safari = version_string.safari(),
+            ver = rnd(4, 7) + '.' + rnd(0,1) + '.' + rnd(0,10),
+            os_ver = (arch === 'mac') ? '(Macintosh; ' + randomProc('mac') + ' Mac OS X '+ version_string.osx('_') + ' rv:' + rnd(2, 6) + '.0; '+ randomLang() + ') '
+            : '(Windows; U; Windows NT ' + version_string.nt() + ')';
+
+        return 'Mozilla/5.0 ' + os_ver + 'AppleWebKit/' + safari + ' (KHTML, like Gecko) Version/' + ver + ' Safari/' + safari;
+    },
+
+    chrome: function chrome(arch) {
+        var safari = version_string.safari(),
+            os_ver = (arch === 'mac') ? '(Macintosh; ' + randomProc('mac') + ' Mac OS X ' + version_string.osx('_') + ') '
+            : (arch === 'win') ? '(Windows; U; Windows NT ' + version_string.nt() + ')'
+            : '(X11; Linux ' + randomProc(arch);
+
+        return 'Mozilla/5.0 ' + os_ver + ' AppleWebKit/' + safari + ' (KHTML, like Gecko) Chrome/' + version_string.chrome() + ' Safari/' + safari;
+    }
+};
+
+exports.generate = function generate() {
+    var random = randomBrowserAndOS();
+    return browser[random[0]](random[1]);
+};
+
+},{}]},{},[1])(1)
+});
\ No newline at end of file
diff --git a/vendor/ace-builds/src-min/ace.js b/vendor/ace-builds/src-min/ace.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c5d2a180c846b986443d76447a657296cd0fecf
--- /dev/null
+++ b/vendor/ace-builds/src-min/ace.js
@@ -0,0 +1,17 @@
+(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE="",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\x0b\f\r \u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim"),typeof Element!="undefined"&&!Element.prototype.remove&&Object.defineProperty(Element.prototype,"remove",{enumerable:!1,writable:!0,configurable:!0,value:function(){this.parentNode&&this.parentNode.removeChild(this)}})}),define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var r=typeof navigator=="object"?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||["other"])[0].toLowerCase(),s=r.userAgent||"",o=r.appName||"";t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=o=="Microsoft Internet Explorer"||o.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function o(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s<e.length;s++){var u=o(e[s],t,n);u&&i.push(u)}return i}var a=document.createElement(e[0]),f=e[1],l=1;f&&typeof f=="object"&&!Array.isArray(f)&&(l=2);for(var s=l;s<e.length;s++)o(e[s],a,n);return l==2&&Object.keys(f).forEach(function(e){var t=f[e];e==="class"?a.className=Array.isArray(t)?t.join(" "):t:typeof t=="function"||e=="value"?a[e]=t:e==="ref"?n&&(n[t]=a):t!=null&&a.setAttribute(e,t)}),t&&t.appendChild(a),a},t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||i,e):document.createElement(e)},t.removeChildren=function(e){e.innerHTML=""},t.createTextNode=function(e,t){var n=t?t.ownerDocument:document;return n.createTextNode(e)},t.createFragment=function(e){var t=e?e.ownerDocument:document;return t.createDocumentFragment()},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(r=t.querySelectorAll("style"))while(n<r.length)if(r[n++].id===e)return!0},t.importCssString=function(n,r,i){var s=i;if(!i||!i.getRootNode)s=document;else{s=i.getRootNode();if(!s||s==i)s=document}var o=s.ownerDocument||s;if(r&&t.hasCssString(r,s))return null;r&&(n+="\n/*# sourceURL=ace/css/"+r+" */");var u=t.createElement("style");u.appendChild(o.createTextNode(n)),r&&(u.id=r),s==o&&(s=t.getDocumentHead(o)),s.insertBefore(u,s.firstChild)},t.importCssStylsheet=function(e,n){t.buildDom(["link",{rel:"stylesheet",href:e}],t.getDocumentHead(n))},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},typeof document=="undefined"&&(t.importCssString=function(){}),t.computedStyle=function(e,t){return window.getComputedStyle(e,"")||{}},t.setStyle=function(e,t,n){e[t]!==n&&(e[t]=n)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=r.isWin?typeof window!="undefined"&&window.devicePixelRatio>=1.5:!0;if(typeof document!="undefined"){var s=document.createElement("div");t.HI_DPI&&s.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof s.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),s=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l++,i=function(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())};t.addListener(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return(""+e).replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=e("../clipboard"),a=i.isChrome<18,f=i.isIE,l=i.isChrome>63,c=400,h=e("../lib/keys"),p=h.KEY_MODS,d=i.isIOS,v=d?/\s/:/\n/,m=function(e,t){function W(){S=!0,n.blur(),n.focus(),S=!1}function V(e){e.keyCode==27&&n.value.length<n.selectionStart&&(y||(x=n.value),T=N=-1,A()),X()}function J(){clearTimeout($),$=setTimeout(function(){w&&(n.style.cssText=w,w=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()},0)}function Q(e,t,n){var r=null,i=!1;n.addEventListener("keydown",function(e){r&&clearTimeout(r),i=!0},!0),n.addEventListener("keyup",function(e){r=setTimeout(function(){i=!1},100)},!0);var s=function(e){if(document.activeElement!==n)return;if(i||y||t.$mouseHandler.isMousePressed)return;if(m)return;var r=n.selectionStart,s=n.selectionEnd,o=null,u=0;if(r==0)o=h.up;else if(r==1)o=h.home;else if(s>N&&x[s]=="\n")o=h.end;else if(r<T&&x[r-1]==" ")o=h.left,u=p.option;else if(r<T||r==T&&N!=T&&r==s)o=h.left;else if(s>N&&x.slice(0,s).split("\n").length>2)o=h.down;else if(s>N&&x[s-1]==" ")o=h.right,u=p.option;else if(s>N||s==N&&N!=T&&r==s)o=h.right;r!==s&&(u|=p.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=h.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}T=r,N=s,A("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var m=!1,g=!1,y=!1,b=!1,w="";i.isMobile||(n.style.fontSize="1px");var E=!1,S=!1,x="",T=0,N=0,C=0;try{var k=document.activeElement===n}catch(L){}r.addListener(n,"blur",function(e){if(S)return;t.onBlur(e),k=!1}),r.addListener(n,"focus",function(e){if(S)return;k=!0;if(i.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),i.isEdge?setTimeout(A):A()}),this.$focusScroll=!1,this.focus=function(){if(w||l||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=n.getBoundingClientRect().top!=0}catch(r){return}var i=[];if(t){var s=n.parentElement;while(s&&s.nodeType==1)i.push(s),s.setAttribute("ace_nocontext",!0),!s.parentElement&&s.getRootNode?s=s.getRootNode().host:s=s.parentElement}n.focus({preventScroll:!0}),t&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return k},t.on("beforeEndOperation",function(){if(t.curOp&&t.curOp.command.name=="insertstring")return;y&&(x=n.value="",z()),A()});var A=d?function(e){if(!k||m&&!e||b)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=x=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(T!=i||N!=s)&&n.setSelectionRange(i,s),T=i,N=s}:function(){if(y||b)return;if(!k&&!D)return;y=!0;var e=t.selection,r=e.getRange(),i=e.cursor.row,s=r.start.column,o=r.end.column,u=t.session.getLine(i);if(r.start.row!=i){var a=t.session.getLine(i-1);s=r.start.row<i-1?0:s,o+=a.length+1,u=a+"\n"+u}else if(r.end.row!=i){var f=t.session.getLine(i+1);o=r.end.row>i+1?f.length:o,o+=u.length+1,u=u+"\n"+f}u.length>c&&(s<c&&o<c?u=u.slice(0,c):(u="\n",s=0,o=1));var l=u+"\n\n";l!=x&&(n.value=x=l,T=N=l.length),D&&(T=n.selectionStart,N=n.selectionEnd);if(N!=o||T!=s||n.selectionEnd!=N)try{n.setSelectionRange(s,o),T=s,N=o}catch(h){}y=!1};k&&t.onFocus();var O=function(e){return e.selectionStart===0&&e.selectionEnd>=x.length&&e.value===x&&x&&e.selectionEnd!==N},M=function(e){if(y)return;m?m=!1:O(n)&&(t.selectAll(),A())},_=null;this.setInputHandler=function(e){_=e},this.getInputHandler=function(){return _};var D=!1,P=function(e,r){D&&(D=!1);if(g)return A(),e&&t.onPaste(e),g=!1,"";var i=n.selectionStart,s=n.selectionEnd,o=T,u=x.length-N,a=e,f=e.length-i,l=e.length-s,c=0;while(o>0&&x[c]==e[c])c++,o--;a=a.slice(c),c=1;while(u>0&&x.length-c>T-1&&x[x.length-c]==e[e.length-c])c++,u--;f-=c-1,l-=c-1;var h=a.length-c+1;return h<0&&(o=-h,h=0),a=a.slice(0,h),!r&&!a&&!f&&!o&&!u&&!l?"":(b=!0,a&&!o&&!u&&!f&&!l||E?t.onTextInput(a):t.onTextInput(a,{extendLeft:o,extendRight:u,restoreStart:f,restoreEnd:l}),b=!1,x=e,T=i,N=s,C=l,a)},H=function(e){if(y)return U();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=P(r,!0);(r.length>c+100||v.test(i))&&A()},B=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||a)return;var i=f||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return B(e,t,!0)}},j=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);B(e,s)?(d&&(A(s),m=s,setTimeout(function(){m=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(m=!0,n.value=s,n.select(),setTimeout(function(){m=!1,A(),i?t.onCut():t.onCopy()}))},F=function(e){j(e,!0)},I=function(e){j(e,!1)},q=function(e){var s=B(e);if(u.pasteCancelled())return;typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(A),r.preventDefault(e)):(n.value="",g=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",M),r.addListener(n,"input",H),r.addListener(n,"cut",F),r.addListener(n,"copy",I),r.addListener(n,"paste",q),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:I(e);break;case 86:q(e);break;case 88:F(e)}});var R=function(e){if(y||!t.onCompositionStart||t.$readOnly)return;y={};if(E)return;setTimeout(U,0),t.on("mousedown",W);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,y.markerRange=r,y.selectionStart=T,t.onCompositionStart(y),y.useTextareaForIME?(n.value="",x="",T=0,N=0):(n.msGetInputContext&&(y.context=n.msGetInputContext()),n.getInputContext&&(y.context=n.getInputContext()))},U=function(){if(!y||!t.onCompositionUpdate||t.$readOnly)return;if(E)return W();if(y.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;P(e),y.markerRange&&(y.context&&(y.markerRange.start.column=y.selectionStart=y.context.compositionStartOffset),y.markerRange.end.column=y.markerRange.start.column+N-y.selectionStart+C)}},z=function(e){if(!t.onCompositionEnd||t.$readOnly)return;y=!1,t.onCompositionEnd(),t.off("mousedown",W),e&&H()},X=o.delayedCall(U,50).schedule.bind(null,null);r.addListener(n,"compositionstart",R),r.addListener(n,"compositionupdate",U),r.addListener(n,"keyup",V),r.addListener(n,"keydown",X),r.addListener(n,"compositionend",z),this.getElement=function(){return n},this.setCommandMode=function(e){E=e,n.readOnly=!1},this.setReadOnly=function(e){E||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){D=!0,A(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){w||(w=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+(i.isIE?"opacity:0.1;":"")+"text-indent: -"+(T+N)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){s.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout($),i.isWin&&r.capture(t.container,h,J)},this.onContextMenuClose=J;var $,K=function(e){t.textInput.onContextMenu(e),J()};r.addListener(n,"mouseup",K),r.addListener(n,"mousedown",function(e){e.preventDefault(),J()}),r.addListener(t.renderer.scroller,"contextmenu",K),r.addListener(n,"contextmenu",K),d&&Q(e,t,n)};t.TextInput=m}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function o(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select")},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i<s&&(o=(o+n.vx)/2,u=(u+n.vy)/2);var a=Math.abs(o/u),f=!1;a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed<s){var l=Math.abs(o)<=1.5*Math.abs(n.vx)&&Math.abs(u)<=1.5*Math.abs(n.vy);l?(f=!0,n.allowed=r):n.allowed=0}n.t=r,n.vx=o,n.vy=u;if(f)return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(o.prototype),t.DefaultHandlers=o}),define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(s.prototype),t.Tooltip=s}),define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/dom");t.addTouchListeners=function(e,t){function y(){var e=window.navigator&&window.navigator.clipboard,r=!1,s=function(){var n=t.getCopyText(),s=t.session.getUndoManager().hasUndo();g.replaceChild(i.buildDom(r?["span",!n&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],["span",{"class":"ace_mobile-button",action:"find"},"Find"],["span",{"class":"ace_mobile-button",action:"openCommandPallete"},"Pallete"]]:["span"]),g.firstChild)},o=function(n){var i=n.target.getAttribute("action");if(i=="more"||!r)return r=!r,s();if(i=="paste")e.readText().then(function(e){t.execCommand(i,e)});else if(i){if(i=="cut"||i=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(i)}g.firstChild.style.display="none",r=!1,i!="openCommandPallete"&&t.focus()};g=i.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function b(){g||y();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.container.getBoundingClientRect();g.style.top=n.pageY-r.top-3+"px",g.style.right="10px",g.style.display="",g.firstChild.style.display="none",t.on("input",w)}function w(e){g&&(g.style.display="none"),t.off("input",w)}function E(){f=null,clearTimeout(f);var e=t.selection.getRange(),r=e.contains(h.row,h.column);if(e.isEmpty()||!r)t.selection.moveToPosition(h),t.selection.selectWord();n="wait",b()}function S(){f=null,clearTimeout(f),t.selection.moveToPosition(h);var e=p>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function x(){c+=60,l=setInterval(function(){c--<=0&&(clearInterval(l),l=null),Math.abs(d)<.01&&(d=0),Math.abs(v)<.01&&(v=0),c<20&&(d=.9*d),c<20&&(v=.9*v);var e=t.session.getScrollTop();t.renderer.scrollBy(10*d,10*v),e==t.session.getScrollTop()&&(c=0)},10)}var n="scroll",s,o,u,a,f,l,c=0,h,p=0,d=0,v=0,m,g;e.addEventListener("contextmenu",function(e){if(!m)return;var n=t.textInput.getElement();n.focus()}),e.addEventListener("touchstart",function(e){var i=e.touches;if(f||i.length>1){clearTimeout(f),f=null,u=-1,n="zoom";return}m=t.$mouseHandler.isMousePressed=!0;var l=t.renderer.layerConfig.lineHeight,g=t.renderer.layerConfig.lineHeight,y=e.timeStamp;a=y;var b=i[0],w=b.clientX,x=b.clientY;Math.abs(s-w)+Math.abs(o-x)>l&&(u=-1),s=e.clientX=w,o=e.clientY=x,d=v=0;var T=new r(e,t);h=T.getDocumentPosition();if(y-u<500&&i.length==1&&!c)p++,e.preventDefault(),e.button=0,S();else{p=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=function(e,t){return e/=g,t=t/l-.75,e*e+t*t};if(e.clientX<A.left){n="zoom";return}var M=O(e.clientX-A.left-k.left,e.clientY-A.top-k.top),_=O(e.clientX-A.left-L.left,e.clientY-A.top-L.top);M<3.5&&_<3.5&&(n=M>_?"cursor":"anchor"),_<3.5?n="anchor":M<3.5?n="cursor":n="scroll",f=setTimeout(E,450)}u=y}),e.addEventListener("touchend",function(e){m=t.$mouseHandler.isMousePressed=!1,l&&clearInterval(l),n=="zoom"?(n="",c=0):f?(t.selection.moveToPosition(h),c=0,b()):n=="scroll"?(x(),e.preventDefault(),w()):b(),clearTimeout(f),f=null}),e.addEventListener("touchmove",function(e){f&&(clearTimeout(f),f=null);var i=e.touches;if(i.length>1||n=="zoom")return;var u=i[0],l=s-u.clientX,c=o-u.clientY;if(n=="wait"){if(!(l*l+c*c>4))return e.preventDefault();n="cursor"}s=u.clientX,o=u.clientY,e.clientX=u.clientX,e.clientY=u.clientY;var h=e.timeStamp,p=h-a;a=h;if(n=="scroll"){var m=new r(e,t);m.speed=1,m.wheelX=l,m.wheelY=c,10*Math.abs(l)<Math.abs(c)&&(l=0),10*Math.abs(c)<Math.abs(l)&&(c=0),p!=0&&(d=l/p,v=c/p),t._emit("mousewheel",m),m.propagationStopped||(d=v=0)}else{var g=new r(e,t),y=g.getDocumentPosition();n=="cursor"?t.selection.moveCursorToPosition(y):n=="anchor"&&t.selection.setSelectionAnchor(y.row,y.column),t.renderer.scrollCursorIntoView(y),e.preventDefault()}})}}),define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)});if(!t)return new Promise(function(e){t=e})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t)r&&this.setDefaultHandler(e,r.pop());else if(r){var i=r.indexOf(t);i!=-1&&r.splice(i,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};if(!e){var n=this.$options;e=Object.keys(n).filter(function(e){return!n[e].hidden})}else Array.isArray(e)||(t=e,e=Object.keys(t));return e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][t])break;if(!this.$defaultOptions[e][t])return!1}var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function l(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,l=f.getElementsByTagName("script");for(var h=0;h<l.length;h++){var p=l[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[c(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function c(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(a.hasOwnProperty(e))a[e]=t;else if(this.setDefaultValue("",e,t)==0)throw new Error("Unknown config key: "+e)},t.all=function(){return r.copyObject(a)},t.$modes={},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a),f()};var f=function(){!a.basePath&&!a.workerPath&&!a.modePath&&!a.themePath&&!Object.keys(a.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),f=function(){})};t.init=l,t.version="1.4.7"}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/mouse/touch_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("./touch_handler").addTouchListeners,l=e("../config"),c=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),f(e.container,e);var l=e.renderer.$gutter;r.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(l,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor,s=this.editor.renderer;s.$isMousePressed=!0;var o=this,a=function(e){if(!e)return;if(i.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new u(e,o.editor),o.$mouseMoved=!0},f=function(e){n.off("beforeEndOperation",c),clearInterval(h),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",o.isMousePressed=s.$isMousePressed=!1,s.$keepTextAreaAtCursor&&s.$moveTextAreaToCursor(),o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e),n.endOperation()},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){f(e)});var c=function(e){if(!o.releaseMouse)return;n.curOp.command.name&&n.curOp.selectionChanged&&(o[o.state+"End"]&&o[o.state+"End"](),o.state="",o.releaseMouse())};n.on("beforeEndOperation",c),n.startOperation({command:{name:"mouse"}}),o.$onCaptureMouseMove=a,o.releaseMouse=r.capture(this.editor.container,a,f);var h=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(c.prototype),l.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";function i(e){e.on("click",function(t){var n=t.getDocumentPosition(),i=e.session,s=i.getFoldAt(n.row,n.column,1);s&&(t.getAccelKey()?i.removeFold(s):i.expandFold(s),t.stop());var o=t.domEvent&&t.domEvent.target;o&&r.hasCssClass(o,"ace_inline_button")&&r.hasCssClass(o,"ace_toggle_wrap")&&(i.setOption("wrap",!i.getUseWrapMode()),e.renderer.scrollCursorIntoView())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}var r=e("../lib/dom");t.FoldHandler=i}),define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);return this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){return this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){"use strict";function F(e,t,n,r){var i=s?d:p,c=null,h=null,v=null,m=0,g=null,y=null,b=-1,w=null,E=null,T=[];if(!r)for(w=0,r=[];w<n;w++)r[w]=R(e[w]);o=s,u=!1,a=!1,f=!1,l=!1;for(E=0;E<n;E++){c=m,T[E]=h=q(e,r,T,E),m=i[c][h],g=m&240,m&=15,t[E]=v=i[m][5];if(g>0)if(g==16){for(w=b;w<E;w++)t[w]=1;b=-1}else b=-1;y=i[m][6];if(y)b==-1&&(b=E);else if(b>-1){for(w=b;w<E;w++)t[w]=v;b=-1}r[E]==S&&(t[E]=0),o|=v}if(l)for(w=0;w<n;w++)if(r[w]==x){t[w]=s;for(var C=w-1;C>=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o<e)return;if(e==1&&s==m&&!f){n.reverse();return}var r=n.length,i=0,u,a,l,c;while(i<r){if(t[i]>=e){u=i+1;while(u<r&&t[u]>=e)u++;for(a=i,l=u-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;i=u}i++}}function q(e,t,n,r){var i=t[r],o,c,h,p;switch(i){case g:case y:u=!1;case E:case w:return i;case b:return u?w:b;case T:return u=!0,a=!0,y;case N:return E;case C:if(r<1||r+1>=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+1<t.length&&t[r+1]==b)return b;return E;case L:if(r>0&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p<h&&t[p]==L)p++;if(p<h&&t[p]==b)return b;return E;case A:h=t.length,p=r+1;while(p<h&&t[p]==A)p++;if(p<h){var d=e[r],v=d>=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;f<o.length;o[f]=f,f++);I(2,a,o),I(1,a,o);for(var f=0;f<o.length-1;f++)n[f]===w?a[f]=t.AN:a[f]===y&&(n[f]>T&&n[f]<O||n[f]===E||n[f]===H)?a[f]=t.ON_R:f>0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f<o.length;f++)u[f]=a[o[f]];return{logicalFromVisual:o,bidiLevels:u}},t.hasBidiCharacters=function(e,t){var n=!1;for(var r=0;r<e.length;r++)t[r]=R(e.charAt(r)),!n&&(t[r]==y||t[r]==T||t[r]==w)&&(n=!0);return n},t.getVisualFromLogicalIdx=function(e,t){for(var n=0;n<t.logicalFromVisual.length;n++)if(t.logicalFromVisual[n]==e)return n;return 0}}),define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(e,t,n){"use strict";var r=e("./lib/bidiutil"),i=e("./lib/lang"),s=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,o=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=r,this.charWidths=[],this.EOL="\u00ac",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="\u00b6",this.RLE="\u202b",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=s.test(e.getValue())};(function(){this.isBidiRow=function(e,t,n){return this.seenBidi?(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(e){this.seenBidi?this.currentRow=null:e.action=="insert"&&s.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n=this.session.$getRowCacheIndex(t,this.currentRow);n>=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=t<o.length?this.line.substring(o[t-1],o[t]):this.line.substring(o[o.length-1])):this.line=this.line.substring(0,o[t])),t==o.length&&(this.line+=this.showInvisibles?s:r.DOT)}else this.line+=this.showInvisibles?s:r.DOT;var u=this.session,a=0,f;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(e,t){return e==="	"||u.isFullWidth(e.charCodeAt(0))?(f=e==="	"?u.getScreenTabSize(t+a):2,a+=f-1,i.stringRepeat(r.DOT,f)):e}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==r.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},this.updateBidiMap=function(){var e=[];r.hasBidiCharacters(this.line,e)||this.isRtlDir?this.bidiMap=r.doBidiReorder(this.line,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(this.characterWidth===e.$characterSize.width)return;this.fontMetrics=e;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth("\u05d4");this.charWidths[r.L]=this.charWidths[r.EN]=this.charWidths[r.ON_R]=t,this.charWidths[r.R]=this.charWidths[r.AN]=n,this.charWidths[r.R_H]=n*.45,this.charWidths[r.B]=this.charWidths[r.RLE]=0,this.currentRow=null},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setContentWidth=function(e){this.contentWidth=e},this.isRtlLine=function(e){return this.$isRtl?!0:e!=undefined?this.session.getLine(e).charAt(0)==this.RLE:this.isRtlDir},this.setRtlDirection=function(e,t){var n=e.getCursorPosition();for(var r=e.selection.getSelectionAnchor().row;r<=n.row;r++)!t&&e.session.getLine(r).charAt(0)===e.session.$bidiHandler.RLE?e.session.doc.removeInLine(r,0,1):t&&e.session.getLine(r).charAt(0)!==e.session.$bidiHandler.RLE&&e.session.doc.insert({column:0,row:r},e.session.$bidiHandler.RLE)},this.getPosLeft=function(e){e-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,n=e>t?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;u<i;u++)o+=this.charWidths[s[u]];return!this.session.getOverwrite()&&e>t&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},this.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p<r.length;p++)h=n.logicalFromVisual[p],i=r[p],f=h>=u&&h<a,f&&!l?c=o:!f&&l&&s.push({left:c,width:o-c}),o+=this.charWidths[i],l=f;f&&p===r.length&&s.push({left:c,width:o-c});if(this.isRtlDir)for(var d=0;d<s.length;d++)s[d].left+=this.rtlLineOffset;return s},this.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,e=Math.max(e,0),n=0,r=0,i=this.bidiMap.bidiLevels,s=this.charWidths[i[r]];this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);while(e>n+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e<n&&r--,t=this.bidiMap.logicalFromVisual[r]):r>0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(o.prototype),t.BidiHandler=o}),define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.wouldMoveIntoSoftTab(e,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(r)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(s)&&(t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0);if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var i=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&i.row===this.lead.row&&i.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[i.row]&&(i.row>0||e>0)&&i.row++,this.moveCursorTo(i.row,i.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=500),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:a.include;p&&(Array.isArray(p)?f=p.map(function(e){return r[e]}):f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var T=l[f.column-2];if(!(d!=o||T!=o&&!E.test(T)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o<r.length;o+=2)s.push(i+=r[o]),r[o+1]&&s.push(45,i+=r[o+1]);t.wordChars=String.fromCharCode.apply(null,s)}),define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../config"),i=e("../tokenizer").Tokenizer,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,u=e("../unicode"),a=e("../lib/lang"),f=e("../token_iterator").TokenIterator,l=e("../range").Range,c=function(){this.HighlightRules=s};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+u.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+u.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,u=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+a.escapeRegExp(c)+")"),d=new RegExp("(?:"+a.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:u},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(a.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=a.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,u,u)?i.insertInLine({row:t,column:u},y):i.insertInLine({row:t,column:u},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<u&&(u=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<o.length;t++)(function(e){var n=o[t],r=e[n];e[o[t]]=function(){return this.$delegator(n,arguments,r)}})(this)},this.$delegator=function(e,t,n){var r=t[0]||"start";if(typeof r!="string"){if(Array.isArray(r[2])){var i=r[2][r[2].length-1],s=this.$modes[i];if(s)return s[e].apply(s,[r[1]].concat([].slice.call(t,1)))}r=r[0]||"start"}for(var o=0;o<this.$embeds.length;o++){if(!this.$modes[this.$embeds[o]])continue;var u=r.split(this.$embeds[o]);if(!u[0]&&u[1]){t[0]=u[1];var s=this.$modes[this.$embeds[o]];return s[e].apply(s,t)}}var a=n.apply(this,t);return n?a:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(c.prototype),t.Mode=c}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:e+n[s-1].length+r}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push("  "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[],this.$bias=1};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){var t=e.start,n=e.end,r=t.row,i=n.row,s=this.ranges;for(var o=0,u=s.length;o<u;o++){var a=s[o];if(a.end.row>=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;o<u;o++){var a=s[o];if(a.start.row>r)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&o<u-1&&a.end.column>a.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;o<u;o++){var a=s[o];if(a.start.row>i)break;if(a.end.row<i&&(r<a.end.row||r==a.end.row&&t.column<a.end.column))a.end.row=r,a.end.column=t.column;else if(a.end.row==i)if(a.end.column<=n.column){if(f||a.end.column>t.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.row<i&&(r<a.start.row||r==a.start.row&&t.column<a.start.column))a.start.row=r,a.start.column=t.column;else if(a.start.row==i)if(a.start.column<=n.column){if(f||a.start.column>t.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o<u)for(;o<u;o++){var a=s[o];a.start.row+=f,a.end.row+=f}}}).call(s.prototype),t.RangeList=s}),define("ace/edit_session/fold",["require","exports","module","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function o(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function u(e,t){o(e.start,t),o(e.end,t)}function a(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function f(e,t){a(e.start,t),a(e.end,t)}var r=e("../range_list").RangeList,i=e("../lib/oop"),s=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};i.inherits(s,r),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new s(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;u(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r],o=0;if(i==0){if(s.range.containsRange(e))return s.addSubFold(e);o=1}var t=e.range.end.row,n=e.range.end.column;for(var a=r,i=-1;a<this.subFolds.length;a++){i=this.subFolds[a].range.compare(t,n);if(i!=1)break}i==0&&a++;var f=this.subFolds.splice(r,a-r,e),l=i==0?f.length-1:f.length;for(var c=o;c<l;c++)e.addSubFold(f[c]);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return f(e,this.start)}}.call(s.prototype)}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s].range;if(o.contains(e,t)){if(n==1&&o.isEnd(e,t)&&!o.isEmpty())continue;if(n==-1&&o.isStart(e,t)&&!o.isEmpty())continue;return i[s]}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken(),u=s.type;if(s&&/^comment|string/.test(u)){u=u.match(/comment|string/)[0],u=="comment"&&(u+="|doc-start");var a=new RegExp(u),f=new r;if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){var l=-1;do{s=i.stepForward();if(l==-1){var c=this.getState(i.$row);a.test(c)||(l=i.$row)}else if(i.$row>l)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++d.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new c(e);this.setDocument(e),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};d.$uid=0,function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&(t&&t.length&&(this.$undoManager.add({action:"removeFolds",folds:t},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(e,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null){var s=n.length-1;i=this.getLine(e).length}else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"	"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker")},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new l(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new l(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes=o.$modes,this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new f);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,o.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new h(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){o.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;n<e.length;n++){var r=e[n];(r.action=="insert"||r.action=="remove")&&this.doc.applyDelta(r)}!t&&this.$undoSelect&&(e.selectionAfter?this.selection.fromJSON(e.selectionAfter):this.selection.setRange(this.$getUndoSelection(e,!1))),this.$fromUndo=!1},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t){function n(e){return t?e.action!=="insert":e.action==="insert"}var r,i,s;for(var o=0;o<e.length;o++){var u=e[o];if(!u.start)continue;if(!r){n(u)?(r=l.fromPoints(u.start,u.end),s=!0):(r=l.fromPoints(u.start,u.start),s=!1);continue}n(u)?(i=u.start,r.compare(i.row,i.column)==-1&&r.setStart(i),i=u.end,r.compare(i.row,i.column)==1&&r.setEnd(i),s=!0):(i=u.start,r.compare(i.row,i.column)==-1&&(r=l.fromPoints(u.start,u.start)),s=!1)}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=l.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)=="	"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;f<u.length;f++)u[f]=s}else u=this.$getDisplayTokens(r[t].substring(o,i),a.length);a=a.concat(u)}.bind(this),f.end.row,r[f.end.row].length+1),o[f.start.row]=this.$computeWrapSplits(a,u,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),o[l]=this.$computeWrapSplits(a,u,i),l++)};var e=1,t=2,n=3,s=4,a=9,c=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(p)for(var n=0;n<e.length;n++){var r=e[n];if(r==c)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return h&&p!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=t-f;for(var r=f;r<t;r++){var i=e[r];if(i===12||i===2)n-=1}o.length||(b=g(),o.indent=b),l+=n,o.push(l),f=t}if(e.length==0)return[];var o=[],u=e.length,f=0,l=0,h=this.$wrapAsCode,p=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||p===!1?0:Math.floor(r/2),b=0;while(u-f>r-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w<e.length;w++)if(e[w]!=s)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),f-1);while(w>E&&e[w]<n)w--;if(h){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==a)w--}else while(w>E&&e[w]<c)w--;if(w>E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var f=1;f<s;f++)i.push(v)}else u==32?i.push(c):u>39&&u<48||u>57&&u<64?i.push(a):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-(e%this.$tabSize|0)},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var r,i=0,s=0,o,u=0,a=0,f=this.$screenRowCache,l=this.$getRowCacheIndex(f,e),c=f.length;if(c&&l>=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i==="	"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=m}.call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return r},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=t.backwards==1,i=t.skipCurrent!=0,s=t.range,o=t.start;o||(o=s?s[r?"end":"start"]:e.selection.getRange()),o.start&&(o=o[i!=r?"end":"start"]);var u=s?s.start.row:0,a=s?s.end.row:e.getLength()-1;if(r)var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n--;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0)return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&a<i||a===-1)return;for(var f=1;f<l;f++){u=e.getLine(o+f);if(u.search(n[f])==-1)return}var c=u.match(n[l-1])[0].length;if(r&&c>i)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"},{name:"openCommandPallete",description:"Open command pallete",bindKey:o("F1","F1"),exec:function(e){e.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:o(null,null),exec:function(e){e.prompt({$type:"modes"})},readOnly:!0}]}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/clipboard"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=e("./clipboard"),w=function(e,t,n){var r=e.getContainerElement();this.container=r,this.renderer=e,this.id="editor"+ ++w.$uid,this.commands=new v(o.isMac?"mac":"win",m),typeof document=="object"&&(this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new a(this),new f(this)),this.keyBinding=new l(this),this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new c("")),g.resetOptions(this),n&&this.setOptions(n),g._signal("editor",this)};w.$uid=0,function(){r.implement(this,d),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),t.$tagHighlight||(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.isFocused()||e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;i<r.length;i++){var s=r[i];if(i&&r[i-1].start.row==s.start.row)continue;e+=this.session.getLine(s.start.row)+t}}var o={text:e};return this._signal("copy",o),b.lineMode=n?o.text:"",o.text},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text,n=t==b.lineMode,r=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)n?r.insert({row:this.selection.lead.row,column:0},t):this.insert(t);else if(n)this.selection.rangeList.ranges.forEach(function(e){r.insert({row:e.start.row,column:0},t)});else{var i=t.split(/\r\n|\r|\n/),s=this.selection.rangeList.ranges,o=i.length==2&&(!i[0]||!i[1]);if(i.length!=s.length||o)return this.commands.exec("insertstring",this,t);for(var u=s.length;u--;){var a=s[u];a.isEmpty()||r.remove(a),r.insert(a.start,i[u])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),e=s.text)}e=="	"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()&&e.indexOf("\n")==-1){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},this.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},this.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r),this.session.selection.moveToPosition(i.end)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l="	"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"	")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(var r=e.first;r<=e.last;r++)n.push(t.getLine(r));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var i=new p(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}else this.toggleWord()},this.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],this.toggleWord=function(){var e=this.selection.getCursor().row,t=this.selection.getCursor().column;this.selection.selectWord();var n=this.getSelectedText(),r=this.selection.getWordRange().start.column,i=n.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),o=t-r-1;o<0&&(o=0);var u=0,a=0,f=this;n.match(/[A-Za-z0-9_]+/)&&i.forEach(function(t,i){a=u+t.length,o>=u&&o<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h<l.length;h++){var p=l[h];for(var d=0;d<=1;d++){var v=+!d,m=n.match(new RegExp("^\\s?_?("+s.escapeRegExp(p[d])+")\\s?$","i"));if(m){var g=n.match(new RegExp("([_]|^|\\s)("+s.escapeRegExp(m[1])+")($|\\s)","g"));g&&(c=n.replace(new RegExp(s.escapeRegExp(p[d]),"i"),function(e){var t=p[v];return e.toUpperCase()==e?t=t.toUpperCase():e.charAt(0).toUpperCase()==e.charAt(0)&&(t=t.substr(0,0)+p[v].charAt(0).toUpperCase()+t.substr(1)),t}),this.insert(c),c="")}}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},this.prompt=function(e,t,n){var r=this;g.loadModule("./ext/prompt",function(i){i.prompt(r,e,t,n)})}}.call(w.prototype),g.defineOptions(w.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.renderer.$composition||this.getValue();if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),i.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),i.addCssClass(this.container,"ace_hasPlaceholder");var t=i.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=w}),define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n<t-1){var i=d(e[n],e[n+1]);e[n]=i[0],e[n+1]=i[1],n++}return!0}}}function a(e){var t=e.action=="insert",n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),s=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var o in this.marks){var a=this.marks[o],f=u(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:u(a,r);if(l>0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+="	("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r<t.length;r++)if(!p(e[n],t[r])){while(n<e.length){while(r--)p(t[r],e[n]);r=t.length,n++}return[e,t]}return e.selectionBefore=t.selectionBefore=e.selectionAfter=t.selectionAfter=null,[t,e]}function v(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)o(e.start,t.start)<0?m(t,e,1):m(e,t,1);else if(n&&!r)o(e.start,t.end)>=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i],o=v(s,t);t=o[0],o.length!=2&&(o[2]?(r.splice(i+1,1,o[1],o[2]),i++):o[1]||(r.splice(i,1),i--))}r.length||e.splice(n,1)}return e}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];for(var i=0;i<r.length;i++)b(e,r[i])}}var r=function(){this.$maxRev=0,this.$fromUndo=!1,this.reset()};(function(){this.addSession=function(e){this.$session=e},this.add=function(e,t,n){if(this.$fromUndo)return;if(e==this.$lastDelta)return;if(t===!1||!this.lastDeltas)this.lastDeltas=[],this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev;if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id<t&&(i.ignore=!0)}this.lastDeltas=null},this.getSelection=function(e,t){var n=this.selections;for(var r=n.length;r--;){var i=n[r];if(i.rev<e)return t&&(i=n[r+1]),i}},this.getRevision=function(){return this.$rev},this.getDeltas=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack,r=null,i=0;for(var s=n.length;s--;){var o=n[s][0];o.id<t&&!r&&(r=s+1);if(o.id<=e){i=s+1;break}}return n.slice(i,r)},this.getChangedRanges=function(e,t){t==null&&(t=this.$rev+1)},this.getChangedLines=function(e,t){t==null&&(t=this.$rev+1)},this.undo=function(e,t){this.lastDeltas=null;var n=this.$undoStack;if(!i(n,n.length))return;e||(e=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var r=n.pop(),s=null;return r&&r.length&&(s=e.undoChanges(r,t),this.$redoStack.push(r),this.$syncRev()),this.$fromUndo=!1,s},this.redo=function(e,t){this.lastDeltas=null,e||(e=this.$session),this.$fromUndo=!0;if(this.$redoStackBaseRev!=this.$rev){var n=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);w(this.$redoStack,n),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(e){e[0].id=++this.$maxRev},this)}var r=this.$redoStack.pop(),i=null;return r&&(i=e.redoChanges(r,t),this.$undoStack.push(r),this.$syncRev()),this.$fromUndo=!1,i},this.$syncRev=function(){var e=this.$undoStack,t=e[e.length-1],n=t&&t[0].id||0;this.$redoStackBaseRev=n,this.$rev=n},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)}}).call(r.prototype);var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},this.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},this.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},this.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLength(e)},this.getLength=function(){return this.cells.length},this.get=function(e){return this.cells[e]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.appendChild(t)}else this.cells.push(e),this.element.appendChild(e.element)},this.unshift=function(e){if(Array.isArray(e)){this.cells.unshift.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.firstChild?this.element.insertBefore(t,this.element.firstChild):this.element.appendChild(t)}else this.cells.unshift(e),this.element.insertAdjacentElement("afterbegin",e.element)},this.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},this.$cacheCell=function(e){if(!e)return;e.element.remove(),this.cellCache.push(e)},this.createCell=function(e,t,n,i){var s=this.cellCache.pop();if(!s){var o=r.createElement("div");i&&i(o),this.element.appendChild(o),s={element:o,text:"",row:e}}return s.row=e,s}}).call(i.prototype),t.Lines=i}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines"],function(e,t,n){"use strict";function f(e){var t=document.createTextNode("");e.appendChild(t);var n=r.createElement("span");return e.appendChild(n),e}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=e("./lines").Lines,a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new u(this.element),this.$lines.$offsetCoefficient=1};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){this.config=e;var t=this.session,n=e.firstRow,r=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1);this.oldLastRow=r,this.config=e,this.$lines.moveContainer(e),this.$updateCursorRow();var i=t.getNextFoldLine(n),s=i?i.start.row:Infinity,o=null,u=-1,a=n;for(;;){a>s&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,f),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},this.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},this.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n<t.length;n++){var r=t[n];if(r.row>=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},this.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLines(e,e.firstRow,t.firstRow-1)),n>r&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,f);this.$renderCell(u,e,s,i),r.push(u),i++}return r},this.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],a=s.childNodes[1],f=o.$firstLineNumber,l=o.$breakpoints,c=o.$decorations,h=o.gutterRenderer||this.$renderer,p=this.$showFoldWidgets&&o.foldWidgets,d=n?n.start.row:Number.MAX_VALUE,v="ace_gutter-cell ";this.$highlightGutterLine&&(i==this.$cursorRow||n&&i<this.$cursorRow&&i>=d&&this.$cursorRow<=n.end.row)&&(v+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),l[i]&&(v+=l[i]),c[i]&&(v+=c[i]),this.$annotations[i]&&(v+=this.$annotations[i].className),s.className!=v&&(s.className=v);if(p){var m=p[i];m==null&&(m=p[i]=o.getFoldWidget(i))}if(m){var v="ace_fold-widget ace_"+m;m=="start"&&i==d&&i<n.end.row?v+=" ace_closed":v+=" ace_open",a.className!=v&&(a.className=v);var g=t.lineHeight+"px";r.setStyle(a.style,"height",g),r.setStyle(a.style,"display","inline-block")}else a&&r.setStyle(a.style,"display","none");var y=(h?h.getText(o,i):i+f).toString();return y!==u.data&&(u.data=y),r.setStyle(e.element.style,"height",this.$lines.computeLineHeight(i,t,o)+"px"),r.setStyle(e.element.style,"top",this.$lines.computeLineTop(i,t,o)+"px"),e.text=y,e},this.$fixedWidth=!1,this.$highlightGutterLine=!0,this.$renderer="",this.setHighlightGutterLine=function(e){this.$highlightGutterLine=e},this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return 0},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.paddingLeft)||0)+1,this.$padding.right=(parseInt(e.borderRightWidth)||0)+(parseInt(e.paddingRight)||0),this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(a.prototype),t.Gutter=a}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},this.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.i<this.element.childElementCount)this.element.removeChild(this.element.lastChild)},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},this.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+e.width+(i||0)+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))}}).call(s.prototype),t.Marker=s}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=function(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)if(this.showInvisibles){var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_tab",r.textContent=s.stringRepeat(this.TAB_CHAR,n),t.push(r)}else t.push(this.dom.createTextNode(s.stringRepeat(" ",n),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",o="",u="";if(this.showInvisibles){i+=" ace_invisible",o=" ace_invisible_space",u=" ace_invisible_tab";var a=s.stringRepeat(this.SPACE_CHAR,this.tabSize),f=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=s.stringRepeat(" ",this.tabSize),f=a;var r=this.dom.createElement("span");r.className=i+o,r.textContent=a,this.$tabStrings[" "]=r;var r=this.dom.createElement("span");r.className=i+u,r.textContent=f,this.$tabStrings["	"]=r}},this.updateLines=function(e,t,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var f=!1,u=r,a=this.session.getNextFoldLine(u),l=a?a.start.row:Infinity;for(;;){u>l&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o<this.$lines.cells.length){var p=this.$lines.cells[o++];p.element.style.top=this.$lines.computeLineTop(p.row,e,this.session)+"px"}},this.scrollLines=function(e){var t=this.config;this.config=e;if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=e.lastRow,r=t?t.lastRow:-1;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,t.firstRow-1)),e.lastRow>t.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),a,f=0;while(a=o.exec(r)){var l=a[1],c=a[2],h=a[3],p=a[4],d=a[5];if(!i.showInvisibles&&c)continue;var v=f!=a.index?r.slice(f,a.index):"";f=a.index+a[0].length,v&&u.appendChild(this.dom.createTextNode(v,this.element));if(l){var m=i.session.getScreenTabSize(t+a.index);u.appendChild(i.$tabStrings[m].cloneNode(!0)),t+=m-1}else if(c)if(i.showInvisibles){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space",g.textContent=s.stringRepeat(i.SPACE_CHAR,c.length),u.appendChild(g)}else u.appendChild(this.com.createTextNode(c,this.element));else if(h){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space ace_invalid",g.textContent=s.stringRepeat(i.SPACE_CHAR,h.length),u.appendChild(g)}else if(p){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",g.textContent=i.showInvisibles?i.SPACE_CHAR:p,u.appendChild(g)}else if(d){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className="ace_cjk",g.textContent=d,u.appendChild(g)}}u.appendChild(this.dom.createTextNode(f?r.slice(f):r,this.element));if(!this.$textToken[n.type]){var y="ace_"+n.type.replace(/\./g," ace_"),g=this.dom.createElement("span");n.type=="fold"&&(g.style.width=n.value.length*this.config.characterWidth+"px"),g.className=y,g.appendChild(u),e.appendChild(g)}else e.appendChild(u);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;s<i;s++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return t.substr(r)}if(t[0]=="	"){for(var s=0;s<r;s++)e.appendChild(this.$tabStrings["	"].cloneNode(!0));return t.substr(r)}return t},this.$createLineElement=function(e){var t=this.dom.createElement("div");return t.className="ace_line",t.style.height=this.config.lineHeight+"px",t},this.$renderWrappedLine=function(e,t,n){var r=0,i=0,o=n[0],u=0,a=this.$createLineElement();e.appendChild(a);for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){r=c.length,c=this.renderIndentGuide(a,c,o);if(!c)continue;r-=c.length}if(r+c.length<o)u=this.$renderToken(a,u,l,c),r+=c.length;else{while(r+c.length>=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++){r=t[s],i=r.value;if(n+i.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,r,i);n=this.$renderToken(e,n,r,i)}},this.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"<hide>":"<click to see more...>",e.appendChild(s)},this.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showInvisibles&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(a.prototype),t.Text=a}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";setTimeout(function(){r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){r.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.isCursorInView=function(e,t){return e.top>=0&&e.top<t.maxHeight},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,i=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,s=t.length;n<s;n++){var o=this.getPixelPosition(t[n].cursor,!0);if((o.top>e.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(i.prototype),t.RenderLoop=i}),define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=256,l=typeof ResizeObserver=="function",c=200,h=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.innerHTML=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,a),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){var n=t[0].contentRect;e.checkForSizeChanges({height:n.height,width:n.width/f})}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},this.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)}}).call(h.prototype)}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./layer/gutter").Gutter,u=e("./layer/marker").Marker,a=e("./layer/text").Text,f=e("./layer/cursor").Cursor,l=e("./scrollbar").HScrollBar,c=e("./scrollbar").VScrollBar,h=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,d=e("./lib/event_emitter").EventEmitter,v='.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;perspective: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);opacity: 0.7;transform-origin: left;text-indent: 10px;}',m=e("./lib/useragent"),g=m.isIE;i.importCssString(v,"ace_editor.css");var y=function(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new u(this.content);var r=this.$textLayer=new a(this.content);this.canvas=r.element,this.$markerFront=new u(this.content),this.$cursorLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new c(this.container,this),this.scrollBarH=new l(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!m.isIOS,this.$loop=new h(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,d),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight());if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME?this.lineHeight:g?0:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(n):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),this.$textLayer&&e>this.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight+u-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME=this.$useTextareaForIME,this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText,this.$composition=null,this.$cursorLayer.element.style.display=""},this.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var s={type:t,value:e},o=i.getTokens(n);if(r==null)o.push(s);else{var u=0;for(var a=0;a<o.length;a++){var f=o[a];u+=f.value.length;if(r<=u){var l=f.value.length-(u-r),c=f.value.slice(0,l),h=f.value.slice(l);o.splice(a,1,{type:f.type,value:c},s,{type:f.type,value:h});break}}}this.updateLines(n,n)},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.$id&&(n.$themeId=r.$id),i.importCssString(r.cssText,r.cssClass,n.container),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.setMouseCursor=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.attachToShadowRoot=function(){i.importCssString(v,"ace_editor.css",this.container)},this.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy()}}).call(y.prototype),s.defineOptions(y.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!m.isMobile&&!m.isIE}}),t.VirtualRenderer=y}),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);if(s(E,e)&&s(t,c.lead))return;E=e,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers()};h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),E={row:-1,column:-1};var L=function(e){k(),clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column,a=e.offsetX,f=t.offsetX;else var o=t.column,u=e.column,a=t.offsetX,f=e.offsetX;var l=e.row<t.row;if(l)var c=e.row,h=t.row;else var c=t.row,h=e.row;o<0&&(o=0),c<0&&(c=0),c==h&&(n=!0);var p;for(var d=c;d<=h;d++){var m=i.fromPoints(this.session.screenToDocumentPosition(d,o,a),this.session.screenToDocumentPosition(d,u,f));if(m.isEmpty()){if(p&&v(m.end,p))break;p=m.end}m.cursor=s?m.start:m.end,r.push(m)}l&&r.reverse();if(!n){var g=r.length-1;while(r[g].isEmpty()&&g>0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}n.fromOrientedRange(n.ranges[0])},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.session.unfold(u),this.multiSelect.addRange(u),this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o){var h=e.getTokenAt(t,0);if(!h||h.type!=="string")break}l=t}if(l>f){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.$id="ace/theme/textmate";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }","")}),define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./range").Range,o=e("./editor").Editor,u=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,f=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e,n){if(typeof e=="string"){var s=e;e=document.getElementById(s);if(!e)throw new Error("ace.edit can't find div #"+s)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var u="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;u=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(u=e.textContent,e.innerHTML="");var l=t.createEditSession(u),c=new o(new f(e),l,n),h={document:l,editor:c,onResize:c.resize.bind(c,null)};return a&&(h.textarea=a),i.addListener(window,"resize",h.onResize),c.on("destroy",function(){i.removeListener(window,"resize",h.onResize),h.editor.container.env=null}),c.container.env=c.env=h,c},t.createEditSession=function(e,t){var n=new u(e,t);return n.setUndoManager(new a),n},t.Range=s,t.Editor=o,t.EditSession=u,t.UndoManager=a,t.VirtualRenderer=f,t.version=t.config.version});            (function() {
+                window.require(["ace/ace"], function(a) {
+                    if (a) {
+                        a.config.init(true);
+                        a.define = window.define;
+                    }
+                    if (!window.ace)
+                        window.ace = a;
+                    for (var key in a) if (a.hasOwnProperty(key))
+                        window.ace[key] = a[key];
+                    window.ace["default"] = window.ace;
+                    if (typeof module == "object" && typeof exports == "object" && module) {
+                        module.exports = window.ace;
+                    }
+                });
+            })();
+        
\ No newline at end of file
diff --git a/vendor/ace-builds/src-min/mode-json.js b/vendor/ace-builds/src-min/mode-json.js
new file mode 100644
index 0000000000000000000000000000000000000000..04ffe00875c2358461d1fa72b433c85d6dd50b14
--- /dev/null
+++ b/vendor/ace-builds/src-min/mode-json.js
@@ -0,0 +1,8 @@
+define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(l.prototype),t.Mode=l});                (function() {
+                    window.require(["ace/mode/json"], function(m) {
+                        if (typeof module == "object" && typeof exports == "object" && module) {
+                            module.exports = m;
+                        }
+                    });
+                })();
+            
\ No newline at end of file
diff --git a/vendor/ace-builds/src-min/mode-yaml.js b/vendor/ace-builds/src-min/mode-yaml.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecd927fe330cad021b70adfb5d0081c0a2bc2663
--- /dev/null
+++ b/vendor/ace-builds/src-min/mode-yaml.js
@@ -0,0 +1,8 @@
+define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d]*(?:$|\s+(?:$|#))/,onMatch:function(e,t,n,r){r=r.replace(/ #.*/,"");var i=/^ *((:\s*)?-(\s*[^|>])?)?/.exec(r)[0].replace(/\S\s*$/,"").length,s=parseInt(/\d+[\s+-]*$/.exec(r));return s?(i+=s-1,this.next="mlString"):this.next="mlStringPre",n.length?(n[0]=this.next,n[1]=i):(n.push(this.next),n.push(i)),this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlStringPre:[{token:"indent",regex:/^ *$/},{token:"indent",regex:/^ */,onMatch:function(e,t,n){var r=n[1];return r>=e.length?(this.next="start",n.shift(),n.shift()):(n[1]=e.length-1,this.next=n[0]="mlString"),this.token},next:"mlString"},{defaultToken:"string"}],mlString:[{token:"indent",regex:/^ *$/},{token:"indent",regex:/^ */,onMatch:function(e,t,n){var r=n[1];return r>=e.length?(this.next="start",n.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};r.inherits(s,i),t.YamlHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./yaml_highlight_rules").YamlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./folding/coffee").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=["#"],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/yaml"}.call(a.prototype),t.Mode=a});                (function() {
+                    window.require(["ace/mode/yaml"], function(m) {
+                        if (typeof module == "object" && typeof exports == "object" && module) {
+                            module.exports = m;
+                        }
+                    });
+                })();
+            
\ No newline at end of file
diff --git a/public/v2/vendor/ace-builds/src-min/theme-github.js b/vendor/ace-builds/src-min/theme-github.js
similarity index 84%
rename from public/v2/vendor/ace-builds/src-min/theme-github.js
rename to vendor/ace-builds/src-min/theme-github.js
index 6077ea29dabe3b94a7d767ae844644c56310ae52..61390e6a0f584676acbaeaf5be56858d173ffeff 100644
--- a/public/v2/vendor/ace-builds/src-min/theme-github.js
+++ b/vendor/ace-builds/src-min/theme-github.js
@@ -1 +1,8 @@
-define("ace/theme/github",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText='.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github.ace_focus .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_active-line {background: rgb(245, 245, 245);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_invisible {color: #BFBFBF}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
+define("ace/theme/github",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText='.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github.ace_focus .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_active-line {background: rgb(245, 245, 245);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_invisible {color: #BFBFBF}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)});                (function() {
+                    window.require(["ace/theme/github"], function(m) {
+                        if (typeof module == "object" && typeof exports == "object" && module) {
+                            module.exports = m;
+                        }
+                    });
+                })();
+            
\ No newline at end of file
diff --git a/vendor/ace-builds/src-min/worker-json.js b/vendor/ace-builds/src-min/worker-json.js
new file mode 100644
index 0000000000000000000000000000000000000000..758ce1c6704537a8dbc300c68b8ef32b6909cb4d
--- /dev/null
+++ b/vendor/ace-builds/src-min/worker-json.js
@@ -0,0 +1 @@
+"no use strict";!function(e){function t(e,t){var n=e,r="";while(n){var i=t[n];if(typeof i=="string")return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var s=n.lastIndexOf("/");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!="undefined"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log("unable to load "+i);var o=t(i,e.require.tlns);return o.slice(-3)!=".js"&&(o+=".js"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.slice(0,r.length).map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require("ace/lib/es5-shim"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}}(this),define("ace/lib/oop",[],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/range",[],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/apply_delta",[],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/lib/event_emitter",[],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)});if(!t)return new Promise(function(e){t=e})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t)r&&this.setDefaultHandler(e,r.pop());else if(r){var i=r.indexOf(t);i!=-1&&r.splice(i,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/anchor",[],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",[],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:e+n[s-1].length+r}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/lib/lang",[],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return(""+e).replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/worker/mirror",[],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../document").Document,s=e("../lib/lang"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(""),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on("change",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:"insert",start:i[s],lines:i[s+1]};else var o={action:"remove",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),define("ace/mode/json/json_parse",[],function(e,t,n){"use strict";var r,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"	"},o,u=function(e){throw{name:"SyntaxError",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u("Expected '"+e+"' instead of '"+i+"'"),i=o.charAt(r),r+=1,i},f=function(){var e,t="";i==="-"&&(t="-",a("-"));while(i>="0"&&i<="9")t+=i,a();if(i==="."){t+=".";while(a()&&i>="0"&&i<="9")t+=i}if(i==="e"||i==="E"){t+=i,a();if(i==="-"||i==="+")t+=i,a();while(i>="0"&&i<="9")t+=i,a()}e=+t;if(!isNaN(e))return e;u("Bad number")},l=function(){var e,t,n="",r;if(i==='"')while(a()){if(i==='"')return a(),n;if(i==="\\"){a();if(i==="u"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!="string")break;n+=s[i]}}else{if(i=="\n"||i=="\r")break;n+=i}}u("Bad string")},c=function(){while(i&&i<=" ")a()},h=function(){switch(i){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}u("Unexpected '"+i+"'")},p,d=function(){var e=[];if(i==="["){a("["),c();if(i==="]")return a("]"),e;while(i){e.push(p()),c();if(i==="]")return a("]"),e;a(","),c()}}u("Bad array")},v=function(){var e,t={};if(i==="{"){a("{"),c();if(i==="}")return a("}"),t;while(i){e=l(),c(),a(":"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key "'+e+'"'),t[e]=p(),c();if(i==="}")return a("}"),t;a(","),c()}}u("Bad object")};return p=function(){c();switch(i){case"{":return v();case"[":return d();case'"':return l();case"-":return f();default:return i>="0"&&i<="9"?f():h()}},function(e,t){var n;return o=e,r=0,i=" ",n=p(),c(),i&&u("Syntax error"),typeof t=="function"?function s(e,n){var r,i,o=e[n];if(o&&typeof o=="object")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({"":n},""):n}}),define("ace/mode/json_worker",[],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("./json/json_parse"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),define("ace/lib/es5-shim",[],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\x0b\f\r \u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/vendor/chance/dist/chance.min.js b/vendor/chance/dist/chance.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..da9dce7cb2ac02711f515daadf852be910200d4b
--- /dev/null
+++ b/vendor/chance/dist/chance.min.js
@@ -0,0 +1,2 @@
+!function(){function a(e){if(!(this instanceof a))return e||(e=null),null===e?new a:new a(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var n=0;n<arguments.length;n++){var i=0;if("[object String]"===Object.prototype.toString.call(arguments[n]))for(var r=0;r<arguments[n].length;r++){for(var o=0,t=0;t<arguments[n].length;t++)o=arguments[n].charCodeAt(t)+(o<<6)+(o<<16)-o;i+=o}else i=arguments[n];this.seed+=(arguments.length-n)*i}return this.mt=this.mersenne_twister(this.seed),this.bimd5=this.blueimp_md5(),this.random=function(){return this.mt.random(this.seed)},this}function e(a,e){if(a=a||{},e)for(var n in e)void 0===a[n]&&(a[n]=e[n]);return a}function n(a,e){if(a)throw new RangeError(e)}function i(a){return function(){return this.natural(a)}}function r(a,e){for(var n,i=p(a),r=0,o=i.length;r<o;r++)e[n=i[r]]=a[n]||e[n]}function o(a,e){for(var n=0,i=a.length;n<i;n++)e[n]=a[n]}function t(a,e){var n=Array.isArray(a),i=e||(n?new Array(a.length):{});return n?o(a,i):r(a,i),i}var s=9007199254740992,l="abcdefghijklmnopqrstuvwxyz",c=l.toUpperCase(),m="0123456789abcdef",u=Array.prototype.slice;a.prototype.VERSION="1.0.13";var d=function(){throw new Error("No Base64 encoder available.")};"function"==typeof btoa?d=btoa:"function"==typeof Buffer&&(d=function(a){return new Buffer(a).toString("base64")}),a.prototype.bool=function(a){return a=e(a,{likelihood:50}),n(a.likelihood<0||a.likelihood>100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()<a.likelihood},a.prototype.animal=function(a){return void 0!==(a=e(a)).type?(n(!this.get("animals")[a.type.toLowerCase()],"Please pick from desert, ocean, grassland, forest, zoo, pets, farm."),this.pick(this.get("animals")[a.type.toLowerCase()])):(animalTypeArray=["desert","forest","ocean","zoo","farm","pet","grassland"],this.pick(this.get("animals")[this.pick(animalTypeArray)]))},a.prototype.character=function(a){n((a=e(a)).alpha&&a.symbols,"Chance: Cannot specify both alpha and symbols.");var i,r;return i="lower"===a.casing?l:"upper"===a.casing?c:l+c,(r=a.pool?a.pool:a.alpha?i:a.symbols?"!@#$%^&*()[]":i+"0123456789!@#$%^&*()[]").charAt(this.natural({max:r.length-1}))},a.prototype.floating=function(a){n((a=e(a,{fixed:4})).fixed&&a.precision,"Chance: Cannot specify both fixed and precision.");var i,r=Math.pow(10,a.fixed),o=s/r,t=-o;n(a.min&&a.fixed&&a.min<t,"Chance: Min specified is out of range with fixed. Min should be, at least, "+t),n(a.max&&a.fixed&&a.max>o,"Chance: Max specified is out of range with fixed. Max should be, at most, "+o),a=e(a,{min:t,max:o});var l=((i=this.integer({min:a.min*r,max:a.max*r}))/r).toFixed(a.fixed);return parseFloat(l)},a.prototype.integer=function(a){return a=e(a,{min:-9007199254740992,max:s}),n(a.min>a.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(a.max-a.min+1)+a.min)},a.prototype.natural=function(a){return"number"==typeof(a=e(a,{min:0,max:s})).numerals&&(n(a.numerals<1,"Chance: Numerals cannot be less than one."),a.min=Math.pow(10,a.numerals-1),a.max=Math.pow(10,a.numerals)-1),n(a.min<0,"Chance: Min cannot be less than zero."),this.integer(a)},a.prototype.hex=function(a){n((a=e(a,{min:0,max:s,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var i=this.natural({min:a.min,max:a.max});return"upper"===a.casing?i.toString(16).toUpperCase():i.toString(16)},a.prototype.letter=function(a){a=e(a,{casing:"lower"});var n=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===a.casing&&(n=n.toUpperCase()),n},a.prototype.string=function(a){n((a=e(a,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var i=a.length;return this.n(this.character,i,a).join("")},a.prototype.capitalize=function(a){return a.charAt(0).toUpperCase()+a.substr(1)},a.prototype.mixin=function(e){for(var n in e)a.prototype[n]=e[n];return this},a.prototype.unique=function(a,e,i){n("function"!=typeof a,"Chance: The first argument must be a function.");var r=function(a,e){return-1!==a.indexOf(e)};i&&(r=i.comparator||r);for(var o,t=[],s=0,l=50*e,c=u.call(arguments,2);t.length<e;){var m=JSON.parse(JSON.stringify(c));if(o=a.apply(this,m),r(t,o)||(t.push(o),s=0),++s>l)throw new RangeError("Chance: num is likely too large for sample set")}return t},a.prototype.n=function(a,e){n("function"!=typeof a,"Chance: The first argument must be a function."),void 0===e&&(e=1);var i=e,r=[],o=u.call(arguments,2);for(i=Math.max(0,i),null;i--;null)r.push(a.apply(this,o));return r},a.prototype.pad=function(a,e,n){return n=n||"0",(a+="").length>=e?a:new Array(e-a.length+1).join(n)+a},a.prototype.pick=function(a,e){if(0===a.length)throw new RangeError("Chance: Cannot pick() from an empty array");return e&&1!==e?this.shuffle(a).slice(0,e):a[this.natural({max:a.length-1})]},a.prototype.pickone=function(a){if(0===a.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return a[this.natural({max:a.length-1})]},a.prototype.pickset=function(a,e){if(0===e)return[];if(0===a.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(e<0)throw new RangeError("Chance: Count must be a positive number");return e&&1!==e?this.shuffle(a).slice(0,e):[this.pickone(a)]},a.prototype.shuffle=function(a){for(var e=a.slice(0),n=[],i=0,r=Number(e.length),o=0;o<r;o++)i=this.natural({max:e.length-1}),n[o]=e[i],e.splice(i,1);return n},a.prototype.weighted=function(a,e,n){if(a.length!==e.length)throw new RangeError("Chance: Length of array and weights must match");for(var i,r=0,o=0;o<e.length;++o){if(i=e[o],isNaN(i))throw new RangeError("Chance: All weights must be numbers");i>0&&(r+=i)}if(0===r)throw new RangeError("Chance: No valid entries in array weights");var t,s=this.random()*r,l=0,c=-1;for(o=0;o<e.length;++o){if(i=e[o],l+=i,i>0){if(s<=l){t=o;break}c=o}o===e.length-1&&(t=c)}var m=a[t];return(n=void 0!==n&&n)&&(a.splice(t,1),e.splice(t,1)),m},a.prototype.paragraph=function(a){var n=(a=e(a)).sentences||this.natural({min:3,max:7});return this.n(this.sentence,n).join(" ")},a.prototype.sentence=function(a){var n,i=(a=e(a)).words||this.natural({min:12,max:18}),r=a.punctuation;return n=this.n(this.word,i).join(" "),n=this.capitalize(n),!1===r||/^[\.\?;!:]$/.test(r)||(r="."),r&&(n+=r),n},a.prototype.syllable=function(a){for(var n,i=(a=e(a)).length||this.natural({min:2,max:3}),r="",o=0;o<i;o++)r+=n=0===o?this.character({pool:"bcdfghjklmnprstvwzaeiou"}):-1==="bcdfghjklmnprstvwz".indexOf(n)?this.character({pool:"bcdfghjklmnprstvwz"}):this.character({pool:"aeiou"});return a.capitalize&&(r=this.capitalize(r)),r},a.prototype.word=function(a){n((a=e(a)).syllables&&a.length,"Chance: Cannot specify both syllables AND length.");var i=a.syllables||this.natural({min:1,max:3}),r="";if(a.length){do{r+=this.syllable()}while(r.length<a.length);r=r.substring(0,a.length)}else for(var o=0;o<i;o++)r+=this.syllable();return a.capitalize&&(r=this.capitalize(r)),r},a.prototype.age=function(a){var n;switch((a=e(a)).type){case"child":n={min:0,max:12};break;case"teen":n={min:13,max:19};break;case"adult":n={min:18,max:65};break;case"senior":n={min:65,max:100};break;case"all":n={min:0,max:100};break;default:n={min:18,max:65}}return this.natural(n)},a.prototype.birthday=function(a){var n=this.age(a),i=(new Date).getFullYear();if(a&&a.type){var r=new Date,o=new Date;r.setFullYear(i-n-1),o.setFullYear(i-n),a=e(a,{min:r,max:o})}else a=e(a,{year:i-n});return this.date(a)},a.prototype.cpf=function(a){a=e(a,{formatted:!0});var n=this.n(this.natural,9,{max:9}),i=2*n[8]+3*n[7]+4*n[6]+5*n[5]+6*n[4]+7*n[3]+8*n[2]+9*n[1]+10*n[0];(i=11-i%11)>=10&&(i=0);var r=2*i+3*n[8]+4*n[7]+5*n[6]+6*n[5]+7*n[4]+8*n[3]+9*n[2]+10*n[1]+11*n[0];(r=11-r%11)>=10&&(r=0);var o=""+n[0]+n[1]+n[2]+"."+n[3]+n[4]+n[5]+"."+n[6]+n[7]+n[8]+"-"+i+r;return a.formatted?o:o.replace(/\D/g,"")},a.prototype.cnpj=function(a){a=e(a,{formatted:!0});var n=this.n(this.natural,12,{max:12}),i=2*n[11]+3*n[10]+4*n[9]+5*n[8]+6*n[7]+7*n[6]+8*n[5]+9*n[4]+2*n[3]+3*n[2]+4*n[1]+5*n[0];(i=11-i%11)<2&&(i=0);var r=2*i+3*n[11]+4*n[10]+5*n[9]+6*n[8]+7*n[7]+8*n[6]+9*n[5]+2*n[4]+3*n[3]+4*n[2]+5*n[1]+6*n[0];(r=11-r%11)<2&&(r=0);var o=""+n[0]+n[1]+"."+n[2]+n[3]+n[4]+"."+n[5]+n[6]+n[7]+"/"+n[8]+n[9]+n[10]+n[11]+"-"+i+r;return a.formatted?o:o.replace(/\D/g,"")},a.prototype.first=function(a){return a=e(a,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[a.gender.toLowerCase()][a.nationality.toLowerCase()])},a.prototype.profession=function(a){return(a=e(a)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},a.prototype.company=function(){return this.pick(this.get("company"))},a.prototype.gender=function(a){return a=e(a,{extraGenders:[]}),this.pick(["Male","Female"].concat(a.extraGenders))},a.prototype.last=function(a){return a=e(a,{nationality:"en"}),this.pick(this.get("lastNames")[a.nationality.toLowerCase()])},a.prototype.israelId=function(){for(var a=this.string({pool:"0123456789",length:8}),e=0,n=0;n<a.length;n++){var i=a[n]*(n/2===parseInt(n/2)?1:2);i=this.pad(i,2).toString(),e+=i=parseInt(i[0])+parseInt(i[1])}return a+=(10-parseInt(e.toString().slice(-1))).toString().slice(-1)},a.prototype.mrz=function(a){var n=function(a){var e="<ABCDEFGHIJKLMNOPQRSTUVWXYXZ".split(""),n=[7,3,1],i=0;return"string"!=typeof a&&(a=a.toString()),a.split("").forEach(function(a,r){var o=e.indexOf(a);a=-1!==o?0===o?0:o+9:parseInt(a,10),i+=a*=n[r%n.length]}),i%10},i=this;return a=e(a,{first:this.first(),last:this.last(),passportNumber:this.integer({min:1e8,max:999999999}),dob:function(){var a=i.birthday({type:"adult"});return[a.getFullYear().toString().substr(2),i.pad(a.getMonth()+1,2),i.pad(a.getDate(),2)].join("")}(),expiry:function(){var a=new Date;return[(a.getFullYear()+5).toString().substr(2),i.pad(a.getMonth()+1,2),i.pad(a.getDate(),2)].join("")}(),gender:"Female"===this.gender()?"F":"M",issuer:"GBR",nationality:"GBR"}),function(a){var e=function(a){return new Array(a+1).join("<")},i=["P<",a.issuer,a.last.toUpperCase(),"<<",a.first.toUpperCase(),e(39-(a.last.length+a.first.length+2)),a.passportNumber,n(a.passportNumber),a.nationality,a.dob,n(a.dob),a.gender,a.expiry,n(a.expiry),e(14),n(e(14))].join("");return i+n(i.substr(44,10)+i.substr(57,7)+i.substr(65,7))}(a)},a.prototype.name=function(a){a=e(a);var n,i=this.first(a),r=this.last(a);return n=a.middle?i+" "+this.first(a)+" "+r:a.middle_initial?i+" "+this.character({alpha:!0,casing:"upper"})+". "+r:i+" "+r,a.prefix&&(n=this.prefix(a)+" "+n),a.suffix&&(n=n+" "+this.suffix(a)),n},a.prototype.name_prefixes=function(a){var e=[{name:"Doctor",abbreviation:"Dr."}];return"male"!==(a=(a=a||"all").toLowerCase())&&"all"!==a||e.push({name:"Mister",abbreviation:"Mr."}),"female"!==a&&"all"!==a||(e.push({name:"Miss",abbreviation:"Miss"}),e.push({name:"Misses",abbreviation:"Mrs."})),e},a.prototype.prefix=function(a){return this.name_prefix(a)},a.prototype.name_prefix=function(a){return(a=e(a,{gender:"all"})).full?this.pick(this.name_prefixes(a.gender)).name:this.pick(this.name_prefixes(a.gender)).abbreviation},a.prototype.HIDN=function(){var a="";return a+=this.string({pool:"0123456789",length:6}),a+=this.string({pool:"ABCDEFGHIJKLMNOPQRSTUVWXYXZ",length:2})},a.prototype.ssn=function(a){var n=(a=e(a,{ssnFour:!1,dashes:!0})).dashes?"-":"";return a.ssnFour?this.string({pool:"1234567890",length:4}):this.string({pool:"1234567890",length:3})+n+this.string({pool:"1234567890",length:2})+n+this.string({pool:"1234567890",length:4})},a.prototype.name_suffixes=function(){return[{name:"Doctor of Osteopathic Medicine",abbreviation:"D.O."},{name:"Doctor of Philosophy",abbreviation:"Ph.D."},{name:"Esquire",abbreviation:"Esq."},{name:"Junior",abbreviation:"Jr."},{name:"Juris Doctor",abbreviation:"J.D."},{name:"Master of Arts",abbreviation:"M.A."},{name:"Master of Business Administration",abbreviation:"M.B.A."},{name:"Master of Science",abbreviation:"M.S."},{name:"Medical Doctor",abbreviation:"M.D."},{name:"Senior",abbreviation:"Sr."},{name:"The Third",abbreviation:"III"},{name:"The Fourth",abbreviation:"IV"},{name:"Bachelor of Engineering",abbreviation:"B.E"},{name:"Bachelor of Technology",abbreviation:"B.TECH"}]},a.prototype.suffix=function(a){return this.name_suffix(a)},a.prototype.name_suffix=function(a){return(a=e(a)).full?this.pick(this.name_suffixes()).name:this.pick(this.name_suffixes()).abbreviation},a.prototype.nationalities=function(){return this.get("nationalities")},a.prototype.nationality=function(){return this.pick(this.nationalities()).name},a.prototype.android_id=function(){return"APA91"+this.string({pool:"0123456789abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_",length:178})},a.prototype.apple_token=function(){return this.string({pool:"abcdef1234567890",length:64})},a.prototype.wp8_anid2=function(){return d(this.hash({length:32}))},a.prototype.wp7_anid=function(){return"A="+this.guid().replace(/-/g,"").toUpperCase()+"&E="+this.hash({length:3})+"&W="+this.integer({min:0,max:9})},a.prototype.bb_pin=function(){return this.hash({length:8})},a.prototype.avatar=function(a){var n={protocol:null,email:null,fileExtension:null,size:null,fallback:null,rating:null};if(a)if("string"==typeof a)n.email=a,a={};else{if("object"!=typeof a)return null;if("Array"===a.constructor)return null}else n.email=this.email(),a={};return(n=e(a,n)).email||(n.email=this.email()),n.protocol={http:"http",https:"https"}[n.protocol]?n.protocol+":":"",n.size=parseInt(n.size,0)?n.size:"",n.rating={g:"g",pg:"pg",r:"r",x:"x"}[n.rating]?n.rating:"",n.fallback={404:"404",mm:"mm",identicon:"identicon",monsterid:"monsterid",wavatar:"wavatar",retro:"retro",blank:"blank"}[n.fallback]?n.fallback:"",n.fileExtension={bmp:"bmp",gif:"gif",jpg:"jpg",png:"png"}[n.fileExtension]?n.fileExtension:"",n.protocol+"//www.gravatar.com/avatar/"+this.bimd5.md5(n.email)+(n.fileExtension?"."+n.fileExtension:"")+(n.size||n.rating||n.fallback?"?":"")+(n.size?"&s="+n.size.toString():"")+(n.rating?"&r="+n.rating:"")+(n.fallback?"&d="+n.fallback:"")},a.prototype.color=function(a){function n(a,e){return[a,a,a].join(e||"")}function i(a){var e=a?"rgba":"rgb",i=a?","+this.floating({min:b,max:p}):"";return e+"("+(o?n(this.natural({min:t,max:s}),","):this.natural({min:m,max:u})+","+this.natural({min:d,max:h})+","+this.natural({max:255}))+i+")"}function r(e,i,r){var b=r?"#":"",p="";return o?(p=n(this.pad(this.hex({min:t,max:s}),2)),"shorthex"===a.format&&(p=n(this.hex({min:0,max:15})))):p="shorthex"===a.format?this.pad(this.hex({min:Math.floor(l/16),max:Math.floor(c/16)}),1)+this.pad(this.hex({min:Math.floor(m/16),max:Math.floor(u/16)}),1)+this.pad(this.hex({min:Math.floor(d/16),max:Math.floor(h/16)}),1):void 0!==l||void 0!==c||void 0!==m||void 0!==u||void 0!==d||void 0!==h?this.pad(this.hex({min:l,max:c}),2)+this.pad(this.hex({min:m,max:u}),2)+this.pad(this.hex({min:d,max:h}),2):this.pad(this.hex({min:t,max:s}),2)+this.pad(this.hex({min:t,max:s}),2)+this.pad(this.hex({min:t,max:s}),2),b+p}var o=(a=e(a,{format:this.pick(["hex","shorthex","rgb","rgba","0x","name"]),grayscale:!1,casing:"lower",min:0,max:255,min_red:void 0,max_red:void 0,min_green:void 0,max_green:void 0,min_blue:void 0,max_blue:void 0,min_alpha:0,max_alpha:1})).grayscale,t=a.min,s=a.max,l=a.min_red,c=a.max_red,m=a.min_green,u=a.max_green,d=a.min_blue,h=a.max_blue,b=a.min_alpha,p=a.max_alpha;void 0===a.min_red&&(l=t),void 0===a.max_red&&(c=s),void 0===a.min_green&&(m=t),void 0===a.max_green&&(u=s),void 0===a.min_blue&&(d=t),void 0===a.max_blue&&(h=s),void 0===a.min_alpha&&(b=0),void 0===a.max_alpha&&(p=1),o&&0===t&&255===s&&void 0!==l&&void 0!==c&&(t=(l+m+d)/3,s=(c+u+h)/3);var C;if("hex"===a.format)C=r.call(this,2,6,!0);else if("shorthex"===a.format)C=r.call(this,1,3,!0);else if("rgb"===a.format)C=i.call(this,!1);else if("rgba"===a.format)C=i.call(this,!0);else{if("0x"!==a.format){if("name"===a.format)return this.pick(this.get("colorNames"));throw new RangeError('Invalid format provided. Please provide one of "hex", "shorthex", "rgb", "rgba", "0x" or "name".')}C="0x"+r.call(this,2,6)}return"upper"===a.casing&&(C=C.toUpperCase()),C},a.prototype.domain=function(a){return a=e(a),this.word()+"."+(a.tld||this.tld())},a.prototype.email=function(a){return a=e(a),this.word({length:a.length})+"@"+(a.domain||this.domain())},a.prototype.fbid=function(){return"10000"+this.string({pool:"1234567890",length:11})},a.prototype.google_analytics=function(){return"UA-"+this.pad(this.natural({max:999999}),6)+"-"+this.pad(this.natural({max:99}),2)},a.prototype.hashtag=function(){return"#"+this.word()},a.prototype.ip=function(){return this.natural({min:1,max:254})+"."+this.natural({max:255})+"."+this.natural({max:255})+"."+this.natural({min:1,max:254})},a.prototype.ipv6=function(){return this.n(this.hash,8,{length:4}).join(":")},a.prototype.klout=function(){return this.natural({min:1,max:99})},a.prototype.semver=function(a){a=e(a,{include_prerelease:!0});var n=this.pickone(["^","~","<",">","<=",">=","="]);a.range&&(n=a.range);var i="";return a.include_prerelease&&(i=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),n+this.rpg("3d10").join(".")+i},a.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},a.prototype.tld=function(){return this.pick(this.tlds())},a.prototype.twitter=function(){return"@"+this.word()},a.prototype.url=function(a){var n=(a=e(a,{protocol:"http",domain:this.domain(a),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(a.extensions):"",i=a.domain_prefix?a.domain_prefix+"."+a.domain:a.domain;return a.protocol+"://"+i+"/"+a.path+n},a.prototype.port=function(){return this.integer({min:0,max:65535})},a.prototype.locale=function(a){return(a=e(a)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},a.prototype.locales=function(a){return(a=e(a)).region?this.get("locale_regions"):this.get("locale_languages")},a.prototype.address=function(a){return a=e(a),this.natural({min:5,max:2e3})+" "+this.street(a)},a.prototype.altitude=function(a){return a=e(a,{fixed:5,min:0,max:8848}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.areacode=function(a){a=e(a,{parens:!0});var n=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return a.parens?"("+n+")":n},a.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},a.prototype.coordinates=function(a){return this.latitude(a)+", "+this.longitude(a)},a.prototype.countries=function(){return this.get("countries")},a.prototype.country=function(a){a=e(a);var n=this.pick(this.countries());return a.full?n.name:n.abbreviation},a.prototype.depth=function(a){return a=e(a,{fixed:5,min:-10994,max:0}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.geohash=function(a){return a=e(a,{length:7}),this.string({length:a.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},a.prototype.geojson=function(a){return this.latitude(a)+", "+this.longitude(a)+", "+this.altitude(a)},a.prototype.latitude=function(a){return a=e(a,{fixed:5,min:-90,max:90}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.longitude=function(a){return a=e(a,{fixed:5,min:-180,max:180}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.phone=function(a){var n,i=this,r=function(a){var e=[];return a.sections.forEach(function(a){e.push(i.string({pool:"0123456789",length:a}))}),a.area+e.join(" ")};(a=e(a,{formatted:!0,country:"us",mobile:!1})).formatted||(a.parens=!1);var o;switch(a.country){case"fr":a.mobile?(n=this.pick(["06","07"])+i.string({pool:"0123456789",length:8}),o=a.formatted?n.match(/../g).join(" "):n):(n=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+i.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+i.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+i.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+i.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+i.string({pool:"0123456789",length:6}),"09"+i.string({pool:"0123456789",length:8})]),o=a.formatted?n.match(/../g).join(" "):n);break;case"uk":a.mobile?(n=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),o=a.formatted?r(n):r(n).replace(" ","")):(n=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),o=a.formatted?r(n):r(n).replace(" ","","g"));break;case"za":a.mobile?(n=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+i.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+i.string({pool:"0123456789",length:6}),"06"+i.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+i.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+i.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+i.string({pool:"0123456789",length:7})]),o=a.formatted||n):(n=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+i.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+i.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+i.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+i.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+i.string({pool:"0123456789",length:7})]),o=a.formatted||n);break;case"us":var t=this.areacode(a).toString(),s=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),l=this.natural({min:1e3,max:9999}).toString();o=a.formatted?t+" "+s+"-"+l:t+s+l}return o},a.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},a.prototype.counties=function(a){return a=e(a,{country:"uk"}),this.get("counties")[a.country.toLowerCase()]},a.prototype.county=function(a){return this.pick(this.counties(a)).name},a.prototype.provinces=function(a){return a=e(a,{country:"ca"}),this.get("provinces")[a.country.toLowerCase()]},a.prototype.province=function(a){return a&&a.full?this.pick(this.provinces(a)).name:this.pick(this.provinces(a)).abbreviation},a.prototype.state=function(a){return a&&a.full?this.pick(this.states(a)).name:this.pick(this.states(a)).abbreviation},a.prototype.states=function(a){var n;switch((a=e(a,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var i=this.get("us_states_and_dc"),r=this.get("territories"),o=this.get("armed_forces");n=[],a.us_states_and_dc&&(n=n.concat(i)),a.territories&&(n=n.concat(r)),a.armed_forces&&(n=n.concat(o));break;case"it":n=this.get("country_regions")[a.country.toLowerCase()];break;case"uk":n=this.get("counties")[a.country.toLowerCase()]}return n},a.prototype.street=function(a){var n;switch((a=e(a,{country:"us",syllables:2})).country.toLowerCase()){case"us":n=this.word({syllables:a.syllables}),n=this.capitalize(n),n+=" ",n+=a.short_suffix?this.street_suffix(a).abbreviation:this.street_suffix(a).name;break;case"it":n=this.word({syllables:a.syllables}),n=this.capitalize(n),n=(a.short_suffix?this.street_suffix(a).abbreviation:this.street_suffix(a).name)+" "+n}return n},a.prototype.street_suffix=function(a){return a=e(a,{country:"us"}),this.pick(this.street_suffixes(a))},a.prototype.street_suffixes=function(a){return a=e(a,{country:"us"}),this.get("street_suffixes")[a.country.toLowerCase()]},a.prototype.zip=function(a){var e=this.n(this.natural,5,{max:9});return a&&!0===a.plusfour&&(e.push("-"),e=e.concat(this.n(this.natural,4,{max:9}))),e.join("")},a.prototype.ampm=function(){return this.bool()?"am":"pm"},a.prototype.date=function(a){var n,i;if(a&&(a.min||a.max)){var r=void 0!==(a=e(a,{american:!0,string:!1})).min?a.min.getTime():1,o=void 0!==a.max?a.max.getTime():864e13;i=new Date(this.integer({min:r,max:o}))}else{var t=this.month({raw:!0}),s=t.days;a&&a.month&&(s=this.get("months")[(a.month%12+12)%12].days),a=e(a,{year:parseInt(this.year(),10),month:t.numeric-1,day:this.natural({min:1,max:s}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),i=new Date(a.year,a.month,a.day,a.hour,a.minute,a.second,a.millisecond)}return n=a.american?i.getMonth()+1+"/"+i.getDate()+"/"+i.getFullYear():i.getDate()+"/"+(i.getMonth()+1)+"/"+i.getFullYear(),a.string?n:i},a.prototype.hammertime=function(a){return this.date(a).getTime()},a.prototype.hour=function(a){return a=e(a,{min:a&&a.twentyfour?0:1,max:a&&a.twentyfour?23:12}),n(a.min<0,"Chance: Min cannot be less than 0."),n(a.twentyfour&&a.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),n(!a.twentyfour&&a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.millisecond=function(){return this.natural({max:999})},a.prototype.minute=a.prototype.second=function(a){return a=e(a,{min:0,max:59}),n(a.min<0,"Chance: Min cannot be less than 0."),n(a.max>59,"Chance: Max cannot be greater than 59."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.month=function(a){n((a=e(a,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),n(a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max.");var i=this.pick(this.months().slice(a.min-1,a.max));return a.raw?i:i.name},a.prototype.months=function(){return this.get("months")},a.prototype.second=function(){return this.natural({max:59})},a.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},a.prototype.weekday=function(a){var n=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(a=e(a,{weekday_only:!1})).weekday_only||(n.push("Saturday"),n.push("Sunday")),this.pickone(n)},a.prototype.year=function(a){return a=e(a,{min:(new Date).getFullYear()}),a.max=void 0!==a.max?a.max:a.min+100,this.natural(a).toString()},a.prototype.cc=function(a){var n,i,r;return n=(a=e(a)).type?this.cc_type({name:a.type,raw:!0}):this.cc_type({raw:!0}),i=n.prefix.split(""),r=n.length-n.prefix.length-1,(i=i.concat(this.n(this.integer,r,{min:0,max:9}))).push(this.luhn_calculate(i.join(""))),i.join("")},a.prototype.cc_types=function(){return this.get("cc_types")},a.prototype.cc_type=function(a){a=e(a);var n=this.cc_types(),i=null;if(a.name){for(var r=0;r<n.length;r++)if(n[r].name===a.name||n[r].short_name===a.name){i=n[r];break}if(null===i)throw new RangeError("Chance: Credit card type '"+a.name+"' is not supported")}else i=this.pick(n);return a.raw?i:i.name},a.prototype.currency_types=function(){return this.get("currency_types")},a.prototype.currency=function(){return this.pick(this.currency_types())},a.prototype.timezones=function(){return this.get("timezones")},a.prototype.timezone=function(){return this.pick(this.timezones())},a.prototype.currency_pair=function(a){var e=this.unique(this.currency,2,{comparator:function(a,e){return a.reduce(function(a,n){return a||n.code===e.code},!1)}});return a?e[0].code+"/"+e[1].code:e},a.prototype.dollar=function(a){a=e(a,{max:1e4,min:0});var n=this.floating({min:a.min,max:a.max,fixed:2}).toString(),i=n.split(".")[1];return void 0===i?n+=".00":i.length<2&&(n+="0"),n<0?"-$"+n.replace("-",""):"$"+n},a.prototype.euro=function(a){return Number(this.dollar(a).replace("$","")).toLocaleString()+"€"},a.prototype.exp=function(a){a=e(a);var n={};return n.year=this.exp_year(),n.year===(new Date).getFullYear().toString()?n.month=this.exp_month({future:!0}):n.month=this.exp_month(),a.raw?n:n.month+"/"+n.year},a.prototype.exp_month=function(a){a=e(a);var n,i,r=(new Date).getMonth()+1;if(a.future&&12!==r)do{n=this.month({raw:!0}).numeric,i=parseInt(n,10)}while(i<=r);else n=this.month({raw:!0}).numeric;return n},a.prototype.exp_year=function(){var a=(new Date).getMonth()+1,e=(new Date).getFullYear();return this.year({min:12===a?e+1:e,max:e+10})},a.prototype.vat=function(a){switch((a=e(a,{country:"it"})).country.toLowerCase()){case"it":return this.it_vat()}},a.prototype.iban=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";return this.string({length:2,pool:a})+this.pad(this.integer({min:0,max:99}),2)+this.string({length:4,pool:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"})+this.pad(this.natural(),this.natural({min:6,max:26}))},a.prototype.it_vat=function(){var a=this.natural({min:1,max:18e5});return(a=this.pad(a,7)+this.pad(this.pick(this.provinces({country:"it"})).code,3))+this.luhn_calculate(a)},a.prototype.cf=function(a){var e=(a=a||{}).gender?a.gender:this.gender(),n=a.first?a.first:this.first({gender:e,nationality:"it"}),i=a.last?a.last:this.last({nationality:"it"}),r=a.birthday?a.birthday:this.birthday(),o=a.city?a.city:this.pickone(["A","B","C","D","E","F","G","H","I","L","M","Z"])+this.pad(this.natural({max:999}),3),t=[],s=function(a,e){var n,i=[];return a.length<3?i=a.split("").concat("XXX".split("")).splice(0,3):((n=a.toUpperCase().split("").map(function(a){return-1!=="BCDFGHJKLMNPRSTVWZ".indexOf(a)?a:void 0}).join("")).length>3&&(n=e?n.substr(0,3):n[0]+n.substr(2,2)),n.length<3&&(i=n,n=a.toUpperCase().split("").map(function(a){return-1!=="AEIOU".indexOf(a)?a:void 0}).join("").substr(0,3-i.length)),i+=n),i};return t=t.concat(s(i,!0),s(n),function(a,e,n){return a.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][a.getMonth()]+n.pad(a.getDate()+("female"===e.toLowerCase()?40:0),2)}(r,e,this),o.toUpperCase().split("")).join(""),(t+=function(a){for(var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",i="ABCDEFGHIJKLMNOPQRSTUVWXYZ",r=0,o=0;o<15;o++)r+=o%2!=0?i.indexOf(n[e.indexOf(a[o])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(n[e.indexOf(a[o])]);return i[r%26]}(t.toUpperCase())).toUpperCase()},a.prototype.pl_pesel=function(){for(var a=this.natural({min:1,max:9999999999}),e=this.pad(a,10).split(""),n=0;n<e.length;n++)e[n]=parseInt(e[n]);var i=(1*e[0]+3*e[1]+7*e[2]+9*e[3]+1*e[4]+3*e[5]+7*e[6]+9*e[7]+1*e[8]+3*e[9])%10;return 0!==i&&(i=10-i),e.join("")+i},a.prototype.pl_nip=function(){for(var a=this.natural({min:1,max:999999999}),e=this.pad(a,9).split(""),n=0;n<e.length;n++)e[n]=parseInt(e[n]);var i=(6*e[0]+5*e[1]+7*e[2]+2*e[3]+3*e[4]+4*e[5]+5*e[6]+6*e[7]+7*e[8])%11;return 10===i?this.pl_nip():e.join("")+i},a.prototype.pl_regon=function(){for(var a=this.natural({min:1,max:99999999}),e=this.pad(a,8).split(""),n=0;n<e.length;n++)e[n]=parseInt(e[n]);var i=(8*e[0]+9*e[1]+2*e[2]+3*e[3]+4*e[4]+5*e[5]+6*e[6]+7*e[7])%11;return 10===i&&(i=0),e.join("")+i},a.prototype.note=function(a){a=e(a,{notes:"flatKey"});var n={naturals:["C","D","E","F","G","A","B"],flats:["D♭","E♭","G♭","A♭","B♭"],sharps:["C♯","D♯","F♯","G♯","A♯"]};return n.all=n.naturals.concat(n.flats.concat(n.sharps)),n.flatKey=n.naturals.concat(n.flats),n.sharpKey=n.naturals.concat(n.sharps),this.pickone(n[a.notes])},a.prototype.midi_note=function(a){return a=e(a,{min:0,max:127}),this.integer({min:a.min,max:a.max})},a.prototype.chord_quality=function(a){var n=["maj","min","aug","dim"];return(a=e(a,{jazz:!0})).jazz&&(n=["maj7","min7","7","sus","dim","ø"]),this.pickone(n)},a.prototype.chord=function(a){return a=e(a),this.note(a)+this.chord_quality(a)},a.prototype.tempo=function(a){return a=e(a,{min:40,max:320}),this.integer({min:a.min,max:a.max})},a.prototype.coin=function(a){return this.bool()?"heads":"tails"},a.prototype.d4=i({min:1,max:4}),a.prototype.d6=i({min:1,max:6}),a.prototype.d8=i({min:1,max:8}),a.prototype.d10=i({min:1,max:10}),a.prototype.d12=i({min:1,max:12}),a.prototype.d20=i({min:1,max:20}),a.prototype.d30=i({min:1,max:30}),a.prototype.d100=i({min:1,max:100}),a.prototype.rpg=function(a,n){if(n=e(n),a){var i=a.toLowerCase().split("d"),r=[];if(2!==i.length||!parseInt(i[0],10)||!parseInt(i[1],10))throw new Error("Chance: Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die");for(var o=i[0];o>0;o--)r[o-1]=this.natural({min:1,max:i[1]});return void 0!==n.sum&&n.sum?r.reduce(function(a,e){return a+e}):r}throw new RangeError("Chance: A type of die roll must be included")},a.prototype.guid=function(a){a=e(a,{version:5});var n="abcdef1234567890";return this.string({pool:n,length:8})+"-"+this.string({pool:n,length:4})+"-"+a.version+this.string({pool:n,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:n,length:3})+"-"+this.string({pool:n,length:12})},a.prototype.hash=function(a){var n="upper"===(a=e(a,{length:40,casing:"lower"})).casing?m.toUpperCase():m;return this.string({pool:n,length:a.length})},a.prototype.luhn_check=function(a){var e=a.toString();return+e.substring(e.length-1)===this.luhn_calculate(+e.substring(0,e.length-1))},a.prototype.luhn_calculate=function(a){for(var e,n=a.toString().split("").reverse(),i=0,r=0,o=n.length;o>r;++r)e=+n[r],r%2==0&&(e*=2)>9&&(e-=9),i+=e;return 9*i%10},a.prototype.md5=function(a){var n={str:"",key:null,raw:!1};if(a)if("string"==typeof a)n.str=a,a={};else{if("object"!=typeof a)return null;if("Array"===a.constructor)return null}else n.str=this.string(),a={};if(!(n=e(a,n)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(n.str,n.key,n.raw)},a.prototype.file=function(a){var e,n,i=a||{},r=Object.keys(this.get("fileExtension"));if(e=this.word({length:i.length}),i.extension)return n=i.extension,e+"."+n;if(i.extensions){if(Array.isArray(i.extensions))return n=this.pickone(i.extensions),e+"."+n;if(i.extensions.constructor===Object){var o=i.extensions,t=Object.keys(o);return n=this.pickone(o[this.pickone(t)]),e+"."+n}throw new Error("Chance: Extensions must be an Array or Object")}if(i.fileType){var s=i.fileType;if(-1!==r.indexOf(s))return n=this.pickone(this.get("fileExtension")[s]),e+"."+n;throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return n=this.pickone(this.get("fileExtension")[this.pickone(r)]),e+"."+n};var h={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"]},countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua & Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Ascension Island",abbreviation:"AC"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia & Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canary Islands",abbreviation:"IC"},{name:"Cape Verde",abbreviation:"CV"},{name:"Caribbean Netherlands",abbreviation:"BQ"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Ceuta & Melilla",abbreviation:"EA"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Diego Garcia",abbreviation:"DG"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kosovo",abbreviation:"XK"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar (Burma)",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia & South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"St. Barthélemy",abbreviation:"BL"},{name:"St. Helena",abbreviation:"SH"},{name:"St. Kitts & Nevis",abbreviation:"KN"},{name:"St. Lucia",abbreviation:"LC"},{name:"St. Martin",abbreviation:"MF"},{name:"St. Pierre & Miquelon",abbreviation:"PM"},{name:"St. Vincent & Grenadines",abbreviation:"VC"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard & Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad & Tobago",abbreviation:"TT"},{name:"Tristan da Cunha",abbreviation:"TA"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks & Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Outlying Islands",abbreviation:"UM"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wallis & Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Standard Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PST",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-2,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old"},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"CUT",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Edinburgh, Lisbon, London",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Guernsey","Europe/Isle_of_Man","Europe/Jersey","Europe/Lisbon","Europe/London"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe"},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!0,text:"(UTC+02:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+03:00) Kaliningrad, Minsk",utc:["Europe/Kaliningrad","Europe/Minsk"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Russian Standard Time",abbr:"RST",offset:4,isdst:!1,text:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",utc:["Europe/Moscow","Europe/Samara","Europe/Simferopol","Europe/Volgograd"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GST",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Pakistan Standard Time",abbr:"PST",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Katmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Astana",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Ekaterinburg Standard Time",abbr:"EST",offset:6,isdst:!1,text:"(UTC+06:00) Ekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:9,isdst:!1,text:"(UTC+09:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Tokyo Standard Time",abbr:"TST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:10,isdst:!1,text:"(UTC+10:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old"},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager.","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]}},b=Object.prototype.hasOwnProperty,p=Object.keys||function(a){var e=[];for(var n in a)b.call(a,n)&&e.push(n);return e};a.prototype.get=function(a){return t(h[a])},a.prototype.mac_address=function(a){(a=e(a)).separator||(a.separator=a.networkVersion?".":":");return a.networkVersion?this.n(this.string,3,{pool:"ABCDEF1234567890",length:4}).join(a.separator):this.n(this.string,6,{pool:"ABCDEF1234567890",length:2}).join(a.separator)},a.prototype.normal=function(a){if(a=e(a,{mean:0,dev:1,pool:[]}),n(a.pool.constructor!==Array,"Chance: The pool option must be a valid array."),n("number"!=typeof a.mean,"Chance: Mean (mean) must be a number"),n("number"!=typeof a.dev,"Chance: Standard deviation (dev) must be a number"),a.pool.length>0)return this.normal_pool(a);var i,r,o,t,s=a.mean,l=a.dev;do{i=(r=2*this.random()-1)*r+(o=2*this.random()-1)*o}while(i>=1);return t=r*Math.sqrt(-2*Math.log(i)/i),l*t+s},a.prototype.normal_pool=function(a){var e=0;do{var n=Math.round(this.normal({mean:a.mean,dev:a.dev}));if(n<a.pool.length&&n>=0)return a.pool[n];e++}while(e<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},a.prototype.radio=function(a){var n="";switch((a=e(a,{side:"?"})).side.toLowerCase()){case"east":case"e":n="W";break;case"west":case"w":n="K";break;default:n=this.character({pool:"KW"})}return n+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},a.prototype.set=function(a,e){"string"==typeof a?h[a]=e:h=t(a,h)},a.prototype.tv=function(a){return this.radio(a)},a.prototype.cnpj=function(){var a=this.n(this.natural,8,{max:9}),e=2+6*a[7]+7*a[6]+8*a[5]+9*a[4]+2*a[3]+3*a[2]+4*a[1]+5*a[0];(e=11-e%11)>=10&&(e=0);var n=2*e+3+7*a[7]+8*a[6]+9*a[5]+2*a[4]+3*a[3]+4*a[2]+5*a[1]+6*a[0];return(n=11-n%11)>=10&&(n=0),""+a[0]+a[1]+"."+a[2]+a[3]+a[4]+"."+a[5]+a[6]+a[7]+"/0001-"+e+n},a.prototype.mersenne_twister=function(a){return new C(a)},a.prototype.blueimp_md5=function(){return new g};var C=function(a){void 0===a&&(a=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(a)};C.prototype.init_genrand=function(a){for(this.mt[0]=a>>>0,this.mti=1;this.mti<this.N;this.mti++)a=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&a)>>>16)<<16)+1812433253*(65535&a)+this.mti,this.mt[this.mti]>>>=0},C.prototype.init_by_array=function(a,e){var n,i,r=1,o=0;for(this.init_genrand(19650218),n=this.N>e?this.N:e;n;n--)i=this.mt[r-1]^this.mt[r-1]>>>30,this.mt[r]=(this.mt[r]^(1664525*((4294901760&i)>>>16)<<16)+1664525*(65535&i))+a[o]+o,this.mt[r]>>>=0,o++,++r>=this.N&&(this.mt[0]=this.mt[this.N-1],r=1),o>=e&&(o=0);for(n=this.N-1;n;n--)i=this.mt[r-1]^this.mt[r-1]>>>30,this.mt[r]=(this.mt[r]^(1566083941*((4294901760&i)>>>16)<<16)+1566083941*(65535&i))-r,this.mt[r]>>>=0,++r>=this.N&&(this.mt[0]=this.mt[this.N-1],r=1);this.mt[0]=2147483648},C.prototype.genrand_int32=function(){var a,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti===this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)a=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^a>>>1^e[1&a];for(;n<this.N-1;n++)a=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^a>>>1^e[1&a];a=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^a>>>1^e[1&a],this.mti=0}return a=this.mt[this.mti++],a^=a>>>11,a^=a<<7&2636928640,a^=a<<15&4022730752,(a^=a>>>18)>>>0},C.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},C.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},C.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},C.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},C.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var g=function(){};g.prototype.VERSION="1.0.1",g.prototype.safe_add=function(a,e){var n=(65535&a)+(65535&e);return(a>>16)+(e>>16)+(n>>16)<<16|65535&n},g.prototype.bit_roll=function(a,e){return a<<e|a>>>32-e},g.prototype.md5_cmn=function(a,e,n,i,r,o){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(e,a),this.safe_add(i,o)),r),n)},g.prototype.md5_ff=function(a,e,n,i,r,o,t){return this.md5_cmn(e&n|~e&i,a,e,r,o,t)},g.prototype.md5_gg=function(a,e,n,i,r,o,t){return this.md5_cmn(e&i|n&~i,a,e,r,o,t)},g.prototype.md5_hh=function(a,e,n,i,r,o,t){return this.md5_cmn(e^n^i,a,e,r,o,t)},g.prototype.md5_ii=function(a,e,n,i,r,o,t){return this.md5_cmn(n^(e|~i),a,e,r,o,t)},g.prototype.binl_md5=function(a,e){a[e>>5]|=128<<e%32,a[14+(e+64>>>9<<4)]=e;var n,i,r,o,t,s=1732584193,l=-271733879,c=-1732584194,m=271733878;for(n=0;n<a.length;n+=16)i=s,r=l,o=c,t=m,s=this.md5_ff(s,l,c,m,a[n],7,-680876936),m=this.md5_ff(m,s,l,c,a[n+1],12,-389564586),c=this.md5_ff(c,m,s,l,a[n+2],17,606105819),l=this.md5_ff(l,c,m,s,a[n+3],22,-1044525330),s=this.md5_ff(s,l,c,m,a[n+4],7,-176418897),m=this.md5_ff(m,s,l,c,a[n+5],12,1200080426),c=this.md5_ff(c,m,s,l,a[n+6],17,-1473231341),l=this.md5_ff(l,c,m,s,a[n+7],22,-45705983),s=this.md5_ff(s,l,c,m,a[n+8],7,1770035416),m=this.md5_ff(m,s,l,c,a[n+9],12,-1958414417),c=this.md5_ff(c,m,s,l,a[n+10],17,-42063),l=this.md5_ff(l,c,m,s,a[n+11],22,-1990404162),s=this.md5_ff(s,l,c,m,a[n+12],7,1804603682),m=this.md5_ff(m,s,l,c,a[n+13],12,-40341101),c=this.md5_ff(c,m,s,l,a[n+14],17,-1502002290),l=this.md5_ff(l,c,m,s,a[n+15],22,1236535329),s=this.md5_gg(s,l,c,m,a[n+1],5,-165796510),m=this.md5_gg(m,s,l,c,a[n+6],9,-1069501632),c=this.md5_gg(c,m,s,l,a[n+11],14,643717713),l=this.md5_gg(l,c,m,s,a[n],20,-373897302),s=this.md5_gg(s,l,c,m,a[n+5],5,-701558691),m=this.md5_gg(m,s,l,c,a[n+10],9,38016083),c=this.md5_gg(c,m,s,l,a[n+15],14,-660478335),l=this.md5_gg(l,c,m,s,a[n+4],20,-405537848),s=this.md5_gg(s,l,c,m,a[n+9],5,568446438),m=this.md5_gg(m,s,l,c,a[n+14],9,-1019803690),c=this.md5_gg(c,m,s,l,a[n+3],14,-187363961),l=this.md5_gg(l,c,m,s,a[n+8],20,1163531501),s=this.md5_gg(s,l,c,m,a[n+13],5,-1444681467),m=this.md5_gg(m,s,l,c,a[n+2],9,-51403784),c=this.md5_gg(c,m,s,l,a[n+7],14,1735328473),l=this.md5_gg(l,c,m,s,a[n+12],20,-1926607734),s=this.md5_hh(s,l,c,m,a[n+5],4,-378558),m=this.md5_hh(m,s,l,c,a[n+8],11,-2022574463),c=this.md5_hh(c,m,s,l,a[n+11],16,1839030562),l=this.md5_hh(l,c,m,s,a[n+14],23,-35309556),s=this.md5_hh(s,l,c,m,a[n+1],4,-1530992060),m=this.md5_hh(m,s,l,c,a[n+4],11,1272893353),c=this.md5_hh(c,m,s,l,a[n+7],16,-155497632),l=this.md5_hh(l,c,m,s,a[n+10],23,-1094730640),s=this.md5_hh(s,l,c,m,a[n+13],4,681279174),m=this.md5_hh(m,s,l,c,a[n],11,-358537222),c=this.md5_hh(c,m,s,l,a[n+3],16,-722521979),l=this.md5_hh(l,c,m,s,a[n+6],23,76029189),s=this.md5_hh(s,l,c,m,a[n+9],4,-640364487),m=this.md5_hh(m,s,l,c,a[n+12],11,-421815835),c=this.md5_hh(c,m,s,l,a[n+15],16,530742520),l=this.md5_hh(l,c,m,s,a[n+2],23,-995338651),s=this.md5_ii(s,l,c,m,a[n],6,-198630844),m=this.md5_ii(m,s,l,c,a[n+7],10,1126891415),c=this.md5_ii(c,m,s,l,a[n+14],15,-1416354905),l=this.md5_ii(l,c,m,s,a[n+5],21,-57434055),s=this.md5_ii(s,l,c,m,a[n+12],6,1700485571),m=this.md5_ii(m,s,l,c,a[n+3],10,-1894986606),c=this.md5_ii(c,m,s,l,a[n+10],15,-1051523),l=this.md5_ii(l,c,m,s,a[n+1],21,-2054922799),s=this.md5_ii(s,l,c,m,a[n+8],6,1873313359),m=this.md5_ii(m,s,l,c,a[n+15],10,-30611744),c=this.md5_ii(c,m,s,l,a[n+6],15,-1560198380),l=this.md5_ii(l,c,m,s,a[n+13],21,1309151649),s=this.md5_ii(s,l,c,m,a[n+4],6,-145523070),m=this.md5_ii(m,s,l,c,a[n+11],10,-1120210379),c=this.md5_ii(c,m,s,l,a[n+2],15,718787259),l=this.md5_ii(l,c,m,s,a[n+9],21,-343485551),s=this.safe_add(s,i),l=this.safe_add(l,r),c=this.safe_add(c,o),m=this.safe_add(m,t);return[s,l,c,m]},g.prototype.binl2rstr=function(a){var e,n="";for(e=0;e<32*a.length;e+=8)n+=String.fromCharCode(a[e>>5]>>>e%32&255);return n},g.prototype.rstr2binl=function(a){var e,n=[];for(n[(a.length>>2)-1]=void 0,e=0;e<n.length;e+=1)n[e]=0;for(e=0;e<8*a.length;e+=8)n[e>>5]|=(255&a.charCodeAt(e/8))<<e%32;return n},g.prototype.rstr_md5=function(a){return this.binl2rstr(this.binl_md5(this.rstr2binl(a),8*a.length))},g.prototype.rstr_hmac_md5=function(a,e){var n,i,r=this.rstr2binl(a),o=[],t=[];for(o[15]=t[15]=void 0,r.length>16&&(r=this.binl_md5(r,8*a.length)),n=0;n<16;n+=1)o[n]=909522486^r[n],t[n]=1549556828^r[n];return i=this.binl_md5(o.concat(this.rstr2binl(e)),512+8*e.length),this.binl2rstr(this.binl_md5(t.concat(i),640))},g.prototype.rstr2hex=function(a){var e,n,i="";for(n=0;n<a.length;n+=1)e=a.charCodeAt(n),i+="0123456789abcdef".charAt(e>>>4&15)+"0123456789abcdef".charAt(15&e);return i},g.prototype.str2rstr_utf8=function(a){return unescape(encodeURIComponent(a))},g.prototype.raw_md5=function(a){return this.rstr_md5(this.str2rstr_utf8(a))},g.prototype.hex_md5=function(a){return this.rstr2hex(this.raw_md5(a))},g.prototype.raw_hmac_md5=function(a,e){return this.rstr_hmac_md5(this.str2rstr_utf8(a),this.str2rstr_utf8(e))},g.prototype.hex_hmac_md5=function(a,e){return this.rstr2hex(this.raw_hmac_md5(a,e))},g.prototype.md5=function(a,e,n){return e?n?this.raw_hmac_md5(e,a):this.hex_hmac_md5(e,a):n?this.raw_md5(a):this.hex_md5(a)},"undefined"!=typeof exports&&("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.Chance=a),"function"==typeof define&&define.amd&&define([],function(){return a}),"undefined"!=typeof importScripts&&(chance=new a,self.Chance=a),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=a,window.chance=new a)}();
+//# sourceMappingURL=chance.min.js.map
diff --git a/vendor/vue/dist/vue.runtime.js b/vendor/vue/dist/vue.runtime.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d1221063ca107bb93b1801f0d60c827e8abfc2e
--- /dev/null
+++ b/vendor/vue/dist/vue.runtime.js
@@ -0,0 +1,8423 @@
+/*!
+ * Vue.js v2.6.10
+ * (c) 2014-2019 Evan You
+ * Released under the MIT License.
+ */
+(function (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+  typeof define === 'function' && define.amd ? define(factory) :
+  (global = global || self, global.Vue = factory());
+}(this, function () { 'use strict';
+
+  /*  */
+
+  var emptyObject = Object.freeze({});
+
+  // These helpers produce better VM code in JS engines due to their
+  // explicitness and function inlining.
+  function isUndef (v) {
+    return v === undefined || v === null
+  }
+
+  function isDef (v) {
+    return v !== undefined && v !== null
+  }
+
+  function isTrue (v) {
+    return v === true
+  }
+
+  function isFalse (v) {
+    return v === false
+  }
+
+  /**
+   * Check if value is primitive.
+   */
+  function isPrimitive (value) {
+    return (
+      typeof value === 'string' ||
+      typeof value === 'number' ||
+      // $flow-disable-line
+      typeof value === 'symbol' ||
+      typeof value === 'boolean'
+    )
+  }
+
+  /**
+   * Quick object check - this is primarily used to tell
+   * Objects from primitive values when we know the value
+   * is a JSON-compliant type.
+   */
+  function isObject (obj) {
+    return obj !== null && typeof obj === 'object'
+  }
+
+  /**
+   * Get the raw type string of a value, e.g., [object Object].
+   */
+  var _toString = Object.prototype.toString;
+
+  function toRawType (value) {
+    return _toString.call(value).slice(8, -1)
+  }
+
+  /**
+   * Strict object type check. Only returns true
+   * for plain JavaScript objects.
+   */
+  function isPlainObject (obj) {
+    return _toString.call(obj) === '[object Object]'
+  }
+
+  function isRegExp (v) {
+    return _toString.call(v) === '[object RegExp]'
+  }
+
+  /**
+   * Check if val is a valid array index.
+   */
+  function isValidArrayIndex (val) {
+    var n = parseFloat(String(val));
+    return n >= 0 && Math.floor(n) === n && isFinite(val)
+  }
+
+  function isPromise (val) {
+    return (
+      isDef(val) &&
+      typeof val.then === 'function' &&
+      typeof val.catch === 'function'
+    )
+  }
+
+  /**
+   * Convert a value to a string that is actually rendered.
+   */
+  function toString (val) {
+    return val == null
+      ? ''
+      : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
+        ? JSON.stringify(val, null, 2)
+        : String(val)
+  }
+
+  /**
+   * Convert an input value to a number for persistence.
+   * If the conversion fails, return original string.
+   */
+  function toNumber (val) {
+    var n = parseFloat(val);
+    return isNaN(n) ? val : n
+  }
+
+  /**
+   * Make a map and return a function for checking if a key
+   * is in that map.
+   */
+  function makeMap (
+    str,
+    expectsLowerCase
+  ) {
+    var map = Object.create(null);
+    var list = str.split(',');
+    for (var i = 0; i < list.length; i++) {
+      map[list[i]] = true;
+    }
+    return expectsLowerCase
+      ? function (val) { return map[val.toLowerCase()]; }
+      : function (val) { return map[val]; }
+  }
+
+  /**
+   * Check if a tag is a built-in tag.
+   */
+  var isBuiltInTag = makeMap('slot,component', true);
+
+  /**
+   * Check if an attribute is a reserved attribute.
+   */
+  var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
+
+  /**
+   * Remove an item from an array.
+   */
+  function remove (arr, item) {
+    if (arr.length) {
+      var index = arr.indexOf(item);
+      if (index > -1) {
+        return arr.splice(index, 1)
+      }
+    }
+  }
+
+  /**
+   * Check whether an object has the property.
+   */
+  var hasOwnProperty = Object.prototype.hasOwnProperty;
+  function hasOwn (obj, key) {
+    return hasOwnProperty.call(obj, key)
+  }
+
+  /**
+   * Create a cached version of a pure function.
+   */
+  function cached (fn) {
+    var cache = Object.create(null);
+    return (function cachedFn (str) {
+      var hit = cache[str];
+      return hit || (cache[str] = fn(str))
+    })
+  }
+
+  /**
+   * Camelize a hyphen-delimited string.
+   */
+  var camelizeRE = /-(\w)/g;
+  var camelize = cached(function (str) {
+    return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
+  });
+
+  /**
+   * Capitalize a string.
+   */
+  var capitalize = cached(function (str) {
+    return str.charAt(0).toUpperCase() + str.slice(1)
+  });
+
+  /**
+   * Hyphenate a camelCase string.
+   */
+  var hyphenateRE = /\B([A-Z])/g;
+  var hyphenate = cached(function (str) {
+    return str.replace(hyphenateRE, '-$1').toLowerCase()
+  });
+
+  /**
+   * Simple bind polyfill for environments that do not support it,
+   * e.g., PhantomJS 1.x. Technically, we don't need this anymore
+   * since native bind is now performant enough in most browsers.
+   * But removing it would mean breaking code that was able to run in
+   * PhantomJS 1.x, so this must be kept for backward compatibility.
+   */
+
+  /* istanbul ignore next */
+  function polyfillBind (fn, ctx) {
+    function boundFn (a) {
+      var l = arguments.length;
+      return l
+        ? l > 1
+          ? fn.apply(ctx, arguments)
+          : fn.call(ctx, a)
+        : fn.call(ctx)
+    }
+
+    boundFn._length = fn.length;
+    return boundFn
+  }
+
+  function nativeBind (fn, ctx) {
+    return fn.bind(ctx)
+  }
+
+  var bind = Function.prototype.bind
+    ? nativeBind
+    : polyfillBind;
+
+  /**
+   * Convert an Array-like object to a real Array.
+   */
+  function toArray (list, start) {
+    start = start || 0;
+    var i = list.length - start;
+    var ret = new Array(i);
+    while (i--) {
+      ret[i] = list[i + start];
+    }
+    return ret
+  }
+
+  /**
+   * Mix properties into target object.
+   */
+  function extend (to, _from) {
+    for (var key in _from) {
+      to[key] = _from[key];
+    }
+    return to
+  }
+
+  /**
+   * Merge an Array of Objects into a single Object.
+   */
+  function toObject (arr) {
+    var res = {};
+    for (var i = 0; i < arr.length; i++) {
+      if (arr[i]) {
+        extend(res, arr[i]);
+      }
+    }
+    return res
+  }
+
+  /* eslint-disable no-unused-vars */
+
+  /**
+   * Perform no operation.
+   * Stubbing args to make Flow happy without leaving useless transpiled code
+   * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
+   */
+  function noop (a, b, c) {}
+
+  /**
+   * Always return false.
+   */
+  var no = function (a, b, c) { return false; };
+
+  /* eslint-enable no-unused-vars */
+
+  /**
+   * Return the same value.
+   */
+  var identity = function (_) { return _; };
+
+  /**
+   * Check if two values are loosely equal - that is,
+   * if they are plain objects, do they have the same shape?
+   */
+  function looseEqual (a, b) {
+    if (a === b) { return true }
+    var isObjectA = isObject(a);
+    var isObjectB = isObject(b);
+    if (isObjectA && isObjectB) {
+      try {
+        var isArrayA = Array.isArray(a);
+        var isArrayB = Array.isArray(b);
+        if (isArrayA && isArrayB) {
+          return a.length === b.length && a.every(function (e, i) {
+            return looseEqual(e, b[i])
+          })
+        } else if (a instanceof Date && b instanceof Date) {
+          return a.getTime() === b.getTime()
+        } else if (!isArrayA && !isArrayB) {
+          var keysA = Object.keys(a);
+          var keysB = Object.keys(b);
+          return keysA.length === keysB.length && keysA.every(function (key) {
+            return looseEqual(a[key], b[key])
+          })
+        } else {
+          /* istanbul ignore next */
+          return false
+        }
+      } catch (e) {
+        /* istanbul ignore next */
+        return false
+      }
+    } else if (!isObjectA && !isObjectB) {
+      return String(a) === String(b)
+    } else {
+      return false
+    }
+  }
+
+  /**
+   * Return the first index at which a loosely equal value can be
+   * found in the array (if value is a plain object, the array must
+   * contain an object of the same shape), or -1 if it is not present.
+   */
+  function looseIndexOf (arr, val) {
+    for (var i = 0; i < arr.length; i++) {
+      if (looseEqual(arr[i], val)) { return i }
+    }
+    return -1
+  }
+
+  /**
+   * Ensure a function is called only once.
+   */
+  function once (fn) {
+    var called = false;
+    return function () {
+      if (!called) {
+        called = true;
+        fn.apply(this, arguments);
+      }
+    }
+  }
+
+  var SSR_ATTR = 'data-server-rendered';
+
+  var ASSET_TYPES = [
+    'component',
+    'directive',
+    'filter'
+  ];
+
+  var LIFECYCLE_HOOKS = [
+    'beforeCreate',
+    'created',
+    'beforeMount',
+    'mounted',
+    'beforeUpdate',
+    'updated',
+    'beforeDestroy',
+    'destroyed',
+    'activated',
+    'deactivated',
+    'errorCaptured',
+    'serverPrefetch'
+  ];
+
+  /*  */
+
+
+
+  var config = ({
+    /**
+     * Option merge strategies (used in core/util/options)
+     */
+    // $flow-disable-line
+    optionMergeStrategies: Object.create(null),
+
+    /**
+     * Whether to suppress warnings.
+     */
+    silent: false,
+
+    /**
+     * Show production mode tip message on boot?
+     */
+    productionTip: "development" !== 'production',
+
+    /**
+     * Whether to enable devtools
+     */
+    devtools: "development" !== 'production',
+
+    /**
+     * Whether to record perf
+     */
+    performance: false,
+
+    /**
+     * Error handler for watcher errors
+     */
+    errorHandler: null,
+
+    /**
+     * Warn handler for watcher warns
+     */
+    warnHandler: null,
+
+    /**
+     * Ignore certain custom elements
+     */
+    ignoredElements: [],
+
+    /**
+     * Custom user key aliases for v-on
+     */
+    // $flow-disable-line
+    keyCodes: Object.create(null),
+
+    /**
+     * Check if a tag is reserved so that it cannot be registered as a
+     * component. This is platform-dependent and may be overwritten.
+     */
+    isReservedTag: no,
+
+    /**
+     * Check if an attribute is reserved so that it cannot be used as a component
+     * prop. This is platform-dependent and may be overwritten.
+     */
+    isReservedAttr: no,
+
+    /**
+     * Check if a tag is an unknown element.
+     * Platform-dependent.
+     */
+    isUnknownElement: no,
+
+    /**
+     * Get the namespace of an element
+     */
+    getTagNamespace: noop,
+
+    /**
+     * Parse the real tag name for the specific platform.
+     */
+    parsePlatformTagName: identity,
+
+    /**
+     * Check if an attribute must be bound using property, e.g. value
+     * Platform-dependent.
+     */
+    mustUseProp: no,
+
+    /**
+     * Perform updates asynchronously. Intended to be used by Vue Test Utils
+     * This will significantly reduce performance if set to false.
+     */
+    async: true,
+
+    /**
+     * Exposed for legacy reasons
+     */
+    _lifecycleHooks: LIFECYCLE_HOOKS
+  });
+
+  /*  */
+
+  /**
+   * unicode letters used for parsing html tags, component names and property paths.
+   * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
+   * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
+   */
+  var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
+
+  /**
+   * Check if a string starts with $ or _
+   */
+  function isReserved (str) {
+    var c = (str + '').charCodeAt(0);
+    return c === 0x24 || c === 0x5F
+  }
+
+  /**
+   * Define a property.
+   */
+  function def (obj, key, val, enumerable) {
+    Object.defineProperty(obj, key, {
+      value: val,
+      enumerable: !!enumerable,
+      writable: true,
+      configurable: true
+    });
+  }
+
+  /**
+   * Parse simple path.
+   */
+  var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
+  function parsePath (path) {
+    if (bailRE.test(path)) {
+      return
+    }
+    var segments = path.split('.');
+    return function (obj) {
+      for (var i = 0; i < segments.length; i++) {
+        if (!obj) { return }
+        obj = obj[segments[i]];
+      }
+      return obj
+    }
+  }
+
+  /*  */
+
+  // can we use __proto__?
+  var hasProto = '__proto__' in {};
+
+  // Browser environment sniffing
+  var inBrowser = typeof window !== 'undefined';
+  var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
+  var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
+  var UA = inBrowser && window.navigator.userAgent.toLowerCase();
+  var isIE = UA && /msie|trident/.test(UA);
+  var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
+  var isEdge = UA && UA.indexOf('edge/') > 0;
+  var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
+  var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
+  var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
+  var isPhantomJS = UA && /phantomjs/.test(UA);
+  var isFF = UA && UA.match(/firefox\/(\d+)/);
+
+  // Firefox has a "watch" function on Object.prototype...
+  var nativeWatch = ({}).watch;
+
+  var supportsPassive = false;
+  if (inBrowser) {
+    try {
+      var opts = {};
+      Object.defineProperty(opts, 'passive', ({
+        get: function get () {
+          /* istanbul ignore next */
+          supportsPassive = true;
+        }
+      })); // https://github.com/facebook/flow/issues/285
+      window.addEventListener('test-passive', null, opts);
+    } catch (e) {}
+  }
+
+  // this needs to be lazy-evaled because vue may be required before
+  // vue-server-renderer can set VUE_ENV
+  var _isServer;
+  var isServerRendering = function () {
+    if (_isServer === undefined) {
+      /* istanbul ignore if */
+      if (!inBrowser && !inWeex && typeof global !== 'undefined') {
+        // detect presence of vue-server-renderer and avoid
+        // Webpack shimming the process
+        _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
+      } else {
+        _isServer = false;
+      }
+    }
+    return _isServer
+  };
+
+  // detect devtools
+  var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
+
+  /* istanbul ignore next */
+  function isNative (Ctor) {
+    return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
+  }
+
+  var hasSymbol =
+    typeof Symbol !== 'undefined' && isNative(Symbol) &&
+    typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
+
+  var _Set;
+  /* istanbul ignore if */ // $flow-disable-line
+  if (typeof Set !== 'undefined' && isNative(Set)) {
+    // use native Set when available.
+    _Set = Set;
+  } else {
+    // a non-standard Set polyfill that only works with primitive keys.
+    _Set = /*@__PURE__*/(function () {
+      function Set () {
+        this.set = Object.create(null);
+      }
+      Set.prototype.has = function has (key) {
+        return this.set[key] === true
+      };
+      Set.prototype.add = function add (key) {
+        this.set[key] = true;
+      };
+      Set.prototype.clear = function clear () {
+        this.set = Object.create(null);
+      };
+
+      return Set;
+    }());
+  }
+
+  /*  */
+
+  var warn = noop;
+  var tip = noop;
+  var generateComponentTrace = (noop); // work around flow check
+  var formatComponentName = (noop);
+
+  {
+    var hasConsole = typeof console !== 'undefined';
+    var classifyRE = /(?:^|[-_])(\w)/g;
+    var classify = function (str) { return str
+      .replace(classifyRE, function (c) { return c.toUpperCase(); })
+      .replace(/[-_]/g, ''); };
+
+    warn = function (msg, vm) {
+      var trace = vm ? generateComponentTrace(vm) : '';
+
+      if (config.warnHandler) {
+        config.warnHandler.call(null, msg, vm, trace);
+      } else if (hasConsole && (!config.silent)) {
+        console.error(("[Vue warn]: " + msg + trace));
+      }
+    };
+
+    tip = function (msg, vm) {
+      if (hasConsole && (!config.silent)) {
+        console.warn("[Vue tip]: " + msg + (
+          vm ? generateComponentTrace(vm) : ''
+        ));
+      }
+    };
+
+    formatComponentName = function (vm, includeFile) {
+      if (vm.$root === vm) {
+        return '<Root>'
+      }
+      var options = typeof vm === 'function' && vm.cid != null
+        ? vm.options
+        : vm._isVue
+          ? vm.$options || vm.constructor.options
+          : vm;
+      var name = options.name || options._componentTag;
+      var file = options.__file;
+      if (!name && file) {
+        var match = file.match(/([^/\\]+)\.vue$/);
+        name = match && match[1];
+      }
+
+      return (
+        (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
+        (file && includeFile !== false ? (" at " + file) : '')
+      )
+    };
+
+    var repeat = function (str, n) {
+      var res = '';
+      while (n) {
+        if (n % 2 === 1) { res += str; }
+        if (n > 1) { str += str; }
+        n >>= 1;
+      }
+      return res
+    };
+
+    generateComponentTrace = function (vm) {
+      if (vm._isVue && vm.$parent) {
+        var tree = [];
+        var currentRecursiveSequence = 0;
+        while (vm) {
+          if (tree.length > 0) {
+            var last = tree[tree.length - 1];
+            if (last.constructor === vm.constructor) {
+              currentRecursiveSequence++;
+              vm = vm.$parent;
+              continue
+            } else if (currentRecursiveSequence > 0) {
+              tree[tree.length - 1] = [last, currentRecursiveSequence];
+              currentRecursiveSequence = 0;
+            }
+          }
+          tree.push(vm);
+          vm = vm.$parent;
+        }
+        return '\n\nfound in\n\n' + tree
+          .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
+              ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
+              : formatComponentName(vm))); })
+          .join('\n')
+      } else {
+        return ("\n\n(found in " + (formatComponentName(vm)) + ")")
+      }
+    };
+  }
+
+  /*  */
+
+  var uid = 0;
+
+  /**
+   * A dep is an observable that can have multiple
+   * directives subscribing to it.
+   */
+  var Dep = function Dep () {
+    this.id = uid++;
+    this.subs = [];
+  };
+
+  Dep.prototype.addSub = function addSub (sub) {
+    this.subs.push(sub);
+  };
+
+  Dep.prototype.removeSub = function removeSub (sub) {
+    remove(this.subs, sub);
+  };
+
+  Dep.prototype.depend = function depend () {
+    if (Dep.target) {
+      Dep.target.addDep(this);
+    }
+  };
+
+  Dep.prototype.notify = function notify () {
+    // stabilize the subscriber list first
+    var subs = this.subs.slice();
+    if (!config.async) {
+      // subs aren't sorted in scheduler if not running async
+      // we need to sort them now to make sure they fire in correct
+      // order
+      subs.sort(function (a, b) { return a.id - b.id; });
+    }
+    for (var i = 0, l = subs.length; i < l; i++) {
+      subs[i].update();
+    }
+  };
+
+  // The current target watcher being evaluated.
+  // This is globally unique because only one watcher
+  // can be evaluated at a time.
+  Dep.target = null;
+  var targetStack = [];
+
+  function pushTarget (target) {
+    targetStack.push(target);
+    Dep.target = target;
+  }
+
+  function popTarget () {
+    targetStack.pop();
+    Dep.target = targetStack[targetStack.length - 1];
+  }
+
+  /*  */
+
+  var VNode = function VNode (
+    tag,
+    data,
+    children,
+    text,
+    elm,
+    context,
+    componentOptions,
+    asyncFactory
+  ) {
+    this.tag = tag;
+    this.data = data;
+    this.children = children;
+    this.text = text;
+    this.elm = elm;
+    this.ns = undefined;
+    this.context = context;
+    this.fnContext = undefined;
+    this.fnOptions = undefined;
+    this.fnScopeId = undefined;
+    this.key = data && data.key;
+    this.componentOptions = componentOptions;
+    this.componentInstance = undefined;
+    this.parent = undefined;
+    this.raw = false;
+    this.isStatic = false;
+    this.isRootInsert = true;
+    this.isComment = false;
+    this.isCloned = false;
+    this.isOnce = false;
+    this.asyncFactory = asyncFactory;
+    this.asyncMeta = undefined;
+    this.isAsyncPlaceholder = false;
+  };
+
+  var prototypeAccessors = { child: { configurable: true } };
+
+  // DEPRECATED: alias for componentInstance for backwards compat.
+  /* istanbul ignore next */
+  prototypeAccessors.child.get = function () {
+    return this.componentInstance
+  };
+
+  Object.defineProperties( VNode.prototype, prototypeAccessors );
+
+  var createEmptyVNode = function (text) {
+    if ( text === void 0 ) text = '';
+
+    var node = new VNode();
+    node.text = text;
+    node.isComment = true;
+    return node
+  };
+
+  function createTextVNode (val) {
+    return new VNode(undefined, undefined, undefined, String(val))
+  }
+
+  // optimized shallow clone
+  // used for static nodes and slot nodes because they may be reused across
+  // multiple renders, cloning them avoids errors when DOM manipulations rely
+  // on their elm reference.
+  function cloneVNode (vnode) {
+    var cloned = new VNode(
+      vnode.tag,
+      vnode.data,
+      // #7975
+      // clone children array to avoid mutating original in case of cloning
+      // a child.
+      vnode.children && vnode.children.slice(),
+      vnode.text,
+      vnode.elm,
+      vnode.context,
+      vnode.componentOptions,
+      vnode.asyncFactory
+    );
+    cloned.ns = vnode.ns;
+    cloned.isStatic = vnode.isStatic;
+    cloned.key = vnode.key;
+    cloned.isComment = vnode.isComment;
+    cloned.fnContext = vnode.fnContext;
+    cloned.fnOptions = vnode.fnOptions;
+    cloned.fnScopeId = vnode.fnScopeId;
+    cloned.asyncMeta = vnode.asyncMeta;
+    cloned.isCloned = true;
+    return cloned
+  }
+
+  /*
+   * not type checking this file because flow doesn't play well with
+   * dynamically accessing methods on Array prototype
+   */
+
+  var arrayProto = Array.prototype;
+  var arrayMethods = Object.create(arrayProto);
+
+  var methodsToPatch = [
+    'push',
+    'pop',
+    'shift',
+    'unshift',
+    'splice',
+    'sort',
+    'reverse'
+  ];
+
+  /**
+   * Intercept mutating methods and emit events
+   */
+  methodsToPatch.forEach(function (method) {
+    // cache original method
+    var original = arrayProto[method];
+    def(arrayMethods, method, function mutator () {
+      var args = [], len = arguments.length;
+      while ( len-- ) args[ len ] = arguments[ len ];
+
+      var result = original.apply(this, args);
+      var ob = this.__ob__;
+      var inserted;
+      switch (method) {
+        case 'push':
+        case 'unshift':
+          inserted = args;
+          break
+        case 'splice':
+          inserted = args.slice(2);
+          break
+      }
+      if (inserted) { ob.observeArray(inserted); }
+      // notify change
+      ob.dep.notify();
+      return result
+    });
+  });
+
+  /*  */
+
+  var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
+
+  /**
+   * In some cases we may want to disable observation inside a component's
+   * update computation.
+   */
+  var shouldObserve = true;
+
+  function toggleObserving (value) {
+    shouldObserve = value;
+  }
+
+  /**
+   * Observer class that is attached to each observed
+   * object. Once attached, the observer converts the target
+   * object's property keys into getter/setters that
+   * collect dependencies and dispatch updates.
+   */
+  var Observer = function Observer (value) {
+    this.value = value;
+    this.dep = new Dep();
+    this.vmCount = 0;
+    def(value, '__ob__', this);
+    if (Array.isArray(value)) {
+      if (hasProto) {
+        protoAugment(value, arrayMethods);
+      } else {
+        copyAugment(value, arrayMethods, arrayKeys);
+      }
+      this.observeArray(value);
+    } else {
+      this.walk(value);
+    }
+  };
+
+  /**
+   * Walk through all properties and convert them into
+   * getter/setters. This method should only be called when
+   * value type is Object.
+   */
+  Observer.prototype.walk = function walk (obj) {
+    var keys = Object.keys(obj);
+    for (var i = 0; i < keys.length; i++) {
+      defineReactive$$1(obj, keys[i]);
+    }
+  };
+
+  /**
+   * Observe a list of Array items.
+   */
+  Observer.prototype.observeArray = function observeArray (items) {
+    for (var i = 0, l = items.length; i < l; i++) {
+      observe(items[i]);
+    }
+  };
+
+  // helpers
+
+  /**
+   * Augment a target Object or Array by intercepting
+   * the prototype chain using __proto__
+   */
+  function protoAugment (target, src) {
+    /* eslint-disable no-proto */
+    target.__proto__ = src;
+    /* eslint-enable no-proto */
+  }
+
+  /**
+   * Augment a target Object or Array by defining
+   * hidden properties.
+   */
+  /* istanbul ignore next */
+  function copyAugment (target, src, keys) {
+    for (var i = 0, l = keys.length; i < l; i++) {
+      var key = keys[i];
+      def(target, key, src[key]);
+    }
+  }
+
+  /**
+   * Attempt to create an observer instance for a value,
+   * returns the new observer if successfully observed,
+   * or the existing observer if the value already has one.
+   */
+  function observe (value, asRootData) {
+    if (!isObject(value) || value instanceof VNode) {
+      return
+    }
+    var ob;
+    if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
+      ob = value.__ob__;
+    } else if (
+      shouldObserve &&
+      !isServerRendering() &&
+      (Array.isArray(value) || isPlainObject(value)) &&
+      Object.isExtensible(value) &&
+      !value._isVue
+    ) {
+      ob = new Observer(value);
+    }
+    if (asRootData && ob) {
+      ob.vmCount++;
+    }
+    return ob
+  }
+
+  /**
+   * Define a reactive property on an Object.
+   */
+  function defineReactive$$1 (
+    obj,
+    key,
+    val,
+    customSetter,
+    shallow
+  ) {
+    var dep = new Dep();
+
+    var property = Object.getOwnPropertyDescriptor(obj, key);
+    if (property && property.configurable === false) {
+      return
+    }
+
+    // cater for pre-defined getter/setters
+    var getter = property && property.get;
+    var setter = property && property.set;
+    if ((!getter || setter) && arguments.length === 2) {
+      val = obj[key];
+    }
+
+    var childOb = !shallow && observe(val);
+    Object.defineProperty(obj, key, {
+      enumerable: true,
+      configurable: true,
+      get: function reactiveGetter () {
+        var value = getter ? getter.call(obj) : val;
+        if (Dep.target) {
+          dep.depend();
+          if (childOb) {
+            childOb.dep.depend();
+            if (Array.isArray(value)) {
+              dependArray(value);
+            }
+          }
+        }
+        return value
+      },
+      set: function reactiveSetter (newVal) {
+        var value = getter ? getter.call(obj) : val;
+        /* eslint-disable no-self-compare */
+        if (newVal === value || (newVal !== newVal && value !== value)) {
+          return
+        }
+        /* eslint-enable no-self-compare */
+        if (customSetter) {
+          customSetter();
+        }
+        // #7981: for accessor properties without setter
+        if (getter && !setter) { return }
+        if (setter) {
+          setter.call(obj, newVal);
+        } else {
+          val = newVal;
+        }
+        childOb = !shallow && observe(newVal);
+        dep.notify();
+      }
+    });
+  }
+
+  /**
+   * Set a property on an object. Adds the new property and
+   * triggers change notification if the property doesn't
+   * already exist.
+   */
+  function set (target, key, val) {
+    if (isUndef(target) || isPrimitive(target)
+    ) {
+      warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
+    }
+    if (Array.isArray(target) && isValidArrayIndex(key)) {
+      target.length = Math.max(target.length, key);
+      target.splice(key, 1, val);
+      return val
+    }
+    if (key in target && !(key in Object.prototype)) {
+      target[key] = val;
+      return val
+    }
+    var ob = (target).__ob__;
+    if (target._isVue || (ob && ob.vmCount)) {
+      warn(
+        'Avoid adding reactive properties to a Vue instance or its root $data ' +
+        'at runtime - declare it upfront in the data option.'
+      );
+      return val
+    }
+    if (!ob) {
+      target[key] = val;
+      return val
+    }
+    defineReactive$$1(ob.value, key, val);
+    ob.dep.notify();
+    return val
+  }
+
+  /**
+   * Delete a property and trigger change if necessary.
+   */
+  function del (target, key) {
+    if (isUndef(target) || isPrimitive(target)
+    ) {
+      warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
+    }
+    if (Array.isArray(target) && isValidArrayIndex(key)) {
+      target.splice(key, 1);
+      return
+    }
+    var ob = (target).__ob__;
+    if (target._isVue || (ob && ob.vmCount)) {
+      warn(
+        'Avoid deleting properties on a Vue instance or its root $data ' +
+        '- just set it to null.'
+      );
+      return
+    }
+    if (!hasOwn(target, key)) {
+      return
+    }
+    delete target[key];
+    if (!ob) {
+      return
+    }
+    ob.dep.notify();
+  }
+
+  /**
+   * Collect dependencies on array elements when the array is touched, since
+   * we cannot intercept array element access like property getters.
+   */
+  function dependArray (value) {
+    for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
+      e = value[i];
+      e && e.__ob__ && e.__ob__.dep.depend();
+      if (Array.isArray(e)) {
+        dependArray(e);
+      }
+    }
+  }
+
+  /*  */
+
+  /**
+   * Option overwriting strategies are functions that handle
+   * how to merge a parent option value and a child option
+   * value into the final value.
+   */
+  var strats = config.optionMergeStrategies;
+
+  /**
+   * Options with restrictions
+   */
+  {
+    strats.el = strats.propsData = function (parent, child, vm, key) {
+      if (!vm) {
+        warn(
+          "option \"" + key + "\" can only be used during instance " +
+          'creation with the `new` keyword.'
+        );
+      }
+      return defaultStrat(parent, child)
+    };
+  }
+
+  /**
+   * Helper that recursively merges two data objects together.
+   */
+  function mergeData (to, from) {
+    if (!from) { return to }
+    var key, toVal, fromVal;
+
+    var keys = hasSymbol
+      ? Reflect.ownKeys(from)
+      : Object.keys(from);
+
+    for (var i = 0; i < keys.length; i++) {
+      key = keys[i];
+      // in case the object is already observed...
+      if (key === '__ob__') { continue }
+      toVal = to[key];
+      fromVal = from[key];
+      if (!hasOwn(to, key)) {
+        set(to, key, fromVal);
+      } else if (
+        toVal !== fromVal &&
+        isPlainObject(toVal) &&
+        isPlainObject(fromVal)
+      ) {
+        mergeData(toVal, fromVal);
+      }
+    }
+    return to
+  }
+
+  /**
+   * Data
+   */
+  function mergeDataOrFn (
+    parentVal,
+    childVal,
+    vm
+  ) {
+    if (!vm) {
+      // in a Vue.extend merge, both should be functions
+      if (!childVal) {
+        return parentVal
+      }
+      if (!parentVal) {
+        return childVal
+      }
+      // when parentVal & childVal are both present,
+      // we need to return a function that returns the
+      // merged result of both functions... no need to
+      // check if parentVal is a function here because
+      // it has to be a function to pass previous merges.
+      return function mergedDataFn () {
+        return mergeData(
+          typeof childVal === 'function' ? childVal.call(this, this) : childVal,
+          typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
+        )
+      }
+    } else {
+      return function mergedInstanceDataFn () {
+        // instance merge
+        var instanceData = typeof childVal === 'function'
+          ? childVal.call(vm, vm)
+          : childVal;
+        var defaultData = typeof parentVal === 'function'
+          ? parentVal.call(vm, vm)
+          : parentVal;
+        if (instanceData) {
+          return mergeData(instanceData, defaultData)
+        } else {
+          return defaultData
+        }
+      }
+    }
+  }
+
+  strats.data = function (
+    parentVal,
+    childVal,
+    vm
+  ) {
+    if (!vm) {
+      if (childVal && typeof childVal !== 'function') {
+        warn(
+          'The "data" option should be a function ' +
+          'that returns a per-instance value in component ' +
+          'definitions.',
+          vm
+        );
+
+        return parentVal
+      }
+      return mergeDataOrFn(parentVal, childVal)
+    }
+
+    return mergeDataOrFn(parentVal, childVal, vm)
+  };
+
+  /**
+   * Hooks and props are merged as arrays.
+   */
+  function mergeHook (
+    parentVal,
+    childVal
+  ) {
+    var res = childVal
+      ? parentVal
+        ? parentVal.concat(childVal)
+        : Array.isArray(childVal)
+          ? childVal
+          : [childVal]
+      : parentVal;
+    return res
+      ? dedupeHooks(res)
+      : res
+  }
+
+  function dedupeHooks (hooks) {
+    var res = [];
+    for (var i = 0; i < hooks.length; i++) {
+      if (res.indexOf(hooks[i]) === -1) {
+        res.push(hooks[i]);
+      }
+    }
+    return res
+  }
+
+  LIFECYCLE_HOOKS.forEach(function (hook) {
+    strats[hook] = mergeHook;
+  });
+
+  /**
+   * Assets
+   *
+   * When a vm is present (instance creation), we need to do
+   * a three-way merge between constructor options, instance
+   * options and parent options.
+   */
+  function mergeAssets (
+    parentVal,
+    childVal,
+    vm,
+    key
+  ) {
+    var res = Object.create(parentVal || null);
+    if (childVal) {
+      assertObjectType(key, childVal, vm);
+      return extend(res, childVal)
+    } else {
+      return res
+    }
+  }
+
+  ASSET_TYPES.forEach(function (type) {
+    strats[type + 's'] = mergeAssets;
+  });
+
+  /**
+   * Watchers.
+   *
+   * Watchers hashes should not overwrite one
+   * another, so we merge them as arrays.
+   */
+  strats.watch = function (
+    parentVal,
+    childVal,
+    vm,
+    key
+  ) {
+    // work around Firefox's Object.prototype.watch...
+    if (parentVal === nativeWatch) { parentVal = undefined; }
+    if (childVal === nativeWatch) { childVal = undefined; }
+    /* istanbul ignore if */
+    if (!childVal) { return Object.create(parentVal || null) }
+    {
+      assertObjectType(key, childVal, vm);
+    }
+    if (!parentVal) { return childVal }
+    var ret = {};
+    extend(ret, parentVal);
+    for (var key$1 in childVal) {
+      var parent = ret[key$1];
+      var child = childVal[key$1];
+      if (parent && !Array.isArray(parent)) {
+        parent = [parent];
+      }
+      ret[key$1] = parent
+        ? parent.concat(child)
+        : Array.isArray(child) ? child : [child];
+    }
+    return ret
+  };
+
+  /**
+   * Other object hashes.
+   */
+  strats.props =
+  strats.methods =
+  strats.inject =
+  strats.computed = function (
+    parentVal,
+    childVal,
+    vm,
+    key
+  ) {
+    if (childVal && "development" !== 'production') {
+      assertObjectType(key, childVal, vm);
+    }
+    if (!parentVal) { return childVal }
+    var ret = Object.create(null);
+    extend(ret, parentVal);
+    if (childVal) { extend(ret, childVal); }
+    return ret
+  };
+  strats.provide = mergeDataOrFn;
+
+  /**
+   * Default strategy.
+   */
+  var defaultStrat = function (parentVal, childVal) {
+    return childVal === undefined
+      ? parentVal
+      : childVal
+  };
+
+  /**
+   * Validate component names
+   */
+  function checkComponents (options) {
+    for (var key in options.components) {
+      validateComponentName(key);
+    }
+  }
+
+  function validateComponentName (name) {
+    if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
+      warn(
+        'Invalid component name: "' + name + '". Component names ' +
+        'should conform to valid custom element name in html5 specification.'
+      );
+    }
+    if (isBuiltInTag(name) || config.isReservedTag(name)) {
+      warn(
+        'Do not use built-in or reserved HTML elements as component ' +
+        'id: ' + name
+      );
+    }
+  }
+
+  /**
+   * Ensure all props option syntax are normalized into the
+   * Object-based format.
+   */
+  function normalizeProps (options, vm) {
+    var props = options.props;
+    if (!props) { return }
+    var res = {};
+    var i, val, name;
+    if (Array.isArray(props)) {
+      i = props.length;
+      while (i--) {
+        val = props[i];
+        if (typeof val === 'string') {
+          name = camelize(val);
+          res[name] = { type: null };
+        } else {
+          warn('props must be strings when using array syntax.');
+        }
+      }
+    } else if (isPlainObject(props)) {
+      for (var key in props) {
+        val = props[key];
+        name = camelize(key);
+        res[name] = isPlainObject(val)
+          ? val
+          : { type: val };
+      }
+    } else {
+      warn(
+        "Invalid value for option \"props\": expected an Array or an Object, " +
+        "but got " + (toRawType(props)) + ".",
+        vm
+      );
+    }
+    options.props = res;
+  }
+
+  /**
+   * Normalize all injections into Object-based format
+   */
+  function normalizeInject (options, vm) {
+    var inject = options.inject;
+    if (!inject) { return }
+    var normalized = options.inject = {};
+    if (Array.isArray(inject)) {
+      for (var i = 0; i < inject.length; i++) {
+        normalized[inject[i]] = { from: inject[i] };
+      }
+    } else if (isPlainObject(inject)) {
+      for (var key in inject) {
+        var val = inject[key];
+        normalized[key] = isPlainObject(val)
+          ? extend({ from: key }, val)
+          : { from: val };
+      }
+    } else {
+      warn(
+        "Invalid value for option \"inject\": expected an Array or an Object, " +
+        "but got " + (toRawType(inject)) + ".",
+        vm
+      );
+    }
+  }
+
+  /**
+   * Normalize raw function directives into object format.
+   */
+  function normalizeDirectives (options) {
+    var dirs = options.directives;
+    if (dirs) {
+      for (var key in dirs) {
+        var def$$1 = dirs[key];
+        if (typeof def$$1 === 'function') {
+          dirs[key] = { bind: def$$1, update: def$$1 };
+        }
+      }
+    }
+  }
+
+  function assertObjectType (name, value, vm) {
+    if (!isPlainObject(value)) {
+      warn(
+        "Invalid value for option \"" + name + "\": expected an Object, " +
+        "but got " + (toRawType(value)) + ".",
+        vm
+      );
+    }
+  }
+
+  /**
+   * Merge two option objects into a new one.
+   * Core utility used in both instantiation and inheritance.
+   */
+  function mergeOptions (
+    parent,
+    child,
+    vm
+  ) {
+    {
+      checkComponents(child);
+    }
+
+    if (typeof child === 'function') {
+      child = child.options;
+    }
+
+    normalizeProps(child, vm);
+    normalizeInject(child, vm);
+    normalizeDirectives(child);
+
+    // Apply extends and mixins on the child options,
+    // but only if it is a raw options object that isn't
+    // the result of another mergeOptions call.
+    // Only merged options has the _base property.
+    if (!child._base) {
+      if (child.extends) {
+        parent = mergeOptions(parent, child.extends, vm);
+      }
+      if (child.mixins) {
+        for (var i = 0, l = child.mixins.length; i < l; i++) {
+          parent = mergeOptions(parent, child.mixins[i], vm);
+        }
+      }
+    }
+
+    var options = {};
+    var key;
+    for (key in parent) {
+      mergeField(key);
+    }
+    for (key in child) {
+      if (!hasOwn(parent, key)) {
+        mergeField(key);
+      }
+    }
+    function mergeField (key) {
+      var strat = strats[key] || defaultStrat;
+      options[key] = strat(parent[key], child[key], vm, key);
+    }
+    return options
+  }
+
+  /**
+   * Resolve an asset.
+   * This function is used because child instances need access
+   * to assets defined in its ancestor chain.
+   */
+  function resolveAsset (
+    options,
+    type,
+    id,
+    warnMissing
+  ) {
+    /* istanbul ignore if */
+    if (typeof id !== 'string') {
+      return
+    }
+    var assets = options[type];
+    // check local registration variations first
+    if (hasOwn(assets, id)) { return assets[id] }
+    var camelizedId = camelize(id);
+    if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
+    var PascalCaseId = capitalize(camelizedId);
+    if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
+    // fallback to prototype chain
+    var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
+    if (warnMissing && !res) {
+      warn(
+        'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
+        options
+      );
+    }
+    return res
+  }
+
+  /*  */
+
+
+
+  function validateProp (
+    key,
+    propOptions,
+    propsData,
+    vm
+  ) {
+    var prop = propOptions[key];
+    var absent = !hasOwn(propsData, key);
+    var value = propsData[key];
+    // boolean casting
+    var booleanIndex = getTypeIndex(Boolean, prop.type);
+    if (booleanIndex > -1) {
+      if (absent && !hasOwn(prop, 'default')) {
+        value = false;
+      } else if (value === '' || value === hyphenate(key)) {
+        // only cast empty string / same name to boolean if
+        // boolean has higher priority
+        var stringIndex = getTypeIndex(String, prop.type);
+        if (stringIndex < 0 || booleanIndex < stringIndex) {
+          value = true;
+        }
+      }
+    }
+    // check default value
+    if (value === undefined) {
+      value = getPropDefaultValue(vm, prop, key);
+      // since the default value is a fresh copy,
+      // make sure to observe it.
+      var prevShouldObserve = shouldObserve;
+      toggleObserving(true);
+      observe(value);
+      toggleObserving(prevShouldObserve);
+    }
+    {
+      assertProp(prop, key, value, vm, absent);
+    }
+    return value
+  }
+
+  /**
+   * Get the default value of a prop.
+   */
+  function getPropDefaultValue (vm, prop, key) {
+    // no default, return undefined
+    if (!hasOwn(prop, 'default')) {
+      return undefined
+    }
+    var def = prop.default;
+    // warn against non-factory defaults for Object & Array
+    if (isObject(def)) {
+      warn(
+        'Invalid default value for prop "' + key + '": ' +
+        'Props with type Object/Array must use a factory function ' +
+        'to return the default value.',
+        vm
+      );
+    }
+    // the raw prop value was also undefined from previous render,
+    // return previous default value to avoid unnecessary watcher trigger
+    if (vm && vm.$options.propsData &&
+      vm.$options.propsData[key] === undefined &&
+      vm._props[key] !== undefined
+    ) {
+      return vm._props[key]
+    }
+    // call factory function for non-Function types
+    // a value is Function if its prototype is function even across different execution context
+    return typeof def === 'function' && getType(prop.type) !== 'Function'
+      ? def.call(vm)
+      : def
+  }
+
+  /**
+   * Assert whether a prop is valid.
+   */
+  function assertProp (
+    prop,
+    name,
+    value,
+    vm,
+    absent
+  ) {
+    if (prop.required && absent) {
+      warn(
+        'Missing required prop: "' + name + '"',
+        vm
+      );
+      return
+    }
+    if (value == null && !prop.required) {
+      return
+    }
+    var type = prop.type;
+    var valid = !type || type === true;
+    var expectedTypes = [];
+    if (type) {
+      if (!Array.isArray(type)) {
+        type = [type];
+      }
+      for (var i = 0; i < type.length && !valid; i++) {
+        var assertedType = assertType(value, type[i]);
+        expectedTypes.push(assertedType.expectedType || '');
+        valid = assertedType.valid;
+      }
+    }
+
+    if (!valid) {
+      warn(
+        getInvalidTypeMessage(name, value, expectedTypes),
+        vm
+      );
+      return
+    }
+    var validator = prop.validator;
+    if (validator) {
+      if (!validator(value)) {
+        warn(
+          'Invalid prop: custom validator check failed for prop "' + name + '".',
+          vm
+        );
+      }
+    }
+  }
+
+  var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
+
+  function assertType (value, type) {
+    var valid;
+    var expectedType = getType(type);
+    if (simpleCheckRE.test(expectedType)) {
+      var t = typeof value;
+      valid = t === expectedType.toLowerCase();
+      // for primitive wrapper objects
+      if (!valid && t === 'object') {
+        valid = value instanceof type;
+      }
+    } else if (expectedType === 'Object') {
+      valid = isPlainObject(value);
+    } else if (expectedType === 'Array') {
+      valid = Array.isArray(value);
+    } else {
+      valid = value instanceof type;
+    }
+    return {
+      valid: valid,
+      expectedType: expectedType
+    }
+  }
+
+  /**
+   * Use function string name to check built-in types,
+   * because a simple equality check will fail when running
+   * across different vms / iframes.
+   */
+  function getType (fn) {
+    var match = fn && fn.toString().match(/^\s*function (\w+)/);
+    return match ? match[1] : ''
+  }
+
+  function isSameType (a, b) {
+    return getType(a) === getType(b)
+  }
+
+  function getTypeIndex (type, expectedTypes) {
+    if (!Array.isArray(expectedTypes)) {
+      return isSameType(expectedTypes, type) ? 0 : -1
+    }
+    for (var i = 0, len = expectedTypes.length; i < len; i++) {
+      if (isSameType(expectedTypes[i], type)) {
+        return i
+      }
+    }
+    return -1
+  }
+
+  function getInvalidTypeMessage (name, value, expectedTypes) {
+    var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
+      " Expected " + (expectedTypes.map(capitalize).join(', '));
+    var expectedType = expectedTypes[0];
+    var receivedType = toRawType(value);
+    var expectedValue = styleValue(value, expectedType);
+    var receivedValue = styleValue(value, receivedType);
+    // check if we need to specify expected value
+    if (expectedTypes.length === 1 &&
+        isExplicable(expectedType) &&
+        !isBoolean(expectedType, receivedType)) {
+      message += " with value " + expectedValue;
+    }
+    message += ", got " + receivedType + " ";
+    // check if we need to specify received value
+    if (isExplicable(receivedType)) {
+      message += "with value " + receivedValue + ".";
+    }
+    return message
+  }
+
+  function styleValue (value, type) {
+    if (type === 'String') {
+      return ("\"" + value + "\"")
+    } else if (type === 'Number') {
+      return ("" + (Number(value)))
+    } else {
+      return ("" + value)
+    }
+  }
+
+  function isExplicable (value) {
+    var explicitTypes = ['string', 'number', 'boolean'];
+    return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
+  }
+
+  function isBoolean () {
+    var args = [], len = arguments.length;
+    while ( len-- ) args[ len ] = arguments[ len ];
+
+    return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
+  }
+
+  /*  */
+
+  function handleError (err, vm, info) {
+    // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
+    // See: https://github.com/vuejs/vuex/issues/1505
+    pushTarget();
+    try {
+      if (vm) {
+        var cur = vm;
+        while ((cur = cur.$parent)) {
+          var hooks = cur.$options.errorCaptured;
+          if (hooks) {
+            for (var i = 0; i < hooks.length; i++) {
+              try {
+                var capture = hooks[i].call(cur, err, vm, info) === false;
+                if (capture) { return }
+              } catch (e) {
+                globalHandleError(e, cur, 'errorCaptured hook');
+              }
+            }
+          }
+        }
+      }
+      globalHandleError(err, vm, info);
+    } finally {
+      popTarget();
+    }
+  }
+
+  function invokeWithErrorHandling (
+    handler,
+    context,
+    args,
+    vm,
+    info
+  ) {
+    var res;
+    try {
+      res = args ? handler.apply(context, args) : handler.call(context);
+      if (res && !res._isVue && isPromise(res) && !res._handled) {
+        res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
+        // issue #9511
+        // avoid catch triggering multiple times when nested calls
+        res._handled = true;
+      }
+    } catch (e) {
+      handleError(e, vm, info);
+    }
+    return res
+  }
+
+  function globalHandleError (err, vm, info) {
+    if (config.errorHandler) {
+      try {
+        return config.errorHandler.call(null, err, vm, info)
+      } catch (e) {
+        // if the user intentionally throws the original error in the handler,
+        // do not log it twice
+        if (e !== err) {
+          logError(e, null, 'config.errorHandler');
+        }
+      }
+    }
+    logError(err, vm, info);
+  }
+
+  function logError (err, vm, info) {
+    {
+      warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
+    }
+    /* istanbul ignore else */
+    if ((inBrowser || inWeex) && typeof console !== 'undefined') {
+      console.error(err);
+    } else {
+      throw err
+    }
+  }
+
+  /*  */
+
+  var isUsingMicroTask = false;
+
+  var callbacks = [];
+  var pending = false;
+
+  function flushCallbacks () {
+    pending = false;
+    var copies = callbacks.slice(0);
+    callbacks.length = 0;
+    for (var i = 0; i < copies.length; i++) {
+      copies[i]();
+    }
+  }
+
+  // Here we have async deferring wrappers using microtasks.
+  // In 2.5 we used (macro) tasks (in combination with microtasks).
+  // However, it has subtle problems when state is changed right before repaint
+  // (e.g. #6813, out-in transitions).
+  // Also, using (macro) tasks in event handler would cause some weird behaviors
+  // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
+  // So we now use microtasks everywhere, again.
+  // A major drawback of this tradeoff is that there are some scenarios
+  // where microtasks have too high a priority and fire in between supposedly
+  // sequential events (e.g. #4521, #6690, which have workarounds)
+  // or even between bubbling of the same event (#6566).
+  var timerFunc;
+
+  // The nextTick behavior leverages the microtask queue, which can be accessed
+  // via either native Promise.then or MutationObserver.
+  // MutationObserver has wider support, however it is seriously bugged in
+  // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
+  // completely stops working after triggering a few times... so, if native
+  // Promise is available, we will use it:
+  /* istanbul ignore next, $flow-disable-line */
+  if (typeof Promise !== 'undefined' && isNative(Promise)) {
+    var p = Promise.resolve();
+    timerFunc = function () {
+      p.then(flushCallbacks);
+      // In problematic UIWebViews, Promise.then doesn't completely break, but
+      // it can get stuck in a weird state where callbacks are pushed into the
+      // microtask queue but the queue isn't being flushed, until the browser
+      // needs to do some other work, e.g. handle a timer. Therefore we can
+      // "force" the microtask queue to be flushed by adding an empty timer.
+      if (isIOS) { setTimeout(noop); }
+    };
+    isUsingMicroTask = true;
+  } else if (!isIE && typeof MutationObserver !== 'undefined' && (
+    isNative(MutationObserver) ||
+    // PhantomJS and iOS 7.x
+    MutationObserver.toString() === '[object MutationObserverConstructor]'
+  )) {
+    // Use MutationObserver where native Promise is not available,
+    // e.g. PhantomJS, iOS7, Android 4.4
+    // (#6466 MutationObserver is unreliable in IE11)
+    var counter = 1;
+    var observer = new MutationObserver(flushCallbacks);
+    var textNode = document.createTextNode(String(counter));
+    observer.observe(textNode, {
+      characterData: true
+    });
+    timerFunc = function () {
+      counter = (counter + 1) % 2;
+      textNode.data = String(counter);
+    };
+    isUsingMicroTask = true;
+  } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
+    // Fallback to setImmediate.
+    // Techinically it leverages the (macro) task queue,
+    // but it is still a better choice than setTimeout.
+    timerFunc = function () {
+      setImmediate(flushCallbacks);
+    };
+  } else {
+    // Fallback to setTimeout.
+    timerFunc = function () {
+      setTimeout(flushCallbacks, 0);
+    };
+  }
+
+  function nextTick (cb, ctx) {
+    var _resolve;
+    callbacks.push(function () {
+      if (cb) {
+        try {
+          cb.call(ctx);
+        } catch (e) {
+          handleError(e, ctx, 'nextTick');
+        }
+      } else if (_resolve) {
+        _resolve(ctx);
+      }
+    });
+    if (!pending) {
+      pending = true;
+      timerFunc();
+    }
+    // $flow-disable-line
+    if (!cb && typeof Promise !== 'undefined') {
+      return new Promise(function (resolve) {
+        _resolve = resolve;
+      })
+    }
+  }
+
+  /*  */
+
+  /* not type checking this file because flow doesn't play well with Proxy */
+
+  var initProxy;
+
+  {
+    var allowedGlobals = makeMap(
+      'Infinity,undefined,NaN,isFinite,isNaN,' +
+      'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
+      'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
+      'require' // for Webpack/Browserify
+    );
+
+    var warnNonPresent = function (target, key) {
+      warn(
+        "Property or method \"" + key + "\" is not defined on the instance but " +
+        'referenced during render. Make sure that this property is reactive, ' +
+        'either in the data option, or for class-based components, by ' +
+        'initializing the property. ' +
+        'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
+        target
+      );
+    };
+
+    var warnReservedPrefix = function (target, key) {
+      warn(
+        "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
+        'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
+        'prevent conflicts with Vue internals' +
+        'See: https://vuejs.org/v2/api/#data',
+        target
+      );
+    };
+
+    var hasProxy =
+      typeof Proxy !== 'undefined' && isNative(Proxy);
+
+    if (hasProxy) {
+      var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
+      config.keyCodes = new Proxy(config.keyCodes, {
+        set: function set (target, key, value) {
+          if (isBuiltInModifier(key)) {
+            warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
+            return false
+          } else {
+            target[key] = value;
+            return true
+          }
+        }
+      });
+    }
+
+    var hasHandler = {
+      has: function has (target, key) {
+        var has = key in target;
+        var isAllowed = allowedGlobals(key) ||
+          (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
+        if (!has && !isAllowed) {
+          if (key in target.$data) { warnReservedPrefix(target, key); }
+          else { warnNonPresent(target, key); }
+        }
+        return has || !isAllowed
+      }
+    };
+
+    var getHandler = {
+      get: function get (target, key) {
+        if (typeof key === 'string' && !(key in target)) {
+          if (key in target.$data) { warnReservedPrefix(target, key); }
+          else { warnNonPresent(target, key); }
+        }
+        return target[key]
+      }
+    };
+
+    initProxy = function initProxy (vm) {
+      if (hasProxy) {
+        // determine which proxy handler to use
+        var options = vm.$options;
+        var handlers = options.render && options.render._withStripped
+          ? getHandler
+          : hasHandler;
+        vm._renderProxy = new Proxy(vm, handlers);
+      } else {
+        vm._renderProxy = vm;
+      }
+    };
+  }
+
+  /*  */
+
+  var seenObjects = new _Set();
+
+  /**
+   * Recursively traverse an object to evoke all converted
+   * getters, so that every nested property inside the object
+   * is collected as a "deep" dependency.
+   */
+  function traverse (val) {
+    _traverse(val, seenObjects);
+    seenObjects.clear();
+  }
+
+  function _traverse (val, seen) {
+    var i, keys;
+    var isA = Array.isArray(val);
+    if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
+      return
+    }
+    if (val.__ob__) {
+      var depId = val.__ob__.dep.id;
+      if (seen.has(depId)) {
+        return
+      }
+      seen.add(depId);
+    }
+    if (isA) {
+      i = val.length;
+      while (i--) { _traverse(val[i], seen); }
+    } else {
+      keys = Object.keys(val);
+      i = keys.length;
+      while (i--) { _traverse(val[keys[i]], seen); }
+    }
+  }
+
+  var mark;
+  var measure;
+
+  {
+    var perf = inBrowser && window.performance;
+    /* istanbul ignore if */
+    if (
+      perf &&
+      perf.mark &&
+      perf.measure &&
+      perf.clearMarks &&
+      perf.clearMeasures
+    ) {
+      mark = function (tag) { return perf.mark(tag); };
+      measure = function (name, startTag, endTag) {
+        perf.measure(name, startTag, endTag);
+        perf.clearMarks(startTag);
+        perf.clearMarks(endTag);
+        // perf.clearMeasures(name)
+      };
+    }
+  }
+
+  /*  */
+
+  var normalizeEvent = cached(function (name) {
+    var passive = name.charAt(0) === '&';
+    name = passive ? name.slice(1) : name;
+    var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
+    name = once$$1 ? name.slice(1) : name;
+    var capture = name.charAt(0) === '!';
+    name = capture ? name.slice(1) : name;
+    return {
+      name: name,
+      once: once$$1,
+      capture: capture,
+      passive: passive
+    }
+  });
+
+  function createFnInvoker (fns, vm) {
+    function invoker () {
+      var arguments$1 = arguments;
+
+      var fns = invoker.fns;
+      if (Array.isArray(fns)) {
+        var cloned = fns.slice();
+        for (var i = 0; i < cloned.length; i++) {
+          invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
+        }
+      } else {
+        // return handler return value for single handlers
+        return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler")
+      }
+    }
+    invoker.fns = fns;
+    return invoker
+  }
+
+  function updateListeners (
+    on,
+    oldOn,
+    add,
+    remove$$1,
+    createOnceHandler,
+    vm
+  ) {
+    var name, def$$1, cur, old, event;
+    for (name in on) {
+      def$$1 = cur = on[name];
+      old = oldOn[name];
+      event = normalizeEvent(name);
+      if (isUndef(cur)) {
+        warn(
+          "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
+          vm
+        );
+      } else if (isUndef(old)) {
+        if (isUndef(cur.fns)) {
+          cur = on[name] = createFnInvoker(cur, vm);
+        }
+        if (isTrue(event.once)) {
+          cur = on[name] = createOnceHandler(event.name, cur, event.capture);
+        }
+        add(event.name, cur, event.capture, event.passive, event.params);
+      } else if (cur !== old) {
+        old.fns = cur;
+        on[name] = old;
+      }
+    }
+    for (name in oldOn) {
+      if (isUndef(on[name])) {
+        event = normalizeEvent(name);
+        remove$$1(event.name, oldOn[name], event.capture);
+      }
+    }
+  }
+
+  /*  */
+
+  function mergeVNodeHook (def, hookKey, hook) {
+    if (def instanceof VNode) {
+      def = def.data.hook || (def.data.hook = {});
+    }
+    var invoker;
+    var oldHook = def[hookKey];
+
+    function wrappedHook () {
+      hook.apply(this, arguments);
+      // important: remove merged hook to ensure it's called only once
+      // and prevent memory leak
+      remove(invoker.fns, wrappedHook);
+    }
+
+    if (isUndef(oldHook)) {
+      // no existing hook
+      invoker = createFnInvoker([wrappedHook]);
+    } else {
+      /* istanbul ignore if */
+      if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
+        // already a merged invoker
+        invoker = oldHook;
+        invoker.fns.push(wrappedHook);
+      } else {
+        // existing plain hook
+        invoker = createFnInvoker([oldHook, wrappedHook]);
+      }
+    }
+
+    invoker.merged = true;
+    def[hookKey] = invoker;
+  }
+
+  /*  */
+
+  function extractPropsFromVNodeData (
+    data,
+    Ctor,
+    tag
+  ) {
+    // we are only extracting raw values here.
+    // validation and default values are handled in the child
+    // component itself.
+    var propOptions = Ctor.options.props;
+    if (isUndef(propOptions)) {
+      return
+    }
+    var res = {};
+    var attrs = data.attrs;
+    var props = data.props;
+    if (isDef(attrs) || isDef(props)) {
+      for (var key in propOptions) {
+        var altKey = hyphenate(key);
+        {
+          var keyInLowerCase = key.toLowerCase();
+          if (
+            key !== keyInLowerCase &&
+            attrs && hasOwn(attrs, keyInLowerCase)
+          ) {
+            tip(
+              "Prop \"" + keyInLowerCase + "\" is passed to component " +
+              (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
+              " \"" + key + "\". " +
+              "Note that HTML attributes are case-insensitive and camelCased " +
+              "props need to use their kebab-case equivalents when using in-DOM " +
+              "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
+            );
+          }
+        }
+        checkProp(res, props, key, altKey, true) ||
+        checkProp(res, attrs, key, altKey, false);
+      }
+    }
+    return res
+  }
+
+  function checkProp (
+    res,
+    hash,
+    key,
+    altKey,
+    preserve
+  ) {
+    if (isDef(hash)) {
+      if (hasOwn(hash, key)) {
+        res[key] = hash[key];
+        if (!preserve) {
+          delete hash[key];
+        }
+        return true
+      } else if (hasOwn(hash, altKey)) {
+        res[key] = hash[altKey];
+        if (!preserve) {
+          delete hash[altKey];
+        }
+        return true
+      }
+    }
+    return false
+  }
+
+  /*  */
+
+  // The template compiler attempts to minimize the need for normalization by
+  // statically analyzing the template at compile time.
+  //
+  // For plain HTML markup, normalization can be completely skipped because the
+  // generated render function is guaranteed to return Array<VNode>. There are
+  // two cases where extra normalization is needed:
+
+  // 1. When the children contains components - because a functional component
+  // may return an Array instead of a single root. In this case, just a simple
+  // normalization is needed - if any child is an Array, we flatten the whole
+  // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
+  // because functional components already normalize their own children.
+  function simpleNormalizeChildren (children) {
+    for (var i = 0; i < children.length; i++) {
+      if (Array.isArray(children[i])) {
+        return Array.prototype.concat.apply([], children)
+      }
+    }
+    return children
+  }
+
+  // 2. When the children contains constructs that always generated nested Arrays,
+  // e.g. <template>, <slot>, v-for, or when the children is provided by user
+  // with hand-written render functions / JSX. In such cases a full normalization
+  // is needed to cater to all possible types of children values.
+  function normalizeChildren (children) {
+    return isPrimitive(children)
+      ? [createTextVNode(children)]
+      : Array.isArray(children)
+        ? normalizeArrayChildren(children)
+        : undefined
+  }
+
+  function isTextNode (node) {
+    return isDef(node) && isDef(node.text) && isFalse(node.isComment)
+  }
+
+  function normalizeArrayChildren (children, nestedIndex) {
+    var res = [];
+    var i, c, lastIndex, last;
+    for (i = 0; i < children.length; i++) {
+      c = children[i];
+      if (isUndef(c) || typeof c === 'boolean') { continue }
+      lastIndex = res.length - 1;
+      last = res[lastIndex];
+      //  nested
+      if (Array.isArray(c)) {
+        if (c.length > 0) {
+          c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
+          // merge adjacent text nodes
+          if (isTextNode(c[0]) && isTextNode(last)) {
+            res[lastIndex] = createTextVNode(last.text + (c[0]).text);
+            c.shift();
+          }
+          res.push.apply(res, c);
+        }
+      } else if (isPrimitive(c)) {
+        if (isTextNode(last)) {
+          // merge adjacent text nodes
+          // this is necessary for SSR hydration because text nodes are
+          // essentially merged when rendered to HTML strings
+          res[lastIndex] = createTextVNode(last.text + c);
+        } else if (c !== '') {
+          // convert primitive to vnode
+          res.push(createTextVNode(c));
+        }
+      } else {
+        if (isTextNode(c) && isTextNode(last)) {
+          // merge adjacent text nodes
+          res[lastIndex] = createTextVNode(last.text + c.text);
+        } else {
+          // default key for nested array children (likely generated by v-for)
+          if (isTrue(children._isVList) &&
+            isDef(c.tag) &&
+            isUndef(c.key) &&
+            isDef(nestedIndex)) {
+            c.key = "__vlist" + nestedIndex + "_" + i + "__";
+          }
+          res.push(c);
+        }
+      }
+    }
+    return res
+  }
+
+  /*  */
+
+  function initProvide (vm) {
+    var provide = vm.$options.provide;
+    if (provide) {
+      vm._provided = typeof provide === 'function'
+        ? provide.call(vm)
+        : provide;
+    }
+  }
+
+  function initInjections (vm) {
+    var result = resolveInject(vm.$options.inject, vm);
+    if (result) {
+      toggleObserving(false);
+      Object.keys(result).forEach(function (key) {
+        /* istanbul ignore else */
+        {
+          defineReactive$$1(vm, key, result[key], function () {
+            warn(
+              "Avoid mutating an injected value directly since the changes will be " +
+              "overwritten whenever the provided component re-renders. " +
+              "injection being mutated: \"" + key + "\"",
+              vm
+            );
+          });
+        }
+      });
+      toggleObserving(true);
+    }
+  }
+
+  function resolveInject (inject, vm) {
+    if (inject) {
+      // inject is :any because flow is not smart enough to figure out cached
+      var result = Object.create(null);
+      var keys = hasSymbol
+        ? Reflect.ownKeys(inject)
+        : Object.keys(inject);
+
+      for (var i = 0; i < keys.length; i++) {
+        var key = keys[i];
+        // #6574 in case the inject object is observed...
+        if (key === '__ob__') { continue }
+        var provideKey = inject[key].from;
+        var source = vm;
+        while (source) {
+          if (source._provided && hasOwn(source._provided, provideKey)) {
+            result[key] = source._provided[provideKey];
+            break
+          }
+          source = source.$parent;
+        }
+        if (!source) {
+          if ('default' in inject[key]) {
+            var provideDefault = inject[key].default;
+            result[key] = typeof provideDefault === 'function'
+              ? provideDefault.call(vm)
+              : provideDefault;
+          } else {
+            warn(("Injection \"" + key + "\" not found"), vm);
+          }
+        }
+      }
+      return result
+    }
+  }
+
+  /*  */
+
+
+
+  /**
+   * Runtime helper for resolving raw children VNodes into a slot object.
+   */
+  function resolveSlots (
+    children,
+    context
+  ) {
+    if (!children || !children.length) {
+      return {}
+    }
+    var slots = {};
+    for (var i = 0, l = children.length; i < l; i++) {
+      var child = children[i];
+      var data = child.data;
+      // remove slot attribute if the node is resolved as a Vue slot node
+      if (data && data.attrs && data.attrs.slot) {
+        delete data.attrs.slot;
+      }
+      // named slots should only be respected if the vnode was rendered in the
+      // same context.
+      if ((child.context === context || child.fnContext === context) &&
+        data && data.slot != null
+      ) {
+        var name = data.slot;
+        var slot = (slots[name] || (slots[name] = []));
+        if (child.tag === 'template') {
+          slot.push.apply(slot, child.children || []);
+        } else {
+          slot.push(child);
+        }
+      } else {
+        (slots.default || (slots.default = [])).push(child);
+      }
+    }
+    // ignore slots that contains only whitespace
+    for (var name$1 in slots) {
+      if (slots[name$1].every(isWhitespace)) {
+        delete slots[name$1];
+      }
+    }
+    return slots
+  }
+
+  function isWhitespace (node) {
+    return (node.isComment && !node.asyncFactory) || node.text === ' '
+  }
+
+  /*  */
+
+  function normalizeScopedSlots (
+    slots,
+    normalSlots,
+    prevSlots
+  ) {
+    var res;
+    var hasNormalSlots = Object.keys(normalSlots).length > 0;
+    var isStable = slots ? !!slots.$stable : !hasNormalSlots;
+    var key = slots && slots.$key;
+    if (!slots) {
+      res = {};
+    } else if (slots._normalized) {
+      // fast path 1: child component re-render only, parent did not change
+      return slots._normalized
+    } else if (
+      isStable &&
+      prevSlots &&
+      prevSlots !== emptyObject &&
+      key === prevSlots.$key &&
+      !hasNormalSlots &&
+      !prevSlots.$hasNormal
+    ) {
+      // fast path 2: stable scoped slots w/ no normal slots to proxy,
+      // only need to normalize once
+      return prevSlots
+    } else {
+      res = {};
+      for (var key$1 in slots) {
+        if (slots[key$1] && key$1[0] !== '$') {
+          res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
+        }
+      }
+    }
+    // expose normal slots on scopedSlots
+    for (var key$2 in normalSlots) {
+      if (!(key$2 in res)) {
+        res[key$2] = proxyNormalSlot(normalSlots, key$2);
+      }
+    }
+    // avoriaz seems to mock a non-extensible $scopedSlots object
+    // and when that is passed down this would cause an error
+    if (slots && Object.isExtensible(slots)) {
+      (slots)._normalized = res;
+    }
+    def(res, '$stable', isStable);
+    def(res, '$key', key);
+    def(res, '$hasNormal', hasNormalSlots);
+    return res
+  }
+
+  function normalizeScopedSlot(normalSlots, key, fn) {
+    var normalized = function () {
+      var res = arguments.length ? fn.apply(null, arguments) : fn({});
+      res = res && typeof res === 'object' && !Array.isArray(res)
+        ? [res] // single vnode
+        : normalizeChildren(res);
+      return res && (
+        res.length === 0 ||
+        (res.length === 1 && res[0].isComment) // #9658
+      ) ? undefined
+        : res
+    };
+    // this is a slot using the new v-slot syntax without scope. although it is
+    // compiled as a scoped slot, render fn users would expect it to be present
+    // on this.$slots because the usage is semantically a normal slot.
+    if (fn.proxy) {
+      Object.defineProperty(normalSlots, key, {
+        get: normalized,
+        enumerable: true,
+        configurable: true
+      });
+    }
+    return normalized
+  }
+
+  function proxyNormalSlot(slots, key) {
+    return function () { return slots[key]; }
+  }
+
+  /*  */
+
+  /**
+   * Runtime helper for rendering v-for lists.
+   */
+  function renderList (
+    val,
+    render
+  ) {
+    var ret, i, l, keys, key;
+    if (Array.isArray(val) || typeof val === 'string') {
+      ret = new Array(val.length);
+      for (i = 0, l = val.length; i < l; i++) {
+        ret[i] = render(val[i], i);
+      }
+    } else if (typeof val === 'number') {
+      ret = new Array(val);
+      for (i = 0; i < val; i++) {
+        ret[i] = render(i + 1, i);
+      }
+    } else if (isObject(val)) {
+      if (hasSymbol && val[Symbol.iterator]) {
+        ret = [];
+        var iterator = val[Symbol.iterator]();
+        var result = iterator.next();
+        while (!result.done) {
+          ret.push(render(result.value, ret.length));
+          result = iterator.next();
+        }
+      } else {
+        keys = Object.keys(val);
+        ret = new Array(keys.length);
+        for (i = 0, l = keys.length; i < l; i++) {
+          key = keys[i];
+          ret[i] = render(val[key], key, i);
+        }
+      }
+    }
+    if (!isDef(ret)) {
+      ret = [];
+    }
+    (ret)._isVList = true;
+    return ret
+  }
+
+  /*  */
+
+  /**
+   * Runtime helper for rendering <slot>
+   */
+  function renderSlot (
+    name,
+    fallback,
+    props,
+    bindObject
+  ) {
+    var scopedSlotFn = this.$scopedSlots[name];
+    var nodes;
+    if (scopedSlotFn) { // scoped slot
+      props = props || {};
+      if (bindObject) {
+        if (!isObject(bindObject)) {
+          warn(
+            'slot v-bind without argument expects an Object',
+            this
+          );
+        }
+        props = extend(extend({}, bindObject), props);
+      }
+      nodes = scopedSlotFn(props) || fallback;
+    } else {
+      nodes = this.$slots[name] || fallback;
+    }
+
+    var target = props && props.slot;
+    if (target) {
+      return this.$createElement('template', { slot: target }, nodes)
+    } else {
+      return nodes
+    }
+  }
+
+  /*  */
+
+  /**
+   * Runtime helper for resolving filters
+   */
+  function resolveFilter (id) {
+    return resolveAsset(this.$options, 'filters', id, true) || identity
+  }
+
+  /*  */
+
+  function isKeyNotMatch (expect, actual) {
+    if (Array.isArray(expect)) {
+      return expect.indexOf(actual) === -1
+    } else {
+      return expect !== actual
+    }
+  }
+
+  /**
+   * Runtime helper for checking keyCodes from config.
+   * exposed as Vue.prototype._k
+   * passing in eventKeyName as last argument separately for backwards compat
+   */
+  function checkKeyCodes (
+    eventKeyCode,
+    key,
+    builtInKeyCode,
+    eventKeyName,
+    builtInKeyName
+  ) {
+    var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
+    if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
+      return isKeyNotMatch(builtInKeyName, eventKeyName)
+    } else if (mappedKeyCode) {
+      return isKeyNotMatch(mappedKeyCode, eventKeyCode)
+    } else if (eventKeyName) {
+      return hyphenate(eventKeyName) !== key
+    }
+  }
+
+  /*  */
+
+  /**
+   * Runtime helper for merging v-bind="object" into a VNode's data.
+   */
+  function bindObjectProps (
+    data,
+    tag,
+    value,
+    asProp,
+    isSync
+  ) {
+    if (value) {
+      if (!isObject(value)) {
+        warn(
+          'v-bind without argument expects an Object or Array value',
+          this
+        );
+      } else {
+        if (Array.isArray(value)) {
+          value = toObject(value);
+        }
+        var hash;
+        var loop = function ( key ) {
+          if (
+            key === 'class' ||
+            key === 'style' ||
+            isReservedAttribute(key)
+          ) {
+            hash = data;
+          } else {
+            var type = data.attrs && data.attrs.type;
+            hash = asProp || config.mustUseProp(tag, type, key)
+              ? data.domProps || (data.domProps = {})
+              : data.attrs || (data.attrs = {});
+          }
+          var camelizedKey = camelize(key);
+          var hyphenatedKey = hyphenate(key);
+          if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
+            hash[key] = value[key];
+
+            if (isSync) {
+              var on = data.on || (data.on = {});
+              on[("update:" + key)] = function ($event) {
+                value[key] = $event;
+              };
+            }
+          }
+        };
+
+        for (var key in value) loop( key );
+      }
+    }
+    return data
+  }
+
+  /*  */
+
+  /**
+   * Runtime helper for rendering static trees.
+   */
+  function renderStatic (
+    index,
+    isInFor
+  ) {
+    var cached = this._staticTrees || (this._staticTrees = []);
+    var tree = cached[index];
+    // if has already-rendered static tree and not inside v-for,
+    // we can reuse the same tree.
+    if (tree && !isInFor) {
+      return tree
+    }
+    // otherwise, render a fresh tree.
+    tree = cached[index] = this.$options.staticRenderFns[index].call(
+      this._renderProxy,
+      null,
+      this // for render fns generated for functional component templates
+    );
+    markStatic(tree, ("__static__" + index), false);
+    return tree
+  }
+
+  /**
+   * Runtime helper for v-once.
+   * Effectively it means marking the node as static with a unique key.
+   */
+  function markOnce (
+    tree,
+    index,
+    key
+  ) {
+    markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
+    return tree
+  }
+
+  function markStatic (
+    tree,
+    key,
+    isOnce
+  ) {
+    if (Array.isArray(tree)) {
+      for (var i = 0; i < tree.length; i++) {
+        if (tree[i] && typeof tree[i] !== 'string') {
+          markStaticNode(tree[i], (key + "_" + i), isOnce);
+        }
+      }
+    } else {
+      markStaticNode(tree, key, isOnce);
+    }
+  }
+
+  function markStaticNode (node, key, isOnce) {
+    node.isStatic = true;
+    node.key = key;
+    node.isOnce = isOnce;
+  }
+
+  /*  */
+
+  function bindObjectListeners (data, value) {
+    if (value) {
+      if (!isPlainObject(value)) {
+        warn(
+          'v-on without argument expects an Object value',
+          this
+        );
+      } else {
+        var on = data.on = data.on ? extend({}, data.on) : {};
+        for (var key in value) {
+          var existing = on[key];
+          var ours = value[key];
+          on[key] = existing ? [].concat(existing, ours) : ours;
+        }
+      }
+    }
+    return data
+  }
+
+  /*  */
+
+  function resolveScopedSlots (
+    fns, // see flow/vnode
+    res,
+    // the following are added in 2.6
+    hasDynamicKeys,
+    contentHashKey
+  ) {
+    res = res || { $stable: !hasDynamicKeys };
+    for (var i = 0; i < fns.length; i++) {
+      var slot = fns[i];
+      if (Array.isArray(slot)) {
+        resolveScopedSlots(slot, res, hasDynamicKeys);
+      } else if (slot) {
+        // marker for reverse proxying v-slot without scope on this.$slots
+        if (slot.proxy) {
+          slot.fn.proxy = true;
+        }
+        res[slot.key] = slot.fn;
+      }
+    }
+    if (contentHashKey) {
+      (res).$key = contentHashKey;
+    }
+    return res
+  }
+
+  /*  */
+
+  function bindDynamicKeys (baseObj, values) {
+    for (var i = 0; i < values.length; i += 2) {
+      var key = values[i];
+      if (typeof key === 'string' && key) {
+        baseObj[values[i]] = values[i + 1];
+      } else if (key !== '' && key !== null) {
+        // null is a speical value for explicitly removing a binding
+        warn(
+          ("Invalid value for dynamic directive argument (expected string or null): " + key),
+          this
+        );
+      }
+    }
+    return baseObj
+  }
+
+  // helper to dynamically append modifier runtime markers to event names.
+  // ensure only append when value is already string, otherwise it will be cast
+  // to string and cause the type check to miss.
+  function prependModifier (value, symbol) {
+    return typeof value === 'string' ? symbol + value : value
+  }
+
+  /*  */
+
+  function installRenderHelpers (target) {
+    target._o = markOnce;
+    target._n = toNumber;
+    target._s = toString;
+    target._l = renderList;
+    target._t = renderSlot;
+    target._q = looseEqual;
+    target._i = looseIndexOf;
+    target._m = renderStatic;
+    target._f = resolveFilter;
+    target._k = checkKeyCodes;
+    target._b = bindObjectProps;
+    target._v = createTextVNode;
+    target._e = createEmptyVNode;
+    target._u = resolveScopedSlots;
+    target._g = bindObjectListeners;
+    target._d = bindDynamicKeys;
+    target._p = prependModifier;
+  }
+
+  /*  */
+
+  function FunctionalRenderContext (
+    data,
+    props,
+    children,
+    parent,
+    Ctor
+  ) {
+    var this$1 = this;
+
+    var options = Ctor.options;
+    // ensure the createElement function in functional components
+    // gets a unique context - this is necessary for correct named slot check
+    var contextVm;
+    if (hasOwn(parent, '_uid')) {
+      contextVm = Object.create(parent);
+      // $flow-disable-line
+      contextVm._original = parent;
+    } else {
+      // the context vm passed in is a functional context as well.
+      // in this case we want to make sure we are able to get a hold to the
+      // real context instance.
+      contextVm = parent;
+      // $flow-disable-line
+      parent = parent._original;
+    }
+    var isCompiled = isTrue(options._compiled);
+    var needNormalization = !isCompiled;
+
+    this.data = data;
+    this.props = props;
+    this.children = children;
+    this.parent = parent;
+    this.listeners = data.on || emptyObject;
+    this.injections = resolveInject(options.inject, parent);
+    this.slots = function () {
+      if (!this$1.$slots) {
+        normalizeScopedSlots(
+          data.scopedSlots,
+          this$1.$slots = resolveSlots(children, parent)
+        );
+      }
+      return this$1.$slots
+    };
+
+    Object.defineProperty(this, 'scopedSlots', ({
+      enumerable: true,
+      get: function get () {
+        return normalizeScopedSlots(data.scopedSlots, this.slots())
+      }
+    }));
+
+    // support for compiled functional template
+    if (isCompiled) {
+      // exposing $options for renderStatic()
+      this.$options = options;
+      // pre-resolve slots for renderSlot()
+      this.$slots = this.slots();
+      this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
+    }
+
+    if (options._scopeId) {
+      this._c = function (a, b, c, d) {
+        var vnode = createElement(contextVm, a, b, c, d, needNormalization);
+        if (vnode && !Array.isArray(vnode)) {
+          vnode.fnScopeId = options._scopeId;
+          vnode.fnContext = parent;
+        }
+        return vnode
+      };
+    } else {
+      this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
+    }
+  }
+
+  installRenderHelpers(FunctionalRenderContext.prototype);
+
+  function createFunctionalComponent (
+    Ctor,
+    propsData,
+    data,
+    contextVm,
+    children
+  ) {
+    var options = Ctor.options;
+    var props = {};
+    var propOptions = options.props;
+    if (isDef(propOptions)) {
+      for (var key in propOptions) {
+        props[key] = validateProp(key, propOptions, propsData || emptyObject);
+      }
+    } else {
+      if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
+      if (isDef(data.props)) { mergeProps(props, data.props); }
+    }
+
+    var renderContext = new FunctionalRenderContext(
+      data,
+      props,
+      children,
+      contextVm,
+      Ctor
+    );
+
+    var vnode = options.render.call(null, renderContext._c, renderContext);
+
+    if (vnode instanceof VNode) {
+      return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
+    } else if (Array.isArray(vnode)) {
+      var vnodes = normalizeChildren(vnode) || [];
+      var res = new Array(vnodes.length);
+      for (var i = 0; i < vnodes.length; i++) {
+        res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
+      }
+      return res
+    }
+  }
+
+  function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
+    // #7817 clone node before setting fnContext, otherwise if the node is reused
+    // (e.g. it was from a cached normal slot) the fnContext causes named slots
+    // that should not be matched to match.
+    var clone = cloneVNode(vnode);
+    clone.fnContext = contextVm;
+    clone.fnOptions = options;
+    {
+      (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
+    }
+    if (data.slot) {
+      (clone.data || (clone.data = {})).slot = data.slot;
+    }
+    return clone
+  }
+
+  function mergeProps (to, from) {
+    for (var key in from) {
+      to[camelize(key)] = from[key];
+    }
+  }
+
+  /*  */
+
+  /*  */
+
+  /*  */
+
+  /*  */
+
+  // inline hooks to be invoked on component VNodes during patch
+  var componentVNodeHooks = {
+    init: function init (vnode, hydrating) {
+      if (
+        vnode.componentInstance &&
+        !vnode.componentInstance._isDestroyed &&
+        vnode.data.keepAlive
+      ) {
+        // kept-alive components, treat as a patch
+        var mountedNode = vnode; // work around flow
+        componentVNodeHooks.prepatch(mountedNode, mountedNode);
+      } else {
+        var child = vnode.componentInstance = createComponentInstanceForVnode(
+          vnode,
+          activeInstance
+        );
+        child.$mount(hydrating ? vnode.elm : undefined, hydrating);
+      }
+    },
+
+    prepatch: function prepatch (oldVnode, vnode) {
+      var options = vnode.componentOptions;
+      var child = vnode.componentInstance = oldVnode.componentInstance;
+      updateChildComponent(
+        child,
+        options.propsData, // updated props
+        options.listeners, // updated listeners
+        vnode, // new parent vnode
+        options.children // new children
+      );
+    },
+
+    insert: function insert (vnode) {
+      var context = vnode.context;
+      var componentInstance = vnode.componentInstance;
+      if (!componentInstance._isMounted) {
+        componentInstance._isMounted = true;
+        callHook(componentInstance, 'mounted');
+      }
+      if (vnode.data.keepAlive) {
+        if (context._isMounted) {
+          // vue-router#1212
+          // During updates, a kept-alive component's child components may
+          // change, so directly walking the tree here may call activated hooks
+          // on incorrect children. Instead we push them into a queue which will
+          // be processed after the whole patch process ended.
+          queueActivatedComponent(componentInstance);
+        } else {
+          activateChildComponent(componentInstance, true /* direct */);
+        }
+      }
+    },
+
+    destroy: function destroy (vnode) {
+      var componentInstance = vnode.componentInstance;
+      if (!componentInstance._isDestroyed) {
+        if (!vnode.data.keepAlive) {
+          componentInstance.$destroy();
+        } else {
+          deactivateChildComponent(componentInstance, true /* direct */);
+        }
+      }
+    }
+  };
+
+  var hooksToMerge = Object.keys(componentVNodeHooks);
+
+  function createComponent (
+    Ctor,
+    data,
+    context,
+    children,
+    tag
+  ) {
+    if (isUndef(Ctor)) {
+      return
+    }
+
+    var baseCtor = context.$options._base;
+
+    // plain options object: turn it into a constructor
+    if (isObject(Ctor)) {
+      Ctor = baseCtor.extend(Ctor);
+    }
+
+    // if at this stage it's not a constructor or an async component factory,
+    // reject.
+    if (typeof Ctor !== 'function') {
+      {
+        warn(("Invalid Component definition: " + (String(Ctor))), context);
+      }
+      return
+    }
+
+    // async component
+    var asyncFactory;
+    if (isUndef(Ctor.cid)) {
+      asyncFactory = Ctor;
+      Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
+      if (Ctor === undefined) {
+        // return a placeholder node for async component, which is rendered
+        // as a comment node but preserves all the raw information for the node.
+        // the information will be used for async server-rendering and hydration.
+        return createAsyncPlaceholder(
+          asyncFactory,
+          data,
+          context,
+          children,
+          tag
+        )
+      }
+    }
+
+    data = data || {};
+
+    // resolve constructor options in case global mixins are applied after
+    // component constructor creation
+    resolveConstructorOptions(Ctor);
+
+    // transform component v-model data into props & events
+    if (isDef(data.model)) {
+      transformModel(Ctor.options, data);
+    }
+
+    // extract props
+    var propsData = extractPropsFromVNodeData(data, Ctor, tag);
+
+    // functional component
+    if (isTrue(Ctor.options.functional)) {
+      return createFunctionalComponent(Ctor, propsData, data, context, children)
+    }
+
+    // extract listeners, since these needs to be treated as
+    // child component listeners instead of DOM listeners
+    var listeners = data.on;
+    // replace with listeners with .native modifier
+    // so it gets processed during parent component patch.
+    data.on = data.nativeOn;
+
+    if (isTrue(Ctor.options.abstract)) {
+      // abstract components do not keep anything
+      // other than props & listeners & slot
+
+      // work around flow
+      var slot = data.slot;
+      data = {};
+      if (slot) {
+        data.slot = slot;
+      }
+    }
+
+    // install component management hooks onto the placeholder node
+    installComponentHooks(data);
+
+    // return a placeholder vnode
+    var name = Ctor.options.name || tag;
+    var vnode = new VNode(
+      ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
+      data, undefined, undefined, undefined, context,
+      { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
+      asyncFactory
+    );
+
+    return vnode
+  }
+
+  function createComponentInstanceForVnode (
+    vnode, // we know it's MountedComponentVNode but flow doesn't
+    parent // activeInstance in lifecycle state
+  ) {
+    var options = {
+      _isComponent: true,
+      _parentVnode: vnode,
+      parent: parent
+    };
+    // check inline-template render functions
+    var inlineTemplate = vnode.data.inlineTemplate;
+    if (isDef(inlineTemplate)) {
+      options.render = inlineTemplate.render;
+      options.staticRenderFns = inlineTemplate.staticRenderFns;
+    }
+    return new vnode.componentOptions.Ctor(options)
+  }
+
+  function installComponentHooks (data) {
+    var hooks = data.hook || (data.hook = {});
+    for (var i = 0; i < hooksToMerge.length; i++) {
+      var key = hooksToMerge[i];
+      var existing = hooks[key];
+      var toMerge = componentVNodeHooks[key];
+      if (existing !== toMerge && !(existing && existing._merged)) {
+        hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
+      }
+    }
+  }
+
+  function mergeHook$1 (f1, f2) {
+    var merged = function (a, b) {
+      // flow complains about extra args which is why we use any
+      f1(a, b);
+      f2(a, b);
+    };
+    merged._merged = true;
+    return merged
+  }
+
+  // transform component v-model info (value and callback) into
+  // prop and event handler respectively.
+  function transformModel (options, data) {
+    var prop = (options.model && options.model.prop) || 'value';
+    var event = (options.model && options.model.event) || 'input'
+    ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;
+    var on = data.on || (data.on = {});
+    var existing = on[event];
+    var callback = data.model.callback;
+    if (isDef(existing)) {
+      if (
+        Array.isArray(existing)
+          ? existing.indexOf(callback) === -1
+          : existing !== callback
+      ) {
+        on[event] = [callback].concat(existing);
+      }
+    } else {
+      on[event] = callback;
+    }
+  }
+
+  /*  */
+
+  var SIMPLE_NORMALIZE = 1;
+  var ALWAYS_NORMALIZE = 2;
+
+  // wrapper function for providing a more flexible interface
+  // without getting yelled at by flow
+  function createElement (
+    context,
+    tag,
+    data,
+    children,
+    normalizationType,
+    alwaysNormalize
+  ) {
+    if (Array.isArray(data) || isPrimitive(data)) {
+      normalizationType = children;
+      children = data;
+      data = undefined;
+    }
+    if (isTrue(alwaysNormalize)) {
+      normalizationType = ALWAYS_NORMALIZE;
+    }
+    return _createElement(context, tag, data, children, normalizationType)
+  }
+
+  function _createElement (
+    context,
+    tag,
+    data,
+    children,
+    normalizationType
+  ) {
+    if (isDef(data) && isDef((data).__ob__)) {
+      warn(
+        "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
+        'Always create fresh vnode data objects in each render!',
+        context
+      );
+      return createEmptyVNode()
+    }
+    // object syntax in v-bind
+    if (isDef(data) && isDef(data.is)) {
+      tag = data.is;
+    }
+    if (!tag) {
+      // in case of component :is set to falsy value
+      return createEmptyVNode()
+    }
+    // warn against non-primitive key
+    if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)
+    ) {
+      {
+        warn(
+          'Avoid using non-primitive value as key, ' +
+          'use string/number value instead.',
+          context
+        );
+      }
+    }
+    // support single function children as default scoped slot
+    if (Array.isArray(children) &&
+      typeof children[0] === 'function'
+    ) {
+      data = data || {};
+      data.scopedSlots = { default: children[0] };
+      children.length = 0;
+    }
+    if (normalizationType === ALWAYS_NORMALIZE) {
+      children = normalizeChildren(children);
+    } else if (normalizationType === SIMPLE_NORMALIZE) {
+      children = simpleNormalizeChildren(children);
+    }
+    var vnode, ns;
+    if (typeof tag === 'string') {
+      var Ctor;
+      ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
+      if (config.isReservedTag(tag)) {
+        // platform built-in elements
+        vnode = new VNode(
+          config.parsePlatformTagName(tag), data, children,
+          undefined, undefined, context
+        );
+      } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
+        // component
+        vnode = createComponent(Ctor, data, context, children, tag);
+      } else {
+        // unknown or unlisted namespaced elements
+        // check at runtime because it may get assigned a namespace when its
+        // parent normalizes children
+        vnode = new VNode(
+          tag, data, children,
+          undefined, undefined, context
+        );
+      }
+    } else {
+      // direct component options / constructor
+      vnode = createComponent(tag, data, context, children);
+    }
+    if (Array.isArray(vnode)) {
+      return vnode
+    } else if (isDef(vnode)) {
+      if (isDef(ns)) { applyNS(vnode, ns); }
+      if (isDef(data)) { registerDeepBindings(data); }
+      return vnode
+    } else {
+      return createEmptyVNode()
+    }
+  }
+
+  function applyNS (vnode, ns, force) {
+    vnode.ns = ns;
+    if (vnode.tag === 'foreignObject') {
+      // use default namespace inside foreignObject
+      ns = undefined;
+      force = true;
+    }
+    if (isDef(vnode.children)) {
+      for (var i = 0, l = vnode.children.length; i < l; i++) {
+        var child = vnode.children[i];
+        if (isDef(child.tag) && (
+          isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
+          applyNS(child, ns, force);
+        }
+      }
+    }
+  }
+
+  // ref #5318
+  // necessary to ensure parent re-render when deep bindings like :style and
+  // :class are used on slot nodes
+  function registerDeepBindings (data) {
+    if (isObject(data.style)) {
+      traverse(data.style);
+    }
+    if (isObject(data.class)) {
+      traverse(data.class);
+    }
+  }
+
+  /*  */
+
+  function initRender (vm) {
+    vm._vnode = null; // the root of the child tree
+    vm._staticTrees = null; // v-once cached trees
+    var options = vm.$options;
+    var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
+    var renderContext = parentVnode && parentVnode.context;
+    vm.$slots = resolveSlots(options._renderChildren, renderContext);
+    vm.$scopedSlots = emptyObject;
+    // bind the createElement fn to this instance
+    // so that we get proper render context inside it.
+    // args order: tag, data, children, normalizationType, alwaysNormalize
+    // internal version is used by render functions compiled from templates
+    vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
+    // normalization is always applied for the public version, used in
+    // user-written render functions.
+    vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
+
+    // $attrs & $listeners are exposed for easier HOC creation.
+    // they need to be reactive so that HOCs using them are always updated
+    var parentData = parentVnode && parentVnode.data;
+
+    /* istanbul ignore else */
+    {
+      defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
+        !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
+      }, true);
+      defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
+        !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
+      }, true);
+    }
+  }
+
+  var currentRenderingInstance = null;
+
+  function renderMixin (Vue) {
+    // install runtime convenience helpers
+    installRenderHelpers(Vue.prototype);
+
+    Vue.prototype.$nextTick = function (fn) {
+      return nextTick(fn, this)
+    };
+
+    Vue.prototype._render = function () {
+      var vm = this;
+      var ref = vm.$options;
+      var render = ref.render;
+      var _parentVnode = ref._parentVnode;
+
+      if (_parentVnode) {
+        vm.$scopedSlots = normalizeScopedSlots(
+          _parentVnode.data.scopedSlots,
+          vm.$slots,
+          vm.$scopedSlots
+        );
+      }
+
+      // set parent vnode. this allows render functions to have access
+      // to the data on the placeholder node.
+      vm.$vnode = _parentVnode;
+      // render self
+      var vnode;
+      try {
+        // There's no need to maintain a stack becaues all render fns are called
+        // separately from one another. Nested component's render fns are called
+        // when parent component is patched.
+        currentRenderingInstance = vm;
+        vnode = render.call(vm._renderProxy, vm.$createElement);
+      } catch (e) {
+        handleError(e, vm, "render");
+        // return error render result,
+        // or previous vnode to prevent render error causing blank component
+        /* istanbul ignore else */
+        if (vm.$options.renderError) {
+          try {
+            vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
+          } catch (e) {
+            handleError(e, vm, "renderError");
+            vnode = vm._vnode;
+          }
+        } else {
+          vnode = vm._vnode;
+        }
+      } finally {
+        currentRenderingInstance = null;
+      }
+      // if the returned array contains only a single node, allow it
+      if (Array.isArray(vnode) && vnode.length === 1) {
+        vnode = vnode[0];
+      }
+      // return empty vnode in case the render function errored out
+      if (!(vnode instanceof VNode)) {
+        if (Array.isArray(vnode)) {
+          warn(
+            'Multiple root nodes returned from render function. Render function ' +
+            'should return a single root node.',
+            vm
+          );
+        }
+        vnode = createEmptyVNode();
+      }
+      // set parent
+      vnode.parent = _parentVnode;
+      return vnode
+    };
+  }
+
+  /*  */
+
+  function ensureCtor (comp, base) {
+    if (
+      comp.__esModule ||
+      (hasSymbol && comp[Symbol.toStringTag] === 'Module')
+    ) {
+      comp = comp.default;
+    }
+    return isObject(comp)
+      ? base.extend(comp)
+      : comp
+  }
+
+  function createAsyncPlaceholder (
+    factory,
+    data,
+    context,
+    children,
+    tag
+  ) {
+    var node = createEmptyVNode();
+    node.asyncFactory = factory;
+    node.asyncMeta = { data: data, context: context, children: children, tag: tag };
+    return node
+  }
+
+  function resolveAsyncComponent (
+    factory,
+    baseCtor
+  ) {
+    if (isTrue(factory.error) && isDef(factory.errorComp)) {
+      return factory.errorComp
+    }
+
+    if (isDef(factory.resolved)) {
+      return factory.resolved
+    }
+
+    var owner = currentRenderingInstance;
+    if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
+      // already pending
+      factory.owners.push(owner);
+    }
+
+    if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
+      return factory.loadingComp
+    }
+
+    if (owner && !isDef(factory.owners)) {
+      var owners = factory.owners = [owner];
+      var sync = true;
+      var timerLoading = null;
+      var timerTimeout = null
+
+      ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
+
+      var forceRender = function (renderCompleted) {
+        for (var i = 0, l = owners.length; i < l; i++) {
+          (owners[i]).$forceUpdate();
+        }
+
+        if (renderCompleted) {
+          owners.length = 0;
+          if (timerLoading !== null) {
+            clearTimeout(timerLoading);
+            timerLoading = null;
+          }
+          if (timerTimeout !== null) {
+            clearTimeout(timerTimeout);
+            timerTimeout = null;
+          }
+        }
+      };
+
+      var resolve = once(function (res) {
+        // cache resolved
+        factory.resolved = ensureCtor(res, baseCtor);
+        // invoke callbacks only if this is not a synchronous resolve
+        // (async resolves are shimmed as synchronous during SSR)
+        if (!sync) {
+          forceRender(true);
+        } else {
+          owners.length = 0;
+        }
+      });
+
+      var reject = once(function (reason) {
+        warn(
+          "Failed to resolve async component: " + (String(factory)) +
+          (reason ? ("\nReason: " + reason) : '')
+        );
+        if (isDef(factory.errorComp)) {
+          factory.error = true;
+          forceRender(true);
+        }
+      });
+
+      var res = factory(resolve, reject);
+
+      if (isObject(res)) {
+        if (isPromise(res)) {
+          // () => Promise
+          if (isUndef(factory.resolved)) {
+            res.then(resolve, reject);
+          }
+        } else if (isPromise(res.component)) {
+          res.component.then(resolve, reject);
+
+          if (isDef(res.error)) {
+            factory.errorComp = ensureCtor(res.error, baseCtor);
+          }
+
+          if (isDef(res.loading)) {
+            factory.loadingComp = ensureCtor(res.loading, baseCtor);
+            if (res.delay === 0) {
+              factory.loading = true;
+            } else {
+              timerLoading = setTimeout(function () {
+                timerLoading = null;
+                if (isUndef(factory.resolved) && isUndef(factory.error)) {
+                  factory.loading = true;
+                  forceRender(false);
+                }
+              }, res.delay || 200);
+            }
+          }
+
+          if (isDef(res.timeout)) {
+            timerTimeout = setTimeout(function () {
+              timerTimeout = null;
+              if (isUndef(factory.resolved)) {
+                reject(
+                  "timeout (" + (res.timeout) + "ms)"
+                );
+              }
+            }, res.timeout);
+          }
+        }
+      }
+
+      sync = false;
+      // return in case resolved synchronously
+      return factory.loading
+        ? factory.loadingComp
+        : factory.resolved
+    }
+  }
+
+  /*  */
+
+  function isAsyncPlaceholder (node) {
+    return node.isComment && node.asyncFactory
+  }
+
+  /*  */
+
+  function getFirstComponentChild (children) {
+    if (Array.isArray(children)) {
+      for (var i = 0; i < children.length; i++) {
+        var c = children[i];
+        if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
+          return c
+        }
+      }
+    }
+  }
+
+  /*  */
+
+  /*  */
+
+  function initEvents (vm) {
+    vm._events = Object.create(null);
+    vm._hasHookEvent = false;
+    // init parent attached events
+    var listeners = vm.$options._parentListeners;
+    if (listeners) {
+      updateComponentListeners(vm, listeners);
+    }
+  }
+
+  var target;
+
+  function add (event, fn) {
+    target.$on(event, fn);
+  }
+
+  function remove$1 (event, fn) {
+    target.$off(event, fn);
+  }
+
+  function createOnceHandler (event, fn) {
+    var _target = target;
+    return function onceHandler () {
+      var res = fn.apply(null, arguments);
+      if (res !== null) {
+        _target.$off(event, onceHandler);
+      }
+    }
+  }
+
+  function updateComponentListeners (
+    vm,
+    listeners,
+    oldListeners
+  ) {
+    target = vm;
+    updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
+    target = undefined;
+  }
+
+  function eventsMixin (Vue) {
+    var hookRE = /^hook:/;
+    Vue.prototype.$on = function (event, fn) {
+      var vm = this;
+      if (Array.isArray(event)) {
+        for (var i = 0, l = event.length; i < l; i++) {
+          vm.$on(event[i], fn);
+        }
+      } else {
+        (vm._events[event] || (vm._events[event] = [])).push(fn);
+        // optimize hook:event cost by using a boolean flag marked at registration
+        // instead of a hash lookup
+        if (hookRE.test(event)) {
+          vm._hasHookEvent = true;
+        }
+      }
+      return vm
+    };
+
+    Vue.prototype.$once = function (event, fn) {
+      var vm = this;
+      function on () {
+        vm.$off(event, on);
+        fn.apply(vm, arguments);
+      }
+      on.fn = fn;
+      vm.$on(event, on);
+      return vm
+    };
+
+    Vue.prototype.$off = function (event, fn) {
+      var vm = this;
+      // all
+      if (!arguments.length) {
+        vm._events = Object.create(null);
+        return vm
+      }
+      // array of events
+      if (Array.isArray(event)) {
+        for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
+          vm.$off(event[i$1], fn);
+        }
+        return vm
+      }
+      // specific event
+      var cbs = vm._events[event];
+      if (!cbs) {
+        return vm
+      }
+      if (!fn) {
+        vm._events[event] = null;
+        return vm
+      }
+      // specific handler
+      var cb;
+      var i = cbs.length;
+      while (i--) {
+        cb = cbs[i];
+        if (cb === fn || cb.fn === fn) {
+          cbs.splice(i, 1);
+          break
+        }
+      }
+      return vm
+    };
+
+    Vue.prototype.$emit = function (event) {
+      var vm = this;
+      {
+        var lowerCaseEvent = event.toLowerCase();
+        if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
+          tip(
+            "Event \"" + lowerCaseEvent + "\" is emitted in component " +
+            (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
+            "Note that HTML attributes are case-insensitive and you cannot use " +
+            "v-on to listen to camelCase events when using in-DOM templates. " +
+            "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
+          );
+        }
+      }
+      var cbs = vm._events[event];
+      if (cbs) {
+        cbs = cbs.length > 1 ? toArray(cbs) : cbs;
+        var args = toArray(arguments, 1);
+        var info = "event handler for \"" + event + "\"";
+        for (var i = 0, l = cbs.length; i < l; i++) {
+          invokeWithErrorHandling(cbs[i], vm, args, vm, info);
+        }
+      }
+      return vm
+    };
+  }
+
+  /*  */
+
+  var activeInstance = null;
+  var isUpdatingChildComponent = false;
+
+  function setActiveInstance(vm) {
+    var prevActiveInstance = activeInstance;
+    activeInstance = vm;
+    return function () {
+      activeInstance = prevActiveInstance;
+    }
+  }
+
+  function initLifecycle (vm) {
+    var options = vm.$options;
+
+    // locate first non-abstract parent
+    var parent = options.parent;
+    if (parent && !options.abstract) {
+      while (parent.$options.abstract && parent.$parent) {
+        parent = parent.$parent;
+      }
+      parent.$children.push(vm);
+    }
+
+    vm.$parent = parent;
+    vm.$root = parent ? parent.$root : vm;
+
+    vm.$children = [];
+    vm.$refs = {};
+
+    vm._watcher = null;
+    vm._inactive = null;
+    vm._directInactive = false;
+    vm._isMounted = false;
+    vm._isDestroyed = false;
+    vm._isBeingDestroyed = false;
+  }
+
+  function lifecycleMixin (Vue) {
+    Vue.prototype._update = function (vnode, hydrating) {
+      var vm = this;
+      var prevEl = vm.$el;
+      var prevVnode = vm._vnode;
+      var restoreActiveInstance = setActiveInstance(vm);
+      vm._vnode = vnode;
+      // Vue.prototype.__patch__ is injected in entry points
+      // based on the rendering backend used.
+      if (!prevVnode) {
+        // initial render
+        vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
+      } else {
+        // updates
+        vm.$el = vm.__patch__(prevVnode, vnode);
+      }
+      restoreActiveInstance();
+      // update __vue__ reference
+      if (prevEl) {
+        prevEl.__vue__ = null;
+      }
+      if (vm.$el) {
+        vm.$el.__vue__ = vm;
+      }
+      // if parent is an HOC, update its $el as well
+      if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
+        vm.$parent.$el = vm.$el;
+      }
+      // updated hook is called by the scheduler to ensure that children are
+      // updated in a parent's updated hook.
+    };
+
+    Vue.prototype.$forceUpdate = function () {
+      var vm = this;
+      if (vm._watcher) {
+        vm._watcher.update();
+      }
+    };
+
+    Vue.prototype.$destroy = function () {
+      var vm = this;
+      if (vm._isBeingDestroyed) {
+        return
+      }
+      callHook(vm, 'beforeDestroy');
+      vm._isBeingDestroyed = true;
+      // remove self from parent
+      var parent = vm.$parent;
+      if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
+        remove(parent.$children, vm);
+      }
+      // teardown watchers
+      if (vm._watcher) {
+        vm._watcher.teardown();
+      }
+      var i = vm._watchers.length;
+      while (i--) {
+        vm._watchers[i].teardown();
+      }
+      // remove reference from data ob
+      // frozen object may not have observer.
+      if (vm._data.__ob__) {
+        vm._data.__ob__.vmCount--;
+      }
+      // call the last hook...
+      vm._isDestroyed = true;
+      // invoke destroy hooks on current rendered tree
+      vm.__patch__(vm._vnode, null);
+      // fire destroyed hook
+      callHook(vm, 'destroyed');
+      // turn off all instance listeners.
+      vm.$off();
+      // remove __vue__ reference
+      if (vm.$el) {
+        vm.$el.__vue__ = null;
+      }
+      // release circular reference (#6759)
+      if (vm.$vnode) {
+        vm.$vnode.parent = null;
+      }
+    };
+  }
+
+  function mountComponent (
+    vm,
+    el,
+    hydrating
+  ) {
+    vm.$el = el;
+    if (!vm.$options.render) {
+      vm.$options.render = createEmptyVNode;
+      {
+        /* istanbul ignore if */
+        if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
+          vm.$options.el || el) {
+          warn(
+            'You are using the runtime-only build of Vue where the template ' +
+            'compiler is not available. Either pre-compile the templates into ' +
+            'render functions, or use the compiler-included build.',
+            vm
+          );
+        } else {
+          warn(
+            'Failed to mount component: template or render function not defined.',
+            vm
+          );
+        }
+      }
+    }
+    callHook(vm, 'beforeMount');
+
+    var updateComponent;
+    /* istanbul ignore if */
+    if (config.performance && mark) {
+      updateComponent = function () {
+        var name = vm._name;
+        var id = vm._uid;
+        var startTag = "vue-perf-start:" + id;
+        var endTag = "vue-perf-end:" + id;
+
+        mark(startTag);
+        var vnode = vm._render();
+        mark(endTag);
+        measure(("vue " + name + " render"), startTag, endTag);
+
+        mark(startTag);
+        vm._update(vnode, hydrating);
+        mark(endTag);
+        measure(("vue " + name + " patch"), startTag, endTag);
+      };
+    } else {
+      updateComponent = function () {
+        vm._update(vm._render(), hydrating);
+      };
+    }
+
+    // we set this to vm._watcher inside the watcher's constructor
+    // since the watcher's initial patch may call $forceUpdate (e.g. inside child
+    // component's mounted hook), which relies on vm._watcher being already defined
+    new Watcher(vm, updateComponent, noop, {
+      before: function before () {
+        if (vm._isMounted && !vm._isDestroyed) {
+          callHook(vm, 'beforeUpdate');
+        }
+      }
+    }, true /* isRenderWatcher */);
+    hydrating = false;
+
+    // manually mounted instance, call mounted on self
+    // mounted is called for render-created child components in its inserted hook
+    if (vm.$vnode == null) {
+      vm._isMounted = true;
+      callHook(vm, 'mounted');
+    }
+    return vm
+  }
+
+  function updateChildComponent (
+    vm,
+    propsData,
+    listeners,
+    parentVnode,
+    renderChildren
+  ) {
+    {
+      isUpdatingChildComponent = true;
+    }
+
+    // determine whether component has slot children
+    // we need to do this before overwriting $options._renderChildren.
+
+    // check if there are dynamic scopedSlots (hand-written or compiled but with
+    // dynamic slot names). Static scoped slots compiled from template has the
+    // "$stable" marker.
+    var newScopedSlots = parentVnode.data.scopedSlots;
+    var oldScopedSlots = vm.$scopedSlots;
+    var hasDynamicScopedSlot = !!(
+      (newScopedSlots && !newScopedSlots.$stable) ||
+      (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
+      (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
+    );
+
+    // Any static slot children from the parent may have changed during parent's
+    // update. Dynamic scoped slots may also have changed. In such cases, a forced
+    // update is necessary to ensure correctness.
+    var needsForceUpdate = !!(
+      renderChildren ||               // has new static slots
+      vm.$options._renderChildren ||  // has old static slots
+      hasDynamicScopedSlot
+    );
+
+    vm.$options._parentVnode = parentVnode;
+    vm.$vnode = parentVnode; // update vm's placeholder node without re-render
+
+    if (vm._vnode) { // update child tree's parent
+      vm._vnode.parent = parentVnode;
+    }
+    vm.$options._renderChildren = renderChildren;
+
+    // update $attrs and $listeners hash
+    // these are also reactive so they may trigger child update if the child
+    // used them during render
+    vm.$attrs = parentVnode.data.attrs || emptyObject;
+    vm.$listeners = listeners || emptyObject;
+
+    // update props
+    if (propsData && vm.$options.props) {
+      toggleObserving(false);
+      var props = vm._props;
+      var propKeys = vm.$options._propKeys || [];
+      for (var i = 0; i < propKeys.length; i++) {
+        var key = propKeys[i];
+        var propOptions = vm.$options.props; // wtf flow?
+        props[key] = validateProp(key, propOptions, propsData, vm);
+      }
+      toggleObserving(true);
+      // keep a copy of raw propsData
+      vm.$options.propsData = propsData;
+    }
+
+    // update listeners
+    listeners = listeners || emptyObject;
+    var oldListeners = vm.$options._parentListeners;
+    vm.$options._parentListeners = listeners;
+    updateComponentListeners(vm, listeners, oldListeners);
+
+    // resolve slots + force update if has children
+    if (needsForceUpdate) {
+      vm.$slots = resolveSlots(renderChildren, parentVnode.context);
+      vm.$forceUpdate();
+    }
+
+    {
+      isUpdatingChildComponent = false;
+    }
+  }
+
+  function isInInactiveTree (vm) {
+    while (vm && (vm = vm.$parent)) {
+      if (vm._inactive) { return true }
+    }
+    return false
+  }
+
+  function activateChildComponent (vm, direct) {
+    if (direct) {
+      vm._directInactive = false;
+      if (isInInactiveTree(vm)) {
+        return
+      }
+    } else if (vm._directInactive) {
+      return
+    }
+    if (vm._inactive || vm._inactive === null) {
+      vm._inactive = false;
+      for (var i = 0; i < vm.$children.length; i++) {
+        activateChildComponent(vm.$children[i]);
+      }
+      callHook(vm, 'activated');
+    }
+  }
+
+  function deactivateChildComponent (vm, direct) {
+    if (direct) {
+      vm._directInactive = true;
+      if (isInInactiveTree(vm)) {
+        return
+      }
+    }
+    if (!vm._inactive) {
+      vm._inactive = true;
+      for (var i = 0; i < vm.$children.length; i++) {
+        deactivateChildComponent(vm.$children[i]);
+      }
+      callHook(vm, 'deactivated');
+    }
+  }
+
+  function callHook (vm, hook) {
+    // #7573 disable dep collection when invoking lifecycle hooks
+    pushTarget();
+    var handlers = vm.$options[hook];
+    var info = hook + " hook";
+    if (handlers) {
+      for (var i = 0, j = handlers.length; i < j; i++) {
+        invokeWithErrorHandling(handlers[i], vm, null, vm, info);
+      }
+    }
+    if (vm._hasHookEvent) {
+      vm.$emit('hook:' + hook);
+    }
+    popTarget();
+  }
+
+  /*  */
+
+  var MAX_UPDATE_COUNT = 100;
+
+  var queue = [];
+  var activatedChildren = [];
+  var has = {};
+  var circular = {};
+  var waiting = false;
+  var flushing = false;
+  var index = 0;
+
+  /**
+   * Reset the scheduler's state.
+   */
+  function resetSchedulerState () {
+    index = queue.length = activatedChildren.length = 0;
+    has = {};
+    {
+      circular = {};
+    }
+    waiting = flushing = false;
+  }
+
+  // Async edge case #6566 requires saving the timestamp when event listeners are
+  // attached. However, calling performance.now() has a perf overhead especially
+  // if the page has thousands of event listeners. Instead, we take a timestamp
+  // every time the scheduler flushes and use that for all event listeners
+  // attached during that flush.
+  var currentFlushTimestamp = 0;
+
+  // Async edge case fix requires storing an event listener's attach timestamp.
+  var getNow = Date.now;
+
+  // Determine what event timestamp the browser is using. Annoyingly, the
+  // timestamp can either be hi-res (relative to page load) or low-res
+  // (relative to UNIX epoch), so in order to compare time we have to use the
+  // same timestamp type when saving the flush timestamp.
+  // All IE versions use low-res event timestamps, and have problematic clock
+  // implementations (#9632)
+  if (inBrowser && !isIE) {
+    var performance = window.performance;
+    if (
+      performance &&
+      typeof performance.now === 'function' &&
+      getNow() > document.createEvent('Event').timeStamp
+    ) {
+      // if the event timestamp, although evaluated AFTER the Date.now(), is
+      // smaller than it, it means the event is using a hi-res timestamp,
+      // and we need to use the hi-res version for event listener timestamps as
+      // well.
+      getNow = function () { return performance.now(); };
+    }
+  }
+
+  /**
+   * Flush both queues and run the watchers.
+   */
+  function flushSchedulerQueue () {
+    currentFlushTimestamp = getNow();
+    flushing = true;
+    var watcher, id;
+
+    // Sort queue before flush.
+    // This ensures that:
+    // 1. Components are updated from parent to child. (because parent is always
+    //    created before the child)
+    // 2. A component's user watchers are run before its render watcher (because
+    //    user watchers are created before the render watcher)
+    // 3. If a component is destroyed during a parent component's watcher run,
+    //    its watchers can be skipped.
+    queue.sort(function (a, b) { return a.id - b.id; });
+
+    // do not cache length because more watchers might be pushed
+    // as we run existing watchers
+    for (index = 0; index < queue.length; index++) {
+      watcher = queue[index];
+      if (watcher.before) {
+        watcher.before();
+      }
+      id = watcher.id;
+      has[id] = null;
+      watcher.run();
+      // in dev build, check and stop circular updates.
+      if (has[id] != null) {
+        circular[id] = (circular[id] || 0) + 1;
+        if (circular[id] > MAX_UPDATE_COUNT) {
+          warn(
+            'You may have an infinite update loop ' + (
+              watcher.user
+                ? ("in watcher with expression \"" + (watcher.expression) + "\"")
+                : "in a component render function."
+            ),
+            watcher.vm
+          );
+          break
+        }
+      }
+    }
+
+    // keep copies of post queues before resetting state
+    var activatedQueue = activatedChildren.slice();
+    var updatedQueue = queue.slice();
+
+    resetSchedulerState();
+
+    // call component updated and activated hooks
+    callActivatedHooks(activatedQueue);
+    callUpdatedHooks(updatedQueue);
+
+    // devtool hook
+    /* istanbul ignore if */
+    if (devtools && config.devtools) {
+      devtools.emit('flush');
+    }
+  }
+
+  function callUpdatedHooks (queue) {
+    var i = queue.length;
+    while (i--) {
+      var watcher = queue[i];
+      var vm = watcher.vm;
+      if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
+        callHook(vm, 'updated');
+      }
+    }
+  }
+
+  /**
+   * Queue a kept-alive component that was activated during patch.
+   * The queue will be processed after the entire tree has been patched.
+   */
+  function queueActivatedComponent (vm) {
+    // setting _inactive to false here so that a render function can
+    // rely on checking whether it's in an inactive tree (e.g. router-view)
+    vm._inactive = false;
+    activatedChildren.push(vm);
+  }
+
+  function callActivatedHooks (queue) {
+    for (var i = 0; i < queue.length; i++) {
+      queue[i]._inactive = true;
+      activateChildComponent(queue[i], true /* true */);
+    }
+  }
+
+  /**
+   * Push a watcher into the watcher queue.
+   * Jobs with duplicate IDs will be skipped unless it's
+   * pushed when the queue is being flushed.
+   */
+  function queueWatcher (watcher) {
+    var id = watcher.id;
+    if (has[id] == null) {
+      has[id] = true;
+      if (!flushing) {
+        queue.push(watcher);
+      } else {
+        // if already flushing, splice the watcher based on its id
+        // if already past its id, it will be run next immediately.
+        var i = queue.length - 1;
+        while (i > index && queue[i].id > watcher.id) {
+          i--;
+        }
+        queue.splice(i + 1, 0, watcher);
+      }
+      // queue the flush
+      if (!waiting) {
+        waiting = true;
+
+        if (!config.async) {
+          flushSchedulerQueue();
+          return
+        }
+        nextTick(flushSchedulerQueue);
+      }
+    }
+  }
+
+  /*  */
+
+
+
+  var uid$2 = 0;
+
+  /**
+   * A watcher parses an expression, collects dependencies,
+   * and fires callback when the expression value changes.
+   * This is used for both the $watch() api and directives.
+   */
+  var Watcher = function Watcher (
+    vm,
+    expOrFn,
+    cb,
+    options,
+    isRenderWatcher
+  ) {
+    this.vm = vm;
+    if (isRenderWatcher) {
+      vm._watcher = this;
+    }
+    vm._watchers.push(this);
+    // options
+    if (options) {
+      this.deep = !!options.deep;
+      this.user = !!options.user;
+      this.lazy = !!options.lazy;
+      this.sync = !!options.sync;
+      this.before = options.before;
+    } else {
+      this.deep = this.user = this.lazy = this.sync = false;
+    }
+    this.cb = cb;
+    this.id = ++uid$2; // uid for batching
+    this.active = true;
+    this.dirty = this.lazy; // for lazy watchers
+    this.deps = [];
+    this.newDeps = [];
+    this.depIds = new _Set();
+    this.newDepIds = new _Set();
+    this.expression = expOrFn.toString();
+    // parse expression for getter
+    if (typeof expOrFn === 'function') {
+      this.getter = expOrFn;
+    } else {
+      this.getter = parsePath(expOrFn);
+      if (!this.getter) {
+        this.getter = noop;
+        warn(
+          "Failed watching path: \"" + expOrFn + "\" " +
+          'Watcher only accepts simple dot-delimited paths. ' +
+          'For full control, use a function instead.',
+          vm
+        );
+      }
+    }
+    this.value = this.lazy
+      ? undefined
+      : this.get();
+  };
+
+  /**
+   * Evaluate the getter, and re-collect dependencies.
+   */
+  Watcher.prototype.get = function get () {
+    pushTarget(this);
+    var value;
+    var vm = this.vm;
+    try {
+      value = this.getter.call(vm, vm);
+    } catch (e) {
+      if (this.user) {
+        handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
+      } else {
+        throw e
+      }
+    } finally {
+      // "touch" every property so they are all tracked as
+      // dependencies for deep watching
+      if (this.deep) {
+        traverse(value);
+      }
+      popTarget();
+      this.cleanupDeps();
+    }
+    return value
+  };
+
+  /**
+   * Add a dependency to this directive.
+   */
+  Watcher.prototype.addDep = function addDep (dep) {
+    var id = dep.id;
+    if (!this.newDepIds.has(id)) {
+      this.newDepIds.add(id);
+      this.newDeps.push(dep);
+      if (!this.depIds.has(id)) {
+        dep.addSub(this);
+      }
+    }
+  };
+
+  /**
+   * Clean up for dependency collection.
+   */
+  Watcher.prototype.cleanupDeps = function cleanupDeps () {
+    var i = this.deps.length;
+    while (i--) {
+      var dep = this.deps[i];
+      if (!this.newDepIds.has(dep.id)) {
+        dep.removeSub(this);
+      }
+    }
+    var tmp = this.depIds;
+    this.depIds = this.newDepIds;
+    this.newDepIds = tmp;
+    this.newDepIds.clear();
+    tmp = this.deps;
+    this.deps = this.newDeps;
+    this.newDeps = tmp;
+    this.newDeps.length = 0;
+  };
+
+  /**
+   * Subscriber interface.
+   * Will be called when a dependency changes.
+   */
+  Watcher.prototype.update = function update () {
+    /* istanbul ignore else */
+    if (this.lazy) {
+      this.dirty = true;
+    } else if (this.sync) {
+      this.run();
+    } else {
+      queueWatcher(this);
+    }
+  };
+
+  /**
+   * Scheduler job interface.
+   * Will be called by the scheduler.
+   */
+  Watcher.prototype.run = function run () {
+    if (this.active) {
+      var value = this.get();
+      if (
+        value !== this.value ||
+        // Deep watchers and watchers on Object/Arrays should fire even
+        // when the value is the same, because the value may
+        // have mutated.
+        isObject(value) ||
+        this.deep
+      ) {
+        // set new value
+        var oldValue = this.value;
+        this.value = value;
+        if (this.user) {
+          try {
+            this.cb.call(this.vm, value, oldValue);
+          } catch (e) {
+            handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
+          }
+        } else {
+          this.cb.call(this.vm, value, oldValue);
+        }
+      }
+    }
+  };
+
+  /**
+   * Evaluate the value of the watcher.
+   * This only gets called for lazy watchers.
+   */
+  Watcher.prototype.evaluate = function evaluate () {
+    this.value = this.get();
+    this.dirty = false;
+  };
+
+  /**
+   * Depend on all deps collected by this watcher.
+   */
+  Watcher.prototype.depend = function depend () {
+    var i = this.deps.length;
+    while (i--) {
+      this.deps[i].depend();
+    }
+  };
+
+  /**
+   * Remove self from all dependencies' subscriber list.
+   */
+  Watcher.prototype.teardown = function teardown () {
+    if (this.active) {
+      // remove self from vm's watcher list
+      // this is a somewhat expensive operation so we skip it
+      // if the vm is being destroyed.
+      if (!this.vm._isBeingDestroyed) {
+        remove(this.vm._watchers, this);
+      }
+      var i = this.deps.length;
+      while (i--) {
+        this.deps[i].removeSub(this);
+      }
+      this.active = false;
+    }
+  };
+
+  /*  */
+
+  var sharedPropertyDefinition = {
+    enumerable: true,
+    configurable: true,
+    get: noop,
+    set: noop
+  };
+
+  function proxy (target, sourceKey, key) {
+    sharedPropertyDefinition.get = function proxyGetter () {
+      return this[sourceKey][key]
+    };
+    sharedPropertyDefinition.set = function proxySetter (val) {
+      this[sourceKey][key] = val;
+    };
+    Object.defineProperty(target, key, sharedPropertyDefinition);
+  }
+
+  function initState (vm) {
+    vm._watchers = [];
+    var opts = vm.$options;
+    if (opts.props) { initProps(vm, opts.props); }
+    if (opts.methods) { initMethods(vm, opts.methods); }
+    if (opts.data) {
+      initData(vm);
+    } else {
+      observe(vm._data = {}, true /* asRootData */);
+    }
+    if (opts.computed) { initComputed(vm, opts.computed); }
+    if (opts.watch && opts.watch !== nativeWatch) {
+      initWatch(vm, opts.watch);
+    }
+  }
+
+  function initProps (vm, propsOptions) {
+    var propsData = vm.$options.propsData || {};
+    var props = vm._props = {};
+    // cache prop keys so that future props updates can iterate using Array
+    // instead of dynamic object key enumeration.
+    var keys = vm.$options._propKeys = [];
+    var isRoot = !vm.$parent;
+    // root instance props should be converted
+    if (!isRoot) {
+      toggleObserving(false);
+    }
+    var loop = function ( key ) {
+      keys.push(key);
+      var value = validateProp(key, propsOptions, propsData, vm);
+      /* istanbul ignore else */
+      {
+        var hyphenatedKey = hyphenate(key);
+        if (isReservedAttribute(hyphenatedKey) ||
+            config.isReservedAttr(hyphenatedKey)) {
+          warn(
+            ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
+            vm
+          );
+        }
+        defineReactive$$1(props, key, value, function () {
+          if (!isRoot && !isUpdatingChildComponent) {
+            warn(
+              "Avoid mutating a prop directly since the value will be " +
+              "overwritten whenever the parent component re-renders. " +
+              "Instead, use a data or computed property based on the prop's " +
+              "value. Prop being mutated: \"" + key + "\"",
+              vm
+            );
+          }
+        });
+      }
+      // static props are already proxied on the component's prototype
+      // during Vue.extend(). We only need to proxy props defined at
+      // instantiation here.
+      if (!(key in vm)) {
+        proxy(vm, "_props", key);
+      }
+    };
+
+    for (var key in propsOptions) loop( key );
+    toggleObserving(true);
+  }
+
+  function initData (vm) {
+    var data = vm.$options.data;
+    data = vm._data = typeof data === 'function'
+      ? getData(data, vm)
+      : data || {};
+    if (!isPlainObject(data)) {
+      data = {};
+      warn(
+        'data functions should return an object:\n' +
+        'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
+        vm
+      );
+    }
+    // proxy data on instance
+    var keys = Object.keys(data);
+    var props = vm.$options.props;
+    var methods = vm.$options.methods;
+    var i = keys.length;
+    while (i--) {
+      var key = keys[i];
+      {
+        if (methods && hasOwn(methods, key)) {
+          warn(
+            ("Method \"" + key + "\" has already been defined as a data property."),
+            vm
+          );
+        }
+      }
+      if (props && hasOwn(props, key)) {
+        warn(
+          "The data property \"" + key + "\" is already declared as a prop. " +
+          "Use prop default value instead.",
+          vm
+        );
+      } else if (!isReserved(key)) {
+        proxy(vm, "_data", key);
+      }
+    }
+    // observe data
+    observe(data, true /* asRootData */);
+  }
+
+  function getData (data, vm) {
+    // #7573 disable dep collection when invoking data getters
+    pushTarget();
+    try {
+      return data.call(vm, vm)
+    } catch (e) {
+      handleError(e, vm, "data()");
+      return {}
+    } finally {
+      popTarget();
+    }
+  }
+
+  var computedWatcherOptions = { lazy: true };
+
+  function initComputed (vm, computed) {
+    // $flow-disable-line
+    var watchers = vm._computedWatchers = Object.create(null);
+    // computed properties are just getters during SSR
+    var isSSR = isServerRendering();
+
+    for (var key in computed) {
+      var userDef = computed[key];
+      var getter = typeof userDef === 'function' ? userDef : userDef.get;
+      if (getter == null) {
+        warn(
+          ("Getter is missing for computed property \"" + key + "\"."),
+          vm
+        );
+      }
+
+      if (!isSSR) {
+        // create internal watcher for the computed property.
+        watchers[key] = new Watcher(
+          vm,
+          getter || noop,
+          noop,
+          computedWatcherOptions
+        );
+      }
+
+      // component-defined computed properties are already defined on the
+      // component prototype. We only need to define computed properties defined
+      // at instantiation here.
+      if (!(key in vm)) {
+        defineComputed(vm, key, userDef);
+      } else {
+        if (key in vm.$data) {
+          warn(("The computed property \"" + key + "\" is already defined in data."), vm);
+        } else if (vm.$options.props && key in vm.$options.props) {
+          warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
+        }
+      }
+    }
+  }
+
+  function defineComputed (
+    target,
+    key,
+    userDef
+  ) {
+    var shouldCache = !isServerRendering();
+    if (typeof userDef === 'function') {
+      sharedPropertyDefinition.get = shouldCache
+        ? createComputedGetter(key)
+        : createGetterInvoker(userDef);
+      sharedPropertyDefinition.set = noop;
+    } else {
+      sharedPropertyDefinition.get = userDef.get
+        ? shouldCache && userDef.cache !== false
+          ? createComputedGetter(key)
+          : createGetterInvoker(userDef.get)
+        : noop;
+      sharedPropertyDefinition.set = userDef.set || noop;
+    }
+    if (sharedPropertyDefinition.set === noop) {
+      sharedPropertyDefinition.set = function () {
+        warn(
+          ("Computed property \"" + key + "\" was assigned to but it has no setter."),
+          this
+        );
+      };
+    }
+    Object.defineProperty(target, key, sharedPropertyDefinition);
+  }
+
+  function createComputedGetter (key) {
+    return function computedGetter () {
+      var watcher = this._computedWatchers && this._computedWatchers[key];
+      if (watcher) {
+        if (watcher.dirty) {
+          watcher.evaluate();
+        }
+        if (Dep.target) {
+          watcher.depend();
+        }
+        return watcher.value
+      }
+    }
+  }
+
+  function createGetterInvoker(fn) {
+    return function computedGetter () {
+      return fn.call(this, this)
+    }
+  }
+
+  function initMethods (vm, methods) {
+    var props = vm.$options.props;
+    for (var key in methods) {
+      {
+        if (typeof methods[key] !== 'function') {
+          warn(
+            "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
+            "Did you reference the function correctly?",
+            vm
+          );
+        }
+        if (props && hasOwn(props, key)) {
+          warn(
+            ("Method \"" + key + "\" has already been defined as a prop."),
+            vm
+          );
+        }
+        if ((key in vm) && isReserved(key)) {
+          warn(
+            "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
+            "Avoid defining component methods that start with _ or $."
+          );
+        }
+      }
+      vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
+    }
+  }
+
+  function initWatch (vm, watch) {
+    for (var key in watch) {
+      var handler = watch[key];
+      if (Array.isArray(handler)) {
+        for (var i = 0; i < handler.length; i++) {
+          createWatcher(vm, key, handler[i]);
+        }
+      } else {
+        createWatcher(vm, key, handler);
+      }
+    }
+  }
+
+  function createWatcher (
+    vm,
+    expOrFn,
+    handler,
+    options
+  ) {
+    if (isPlainObject(handler)) {
+      options = handler;
+      handler = handler.handler;
+    }
+    if (typeof handler === 'string') {
+      handler = vm[handler];
+    }
+    return vm.$watch(expOrFn, handler, options)
+  }
+
+  function stateMixin (Vue) {
+    // flow somehow has problems with directly declared definition object
+    // when using Object.defineProperty, so we have to procedurally build up
+    // the object here.
+    var dataDef = {};
+    dataDef.get = function () { return this._data };
+    var propsDef = {};
+    propsDef.get = function () { return this._props };
+    {
+      dataDef.set = function () {
+        warn(
+          'Avoid replacing instance root $data. ' +
+          'Use nested data properties instead.',
+          this
+        );
+      };
+      propsDef.set = function () {
+        warn("$props is readonly.", this);
+      };
+    }
+    Object.defineProperty(Vue.prototype, '$data', dataDef);
+    Object.defineProperty(Vue.prototype, '$props', propsDef);
+
+    Vue.prototype.$set = set;
+    Vue.prototype.$delete = del;
+
+    Vue.prototype.$watch = function (
+      expOrFn,
+      cb,
+      options
+    ) {
+      var vm = this;
+      if (isPlainObject(cb)) {
+        return createWatcher(vm, expOrFn, cb, options)
+      }
+      options = options || {};
+      options.user = true;
+      var watcher = new Watcher(vm, expOrFn, cb, options);
+      if (options.immediate) {
+        try {
+          cb.call(vm, watcher.value);
+        } catch (error) {
+          handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
+        }
+      }
+      return function unwatchFn () {
+        watcher.teardown();
+      }
+    };
+  }
+
+  /*  */
+
+  var uid$3 = 0;
+
+  function initMixin (Vue) {
+    Vue.prototype._init = function (options) {
+      var vm = this;
+      // a uid
+      vm._uid = uid$3++;
+
+      var startTag, endTag;
+      /* istanbul ignore if */
+      if (config.performance && mark) {
+        startTag = "vue-perf-start:" + (vm._uid);
+        endTag = "vue-perf-end:" + (vm._uid);
+        mark(startTag);
+      }
+
+      // a flag to avoid this being observed
+      vm._isVue = true;
+      // merge options
+      if (options && options._isComponent) {
+        // optimize internal component instantiation
+        // since dynamic options merging is pretty slow, and none of the
+        // internal component options needs special treatment.
+        initInternalComponent(vm, options);
+      } else {
+        vm.$options = mergeOptions(
+          resolveConstructorOptions(vm.constructor),
+          options || {},
+          vm
+        );
+      }
+      /* istanbul ignore else */
+      {
+        initProxy(vm);
+      }
+      // expose real self
+      vm._self = vm;
+      initLifecycle(vm);
+      initEvents(vm);
+      initRender(vm);
+      callHook(vm, 'beforeCreate');
+      initInjections(vm); // resolve injections before data/props
+      initState(vm);
+      initProvide(vm); // resolve provide after data/props
+      callHook(vm, 'created');
+
+      /* istanbul ignore if */
+      if (config.performance && mark) {
+        vm._name = formatComponentName(vm, false);
+        mark(endTag);
+        measure(("vue " + (vm._name) + " init"), startTag, endTag);
+      }
+
+      if (vm.$options.el) {
+        vm.$mount(vm.$options.el);
+      }
+    };
+  }
+
+  function initInternalComponent (vm, options) {
+    var opts = vm.$options = Object.create(vm.constructor.options);
+    // doing this because it's faster than dynamic enumeration.
+    var parentVnode = options._parentVnode;
+    opts.parent = options.parent;
+    opts._parentVnode = parentVnode;
+
+    var vnodeComponentOptions = parentVnode.componentOptions;
+    opts.propsData = vnodeComponentOptions.propsData;
+    opts._parentListeners = vnodeComponentOptions.listeners;
+    opts._renderChildren = vnodeComponentOptions.children;
+    opts._componentTag = vnodeComponentOptions.tag;
+
+    if (options.render) {
+      opts.render = options.render;
+      opts.staticRenderFns = options.staticRenderFns;
+    }
+  }
+
+  function resolveConstructorOptions (Ctor) {
+    var options = Ctor.options;
+    if (Ctor.super) {
+      var superOptions = resolveConstructorOptions(Ctor.super);
+      var cachedSuperOptions = Ctor.superOptions;
+      if (superOptions !== cachedSuperOptions) {
+        // super option changed,
+        // need to resolve new options.
+        Ctor.superOptions = superOptions;
+        // check if there are any late-modified/attached options (#4976)
+        var modifiedOptions = resolveModifiedOptions(Ctor);
+        // update base extend options
+        if (modifiedOptions) {
+          extend(Ctor.extendOptions, modifiedOptions);
+        }
+        options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
+        if (options.name) {
+          options.components[options.name] = Ctor;
+        }
+      }
+    }
+    return options
+  }
+
+  function resolveModifiedOptions (Ctor) {
+    var modified;
+    var latest = Ctor.options;
+    var sealed = Ctor.sealedOptions;
+    for (var key in latest) {
+      if (latest[key] !== sealed[key]) {
+        if (!modified) { modified = {}; }
+        modified[key] = latest[key];
+      }
+    }
+    return modified
+  }
+
+  function Vue (options) {
+    if (!(this instanceof Vue)
+    ) {
+      warn('Vue is a constructor and should be called with the `new` keyword');
+    }
+    this._init(options);
+  }
+
+  initMixin(Vue);
+  stateMixin(Vue);
+  eventsMixin(Vue);
+  lifecycleMixin(Vue);
+  renderMixin(Vue);
+
+  /*  */
+
+  function initUse (Vue) {
+    Vue.use = function (plugin) {
+      var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
+      if (installedPlugins.indexOf(plugin) > -1) {
+        return this
+      }
+
+      // additional parameters
+      var args = toArray(arguments, 1);
+      args.unshift(this);
+      if (typeof plugin.install === 'function') {
+        plugin.install.apply(plugin, args);
+      } else if (typeof plugin === 'function') {
+        plugin.apply(null, args);
+      }
+      installedPlugins.push(plugin);
+      return this
+    };
+  }
+
+  /*  */
+
+  function initMixin$1 (Vue) {
+    Vue.mixin = function (mixin) {
+      this.options = mergeOptions(this.options, mixin);
+      return this
+    };
+  }
+
+  /*  */
+
+  function initExtend (Vue) {
+    /**
+     * Each instance constructor, including Vue, has a unique
+     * cid. This enables us to create wrapped "child
+     * constructors" for prototypal inheritance and cache them.
+     */
+    Vue.cid = 0;
+    var cid = 1;
+
+    /**
+     * Class inheritance
+     */
+    Vue.extend = function (extendOptions) {
+      extendOptions = extendOptions || {};
+      var Super = this;
+      var SuperId = Super.cid;
+      var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
+      if (cachedCtors[SuperId]) {
+        return cachedCtors[SuperId]
+      }
+
+      var name = extendOptions.name || Super.options.name;
+      if (name) {
+        validateComponentName(name);
+      }
+
+      var Sub = function VueComponent (options) {
+        this._init(options);
+      };
+      Sub.prototype = Object.create(Super.prototype);
+      Sub.prototype.constructor = Sub;
+      Sub.cid = cid++;
+      Sub.options = mergeOptions(
+        Super.options,
+        extendOptions
+      );
+      Sub['super'] = Super;
+
+      // For props and computed properties, we define the proxy getters on
+      // the Vue instances at extension time, on the extended prototype. This
+      // avoids Object.defineProperty calls for each instance created.
+      if (Sub.options.props) {
+        initProps$1(Sub);
+      }
+      if (Sub.options.computed) {
+        initComputed$1(Sub);
+      }
+
+      // allow further extension/mixin/plugin usage
+      Sub.extend = Super.extend;
+      Sub.mixin = Super.mixin;
+      Sub.use = Super.use;
+
+      // create asset registers, so extended classes
+      // can have their private assets too.
+      ASSET_TYPES.forEach(function (type) {
+        Sub[type] = Super[type];
+      });
+      // enable recursive self-lookup
+      if (name) {
+        Sub.options.components[name] = Sub;
+      }
+
+      // keep a reference to the super options at extension time.
+      // later at instantiation we can check if Super's options have
+      // been updated.
+      Sub.superOptions = Super.options;
+      Sub.extendOptions = extendOptions;
+      Sub.sealedOptions = extend({}, Sub.options);
+
+      // cache constructor
+      cachedCtors[SuperId] = Sub;
+      return Sub
+    };
+  }
+
+  function initProps$1 (Comp) {
+    var props = Comp.options.props;
+    for (var key in props) {
+      proxy(Comp.prototype, "_props", key);
+    }
+  }
+
+  function initComputed$1 (Comp) {
+    var computed = Comp.options.computed;
+    for (var key in computed) {
+      defineComputed(Comp.prototype, key, computed[key]);
+    }
+  }
+
+  /*  */
+
+  function initAssetRegisters (Vue) {
+    /**
+     * Create asset registration methods.
+     */
+    ASSET_TYPES.forEach(function (type) {
+      Vue[type] = function (
+        id,
+        definition
+      ) {
+        if (!definition) {
+          return this.options[type + 's'][id]
+        } else {
+          /* istanbul ignore if */
+          if (type === 'component') {
+            validateComponentName(id);
+          }
+          if (type === 'component' && isPlainObject(definition)) {
+            definition.name = definition.name || id;
+            definition = this.options._base.extend(definition);
+          }
+          if (type === 'directive' && typeof definition === 'function') {
+            definition = { bind: definition, update: definition };
+          }
+          this.options[type + 's'][id] = definition;
+          return definition
+        }
+      };
+    });
+  }
+
+  /*  */
+
+
+
+  function getComponentName (opts) {
+    return opts && (opts.Ctor.options.name || opts.tag)
+  }
+
+  function matches (pattern, name) {
+    if (Array.isArray(pattern)) {
+      return pattern.indexOf(name) > -1
+    } else if (typeof pattern === 'string') {
+      return pattern.split(',').indexOf(name) > -1
+    } else if (isRegExp(pattern)) {
+      return pattern.test(name)
+    }
+    /* istanbul ignore next */
+    return false
+  }
+
+  function pruneCache (keepAliveInstance, filter) {
+    var cache = keepAliveInstance.cache;
+    var keys = keepAliveInstance.keys;
+    var _vnode = keepAliveInstance._vnode;
+    for (var key in cache) {
+      var cachedNode = cache[key];
+      if (cachedNode) {
+        var name = getComponentName(cachedNode.componentOptions);
+        if (name && !filter(name)) {
+          pruneCacheEntry(cache, key, keys, _vnode);
+        }
+      }
+    }
+  }
+
+  function pruneCacheEntry (
+    cache,
+    key,
+    keys,
+    current
+  ) {
+    var cached$$1 = cache[key];
+    if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
+      cached$$1.componentInstance.$destroy();
+    }
+    cache[key] = null;
+    remove(keys, key);
+  }
+
+  var patternTypes = [String, RegExp, Array];
+
+  var KeepAlive = {
+    name: 'keep-alive',
+    abstract: true,
+
+    props: {
+      include: patternTypes,
+      exclude: patternTypes,
+      max: [String, Number]
+    },
+
+    created: function created () {
+      this.cache = Object.create(null);
+      this.keys = [];
+    },
+
+    destroyed: function destroyed () {
+      for (var key in this.cache) {
+        pruneCacheEntry(this.cache, key, this.keys);
+      }
+    },
+
+    mounted: function mounted () {
+      var this$1 = this;
+
+      this.$watch('include', function (val) {
+        pruneCache(this$1, function (name) { return matches(val, name); });
+      });
+      this.$watch('exclude', function (val) {
+        pruneCache(this$1, function (name) { return !matches(val, name); });
+      });
+    },
+
+    render: function render () {
+      var slot = this.$slots.default;
+      var vnode = getFirstComponentChild(slot);
+      var componentOptions = vnode && vnode.componentOptions;
+      if (componentOptions) {
+        // check pattern
+        var name = getComponentName(componentOptions);
+        var ref = this;
+        var include = ref.include;
+        var exclude = ref.exclude;
+        if (
+          // not included
+          (include && (!name || !matches(include, name))) ||
+          // excluded
+          (exclude && name && matches(exclude, name))
+        ) {
+          return vnode
+        }
+
+        var ref$1 = this;
+        var cache = ref$1.cache;
+        var keys = ref$1.keys;
+        var key = vnode.key == null
+          // same constructor may get registered as different local components
+          // so cid alone is not enough (#3269)
+          ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
+          : vnode.key;
+        if (cache[key]) {
+          vnode.componentInstance = cache[key].componentInstance;
+          // make current key freshest
+          remove(keys, key);
+          keys.push(key);
+        } else {
+          cache[key] = vnode;
+          keys.push(key);
+          // prune oldest entry
+          if (this.max && keys.length > parseInt(this.max)) {
+            pruneCacheEntry(cache, keys[0], keys, this._vnode);
+          }
+        }
+
+        vnode.data.keepAlive = true;
+      }
+      return vnode || (slot && slot[0])
+    }
+  };
+
+  var builtInComponents = {
+    KeepAlive: KeepAlive
+  };
+
+  /*  */
+
+  function initGlobalAPI (Vue) {
+    // config
+    var configDef = {};
+    configDef.get = function () { return config; };
+    {
+      configDef.set = function () {
+        warn(
+          'Do not replace the Vue.config object, set individual fields instead.'
+        );
+      };
+    }
+    Object.defineProperty(Vue, 'config', configDef);
+
+    // exposed util methods.
+    // NOTE: these are not considered part of the public API - avoid relying on
+    // them unless you are aware of the risk.
+    Vue.util = {
+      warn: warn,
+      extend: extend,
+      mergeOptions: mergeOptions,
+      defineReactive: defineReactive$$1
+    };
+
+    Vue.set = set;
+    Vue.delete = del;
+    Vue.nextTick = nextTick;
+
+    // 2.6 explicit observable API
+    Vue.observable = function (obj) {
+      observe(obj);
+      return obj
+    };
+
+    Vue.options = Object.create(null);
+    ASSET_TYPES.forEach(function (type) {
+      Vue.options[type + 's'] = Object.create(null);
+    });
+
+    // this is used to identify the "base" constructor to extend all plain-object
+    // components with in Weex's multi-instance scenarios.
+    Vue.options._base = Vue;
+
+    extend(Vue.options.components, builtInComponents);
+
+    initUse(Vue);
+    initMixin$1(Vue);
+    initExtend(Vue);
+    initAssetRegisters(Vue);
+  }
+
+  initGlobalAPI(Vue);
+
+  Object.defineProperty(Vue.prototype, '$isServer', {
+    get: isServerRendering
+  });
+
+  Object.defineProperty(Vue.prototype, '$ssrContext', {
+    get: function get () {
+      /* istanbul ignore next */
+      return this.$vnode && this.$vnode.ssrContext
+    }
+  });
+
+  // expose FunctionalRenderContext for ssr runtime helper installation
+  Object.defineProperty(Vue, 'FunctionalRenderContext', {
+    value: FunctionalRenderContext
+  });
+
+  Vue.version = '2.6.10';
+
+  /*  */
+
+  // these are reserved for web because they are directly compiled away
+  // during template compilation
+  var isReservedAttr = makeMap('style,class');
+
+  // attributes that should be using props for binding
+  var acceptValue = makeMap('input,textarea,option,select,progress');
+  var mustUseProp = function (tag, type, attr) {
+    return (
+      (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
+      (attr === 'selected' && tag === 'option') ||
+      (attr === 'checked' && tag === 'input') ||
+      (attr === 'muted' && tag === 'video')
+    )
+  };
+
+  var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
+
+  var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');
+
+  var convertEnumeratedValue = function (key, value) {
+    return isFalsyAttrValue(value) || value === 'false'
+      ? 'false'
+      // allow arbitrary string value for contenteditable
+      : key === 'contenteditable' && isValidContentEditableValue(value)
+        ? value
+        : 'true'
+  };
+
+  var isBooleanAttr = makeMap(
+    'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
+    'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
+    'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
+    'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
+    'required,reversed,scoped,seamless,selected,sortable,translate,' +
+    'truespeed,typemustmatch,visible'
+  );
+
+  var xlinkNS = 'http://www.w3.org/1999/xlink';
+
+  var isXlink = function (name) {
+    return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
+  };
+
+  var getXlinkProp = function (name) {
+    return isXlink(name) ? name.slice(6, name.length) : ''
+  };
+
+  var isFalsyAttrValue = function (val) {
+    return val == null || val === false
+  };
+
+  /*  */
+
+  function genClassForVnode (vnode) {
+    var data = vnode.data;
+    var parentNode = vnode;
+    var childNode = vnode;
+    while (isDef(childNode.componentInstance)) {
+      childNode = childNode.componentInstance._vnode;
+      if (childNode && childNode.data) {
+        data = mergeClassData(childNode.data, data);
+      }
+    }
+    while (isDef(parentNode = parentNode.parent)) {
+      if (parentNode && parentNode.data) {
+        data = mergeClassData(data, parentNode.data);
+      }
+    }
+    return renderClass(data.staticClass, data.class)
+  }
+
+  function mergeClassData (child, parent) {
+    return {
+      staticClass: concat(child.staticClass, parent.staticClass),
+      class: isDef(child.class)
+        ? [child.class, parent.class]
+        : parent.class
+    }
+  }
+
+  function renderClass (
+    staticClass,
+    dynamicClass
+  ) {
+    if (isDef(staticClass) || isDef(dynamicClass)) {
+      return concat(staticClass, stringifyClass(dynamicClass))
+    }
+    /* istanbul ignore next */
+    return ''
+  }
+
+  function concat (a, b) {
+    return a ? b ? (a + ' ' + b) : a : (b || '')
+  }
+
+  function stringifyClass (value) {
+    if (Array.isArray(value)) {
+      return stringifyArray(value)
+    }
+    if (isObject(value)) {
+      return stringifyObject(value)
+    }
+    if (typeof value === 'string') {
+      return value
+    }
+    /* istanbul ignore next */
+    return ''
+  }
+
+  function stringifyArray (value) {
+    var res = '';
+    var stringified;
+    for (var i = 0, l = value.length; i < l; i++) {
+      if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
+        if (res) { res += ' '; }
+        res += stringified;
+      }
+    }
+    return res
+  }
+
+  function stringifyObject (value) {
+    var res = '';
+    for (var key in value) {
+      if (value[key]) {
+        if (res) { res += ' '; }
+        res += key;
+      }
+    }
+    return res
+  }
+
+  /*  */
+
+  var namespaceMap = {
+    svg: 'http://www.w3.org/2000/svg',
+    math: 'http://www.w3.org/1998/Math/MathML'
+  };
+
+  var isHTMLTag = makeMap(
+    'html,body,base,head,link,meta,style,title,' +
+    'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
+    'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
+    'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
+    's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
+    'embed,object,param,source,canvas,script,noscript,del,ins,' +
+    'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
+    'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
+    'output,progress,select,textarea,' +
+    'details,dialog,menu,menuitem,summary,' +
+    'content,element,shadow,template,blockquote,iframe,tfoot'
+  );
+
+  // this map is intentionally selective, only covering SVG elements that may
+  // contain child elements.
+  var isSVG = makeMap(
+    'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
+    'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
+    'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
+    true
+  );
+
+  var isReservedTag = function (tag) {
+    return isHTMLTag(tag) || isSVG(tag)
+  };
+
+  function getTagNamespace (tag) {
+    if (isSVG(tag)) {
+      return 'svg'
+    }
+    // basic support for MathML
+    // note it doesn't support other MathML elements being component roots
+    if (tag === 'math') {
+      return 'math'
+    }
+  }
+
+  var unknownElementCache = Object.create(null);
+  function isUnknownElement (tag) {
+    /* istanbul ignore if */
+    if (!inBrowser) {
+      return true
+    }
+    if (isReservedTag(tag)) {
+      return false
+    }
+    tag = tag.toLowerCase();
+    /* istanbul ignore if */
+    if (unknownElementCache[tag] != null) {
+      return unknownElementCache[tag]
+    }
+    var el = document.createElement(tag);
+    if (tag.indexOf('-') > -1) {
+      // http://stackoverflow.com/a/28210364/1070244
+      return (unknownElementCache[tag] = (
+        el.constructor === window.HTMLUnknownElement ||
+        el.constructor === window.HTMLElement
+      ))
+    } else {
+      return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
+    }
+  }
+
+  var isTextInputType = makeMap('text,number,password,search,email,tel,url');
+
+  /*  */
+
+  /**
+   * Query an element selector if it's not an element already.
+   */
+  function query (el) {
+    if (typeof el === 'string') {
+      var selected = document.querySelector(el);
+      if (!selected) {
+        warn(
+          'Cannot find element: ' + el
+        );
+        return document.createElement('div')
+      }
+      return selected
+    } else {
+      return el
+    }
+  }
+
+  /*  */
+
+  function createElement$1 (tagName, vnode) {
+    var elm = document.createElement(tagName);
+    if (tagName !== 'select') {
+      return elm
+    }
+    // false or null will remove the attribute but undefined will not
+    if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
+      elm.setAttribute('multiple', 'multiple');
+    }
+    return elm
+  }
+
+  function createElementNS (namespace, tagName) {
+    return document.createElementNS(namespaceMap[namespace], tagName)
+  }
+
+  function createTextNode (text) {
+    return document.createTextNode(text)
+  }
+
+  function createComment (text) {
+    return document.createComment(text)
+  }
+
+  function insertBefore (parentNode, newNode, referenceNode) {
+    parentNode.insertBefore(newNode, referenceNode);
+  }
+
+  function removeChild (node, child) {
+    node.removeChild(child);
+  }
+
+  function appendChild (node, child) {
+    node.appendChild(child);
+  }
+
+  function parentNode (node) {
+    return node.parentNode
+  }
+
+  function nextSibling (node) {
+    return node.nextSibling
+  }
+
+  function tagName (node) {
+    return node.tagName
+  }
+
+  function setTextContent (node, text) {
+    node.textContent = text;
+  }
+
+  function setStyleScope (node, scopeId) {
+    node.setAttribute(scopeId, '');
+  }
+
+  var nodeOps = /*#__PURE__*/Object.freeze({
+    createElement: createElement$1,
+    createElementNS: createElementNS,
+    createTextNode: createTextNode,
+    createComment: createComment,
+    insertBefore: insertBefore,
+    removeChild: removeChild,
+    appendChild: appendChild,
+    parentNode: parentNode,
+    nextSibling: nextSibling,
+    tagName: tagName,
+    setTextContent: setTextContent,
+    setStyleScope: setStyleScope
+  });
+
+  /*  */
+
+  var ref = {
+    create: function create (_, vnode) {
+      registerRef(vnode);
+    },
+    update: function update (oldVnode, vnode) {
+      if (oldVnode.data.ref !== vnode.data.ref) {
+        registerRef(oldVnode, true);
+        registerRef(vnode);
+      }
+    },
+    destroy: function destroy (vnode) {
+      registerRef(vnode, true);
+    }
+  };
+
+  function registerRef (vnode, isRemoval) {
+    var key = vnode.data.ref;
+    if (!isDef(key)) { return }
+
+    var vm = vnode.context;
+    var ref = vnode.componentInstance || vnode.elm;
+    var refs = vm.$refs;
+    if (isRemoval) {
+      if (Array.isArray(refs[key])) {
+        remove(refs[key], ref);
+      } else if (refs[key] === ref) {
+        refs[key] = undefined;
+      }
+    } else {
+      if (vnode.data.refInFor) {
+        if (!Array.isArray(refs[key])) {
+          refs[key] = [ref];
+        } else if (refs[key].indexOf(ref) < 0) {
+          // $flow-disable-line
+          refs[key].push(ref);
+        }
+      } else {
+        refs[key] = ref;
+      }
+    }
+  }
+
+  /**
+   * Virtual DOM patching algorithm based on Snabbdom by
+   * Simon Friis Vindum (@paldepind)
+   * Licensed under the MIT License
+   * https://github.com/paldepind/snabbdom/blob/master/LICENSE
+   *
+   * modified by Evan You (@yyx990803)
+   *
+   * Not type-checking this because this file is perf-critical and the cost
+   * of making flow understand it is not worth it.
+   */
+
+  var emptyNode = new VNode('', {}, []);
+
+  var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
+
+  function sameVnode (a, b) {
+    return (
+      a.key === b.key && (
+        (
+          a.tag === b.tag &&
+          a.isComment === b.isComment &&
+          isDef(a.data) === isDef(b.data) &&
+          sameInputType(a, b)
+        ) || (
+          isTrue(a.isAsyncPlaceholder) &&
+          a.asyncFactory === b.asyncFactory &&
+          isUndef(b.asyncFactory.error)
+        )
+      )
+    )
+  }
+
+  function sameInputType (a, b) {
+    if (a.tag !== 'input') { return true }
+    var i;
+    var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
+    var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
+    return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
+  }
+
+  function createKeyToOldIdx (children, beginIdx, endIdx) {
+    var i, key;
+    var map = {};
+    for (i = beginIdx; i <= endIdx; ++i) {
+      key = children[i].key;
+      if (isDef(key)) { map[key] = i; }
+    }
+    return map
+  }
+
+  function createPatchFunction (backend) {
+    var i, j;
+    var cbs = {};
+
+    var modules = backend.modules;
+    var nodeOps = backend.nodeOps;
+
+    for (i = 0; i < hooks.length; ++i) {
+      cbs[hooks[i]] = [];
+      for (j = 0; j < modules.length; ++j) {
+        if (isDef(modules[j][hooks[i]])) {
+          cbs[hooks[i]].push(modules[j][hooks[i]]);
+        }
+      }
+    }
+
+    function emptyNodeAt (elm) {
+      return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
+    }
+
+    function createRmCb (childElm, listeners) {
+      function remove$$1 () {
+        if (--remove$$1.listeners === 0) {
+          removeNode(childElm);
+        }
+      }
+      remove$$1.listeners = listeners;
+      return remove$$1
+    }
+
+    function removeNode (el) {
+      var parent = nodeOps.parentNode(el);
+      // element may have already been removed due to v-html / v-text
+      if (isDef(parent)) {
+        nodeOps.removeChild(parent, el);
+      }
+    }
+
+    function isUnknownElement$$1 (vnode, inVPre) {
+      return (
+        !inVPre &&
+        !vnode.ns &&
+        !(
+          config.ignoredElements.length &&
+          config.ignoredElements.some(function (ignore) {
+            return isRegExp(ignore)
+              ? ignore.test(vnode.tag)
+              : ignore === vnode.tag
+          })
+        ) &&
+        config.isUnknownElement(vnode.tag)
+      )
+    }
+
+    var creatingElmInVPre = 0;
+
+    function createElm (
+      vnode,
+      insertedVnodeQueue,
+      parentElm,
+      refElm,
+      nested,
+      ownerArray,
+      index
+    ) {
+      if (isDef(vnode.elm) && isDef(ownerArray)) {
+        // This vnode was used in a previous render!
+        // now it's used as a new node, overwriting its elm would cause
+        // potential patch errors down the road when it's used as an insertion
+        // reference node. Instead, we clone the node on-demand before creating
+        // associated DOM element for it.
+        vnode = ownerArray[index] = cloneVNode(vnode);
+      }
+
+      vnode.isRootInsert = !nested; // for transition enter check
+      if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
+        return
+      }
+
+      var data = vnode.data;
+      var children = vnode.children;
+      var tag = vnode.tag;
+      if (isDef(tag)) {
+        {
+          if (data && data.pre) {
+            creatingElmInVPre++;
+          }
+          if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
+            warn(
+              'Unknown custom element: <' + tag + '> - did you ' +
+              'register the component correctly? For recursive components, ' +
+              'make sure to provide the "name" option.',
+              vnode.context
+            );
+          }
+        }
+
+        vnode.elm = vnode.ns
+          ? nodeOps.createElementNS(vnode.ns, tag)
+          : nodeOps.createElement(tag, vnode);
+        setScope(vnode);
+
+        /* istanbul ignore if */
+        {
+          createChildren(vnode, children, insertedVnodeQueue);
+          if (isDef(data)) {
+            invokeCreateHooks(vnode, insertedVnodeQueue);
+          }
+          insert(parentElm, vnode.elm, refElm);
+        }
+
+        if (data && data.pre) {
+          creatingElmInVPre--;
+        }
+      } else if (isTrue(vnode.isComment)) {
+        vnode.elm = nodeOps.createComment(vnode.text);
+        insert(parentElm, vnode.elm, refElm);
+      } else {
+        vnode.elm = nodeOps.createTextNode(vnode.text);
+        insert(parentElm, vnode.elm, refElm);
+      }
+    }
+
+    function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
+      var i = vnode.data;
+      if (isDef(i)) {
+        var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
+        if (isDef(i = i.hook) && isDef(i = i.init)) {
+          i(vnode, false /* hydrating */);
+        }
+        // after calling the init hook, if the vnode is a child component
+        // it should've created a child instance and mounted it. the child
+        // component also has set the placeholder vnode's elm.
+        // in that case we can just return the element and be done.
+        if (isDef(vnode.componentInstance)) {
+          initComponent(vnode, insertedVnodeQueue);
+          insert(parentElm, vnode.elm, refElm);
+          if (isTrue(isReactivated)) {
+            reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
+          }
+          return true
+        }
+      }
+    }
+
+    function initComponent (vnode, insertedVnodeQueue) {
+      if (isDef(vnode.data.pendingInsert)) {
+        insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
+        vnode.data.pendingInsert = null;
+      }
+      vnode.elm = vnode.componentInstance.$el;
+      if (isPatchable(vnode)) {
+        invokeCreateHooks(vnode, insertedVnodeQueue);
+        setScope(vnode);
+      } else {
+        // empty component root.
+        // skip all element-related modules except for ref (#3455)
+        registerRef(vnode);
+        // make sure to invoke the insert hook
+        insertedVnodeQueue.push(vnode);
+      }
+    }
+
+    function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
+      var i;
+      // hack for #4339: a reactivated component with inner transition
+      // does not trigger because the inner node's created hooks are not called
+      // again. It's not ideal to involve module-specific logic in here but
+      // there doesn't seem to be a better way to do it.
+      var innerNode = vnode;
+      while (innerNode.componentInstance) {
+        innerNode = innerNode.componentInstance._vnode;
+        if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
+          for (i = 0; i < cbs.activate.length; ++i) {
+            cbs.activate[i](emptyNode, innerNode);
+          }
+          insertedVnodeQueue.push(innerNode);
+          break
+        }
+      }
+      // unlike a newly created component,
+      // a reactivated keep-alive component doesn't insert itself
+      insert(parentElm, vnode.elm, refElm);
+    }
+
+    function insert (parent, elm, ref$$1) {
+      if (isDef(parent)) {
+        if (isDef(ref$$1)) {
+          if (nodeOps.parentNode(ref$$1) === parent) {
+            nodeOps.insertBefore(parent, elm, ref$$1);
+          }
+        } else {
+          nodeOps.appendChild(parent, elm);
+        }
+      }
+    }
+
+    function createChildren (vnode, children, insertedVnodeQueue) {
+      if (Array.isArray(children)) {
+        {
+          checkDuplicateKeys(children);
+        }
+        for (var i = 0; i < children.length; ++i) {
+          createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
+        }
+      } else if (isPrimitive(vnode.text)) {
+        nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
+      }
+    }
+
+    function isPatchable (vnode) {
+      while (vnode.componentInstance) {
+        vnode = vnode.componentInstance._vnode;
+      }
+      return isDef(vnode.tag)
+    }
+
+    function invokeCreateHooks (vnode, insertedVnodeQueue) {
+      for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
+        cbs.create[i$1](emptyNode, vnode);
+      }
+      i = vnode.data.hook; // Reuse variable
+      if (isDef(i)) {
+        if (isDef(i.create)) { i.create(emptyNode, vnode); }
+        if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
+      }
+    }
+
+    // set scope id attribute for scoped CSS.
+    // this is implemented as a special case to avoid the overhead
+    // of going through the normal attribute patching process.
+    function setScope (vnode) {
+      var i;
+      if (isDef(i = vnode.fnScopeId)) {
+        nodeOps.setStyleScope(vnode.elm, i);
+      } else {
+        var ancestor = vnode;
+        while (ancestor) {
+          if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
+            nodeOps.setStyleScope(vnode.elm, i);
+          }
+          ancestor = ancestor.parent;
+        }
+      }
+      // for slot content they should also get the scopeId from the host instance.
+      if (isDef(i = activeInstance) &&
+        i !== vnode.context &&
+        i !== vnode.fnContext &&
+        isDef(i = i.$options._scopeId)
+      ) {
+        nodeOps.setStyleScope(vnode.elm, i);
+      }
+    }
+
+    function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
+      for (; startIdx <= endIdx; ++startIdx) {
+        createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
+      }
+    }
+
+    function invokeDestroyHook (vnode) {
+      var i, j;
+      var data = vnode.data;
+      if (isDef(data)) {
+        if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
+        for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
+      }
+      if (isDef(i = vnode.children)) {
+        for (j = 0; j < vnode.children.length; ++j) {
+          invokeDestroyHook(vnode.children[j]);
+        }
+      }
+    }
+
+    function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
+      for (; startIdx <= endIdx; ++startIdx) {
+        var ch = vnodes[startIdx];
+        if (isDef(ch)) {
+          if (isDef(ch.tag)) {
+            removeAndInvokeRemoveHook(ch);
+            invokeDestroyHook(ch);
+          } else { // Text node
+            removeNode(ch.elm);
+          }
+        }
+      }
+    }
+
+    function removeAndInvokeRemoveHook (vnode, rm) {
+      if (isDef(rm) || isDef(vnode.data)) {
+        var i;
+        var listeners = cbs.remove.length + 1;
+        if (isDef(rm)) {
+          // we have a recursively passed down rm callback
+          // increase the listeners count
+          rm.listeners += listeners;
+        } else {
+          // directly removing
+          rm = createRmCb(vnode.elm, listeners);
+        }
+        // recursively invoke hooks on child component root node
+        if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
+          removeAndInvokeRemoveHook(i, rm);
+        }
+        for (i = 0; i < cbs.remove.length; ++i) {
+          cbs.remove[i](vnode, rm);
+        }
+        if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
+          i(vnode, rm);
+        } else {
+          rm();
+        }
+      } else {
+        removeNode(vnode.elm);
+      }
+    }
+
+    function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
+      var oldStartIdx = 0;
+      var newStartIdx = 0;
+      var oldEndIdx = oldCh.length - 1;
+      var oldStartVnode = oldCh[0];
+      var oldEndVnode = oldCh[oldEndIdx];
+      var newEndIdx = newCh.length - 1;
+      var newStartVnode = newCh[0];
+      var newEndVnode = newCh[newEndIdx];
+      var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
+
+      // removeOnly is a special flag used only by <transition-group>
+      // to ensure removed elements stay in correct relative positions
+      // during leaving transitions
+      var canMove = !removeOnly;
+
+      {
+        checkDuplicateKeys(newCh);
+      }
+
+      while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
+        if (isUndef(oldStartVnode)) {
+          oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
+        } else if (isUndef(oldEndVnode)) {
+          oldEndVnode = oldCh[--oldEndIdx];
+        } else if (sameVnode(oldStartVnode, newStartVnode)) {
+          patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
+          oldStartVnode = oldCh[++oldStartIdx];
+          newStartVnode = newCh[++newStartIdx];
+        } else if (sameVnode(oldEndVnode, newEndVnode)) {
+          patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
+          oldEndVnode = oldCh[--oldEndIdx];
+          newEndVnode = newCh[--newEndIdx];
+        } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
+          patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
+          canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
+          oldStartVnode = oldCh[++oldStartIdx];
+          newEndVnode = newCh[--newEndIdx];
+        } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
+          patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
+          canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
+          oldEndVnode = oldCh[--oldEndIdx];
+          newStartVnode = newCh[++newStartIdx];
+        } else {
+          if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
+          idxInOld = isDef(newStartVnode.key)
+            ? oldKeyToIdx[newStartVnode.key]
+            : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
+          if (isUndef(idxInOld)) { // New element
+            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
+          } else {
+            vnodeToMove = oldCh[idxInOld];
+            if (sameVnode(vnodeToMove, newStartVnode)) {
+              patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
+              oldCh[idxInOld] = undefined;
+              canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
+            } else {
+              // same key but different element. treat as new element
+              createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
+            }
+          }
+          newStartVnode = newCh[++newStartIdx];
+        }
+      }
+      if (oldStartIdx > oldEndIdx) {
+        refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
+        addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
+      } else if (newStartIdx > newEndIdx) {
+        removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
+      }
+    }
+
+    function checkDuplicateKeys (children) {
+      var seenKeys = {};
+      for (var i = 0; i < children.length; i++) {
+        var vnode = children[i];
+        var key = vnode.key;
+        if (isDef(key)) {
+          if (seenKeys[key]) {
+            warn(
+              ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
+              vnode.context
+            );
+          } else {
+            seenKeys[key] = true;
+          }
+        }
+      }
+    }
+
+    function findIdxInOld (node, oldCh, start, end) {
+      for (var i = start; i < end; i++) {
+        var c = oldCh[i];
+        if (isDef(c) && sameVnode(node, c)) { return i }
+      }
+    }
+
+    function patchVnode (
+      oldVnode,
+      vnode,
+      insertedVnodeQueue,
+      ownerArray,
+      index,
+      removeOnly
+    ) {
+      if (oldVnode === vnode) {
+        return
+      }
+
+      if (isDef(vnode.elm) && isDef(ownerArray)) {
+        // clone reused vnode
+        vnode = ownerArray[index] = cloneVNode(vnode);
+      }
+
+      var elm = vnode.elm = oldVnode.elm;
+
+      if (isTrue(oldVnode.isAsyncPlaceholder)) {
+        if (isDef(vnode.asyncFactory.resolved)) {
+          hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
+        } else {
+          vnode.isAsyncPlaceholder = true;
+        }
+        return
+      }
+
+      // reuse element for static trees.
+      // note we only do this if the vnode is cloned -
+      // if the new node is not cloned it means the render functions have been
+      // reset by the hot-reload-api and we need to do a proper re-render.
+      if (isTrue(vnode.isStatic) &&
+        isTrue(oldVnode.isStatic) &&
+        vnode.key === oldVnode.key &&
+        (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
+      ) {
+        vnode.componentInstance = oldVnode.componentInstance;
+        return
+      }
+
+      var i;
+      var data = vnode.data;
+      if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
+        i(oldVnode, vnode);
+      }
+
+      var oldCh = oldVnode.children;
+      var ch = vnode.children;
+      if (isDef(data) && isPatchable(vnode)) {
+        for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
+        if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
+      }
+      if (isUndef(vnode.text)) {
+        if (isDef(oldCh) && isDef(ch)) {
+          if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
+        } else if (isDef(ch)) {
+          {
+            checkDuplicateKeys(ch);
+          }
+          if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
+          addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
+        } else if (isDef(oldCh)) {
+          removeVnodes(elm, oldCh, 0, oldCh.length - 1);
+        } else if (isDef(oldVnode.text)) {
+          nodeOps.setTextContent(elm, '');
+        }
+      } else if (oldVnode.text !== vnode.text) {
+        nodeOps.setTextContent(elm, vnode.text);
+      }
+      if (isDef(data)) {
+        if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
+      }
+    }
+
+    function invokeInsertHook (vnode, queue, initial) {
+      // delay insert hooks for component root nodes, invoke them after the
+      // element is really inserted
+      if (isTrue(initial) && isDef(vnode.parent)) {
+        vnode.parent.data.pendingInsert = queue;
+      } else {
+        for (var i = 0; i < queue.length; ++i) {
+          queue[i].data.hook.insert(queue[i]);
+        }
+      }
+    }
+
+    var hydrationBailed = false;
+    // list of modules that can skip create hook during hydration because they
+    // are already rendered on the client or has no need for initialization
+    // Note: style is excluded because it relies on initial clone for future
+    // deep updates (#7063).
+    var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
+
+    // Note: this is a browser-only function so we can assume elms are DOM nodes.
+    function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
+      var i;
+      var tag = vnode.tag;
+      var data = vnode.data;
+      var children = vnode.children;
+      inVPre = inVPre || (data && data.pre);
+      vnode.elm = elm;
+
+      if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
+        vnode.isAsyncPlaceholder = true;
+        return true
+      }
+      // assert node match
+      {
+        if (!assertNodeMatch(elm, vnode, inVPre)) {
+          return false
+        }
+      }
+      if (isDef(data)) {
+        if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
+        if (isDef(i = vnode.componentInstance)) {
+          // child component. it should have hydrated its own tree.
+          initComponent(vnode, insertedVnodeQueue);
+          return true
+        }
+      }
+      if (isDef(tag)) {
+        if (isDef(children)) {
+          // empty element, allow client to pick up and populate children
+          if (!elm.hasChildNodes()) {
+            createChildren(vnode, children, insertedVnodeQueue);
+          } else {
+            // v-html and domProps: innerHTML
+            if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
+              if (i !== elm.innerHTML) {
+                /* istanbul ignore if */
+                if (typeof console !== 'undefined' &&
+                  !hydrationBailed
+                ) {
+                  hydrationBailed = true;
+                  console.warn('Parent: ', elm);
+                  console.warn('server innerHTML: ', i);
+                  console.warn('client innerHTML: ', elm.innerHTML);
+                }
+                return false
+              }
+            } else {
+              // iterate and compare children lists
+              var childrenMatch = true;
+              var childNode = elm.firstChild;
+              for (var i$1 = 0; i$1 < children.length; i$1++) {
+                if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
+                  childrenMatch = false;
+                  break
+                }
+                childNode = childNode.nextSibling;
+              }
+              // if childNode is not null, it means the actual childNodes list is
+              // longer than the virtual children list.
+              if (!childrenMatch || childNode) {
+                /* istanbul ignore if */
+                if (typeof console !== 'undefined' &&
+                  !hydrationBailed
+                ) {
+                  hydrationBailed = true;
+                  console.warn('Parent: ', elm);
+                  console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
+                }
+                return false
+              }
+            }
+          }
+        }
+        if (isDef(data)) {
+          var fullInvoke = false;
+          for (var key in data) {
+            if (!isRenderedModule(key)) {
+              fullInvoke = true;
+              invokeCreateHooks(vnode, insertedVnodeQueue);
+              break
+            }
+          }
+          if (!fullInvoke && data['class']) {
+            // ensure collecting deps for deep class bindings for future updates
+            traverse(data['class']);
+          }
+        }
+      } else if (elm.data !== vnode.text) {
+        elm.data = vnode.text;
+      }
+      return true
+    }
+
+    function assertNodeMatch (node, vnode, inVPre) {
+      if (isDef(vnode.tag)) {
+        return vnode.tag.indexOf('vue-component') === 0 || (
+          !isUnknownElement$$1(vnode, inVPre) &&
+          vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
+        )
+      } else {
+        return node.nodeType === (vnode.isComment ? 8 : 3)
+      }
+    }
+
+    return function patch (oldVnode, vnode, hydrating, removeOnly) {
+      if (isUndef(vnode)) {
+        if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
+        return
+      }
+
+      var isInitialPatch = false;
+      var insertedVnodeQueue = [];
+
+      if (isUndef(oldVnode)) {
+        // empty mount (likely as component), create new root element
+        isInitialPatch = true;
+        createElm(vnode, insertedVnodeQueue);
+      } else {
+        var isRealElement = isDef(oldVnode.nodeType);
+        if (!isRealElement && sameVnode(oldVnode, vnode)) {
+          // patch existing root node
+          patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
+        } else {
+          if (isRealElement) {
+            // mounting to a real element
+            // check if this is server-rendered content and if we can perform
+            // a successful hydration.
+            if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
+              oldVnode.removeAttribute(SSR_ATTR);
+              hydrating = true;
+            }
+            if (isTrue(hydrating)) {
+              if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
+                invokeInsertHook(vnode, insertedVnodeQueue, true);
+                return oldVnode
+              } else {
+                warn(
+                  'The client-side rendered virtual DOM tree is not matching ' +
+                  'server-rendered content. This is likely caused by incorrect ' +
+                  'HTML markup, for example nesting block-level elements inside ' +
+                  '<p>, or missing <tbody>. Bailing hydration and performing ' +
+                  'full client-side render.'
+                );
+              }
+            }
+            // either not server-rendered, or hydration failed.
+            // create an empty node and replace it
+            oldVnode = emptyNodeAt(oldVnode);
+          }
+
+          // replacing existing element
+          var oldElm = oldVnode.elm;
+          var parentElm = nodeOps.parentNode(oldElm);
+
+          // create new node
+          createElm(
+            vnode,
+            insertedVnodeQueue,
+            // extremely rare edge case: do not insert if old element is in a
+            // leaving transition. Only happens when combining transition +
+            // keep-alive + HOCs. (#4590)
+            oldElm._leaveCb ? null : parentElm,
+            nodeOps.nextSibling(oldElm)
+          );
+
+          // update parent placeholder node element, recursively
+          if (isDef(vnode.parent)) {
+            var ancestor = vnode.parent;
+            var patchable = isPatchable(vnode);
+            while (ancestor) {
+              for (var i = 0; i < cbs.destroy.length; ++i) {
+                cbs.destroy[i](ancestor);
+              }
+              ancestor.elm = vnode.elm;
+              if (patchable) {
+                for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
+                  cbs.create[i$1](emptyNode, ancestor);
+                }
+                // #6513
+                // invoke insert hooks that may have been merged by create hooks.
+                // e.g. for directives that uses the "inserted" hook.
+                var insert = ancestor.data.hook.insert;
+                if (insert.merged) {
+                  // start at index 1 to avoid re-invoking component mounted hook
+                  for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
+                    insert.fns[i$2]();
+                  }
+                }
+              } else {
+                registerRef(ancestor);
+              }
+              ancestor = ancestor.parent;
+            }
+          }
+
+          // destroy old node
+          if (isDef(parentElm)) {
+            removeVnodes(parentElm, [oldVnode], 0, 0);
+          } else if (isDef(oldVnode.tag)) {
+            invokeDestroyHook(oldVnode);
+          }
+        }
+      }
+
+      invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
+      return vnode.elm
+    }
+  }
+
+  /*  */
+
+  var directives = {
+    create: updateDirectives,
+    update: updateDirectives,
+    destroy: function unbindDirectives (vnode) {
+      updateDirectives(vnode, emptyNode);
+    }
+  };
+
+  function updateDirectives (oldVnode, vnode) {
+    if (oldVnode.data.directives || vnode.data.directives) {
+      _update(oldVnode, vnode);
+    }
+  }
+
+  function _update (oldVnode, vnode) {
+    var isCreate = oldVnode === emptyNode;
+    var isDestroy = vnode === emptyNode;
+    var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
+    var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
+
+    var dirsWithInsert = [];
+    var dirsWithPostpatch = [];
+
+    var key, oldDir, dir;
+    for (key in newDirs) {
+      oldDir = oldDirs[key];
+      dir = newDirs[key];
+      if (!oldDir) {
+        // new directive, bind
+        callHook$1(dir, 'bind', vnode, oldVnode);
+        if (dir.def && dir.def.inserted) {
+          dirsWithInsert.push(dir);
+        }
+      } else {
+        // existing directive, update
+        dir.oldValue = oldDir.value;
+        dir.oldArg = oldDir.arg;
+        callHook$1(dir, 'update', vnode, oldVnode);
+        if (dir.def && dir.def.componentUpdated) {
+          dirsWithPostpatch.push(dir);
+        }
+      }
+    }
+
+    if (dirsWithInsert.length) {
+      var callInsert = function () {
+        for (var i = 0; i < dirsWithInsert.length; i++) {
+          callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
+        }
+      };
+      if (isCreate) {
+        mergeVNodeHook(vnode, 'insert', callInsert);
+      } else {
+        callInsert();
+      }
+    }
+
+    if (dirsWithPostpatch.length) {
+      mergeVNodeHook(vnode, 'postpatch', function () {
+        for (var i = 0; i < dirsWithPostpatch.length; i++) {
+          callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
+        }
+      });
+    }
+
+    if (!isCreate) {
+      for (key in oldDirs) {
+        if (!newDirs[key]) {
+          // no longer present, unbind
+          callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
+        }
+      }
+    }
+  }
+
+  var emptyModifiers = Object.create(null);
+
+  function normalizeDirectives$1 (
+    dirs,
+    vm
+  ) {
+    var res = Object.create(null);
+    if (!dirs) {
+      // $flow-disable-line
+      return res
+    }
+    var i, dir;
+    for (i = 0; i < dirs.length; i++) {
+      dir = dirs[i];
+      if (!dir.modifiers) {
+        // $flow-disable-line
+        dir.modifiers = emptyModifiers;
+      }
+      res[getRawDirName(dir)] = dir;
+      dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
+    }
+    // $flow-disable-line
+    return res
+  }
+
+  function getRawDirName (dir) {
+    return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
+  }
+
+  function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
+    var fn = dir.def && dir.def[hook];
+    if (fn) {
+      try {
+        fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
+      } catch (e) {
+        handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
+      }
+    }
+  }
+
+  var baseModules = [
+    ref,
+    directives
+  ];
+
+  /*  */
+
+  function updateAttrs (oldVnode, vnode) {
+    var opts = vnode.componentOptions;
+    if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
+      return
+    }
+    if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
+      return
+    }
+    var key, cur, old;
+    var elm = vnode.elm;
+    var oldAttrs = oldVnode.data.attrs || {};
+    var attrs = vnode.data.attrs || {};
+    // clone observed objects, as the user probably wants to mutate it
+    if (isDef(attrs.__ob__)) {
+      attrs = vnode.data.attrs = extend({}, attrs);
+    }
+
+    for (key in attrs) {
+      cur = attrs[key];
+      old = oldAttrs[key];
+      if (old !== cur) {
+        setAttr(elm, key, cur);
+      }
+    }
+    // #4391: in IE9, setting type can reset value for input[type=radio]
+    // #6666: IE/Edge forces progress value down to 1 before setting a max
+    /* istanbul ignore if */
+    if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
+      setAttr(elm, 'value', attrs.value);
+    }
+    for (key in oldAttrs) {
+      if (isUndef(attrs[key])) {
+        if (isXlink(key)) {
+          elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
+        } else if (!isEnumeratedAttr(key)) {
+          elm.removeAttribute(key);
+        }
+      }
+    }
+  }
+
+  function setAttr (el, key, value) {
+    if (el.tagName.indexOf('-') > -1) {
+      baseSetAttr(el, key, value);
+    } else if (isBooleanAttr(key)) {
+      // set attribute for blank value
+      // e.g. <option disabled>Select one</option>
+      if (isFalsyAttrValue(value)) {
+        el.removeAttribute(key);
+      } else {
+        // technically allowfullscreen is a boolean attribute for <iframe>,
+        // but Flash expects a value of "true" when used on <embed> tag
+        value = key === 'allowfullscreen' && el.tagName === 'EMBED'
+          ? 'true'
+          : key;
+        el.setAttribute(key, value);
+      }
+    } else if (isEnumeratedAttr(key)) {
+      el.setAttribute(key, convertEnumeratedValue(key, value));
+    } else if (isXlink(key)) {
+      if (isFalsyAttrValue(value)) {
+        el.removeAttributeNS(xlinkNS, getXlinkProp(key));
+      } else {
+        el.setAttributeNS(xlinkNS, key, value);
+      }
+    } else {
+      baseSetAttr(el, key, value);
+    }
+  }
+
+  function baseSetAttr (el, key, value) {
+    if (isFalsyAttrValue(value)) {
+      el.removeAttribute(key);
+    } else {
+      // #7138: IE10 & 11 fires input event when setting placeholder on
+      // <textarea>... block the first input event and remove the blocker
+      // immediately.
+      /* istanbul ignore if */
+      if (
+        isIE && !isIE9 &&
+        el.tagName === 'TEXTAREA' &&
+        key === 'placeholder' && value !== '' && !el.__ieph
+      ) {
+        var blocker = function (e) {
+          e.stopImmediatePropagation();
+          el.removeEventListener('input', blocker);
+        };
+        el.addEventListener('input', blocker);
+        // $flow-disable-line
+        el.__ieph = true; /* IE placeholder patched */
+      }
+      el.setAttribute(key, value);
+    }
+  }
+
+  var attrs = {
+    create: updateAttrs,
+    update: updateAttrs
+  };
+
+  /*  */
+
+  function updateClass (oldVnode, vnode) {
+    var el = vnode.elm;
+    var data = vnode.data;
+    var oldData = oldVnode.data;
+    if (
+      isUndef(data.staticClass) &&
+      isUndef(data.class) && (
+        isUndef(oldData) || (
+          isUndef(oldData.staticClass) &&
+          isUndef(oldData.class)
+        )
+      )
+    ) {
+      return
+    }
+
+    var cls = genClassForVnode(vnode);
+
+    // handle transition classes
+    var transitionClass = el._transitionClasses;
+    if (isDef(transitionClass)) {
+      cls = concat(cls, stringifyClass(transitionClass));
+    }
+
+    // set the class
+    if (cls !== el._prevClass) {
+      el.setAttribute('class', cls);
+      el._prevClass = cls;
+    }
+  }
+
+  var klass = {
+    create: updateClass,
+    update: updateClass
+  };
+
+  /*  */
+
+  /*  */
+
+  /*  */
+
+  /*  */
+
+  // in some cases, the event used has to be determined at runtime
+  // so we used some reserved tokens during compile.
+  var RANGE_TOKEN = '__r';
+  var CHECKBOX_RADIO_TOKEN = '__c';
+
+  /*  */
+
+  // normalize v-model event tokens that can only be determined at runtime.
+  // it's important to place the event as the first in the array because
+  // the whole point is ensuring the v-model callback gets called before
+  // user-attached handlers.
+  function normalizeEvents (on) {
+    /* istanbul ignore if */
+    if (isDef(on[RANGE_TOKEN])) {
+      // IE input[type=range] only supports `change` event
+      var event = isIE ? 'change' : 'input';
+      on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
+      delete on[RANGE_TOKEN];
+    }
+    // This was originally intended to fix #4521 but no longer necessary
+    // after 2.5. Keeping it for backwards compat with generated code from < 2.4
+    /* istanbul ignore if */
+    if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
+      on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
+      delete on[CHECKBOX_RADIO_TOKEN];
+    }
+  }
+
+  var target$1;
+
+  function createOnceHandler$1 (event, handler, capture) {
+    var _target = target$1; // save current target element in closure
+    return function onceHandler () {
+      var res = handler.apply(null, arguments);
+      if (res !== null) {
+        remove$2(event, onceHandler, capture, _target);
+      }
+    }
+  }
+
+  // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp
+  // implementation and does not fire microtasks in between event propagation, so
+  // safe to exclude.
+  var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);
+
+  function add$1 (
+    name,
+    handler,
+    capture,
+    passive
+  ) {
+    // async edge case #6566: inner click event triggers patch, event handler
+    // attached to outer element during patch, and triggered again. This
+    // happens because browsers fire microtask ticks between event propagation.
+    // the solution is simple: we save the timestamp when a handler is attached,
+    // and the handler would only fire if the event passed to it was fired
+    // AFTER it was attached.
+    if (useMicrotaskFix) {
+      var attachedTimestamp = currentFlushTimestamp;
+      var original = handler;
+      handler = original._wrapper = function (e) {
+        if (
+          // no bubbling, should always fire.
+          // this is just a safety net in case event.timeStamp is unreliable in
+          // certain weird environments...
+          e.target === e.currentTarget ||
+          // event is fired after handler attachment
+          e.timeStamp >= attachedTimestamp ||
+          // bail for environments that have buggy event.timeStamp implementations
+          // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState
+          // #9681 QtWebEngine event.timeStamp is negative value
+          e.timeStamp <= 0 ||
+          // #9448 bail if event is fired in another document in a multi-page
+          // electron/nw.js app, since event.timeStamp will be using a different
+          // starting reference
+          e.target.ownerDocument !== document
+        ) {
+          return original.apply(this, arguments)
+        }
+      };
+    }
+    target$1.addEventListener(
+      name,
+      handler,
+      supportsPassive
+        ? { capture: capture, passive: passive }
+        : capture
+    );
+  }
+
+  function remove$2 (
+    name,
+    handler,
+    capture,
+    _target
+  ) {
+    (_target || target$1).removeEventListener(
+      name,
+      handler._wrapper || handler,
+      capture
+    );
+  }
+
+  function updateDOMListeners (oldVnode, vnode) {
+    if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
+      return
+    }
+    var on = vnode.data.on || {};
+    var oldOn = oldVnode.data.on || {};
+    target$1 = vnode.elm;
+    normalizeEvents(on);
+    updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);
+    target$1 = undefined;
+  }
+
+  var events = {
+    create: updateDOMListeners,
+    update: updateDOMListeners
+  };
+
+  /*  */
+
+  var svgContainer;
+
+  function updateDOMProps (oldVnode, vnode) {
+    if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
+      return
+    }
+    var key, cur;
+    var elm = vnode.elm;
+    var oldProps = oldVnode.data.domProps || {};
+    var props = vnode.data.domProps || {};
+    // clone observed objects, as the user probably wants to mutate it
+    if (isDef(props.__ob__)) {
+      props = vnode.data.domProps = extend({}, props);
+    }
+
+    for (key in oldProps) {
+      if (!(key in props)) {
+        elm[key] = '';
+      }
+    }
+
+    for (key in props) {
+      cur = props[key];
+      // ignore children if the node has textContent or innerHTML,
+      // as these will throw away existing DOM nodes and cause removal errors
+      // on subsequent patches (#3360)
+      if (key === 'textContent' || key === 'innerHTML') {
+        if (vnode.children) { vnode.children.length = 0; }
+        if (cur === oldProps[key]) { continue }
+        // #6601 work around Chrome version <= 55 bug where single textNode
+        // replaced by innerHTML/textContent retains its parentNode property
+        if (elm.childNodes.length === 1) {
+          elm.removeChild(elm.childNodes[0]);
+        }
+      }
+
+      if (key === 'value' && elm.tagName !== 'PROGRESS') {
+        // store value as _value as well since
+        // non-string values will be stringified
+        elm._value = cur;
+        // avoid resetting cursor position when value is the same
+        var strCur = isUndef(cur) ? '' : String(cur);
+        if (shouldUpdateValue(elm, strCur)) {
+          elm.value = strCur;
+        }
+      } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {
+        // IE doesn't support innerHTML for SVG elements
+        svgContainer = svgContainer || document.createElement('div');
+        svgContainer.innerHTML = "<svg>" + cur + "</svg>";
+        var svg = svgContainer.firstChild;
+        while (elm.firstChild) {
+          elm.removeChild(elm.firstChild);
+        }
+        while (svg.firstChild) {
+          elm.appendChild(svg.firstChild);
+        }
+      } else if (
+        // skip the update if old and new VDOM state is the same.
+        // `value` is handled separately because the DOM value may be temporarily
+        // out of sync with VDOM state due to focus, composition and modifiers.
+        // This  #4521 by skipping the unnecesarry `checked` update.
+        cur !== oldProps[key]
+      ) {
+        // some property updates can throw
+        // e.g. `value` on <progress> w/ non-finite value
+        try {
+          elm[key] = cur;
+        } catch (e) {}
+      }
+    }
+  }
+
+  // check platforms/web/util/attrs.js acceptValue
+
+
+  function shouldUpdateValue (elm, checkVal) {
+    return (!elm.composing && (
+      elm.tagName === 'OPTION' ||
+      isNotInFocusAndDirty(elm, checkVal) ||
+      isDirtyWithModifiers(elm, checkVal)
+    ))
+  }
+
+  function isNotInFocusAndDirty (elm, checkVal) {
+    // return true when textbox (.number and .trim) loses focus and its value is
+    // not equal to the updated value
+    var notInFocus = true;
+    // #6157
+    // work around IE bug when accessing document.activeElement in an iframe
+    try { notInFocus = document.activeElement !== elm; } catch (e) {}
+    return notInFocus && elm.value !== checkVal
+  }
+
+  function isDirtyWithModifiers (elm, newVal) {
+    var value = elm.value;
+    var modifiers = elm._vModifiers; // injected by v-model runtime
+    if (isDef(modifiers)) {
+      if (modifiers.number) {
+        return toNumber(value) !== toNumber(newVal)
+      }
+      if (modifiers.trim) {
+        return value.trim() !== newVal.trim()
+      }
+    }
+    return value !== newVal
+  }
+
+  var domProps = {
+    create: updateDOMProps,
+    update: updateDOMProps
+  };
+
+  /*  */
+
+  var parseStyleText = cached(function (cssText) {
+    var res = {};
+    var listDelimiter = /;(?![^(]*\))/g;
+    var propertyDelimiter = /:(.+)/;
+    cssText.split(listDelimiter).forEach(function (item) {
+      if (item) {
+        var tmp = item.split(propertyDelimiter);
+        tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
+      }
+    });
+    return res
+  });
+
+  // merge static and dynamic style data on the same vnode
+  function normalizeStyleData (data) {
+    var style = normalizeStyleBinding(data.style);
+    // static style is pre-processed into an object during compilation
+    // and is always a fresh object, so it's safe to merge into it
+    return data.staticStyle
+      ? extend(data.staticStyle, style)
+      : style
+  }
+
+  // normalize possible array / string values into Object
+  function normalizeStyleBinding (bindingStyle) {
+    if (Array.isArray(bindingStyle)) {
+      return toObject(bindingStyle)
+    }
+    if (typeof bindingStyle === 'string') {
+      return parseStyleText(bindingStyle)
+    }
+    return bindingStyle
+  }
+
+  /**
+   * parent component style should be after child's
+   * so that parent component's style could override it
+   */
+  function getStyle (vnode, checkChild) {
+    var res = {};
+    var styleData;
+
+    if (checkChild) {
+      var childNode = vnode;
+      while (childNode.componentInstance) {
+        childNode = childNode.componentInstance._vnode;
+        if (
+          childNode && childNode.data &&
+          (styleData = normalizeStyleData(childNode.data))
+        ) {
+          extend(res, styleData);
+        }
+      }
+    }
+
+    if ((styleData = normalizeStyleData(vnode.data))) {
+      extend(res, styleData);
+    }
+
+    var parentNode = vnode;
+    while ((parentNode = parentNode.parent)) {
+      if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
+        extend(res, styleData);
+      }
+    }
+    return res
+  }
+
+  /*  */
+
+  var cssVarRE = /^--/;
+  var importantRE = /\s*!important$/;
+  var setProp = function (el, name, val) {
+    /* istanbul ignore if */
+    if (cssVarRE.test(name)) {
+      el.style.setProperty(name, val);
+    } else if (importantRE.test(val)) {
+      el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');
+    } else {
+      var normalizedName = normalize(name);
+      if (Array.isArray(val)) {
+        // Support values array created by autoprefixer, e.g.
+        // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
+        // Set them one by one, and the browser will only set those it can recognize
+        for (var i = 0, len = val.length; i < len; i++) {
+          el.style[normalizedName] = val[i];
+        }
+      } else {
+        el.style[normalizedName] = val;
+      }
+    }
+  };
+
+  var vendorNames = ['Webkit', 'Moz', 'ms'];
+
+  var emptyStyle;
+  var normalize = cached(function (prop) {
+    emptyStyle = emptyStyle || document.createElement('div').style;
+    prop = camelize(prop);
+    if (prop !== 'filter' && (prop in emptyStyle)) {
+      return prop
+    }
+    var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
+    for (var i = 0; i < vendorNames.length; i++) {
+      var name = vendorNames[i] + capName;
+      if (name in emptyStyle) {
+        return name
+      }
+    }
+  });
+
+  function updateStyle (oldVnode, vnode) {
+    var data = vnode.data;
+    var oldData = oldVnode.data;
+
+    if (isUndef(data.staticStyle) && isUndef(data.style) &&
+      isUndef(oldData.staticStyle) && isUndef(oldData.style)
+    ) {
+      return
+    }
+
+    var cur, name;
+    var el = vnode.elm;
+    var oldStaticStyle = oldData.staticStyle;
+    var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
+
+    // if static style exists, stylebinding already merged into it when doing normalizeStyleData
+    var oldStyle = oldStaticStyle || oldStyleBinding;
+
+    var style = normalizeStyleBinding(vnode.data.style) || {};
+
+    // store normalized style under a different key for next diff
+    // make sure to clone it if it's reactive, since the user likely wants
+    // to mutate it.
+    vnode.data.normalizedStyle = isDef(style.__ob__)
+      ? extend({}, style)
+      : style;
+
+    var newStyle = getStyle(vnode, true);
+
+    for (name in oldStyle) {
+      if (isUndef(newStyle[name])) {
+        setProp(el, name, '');
+      }
+    }
+    for (name in newStyle) {
+      cur = newStyle[name];
+      if (cur !== oldStyle[name]) {
+        // ie9 setting to null has no effect, must use empty string
+        setProp(el, name, cur == null ? '' : cur);
+      }
+    }
+  }
+
+  var style = {
+    create: updateStyle,
+    update: updateStyle
+  };
+
+  /*  */
+
+  var whitespaceRE = /\s+/;
+
+  /**
+   * Add class with compatibility for SVG since classList is not supported on
+   * SVG elements in IE
+   */
+  function addClass (el, cls) {
+    /* istanbul ignore if */
+    if (!cls || !(cls = cls.trim())) {
+      return
+    }
+
+    /* istanbul ignore else */
+    if (el.classList) {
+      if (cls.indexOf(' ') > -1) {
+        cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });
+      } else {
+        el.classList.add(cls);
+      }
+    } else {
+      var cur = " " + (el.getAttribute('class') || '') + " ";
+      if (cur.indexOf(' ' + cls + ' ') < 0) {
+        el.setAttribute('class', (cur + cls).trim());
+      }
+    }
+  }
+
+  /**
+   * Remove class with compatibility for SVG since classList is not supported on
+   * SVG elements in IE
+   */
+  function removeClass (el, cls) {
+    /* istanbul ignore if */
+    if (!cls || !(cls = cls.trim())) {
+      return
+    }
+
+    /* istanbul ignore else */
+    if (el.classList) {
+      if (cls.indexOf(' ') > -1) {
+        cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });
+      } else {
+        el.classList.remove(cls);
+      }
+      if (!el.classList.length) {
+        el.removeAttribute('class');
+      }
+    } else {
+      var cur = " " + (el.getAttribute('class') || '') + " ";
+      var tar = ' ' + cls + ' ';
+      while (cur.indexOf(tar) >= 0) {
+        cur = cur.replace(tar, ' ');
+      }
+      cur = cur.trim();
+      if (cur) {
+        el.setAttribute('class', cur);
+      } else {
+        el.removeAttribute('class');
+      }
+    }
+  }
+
+  /*  */
+
+  function resolveTransition (def$$1) {
+    if (!def$$1) {
+      return
+    }
+    /* istanbul ignore else */
+    if (typeof def$$1 === 'object') {
+      var res = {};
+      if (def$$1.css !== false) {
+        extend(res, autoCssTransition(def$$1.name || 'v'));
+      }
+      extend(res, def$$1);
+      return res
+    } else if (typeof def$$1 === 'string') {
+      return autoCssTransition(def$$1)
+    }
+  }
+
+  var autoCssTransition = cached(function (name) {
+    return {
+      enterClass: (name + "-enter"),
+      enterToClass: (name + "-enter-to"),
+      enterActiveClass: (name + "-enter-active"),
+      leaveClass: (name + "-leave"),
+      leaveToClass: (name + "-leave-to"),
+      leaveActiveClass: (name + "-leave-active")
+    }
+  });
+
+  var hasTransition = inBrowser && !isIE9;
+  var TRANSITION = 'transition';
+  var ANIMATION = 'animation';
+
+  // Transition property/event sniffing
+  var transitionProp = 'transition';
+  var transitionEndEvent = 'transitionend';
+  var animationProp = 'animation';
+  var animationEndEvent = 'animationend';
+  if (hasTransition) {
+    /* istanbul ignore if */
+    if (window.ontransitionend === undefined &&
+      window.onwebkittransitionend !== undefined
+    ) {
+      transitionProp = 'WebkitTransition';
+      transitionEndEvent = 'webkitTransitionEnd';
+    }
+    if (window.onanimationend === undefined &&
+      window.onwebkitanimationend !== undefined
+    ) {
+      animationProp = 'WebkitAnimation';
+      animationEndEvent = 'webkitAnimationEnd';
+    }
+  }
+
+  // binding to window is necessary to make hot reload work in IE in strict mode
+  var raf = inBrowser
+    ? window.requestAnimationFrame
+      ? window.requestAnimationFrame.bind(window)
+      : setTimeout
+    : /* istanbul ignore next */ function (fn) { return fn(); };
+
+  function nextFrame (fn) {
+    raf(function () {
+      raf(fn);
+    });
+  }
+
+  function addTransitionClass (el, cls) {
+    var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
+    if (transitionClasses.indexOf(cls) < 0) {
+      transitionClasses.push(cls);
+      addClass(el, cls);
+    }
+  }
+
+  function removeTransitionClass (el, cls) {
+    if (el._transitionClasses) {
+      remove(el._transitionClasses, cls);
+    }
+    removeClass(el, cls);
+  }
+
+  function whenTransitionEnds (
+    el,
+    expectedType,
+    cb
+  ) {
+    var ref = getTransitionInfo(el, expectedType);
+    var type = ref.type;
+    var timeout = ref.timeout;
+    var propCount = ref.propCount;
+    if (!type) { return cb() }
+    var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
+    var ended = 0;
+    var end = function () {
+      el.removeEventListener(event, onEnd);
+      cb();
+    };
+    var onEnd = function (e) {
+      if (e.target === el) {
+        if (++ended >= propCount) {
+          end();
+        }
+      }
+    };
+    setTimeout(function () {
+      if (ended < propCount) {
+        end();
+      }
+    }, timeout + 1);
+    el.addEventListener(event, onEnd);
+  }
+
+  var transformRE = /\b(transform|all)(,|$)/;
+
+  function getTransitionInfo (el, expectedType) {
+    var styles = window.getComputedStyle(el);
+    // JSDOM may return undefined for transition properties
+    var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
+    var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
+    var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
+    var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
+    var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
+    var animationTimeout = getTimeout(animationDelays, animationDurations);
+
+    var type;
+    var timeout = 0;
+    var propCount = 0;
+    /* istanbul ignore if */
+    if (expectedType === TRANSITION) {
+      if (transitionTimeout > 0) {
+        type = TRANSITION;
+        timeout = transitionTimeout;
+        propCount = transitionDurations.length;
+      }
+    } else if (expectedType === ANIMATION) {
+      if (animationTimeout > 0) {
+        type = ANIMATION;
+        timeout = animationTimeout;
+        propCount = animationDurations.length;
+      }
+    } else {
+      timeout = Math.max(transitionTimeout, animationTimeout);
+      type = timeout > 0
+        ? transitionTimeout > animationTimeout
+          ? TRANSITION
+          : ANIMATION
+        : null;
+      propCount = type
+        ? type === TRANSITION
+          ? transitionDurations.length
+          : animationDurations.length
+        : 0;
+    }
+    var hasTransform =
+      type === TRANSITION &&
+      transformRE.test(styles[transitionProp + 'Property']);
+    return {
+      type: type,
+      timeout: timeout,
+      propCount: propCount,
+      hasTransform: hasTransform
+    }
+  }
+
+  function getTimeout (delays, durations) {
+    /* istanbul ignore next */
+    while (delays.length < durations.length) {
+      delays = delays.concat(delays);
+    }
+
+    return Math.max.apply(null, durations.map(function (d, i) {
+      return toMs(d) + toMs(delays[i])
+    }))
+  }
+
+  // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
+  // in a locale-dependent way, using a comma instead of a dot.
+  // If comma is not replaced with a dot, the input will be rounded down (i.e. acting
+  // as a floor function) causing unexpected behaviors
+  function toMs (s) {
+    return Number(s.slice(0, -1).replace(',', '.')) * 1000
+  }
+
+  /*  */
+
+  function enter (vnode, toggleDisplay) {
+    var el = vnode.elm;
+
+    // call leave callback now
+    if (isDef(el._leaveCb)) {
+      el._leaveCb.cancelled = true;
+      el._leaveCb();
+    }
+
+    var data = resolveTransition(vnode.data.transition);
+    if (isUndef(data)) {
+      return
+    }
+
+    /* istanbul ignore if */
+    if (isDef(el._enterCb) || el.nodeType !== 1) {
+      return
+    }
+
+    var css = data.css;
+    var type = data.type;
+    var enterClass = data.enterClass;
+    var enterToClass = data.enterToClass;
+    var enterActiveClass = data.enterActiveClass;
+    var appearClass = data.appearClass;
+    var appearToClass = data.appearToClass;
+    var appearActiveClass = data.appearActiveClass;
+    var beforeEnter = data.beforeEnter;
+    var enter = data.enter;
+    var afterEnter = data.afterEnter;
+    var enterCancelled = data.enterCancelled;
+    var beforeAppear = data.beforeAppear;
+    var appear = data.appear;
+    var afterAppear = data.afterAppear;
+    var appearCancelled = data.appearCancelled;
+    var duration = data.duration;
+
+    // activeInstance will always be the <transition> component managing this
+    // transition. One edge case to check is when the <transition> is placed
+    // as the root node of a child component. In that case we need to check
+    // <transition>'s parent for appear check.
+    var context = activeInstance;
+    var transitionNode = activeInstance.$vnode;
+    while (transitionNode && transitionNode.parent) {
+      context = transitionNode.context;
+      transitionNode = transitionNode.parent;
+    }
+
+    var isAppear = !context._isMounted || !vnode.isRootInsert;
+
+    if (isAppear && !appear && appear !== '') {
+      return
+    }
+
+    var startClass = isAppear && appearClass
+      ? appearClass
+      : enterClass;
+    var activeClass = isAppear && appearActiveClass
+      ? appearActiveClass
+      : enterActiveClass;
+    var toClass = isAppear && appearToClass
+      ? appearToClass
+      : enterToClass;
+
+    var beforeEnterHook = isAppear
+      ? (beforeAppear || beforeEnter)
+      : beforeEnter;
+    var enterHook = isAppear
+      ? (typeof appear === 'function' ? appear : enter)
+      : enter;
+    var afterEnterHook = isAppear
+      ? (afterAppear || afterEnter)
+      : afterEnter;
+    var enterCancelledHook = isAppear
+      ? (appearCancelled || enterCancelled)
+      : enterCancelled;
+
+    var explicitEnterDuration = toNumber(
+      isObject(duration)
+        ? duration.enter
+        : duration
+    );
+
+    if (explicitEnterDuration != null) {
+      checkDuration(explicitEnterDuration, 'enter', vnode);
+    }
+
+    var expectsCSS = css !== false && !isIE9;
+    var userWantsControl = getHookArgumentsLength(enterHook);
+
+    var cb = el._enterCb = once(function () {
+      if (expectsCSS) {
+        removeTransitionClass(el, toClass);
+        removeTransitionClass(el, activeClass);
+      }
+      if (cb.cancelled) {
+        if (expectsCSS) {
+          removeTransitionClass(el, startClass);
+        }
+        enterCancelledHook && enterCancelledHook(el);
+      } else {
+        afterEnterHook && afterEnterHook(el);
+      }
+      el._enterCb = null;
+    });
+
+    if (!vnode.data.show) {
+      // remove pending leave element on enter by injecting an insert hook
+      mergeVNodeHook(vnode, 'insert', function () {
+        var parent = el.parentNode;
+        var pendingNode = parent && parent._pending && parent._pending[vnode.key];
+        if (pendingNode &&
+          pendingNode.tag === vnode.tag &&
+          pendingNode.elm._leaveCb
+        ) {
+          pendingNode.elm._leaveCb();
+        }
+        enterHook && enterHook(el, cb);
+      });
+    }
+
+    // start enter transition
+    beforeEnterHook && beforeEnterHook(el);
+    if (expectsCSS) {
+      addTransitionClass(el, startClass);
+      addTransitionClass(el, activeClass);
+      nextFrame(function () {
+        removeTransitionClass(el, startClass);
+        if (!cb.cancelled) {
+          addTransitionClass(el, toClass);
+          if (!userWantsControl) {
+            if (isValidDuration(explicitEnterDuration)) {
+              setTimeout(cb, explicitEnterDuration);
+            } else {
+              whenTransitionEnds(el, type, cb);
+            }
+          }
+        }
+      });
+    }
+
+    if (vnode.data.show) {
+      toggleDisplay && toggleDisplay();
+      enterHook && enterHook(el, cb);
+    }
+
+    if (!expectsCSS && !userWantsControl) {
+      cb();
+    }
+  }
+
+  function leave (vnode, rm) {
+    var el = vnode.elm;
+
+    // call enter callback now
+    if (isDef(el._enterCb)) {
+      el._enterCb.cancelled = true;
+      el._enterCb();
+    }
+
+    var data = resolveTransition(vnode.data.transition);
+    if (isUndef(data) || el.nodeType !== 1) {
+      return rm()
+    }
+
+    /* istanbul ignore if */
+    if (isDef(el._leaveCb)) {
+      return
+    }
+
+    var css = data.css;
+    var type = data.type;
+    var leaveClass = data.leaveClass;
+    var leaveToClass = data.leaveToClass;
+    var leaveActiveClass = data.leaveActiveClass;
+    var beforeLeave = data.beforeLeave;
+    var leave = data.leave;
+    var afterLeave = data.afterLeave;
+    var leaveCancelled = data.leaveCancelled;
+    var delayLeave = data.delayLeave;
+    var duration = data.duration;
+
+    var expectsCSS = css !== false && !isIE9;
+    var userWantsControl = getHookArgumentsLength(leave);
+
+    var explicitLeaveDuration = toNumber(
+      isObject(duration)
+        ? duration.leave
+        : duration
+    );
+
+    if (isDef(explicitLeaveDuration)) {
+      checkDuration(explicitLeaveDuration, 'leave', vnode);
+    }
+
+    var cb = el._leaveCb = once(function () {
+      if (el.parentNode && el.parentNode._pending) {
+        el.parentNode._pending[vnode.key] = null;
+      }
+      if (expectsCSS) {
+        removeTransitionClass(el, leaveToClass);
+        removeTransitionClass(el, leaveActiveClass);
+      }
+      if (cb.cancelled) {
+        if (expectsCSS) {
+          removeTransitionClass(el, leaveClass);
+        }
+        leaveCancelled && leaveCancelled(el);
+      } else {
+        rm();
+        afterLeave && afterLeave(el);
+      }
+      el._leaveCb = null;
+    });
+
+    if (delayLeave) {
+      delayLeave(performLeave);
+    } else {
+      performLeave();
+    }
+
+    function performLeave () {
+      // the delayed leave may have already been cancelled
+      if (cb.cancelled) {
+        return
+      }
+      // record leaving element
+      if (!vnode.data.show && el.parentNode) {
+        (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
+      }
+      beforeLeave && beforeLeave(el);
+      if (expectsCSS) {
+        addTransitionClass(el, leaveClass);
+        addTransitionClass(el, leaveActiveClass);
+        nextFrame(function () {
+          removeTransitionClass(el, leaveClass);
+          if (!cb.cancelled) {
+            addTransitionClass(el, leaveToClass);
+            if (!userWantsControl) {
+              if (isValidDuration(explicitLeaveDuration)) {
+                setTimeout(cb, explicitLeaveDuration);
+              } else {
+                whenTransitionEnds(el, type, cb);
+              }
+            }
+          }
+        });
+      }
+      leave && leave(el, cb);
+      if (!expectsCSS && !userWantsControl) {
+        cb();
+      }
+    }
+  }
+
+  // only used in dev mode
+  function checkDuration (val, name, vnode) {
+    if (typeof val !== 'number') {
+      warn(
+        "<transition> explicit " + name + " duration is not a valid number - " +
+        "got " + (JSON.stringify(val)) + ".",
+        vnode.context
+      );
+    } else if (isNaN(val)) {
+      warn(
+        "<transition> explicit " + name + " duration is NaN - " +
+        'the duration expression might be incorrect.',
+        vnode.context
+      );
+    }
+  }
+
+  function isValidDuration (val) {
+    return typeof val === 'number' && !isNaN(val)
+  }
+
+  /**
+   * Normalize a transition hook's argument length. The hook may be:
+   * - a merged hook (invoker) with the original in .fns
+   * - a wrapped component method (check ._length)
+   * - a plain function (.length)
+   */
+  function getHookArgumentsLength (fn) {
+    if (isUndef(fn)) {
+      return false
+    }
+    var invokerFns = fn.fns;
+    if (isDef(invokerFns)) {
+      // invoker
+      return getHookArgumentsLength(
+        Array.isArray(invokerFns)
+          ? invokerFns[0]
+          : invokerFns
+      )
+    } else {
+      return (fn._length || fn.length) > 1
+    }
+  }
+
+  function _enter (_, vnode) {
+    if (vnode.data.show !== true) {
+      enter(vnode);
+    }
+  }
+
+  var transition = inBrowser ? {
+    create: _enter,
+    activate: _enter,
+    remove: function remove$$1 (vnode, rm) {
+      /* istanbul ignore else */
+      if (vnode.data.show !== true) {
+        leave(vnode, rm);
+      } else {
+        rm();
+      }
+    }
+  } : {};
+
+  var platformModules = [
+    attrs,
+    klass,
+    events,
+    domProps,
+    style,
+    transition
+  ];
+
+  /*  */
+
+  // the directive module should be applied last, after all
+  // built-in modules have been applied.
+  var modules = platformModules.concat(baseModules);
+
+  var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
+
+  /**
+   * Not type checking this file because flow doesn't like attaching
+   * properties to Elements.
+   */
+
+  /* istanbul ignore if */
+  if (isIE9) {
+    // http://www.matts411.com/post/internet-explorer-9-oninput/
+    document.addEventListener('selectionchange', function () {
+      var el = document.activeElement;
+      if (el && el.vmodel) {
+        trigger(el, 'input');
+      }
+    });
+  }
+
+  var directive = {
+    inserted: function inserted (el, binding, vnode, oldVnode) {
+      if (vnode.tag === 'select') {
+        // #6903
+        if (oldVnode.elm && !oldVnode.elm._vOptions) {
+          mergeVNodeHook(vnode, 'postpatch', function () {
+            directive.componentUpdated(el, binding, vnode);
+          });
+        } else {
+          setSelected(el, binding, vnode.context);
+        }
+        el._vOptions = [].map.call(el.options, getValue);
+      } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
+        el._vModifiers = binding.modifiers;
+        if (!binding.modifiers.lazy) {
+          el.addEventListener('compositionstart', onCompositionStart);
+          el.addEventListener('compositionend', onCompositionEnd);
+          // Safari < 10.2 & UIWebView doesn't fire compositionend when
+          // switching focus before confirming composition choice
+          // this also fixes the issue where some browsers e.g. iOS Chrome
+          // fires "change" instead of "input" on autocomplete.
+          el.addEventListener('change', onCompositionEnd);
+          /* istanbul ignore if */
+          if (isIE9) {
+            el.vmodel = true;
+          }
+        }
+      }
+    },
+
+    componentUpdated: function componentUpdated (el, binding, vnode) {
+      if (vnode.tag === 'select') {
+        setSelected(el, binding, vnode.context);
+        // in case the options rendered by v-for have changed,
+        // it's possible that the value is out-of-sync with the rendered options.
+        // detect such cases and filter out values that no longer has a matching
+        // option in the DOM.
+        var prevOptions = el._vOptions;
+        var curOptions = el._vOptions = [].map.call(el.options, getValue);
+        if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
+          // trigger change event if
+          // no matching option found for at least one value
+          var needReset = el.multiple
+            ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
+            : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
+          if (needReset) {
+            trigger(el, 'change');
+          }
+        }
+      }
+    }
+  };
+
+  function setSelected (el, binding, vm) {
+    actuallySetSelected(el, binding, vm);
+    /* istanbul ignore if */
+    if (isIE || isEdge) {
+      setTimeout(function () {
+        actuallySetSelected(el, binding, vm);
+      }, 0);
+    }
+  }
+
+  function actuallySetSelected (el, binding, vm) {
+    var value = binding.value;
+    var isMultiple = el.multiple;
+    if (isMultiple && !Array.isArray(value)) {
+      warn(
+        "<select multiple v-model=\"" + (binding.expression) + "\"> " +
+        "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
+        vm
+      );
+      return
+    }
+    var selected, option;
+    for (var i = 0, l = el.options.length; i < l; i++) {
+      option = el.options[i];
+      if (isMultiple) {
+        selected = looseIndexOf(value, getValue(option)) > -1;
+        if (option.selected !== selected) {
+          option.selected = selected;
+        }
+      } else {
+        if (looseEqual(getValue(option), value)) {
+          if (el.selectedIndex !== i) {
+            el.selectedIndex = i;
+          }
+          return
+        }
+      }
+    }
+    if (!isMultiple) {
+      el.selectedIndex = -1;
+    }
+  }
+
+  function hasNoMatchingOption (value, options) {
+    return options.every(function (o) { return !looseEqual(o, value); })
+  }
+
+  function getValue (option) {
+    return '_value' in option
+      ? option._value
+      : option.value
+  }
+
+  function onCompositionStart (e) {
+    e.target.composing = true;
+  }
+
+  function onCompositionEnd (e) {
+    // prevent triggering an input event for no reason
+    if (!e.target.composing) { return }
+    e.target.composing = false;
+    trigger(e.target, 'input');
+  }
+
+  function trigger (el, type) {
+    var e = document.createEvent('HTMLEvents');
+    e.initEvent(type, true, true);
+    el.dispatchEvent(e);
+  }
+
+  /*  */
+
+  // recursively search for possible transition defined inside the component root
+  function locateNode (vnode) {
+    return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
+      ? locateNode(vnode.componentInstance._vnode)
+      : vnode
+  }
+
+  var show = {
+    bind: function bind (el, ref, vnode) {
+      var value = ref.value;
+
+      vnode = locateNode(vnode);
+      var transition$$1 = vnode.data && vnode.data.transition;
+      var originalDisplay = el.__vOriginalDisplay =
+        el.style.display === 'none' ? '' : el.style.display;
+      if (value && transition$$1) {
+        vnode.data.show = true;
+        enter(vnode, function () {
+          el.style.display = originalDisplay;
+        });
+      } else {
+        el.style.display = value ? originalDisplay : 'none';
+      }
+    },
+
+    update: function update (el, ref, vnode) {
+      var value = ref.value;
+      var oldValue = ref.oldValue;
+
+      /* istanbul ignore if */
+      if (!value === !oldValue) { return }
+      vnode = locateNode(vnode);
+      var transition$$1 = vnode.data && vnode.data.transition;
+      if (transition$$1) {
+        vnode.data.show = true;
+        if (value) {
+          enter(vnode, function () {
+            el.style.display = el.__vOriginalDisplay;
+          });
+        } else {
+          leave(vnode, function () {
+            el.style.display = 'none';
+          });
+        }
+      } else {
+        el.style.display = value ? el.__vOriginalDisplay : 'none';
+      }
+    },
+
+    unbind: function unbind (
+      el,
+      binding,
+      vnode,
+      oldVnode,
+      isDestroy
+    ) {
+      if (!isDestroy) {
+        el.style.display = el.__vOriginalDisplay;
+      }
+    }
+  };
+
+  var platformDirectives = {
+    model: directive,
+    show: show
+  };
+
+  /*  */
+
+  var transitionProps = {
+    name: String,
+    appear: Boolean,
+    css: Boolean,
+    mode: String,
+    type: String,
+    enterClass: String,
+    leaveClass: String,
+    enterToClass: String,
+    leaveToClass: String,
+    enterActiveClass: String,
+    leaveActiveClass: String,
+    appearClass: String,
+    appearActiveClass: String,
+    appearToClass: String,
+    duration: [Number, String, Object]
+  };
+
+  // in case the child is also an abstract component, e.g. <keep-alive>
+  // we want to recursively retrieve the real component to be rendered
+  function getRealChild (vnode) {
+    var compOptions = vnode && vnode.componentOptions;
+    if (compOptions && compOptions.Ctor.options.abstract) {
+      return getRealChild(getFirstComponentChild(compOptions.children))
+    } else {
+      return vnode
+    }
+  }
+
+  function extractTransitionData (comp) {
+    var data = {};
+    var options = comp.$options;
+    // props
+    for (var key in options.propsData) {
+      data[key] = comp[key];
+    }
+    // events.
+    // extract listeners and pass them directly to the transition methods
+    var listeners = options._parentListeners;
+    for (var key$1 in listeners) {
+      data[camelize(key$1)] = listeners[key$1];
+    }
+    return data
+  }
+
+  function placeholder (h, rawChild) {
+    if (/\d-keep-alive$/.test(rawChild.tag)) {
+      return h('keep-alive', {
+        props: rawChild.componentOptions.propsData
+      })
+    }
+  }
+
+  function hasParentTransition (vnode) {
+    while ((vnode = vnode.parent)) {
+      if (vnode.data.transition) {
+        return true
+      }
+    }
+  }
+
+  function isSameChild (child, oldChild) {
+    return oldChild.key === child.key && oldChild.tag === child.tag
+  }
+
+  var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };
+
+  var isVShowDirective = function (d) { return d.name === 'show'; };
+
+  var Transition = {
+    name: 'transition',
+    props: transitionProps,
+    abstract: true,
+
+    render: function render (h) {
+      var this$1 = this;
+
+      var children = this.$slots.default;
+      if (!children) {
+        return
+      }
+
+      // filter out text nodes (possible whitespaces)
+      children = children.filter(isNotTextNode);
+      /* istanbul ignore if */
+      if (!children.length) {
+        return
+      }
+
+      // warn multiple elements
+      if (children.length > 1) {
+        warn(
+          '<transition> can only be used on a single element. Use ' +
+          '<transition-group> for lists.',
+          this.$parent
+        );
+      }
+
+      var mode = this.mode;
+
+      // warn invalid mode
+      if (mode && mode !== 'in-out' && mode !== 'out-in'
+      ) {
+        warn(
+          'invalid <transition> mode: ' + mode,
+          this.$parent
+        );
+      }
+
+      var rawChild = children[0];
+
+      // if this is a component root node and the component's
+      // parent container node also has transition, skip.
+      if (hasParentTransition(this.$vnode)) {
+        return rawChild
+      }
+
+      // apply transition data to child
+      // use getRealChild() to ignore abstract components e.g. keep-alive
+      var child = getRealChild(rawChild);
+      /* istanbul ignore if */
+      if (!child) {
+        return rawChild
+      }
+
+      if (this._leaving) {
+        return placeholder(h, rawChild)
+      }
+
+      // ensure a key that is unique to the vnode type and to this transition
+      // component instance. This key will be used to remove pending leaving nodes
+      // during entering.
+      var id = "__transition-" + (this._uid) + "-";
+      child.key = child.key == null
+        ? child.isComment
+          ? id + 'comment'
+          : id + child.tag
+        : isPrimitive(child.key)
+          ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
+          : child.key;
+
+      var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
+      var oldRawChild = this._vnode;
+      var oldChild = getRealChild(oldRawChild);
+
+      // mark v-show
+      // so that the transition module can hand over the control to the directive
+      if (child.data.directives && child.data.directives.some(isVShowDirective)) {
+        child.data.show = true;
+      }
+
+      if (
+        oldChild &&
+        oldChild.data &&
+        !isSameChild(child, oldChild) &&
+        !isAsyncPlaceholder(oldChild) &&
+        // #6687 component root is a comment node
+        !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
+      ) {
+        // replace old child transition data with fresh one
+        // important for dynamic transitions!
+        var oldData = oldChild.data.transition = extend({}, data);
+        // handle transition mode
+        if (mode === 'out-in') {
+          // return placeholder node and queue update when leave finishes
+          this._leaving = true;
+          mergeVNodeHook(oldData, 'afterLeave', function () {
+            this$1._leaving = false;
+            this$1.$forceUpdate();
+          });
+          return placeholder(h, rawChild)
+        } else if (mode === 'in-out') {
+          if (isAsyncPlaceholder(child)) {
+            return oldRawChild
+          }
+          var delayedLeave;
+          var performLeave = function () { delayedLeave(); };
+          mergeVNodeHook(data, 'afterEnter', performLeave);
+          mergeVNodeHook(data, 'enterCancelled', performLeave);
+          mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
+        }
+      }
+
+      return rawChild
+    }
+  };
+
+  /*  */
+
+  var props = extend({
+    tag: String,
+    moveClass: String
+  }, transitionProps);
+
+  delete props.mode;
+
+  var TransitionGroup = {
+    props: props,
+
+    beforeMount: function beforeMount () {
+      var this$1 = this;
+
+      var update = this._update;
+      this._update = function (vnode, hydrating) {
+        var restoreActiveInstance = setActiveInstance(this$1);
+        // force removing pass
+        this$1.__patch__(
+          this$1._vnode,
+          this$1.kept,
+          false, // hydrating
+          true // removeOnly (!important, avoids unnecessary moves)
+        );
+        this$1._vnode = this$1.kept;
+        restoreActiveInstance();
+        update.call(this$1, vnode, hydrating);
+      };
+    },
+
+    render: function render (h) {
+      var tag = this.tag || this.$vnode.data.tag || 'span';
+      var map = Object.create(null);
+      var prevChildren = this.prevChildren = this.children;
+      var rawChildren = this.$slots.default || [];
+      var children = this.children = [];
+      var transitionData = extractTransitionData(this);
+
+      for (var i = 0; i < rawChildren.length; i++) {
+        var c = rawChildren[i];
+        if (c.tag) {
+          if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
+            children.push(c);
+            map[c.key] = c
+            ;(c.data || (c.data = {})).transition = transitionData;
+          } else {
+            var opts = c.componentOptions;
+            var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
+            warn(("<transition-group> children must be keyed: <" + name + ">"));
+          }
+        }
+      }
+
+      if (prevChildren) {
+        var kept = [];
+        var removed = [];
+        for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
+          var c$1 = prevChildren[i$1];
+          c$1.data.transition = transitionData;
+          c$1.data.pos = c$1.elm.getBoundingClientRect();
+          if (map[c$1.key]) {
+            kept.push(c$1);
+          } else {
+            removed.push(c$1);
+          }
+        }
+        this.kept = h(tag, null, kept);
+        this.removed = removed;
+      }
+
+      return h(tag, null, children)
+    },
+
+    updated: function updated () {
+      var children = this.prevChildren;
+      var moveClass = this.moveClass || ((this.name || 'v') + '-move');
+      if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
+        return
+      }
+
+      // we divide the work into three loops to avoid mixing DOM reads and writes
+      // in each iteration - which helps prevent layout thrashing.
+      children.forEach(callPendingCbs);
+      children.forEach(recordPosition);
+      children.forEach(applyTranslation);
+
+      // force reflow to put everything in position
+      // assign to this to avoid being removed in tree-shaking
+      // $flow-disable-line
+      this._reflow = document.body.offsetHeight;
+
+      children.forEach(function (c) {
+        if (c.data.moved) {
+          var el = c.elm;
+          var s = el.style;
+          addTransitionClass(el, moveClass);
+          s.transform = s.WebkitTransform = s.transitionDuration = '';
+          el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
+            if (e && e.target !== el) {
+              return
+            }
+            if (!e || /transform$/.test(e.propertyName)) {
+              el.removeEventListener(transitionEndEvent, cb);
+              el._moveCb = null;
+              removeTransitionClass(el, moveClass);
+            }
+          });
+        }
+      });
+    },
+
+    methods: {
+      hasMove: function hasMove (el, moveClass) {
+        /* istanbul ignore if */
+        if (!hasTransition) {
+          return false
+        }
+        /* istanbul ignore if */
+        if (this._hasMove) {
+          return this._hasMove
+        }
+        // Detect whether an element with the move class applied has
+        // CSS transitions. Since the element may be inside an entering
+        // transition at this very moment, we make a clone of it and remove
+        // all other transition classes applied to ensure only the move class
+        // is applied.
+        var clone = el.cloneNode();
+        if (el._transitionClasses) {
+          el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
+        }
+        addClass(clone, moveClass);
+        clone.style.display = 'none';
+        this.$el.appendChild(clone);
+        var info = getTransitionInfo(clone);
+        this.$el.removeChild(clone);
+        return (this._hasMove = info.hasTransform)
+      }
+    }
+  };
+
+  function callPendingCbs (c) {
+    /* istanbul ignore if */
+    if (c.elm._moveCb) {
+      c.elm._moveCb();
+    }
+    /* istanbul ignore if */
+    if (c.elm._enterCb) {
+      c.elm._enterCb();
+    }
+  }
+
+  function recordPosition (c) {
+    c.data.newPos = c.elm.getBoundingClientRect();
+  }
+
+  function applyTranslation (c) {
+    var oldPos = c.data.pos;
+    var newPos = c.data.newPos;
+    var dx = oldPos.left - newPos.left;
+    var dy = oldPos.top - newPos.top;
+    if (dx || dy) {
+      c.data.moved = true;
+      var s = c.elm.style;
+      s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
+      s.transitionDuration = '0s';
+    }
+  }
+
+  var platformComponents = {
+    Transition: Transition,
+    TransitionGroup: TransitionGroup
+  };
+
+  /*  */
+
+  // install platform specific utils
+  Vue.config.mustUseProp = mustUseProp;
+  Vue.config.isReservedTag = isReservedTag;
+  Vue.config.isReservedAttr = isReservedAttr;
+  Vue.config.getTagNamespace = getTagNamespace;
+  Vue.config.isUnknownElement = isUnknownElement;
+
+  // install platform runtime directives & components
+  extend(Vue.options.directives, platformDirectives);
+  extend(Vue.options.components, platformComponents);
+
+  // install platform patch function
+  Vue.prototype.__patch__ = inBrowser ? patch : noop;
+
+  // public mount method
+  Vue.prototype.$mount = function (
+    el,
+    hydrating
+  ) {
+    el = el && inBrowser ? query(el) : undefined;
+    return mountComponent(this, el, hydrating)
+  };
+
+  // devtools global hook
+  /* istanbul ignore next */
+  if (inBrowser) {
+    setTimeout(function () {
+      if (config.devtools) {
+        if (devtools) {
+          devtools.emit('init', Vue);
+        } else {
+          console[console.info ? 'info' : 'log'](
+            'Download the Vue Devtools extension for a better development experience:\n' +
+            'https://github.com/vuejs/vue-devtools'
+          );
+        }
+      }
+      if (config.productionTip !== false &&
+        typeof console !== 'undefined'
+      ) {
+        console[console.info ? 'info' : 'log'](
+          "You are running Vue in development mode.\n" +
+          "Make sure to turn on production mode when deploying for production.\n" +
+          "See more tips at https://vuejs.org/guide/deployment.html"
+        );
+      }
+    }, 0);
+  }
+
+  /*  */
+
+  return Vue;
+
+}));
diff --git a/vendor/yaml.js/dist/yaml.js b/vendor/yaml.js/dist/yaml.js
new file mode 100644
index 0000000000000000000000000000000000000000..23d199427b0b9ddbaa58cfc9b55c7c270f9c0472
--- /dev/null
+++ b/vendor/yaml.js/dist/yaml.js
@@ -0,0 +1,1893 @@
+(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+var Dumper, Inline, Utils;
+
+Utils = require('./Utils');
+
+Inline = require('./Inline');
+
+Dumper = (function() {
+  function Dumper() {}
+
+  Dumper.indentation = 4;
+
+  Dumper.prototype.dump = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
+    var i, key, len, output, prefix, value, willBeInlined;
+    if (inline == null) {
+      inline = 0;
+    }
+    if (indent == null) {
+      indent = 0;
+    }
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectEncoder == null) {
+      objectEncoder = null;
+    }
+    output = '';
+    prefix = (indent ? Utils.strRepeat(' ', indent) : '');
+    if (inline <= 0 || typeof input !== 'object' || input instanceof Date || Utils.isEmpty(input)) {
+      output += prefix + Inline.dump(input, exceptionOnInvalidType, objectEncoder);
+    } else {
+      if (input instanceof Array) {
+        for (i = 0, len = input.length; i < len; i++) {
+          value = input[i];
+          willBeInlined = inline - 1 <= 0 || typeof value !== 'object' || Utils.isEmpty(value);
+          output += prefix + '-' + (willBeInlined ? ' ' : "\n") + this.dump(value, inline - 1, (willBeInlined ? 0 : indent + this.indentation), exceptionOnInvalidType, objectEncoder) + (willBeInlined ? "\n" : '');
+        }
+      } else {
+        for (key in input) {
+          value = input[key];
+          willBeInlined = inline - 1 <= 0 || typeof value !== 'object' || Utils.isEmpty(value);
+          output += prefix + Inline.dump(key, exceptionOnInvalidType, objectEncoder) + ':' + (willBeInlined ? ' ' : "\n") + this.dump(value, inline - 1, (willBeInlined ? 0 : indent + this.indentation), exceptionOnInvalidType, objectEncoder) + (willBeInlined ? "\n" : '');
+        }
+      }
+    }
+    return output;
+  };
+
+  return Dumper;
+
+})();
+
+module.exports = Dumper;
+
+
+},{"./Inline":6,"./Utils":10}],2:[function(require,module,exports){
+var Escaper, Pattern;
+
+Pattern = require('./Pattern');
+
+Escaper = (function() {
+  var ch;
+
+  function Escaper() {}
+
+  Escaper.LIST_ESCAPEES = ['\\', '\\\\', '\\"', '"', "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", (ch = String.fromCharCode)(0x0085), ch(0x00A0), ch(0x2028), ch(0x2029)];
+
+  Escaper.LIST_ESCAPED = ['\\\\', '\\"', '\\"', '\\"', "\\0", "\\x01", "\\x02", "\\x03", "\\x04", "\\x05", "\\x06", "\\a", "\\b", "\\t", "\\n", "\\v", "\\f", "\\r", "\\x0e", "\\x0f", "\\x10", "\\x11", "\\x12", "\\x13", "\\x14", "\\x15", "\\x16", "\\x17", "\\x18", "\\x19", "\\x1a", "\\e", "\\x1c", "\\x1d", "\\x1e", "\\x1f", "\\N", "\\_", "\\L", "\\P"];
+
+  Escaper.MAPPING_ESCAPEES_TO_ESCAPED = (function() {
+    var i, j, mapping, ref;
+    mapping = {};
+    for (i = j = 0, ref = Escaper.LIST_ESCAPEES.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
+      mapping[Escaper.LIST_ESCAPEES[i]] = Escaper.LIST_ESCAPED[i];
+    }
+    return mapping;
+  })();
+
+  Escaper.PATTERN_CHARACTERS_TO_ESCAPE = new Pattern('[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9');
+
+  Escaper.PATTERN_MAPPING_ESCAPEES = new Pattern(Escaper.LIST_ESCAPEES.join('|').split('\\').join('\\\\'));
+
+  Escaper.PATTERN_SINGLE_QUOTING = new Pattern('[\\s\'":{}[\\],&*#?]|^[-?|<>=!%@`]');
+
+  Escaper.requiresDoubleQuoting = function(value) {
+    return this.PATTERN_CHARACTERS_TO_ESCAPE.test(value);
+  };
+
+  Escaper.escapeWithDoubleQuotes = function(value) {
+    var result;
+    result = this.PATTERN_MAPPING_ESCAPEES.replace(value, (function(_this) {
+      return function(str) {
+        return _this.MAPPING_ESCAPEES_TO_ESCAPED[str];
+      };
+    })(this));
+    return '"' + result + '"';
+  };
+
+  Escaper.requiresSingleQuoting = function(value) {
+    return this.PATTERN_SINGLE_QUOTING.test(value);
+  };
+
+  Escaper.escapeWithSingleQuotes = function(value) {
+    return "'" + value.replace(/'/g, "''") + "'";
+  };
+
+  return Escaper;
+
+})();
+
+module.exports = Escaper;
+
+
+},{"./Pattern":8}],3:[function(require,module,exports){
+var DumpException,
+  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+  hasProp = {}.hasOwnProperty;
+
+DumpException = (function(superClass) {
+  extend(DumpException, superClass);
+
+  function DumpException(message, parsedLine, snippet) {
+    this.message = message;
+    this.parsedLine = parsedLine;
+    this.snippet = snippet;
+  }
+
+  DumpException.prototype.toString = function() {
+    if ((this.parsedLine != null) && (this.snippet != null)) {
+      return '<DumpException> ' + this.message + ' (line ' + this.parsedLine + ': \'' + this.snippet + '\')';
+    } else {
+      return '<DumpException> ' + this.message;
+    }
+  };
+
+  return DumpException;
+
+})(Error);
+
+module.exports = DumpException;
+
+
+},{}],4:[function(require,module,exports){
+var ParseException,
+  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+  hasProp = {}.hasOwnProperty;
+
+ParseException = (function(superClass) {
+  extend(ParseException, superClass);
+
+  function ParseException(message, parsedLine, snippet) {
+    this.message = message;
+    this.parsedLine = parsedLine;
+    this.snippet = snippet;
+  }
+
+  ParseException.prototype.toString = function() {
+    if ((this.parsedLine != null) && (this.snippet != null)) {
+      return '<ParseException> ' + this.message + ' (line ' + this.parsedLine + ': \'' + this.snippet + '\')';
+    } else {
+      return '<ParseException> ' + this.message;
+    }
+  };
+
+  return ParseException;
+
+})(Error);
+
+module.exports = ParseException;
+
+
+},{}],5:[function(require,module,exports){
+var ParseMore,
+  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+  hasProp = {}.hasOwnProperty;
+
+ParseMore = (function(superClass) {
+  extend(ParseMore, superClass);
+
+  function ParseMore(message, parsedLine, snippet) {
+    this.message = message;
+    this.parsedLine = parsedLine;
+    this.snippet = snippet;
+  }
+
+  ParseMore.prototype.toString = function() {
+    if ((this.parsedLine != null) && (this.snippet != null)) {
+      return '<ParseMore> ' + this.message + ' (line ' + this.parsedLine + ': \'' + this.snippet + '\')';
+    } else {
+      return '<ParseMore> ' + this.message;
+    }
+  };
+
+  return ParseMore;
+
+})(Error);
+
+module.exports = ParseMore;
+
+
+},{}],6:[function(require,module,exports){
+var DumpException, Escaper, Inline, ParseException, ParseMore, Pattern, Unescaper, Utils,
+  indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
+
+Pattern = require('./Pattern');
+
+Unescaper = require('./Unescaper');
+
+Escaper = require('./Escaper');
+
+Utils = require('./Utils');
+
+ParseException = require('./Exception/ParseException');
+
+ParseMore = require('./Exception/ParseMore');
+
+DumpException = require('./Exception/DumpException');
+
+Inline = (function() {
+  function Inline() {}
+
+  Inline.REGEX_QUOTED_STRING = '(?:"(?:[^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'(?:[^\']*(?:\'\'[^\']*)*)\')';
+
+  Inline.PATTERN_TRAILING_COMMENTS = new Pattern('^\\s*#.*$');
+
+  Inline.PATTERN_QUOTED_SCALAR = new Pattern('^' + Inline.REGEX_QUOTED_STRING);
+
+  Inline.PATTERN_THOUSAND_NUMERIC_SCALAR = new Pattern('^(-|\\+)?[0-9,]+(\\.[0-9]+)?$');
+
+  Inline.PATTERN_SCALAR_BY_DELIMITERS = {};
+
+  Inline.settings = {};
+
+  Inline.configure = function(exceptionOnInvalidType, objectDecoder) {
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = null;
+    }
+    if (objectDecoder == null) {
+      objectDecoder = null;
+    }
+    this.settings.exceptionOnInvalidType = exceptionOnInvalidType;
+    this.settings.objectDecoder = objectDecoder;
+  };
+
+  Inline.parse = function(value, exceptionOnInvalidType, objectDecoder) {
+    var context, result;
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectDecoder == null) {
+      objectDecoder = null;
+    }
+    this.settings.exceptionOnInvalidType = exceptionOnInvalidType;
+    this.settings.objectDecoder = objectDecoder;
+    if (value == null) {
+      return '';
+    }
+    value = Utils.trim(value);
+    if (0 === value.length) {
+      return '';
+    }
+    context = {
+      exceptionOnInvalidType: exceptionOnInvalidType,
+      objectDecoder: objectDecoder,
+      i: 0
+    };
+    switch (value.charAt(0)) {
+      case '[':
+        result = this.parseSequence(value, context);
+        ++context.i;
+        break;
+      case '{':
+        result = this.parseMapping(value, context);
+        ++context.i;
+        break;
+      default:
+        result = this.parseScalar(value, null, ['"', "'"], context);
+    }
+    if (this.PATTERN_TRAILING_COMMENTS.replace(value.slice(context.i), '') !== '') {
+      throw new ParseException('Unexpected characters near "' + value.slice(context.i) + '".');
+    }
+    return result;
+  };
+
+  Inline.dump = function(value, exceptionOnInvalidType, objectEncoder) {
+    var ref, result, type;
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectEncoder == null) {
+      objectEncoder = null;
+    }
+    if (value == null) {
+      return 'null';
+    }
+    type = typeof value;
+    if (type === 'object') {
+      if (value instanceof Date) {
+        return value.toISOString();
+      } else if (objectEncoder != null) {
+        result = objectEncoder(value);
+        if (typeof result === 'string' || (result != null)) {
+          return result;
+        }
+      }
+      return this.dumpObject(value);
+    }
+    if (type === 'boolean') {
+      return (value ? 'true' : 'false');
+    }
+    if (Utils.isDigits(value)) {
+      return (type === 'string' ? "'" + value + "'" : String(parseInt(value)));
+    }
+    if (Utils.isNumeric(value)) {
+      return (type === 'string' ? "'" + value + "'" : String(parseFloat(value)));
+    }
+    if (type === 'number') {
+      return (value === Infinity ? '.Inf' : (value === -Infinity ? '-.Inf' : (isNaN(value) ? '.NaN' : value)));
+    }
+    if (Escaper.requiresDoubleQuoting(value)) {
+      return Escaper.escapeWithDoubleQuotes(value);
+    }
+    if (Escaper.requiresSingleQuoting(value)) {
+      return Escaper.escapeWithSingleQuotes(value);
+    }
+    if ('' === value) {
+      return '""';
+    }
+    if (Utils.PATTERN_DATE.test(value)) {
+      return "'" + value + "'";
+    }
+    if ((ref = value.toLowerCase()) === 'null' || ref === '~' || ref === 'true' || ref === 'false') {
+      return "'" + value + "'";
+    }
+    return value;
+  };
+
+  Inline.dumpObject = function(value, exceptionOnInvalidType, objectSupport) {
+    var j, key, len1, output, val;
+    if (objectSupport == null) {
+      objectSupport = null;
+    }
+    if (value instanceof Array) {
+      output = [];
+      for (j = 0, len1 = value.length; j < len1; j++) {
+        val = value[j];
+        output.push(this.dump(val));
+      }
+      return '[' + output.join(', ') + ']';
+    } else {
+      output = [];
+      for (key in value) {
+        val = value[key];
+        output.push(this.dump(key) + ': ' + this.dump(val));
+      }
+      return '{' + output.join(', ') + '}';
+    }
+  };
+
+  Inline.parseScalar = function(scalar, delimiters, stringDelimiters, context, evaluate) {
+    var i, joinedDelimiters, match, output, pattern, ref, ref1, strpos, tmp;
+    if (delimiters == null) {
+      delimiters = null;
+    }
+    if (stringDelimiters == null) {
+      stringDelimiters = ['"', "'"];
+    }
+    if (context == null) {
+      context = null;
+    }
+    if (evaluate == null) {
+      evaluate = true;
+    }
+    if (context == null) {
+      context = {
+        exceptionOnInvalidType: this.settings.exceptionOnInvalidType,
+        objectDecoder: this.settings.objectDecoder,
+        i: 0
+      };
+    }
+    i = context.i;
+    if (ref = scalar.charAt(i), indexOf.call(stringDelimiters, ref) >= 0) {
+      output = this.parseQuotedScalar(scalar, context);
+      i = context.i;
+      if (delimiters != null) {
+        tmp = Utils.ltrim(scalar.slice(i), ' ');
+        if (!(ref1 = tmp.charAt(0), indexOf.call(delimiters, ref1) >= 0)) {
+          throw new ParseException('Unexpected characters (' + scalar.slice(i) + ').');
+        }
+      }
+    } else {
+      if (!delimiters) {
+        output = scalar.slice(i);
+        i += output.length;
+        strpos = output.indexOf(' #');
+        if (strpos !== -1) {
+          output = Utils.rtrim(output.slice(0, strpos));
+        }
+      } else {
+        joinedDelimiters = delimiters.join('|');
+        pattern = this.PATTERN_SCALAR_BY_DELIMITERS[joinedDelimiters];
+        if (pattern == null) {
+          pattern = new Pattern('^(.+?)(' + joinedDelimiters + ')');
+          this.PATTERN_SCALAR_BY_DELIMITERS[joinedDelimiters] = pattern;
+        }
+        if (match = pattern.exec(scalar.slice(i))) {
+          output = match[1];
+          i += output.length;
+        } else {
+          throw new ParseException('Malformed inline YAML string (' + scalar + ').');
+        }
+      }
+      if (evaluate) {
+        output = this.evaluateScalar(output, context);
+      }
+    }
+    context.i = i;
+    return output;
+  };
+
+  Inline.parseQuotedScalar = function(scalar, context) {
+    var i, match, output;
+    i = context.i;
+    if (!(match = this.PATTERN_QUOTED_SCALAR.exec(scalar.slice(i)))) {
+      throw new ParseMore('Malformed inline YAML string (' + scalar.slice(i) + ').');
+    }
+    output = match[0].substr(1, match[0].length - 2);
+    if ('"' === scalar.charAt(i)) {
+      output = Unescaper.unescapeDoubleQuotedString(output);
+    } else {
+      output = Unescaper.unescapeSingleQuotedString(output);
+    }
+    i += match[0].length;
+    context.i = i;
+    return output;
+  };
+
+  Inline.parseSequence = function(sequence, context) {
+    var e, error, i, isQuoted, len, output, ref, value;
+    output = [];
+    len = sequence.length;
+    i = context.i;
+    i += 1;
+    while (i < len) {
+      context.i = i;
+      switch (sequence.charAt(i)) {
+        case '[':
+          output.push(this.parseSequence(sequence, context));
+          i = context.i;
+          break;
+        case '{':
+          output.push(this.parseMapping(sequence, context));
+          i = context.i;
+          break;
+        case ']':
+          return output;
+        case ',':
+        case ' ':
+        case "\n":
+          break;
+        default:
+          isQuoted = ((ref = sequence.charAt(i)) === '"' || ref === "'");
+          value = this.parseScalar(sequence, [',', ']'], ['"', "'"], context);
+          i = context.i;
+          if (!isQuoted && typeof value === 'string' && (value.indexOf(': ') !== -1 || value.indexOf(":\n") !== -1)) {
+            try {
+              value = this.parseMapping('{' + value + '}');
+            } catch (error) {
+              e = error;
+            }
+          }
+          output.push(value);
+          --i;
+      }
+      ++i;
+    }
+    throw new ParseMore('Malformed inline YAML string ' + sequence);
+  };
+
+  Inline.parseMapping = function(mapping, context) {
+    var done, i, key, len, output, shouldContinueWhileLoop, value;
+    output = {};
+    len = mapping.length;
+    i = context.i;
+    i += 1;
+    shouldContinueWhileLoop = false;
+    while (i < len) {
+      context.i = i;
+      switch (mapping.charAt(i)) {
+        case ' ':
+        case ',':
+        case "\n":
+          ++i;
+          context.i = i;
+          shouldContinueWhileLoop = true;
+          break;
+        case '}':
+          return output;
+      }
+      if (shouldContinueWhileLoop) {
+        shouldContinueWhileLoop = false;
+        continue;
+      }
+      key = this.parseScalar(mapping, [':', ' ', "\n"], ['"', "'"], context, false);
+      i = context.i;
+      done = false;
+      while (i < len) {
+        context.i = i;
+        switch (mapping.charAt(i)) {
+          case '[':
+            value = this.parseSequence(mapping, context);
+            i = context.i;
+            if (output[key] === void 0) {
+              output[key] = value;
+            }
+            done = true;
+            break;
+          case '{':
+            value = this.parseMapping(mapping, context);
+            i = context.i;
+            if (output[key] === void 0) {
+              output[key] = value;
+            }
+            done = true;
+            break;
+          case ':':
+          case ' ':
+          case "\n":
+            break;
+          default:
+            value = this.parseScalar(mapping, [',', '}'], ['"', "'"], context);
+            i = context.i;
+            if (output[key] === void 0) {
+              output[key] = value;
+            }
+            done = true;
+            --i;
+        }
+        ++i;
+        if (done) {
+          break;
+        }
+      }
+    }
+    throw new ParseMore('Malformed inline YAML string ' + mapping);
+  };
+
+  Inline.evaluateScalar = function(scalar, context) {
+    var cast, date, exceptionOnInvalidType, firstChar, firstSpace, firstWord, objectDecoder, raw, scalarLower, subValue, trimmedScalar;
+    scalar = Utils.trim(scalar);
+    scalarLower = scalar.toLowerCase();
+    switch (scalarLower) {
+      case 'null':
+      case '':
+      case '~':
+        return null;
+      case 'true':
+        return true;
+      case 'false':
+        return false;
+      case '.inf':
+        return Infinity;
+      case '.nan':
+        return NaN;
+      case '-.inf':
+        return Infinity;
+      default:
+        firstChar = scalarLower.charAt(0);
+        switch (firstChar) {
+          case '!':
+            firstSpace = scalar.indexOf(' ');
+            if (firstSpace === -1) {
+              firstWord = scalarLower;
+            } else {
+              firstWord = scalarLower.slice(0, firstSpace);
+            }
+            switch (firstWord) {
+              case '!':
+                if (firstSpace !== -1) {
+                  return parseInt(this.parseScalar(scalar.slice(2)));
+                }
+                return null;
+              case '!str':
+                return Utils.ltrim(scalar.slice(4));
+              case '!!str':
+                return Utils.ltrim(scalar.slice(5));
+              case '!!int':
+                return parseInt(this.parseScalar(scalar.slice(5)));
+              case '!!bool':
+                return Utils.parseBoolean(this.parseScalar(scalar.slice(6)), false);
+              case '!!float':
+                return parseFloat(this.parseScalar(scalar.slice(7)));
+              case '!!timestamp':
+                return Utils.stringToDate(Utils.ltrim(scalar.slice(11)));
+              default:
+                if (context == null) {
+                  context = {
+                    exceptionOnInvalidType: this.settings.exceptionOnInvalidType,
+                    objectDecoder: this.settings.objectDecoder,
+                    i: 0
+                  };
+                }
+                objectDecoder = context.objectDecoder, exceptionOnInvalidType = context.exceptionOnInvalidType;
+                if (objectDecoder) {
+                  trimmedScalar = Utils.rtrim(scalar);
+                  firstSpace = trimmedScalar.indexOf(' ');
+                  if (firstSpace === -1) {
+                    return objectDecoder(trimmedScalar, null);
+                  } else {
+                    subValue = Utils.ltrim(trimmedScalar.slice(firstSpace + 1));
+                    if (!(subValue.length > 0)) {
+                      subValue = null;
+                    }
+                    return objectDecoder(trimmedScalar.slice(0, firstSpace), subValue);
+                  }
+                }
+                if (exceptionOnInvalidType) {
+                  throw new ParseException('Custom object support when parsing a YAML file has been disabled.');
+                }
+                return null;
+            }
+            break;
+          case '0':
+            if ('0x' === scalar.slice(0, 2)) {
+              return Utils.hexDec(scalar);
+            } else if (Utils.isDigits(scalar)) {
+              return Utils.octDec(scalar);
+            } else if (Utils.isNumeric(scalar)) {
+              return parseFloat(scalar);
+            } else {
+              return scalar;
+            }
+            break;
+          case '+':
+            if (Utils.isDigits(scalar)) {
+              raw = scalar;
+              cast = parseInt(raw);
+              if (raw === String(cast)) {
+                return cast;
+              } else {
+                return raw;
+              }
+            } else if (Utils.isNumeric(scalar)) {
+              return parseFloat(scalar);
+            } else if (this.PATTERN_THOUSAND_NUMERIC_SCALAR.test(scalar)) {
+              return parseFloat(scalar.replace(',', ''));
+            }
+            return scalar;
+          case '-':
+            if (Utils.isDigits(scalar.slice(1))) {
+              if ('0' === scalar.charAt(1)) {
+                return -Utils.octDec(scalar.slice(1));
+              } else {
+                raw = scalar.slice(1);
+                cast = parseInt(raw);
+                if (raw === String(cast)) {
+                  return -cast;
+                } else {
+                  return -raw;
+                }
+              }
+            } else if (Utils.isNumeric(scalar)) {
+              return parseFloat(scalar);
+            } else if (this.PATTERN_THOUSAND_NUMERIC_SCALAR.test(scalar)) {
+              return parseFloat(scalar.replace(',', ''));
+            }
+            return scalar;
+          default:
+            if (date = Utils.stringToDate(scalar)) {
+              return date;
+            } else if (Utils.isNumeric(scalar)) {
+              return parseFloat(scalar);
+            } else if (this.PATTERN_THOUSAND_NUMERIC_SCALAR.test(scalar)) {
+              return parseFloat(scalar.replace(',', ''));
+            }
+            return scalar;
+        }
+    }
+  };
+
+  return Inline;
+
+})();
+
+module.exports = Inline;
+
+
+},{"./Escaper":2,"./Exception/DumpException":3,"./Exception/ParseException":4,"./Exception/ParseMore":5,"./Pattern":8,"./Unescaper":9,"./Utils":10}],7:[function(require,module,exports){
+var Inline, ParseException, ParseMore, Parser, Pattern, Utils;
+
+Inline = require('./Inline');
+
+Pattern = require('./Pattern');
+
+Utils = require('./Utils');
+
+ParseException = require('./Exception/ParseException');
+
+ParseMore = require('./Exception/ParseMore');
+
+Parser = (function() {
+  Parser.prototype.PATTERN_FOLDED_SCALAR_ALL = new Pattern('^(?:(?<type>![^\\|>]*)\\s+)?(?<separator>\\||>)(?<modifiers>\\+|\\-|\\d+|\\+\\d+|\\-\\d+|\\d+\\+|\\d+\\-)?(?<comments> +#.*)?$');
+
+  Parser.prototype.PATTERN_FOLDED_SCALAR_END = new Pattern('(?<separator>\\||>)(?<modifiers>\\+|\\-|\\d+|\\+\\d+|\\-\\d+|\\d+\\+|\\d+\\-)?(?<comments> +#.*)?$');
+
+  Parser.prototype.PATTERN_SEQUENCE_ITEM = new Pattern('^\\-((?<leadspaces>\\s+)(?<value>.+?))?\\s*$');
+
+  Parser.prototype.PATTERN_ANCHOR_VALUE = new Pattern('^&(?<ref>[^ ]+) *(?<value>.*)');
+
+  Parser.prototype.PATTERN_COMPACT_NOTATION = new Pattern('^(?<key>' + Inline.REGEX_QUOTED_STRING + '|[^ \'"\\{\\[].*?) *\\:(\\s+(?<value>.+?))?\\s*$');
+
+  Parser.prototype.PATTERN_MAPPING_ITEM = new Pattern('^(?<key>' + Inline.REGEX_QUOTED_STRING + '|[^ \'"\\[\\{].*?) *\\:(\\s+(?<value>.+?))?\\s*$');
+
+  Parser.prototype.PATTERN_DECIMAL = new Pattern('\\d+');
+
+  Parser.prototype.PATTERN_INDENT_SPACES = new Pattern('^ +');
+
+  Parser.prototype.PATTERN_TRAILING_LINES = new Pattern('(\n*)$');
+
+  Parser.prototype.PATTERN_YAML_HEADER = new Pattern('^\\%YAML[: ][\\d\\.]+.*\n', 'm');
+
+  Parser.prototype.PATTERN_LEADING_COMMENTS = new Pattern('^(\\#.*?\n)+', 'm');
+
+  Parser.prototype.PATTERN_DOCUMENT_MARKER_START = new Pattern('^\\-\\-\\-.*?\n', 'm');
+
+  Parser.prototype.PATTERN_DOCUMENT_MARKER_END = new Pattern('^\\.\\.\\.\\s*$', 'm');
+
+  Parser.prototype.PATTERN_FOLDED_SCALAR_BY_INDENTATION = {};
+
+  Parser.prototype.CONTEXT_NONE = 0;
+
+  Parser.prototype.CONTEXT_SEQUENCE = 1;
+
+  Parser.prototype.CONTEXT_MAPPING = 2;
+
+  function Parser(offset) {
+    this.offset = offset != null ? offset : 0;
+    this.lines = [];
+    this.currentLineNb = -1;
+    this.currentLine = '';
+    this.refs = {};
+  }
+
+  Parser.prototype.parse = function(value, exceptionOnInvalidType, objectDecoder) {
+    var alias, allowOverwrite, block, c, context, data, e, error, error1, error2, first, i, indent, isRef, j, k, key, l, lastKey, len, len1, len2, len3, lineCount, m, matches, mergeNode, n, name, parsed, parsedItem, parser, ref, ref1, ref2, refName, refValue, val, values;
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectDecoder == null) {
+      objectDecoder = null;
+    }
+    this.currentLineNb = -1;
+    this.currentLine = '';
+    this.lines = this.cleanup(value).split("\n");
+    data = null;
+    context = this.CONTEXT_NONE;
+    allowOverwrite = false;
+    while (this.moveToNextLine()) {
+      if (this.isCurrentLineEmpty()) {
+        continue;
+      }
+      if ("\t" === this.currentLine[0]) {
+        throw new ParseException('A YAML file cannot contain tabs as indentation.', this.getRealCurrentLineNb() + 1, this.currentLine);
+      }
+      isRef = mergeNode = false;
+      if (values = this.PATTERN_SEQUENCE_ITEM.exec(this.currentLine)) {
+        if (this.CONTEXT_MAPPING === context) {
+          throw new ParseException('You cannot define a sequence item when in a mapping');
+        }
+        context = this.CONTEXT_SEQUENCE;
+        if (data == null) {
+          data = [];
+        }
+        if ((values.value != null) && (matches = this.PATTERN_ANCHOR_VALUE.exec(values.value))) {
+          isRef = matches.ref;
+          values.value = matches.value;
+        }
+        if (!(values.value != null) || '' === Utils.trim(values.value, ' ') || Utils.ltrim(values.value, ' ').indexOf('#') === 0) {
+          if (this.currentLineNb < this.lines.length - 1 && !this.isNextLineUnIndentedCollection()) {
+            c = this.getRealCurrentLineNb() + 1;
+            parser = new Parser(c);
+            parser.refs = this.refs;
+            data.push(parser.parse(this.getNextEmbedBlock(null, true), exceptionOnInvalidType, objectDecoder));
+          } else {
+            data.push(null);
+          }
+        } else {
+          if (((ref = values.leadspaces) != null ? ref.length : void 0) && (matches = this.PATTERN_COMPACT_NOTATION.exec(values.value))) {
+            c = this.getRealCurrentLineNb();
+            parser = new Parser(c);
+            parser.refs = this.refs;
+            block = values.value;
+            indent = this.getCurrentLineIndentation();
+            if (this.isNextLineIndented(false)) {
+              block += "\n" + this.getNextEmbedBlock(indent + values.leadspaces.length + 1, true);
+            }
+            data.push(parser.parse(block, exceptionOnInvalidType, objectDecoder));
+          } else {
+            data.push(this.parseValue(values.value, exceptionOnInvalidType, objectDecoder));
+          }
+        }
+      } else if ((values = this.PATTERN_MAPPING_ITEM.exec(this.currentLine)) && values.key.indexOf(' #') === -1) {
+        if (this.CONTEXT_SEQUENCE === context) {
+          throw new ParseException('You cannot define a mapping item when in a sequence');
+        }
+        context = this.CONTEXT_MAPPING;
+        if (data == null) {
+          data = {};
+        }
+        Inline.configure(exceptionOnInvalidType, objectDecoder);
+        try {
+          key = Inline.parseScalar(values.key);
+        } catch (error) {
+          e = error;
+          e.parsedLine = this.getRealCurrentLineNb() + 1;
+          e.snippet = this.currentLine;
+          throw e;
+        }
+        if ('<<' === key) {
+          mergeNode = true;
+          allowOverwrite = true;
+          if (((ref1 = values.value) != null ? ref1.indexOf('*') : void 0) === 0) {
+            refName = values.value.slice(1);
+            if (this.refs[refName] == null) {
+              throw new ParseException('Reference "' + refName + '" does not exist.', this.getRealCurrentLineNb() + 1, this.currentLine);
+            }
+            refValue = this.refs[refName];
+            if (typeof refValue !== 'object') {
+              throw new ParseException('YAML merge keys used with a scalar value instead of an object.', this.getRealCurrentLineNb() + 1, this.currentLine);
+            }
+            if (refValue instanceof Array) {
+              for (i = j = 0, len = refValue.length; j < len; i = ++j) {
+                value = refValue[i];
+                if (data[name = String(i)] == null) {
+                  data[name] = value;
+                }
+              }
+            } else {
+              for (key in refValue) {
+                value = refValue[key];
+                if (data[key] == null) {
+                  data[key] = value;
+                }
+              }
+            }
+          } else {
+            if ((values.value != null) && values.value !== '') {
+              value = values.value;
+            } else {
+              value = this.getNextEmbedBlock();
+            }
+            c = this.getRealCurrentLineNb() + 1;
+            parser = new Parser(c);
+            parser.refs = this.refs;
+            parsed = parser.parse(value, exceptionOnInvalidType);
+            if (typeof parsed !== 'object') {
+              throw new ParseException('YAML merge keys used with a scalar value instead of an object.', this.getRealCurrentLineNb() + 1, this.currentLine);
+            }
+            if (parsed instanceof Array) {
+              for (l = 0, len1 = parsed.length; l < len1; l++) {
+                parsedItem = parsed[l];
+                if (typeof parsedItem !== 'object') {
+                  throw new ParseException('Merge items must be objects.', this.getRealCurrentLineNb() + 1, parsedItem);
+                }
+                if (parsedItem instanceof Array) {
+                  for (i = m = 0, len2 = parsedItem.length; m < len2; i = ++m) {
+                    value = parsedItem[i];
+                    k = String(i);
+                    if (!data.hasOwnProperty(k)) {
+                      data[k] = value;
+                    }
+                  }
+                } else {
+                  for (key in parsedItem) {
+                    value = parsedItem[key];
+                    if (!data.hasOwnProperty(key)) {
+                      data[key] = value;
+                    }
+                  }
+                }
+              }
+            } else {
+              for (key in parsed) {
+                value = parsed[key];
+                if (!data.hasOwnProperty(key)) {
+                  data[key] = value;
+                }
+              }
+            }
+          }
+        } else if ((values.value != null) && (matches = this.PATTERN_ANCHOR_VALUE.exec(values.value))) {
+          isRef = matches.ref;
+          values.value = matches.value;
+        }
+        if (mergeNode) {
+
+        } else if (!(values.value != null) || '' === Utils.trim(values.value, ' ') || Utils.ltrim(values.value, ' ').indexOf('#') === 0) {
+          if (!(this.isNextLineIndented()) && !(this.isNextLineUnIndentedCollection())) {
+            if (allowOverwrite || data[key] === void 0) {
+              data[key] = null;
+            }
+          } else {
+            c = this.getRealCurrentLineNb() + 1;
+            parser = new Parser(c);
+            parser.refs = this.refs;
+            val = parser.parse(this.getNextEmbedBlock(), exceptionOnInvalidType, objectDecoder);
+            if (allowOverwrite || data[key] === void 0) {
+              data[key] = val;
+            }
+          }
+        } else {
+          val = this.parseValue(values.value, exceptionOnInvalidType, objectDecoder);
+          if (allowOverwrite || data[key] === void 0) {
+            data[key] = val;
+          }
+        }
+      } else {
+        lineCount = this.lines.length;
+        if (1 === lineCount || (2 === lineCount && Utils.isEmpty(this.lines[1]))) {
+          try {
+            value = Inline.parse(this.lines[0], exceptionOnInvalidType, objectDecoder);
+          } catch (error1) {
+            e = error1;
+            e.parsedLine = this.getRealCurrentLineNb() + 1;
+            e.snippet = this.currentLine;
+            throw e;
+          }
+          if (typeof value === 'object') {
+            if (value instanceof Array) {
+              first = value[0];
+            } else {
+              for (key in value) {
+                first = value[key];
+                break;
+              }
+            }
+            if (typeof first === 'string' && first.indexOf('*') === 0) {
+              data = [];
+              for (n = 0, len3 = value.length; n < len3; n++) {
+                alias = value[n];
+                data.push(this.refs[alias.slice(1)]);
+              }
+              value = data;
+            }
+          }
+          return value;
+        } else if ((ref2 = Utils.ltrim(value).charAt(0)) === '[' || ref2 === '{') {
+          try {
+            return Inline.parse(value, exceptionOnInvalidType, objectDecoder);
+          } catch (error2) {
+            e = error2;
+            e.parsedLine = this.getRealCurrentLineNb() + 1;
+            e.snippet = this.currentLine;
+            throw e;
+          }
+        }
+        throw new ParseException('Unable to parse.', this.getRealCurrentLineNb() + 1, this.currentLine);
+      }
+      if (isRef) {
+        if (data instanceof Array) {
+          this.refs[isRef] = data[data.length - 1];
+        } else {
+          lastKey = null;
+          for (key in data) {
+            lastKey = key;
+          }
+          this.refs[isRef] = data[lastKey];
+        }
+      }
+    }
+    if (Utils.isEmpty(data)) {
+      return null;
+    } else {
+      return data;
+    }
+  };
+
+  Parser.prototype.getRealCurrentLineNb = function() {
+    return this.currentLineNb + this.offset;
+  };
+
+  Parser.prototype.getCurrentLineIndentation = function() {
+    return this.currentLine.length - Utils.ltrim(this.currentLine, ' ').length;
+  };
+
+  Parser.prototype.getNextEmbedBlock = function(indentation, includeUnindentedCollection) {
+    var data, indent, isItUnindentedCollection, newIndent, removeComments, removeCommentsPattern, unindentedEmbedBlock;
+    if (indentation == null) {
+      indentation = null;
+    }
+    if (includeUnindentedCollection == null) {
+      includeUnindentedCollection = false;
+    }
+    this.moveToNextLine();
+    if (indentation == null) {
+      newIndent = this.getCurrentLineIndentation();
+      unindentedEmbedBlock = this.isStringUnIndentedCollectionItem(this.currentLine);
+      if (!(this.isCurrentLineEmpty()) && 0 === newIndent && !unindentedEmbedBlock) {
+        throw new ParseException('Indentation problem.', this.getRealCurrentLineNb() + 1, this.currentLine);
+      }
+    } else {
+      newIndent = indentation;
+    }
+    data = [this.currentLine.slice(newIndent)];
+    if (!includeUnindentedCollection) {
+      isItUnindentedCollection = this.isStringUnIndentedCollectionItem(this.currentLine);
+    }
+    removeCommentsPattern = this.PATTERN_FOLDED_SCALAR_END;
+    removeComments = !removeCommentsPattern.test(this.currentLine);
+    while (this.moveToNextLine()) {
+      indent = this.getCurrentLineIndentation();
+      if (indent === newIndent) {
+        removeComments = !removeCommentsPattern.test(this.currentLine);
+      }
+      if (removeComments && this.isCurrentLineComment()) {
+        continue;
+      }
+      if (this.isCurrentLineBlank()) {
+        data.push(this.currentLine.slice(newIndent));
+        continue;
+      }
+      if (isItUnindentedCollection && !this.isStringUnIndentedCollectionItem(this.currentLine) && indent === newIndent) {
+        this.moveToPreviousLine();
+        break;
+      }
+      if (indent >= newIndent) {
+        data.push(this.currentLine.slice(newIndent));
+      } else if (Utils.ltrim(this.currentLine).charAt(0) === '#') {
+
+      } else if (0 === indent) {
+        this.moveToPreviousLine();
+        break;
+      } else {
+        throw new ParseException('Indentation problem.', this.getRealCurrentLineNb() + 1, this.currentLine);
+      }
+    }
+    return data.join("\n");
+  };
+
+  Parser.prototype.moveToNextLine = function() {
+    if (this.currentLineNb >= this.lines.length - 1) {
+      return false;
+    }
+    this.currentLine = this.lines[++this.currentLineNb];
+    return true;
+  };
+
+  Parser.prototype.moveToPreviousLine = function() {
+    this.currentLine = this.lines[--this.currentLineNb];
+  };
+
+  Parser.prototype.parseValue = function(value, exceptionOnInvalidType, objectDecoder) {
+    var e, error, foldedIndent, matches, modifiers, pos, ref, ref1, val;
+    if (0 === value.indexOf('*')) {
+      pos = value.indexOf('#');
+      if (pos !== -1) {
+        value = value.substr(1, pos - 2);
+      } else {
+        value = value.slice(1);
+      }
+      if (this.refs[value] === void 0) {
+        throw new ParseException('Reference "' + value + '" does not exist.', this.currentLine);
+      }
+      return this.refs[value];
+    }
+    if (matches = this.PATTERN_FOLDED_SCALAR_ALL.exec(value)) {
+      modifiers = (ref = matches.modifiers) != null ? ref : '';
+      foldedIndent = Math.abs(parseInt(modifiers));
+      if (isNaN(foldedIndent)) {
+        foldedIndent = 0;
+      }
+      val = this.parseFoldedScalar(matches.separator, this.PATTERN_DECIMAL.replace(modifiers, ''), foldedIndent);
+      if (matches.type != null) {
+        Inline.configure(exceptionOnInvalidType, objectDecoder);
+        return Inline.parseScalar(matches.type + ' ' + val);
+      } else {
+        return val;
+      }
+    }
+    if ((ref1 = value.charAt(0)) === '[' || ref1 === '{' || ref1 === '"' || ref1 === "'") {
+      while (true) {
+        try {
+          return Inline.parse(value, exceptionOnInvalidType, objectDecoder);
+        } catch (error) {
+          e = error;
+          if (e instanceof ParseMore && this.moveToNextLine()) {
+            value += "\n" + Utils.trim(this.currentLine, ' ');
+          } else {
+            e.parsedLine = this.getRealCurrentLineNb() + 1;
+            e.snippet = this.currentLine;
+            throw e;
+          }
+        }
+      }
+    } else {
+      if (this.isNextLineIndented()) {
+        value += "\n" + this.getNextEmbedBlock();
+      }
+      return Inline.parse(value, exceptionOnInvalidType, objectDecoder);
+    }
+  };
+
+  Parser.prototype.parseFoldedScalar = function(separator, indicator, indentation) {
+    var isCurrentLineBlank, j, len, line, matches, newText, notEOF, pattern, ref, text;
+    if (indicator == null) {
+      indicator = '';
+    }
+    if (indentation == null) {
+      indentation = 0;
+    }
+    notEOF = this.moveToNextLine();
+    if (!notEOF) {
+      return '';
+    }
+    isCurrentLineBlank = this.isCurrentLineBlank();
+    text = '';
+    while (notEOF && isCurrentLineBlank) {
+      if (notEOF = this.moveToNextLine()) {
+        text += "\n";
+        isCurrentLineBlank = this.isCurrentLineBlank();
+      }
+    }
+    if (0 === indentation) {
+      if (matches = this.PATTERN_INDENT_SPACES.exec(this.currentLine)) {
+        indentation = matches[0].length;
+      }
+    }
+    if (indentation > 0) {
+      pattern = this.PATTERN_FOLDED_SCALAR_BY_INDENTATION[indentation];
+      if (pattern == null) {
+        pattern = new Pattern('^ {' + indentation + '}(.*)$');
+        Parser.prototype.PATTERN_FOLDED_SCALAR_BY_INDENTATION[indentation] = pattern;
+      }
+      while (notEOF && (isCurrentLineBlank || (matches = pattern.exec(this.currentLine)))) {
+        if (isCurrentLineBlank) {
+          text += this.currentLine.slice(indentation);
+        } else {
+          text += matches[1];
+        }
+        if (notEOF = this.moveToNextLine()) {
+          text += "\n";
+          isCurrentLineBlank = this.isCurrentLineBlank();
+        }
+      }
+    } else if (notEOF) {
+      text += "\n";
+    }
+    if (notEOF) {
+      this.moveToPreviousLine();
+    }
+    if ('>' === separator) {
+      newText = '';
+      ref = text.split("\n");
+      for (j = 0, len = ref.length; j < len; j++) {
+        line = ref[j];
+        if (line.length === 0 || line.charAt(0) === ' ') {
+          newText = Utils.rtrim(newText, ' ') + line + "\n";
+        } else {
+          newText += line + ' ';
+        }
+      }
+      text = newText;
+    }
+    if ('+' !== indicator) {
+      text = Utils.rtrim(text);
+    }
+    if ('' === indicator) {
+      text = this.PATTERN_TRAILING_LINES.replace(text, "\n");
+    } else if ('-' === indicator) {
+      text = this.PATTERN_TRAILING_LINES.replace(text, '');
+    }
+    return text;
+  };
+
+  Parser.prototype.isNextLineIndented = function(ignoreComments) {
+    var EOF, currentIndentation, ret;
+    if (ignoreComments == null) {
+      ignoreComments = true;
+    }
+    currentIndentation = this.getCurrentLineIndentation();
+    EOF = !this.moveToNextLine();
+    if (ignoreComments) {
+      while (!EOF && this.isCurrentLineEmpty()) {
+        EOF = !this.moveToNextLine();
+      }
+    } else {
+      while (!EOF && this.isCurrentLineBlank()) {
+        EOF = !this.moveToNextLine();
+      }
+    }
+    if (EOF) {
+      return false;
+    }
+    ret = false;
+    if (this.getCurrentLineIndentation() > currentIndentation) {
+      ret = true;
+    }
+    this.moveToPreviousLine();
+    return ret;
+  };
+
+  Parser.prototype.isCurrentLineEmpty = function() {
+    var trimmedLine;
+    trimmedLine = Utils.trim(this.currentLine, ' ');
+    return trimmedLine.length === 0 || trimmedLine.charAt(0) === '#';
+  };
+
+  Parser.prototype.isCurrentLineBlank = function() {
+    return '' === Utils.trim(this.currentLine, ' ');
+  };
+
+  Parser.prototype.isCurrentLineComment = function() {
+    var ltrimmedLine;
+    ltrimmedLine = Utils.ltrim(this.currentLine, ' ');
+    return ltrimmedLine.charAt(0) === '#';
+  };
+
+  Parser.prototype.cleanup = function(value) {
+    var count, i, indent, j, l, len, len1, line, lines, ref, ref1, ref2, smallestIndent, trimmedValue;
+    if (value.indexOf("\r") !== -1) {
+      value = value.split("\r\n").join("\n").split("\r").join("\n");
+    }
+    count = 0;
+    ref = this.PATTERN_YAML_HEADER.replaceAll(value, ''), value = ref[0], count = ref[1];
+    this.offset += count;
+    ref1 = this.PATTERN_LEADING_COMMENTS.replaceAll(value, '', 1), trimmedValue = ref1[0], count = ref1[1];
+    if (count === 1) {
+      this.offset += Utils.subStrCount(value, "\n") - Utils.subStrCount(trimmedValue, "\n");
+      value = trimmedValue;
+    }
+    ref2 = this.PATTERN_DOCUMENT_MARKER_START.replaceAll(value, '', 1), trimmedValue = ref2[0], count = ref2[1];
+    if (count === 1) {
+      this.offset += Utils.subStrCount(value, "\n") - Utils.subStrCount(trimmedValue, "\n");
+      value = trimmedValue;
+      value = this.PATTERN_DOCUMENT_MARKER_END.replace(value, '');
+    }
+    lines = value.split("\n");
+    smallestIndent = -1;
+    for (j = 0, len = lines.length; j < len; j++) {
+      line = lines[j];
+      if (Utils.trim(line, ' ').length === 0) {
+        continue;
+      }
+      indent = line.length - Utils.ltrim(line).length;
+      if (smallestIndent === -1 || indent < smallestIndent) {
+        smallestIndent = indent;
+      }
+    }
+    if (smallestIndent > 0) {
+      for (i = l = 0, len1 = lines.length; l < len1; i = ++l) {
+        line = lines[i];
+        lines[i] = line.slice(smallestIndent);
+      }
+      value = lines.join("\n");
+    }
+    return value;
+  };
+
+  Parser.prototype.isNextLineUnIndentedCollection = function(currentIndentation) {
+    var notEOF, ret;
+    if (currentIndentation == null) {
+      currentIndentation = null;
+    }
+    if (currentIndentation == null) {
+      currentIndentation = this.getCurrentLineIndentation();
+    }
+    notEOF = this.moveToNextLine();
+    while (notEOF && this.isCurrentLineEmpty()) {
+      notEOF = this.moveToNextLine();
+    }
+    if (false === notEOF) {
+      return false;
+    }
+    ret = false;
+    if (this.getCurrentLineIndentation() === currentIndentation && this.isStringUnIndentedCollectionItem(this.currentLine)) {
+      ret = true;
+    }
+    this.moveToPreviousLine();
+    return ret;
+  };
+
+  Parser.prototype.isStringUnIndentedCollectionItem = function() {
+    return this.currentLine === '-' || this.currentLine.slice(0, 2) === '- ';
+  };
+
+  return Parser;
+
+})();
+
+module.exports = Parser;
+
+
+},{"./Exception/ParseException":4,"./Exception/ParseMore":5,"./Inline":6,"./Pattern":8,"./Utils":10}],8:[function(require,module,exports){
+var Pattern;
+
+Pattern = (function() {
+  Pattern.prototype.regex = null;
+
+  Pattern.prototype.rawRegex = null;
+
+  Pattern.prototype.cleanedRegex = null;
+
+  Pattern.prototype.mapping = null;
+
+  function Pattern(rawRegex, modifiers) {
+    var _char, capturingBracketNumber, cleanedRegex, i, len, mapping, name, part, subChar;
+    if (modifiers == null) {
+      modifiers = '';
+    }
+    cleanedRegex = '';
+    len = rawRegex.length;
+    mapping = null;
+    capturingBracketNumber = 0;
+    i = 0;
+    while (i < len) {
+      _char = rawRegex.charAt(i);
+      if (_char === '\\') {
+        cleanedRegex += rawRegex.slice(i, +(i + 1) + 1 || 9e9);
+        i++;
+      } else if (_char === '(') {
+        if (i < len - 2) {
+          part = rawRegex.slice(i, +(i + 2) + 1 || 9e9);
+          if (part === '(?:') {
+            i += 2;
+            cleanedRegex += part;
+          } else if (part === '(?<') {
+            capturingBracketNumber++;
+            i += 2;
+            name = '';
+            while (i + 1 < len) {
+              subChar = rawRegex.charAt(i + 1);
+              if (subChar === '>') {
+                cleanedRegex += '(';
+                i++;
+                if (name.length > 0) {
+                  if (mapping == null) {
+                    mapping = {};
+                  }
+                  mapping[name] = capturingBracketNumber;
+                }
+                break;
+              } else {
+                name += subChar;
+              }
+              i++;
+            }
+          } else {
+            cleanedRegex += _char;
+            capturingBracketNumber++;
+          }
+        } else {
+          cleanedRegex += _char;
+        }
+      } else {
+        cleanedRegex += _char;
+      }
+      i++;
+    }
+    this.rawRegex = rawRegex;
+    this.cleanedRegex = cleanedRegex;
+    this.regex = new RegExp(this.cleanedRegex, 'g' + modifiers.replace('g', ''));
+    this.mapping = mapping;
+  }
+
+  Pattern.prototype.exec = function(str) {
+    var index, matches, name, ref;
+    this.regex.lastIndex = 0;
+    matches = this.regex.exec(str);
+    if (matches == null) {
+      return null;
+    }
+    if (this.mapping != null) {
+      ref = this.mapping;
+      for (name in ref) {
+        index = ref[name];
+        matches[name] = matches[index];
+      }
+    }
+    return matches;
+  };
+
+  Pattern.prototype.test = function(str) {
+    this.regex.lastIndex = 0;
+    return this.regex.test(str);
+  };
+
+  Pattern.prototype.replace = function(str, replacement) {
+    this.regex.lastIndex = 0;
+    return str.replace(this.regex, replacement);
+  };
+
+  Pattern.prototype.replaceAll = function(str, replacement, limit) {
+    var count;
+    if (limit == null) {
+      limit = 0;
+    }
+    this.regex.lastIndex = 0;
+    count = 0;
+    while (this.regex.test(str) && (limit === 0 || count < limit)) {
+      this.regex.lastIndex = 0;
+      str = str.replace(this.regex, replacement);
+      count++;
+    }
+    return [str, count];
+  };
+
+  return Pattern;
+
+})();
+
+module.exports = Pattern;
+
+
+},{}],9:[function(require,module,exports){
+var Pattern, Unescaper, Utils;
+
+Utils = require('./Utils');
+
+Pattern = require('./Pattern');
+
+Unescaper = (function() {
+  function Unescaper() {}
+
+  Unescaper.PATTERN_ESCAPED_CHARACTER = new Pattern('\\\\([0abt\tnvfre "\\/\\\\N_LP]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})');
+
+  Unescaper.unescapeSingleQuotedString = function(value) {
+    return value.replace(/\'\'/g, '\'');
+  };
+
+  Unescaper.unescapeDoubleQuotedString = function(value) {
+    if (this._unescapeCallback == null) {
+      this._unescapeCallback = (function(_this) {
+        return function(str) {
+          return _this.unescapeCharacter(str);
+        };
+      })(this);
+    }
+    return this.PATTERN_ESCAPED_CHARACTER.replace(value, this._unescapeCallback);
+  };
+
+  Unescaper.unescapeCharacter = function(value) {
+    var ch;
+    ch = String.fromCharCode;
+    switch (value.charAt(1)) {
+      case '0':
+        return ch(0);
+      case 'a':
+        return ch(7);
+      case 'b':
+        return ch(8);
+      case 't':
+        return "\t";
+      case "\t":
+        return "\t";
+      case 'n':
+        return "\n";
+      case 'v':
+        return ch(11);
+      case 'f':
+        return ch(12);
+      case 'r':
+        return ch(13);
+      case 'e':
+        return ch(27);
+      case ' ':
+        return ' ';
+      case '"':
+        return '"';
+      case '/':
+        return '/';
+      case '\\':
+        return '\\';
+      case 'N':
+        return ch(0x0085);
+      case '_':
+        return ch(0x00A0);
+      case 'L':
+        return ch(0x2028);
+      case 'P':
+        return ch(0x2029);
+      case 'x':
+        return Utils.utf8chr(Utils.hexDec(value.substr(2, 2)));
+      case 'u':
+        return Utils.utf8chr(Utils.hexDec(value.substr(2, 4)));
+      case 'U':
+        return Utils.utf8chr(Utils.hexDec(value.substr(2, 8)));
+      default:
+        return '';
+    }
+  };
+
+  return Unescaper;
+
+})();
+
+module.exports = Unescaper;
+
+
+},{"./Pattern":8,"./Utils":10}],10:[function(require,module,exports){
+var Pattern, Utils,
+  hasProp = {}.hasOwnProperty;
+
+Pattern = require('./Pattern');
+
+Utils = (function() {
+  function Utils() {}
+
+  Utils.REGEX_LEFT_TRIM_BY_CHAR = {};
+
+  Utils.REGEX_RIGHT_TRIM_BY_CHAR = {};
+
+  Utils.REGEX_SPACES = /\s+/g;
+
+  Utils.REGEX_DIGITS = /^\d+$/;
+
+  Utils.REGEX_OCTAL = /[^0-7]/gi;
+
+  Utils.REGEX_HEXADECIMAL = /[^a-f0-9]/gi;
+
+  Utils.PATTERN_DATE = new Pattern('^' + '(?<year>[0-9][0-9][0-9][0-9])' + '-(?<month>[0-9][0-9]?)' + '-(?<day>[0-9][0-9]?)' + '(?:(?:[Tt]|[ \t]+)' + '(?<hour>[0-9][0-9]?)' + ':(?<minute>[0-9][0-9])' + ':(?<second>[0-9][0-9])' + '(?:\.(?<fraction>[0-9]*))?' + '(?:[ \t]*(?<tz>Z|(?<tz_sign>[-+])(?<tz_hour>[0-9][0-9]?)' + '(?::(?<tz_minute>[0-9][0-9]))?))?)?' + '$', 'i');
+
+  Utils.LOCAL_TIMEZONE_OFFSET = new Date().getTimezoneOffset() * 60 * 1000;
+
+  Utils.trim = function(str, _char) {
+    var regexLeft, regexRight;
+    if (_char == null) {
+      _char = '\\s';
+    }
+    regexLeft = this.REGEX_LEFT_TRIM_BY_CHAR[_char];
+    if (regexLeft == null) {
+      this.REGEX_LEFT_TRIM_BY_CHAR[_char] = regexLeft = new RegExp('^' + _char + '' + _char + '*');
+    }
+    regexLeft.lastIndex = 0;
+    regexRight = this.REGEX_RIGHT_TRIM_BY_CHAR[_char];
+    if (regexRight == null) {
+      this.REGEX_RIGHT_TRIM_BY_CHAR[_char] = regexRight = new RegExp(_char + '' + _char + '*$');
+    }
+    regexRight.lastIndex = 0;
+    return str.replace(regexLeft, '').replace(regexRight, '');
+  };
+
+  Utils.ltrim = function(str, _char) {
+    var regexLeft;
+    if (_char == null) {
+      _char = '\\s';
+    }
+    regexLeft = this.REGEX_LEFT_TRIM_BY_CHAR[_char];
+    if (regexLeft == null) {
+      this.REGEX_LEFT_TRIM_BY_CHAR[_char] = regexLeft = new RegExp('^' + _char + '' + _char + '*');
+    }
+    regexLeft.lastIndex = 0;
+    return str.replace(regexLeft, '');
+  };
+
+  Utils.rtrim = function(str, _char) {
+    var regexRight;
+    if (_char == null) {
+      _char = '\\s';
+    }
+    regexRight = this.REGEX_RIGHT_TRIM_BY_CHAR[_char];
+    if (regexRight == null) {
+      this.REGEX_RIGHT_TRIM_BY_CHAR[_char] = regexRight = new RegExp(_char + '' + _char + '*$');
+    }
+    regexRight.lastIndex = 0;
+    return str.replace(regexRight, '');
+  };
+
+  Utils.isEmpty = function(value) {
+    return !value || value === '' || value === '0' || (value instanceof Array && value.length === 0) || this.isEmptyObject(value);
+  };
+
+  Utils.isEmptyObject = function(value) {
+    var k;
+    return value instanceof Object && ((function() {
+      var results;
+      results = [];
+      for (k in value) {
+        if (!hasProp.call(value, k)) continue;
+        results.push(k);
+      }
+      return results;
+    })()).length === 0;
+  };
+
+  Utils.subStrCount = function(string, subString, start, length) {
+    var c, i, j, len, ref, sublen;
+    c = 0;
+    string = '' + string;
+    subString = '' + subString;
+    if (start != null) {
+      string = string.slice(start);
+    }
+    if (length != null) {
+      string = string.slice(0, length);
+    }
+    len = string.length;
+    sublen = subString.length;
+    for (i = j = 0, ref = len; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
+      if (subString === string.slice(i, sublen)) {
+        c++;
+        i += sublen - 1;
+      }
+    }
+    return c;
+  };
+
+  Utils.isDigits = function(input) {
+    this.REGEX_DIGITS.lastIndex = 0;
+    return this.REGEX_DIGITS.test(input);
+  };
+
+  Utils.octDec = function(input) {
+    this.REGEX_OCTAL.lastIndex = 0;
+    return parseInt((input + '').replace(this.REGEX_OCTAL, ''), 8);
+  };
+
+  Utils.hexDec = function(input) {
+    this.REGEX_HEXADECIMAL.lastIndex = 0;
+    input = this.trim(input);
+    if ((input + '').slice(0, 2) === '0x') {
+      input = (input + '').slice(2);
+    }
+    return parseInt((input + '').replace(this.REGEX_HEXADECIMAL, ''), 16);
+  };
+
+  Utils.utf8chr = function(c) {
+    var ch;
+    ch = String.fromCharCode;
+    if (0x80 > (c %= 0x200000)) {
+      return ch(c);
+    }
+    if (0x800 > c) {
+      return ch(0xC0 | c >> 6) + ch(0x80 | c & 0x3F);
+    }
+    if (0x10000 > c) {
+      return ch(0xE0 | c >> 12) + ch(0x80 | c >> 6 & 0x3F) + ch(0x80 | c & 0x3F);
+    }
+    return ch(0xF0 | c >> 18) + ch(0x80 | c >> 12 & 0x3F) + ch(0x80 | c >> 6 & 0x3F) + ch(0x80 | c & 0x3F);
+  };
+
+  Utils.parseBoolean = function(input, strict) {
+    var lowerInput;
+    if (strict == null) {
+      strict = true;
+    }
+    if (typeof input === 'string') {
+      lowerInput = input.toLowerCase();
+      if (!strict) {
+        if (lowerInput === 'no') {
+          return false;
+        }
+      }
+      if (lowerInput === '0') {
+        return false;
+      }
+      if (lowerInput === 'false') {
+        return false;
+      }
+      if (lowerInput === '') {
+        return false;
+      }
+      return true;
+    }
+    return !!input;
+  };
+
+  Utils.isNumeric = function(input) {
+    this.REGEX_SPACES.lastIndex = 0;
+    return typeof input === 'number' || typeof input === 'string' && !isNaN(input) && input.replace(this.REGEX_SPACES, '') !== '';
+  };
+
+  Utils.stringToDate = function(str) {
+    var date, day, fraction, hour, info, minute, month, second, tz_hour, tz_minute, tz_offset, year;
+    if (!(str != null ? str.length : void 0)) {
+      return null;
+    }
+    info = this.PATTERN_DATE.exec(str);
+    if (!info) {
+      return null;
+    }
+    year = parseInt(info.year, 10);
+    month = parseInt(info.month, 10) - 1;
+    day = parseInt(info.day, 10);
+    if (info.hour == null) {
+      date = new Date(Date.UTC(year, month, day));
+      return date;
+    }
+    hour = parseInt(info.hour, 10);
+    minute = parseInt(info.minute, 10);
+    second = parseInt(info.second, 10);
+    if (info.fraction != null) {
+      fraction = info.fraction.slice(0, 3);
+      while (fraction.length < 3) {
+        fraction += '0';
+      }
+      fraction = parseInt(fraction, 10);
+    } else {
+      fraction = 0;
+    }
+    if (info.tz != null) {
+      tz_hour = parseInt(info.tz_hour, 10);
+      if (info.tz_minute != null) {
+        tz_minute = parseInt(info.tz_minute, 10);
+      } else {
+        tz_minute = 0;
+      }
+      tz_offset = (tz_hour * 60 + tz_minute) * 60000;
+      if ('-' === info.tz_sign) {
+        tz_offset *= -1;
+      }
+    }
+    date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
+    if (tz_offset) {
+      date.setTime(date.getTime() - tz_offset);
+    }
+    return date;
+  };
+
+  Utils.strRepeat = function(str, number) {
+    var i, res;
+    res = '';
+    i = 0;
+    while (i < number) {
+      res += str;
+      i++;
+    }
+    return res;
+  };
+
+  Utils.getStringFromFile = function(path, callback) {
+    var data, fs, j, len1, name, ref, req, xhr;
+    if (callback == null) {
+      callback = null;
+    }
+    xhr = null;
+    if (typeof window !== "undefined" && window !== null) {
+      if (window.XMLHttpRequest) {
+        xhr = new XMLHttpRequest();
+      } else if (window.ActiveXObject) {
+        ref = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
+        for (j = 0, len1 = ref.length; j < len1; j++) {
+          name = ref[j];
+          try {
+            xhr = new ActiveXObject(name);
+          } catch (undefined) {}
+        }
+      }
+    }
+    if (xhr != null) {
+      if (callback != null) {
+        xhr.onreadystatechange = function() {
+          if (xhr.readyState === 4) {
+            if (xhr.status === 200 || xhr.status === 0) {
+              return callback(xhr.responseText);
+            } else {
+              return callback(null);
+            }
+          }
+        };
+        xhr.open('GET', path, true);
+        return xhr.send(null);
+      } else {
+        xhr.open('GET', path, false);
+        xhr.send(null);
+        if (xhr.status === 200 || xhr.status === 0) {
+          return xhr.responseText;
+        }
+        return null;
+      }
+    } else {
+      req = require;
+      fs = req('fs');
+      if (callback != null) {
+        return fs.readFile(path, function(err, data) {
+          if (err) {
+            return callback(null);
+          } else {
+            return callback(String(data));
+          }
+        });
+      } else {
+        data = fs.readFileSync(path);
+        if (data != null) {
+          return String(data);
+        }
+        return null;
+      }
+    }
+  };
+
+  return Utils;
+
+})();
+
+module.exports = Utils;
+
+
+},{"./Pattern":8}],11:[function(require,module,exports){
+var Dumper, Parser, Utils, Yaml;
+
+Parser = require('./Parser');
+
+Dumper = require('./Dumper');
+
+Utils = require('./Utils');
+
+Yaml = (function() {
+  function Yaml() {}
+
+  Yaml.parse = function(input, exceptionOnInvalidType, objectDecoder) {
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectDecoder == null) {
+      objectDecoder = null;
+    }
+    return new Parser().parse(input, exceptionOnInvalidType, objectDecoder);
+  };
+
+  Yaml.parseFile = function(path, callback, exceptionOnInvalidType, objectDecoder) {
+    var input;
+    if (callback == null) {
+      callback = null;
+    }
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectDecoder == null) {
+      objectDecoder = null;
+    }
+    if (callback != null) {
+      return Utils.getStringFromFile(path, (function(_this) {
+        return function(input) {
+          var result;
+          result = null;
+          if (input != null) {
+            result = _this.parse(input, exceptionOnInvalidType, objectDecoder);
+          }
+          callback(result);
+        };
+      })(this));
+    } else {
+      input = Utils.getStringFromFile(path);
+      if (input != null) {
+        return this.parse(input, exceptionOnInvalidType, objectDecoder);
+      }
+      return null;
+    }
+  };
+
+  Yaml.dump = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
+    var yaml;
+    if (inline == null) {
+      inline = 2;
+    }
+    if (indent == null) {
+      indent = 4;
+    }
+    if (exceptionOnInvalidType == null) {
+      exceptionOnInvalidType = false;
+    }
+    if (objectEncoder == null) {
+      objectEncoder = null;
+    }
+    yaml = new Dumper();
+    yaml.indentation = indent;
+    return yaml.dump(input, inline, 0, exceptionOnInvalidType, objectEncoder);
+  };
+
+  Yaml.stringify = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
+    return this.dump(input, inline, indent, exceptionOnInvalidType, objectEncoder);
+  };
+
+  Yaml.load = function(path, callback, exceptionOnInvalidType, objectDecoder) {
+    return this.parseFile(path, callback, exceptionOnInvalidType, objectDecoder);
+  };
+
+  return Yaml;
+
+})();
+
+if (typeof window !== "undefined" && window !== null) {
+  window.YAML = Yaml;
+}
+
+if (typeof window === "undefined" || window === null) {
+  this.YAML = Yaml;
+}
+
+module.exports = Yaml;
+
+
+},{"./Dumper":1,"./Parser":7,"./Utils":10}]},{},[11]);