diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..5965a5a7 --- /dev/null +++ b/404.html @@ -0,0 +1,113 @@ + + + + + + + + Transitous + + + + + + + + + + + + + + +
+ + +
+ +
+
+
    +
  • +
  • +
  • +
+
+
+
+
+ + +

404

+ +

Page not found

+ + +
+
+ +
+
+ +
+ +
+ +
+ + + + + +
+ + + + + + + + + diff --git a/css/fonts/Roboto-Slab-Bold.woff b/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 00000000..6cb60000 Binary files /dev/null and b/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/css/fonts/Roboto-Slab-Bold.woff2 b/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 00000000..7059e231 Binary files /dev/null and b/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/css/fonts/Roboto-Slab-Regular.woff b/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 00000000..f815f63f Binary files /dev/null and b/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/css/fonts/Roboto-Slab-Regular.woff2 b/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 00000000..f2c76e5b Binary files /dev/null and b/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/css/fonts/fontawesome-webfont.eot b/css/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/css/fonts/fontawesome-webfont.eot differ diff --git a/css/fonts/fontawesome-webfont.svg b/css/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e --- /dev/null +++ b/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/fonts/fontawesome-webfont.ttf b/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/css/fonts/fontawesome-webfont.ttf differ diff --git a/css/fonts/fontawesome-webfont.woff b/css/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/css/fonts/fontawesome-webfont.woff differ diff --git a/css/fonts/fontawesome-webfont.woff2 b/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/css/fonts/fontawesome-webfont.woff2 differ diff --git a/css/fonts/lato-bold-italic.woff b/css/fonts/lato-bold-italic.woff new file mode 100644 index 00000000..88ad05b9 Binary files /dev/null and b/css/fonts/lato-bold-italic.woff differ diff --git a/css/fonts/lato-bold-italic.woff2 b/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 00000000..c4e3d804 Binary files /dev/null and b/css/fonts/lato-bold-italic.woff2 differ diff --git a/css/fonts/lato-bold.woff b/css/fonts/lato-bold.woff new file mode 100644 index 00000000..c6dff51f Binary files /dev/null and b/css/fonts/lato-bold.woff differ diff --git a/css/fonts/lato-bold.woff2 b/css/fonts/lato-bold.woff2 new file mode 100644 index 00000000..bb195043 Binary files /dev/null and b/css/fonts/lato-bold.woff2 differ diff --git a/css/fonts/lato-normal-italic.woff b/css/fonts/lato-normal-italic.woff new file mode 100644 index 00000000..76114bc0 Binary files /dev/null and b/css/fonts/lato-normal-italic.woff differ diff --git a/css/fonts/lato-normal-italic.woff2 b/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 00000000..3404f37e Binary files /dev/null and b/css/fonts/lato-normal-italic.woff2 differ diff --git a/css/fonts/lato-normal.woff b/css/fonts/lato-normal.woff new file mode 100644 index 00000000..ae1307ff Binary files /dev/null and b/css/fonts/lato-normal.woff differ diff --git a/css/fonts/lato-normal.woff2 b/css/fonts/lato-normal.woff2 new file mode 100644 index 00000000..3bf98433 Binary files /dev/null and b/css/fonts/lato-normal.woff2 differ diff --git a/css/theme.css b/css/theme.css new file mode 100644 index 00000000..ad773009 --- /dev/null +++ b/css/theme.css @@ -0,0 +1,13 @@ +/* + * This file is copied from the upstream ReadTheDocs Sphinx + * theme. To aid upgradability this file should *not* be edited. + * modifications we need should be included in theme_extra.css. + * + * https://github.com/readthedocs/sphinx_rtd_theme + */ + + /* sphinx_rtd_theme version 1.2.0 | MIT license */ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.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}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} diff --git a/css/theme_extra.css b/css/theme_extra.css new file mode 100644 index 00000000..9f4b063c --- /dev/null +++ b/css/theme_extra.css @@ -0,0 +1,191 @@ +/* + * Wrap inline code samples otherwise they shoot of the side and + * can't be read at all. + * + * https://github.com/mkdocs/mkdocs/issues/313 + * https://github.com/mkdocs/mkdocs/issues/233 + * https://github.com/mkdocs/mkdocs/issues/834 + */ +.rst-content code { + white-space: pre-wrap; + word-wrap: break-word; + padding: 2px 5px; +} + +/** + * Make code blocks display as blocks and give them the appropriate + * font size and padding. + * + * https://github.com/mkdocs/mkdocs/issues/855 + * https://github.com/mkdocs/mkdocs/issues/834 + * https://github.com/mkdocs/mkdocs/issues/233 + */ +.rst-content pre code { + white-space: pre; + word-wrap: normal; + display: block; + padding: 12px; + font-size: 12px; +} + +/** + * Fix code colors + * + * https://github.com/mkdocs/mkdocs/issues/2027 + */ +.rst-content code { + color: #E74C3C; +} + +.rst-content pre code { + color: #000; + background: #f8f8f8; +} + +/* + * Fix link colors when the link text is inline code. + * + * https://github.com/mkdocs/mkdocs/issues/718 + */ +a code { + color: #2980B9; +} +a:hover code { + color: #3091d1; +} +a:visited code { + color: #9B59B6; +} + +/* + * The CSS classes from highlight.js seem to clash with the + * ReadTheDocs theme causing some code to be incorrectly made + * bold and italic. + * + * https://github.com/mkdocs/mkdocs/issues/411 + */ +pre .cs, pre .c { + font-weight: inherit; + font-style: inherit; +} + +/* + * Fix some issues with the theme and non-highlighted code + * samples. Without and highlighting styles attached the + * formatting is broken. + * + * https://github.com/mkdocs/mkdocs/issues/319 + */ +.rst-content .no-highlight { + display: block; + padding: 0.5em; + color: #333; +} + + +/* + * Additions specific to the search functionality provided by MkDocs + */ + +.search-results { + margin-top: 23px; +} + +.search-results article { + border-top: 1px solid #E1E4E5; + padding-top: 24px; +} + +.search-results article:first-child { + border-top: none; +} + +form .search-query { + width: 100%; + border-radius: 50px; + padding: 6px 12px; /* csslint allow: box-model */ + border-color: #D1D4D5; +} + +/* + * Improve inline code blocks within admonitions. + * + * https://github.com/mkdocs/mkdocs/issues/656 + */ + .rst-content .admonition code { + color: #404040; + border: 1px solid #c7c9cb; + border: 1px solid rgba(0, 0, 0, 0.2); + background: #f8fbfd; + background: rgba(255, 255, 255, 0.7); +} + +/* + * Account for wide tables which go off the side. + * Override borders to avoid weirdness on narrow tables. + * + * https://github.com/mkdocs/mkdocs/issues/834 + * https://github.com/mkdocs/mkdocs/pull/1034 + */ +.rst-content .section .docutils { + width: 100%; + overflow: auto; + display: block; + border: none; +} + +td, th { + border: 1px solid #e1e4e5 !important; /* csslint allow: important */ + border-collapse: collapse; +} + +/* + * Without the following amendments, the navigation in the theme will be + * slightly cut off. This is due to the fact that the .wy-nav-side has a + * padding-bottom of 2em, which must not necessarily align with the font-size of + * 90 % on the .rst-current-version container, combined with the padding of 12px + * above and below. These amendments fix this in two steps: First, make sure the + * .rst-current-version container has a fixed height of 40px, achieved using + * line-height, and then applying a padding-bottom of 40px to this container. In + * a second step, the items within that container are re-aligned using flexbox. + * + * https://github.com/mkdocs/mkdocs/issues/2012 + */ + .wy-nav-side { + padding-bottom: 40px; +} + +/* + * The second step of above amendment: Here we make sure the items are aligned + * correctly within the .rst-current-version container. Using flexbox, we + * achieve it in such a way that it will look like the following: + * + * [No repo_name] + * Next >> // On the first page + * << Previous Next >> // On all subsequent pages + * + * [With repo_name] + * Next >> // On the first page + * << Previous Next >> // On all subsequent pages + * + * https://github.com/mkdocs/mkdocs/issues/2012 + */ +.rst-versions .rst-current-version { + padding: 0 12px; + display: flex; + font-size: initial; + justify-content: space-between; + align-items: center; + line-height: 40px; +} + +/* + * Please note that this amendment also involves removing certain inline-styles + * from the file ./mkdocs/themes/readthedocs/versions.html. + * + * https://github.com/mkdocs/mkdocs/issues/2012 + */ +.rst-current-version span { + flex: 1; + text-align: center; +} diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 00000000..e85006a3 Binary files /dev/null and b/img/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..5f98cee5 --- /dev/null +++ b/index.html @@ -0,0 +1,235 @@ + + + + + + + + Transitous + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+
+
+ + + +

Transitous

+

Free and open public transport routing.

+

Goal

+

A community-run provider-neutral international public transport routing service.

+

Using openly available GTFS/GTFS-RT/etc. feeds and FOSS routing engine we want to operate a +routing service that:

+
    +
  • focuses on the interest of the user rather than the public transport operators
  • +
  • is free to use
  • +
  • values user privacy
  • +
  • does not stop at borders
  • +
  • aims at crowd-sourced maintenance of data feeds in the spirit of FOSS
  • +
+

Contact

+ +

Adding a region

+

Transitous data sources are divided by region, so they can be continuously tested and verified by locals.

+

A region file in the feeds directory has a maintainers attribute, which contains a list of people responsible for keeping the feeds for the region up to date.

+
{
+    "maintainers": [ ... ],
+    "sources": [ ... ]
+}
+
+

A person is represented like this:

+
{
+    "name": "< name of the maintainer >",
+    "github": "< github username of the maintainer >"
+}
+
+

The main attribute of a region is sources. It contains a list of feeds that should be fetched.

+

Each source can either be of type "transitland-atlas" or "http". +A transitland-atlas source is a feed from Transitland, identified by its Onestop ID.

+
{
+    "name": "<name to be used for the output filename, should not contain spaces>",
+    "type": "transitland-atlas",
+    "transitland-atlas-id": "<onestop id>"
+}
+
+

If the feed is not known in Transitland, a http source can be used instead.

+
{
+    "name": "<name to be used for the output filename>",
+    "type": "http",
+    "url": "https://<url of GTFS file>",
+    "license": {
+        "spdx-identifier": "<license identifier from https://spdx.org/licenses/ if known>",
+        "url": "< url as source for the license if available >"
+    }
+}
+
+

In both cases, the name needs to be unique in the file, except for if it is an GTFS-RT feed. These are realtime feeds that contain updates for a GTFS feed. +In order to know which one to apply the updates to, the names must match.

+

If the feed contains errors, you can try to add the "fix": true attribute, to try to automatically correct errors.

+

Once you create a pull request, fetching your feed will automatically be tested.

+

You can also test it locally, by running ./src/fetch.py feeds/<region>.json.

+

For that you need to have gtfstidy installed. +You can also use the container described below.

+

Running a transitous instance locally

+

Running a local instance of the transitous setup can be useful for debugging. +The easiest way is to use the same container image that we use for fetching and importing the data on the CI.

+

First, ensure that you have the Git submodules:

+
git submodule update --remote --checkout --init
+
+

Proceed by building the container:

+
podman build ci/container/ -t transitous -f ci/container/Containerfile
+
+

Enter the container:

+
podman run -it -p 8080:8080 -v $PWD:/transitous:Z --userns=keep-id -w /transitous transitous
+
+

Now inside the container, you can download and post-process all the feeds. This may take a while.

+
./ci/fetch-feeds.py timer
+
+

The out/ directory should now contain a number of zip files.

+

In addition to those, you also need a background map. Importing all of europe would take too long, +so for now just a smaller region. +You can find working map pbf downloads at Geofabrik. +You can click on the region names to find downloads for smaller subregions.

+

Then download the chosen region:

+
wget https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf -P out
+
+

In order to start motis, we need a config file listing all the feeds we want to use. +You can generate one using our script:

+
./src/generate-motis-config.py full
+
+

The generated config file still needs a small adjustment. +Edit the line in out/config.ini that starts with paths=osm to point to your map.

+

You can then go to the out directory, and start motis:

+
cd out
+motis -c config.ini --server.host 0.0.0.0 --server.static_path /opt/motis/web
+
+

The first start will take a while, as it imports all the maps and feeds. +Once it's done, the motis web interface should be reachable on localhost:8080.

+ +
+
+ +
+
+ +
+ +
+ +
+ + + + + Next » + + +
+ + + + + + + + + + + diff --git a/js/html5shiv.min.js b/js/html5shiv.min.js new file mode 100644 index 00000000..1a01c94b --- /dev/null +++ b/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); diff --git a/js/jquery-3.6.0.min.js b/js/jquery-3.6.0.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/js/jquery-3.6.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.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(e,n){S.fn[n]=function(e,t){return 0"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t + + + + + + + Feed-Licenses - Transitous + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+
+
+ +

Licenses of included feeds

+ + +
    +
  • Translink
  • +
+ + +
    +
  • Translink
  • +
+ + +
    +
  • Bowen Transit
  • +
+ + +
    +
  • Bowen Transit
  • +
+ + +
    +
  • Duffys & Stewarts
  • +
+ + +
    +
  • Sunbus Cairns
  • +
+ + +
    +
  • Sunbus Cairns
  • +
+ + +
    +
  • Buslink Gladstone
  • +
+ + +
    +
  • Polleys Coaches
  • +
+ + +
    +
  • Trans North Innisfail
  • +
+ + +
    +
  • Trans North Innisfail
  • +
+ + +
    +
  • Christensens Bus and Coach
  • +
+ + +
    +
  • Mackay Transit Coaches
  • +
+ + +
    +
  • Translink
  • +
+ + +
    +
  • Translink
  • +
+ + +
    +
  • Glass House Country Coaches
  • +
+ + +
    +
  • Wide Bay Transit
  • +
+ + +
    +
  • Wide Bay Transit
  • +
+ + +
    +
  • North Stradbroke Island Buses
  • +
+ + +
    +
  • North Stradbroke Island Buses
  • +
+ + +
    +
  • Translink
  • +
+ + +
    +
  • Bus Qld Toowoomba
  • +
+ + +
    +
  • Haidleys Panoramic Coaches
  • +
+ + +
    +
  • Whitsunday Transit
  • +
+

Filename: au_Transperth.gtfs.zip

+ +
    +
  • TransCollie
  • +
  • TransCarnarvon
  • +
  • TransEsperance
  • +
  • TransKarratha
  • +
  • Mandurah Bus Charter
  • +
  • TransNarrogin
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • TransHedland
  • +
  • TransBroome
  • +
  • TransGeraldton
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • TransAlbany
  • +
  • TransBunbury
  • +
  • TransBusselton
  • +
  • TransGoldfields
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transperth
  • +
  • Transwa
  • +
  • 2K Tours
  • +
  • Transperth
  • +
  • TransBridgetown
  • +
  • TransManjimup
  • +
+

Filename: us_Amtrak.gtfs.zip

+ +
    +
  • Martz Trailways
  • +
  • Executive Transportation
  • +
  • Route 66 Express
  • +
  • Americanstar
  • +
  • Alvand Transportation
  • +
  • Vegas Airporter
  • +
  • Central Oregon Breeze
  • +
  • El Dorado Transit
  • +
  • Vermont Translines
  • +
  • Beeline Express
  • +
  • Coach Usa
  • +
  • Cantrail
  • +
  • Shore Line East
  • +
  • Amtrak Chartered Vehicle
  • +
  • Sunway Charters
  • +
  • Placeholder train number for CTrail
  • +
  • BayRunner Shuttle
  • +
  • Virginia Railway Express
  • +
  • MARC
  • +
  • Grape Line
  • +
  • Gold Line
  • +
  • Northwestern Trailways
  • +
  • Peoria Charter
  • +
  • Smart Way Connector
  • +
  • Van Galder Coach Usa
  • +
  • Southeast Area Transit
  • +
  • Pacific Crest Bus Lines
  • +
  • Roadrunner Shuttle
  • +
  • Apple Line
  • +
  • Express Arrow
  • +
  • Badger Bus
  • +
  • Stagecoach Express
  • +
  • Amtrak Chartered Motorcoach
  • +
  • The Lift
  • +
  • Bustang
  • +
  • New York Trailways
  • +
  • Adirondack Trailways
  • +
  • Pine Hill Trailways
  • +
  • Fullington Trailways
  • +
  • Groome Transportation
  • +
  • Dungeness Line
  • +
  • Indian Trails
  • +
  • Arrow Trailways
  • +
  • Grand Canyon Railway
  • +
  • Amtrak
  • +
  • Santa Cruz Metro
  • +
  • C&j
  • +
  • Altamont Corridor Express
  • +
+

Filename: us-mo_Metro-stlouis.gtfs.zip

+ +
    +
  • Metro St. Louis
  • +
+

Filename: us-mo_Metro-stlouis.gtfs.zip

+ +
    +
  • Metro St. Louis
  • +
+

Filename: hr_hz.gtfs.zip

+ +
    +
  • HŽ Putnicki prijevoz
  • +
+

Filename: dk_rejseplanen.gtfs.zip

+ +
    +
  • Bornholms Trafik
  • +
  • DSB
  • +
  • FYNBUS
  • +
  • NT
  • +
  • Movia
  • +
  • Midttrafik
  • +
  • Mols-Linien
  • +
  • Arriva tog
  • +
  • DSB Øresund
  • +
  • Lokaltog A/S
  • +
  • DSB S-tog
  • +
  • Metroselskabet
  • +
  • Sydtrafik
  • +
  • Sporvejsmuseet Skjoldenæsholm
  • +
  • Öresundståg
  • +
  • Ærø Kommune
  • +
  • Samsø Bus
  • +
  • Skånetrafiken
  • +
  • Fanø Kommune
  • +
  • Svendborg Havn, Færge- og Sundfart
  • +
  • ÆrøXpressen A/S
  • +
  • Samsø Rederi
  • +
  • Thinggaard Express
  • +
  • Odense Letbane
  • +
  • Ærøfærgerne
  • +
+

Filename: uk_great-britain.gtfs.zip

+ +
    +
  • Ellenvale Coaches
  • +
  • Stagecoach Bluebird
  • +
  • Stagecoach East
  • +
  • Stagecoach West
  • +
  • Stagecoach Midlands
  • +
  • Stagecoach South
  • +
  • Stagecoach Supertram
  • +
  • Stagecoach South West
  • +
  • Stagecoach West Scotland
  • +
  • Stagecoach Oxfordshire
  • +
  • Kirkby Lonsdale Coaches
  • +
  • Mountain Goat Holidays and Tours
  • +
  • Stagecoach South
  • +
  • Stagecoach South East
  • +
  • Stagecoach East
  • +
  • Stagecoach Midlands
  • +
  • Stagecoach Yorkshire
  • +
  • Stagecoach East Midlands
  • +
  • Stagecoach East Scotland
  • +
  • Stagecoach Highlands
  • +
  • Stagecoach South
  • +
  • Stagecoach East
  • +
  • Fellrunner
  • +
  • Stagecoach East
  • +
  • Stagecoach South
  • +
  • Telfords Coaches
  • +
  • Arriva North East
  • +
  • Stagecoach North East
  • +
  • Station Taxis
  • +
  • Tyne and Wear Metro
  • +
  • A-line Coaches
  • +
  • Nexus Ferry
  • +
  • Readypay Ltd
  • +
  • Nexus Metro Replacement
  • +
  • Glen Valley Tours
  • +
  • Arriva North East
  • +
  • Stagecoach Manchester
  • +
  • Coastliner
  • +
  • Bee Network
  • +
  • The Harrogate Bus Company
  • +
  • Bee Network
  • +
  • Gateshead Central Taxis
  • +
  • Dales and District
  • +
  • Gem Travel
  • +
  • Reliance Motor Services
  • +
  • Stanley Travel
  • +
  • Paul's Travel
  • +
  • North Yorkshire County Council
  • +
  • Hodgsons
  • +
  • Metrolink
  • +
  • Vision Bus
  • +
  • Weardale Motor Services
  • +
  • First Greater Manchester
  • +
  • Thornes Independent Ltd
  • +
  • Go North East
  • +
  • Arriva Wales
  • +
  • D & G Bus
  • +
  • Ryedale Community Transport
  • +
  • Generation Travel
  • +
  • York Pullman
  • +
  • SS Suncruisers
  • +
  • The Little White Bus
  • +
  • Stagecoach Merseyside and South Lancashire
  • +
  • Aintree Coachlines
  • +
  • JH Coaches
  • +
  • Upper Wharfedale Venturer
  • +
  • Belle Vue Coaches
  • +
  • Arriva North West
  • +
  • Cumbria Classic Coaches
  • +
  • Mikro Coaches
  • +
  • Hollinshead Coaches
  • +
  • Warrington's Own Buses
  • +
  • First Halifax, Calder Valley & Huddersfield
  • +
  • Stanley Travel
  • +
  • Huyton Travel
  • +
  • Nexus Move
  • +
  • Arriva Yorkshire
  • +
  • Preston Bus
  • +
  • Rosso
  • +
  • Direct Taxis
  • +
  • Coastal and Country Coaches
  • +
  • Team Pennine
  • +
  • The Blackburn Bus Company
  • +
  • Bee Network
  • +
  • Bee Network
  • +
  • Arriva North West
  • +
  • Go North West
  • +
  • Diamond Bus North West
  • +
  • Coatham Coaches
  • +
  • Swans Travel Ltd
  • +
  • Atlantic Travel GB
  • +
  • Ashcrofts Mini Travel
  • +
  • Bullocks Coaches
  • +
  • Olympia Travel
  • +
  • Peter Hogg of Jedburgh
  • +
  • Bee Network
  • +
  • Stagecoach Cumbria and North Lancashire
  • +
  • Green Mountain Travel
  • +
  • Borders Buses
  • +
  • Wright Brothers Coaches
  • +
  • Northlink Ferries
  • +
  • Berwick Buses
  • +
  • Western Dales Community Bus
  • +
  • Reays Coaches
  • +
  • NBM Hire Ltd
  • +
  • A2B Bus and Coach
  • +
  • Aberdeenshire Council
  • +
  • Argyll & Bute Council Ferries
  • +
  • A1 Coaches
  • +
  • A&A Coach Travel
  • +
  • Aarons of Wick
  • +
  • Arriva Derby
  • +
  • Arriva Kent and Surrey
  • +
  • AK Transport
  • +
  • A MacDonald
  • +
  • Ambassador Travel
  • +
  • Alasdair Macdonald
  • +
  • Arriva Midlands
  • +
  • Arriva Kent and Surrey
  • +
  • Andersons of Langholm
  • +
  • Andrew's
  • +
  • Andrews of Tideswell
  • +
  • Arriva Beds and Bucks
  • +
  • Ardlui Hotel
  • +
  • Arriva Herts and Essex
  • +
  • Arisaig Marine
  • +
  • Arrow Taxi
  • +
  • Ashbourne Community Transport
  • +
  • ASD Coaches
  • +
  • Ashley Travel
  • +
  • Amberley & Slindon Community Bus
  • +
  • BK Marine
  • +
  • Autocar Bus & Coach Services
  • +
  • Avondale Coaches
  • +
  • Gatwick Airport inter-terminal Shuttle
  • +
  • Stansted Airport Hotel Shuttle
  • +
  • Battle Area Community Transport
  • +
  • Bagnalls
  • +
  • Bay Travel
  • +
  • Globe Holidays
  • +
  • Burnbrae Garage
  • +
  • Bluebell Railway
  • +
  • Bright Bus
  • +
  • Braintree Community Transport
  • +
  • Basildon District Volunteer Carers
  • +
  • Bear Buses
  • +
  • Bexhill Community Bus
  • +
  • Brighton & Hove Bus and Coach Company
  • +
  • Brian Jones Coaches
  • +
  • Black Cat Travel
  • +
  • Bayliss Executive Travel
  • +
  • BM Coaches
  • +
  • Islay Coaches
  • +
  • Bus Na Comhairle
  • +
  • Bo'ness and Kinneil Railway
  • +
  • Borders Buses
  • +
  • Jonathan Boyd
  • +
  • Brentwood Community Transport
  • +
  • Brookline
  • +
  • Brylaine Travel
  • +
  • Buses4U
  • +
  • Bishops Stortford Community Transport
  • +
  • W Brownrigg
  • +
  • Caledonian MacBrayne
  • +
  • CallConnect
  • +
  • Camerons Travel
  • +
  • Cardinal Buses
  • +
  • Climate Action Strathaven
  • +
  • Centrebus
  • +
  • Centrebus
  • +
  • Craigs of Cumbernauld
  • +
  • Coggeshall Community Bus
  • +
  • Chatterbus
  • +
  • Chalkwell Garage & Coach Hire
  • +
  • Cuckmere Buses
  • +
  • Clydelink
  • +
  • Carlone Buses
  • +
  • Centaur Coaches
  • +
  • ARG Travel
  • +
  • Colchri Coaches
  • +
  • Compo
  • +
  • Compass Travel
  • +
  • Compaid Trust
  • +
  • Wilsons Buses
  • +
  • Crosskeys Coaches
  • +
  • Carousel Buses
  • +
  • Coach Services
  • +
  • Derbyshire Community Transport
  • +
  • Glasgow Citybus
  • +
  • Community Transport Glasgow
  • +
  • Community Transport for Lewes Area
  • +
  • County Travel
  • +
  • Cawthorne's Travel
  • +
  • Community Action Dacorum
  • +
  • D A & A J MacLean
  • +
  • D A Travel
  • +
  • D & E Coaches
  • +
  • Delaine Buses
  • +
  • J R Dent Coaches
  • +
  • Dews Coaches
  • +
  • DGC Buses
  • +
  • David Goodfellow Travel
  • +
  • Dochertys Midland Coaches
  • +
  • D M K Motors
  • +
  • Dodds of Troon
  • +
  • Prentice Coaches
  • +
  • Dunnett's Transport
  • +
  • Deveron Coaches
  • +
  • Essex & Suffolk DaRT
  • +
  • Eazy Coach Hire
  • +
  • East Coast Buses
  • +
  • Edinburgh Coach Lines
  • +
  • Edinburgh Trams
  • +
  • Edward Thomas
  • +
  • Epping Forest Community Transport
  • +
  • East Hull Community Transport
  • +
  • Lothian Country Buses
  • +
  • Ember
  • +
  • Ensign Bus
  • +
  • Eastern Scottish
  • +
  • Eve Coaches
  • +
  • East Yorkshire
  • +
  • First Aberdeen
  • +
  • Fenland Association for Community Transport
  • +
  • Falcon Coaches
  • +
  • First Berkshire & The Thames Valley
  • +
  • Reading RailAir
  • +
  • First Buses of Somerset
  • +
  • 1st Bus Stop Ltd
  • +
  • First Kernow
  • +
  • First Wessex, Dorset & South Somerset
  • +
  • First Essex
  • +
  • Midland Bluebird
  • +
  • Feline Executive Travel
  • +
  • First Portsmouth, Fareham & Gosport
  • +
  • First Leicester
  • +
  • Flyer
  • +
  • First Worcestershire
  • +
  • Fowlers Travel
  • +
  • First Potteries
  • +
  • Fords Coaches
  • +
  • Fishers Tours
  • +
  • Festival Travel
  • +
  • First South Yorkshire
  • +
  • Faversham Hopper
  • +
  • First Bradford
  • +
  • First Leeds
  • +
  • First West Yorkshire Ltd
  • +
  • Galson Motors
  • +
  • Goole Go Far
  • +
  • Hamish Gordon Coaches
  • +
  • Green Line (operated by Arriva)
  • +
  • Globe Coaches
  • +
  • Garelochhead Minibuses & Coaches
  • +
  • Glovers
  • +
  • Gem Mini Travel
  • +
  • Go-Coach Hire
  • +
  • Grenitote Travel
  • +
  • George Rapson Travel
  • +
  • Grayscroft Coaches
  • +
  • Glenfarg Community Transport Group
  • +
  • Haines Coaches
  • +
  • J & D S Halcrow
  • +
  • Hams Travel
  • +
  • HART
  • +
  • Harpurs Coaches
  • +
  • Hunter Cabs & Mini Buses
  • +
  • HcL
  • +
  • Handcross District Community Bus
  • +
  • Isle of Hoy Development Trust
  • +
  • Heatons Coaches
  • +
  • Hedingham & Chambers
  • +
  • Hebridean Transport
  • +
  • Hunters Executive Coaches
  • +
  • Highland Ferries
  • +
  • Connexions Buses
  • +
  • High Peak
  • +
  • Historic Scotland
  • +
  • Harting Minibus CIC
  • +
  • Hebridean MiniBus Service
  • +
  • Houston's Minicoaches
  • +
  • Hunts Coaches
  • +
  • Hornsbys Bus & Coach
  • +
  • Hobson Travel
  • +
  • Harpenden Connect
  • +
  • Hadlow Rural Community School
  • +
  • Horseman Coaches
  • +
  • Harwich Connexions Transport
  • +
  • Hulleys of Baslow
  • +
  • Hawkes Coaches
  • +
  • J A & G D Nicolson
  • +
  • Johnson Brothers
  • +
  • Jacksons of Silsden Ltd
  • +
  • Jetstream Tours
  • +
  • John Ferguson Minibus Hirer
  • +
  • JMB Travel
  • +
  • Johnson Transport
  • +
  • John Kennedy
  • +
  • J P Minibus
  • +
  • J R Services
  • +
  • Kinchbus
  • +
  • Kent College Canterbury
  • +
  • Konectbus
  • +
  • Kent Coach Tours
  • +
  • Keith and Dufftown Railway
  • +
  • Kent & East Sussex Railway
  • +
  • K White Transport
  • +
  • K and K Transport
  • +
  • Kingshouse Travel
  • +
  • Steve Keats of Sheffield
  • +
  • Kilvingtons of Leeds
  • +
  • Key Coaches
  • +
  • Lochaber Action on Disability
  • +
  • Lochcarron Garage
  • +
  • Lothian Community Transport
  • +
  • Landmark Coaches
  • +
  • The Big Lemon
  • +
  • Little Jim's
  • +
  • Lochs Motor Transport
  • +
  • Lothian Buses
  • +
  • JW Lodge & Sons
  • +
  • Lord's Travel
  • +
  • Langston & Tasker
  • +
  • Littles Travel
  • +
  • Lucketts of Watford
  • +
  • The London Bus Company
  • +
  • Leadhills and Wanlockhead Railway
  • +
  • A Lyles and Son
  • +
  • Lynx
  • +
  • Martins Car Hire
  • +
  • Bland's
  • +
  • McGill's Bus Service
  • +
  • McCulloch's Coaches
  • +
  • McColls Travel
  • +
  • McNairn Coaches
  • +
  • Moray Council
  • +
  • Diamond Bus East Midlands
  • +
  • Midhurst Community Bus
  • +
  • Stringers
  • +
  • Cruisers
  • +
  • Mackie's Coaches
  • +
  • Mil-Ken Travel
  • +
  • Murdo MacIver
  • +
  • Moffat & Williamson
  • +
  • Moxons Tours
  • +
  • Millport Motors
  • +
  • Marshalls of Sutton on Trent
  • +
  • Marsland Travel
  • +
  • C G Myall & Son
  • +
  • North Area Transport Association
  • +
  • Nauticalia Ferry
  • +
  • Nottingham City Transport
  • +
  • Notts and Derby
  • +
  • Nottingham Express Transit (Tram)
  • +
  • NIBSbuses
  • +
  • The Durness Bus
  • +
  • North Lincolnshire Council
  • +
  • CT4N
  • +
  • Nottinghamshire County Council Fleet Services
  • +
  • Nu-Venture
  • +
  • Wealdlink Community Transport
  • +
  • Wright Way To Travel
  • +
  • A1 Coaches
  • +
  • Archway Travel
  • +
  • Avacab
  • +
  • K&P Coaches
  • +
  • Berwyn
  • +
  • Bretherton Gold Line Tours
  • +
  • B & J Travel
  • +
  • Blackpool Transport
  • +
  • Blackpool Coach Hire
  • +
  • Blackburn Private Hire
  • +
  • Bibby's of Ingleton Ltd
  • +
  • The Burnley Bus Company
  • +
  • Britannia Bus
  • +
  • Coach Hire Executive Travel Ltd
  • +
  • Thomas Herbert Jones & Partners
  • +
  • Cardiff Bus
  • +
  • Celtic Travel
  • +
  • Charlton Mini's
  • +
  • Coastal Coaches
  • +
  • Caerphilly County Borough Council
  • +
  • Cranberry Coachways
  • +
  • Crickhowell Taxis
  • +
  • Clynnog & Trefor / Berwyn Coaches
  • +
  • Thames Valley Buses
  • +
  • Cogenhoe and Whiston Parish Council
  • +
  • Denbighshire Council
  • +
  • Don Fraser Coaches
  • +
  • DANSA
  • +
  • Dilwyn's Coaches
  • +
  • Edwards Coaches
  • +
  • Eifion's Coaches
  • +
  • Englands Limousines
  • +
  • Express Travel
  • +
  • First Bristol, Bath & the West
  • +
  • First South & West Wales
  • +
  • First Norfolk & Suffolk
  • +
  • First Greater Glasgow
  • +
  • Forge Travel
  • +
  • Foreign Support
  • +
  • Gemsar Travel Limited
  • +
  • Goodsir
  • +
  • Gwynfor Coaches
  • +
  • Harris Travel
  • +
  • Henleys
  • +
  • Hodsons Coaches
  • +
  • Harris Coaches
  • +
  • Holmeswood Coaches Ltd
  • +
  • Evans Coaches Tregaron Limited
  • +
  • Jones Login
  • +
  • J Robinson Taxis
  • +
  • The Keighley Bus Company
  • +
  • Keepings Coaches
  • +
  • Lawson's of Corby
  • +
  • Llew Jones Coaches
  • +
  • Lewis Y Llan
  • +
  • Lloyds Coaches
  • +
  • Mario Coaches
  • +
  • M & H Coaches
  • +
  • Monmouthshire County Council
  • +
  • Moving People
  • +
  • Morris Travel
  • +
  • Mid Wales Travel
  • +
  • Newbury & District
  • +
  • Adventure Travel
  • +
  • Nefyn
  • +
  • Nick Maddy Coaches
  • +
  • Northern Star Coach Hire
  • +
  • Coastliner Buses
  • +
  • Pilkingtonbus
  • +
  • Oswestry Community Action (Qube)
  • +
  • O R Jones
  • +
  • Bus Vannin
  • +
  • Owen's Travelmaster
  • +
  • P & O Lloyd
  • +
  • Pat's Coaches
  • +
  • JP Travel
  • +
  • Peter's Minibus Hire
  • +
  • Pembrokeshire County Council
  • +
  • Thomas of Rhondda
  • +
  • P & S Nelson
  • +
  • Peyton Travel
  • +
  • Richards Bros
  • +
  • Reading Buses
  • +
  • Ridgways
  • +
  • Redline Travel
  • +
  • Tyrers Coaches
  • +
  • Sarah Bell
  • +
  • Sargeants Brothers
  • +
  • Saunders of Preston
  • +
  • SP Cars
  • +
  • Select Coaches
  • +
  • Shane Nuttall
  • +
  • Stagecoach South Wales
  • +
  • South Wales Transport
  • +
  • Taf Valley Coaches
  • +
  • Tanat Valley Coaches
  • +
  • Travel Assist
  • +
  • Townlynx
  • +
  • The Travellers Choice
  • +
  • Uno
  • +
  • Valentines Travel
  • +
  • Village & Valleys Travel
  • +
  • Waltons Coach Hire
  • +
  • Wyre Coaches
  • +
  • Wrexham Taxis
  • +
  • Yeomans Travel
  • +
  • Pendle Coaches
  • +
  • Our Bus
  • +
  • Our Centre
  • +
  • A and J Taxis
  • +
  • Al's Coaches
  • +
  • Derek Hilton Travel
  • +
  • Maghull Coaches
  • +
  • Hattons Travel
  • +
  • Mersey Ferries
  • +
  • Cumfybus
  • +
  • A2B Travel
  • +
  • Anthony's Travel
  • +
  • Selwyn's Travel
  • +
  • Peoples Bus
  • +
  • Ashcroft Travel
  • +
  • Liverpool City Sights
  • +
  • Link Network
  • +
  • Hadleigh Community Transport
  • +
  • High Suffolk Community Transport
  • +
  • ABUS
  • +
  • Astra Coach Travel
  • +
  • 4K Travel
  • +
  • Transpora Bus
  • +
  • AMK
  • +
  • Flexibus
  • +
  • Arriva Midlands
  • +
  • Airport Bus Express
  • +
  • Astons Coaches
  • +
  • Somerset Council
  • +
  • Atwest
  • +
  • Axe Valley Mini-Travel
  • +
  • Country Bus
  • +
  • Broughton & Mottisfont Community Bus
  • +
  • Banga Buses
  • +
  • Basingstoke Community Transport
  • +
  • Bath Bus Company
  • +
  • Borderbus
  • +
  • Go Ahead London
  • +
  • Beestons
  • +
  • Bennetts Travel
  • +
  • Bakers Dolphin
  • +
  • New Bharat Coaches (Southall, London)
  • +
  • Air-Rail Link
  • +
  • Belle Coaches
  • +
  • Beaminster Town Council
  • +
  • Berry's Coaches
  • +
  • Beeline Coaches
  • +
  • Connect2Wiltshire
  • +
  • Emirates Air Line
  • +
  • Caradoc Coaches
  • +
  • Coastal Accessible Transport
  • +
  • Cheltenham Community Transport
  • +
  • Community First Wessex
  • +
  • Cotswold Green
  • +
  • Hedingham & Chambers
  • +
  • Cresta Coaches
  • +
  • Chaserider
  • +
  • Carolean Coaches
  • +
  • Coachstyle
  • +
  • Community Transport South Wiltshire
  • +
  • CT Coaches
  • +
  • Thames Clippers
  • +
  • Coventry Minibuses
  • +
  • N N Cresswell
  • +
  • Clearway of Catshill
  • +
  • Abellio London
  • +
  • Dawlish Community Transport
  • +
  • Diamond Bus South East
  • +
  • Docklands Buses
  • +
  • Dorset Community Transport
  • +
  • Discover Dorset Tours
  • +
  • Dartmouth Higher Ferry
  • +
  • Diamond Bus
  • +
  • London Docklands Light Railway - TfL
  • +
  • Dan's Coach Travel
  • +
  • D & P Boat Hire
  • +
  • DRM Bus
  • +
  • Dartline Coaches
  • +
  • Damory Coaches
  • +
  • Three Villages MiniBus
  • +
  • Eurocoaches
  • +
  • Exe Valley and Community Bus
  • +
  • Fareline Bus & Coach Services
  • +
  • First & Last Mile
  • +
  • Faresaver
  • +
  • Forest Community Transport
  • +
  • Felixstowe Ferry Boat Yard
  • +
  • Faringdon Community Bus
  • +
  • Finesse Travel
  • +
  • Flixbus
  • +
  • Flittabus
  • +
  • FromeBus
  • +
  • Filers Travel
  • +
  • Felix Taxis & Co.
  • +
  • FYTbus
  • +
  • Gorran & District Community Bus
  • +
  • Going Forward Buses
  • +
  • Greenslades Tours
  • +
  • Grant Palmer
  • +
  • Grindles Coaches
  • +
  • Grayline Coaches
  • +
  • Halesworth Area Community Transport
  • +
  • Hampshire Community Transport
  • +
  • Hedgehog Community Bus
  • +
  • Henshaw's Coaches
  • +
  • Hatch Green Coaches
  • +
  • Harwich Harbour Ferry
  • +
  • Hopleys Coaches
  • +
  • Hollands Coaches
  • +
  • Herberts Travel
  • +
  • Hartley Wintney Community Bus
  • +
  • Independent Coach Company
  • +
  • igo
  • +
  • Cowes Ferry
  • +
  • Ipswich Buses
  • +
  • Isle Valley Transport
  • +
  • Ivel Sprinter
  • +
  • Isle of Wedmore RT Assoc.
  • +
  • John Dix Travel
  • +
  • Kidlington Assisted Transport CIC
  • +
  • K B Coaches
  • +
  • Kevs Cars and Coaches
  • +
  • Fal River Links
  • +
  • Lakeside Coaches
  • +
  • LA Travel (South Staffs Coach Hire)
  • +
  • Lichfield City Coaches
  • +
  • Lilbourne Community Bus
  • +
  • The Big Lemon
  • +
  • Stagecoach London
  • +
  • Shipston Link
  • +
  • LMS Travel
  • +
  • Logan Rock Cars
  • +
  • Libra Travel
  • +
  • London United
  • +
  • London Underground (TfL)
  • +
  • Lugg Valley Travel
  • +
  • Minibus Plus.com
  • +
  • MD Coaches
  • +
  • MRD Ltd
  • +
  • Metrobus
  • +
  • Megabus
  • +
  • Meon Valley Community Bus
  • +
  • Minsterley
  • +
  • Metroline Travel
  • +
  • Arriva London
  • +
  • Mendip Community Transport
  • +
  • Mulleys Motorways
  • +
  • Newton Abbot Community Transport
  • +
  • National Express
  • +
  • Newent Community Link
  • +
  • Newport Bus
  • +
  • National Express West Midlands
  • +
  • Oakleys Coaches
  • +
  • OTS
  • +
  • OurBus Bartons
  • +
  • Oxford Bus Company
  • +
  • Phil Anslow Travel
  • +
  • Plymouth Boat Trips
  • +
  • Plymouth Citybus
  • +
  • Go Cornwall Bus
  • +
  • Pulhams Coaches
  • +
  • Royal Buses
  • +
  • R & B Travel
  • +
  • Ramsbury Community Bus
  • +
  • Redwoods Travel
  • +
  • Robert Eugene Dix
  • +
  • Red Funnel
  • +
  • W Ridler & Sons
  • +
  • Road Runner Community Transport
  • +
  • Replacement Service
  • +
  • Roselyn Coaches
  • +
  • Richard Wellesley Memorial Community Minibus
  • +
  • South Beds Dial-a-Ride
  • +
  • Select Bus Services
  • +
  • Scottish Citylink
  • +
  • Scraggs
  • +
  • Shires Passenger Transport
  • +
  • St Ives Minibus Services
  • +
  • LandFlight
  • +
  • Stagecoach London
  • +
  • Swanbrook Coaches
  • +
  • Sullivan Buses
  • +
  • Stanton's of Stoke
  • +
  • Bluestar
  • +
  • Uni-Link
  • +
  • Saltash Red Bus
  • +
  • NATIONAL EXPRESS OPERATIONS LIMITED
  • +
  • South Somerset Community Transport
  • +
  • Travel Cornwall
  • +
  • London Sovereign
  • +
  • Southern Vectis
  • +
  • South West Coaches
  • +
  • Taw & Torridge
  • +
  • Aimee's
  • +
  • Tavistock Community Transport
  • +
  • Totness Community Bus
  • +
  • Torbay Community Development Trust
  • +
  • London Tramlink
  • +
  • National Express Coventry
  • +
  • Let's Go
  • +
  • Tally Ho!
  • +
  • Thandi Red Limited
  • +
  • Thames Travel
  • +
  • TK Travel
  • +
  • West Midlands Metro
  • +
  • Thompsons Coaches
  • +
  • Thames River Services
  • +
  • Swindon's Bus Company
  • +
  • Taylors Travel
  • +
  • Uno
  • +
  • Villager Community Bus (Oxon)
  • +
  • Villager Minibus Sharnbrook
  • +
  • Torbay Buses
  • +
  • Walsall Community Transport
  • +
  • morebus
  • +
  • Salisbury Reds
  • +
  • Wyre Forest Dial a Ride
  • +
  • Woolwich Free Ferry
  • +
  • WightLink
  • +
  • West Oxfordshire Community Transport
  • +
  • Wanderbus
  • +
  • F R Willetts
  • +
  • Xelabus
  • +
  • The Seend Shuttle
  • +
  • Yeos Contracts
  • +
  • Yarranton Brothers
  • +
  • Bristol Ferry Boat Company
  • +
  • Polruan Passenger Ferry, Bodinnick Vehicle Ferry
  • +
  • River Link
  • +
  • Flushing Ferry
  • +
  • Gosport-Portsmouth Ferry
  • +
  • Hayling Ferry Limited
  • +
  • Hovertravel
  • +
  • Mountbatten Water Taxis
  • +
  • Polruan Ferry Co Ltd
  • +
  • Padstow Harbour Commissioners
  • +
  • Sandbanks Ferry
  • +
  • Salcombe Ferry
  • +
  • St Mawes Ferry
  • +
  • Tamar Bridge & Torpoint Ferry Joint Committee
  • +
  • White Horse Ferries
  • +
  • Orkney Ferries
  • +
  • PC Coaches
  • +
  • Canavan Travel
  • +
  • Pentland Ferries
  • +
  • Peter Hodgson Travel
  • +
  • Peter MacLennan
  • +
  • Panther Travel
  • +
  • Nottingham Minibus
  • +
  • PVT Transfer
  • +
  • Prentice Westwood
  • +
  • Risborough Area Community Bus
  • +
  • Ramsey and District Community Bus Association
  • +
  • Rambler Coaches
  • +
  • Roberts Coaches
  • +
  • Richmonds Coaches
  • +
  • Redroute Buses
  • +
  • Redwing Coaches
  • +
  • Red Eagle
  • +
  • Reptons Coaches
  • +
  • R G Jamieson & Son
  • +
  • Regent Coaches
  • +
  • Ravenshead Community Project
  • +
  • Romney Hythe & Dymchurch Light Railway
  • +
  • R & J Coaches
  • +
  • Redline
  • +
  • R Robertson & Son
  • +
  • Red Rose Travel
  • +
  • RS Taxis and Minicoaches
  • +
  • Ross Travel
  • +
  • Rye Community Transport
  • +
  • South Ayrshire Community Transport
  • +
  • Scottish Borders Council
  • +
  • Scottish Citylink/Megabus jointly operated
  • +
  • Scoraig Ferry
  • +
  • Sheffield Community Transport
  • +
  • Scottish Citylink & Ulsterbus
  • +
  • SD Travel
  • +
  • Seaford & District
  • +
  • Flagfinders
  • +
  • Stephensons of Essex
  • +
  • Skye Ferry Community Interest Company
  • +
  • Safeguard Buses
  • +
  • South Harris Coaches
  • +
  • Shiel Buses
  • +
  • Short's Travel
  • +
  • Sharpes of Nottingham
  • +
  • Shetland Ferries
  • +
  • Shuttle Buses
  • +
  • Simonds
  • +
  • Selsey Community Bus
  • +
  • Sleafordian Coaches
  • +
  • Starline
  • +
  • Sanders Coaches
  • +
  • South Pennine Community Transport
  • +
  • SPT Subway
  • +
  • Squarepeg
  • +
  • Smith & Sons
  • +
  • Stevenson's Travel
  • +
  • Star Travel
  • +
  • Star Cabs
  • +
  • Stewarts Coaches
  • +
  • Station Coaches
  • +
  • Stotts Coaches
  • +
  • Stuart's Coaches
  • +
  • Sussex Coaches
  • +
  • Soar Valley Community Bus
  • +
  • Spa Valley Railway
  • +
  • Sweeneys Cruises
  • +
  • Sweeneys Garage
  • +
  • Steam Ship Sir Walter Scott
  • +
  • trentbarton
  • +
  • TransportConnect
  • +
  • Tendring Community Transport
  • +
  • Tranport for Tongue
  • +
  • Highland Council
  • +
  • TLC Travel Ltd
  • +
  • Tetley's
  • +
  • Travelmasters
  • +
  • TM Travel
  • +
  • Xplore Dundee
  • +
  • Central Connect
  • +
  • Taxi Service
  • +
  • Ulva Ferry
  • +
  • United Coaches
  • +
  • United Minibuses
  • +
  • Vectare
  • +
  • Vale Travel
  • +
  • Wilma Ann Nicolson
  • +
  • R & S Watersons
  • +
  • West Berkshire Council Transport Services
  • +
  • Wilfreda Beehive
  • +
  • White Bus Services
  • +
  • Watermill Coaches
  • +
  • West Coast Motors
  • +
  • Woking Community Transport
  • +
  • MacLeod's Coaches
  • +
  • Westerbus
  • +
  • Western Ferries
  • +
  • Wharfeconnections
  • +
  • Whitelaw Coaches
  • +
  • Whippet Coaches
  • +
  • Waverley Hoppa Community Transport
  • +
  • Whites Coaches (Shetland)
  • +
  • Winslow & District Community Bus
  • +
  • A C Williams
  • +
  • WM Travel
  • +
  • WMV Motor Hirer
  • +
  • Go To Town
  • +
  • Wilson's of Rhu
  • +
  • Travel Wisharts
  • +
  • Wastbus
  • +
  • Viking Coaches
  • +
  • First York
  • +
  • Yorkshire Travel Group
  • +
  • Stagecoach Yorkshire
  • +
  • Elizabeth Yule
  • +
  • Z & S Transport
  • +
  • Border Rambler
  • +
  • Blueworks Private Hire
  • +
  • McCall's Coaches
  • +
  • Lakeland Coaches
  • +
  • Transport for Wales
  • +
  • c2c
  • +
  • Chiltern Railways
  • +
  • Caledonian Sleeper
  • +
  • E M R
  • +
  • Grand Central
  • +
  • Great Northern
  • +
  • LNER
  • +
  • GWR
  • +
  • Gatwick Express
  • +
  • Hull Trains
  • +
  • Heathrow Express
  • +
  • Island Line
  • +
  • East Coast Trains
  • +
  • Great Anglia
  • +
  • West Midlands Trains
  • +
  • London Overground
  • +
  • London Underground
  • +
  • Merseyrail
  • +
  • Northern
  • +
  • Caledonian MacBrayne
  • +
  • Southeastern
  • +
  • Southern
  • +
  • ScotRail
  • +
  • South Western Railway
  • +
  • Thameslink
  • +
  • TransPennine Express
  • +
  • Tyne and Wear Metro
  • +
  • Avanti West Coast
  • +
  • CrossCountry
  • +
  • Elizabeth line
  • +
  • Agency
  • +
+

Filename: uk_northern-ireland.gtfs.zip

+ +
    +
  • Foyle Metro
  • +
  • Translink - Glider
  • +
  • Goldline Express
  • +
  • Translink Metro
  • +
  • Ulsterbus
  • +
  • Ulsterbus Town Services
  • +
  • Translink Northern Ireland Rail
  • +
+

Filename: lt_visimarsrutai.gtfs.zip

+ +
    +
  • Pagėgių sav.
  • +
  • Joniškio r. sav.
  • +
  • Kalvarijos sav.
  • +
  • Kaišiadorių r. sav.
  • +
  • Kauno r. sav.
  • +
  • UAB "Trakų paslaugos"
  • +
  • Kėdainių r. sav.
  • +
  • Kelmės r. sav.
  • +
  • Klaipėdos r. sav.
  • +
  • Kretingos r. sav.
  • +
  • Lietuvos transporto saugos administracija
  • +
  • Pakruojo r. sav.
  • +
  • Panevėžio r. sav.
  • +
  • Radviliškio r. sav.
  • +
  • Raseinių r. sav.
  • +
  • Rokiškio r. sav.
  • +
  • Pasvalio r. sav.
  • +
  • Plungės r. sav.
  • +
  • Prienų r. sav. administracija
  • +
  • Rietavo sav.
  • +
  • Skuodo r. sav.
  • +
  • Tauragės r. sav.
  • +
  • Telšių r. sav.
  • +
  • Trakų r. sav.
  • +
  • UAB "Joniškio autobusų parkas"
  • +
  • Ukmergės r. sav.
  • +
  • Utenos r. sav.
  • +
  • Šakių r. sav.
  • +
  • Šalčininkų rajono savivaldybės administracija
  • +
  • Švenčionių r. sav.
  • +
  • Šilalės r. sav.
  • +
  • Šilutės r. sav.
  • +
  • Širvintų r. sav.
  • +
  • Šiaulių r. sav.
  • +
  • Jurbarko r. sav.
  • +
  • Panevėžio m. sav.
  • +
  • Šiaulių m. sav.
  • +
  • Alytaus m. sav.
  • +
  • UŽDAROJI AKCINĖ BENDROVĖ "EMTRA"
  • +
  • Visagino sav.
  • +
  • Akmenės r. sav.
  • +
  • Alytaus r. sav.
  • +
  • Uždaroji akcinė bendrovė "Kupiškio autobusų parkas"
  • +
  • Uždaroji akcinė bendrovė Kuršėnų autobusų parkas
  • +
  • Anykščių r. sav.
  • +
  • Biržų r. sav.
  • +
  • Uždaroji akcinė bendrovė Naujosios Akmenės autobusų parkas
  • +
  • Varėnos r. sav.
  • +
  • Uždaroji akcinė bendrovė "Rokiškio autobusų parkas"
  • +
  • Vilkaviškio r. sav.
  • +
  • Uždaroji akcinė bendrovė Širvintų autobusų parkas
  • +
  • Uždaroji akcinė bendrovė Tolimojo keleivinio transporto kompanija
  • +
  • Vilniaus r. sav.
  • +
  • Uždaroji akcinė bendrovė "UKMERGĖS AUTOBUSŲ PARKAS"
  • +
  • Elektrėnų sav.
  • +
  • Zarasų r. sav.
  • +
  • Ignalinos r. sav.
  • +
  • Jonavos r. sav.
  • +
  • Vilniaus m. sav.
  • +
  • Druskininkų sav.
  • +
  • Marijampolės savivaldybės administracija
  • +
  • Kauno m. sav.
  • +
  • Klaipėdos m. sav.
  • +
  • Neringos sav.
  • +
  • Palangos m. sav.
  • +
  • Kupiškio r. sav.
  • +
  • Kazlų Rūdos sav.
  • +
  • Lazdijų r. sav.
  • +
  • Testinė savivaldybė
  • +
  • Mažeikių r. sav.
  • +
  • VĮ Lietuvos automobilių kelių direkcija
  • +
  • Valstybės įmonė Lietuvos oro uostai
  • +
  • Akcinė bendrovė "SMILTYNĖS PERKĖLA"
  • +
  • Molėtų r. sav.
  • +
  • UAB LTG Link
  • +
+

Filename: ch_opentransportdataswiss.gtfs.zip

+ +
    +
  • DB Regio AG Baden-Württemberg
  • +
  • Verkehrsbetriebe Biel
  • +
  • Verkehrsbetriebe Biel
  • +
  • Brienz Rothorn Bahn AG
  • +
  • Braunwald-Standseilbahn
  • +
  • Bürgenstock Bahn AG
  • +
  • Davos Klosters Bergbahnen (dpb)
  • +
  • Schweizerische Bundesbahnen SBB
  • +
  • Sportbahnen Davos
  • +
  • Standseilbahn Schwyz-Stoos AG
  • +
  • Toggenburg Bergbahnen Unterwasser
  • +
  • Engelberg-Trübsee-Titlis
  • +
  • Parc d'Attractions du Châtelard
  • +
  • Società Funicolare Cassarate-Monte Brè
  • +
  • Funicolare Ritom SA
  • +
  • Aufzug Matte-Plattform (Bern)
  • +
  • Drahtseilbahn Marzili-Stadt Bern AG
  • +
  • Giessbachbahn
  • +
  • Gornergratbahn
  • +
  • Gurtenbahn
  • +
  • Harderbahn
  • +
  • Jungfraubahn
  • +
  • Montreux-Vevey-Riviera (las)
  • +
  • Aare Seeland mobil (ltb)
  • +
  • Ferrovia Monte Generoso
  • +
  • Montreux-Vevey-Riviera (mtgn)
  • +
  • Celeriner Bergbahnen - Punt Muragl-Muottas Muragl
  • +
  • Lugano-Monte San Salvatore
  • +
  • Niesenbahn
  • +
  • Pilatusbahnen
  • +
  • Kriens-Fräkmüntegg
  • +
  • Rigi Bahnen AG
  • +
  • Weggis-Rigi Kaltbad
  • +
  • Bus Ostschweiz (Rheintal)
  • +
  • Berner Oberland-Bahnen
  • +
  • Schilthornbahn (sbm)
  • +
  • Sierre-Montana-Crans
  • +
  • Funiculaire Saint-Imier-Mont-Soleil SA
  • +
  • Stanserhornbahn
  • +
  • STI Bus AG
  • +
  • Bergbahnen Engadin St. Moritz AG
  • +
  • Niederhornbahn AG
  • +
  • Transports Publics de la Région Lausannoise sa
  • +
  • Transports Publics Neuchâtelois SA (tn)
  • +
  • Transports Publics Neuchâtelois SA
  • +
  • Treib-Seelisberg-Bahn
  • +
  • Montreux-Vevey-Riviera (vcp)
  • +
  • Service d'automobiles TRN (vr)
  • +
  • Wengernalpbahn
  • +
  • Zugerbergbahn
  • +
  • Interlaken-Heimwehfluh
  • +
  • Dampfbahn Furka-Bergstrecke
  • +
  • Società della Funicolare Locarno-Madonna del Sasso SA
  • +
  • Dolderbahn Betriebs AG
  • +
  • Poly-Bahn Zürich
  • +
  • Funiculaire Neuchâtel-Université - Neuchâtel-Gare
  • +
  • Ägerisee Schifffahrt AG
  • +
  • Schifffahrts-Genossenschaft Greifensee
  • +
  • Hallwilersee
  • +
  • Bielersee
  • +
  • BLS Schifffahrt AG (brs)
  • +
  • CGN SA
  • +
  • Vierwaldstättersee
  • +
  • Schifffahrtsgesellschaft für den Zugersee AG
  • +
  • Lago di Lugano
  • +
  • Lacs de Neuchâtel et Morat
  • +
  • Società Navigazione del Lago di Lugano SA
  • +
  • BLS Schifffahrt AG (ths)
  • +
  • Schweiz. Schifffahrtsgesellschaft Untersee und Rhein AG
  • +
  • Zürichsee-Schifffahrtsgesellschaft AG (ZSG)
  • +
  • Schweizerische Bodensee-Schifffahrt AG
  • +
  • Zürichsee-Fähre Horgen-Meilen AG
  • +
  • Schiffsbetrieb Walensee
  • +
  • Navigation Lac des Brenets
  • +
  • Société des Mouettes Genevoises Navigation
  • +
  • Wengernalpbahn Grindelwald Grund - Eigergletscher
  • +
  • Grindelwald-First
  • +
  • Seilbahn Weissenstein AG
  • +
  • Brunni-Bahnen Engelberg AG
  • +
  • Adliswil-Felsenegg
  • +
  • Bergbahnen Beckenried-Emmetten
  • +
  • Davos Klosters Bergbahnen (bbbj)
  • +
  • Funivia Monte Lema SA
  • +
  • Raron-Unterbäch
  • +
  • Chalais-Briey-Vercorin
  • +
  • Schwägalp-Säntis
  • +
  • Luftseilbahn Unterterzen-Flumserberg AG
  • +
  • Wasserauen-Ebenalp
  • +
  • Wengen-Männlichen
  • +
  • Portes du Soleil Suisse SA
  • +
  • Bergbahnen Engadin St. Moritz, Bernina-Diavolezza (lbd)
  • +
  • Arosa Bergbahnen
  • +
  • Appenzeller Bahnen (ab)
  • +
  • Touristische Unternehmung Grächen AG
  • +
  • Sportbahnen Melchsee-Frutt (lsm)
  • +
  • Pendicularas Scuol SA
  • +
  • Sportbahnen Pischa
  • +
  • Bergbahnen Destination Gstaad AG
  • +
  • Luftseilbahn Obergschwend-Rigi-Burggeist AG
  • +
  • Riddes-Isérables
  • +
  • Luftseilbahn Kandersteg-Sunnbüel (Gemmi) AG
  • +
  • Leukerbad-Gemmipass
  • +
  • Transports Publics du Chablais
  • +
  • Savognin-Bergbahnen AG
  • +
  • Rhäzüns-Feldis/Veulden
  • +
  • Télé-Leysin-Col des Mosses - La Lécherette SA
  • +
  • Saastal Bergbahnen AG
  • +
  • Rotenfluebahn Mythenregion AG
  • +
  • Chur-Dreibündenstein
  • +
  • Reigoldswil-Wasserfallen
  • +
  • Celeriner Bergbahnen - Celerina-Saluver
  • +
  • Niederhornbahn AG
  • +
  • Sattel-Hochstuckli AG
  • +
  • Gampel-Jeizinen
  • +
  • Remontées Mécaniques Crans-Montana-Aminona
  • +
  • Curtinatsch-Piz Lagalb
  • +
  • Surlej-Silvaplana-Corvatsch
  • +
  • Dallenwil-Niederrickenbach
  • +
  • Andermatt-Sedrun Sport AG
  • +
  • Lenzerheide Bergbahnen
  • +
  • Hoher Kasten Drehrestaurant und Seilbahn AG
  • +
  • Dallenwil-Wirzweli
  • +
  • Jakobsbad-Kronberg
  • +
  • Stechelberg-Mürren-Schilthorn (lsms)
  • +
  • Bergbahnen Wildhaus AG
  • +
  • Funiculaire St-Luc-Chandolin
  • +
  • Gstaad 3000 AG
  • +
  • Aletsch Bahnen AG
  • +
  • Fürgangen-Bellwald
  • +
  • Erlenbach-Stockhorn
  • +
  • Bergbahnen Flumserberg AG
  • +
  • Pontresina-Alp Languard
  • +
  • Luftseilbahn Mürren-Schilthorn
  • +
  • Luftseilbahn Schattdorf-Haldi
  • +
  • Grindelwald-Pfingstegg
  • +
  • Marbach-Marbachegg
  • +
  • Blatten-Belalp
  • +
  • Weisse Arena Bergbahnen AG
  • +
  • Rosswald Bahnen AG
  • +
  • Téléphérique Dorénaz-Champex d'Alesse/Commune de Dorénaz
  • +
  • Stalden-Gspon
  • +
  • Küssnacht am Rigi-Seebodenalp
  • +
  • Bergbahnen Engstligenalp AG
  • +
  • Bergbahnen Sörenberg AG
  • +
  • Cardada Impianti Turistici
  • +
  • Pizolbahnen AG
  • +
  • Bergbahnen Flumserberg AG
  • +
  • Transports de la région Morges-Bière-Cossonay
  • +
  • Turtmann-Unterems-Oberems
  • +
  • Staldenried¿Gspon
  • +
  • Glaris-Rinerhorn
  • +
  • Remontées Méc. du Wildhorn Anzère
  • +
  • Brusino-Arsizio-Serpiano
  • +
  • Torrent-Bahnen Leukerbad-Albinen AG
  • +
  • Lenk Bergbahnen
  • +
  • Zermatt Bergbahnen AG
  • +
  • Aletsch-Express Riederalp-Bettmeralp
  • +
  • Télésiège Buttes-La Robella
  • +
  • Transports publics fribourgeois
  • +
  • Kaisereggbahnen Schwarzsee AG
  • +
  • Centre Touristique Moléson
  • +
  • Schutt Atzmännig
  • +
  • Luftseilbahngenossenschaft Gitschenen
  • +
  • Télé-Villars-Gryon
  • +
  • Télé-Torgon SA
  • +
  • TéléLaFouly-ChampexLac SA
  • +
  • Val Sporz-Piz Scalottas
  • +
  • Remontées mécaniques SA
  • +
  • Bergbahnen Hoch-Ybrig AG
  • +
  • Télé-Thyon SA
  • +
  • Theytaz Excursions Sion
  • +
  • Télésiège Lana-La Meina
  • +
  • Luftseilbahngenossenschaft Brügg-Eierschwand-Ruogig
  • +
  • Télésiège Ovronnaz-Jorasse
  • +
  • TéléMarécottes
  • +
  • Sportbahnen Unterbäch AG
  • +
  • Sesselbahn St. Moritz Suvretta-Randolins
  • +
  • Sesselbahn Visperterminen-Giw
  • +
  • Seilbahngenossenschaft Embd-Schalb
  • +
  • Lauchernalp Bergbahnen AG
  • +
  • Sportbahnen Bellwald Goms AG
  • +
  • Bergbahnen Meiringen-Hasliberg
  • +
  • Genossenschaft Luftseilbahn Sulwald
  • +
  • Reichenbachfall-Bahn
  • +
  • Klosters-Madrisa Bergbahn
  • +
  • Kriens-Sonnenberg-Bahn
  • +
  • Sportbahnen Melchsee-Frutt (ldb)
  • +
  • Luftseilbahn Engelberg-Fürenalp
  • +
  • Luftseilbahn Fell-Chrüzhütte
  • +
  • Luftseilbahn Fellboden-Bannalpsee
  • +
  • Luftseilbahn Niederbauen
  • +
  • Aargau Verkehr AG
  • +
  • Luftseilbahn Kalpetran-Embd
  • +
  • Genossenschaft Tschinglenbahn Elm
  • +
  • Stoosbahnen AG
  • +
  • Holzegg Liegenschaften AG
  • +
  • Bergbahnen Hoch-Ybrig AG
  • +
  • Luftseilbahn Attinghausen-Brüsti AG
  • +
  • Luftseilbahn Flüelen-Eggbergen
  • +
  • Téléverbier
  • +
  • Biel-Kinzig AG
  • +
  • Seilbahngenossenschaft Golzern
  • +
  • Luftseilbahngenossenschaft Arnisee
  • +
  • Cantone di Grigioni
  • +
  • Gondelbahn Grindelwald-Männlichen AG
  • +
  • Funivia Selma-Landarenca
  • +
  • Kraftwerk Sanetsch AG
  • +
  • Funiva San Carlo-Robiei
  • +
  • Sesselbahn Krümmenschwil-Rietbach
  • +
  • Luftseilbahn Kräbel-Rigi Scheidegg AG
  • +
  • Sportbahnen Amden
  • +
  • Bergbahnen Malbun AG
  • +
  • Sportbahnen Kerenzerberg GmbH
  • +
  • Genossenschaft Luftseilbahn Morgenholz
  • +
  • Luftseilbahn Kies-Mettmen
  • +
  • Luftseilbahn Matt-Weissenberg
  • +
  • Sportbahnen Elm
  • +
  • Télécabine Vercorin-Crêt-du-Midi
  • +
  • Aelplibahn Malans Genossenschaft
  • +
  • Gemeinde Fanas
  • +
  • Bergbahnen Obersaxen AG
  • +
  • Bergbahnen Piz Mundaun AG
  • +
  • Bergbahnen Hohsaas AG
  • +
  • Sesselbahn Vals-Gadenstatt
  • +
  • Bergbahnen Piz Mundaun AG
  • +
  • Sesselbahn Feldis-Mutta
  • +
  • Valbianca SA Airolo
  • +
  • Bergbahnen Samnaun AG
  • +
  • ebs Energie AG
  • +
  • Luftseilbahn Illgau - Vorder Oberberg
  • +
  • Navigation Lac de Joux
  • +
  • Solarfährbetrieb Thomas Geiger Reichenau
  • +
  • Schiffahrtsunternehmung Silsersee
  • +
  • Ernst Mändli AG Nohl
  • +
  • Schiff Eglisau-Tössegg
  • +
  • Luftseilbahn Amsteg-Arni
  • +
  • Stoosbahnen AG
  • +
  • Fähre Beckenried-Gersau
  • +
  • Wasserngrat 2000 AG
  • +
  • MS Seestern + Gastro AG
  • +
  • Lauterbrunnen-Mürren
  • +
  • Gondelbahn Kandersteg-Oeschinensee
  • +
  • La Punt Ferien
  • +
  • TéléCharmey SA
  • +
  • TreNord
  • +
  • Association neuchâteloise des Amis du Tramway ANAT
  • +
  • Bergbahnen Disentis
  • +
  • BLS AG (bls)
  • +
  • Raron-Eischoll
  • +
  • Bergbahnen Hoch-Ybrig AG
  • +
  • Sportbahnen Bergün
  • +
  • Remontées Mécaniques Grimentz-Zinal SA
  • +
  • Pradaschier AG Top
  • +
  • Bergbahnen Sörenberg AG - fikt
  • +
  • Transports de la Région Morges-Bière-Cossonay
  • +
  • Luftseilbahn Kandersteg-Allmenalp
  • +
  • Seilbahn Ried Illgau
  • +
  • Impianti turistici Rivera-Monte Tamaro
  • +
  • LTB Lungern-Turren-Bahn AG
  • +
  • Berner Oberland-Bahnen
  • +
  • SBB GmbH (Grenzverkehr)
  • +
  • Bodensee-Schiffsbetriebe GmbH
  • +
  • Baselland Transport
  • +
  • Société coopérative du Chemin de fer - Musée Blonay-Chamby
  • +
  • Aare Seeland mobil (bti)
  • +
  • Verkehrsbetriebe Zürich INFO+
  • +
  • Trasporti Pubblici Luganesi SA
  • +
  • Aargau Verkehr AG
  • +
  • Montreux-Vevey-Riviera (cev)
  • +
  • Chemins de fer du Jura
  • +
  • Transports Publics Neuchâtelois SA (cmn)
  • +
  • Forchbahn
  • +
  • Lugano-Ponte Tresa
  • +
  • Matterhorn Gotthard Bahn (fo)
  • +
  • Ferrovie Autolinee Regionali Ticinesi
  • +
  • Transports publics fribourgeois
  • +
  • Lausanne-Echallens-Bercher
  • +
  • Aare Seeland mobil (rvo)
  • +
  • Bergbahnen Adelboden AG
  • +
  • STI Bus AG
  • +
  • Comune di Personico
  • +
  • Transports de Martigny et Régions (mc)
  • +
  • Alpbus Fournier
  • +
  • Tschentenbahnen AG
  • +
  • Elsigenalpbahnen AG Frutigen, Luftseilbahn und Skilifte
  • +
  • Alpintrans GmbH
  • +
  • Montreux-Oberland Bernois
  • +
  • THURBO
  • +
  • Nyon-St-Cergue-Morez
  • +
  • Interimsfahrplan / Horaire interimaire / Orario ad interim
  • +
  • Commune d'Anniviers Vissoie
  • +
  • Riffelalp Resort AG Zermatt
  • +
  • Ruftaxi Rorschacherberg
  • +
  • Anrufsammeltaxi Bischofszell
  • +
  • Anrufsammeltaxi Amriswil
  • +
  • Gemeinde St. Gallenkappel
  • +
  • Busbetrieb Kandersteg - Gasterntal
  • +
  • Walker's Söhne Urnerboden
  • +
  • Skilift Schilt AG 8753 Mollis
  • +
  • Aroser Verkehrsbetriebe
  • +
  • Bahnersatz Jahresfahrplan
  • +
  • Autobusbetrieb LEE
  • +
  • Bürgerbus Gondiswil-Huttwil-Ufhusen
  • +
  • Bürgerbus Kleindietwil-Oeschenbach-Walterswil
  • +
  • Sumvitg Turissem
  • +
  • Förderverein Region Gantrisch
  • +
  • ZB Bus Fahrplanbedürfnisse
  • +
  • Gemeinde Surses ¿ Cumegn Surses
  • +
  • Funicar AG
  • +
  • Engelberger Auto-Betriebe
  • +
  • Ortsbus Saas-Fee
  • +
  • Office du tourisme de Leysin
  • +
  • Busbetrieb Oberems-Gruben
  • +
  • Andermatt-Urserntal Tourismus GmbH
  • +
  • Taxi, Bau- und Traxarbeiten Willi Schaad
  • +
  • Busbetrieb Gemeinde Bergün
  • +
  • PRO REGIO HUTTWIL Verkehrsverein
  • +
  • Elektrobus Zermatt
  • +
  • Bus alpin Lombachalp
  • +
  • Verein Naturpark Beverin
  • +
  • Ortsbus der Gemeinde Silvaplana / Gemeinde Silvaplana
  • +
  • Bürgerbus Rüderswil
  • +
  • Trägerverein Historische Postautolinie
  • +
  • Mühleggbahn AG
  • +
  • Gemeinde Luzein
  • +
  • Bürgerbus Walperswil-Epsach-Täuffelen-Aarberg
  • +
  • Bürgerbus Hellsau-Höchstetten-Willadingen-Koppigen
  • +
  • Autoservizi Silvestri Livigno
  • +
  • Bus urbain de Martigny
  • +
  • Bus Sierrois
  • +
  • Ortsbus St. Moritz
  • +
  • Rhätische Bahn
  • +
  • TPF Ersatzverkehr
  • +
  • Aargau Verkehr AG
  • +
  • BLS Netz AG Ersatzverkehr
  • +
  • SBB Infrastruktur AG Bahnersatz
  • +
  • zb Zentralbahn AG Ersatzverkehr
  • +
  • Verkehrsbetriebe Kreuzlingen
  • +
  • Transports Publics Neuchâtelois SA (rvt)
  • +
  • Autotransports de la Vallée de Joux
  • +
  • Autolinea Mendrisiense SA
  • +
  • Servizio d'automobili
  • +
  • Transports Publics de la Région Nyonnaise
  • +
  • Regionalps
  • +
  • Verkehrsbetrieb der Landschaft Davos
  • +
  • Bus Nyon-Prangins
  • +
  • Automobildienst Appenzeller Bahnen
  • +
  • Verkehrsverbund Tirol GesmbH
  • +
  • Autobusbetrieb Freienbach
  • +
  • Automobiles MBC
  • +
  • Bus commune Sion
  • +
  • Bus und Service AG (Chur)
  • +
  • Busbetrieb Rapperswil-Eschenbach-Rüti ZH
  • +
  • Verkehrsbetriebe Glattal
  • +
  • Busbetrieb Wollerau-Samstagern
  • +
  • Sihltal-Zürich-Uetliberg-Bahn
  • +
  • Transports Publics Neuchâtelois SA (tc)
  • +
  • Busbetrieb Olten-Gösgen-Gäu
  • +
  • Service d'automobiles TRN (rvt Auto)
  • +
  • Stadtbus Frauenfeld
  • +
  • Verkehrsbetriebe Herisau
  • +
  • Bergbahnen Adelboden AG
  • +
  • DB Regio AG Baden-Württemberg
  • +
  • PostAuto AG
  • +
  • Verkehrsbetrieb LIECHTENSTEINmobil
  • +
  • Automobildienst SZU
  • +
  • FPLAN BOD RAB OMP
  • +
  • FPLAN RBG SWG
  • +
  • FPLAN VHB SBP
  • +
  • Aare Seeland mobil (snb)
  • +
  • Busbetrieb Lichtensteig-Wattwil-Ebnat-Kappel
  • +
  • Autobus AG Liestal
  • +
  • Auto AG Rothenburg
  • +
  • AFA Bus AG
  • +
  • RegionAlps Bus
  • +
  • Bus und Service AG (Engadin)
  • +
  • Auto AG Uri
  • +
  • Autolinee FART
  • +
  • NeTS Planung ÖBB
  • +
  • Transports Publics du Chablais (Bus)
  • +
  • Automobil Rottal AG
  • +
  • Österreichische Bundesbahnen
  • +
  • Schweizerische Südostbahn (sob)
  • +
  • Verkehrsbetriebe Luzern AG
  • +
  • Busbetrieb BOB
  • +
  • Basler Verkehrsbetriebe
  • +
  • Bus Ostschweiz (Wil)
  • +
  • Städtische Verkehrsbetriebe Bern
  • +
  • Autobetrieb Weesen-Amden
  • +
  • Automobiles CJ
  • +
  • Service d'automobiles TPF
  • +
  • Service d'automobiles TMR
  • +
  • Verkehrsbetriebe Schaffhausen
  • +
  • Verkehrsbetriebe Zürichsee und Oberland
  • +
  • Zugerland Verkehrsbetriebe
  • +
  • Busbetrieb Aarau
  • +
  • Auto AG Schwyz
  • +
  • BUS Oberthurgau AG
  • +
  • Verkehrsbetriebe Schaffhausen
  • +
  • Verkehrsbetriebe Zürich
  • +
  • Autobusbetrieb RBS
  • +
  • NA_85000
  • +
  • Automobildienst Matterhorn Gotthard Bahn (fo auto)
  • +
  • Theytaz Excursions Sion
  • +
  • Auto Leuk-Leukerbad
  • +
  • Autobetrieb Sernftal
  • +
  • Autolinee Regionali Luganesi
  • +
  • STI Bus AG
  • +
  • Zentralbahn
  • +
  • Autolinee Bleniesi
  • +
  • Automobildienste Aare Seeland mobil
  • +
  • Busland AG
  • +
  • Regionalbus Lenzburg
  • +
  • Transports publics Vevey-Montreux-Chillon-Villeneuve
  • +
  • But
  • +
  • Cars Rhône-Alpes
  • +
  • DistriBus
  • +
  • Evian
  • +
  • Société Nationale des Chemins de fer Français
  • +
  • Réseau Lihsa
  • +
  • Proxim iTi
  • +
  • RDTAin
  • +
  • SIBRA
  • +
  • Transports Publics de l'agglomération d'Annemasse
  • +
  • Regionalverkehr Bern-Solothurn
  • +
  • Transports Publics Genevois
  • +
  • Stadtbus Winterthur
  • +
  • Busbetrieb Solothurn und Umgebung
  • +
  • Verkehrsbetriebe der Stadt St.Gallen
  • +
  • Regionale Verkehrsbetriebe Baden-Wettingen
  • +
  • Verkehrsbetriebe Biel
  • +
  • Busbetrieb Grenchen und Umgebung
  • +
  • Transports Vallée de Joux-Yverdon-Ste-Croix
  • +
  • Regiobus Gossau SG
  • +
  • Aargau Verkehr AG
  • +
  • Verein Dampfbahn Bern
  • +
  • Transports Vallée de Joux-Yverdon-Ste-Croix (oc/bus)
  • +
  • Gemeinde Celerina/Schlarigna
  • +
  • Dampfbahn-Verein Zürcher Oberland
  • +
  • Matterhorn Gotthard Bahn (bvz)
  • +
  • Trasporti Pubblici Luganesi SA
  • +
  • Heuberge AG
  • +
  • Aargau Verkehr AG
  • +
  • Transports Vallée de Joux-Yverdon-Ste-Croix
  • +
  • Diverse INFO
  • +
  • SBB GmbH
  • +
  • Südbadenbus
  • +
+

Filename: us-il_CTA.gtfs.zip

+ +
    +
  • Chicago Transit Authority
  • +
+

Filename: us-il_SMTD.gtfs.zip

+ +
    +
  • SMTD
  • +
+

Filename: us-il_SMTD.gtfs.zip

+ +
    +
  • SMTD
  • +
+

Filename: us-il_ChampaignUrbana-MTD.gtfs.zip

+ +
    +
  • Champaign Urbana Mass Transit District
  • +
+

Filename: us-il_Peoria-CityLink.gtfs.zip

+ +
    +
  • CityLink
  • +
+

Filename: pl_PKP-Intercity.gtfs.zip

+ +
    +
  • PKP Intercity
  • +
+

Filename: pl_PolRegio.gtfs.zip

+ +
    +
  • PolRegio
  • +
+

Filename: pl_Rzeszów.gtfs.zip

+ +
    +
  • ZTM Rzeszów
  • +
+

Filename: pl_Koleje-Mazowieckie.gtfs.zip

+ +
    +
  • Koleje Mazowieckie
  • +
+

Filename: pl_Świnoujście.gtfs.zip

+ +
    +
  • Komunikacja Autobusowa w Świnoujściu
  • +
+

Filename: pl_Koleje-Dolnośląskie.gtfs.zip

+ +
    +
  • Koleje Dolnośląskie
  • +
+

Filename: pl_Bydgoszcz.gtfs.zip

+ +
    +
  • ZDMiKP Bydgoszcz
  • +
+

Filename: pl_Włocławek.gtfs.zip

+ +
    +
  • MPK Włocławek
  • +
+

Filename: pl_Toruń.gtfs.zip

+ +
    +
  • Urząd Miasta Torunia
  • +
+

Filename: pl_Kielce.gtfs.zip

+ +
    +
  • Zarząd Transportu Miejskiego w Kielcach
  • +
+

Filename: pl_Radom.gtfs.zip

+ +
    +
  • MZDiK Radom
  • +
+

Filename: pl_Warszawa.gtfs.zip

+ +
    +
  • Warszawski Transport Publiczny
  • +
+

Filename: pl_Łomża.gtfs.zip

+ +
    +
  • MPK ZB w Łomży
  • +
+

Filename: pl_Wejherowo.gtfs.zip

+ +
    +
  • MZK Wejherowo
  • +
+

Filename: pl_Trójmiasto-(Gdańsk,-Gdynia,-Sopot)-combined.gtfs.zip

+ +
    +
  • ZTM Gdańsk
  • +
  • ZKM Gdynia
  • +
+

Filename: pl_Giżycko.gtfs.zip

+ +
    +
  • GZK Bystry
  • +
+

Filename: pl_Lublin.gtfs.zip

+ +
    +
  • ZTM Lublin
  • +
+

Filename: ca-qc_STM.gtfs.zip

+ +
    +
  • Société de transport de Montréal
  • +
+

Filename: ca-qc_STM.gtfs.zip

+ +
    +
  • Société de transport de Montréal
  • +
+

Filename: ca-qc_Exo-reseaudetransportmetropolitain.gtfs.zip

+ +
    +
  • exo-Réseau de transport métropolitain
  • +
+

Filename: ca-qc_Exo-reseaudetransportmetropolitain.gtfs.zip

+ +
    +
  • exo-Réseau de transport métropolitain
  • +
+

Filename: ca-qc_Exo-varannes.gtfs.zip

+ +
    +
  • exo-Sorel-Varennes
  • +
+

Filename: ca-qc_Exo-varannes.gtfs.zip

+ +
    +
  • exo-Sorel-Varennes
  • +
+

Filename: ca-qc_Exo-citsud.gtfs.zip

+ +
    +
  • exo-Sud-Ouest
  • +
+

Filename: ca-qc_Exo-citsud.gtfs.zip

+ +
    +
  • exo-Sud-Ouest
  • +
+

Filename: ca-qc_Exo-citlapresquîle.gtfs.zip

+ +
    +
  • exo-La Presqu'île
  • +
+

Filename: ca-qc_Exo-citlapresquîle.gtfs.zip

+ +
    +
  • exo-La Presqu'île
  • +
+

Filename: ca-qc_Exo-citlaurentides.gtfs.zip

+ +
    +
  • exo-Laurentides
  • +
+

Filename: ca-qc_Exo-citlaurentides.gtfs.zip

+ +
    +
  • exo-Laurentides
  • +
+

Filename: ca-qc_Exo-citduhaut-saint-laurent.gtfs.zip

+ +
    +
  • exo-Haut-Saint-Laurent
  • +
+

Filename: ca-qc_Exo-citduhaut-saint-laurent.gtfs.zip

+ +
    +
  • exo-Haut-Saint-Laurent
  • +
+

Filename: ca-qc_Exo-richelain-roussillon.gtfs.zip

+ +
    +
  • exo-Le Richelain / Roussillon
  • +
+

Filename: ca-qc_Exo-richelain-roussillon.gtfs.zip

+ +
    +
  • exo-Le Richelain / Roussillon
  • +
+

Filename: ca-qc_Exo-citchambly-richelieu-carignan.gtfs.zip

+ +
    +
  • exo-Chambly-Richelieu-Carignan
  • +
+

Filename: ca-qc_Exo-citchambly-richelieu-carignan.gtfs.zip

+ +
    +
  • exo-Chambly-Richelieu-Carignan
  • +
+

Filename: ca-qc_Exo-citvallée-du-richelieu.gtfs.zip

+ +
    +
  • exo-Vallée du Richelieu
  • +
+

Filename: ca-qc_Exo-citvallée-du-richelieu.gtfs.zip

+ +
    +
  • exo-Vallée du Richelieu
  • +
+

Filename: ca-qc_Exo-omitsainte-julie.gtfs.zip

+ +
    +
  • exo-Sainte-Julie
  • +
+

Filename: ca-qc_Exo-omitsainte-julie.gtfs.zip

+ +
    +
  • exo-Sainte-Julie
  • +
+

Filename: ca-qc_Exo-mrclesmoulinsurbis.gtfs.zip

+ +
    +
  • exo-Terrebonne-Mascouche
  • +
+

Filename: ca-qc_Exo-mrclesmoulinsurbis.gtfs.zip

+ +
    +
  • exo-Terrebonne-Mascouche
  • +
+

Filename: ca-qc_Exo-mrcdelassomption.gtfs.zip

+ +
    +
  • exo-L'Assomption
  • +
+

Filename: ca-qc_Exo-mrcdelassomption.gtfs.zip

+ +
    +
  • exo-L'Assomption
  • +
+

Filename: ca-qc_Laval.gtfs.zip

+ +
    +
  • Societe de transport de Laval
  • +
+

Filename: us-or_Trimet.gtfs.zip

+ +
    +
  • Portland Streetcar
  • +
  • Portland Aerial Tram
  • +
  • TriMet
  • +
+

Filename: us-or_Trimet.gtfs.zip

+ +
    +
  • Portland Streetcar
  • +
  • Portland Aerial Tram
  • +
  • TriMet
  • +
+

Filename: hu_mav.gtfs.zip

+ +
    +
  • ROeEE
  • +
  • MÁV
  • +
  • MAV-START
  • +
+

Filename: hu_volanbusz.gtfs.zip

+ +
    +
  • Volánbusz - Ercsi
  • +
  • Volánbusz - Gödöllő
  • +
  • Volánbusz - Monor
  • +
  • Volánbusz - Vác
  • +
  • Volánbusz - Érd
  • +
  • Volánbusz - Baja
  • +
  • Volánbusz - Békéscsaba
  • +
  • Volánbusz - Békés
  • +
  • Volánbusz - Csongrád
  • +
  • Volánbusz - Gyula
  • +
  • Volánbusz - Hódmezővásárhely
  • +
  • Volánbusz - Makó
  • +
  • Volánbusz - Mezőberény
  • +
  • Volánbusz - Mórahalom
  • +
  • Volánbusz - Orosháza
  • +
  • Volánbusz - Szentes
  • +
  • Volánbusz - Szekszárd
  • +
  • Volánbusz - Bonyhád
  • +
  • Volánbusz - Komló
  • +
  • Volánbusz - Mohács
  • +
  • Volánbusz - Siklós
  • +
  • Volánbusz - Szigetvár
  • +
  • Volánbusz - Siófok
  • +
  • Volánbusz - Fonyód
  • +
  • Volánbusz - Nagyatád
  • +
  • Volánbusz - Csurgó
  • +
  • Volánbusz - Bátaszék
  • +
  • Volánbusz - Mezőkövesd
  • +
  • Volánbusz - Balmazújváros
  • +
  • Volánbusz - Hajdúszoboszló
  • +
  • Volánbusz - Kazincbarcika
  • +
  • Volánbusz - Ózd
  • +
  • Volánbusz - Tiszaújváros
  • +
  • Volánbusz - Nyíregyháza
  • +
  • Volánbusz - Ajka
  • +
  • Volánbusz - Balatonfüred
  • +
  • Volánbusz - Balatonfűzfő
  • +
  • Volánbusz - Győr
  • +
  • Volánbusz - Keszthely
  • +
  • Volánbusz - Körmend
  • +
  • Volánbusz - Lenti
  • +
  • Volánbusz - Mosonmagyaróvár
  • +
  • Volánbusz - Nagykanizsa
  • +
  • Volánbusz - Pápa
  • +
  • Volánbusz - Sopron
  • +
  • Volánbusz - Várpalota
  • +
  • Volánbusz - Zalaegerszeg
  • +
  • Volánbusz - Szolnok
  • +
  • Volánbusz - Eger
  • +
  • Volánbusz - Salgótarján
  • +
  • Volánbusz - Jászberény
  • +
  • Volánbusz - Gyöngyös
  • +
  • Volánbusz - Balassagyarmat
  • +
  • Volánbusz - Karcag
  • +
  • Volánbusz - Tiszafüred
  • +
  • Volánbusz - Mezőtúr
  • +
  • Volánbusz - Újszász
  • +
  • Volánbusz - Bátonyterenye
  • +
  • Volánbusz - Dunaújváros
  • +
  • Volánbusz - Esztergom
  • +
  • Volánbusz - Komárom
  • +
  • Volánbusz - Oroszlány
  • +
  • Volánbusz - Székesfehérvár
  • +
  • Volánbusz - Tata
  • +
  • Volánbusz
  • +
+

Filename: hu_bkk.gtfs.zip

+ +
    +
  • BKK
  • +
  • MÁV-HÉV
  • +
+

Filename: sk_zssk.gtfs.zip

+ +
    +
  • Železničná spoločnosť Slovensko, a.s.
  • +
+

Filename: ie_transit-for-ireland.gtfs.zip

+ +
    +
  • Citylink
  • +
  • Nitelink, Dublin Bus
  • +
  • Go-Ahead Ireland
  • +
  • Bus Éireann Waterford
  • +
  • Bernard Kavanagh & Sons
  • +
  • Luas
  • +
  • Iarnród Éireann / Irish Rail
  • +
  • Bus Átha Cliath – Dublin Bus
  • +
  • Bus Éireann
  • +
  • Go-Ahead Ireland
  • +
  • Aircoach
  • +
  • Catherine Madigan
  • +
  • Corduff Travel
  • +
  • Express Bus
  • +
  • Farragher International Travel Services
  • +
  • Finnegan-Bray Ltd
  • +
  • Halpenny Transport
  • +
  • J.J Kavanagh & Sons
  • +
  • Joseph Foley
  • +
  • Kearns Transport
  • +
  • Mangan Tours
  • +
  • Mcgeehan Coaches
  • +
  • Mcgrath Coaches
  • +
  • Michael Gray Coach Hire
  • +
  • PJ Martley
  • +
  • Slieve Bloom Coach Tours
  • +
  • Swords Express
  • +
  • Tralee People's Bus Service
  • +
  • M4 Direct
  • +
  • Healy Bus
  • +
  • Mcgonagle Bus and Coach Hire
  • +
  • Barrys Coaches
  • +
  • Bus4u
  • +
  • Dunnes Coaches
  • +
  • K. Buggy Coaches Llimited
  • +
  • Harrington's Ardgroom
  • +
  • Matthew Whelan Mini Bus Hire
  • +
  • Kelly Travel
  • +
  • Westlink Coaches
  • +
  • Patrick Gallagher Travel
  • +
  • St.Kevin's Bus Service
  • +
  • Andrew Wharton
  • +
  • West Cork Connect
  • +
  • Gleneagle Hotel (Killarney) Ltd
  • +
  • Keelings Retail Uc
  • +
  • Balbriggan Express
  • +
  • Flagline Coaches
  • +
  • Roscommon Coaches
  • +
  • Flight Link Limited
  • +
  • Dublin Express
  • +
  • Burkesbus
  • +
  • Collins Coaches
  • +
  • Dublin Coach
  • +
  • Bus Feda Teoranta
  • +
  • TFI Local Link Mayo
  • +
  • TFI Local Link Kerry
  • +
  • TFI Local Link Cork
  • +
  • TFI Local Link Galway
  • +
  • TFI Local Link Longford Westmeath Roscommon
  • +
  • TFI Local Link Cavan Monaghan
  • +
  • TFI Local Link Tipperary
  • +
  • TFI Local Link Waterford
  • +
  • TFI Local Link Wexford
  • +
  • TFI Local Link Louth Meath Fingal
  • +
  • TFI Local Link Carlow Kilkenny Wicklow
  • +
  • TFI Local Link Laois Offaly
  • +
  • TFI Local Link Limerick Clare
  • +
  • TFI Local Link Donegal Sligo Leitrim
  • +
  • Kilbride Coaches
  • +
  • Doherty's Coach Travel
  • +
  • Wexford Bus
  • +
  • Matthews Coach Hire
  • +
  • Mc Ginley Coach Travel
  • +
  • Treacy Coaches
  • +
  • JJ/Bernard Kavanagh
  • +
  • Ashbourne Connect
  • +
  • Martin Leydon Coaches
  • +
  • Gorey Bus Links
  • +
  • Mcconnon Travel
  • +
  • Joe Moroney Coach Hire Ltd
  • +
  • Fair Isle
  • +
  • Gorey Coach & Bus Co. Ltd.
  • +
  • Ardcavan Coach Tours
  • +
  • Kennedy Coaches
  • +
  • Callinan Coaches
  • +
  • Michael Moran
  • +
  • Piltown Coaches
  • +
  • Slevins Coaches
  • +
  • Streamline Coaches
  • +
  • Barrett Travel
  • +
  • Hillview Transport Ltd
  • +
  • Eamon Mcentee
  • +
  • Shannon Hopper
  • +
  • Michael O'Reilly
  • +
  • Seamus O'Reilly
  • +
  • Royal Breffni Tours Ltd
  • +
  • TU Dublin Blancahrdstown
  • +
  • Patrick Keenan
  • +
  • Eugene Deffely
  • +
  • Go-Ahead Ireland
  • +
  • Hallahans Bus and Coach Hire
  • +
  • Island Ferries Teoranta
  • +
  • TFI Local Link Kildare South Dublin
  • +
  • Francis Finegan Coach Hire
  • +
  • Walsh's Executive Travel
  • +
  • Nolan Coaches
  • +
  • Allen's Bus Hire
  • +
  • Mccaffrey Coaches Limited
  • +
  • MCD Minibus Hire
  • +
+

Filename: no_Entur.gtfs.zip

+ +
    +
  • Agder Kollektivtrafikk AS
  • +
  • AtB
  • +
  • Ålesund Turvogn Service
  • +
  • Avinor
  • +
  • Beffen
  • +
  • Boreal
  • +
  • Askeladden Reiser
  • +
  • Forsvarsbygg Oscarsborgfergen
  • +
  • Brakar
  • +
  • Bussring
  • +
  • Best Arctic
  • +
  • Snelandia
  • +
  • Vy
  • +
  • FlixBus
  • +
  • Flytoget
  • +
  • Vy
  • +
  • GlobeOrbit100
  • +
  • Go-Ahead Norge AS
  • +
  • Go Fjords
  • +
  • Havila
  • +
  • Høgsfjordferja
  • +
  • Hurtigruten
  • +
  • Hyke
  • +
  • Fæmund II
  • +
  • Gjendebåten AS
  • +
  • Innlandstrafikk
  • +
  • Rondejenta
  • +
  • Skibladner
  • +
  • Norled AS
  • +
  • Fjord1 ASA
  • +
  • Kolumbus
  • +
  • AMBU Pendlerrute
  • +
  • The Fjords
  • +
  • FRAM
  • +
  • Sundbåten
  • +
  • Flybussen Connect
  • +
  • Norsk Industriarbeidermuseum
  • +
  • Nordland fylkeskommune
  • +
  • Vy
  • +
  • NOR-WAY Bussekspress
  • +
  • Bygdøyfergen
  • +
  • MF Øisang
  • +
  • Oscarsborgfergen
  • +
  • Østfold kollektivtrafikk
  • +
  • Ruter
  • +
  • SJ Nord
  • +
  • SJ
  • +
  • Skyss
  • +
  • Skyss
  • +
  • Norled
  • +
  • Lustrabaatane
  • +
  • Tide Buss AS
  • +
  • Stadbussen
  • +
  • Telemarkskanalen
  • +
  • Farte
  • +
  • Tide AS
  • +
  • Troms fylkestrafikk
  • +
  • Torghatten
  • +
  • Ulriken
  • +
  • Unibuss
  • +
  • Bastø Fosen
  • +
  • VKT
  • +
  • Vy Travel
  • +
  • Vy Tåg
  • +
  • Vy
  • +
  • Vy Buss
  • +
+

Filename: de_DELFI.gtfs.zip

+ +
    +
  • Bus Faller
  • +
  • Bus Hassis
  • +
  • Bus NVW (Walz)
  • +
  • Verkehrsgesellschaft Vorpommern-Rügen
  • +
  • GVB Verkehrs- und Betriebsgesellschaft Gera mbH
  • +
  • Verkehrsunternehmen Andreas Schröder
  • +
  • Salza Tours
  • +
  • RVG Regionalverkehr Gera
  • +
  • RB-Gesellschaft UHK mbH
  • +
  • Jenaer Nahverkehr GmbH
  • +
  • JES Verkehrsgesellschaft mbH
  • +
  • Personenverkehrsgesellschaft mbH Weimarer Land
  • +
  • Stadtwirtschaft Weimar GmbH
  • +
  • Thüringerwaldbahn und Straßenbahn Gotha GmbH
  • +
  • Ilmenauer Omnibusverkehr
  • +
  • Kombus
  • +
  • MBB GmbH
  • +
  • G. Ilchmann
  • +
  • SNG Suhl
  • +
  • VWG Sömmerda
  • +
  • Weingart
  • +
  • Werrabus
  • +
  • Becker, Martin
  • +
  • Omnibus Friedrich
  • +
  • FS Omnibus GmbH & Co. KG
  • +
  • Omnibusbetrieb Lust
  • +
  • Rheiner Verkehrsbetrieb Mersch GmbH
  • +
  • BördeBus Verkehrsgesellschaft mbH
  • +
  • PVG Burgenlandkreis
  • +
  • Dessauer Verkehrsgesellschaft
  • +
  • Dessauer Verkehrs- und Eisenbahngesellschaft
  • +
  • Harzer Verkehrsbetriebe
  • +
  • Traditionsverein Kleinbahn des Kreises Jerichow I e.V.
  • +
  • NSB Naumburger Straßenbahn
  • +
  • Parkeisenbahn Vatterode
  • +
  • PVGS Altmarkkreis Salzwedel
  • +
  • S-Bahn Hamburg
  • +
  • Nahreisezug
  • +
  • vogtlandbahn - Die Länderbahn GmbH DLB
  • +
  • WESTbahn
  • +
  • SNCF Voyages Deutschland
  • +
  • DB Regio AG Nordost
  • +
  • DB Regio AG Nord
  • +
  • DB Regio AG NRW
  • +
  • DB Regio AG Südost
  • +
  • DB RegioNetz Verkehrs GmbH Erzgebirgsbahn
  • +
  • DB RegioNetz Verkehrs GmbH Oberweisbacher Berg+Schwarzatalb
  • +
  • DB Regio AG Mitte Region Hessen
  • +
  • DB RegioNetz Verkehrs GmbH Kurhessenbahn
  • +
  • DB RegioNetz Verkehrs GmbH Westfrankenbahn
  • +
  • DB Regio AG Baden-Württemberg
  • +
  • DB ZugBus Regionalverkehr Alb-Bodensee
  • +
  • SÜWEX
  • +
  • DB Regio AG Bayern
  • +
  • DB RegioNetz Verkehrs GmbH Gäubodenbahn
  • +
  • DB RegioNetz Verkehrs GmbH Südostbayernbahn
  • +
  • DB Regio AG Mitte Region Südwest
  • +
  • Sylt Shuttle Plus
  • +
  • DB/SBB/TI Eurocity Milano
  • +
  • Nederlandse Spoorwegen
  • +
  • THURBO
  • +
  • Regionale Verkehrsbetriebe Schaffhausen
  • +
  • SBB
  • +
  • SBB GmbH
  • +
  • Südbadenbus
  • +
  • Arriva Danmark
  • +
  • AKN Eisenbahn AG
  • +
  • Rhenus Veniro
  • +
  • Albtal-Verkehrs-Gesellschaft
  • +
  • alex - Die Länderbahn GmbH DLB
  • +
  • agilis
  • +
  • Dessau-Wörlitzer Eisenbahn
  • +
  • ABELLIO Rail NRW GmbH
  • +
  • Brohltalbahn
  • +
  • SDG Sächsische Dampfeisenbahngesellschaft mbH
  • +
  • Bentheimer Eisenbahn
  • +
  • Kandertalbahn
  • +
  • Chiemgauer Lokalbahn
  • +
  • City-Bahn Chemnitz
  • +
  • Mitteldeutsche Regiobahn
  • +
  • Rurtalbahn
  • +
  • EVB ELBE-WESER GmbH
  • +
  • Kasbachtalbahn
  • +
  • Freiberger Eisenbahngesellschaft
  • +
  • Erfurter Bahn Express
  • +
  • Bodensee-Oberschwaben-Bahn
  • +
  • Nebenbahn Gaildorf-Untergröningen
  • +
  • Hohenzollerische Landesbahn AG
  • +
  • Ilztalbahn
  • +
  • Stadtbahn Karlsruhe SEV
  • +
  • Köln-Düsseldorfer Deutsche Rheinschifffahrt AG
  • +
  • Berchtesgadener Land Bahn
  • +
  • trilex-express - Die Länderbahn GmbH DLB
  • +
  • trilex - Die Länderbahn GmbH DLB
  • +
  • Museumsbahn
  • +
  • REGIOBAHN
  • +
  • Meridian
  • +
  • Mainschleifenbahn
  • +
  • Mecklenburgische Bäderbahn Molli
  • +
  • Norddeutsche Eisenbahn Gesellschaft
  • +
  • cantus Verkehrsgesellschaft
  • +
  • Breisgau-S-Bahn GmbH
  • +
  • BayernBahn Betriebs-GmbH
  • +
  • NEB Niederbarnimer Eisenbahn
  • +
  • National Express
  • +
  • Nachtzug
  • +
  • MSM Partyzug
  • +
  • DB Fernverkehr (Codesharing)
  • +
  • Nordbahn Eisenbahngesellschaft
  • +
  • Öchsle-Bahn-Betriebsgesellschaft mbH1
  • +
  • oberpfalz-express - Die Länderbahn GmbH DLB
  • +
  • oberpfalzbahn - Die Länderbahn GmbH DLB
  • +
  • Sächsisch-Oberlausitzer Eisenbahngesellschaft
  • +
  • Hanseatische Eisenbahn GmbH
  • +
  • enno
  • +
  • metronom
  • +
  • VIAS GmbH
  • +
  • VIAS Rail GmbH
  • +
  • AUTOZUG Sylt
  • +
  • Pressnitztalbahn
  • +
  • Südwestdeutsche Verkehrs-AG
  • +
  • agilis-Schnellzug
  • +
  • Süd-Thüringen-Bahn Express
  • +
  • Süd-Thüringen-Bahn
  • +
  • MittelrheinBahn (Trans Regio)
  • +
  • Ulmer Eisenbahnfreunde
  • +
  • Usedomer Bäderbahn1
  • +
  • vlexx
  • +
  • vlexx1
  • +
  • vlexx2
  • +
  • Nebenbahn Vaihingen-Enzweihingen
  • +
  • Wanderbahn im Regental
  • +
  • Wyker Dampfschiffs-Reederei Föhr-Amrum GmbH
  • +
  • Daadetalbahn
  • +
  • Wutachtalbahn
  • +
  • waldbahn - Die Länderbahn GmbH DLB
  • +
  • Kreisbahn Mansfelder Land
  • +
  • erixx
  • +
  • Adler-Schiffe
  • +
  • Bayerische Regiobahn
  • +
  • Bayerische Zugspitzbahn
  • +
  • Rhön-Zügle
  • +
  • Hochbahn U-Bahn
  • +
  • Hochbahn Bus
  • +
  • Neu KVG
  • +
  • EVB-Ma
  • +
  • AKMasten
  • +
  • HADAG-Z
  • +
  • VKP
  • +
  • VHH Bus
  • +
  • DivVgl/Waldorf1
  • +
  • Stadtverkehr Lindau
  • +
  • ASEAG Netliner
  • +
  • ABELLIO Rail NRW GmbH1
  • +
  • Hessische Landesbahn GmbH
  • +
  • Eurobahn
  • +
  • Friedrich Müller Omnibus GmbH
  • +
  • BahnTouristikExpress
  • +
  • Kein Bereich
  • +
  • Müller (FMO)
  • +
  • Erfurter Verkehrsbetriebe AG
  • +
  • VVB Völklinger Verkehrsbetriebe GmbH
  • +
  • Seilbahnen Thale
  • +
  • Stadtverkehr Aschaffenburg
  • +
  • Bus9
  • +
  • Strasse
  • +
  • Kahlgrund VG
  • +
  • BUS
  • +
  • SWL
  • +
  • POB Vnetz Hauptlinien
  • +
  • POB Vnetz Schülerverkehr
  • +
  • Abellio Rail Mitteldeutschland GmbH
  • +
  • VSH1
  • +
  • ARGE HRS Omnibus OHG
  • +
  • Bruns Reisen GmbH Varel
  • +
  • Aktiv Bus Flensburg GmbH
  • +
  • Autokraft Kiel GmbH
  • +
  • AllerBus
  • +
  • BREMERHAVEN BUS
  • +
  • Bittner/Emsland-Mitte
  • +
  • BUSPUNKT GmbH
  • +
  • Brünemeyer Reisen & Transporte GmbH
  • +
  • Bruns Reisen GmbH Bad Zwischenahn
  • +
  • Bremer Straßenbahn AG
  • +
  • Braunschweiger Verkehrs-GmbH
  • +
  • CeBus GmbH & Co. KG
  • +
  • Delbus GmbH & Co. KG
  • +
  • Delmenhorst-Harpstedter Eisenbahn GmbH
  • +
  • DB Regio Bus Nord GmbH
  • +
  • Hermann Edzards Omnibusbetrieb
  • +
  • Lkr. Emsland
  • +
  • Fischer Linienverkehre GmbH & Co. KG
  • +
  • Gerdes Reisen
  • +
  • W. Giese Nachf. Omnibusbetrieb GmbH
  • +
  • Göttinger Verkehrsbetriebe (GöVB)
  • +
  • Stadtbus Goslar GmbH
  • +
  • Kraftverkehrsgesellschaft Hameln mbH
  • +
  • Jacobs Reisedienst
  • +
  • SBV Janßen GmbH & Co. KG
  • +
  • Kreisbahn Aurich GmbH
  • +
  • KVG Stade GmbH & Co. KG
  • +
  • Lüchow-Schmarsauer Eisenbahn
  • +
  • Meyering Verkehrsgesellschaft mbH
  • +
  • Stadtbusgesellschaft Nienburg/Weser mbH
  • +
  • Verkehrsgemeinschaft Grafschaft Bentheim
  • +
  • Tjaden Nahverkehrs GmbH
  • +
  • RegioBus Hannover GmbH
  • +
  • Autobus Stoss GmbH
  • +
  • Stadtverkehr Eckernförde
  • +
  • Schaumburger Verkehrs-Gesellschaft mbH
  • +
  • Stadtwerke Lübeck Mobil GmbH
  • +
  • Stadtwerke Emden GmbH
  • +
  • SWN Stadtwerke Neumünster GmbH
  • +
  • Sylter Verkehrsgesellschaft
  • +
  • Kraftverkehrsgesellschaft mbH Braunschweig
  • +
  • Transdev Nord GmbH
  • +
  • üstra Hannoversche Verkehrsbetriebe AG
  • +
  • Reisedienst Hinrich Uffen
  • +
  • Verkehrsbetriebe Bachstein
  • +
  • Verkehrsbetriebe Wesermarsch GmbH
  • +
  • Verkehrsgemeinschaft Emsland-Süd
  • +
  • Verkehrsbetriebe Grafschaft Hoya GmbH
  • +
  • Peiner Verkehrsgesellschaft mbH
  • +
  • Landkreis Wolfenbüttel
  • +
  • Verkehrsbetriebe Kreis Plön GmbH
  • +
  • Verkehrsgesellschaft Landkreis Gifhorn mbH
  • +
  • Verkehrsbetriebe Oldenburger Land
  • +
  • Schrage Reisen
  • +
  • Stadtwerke Osnabrück AG - Verkehrsbetriebe
  • +
  • Verkehrsbetriebe Schleswig-Flensburg GmbH
  • +
  • Verkehr und Wasser GmbH (VWG)
  • +
  • Stadtwerke Verkehrsbetriebe Wilhelmshaven GmbH
  • +
  • Ert Wissmann Omnibusbetrieb GmbH
  • +
  • Wolfsburger Verkehrs-GmbH
  • +
  • Weser-Ems-Bus Anrufverkehre
  • +
  • Regionalbus Braunschweig GmbH
  • +
  • Jörg
  • +
  • Stadtbus Schweinfurt
  • +
  • PVU 8000er-Linien
  • +
  • Astel SV-Zgorzelec
  • +
  • Bus Stadtwerke Baden-Baden
  • +
  • KVIPVH
  • +
  • Fähren Wettin-Löbejün
  • +
  • DB Regio AG S-Bahn Rhein-Main
  • +
  • nahbus1
  • +
  • Rheinbahn MetroBus
  • +
  • Heidekreis
  • +
  • RVHI Regionalverkehr Hildesheim GmbH
  • +
  • SVHI Stadtverkehr Hildesheim GmbH
  • +
  • Willy Hummert Omnibusverkehr GmbH
  • +
  • Wyker Dampfschifs-Reederei1
  • +
  • rebus
  • +
  • SSB-Bus (nicht VVS)
  • +
  • Stadtwerke Mühlheim1
  • +
  • Stadtwerke Rodgau1
  • +
  • Regionalverkehre Start Deutschland GmbH
  • +
  • Regionalverkehre Start Deutschland GmbH
  • +
  • Dänische Staatsbahnen
  • +
  • HZPP
  • +
  • MAV
  • +
  • PKP Intercity
  • +
  • SNCB
  • +
  • SNCF
  • +
  • Trenitalia
  • +
  • ZSSK
  • +
  • Ceske Drahy
  • +
  • NordWestBahn
  • +
  • Gemeinde Ringgau
  • +
  • DB Fernverkehr AG
  • +
  • Regionalverkehre Start Unterelbe mbH
  • +
  • SWU Überlingen
  • +
  • ELKO
  • +
  • Ehard
  • +
  • VGN Kraus Reisen
  • +
  • Bus10
  • +
  • MKB-MühlenkreisBus GmbH
  • +
  • Omnibus-Nahverkehrs-Service
  • +
  • Landkreis Heilbronn
  • +
  • Landkreis Tübingen
  • +
  • Anrufsammeltaxi1
  • +
  • SV Hohenstein-Ernstthal Bus
  • +
  • Kraichtal Bus GbR
  • +
  • Sonstige Unternehmen
  • +
  • Bus11
  • +
  • Festbus Laupheim
  • +
  • Kieler Verkehrsgesellschaft mbH
  • +
  • Krümberg Reisen GmbH
  • +
  • Schlepp- und Fährgesellschaft Kiel mbh (SFK)
  • +
  • DB Regio Mitte
  • +
  • ABELLIO Rail Baden-Württemberg GmbH
  • +
  • Go-Ahead Verkehrsgesellschaft Deutschland mbH
  • +
  • HarzBus GbR
  • +
  • die linie
  • +
  • ARRIVA_NML
  • +
  • ARRIVA_ZL
  • +
  • Aachener Straßenbahn und Energieversorgungs-AG
  • +
  • WestVerkehr GmbH
  • +
  • Hartmann
  • +
  • Scherer Reisen Omnibus Gesellschaft mbH
  • +
  • Komm mit
  • +
  • AB____ ABELLIO Rail Baden-Württemberg GmbH
  • +
  • Schwäbische Alb-Bahn
  • +
  • Verkehrsgemeinschaft Landkreis Gotha GbR
  • +
  • Rohde Verkehrsbetriebe NF Mitte
  • +
  • Fähre Weiße Flotte
  • +
  • Fähre Antaris
  • +
  • Meier
  • +
  • Stadtwerke Dachau, Dachau1
  • +
  • Lollsfahrten
  • +
  • Dortmunder Stadtwerke Taxibus
  • +
  • Leibfritz
  • +
  • Busreisen Andreesen Morten GmbH & Co. KG
  • +
  • Vineta Autobus GmbH
  • +
  • Auro
  • +
  • Schneider
  • +
  • Hock
  • +
  • Grasmann neu
  • +
  • UBB-Bus1
  • +
  • Gebken Reisen GmbH
  • +
  • Hutfilters Reisedienst GmbH & Co.
  • +
  • Omnibusbetrieb Nienaber
  • +
  • Externe Leistungen
  • +
  • Buchsatz
  • +
  • Schülerlinien CVAG
  • +
  • SV KO Oberwiesenthal Bus
  • +
  • Regensburger Verkehrsbetrieb1
  • +
  • Schülerlinien Region Zwickau
  • +
  • Stadtverkehr Pfaffenhofen (Ilm)
  • +
  • Delmenhorst-Harpstedter Eisenbahnhfreunde e.V
  • +
  • Westliche Wälder 01
  • +
  • Wirtschaftsbetrieb Bad Hersfeld
  • +
  • Bündel_1_4_6
  • +
  • TRI Train Rental GmbH
  • +
  • LB 1 Vogel VGN 204 - VGN 248
  • +
  • ARGE Nahverkehrsgesellschaft Merzig-Wadern
  • +
  • Verkehrsgesellschaft Landkreis Osnabrück
  • +
  • Verkehrsunternehmen Wartburgmobil VUW gkAöR
  • +
  • Bayer
  • +
  • Tempus mobil
  • +
  • Waibel Bus
  • +
  • Verkehrsgemeinschaft Vechta
  • +
  • Stadtbus Kronberg im Taunus1
  • +
  • Linienbündel 5 (Abteiland)
  • +
  • S-Bahn
  • +
  • Omnibus Grötzinger GmbH
  • +
  • Heidenheimer Verkehrsgesellschaft1
  • +
  • Eisenbahnen und Verkehrsbetriebe Elbe-Weser GmbH
  • +
  • Reisedienst von Rahden GmbH & Co. KG
  • +
  • Weserfähre GmbH
  • +
  • Tschechische Republik (Sonstige)
  • +
  • WestfalenBahn
  • +
  • Omnibus Verkehrs Gesellschaft mbH Sonneberg/Thür.
  • +
  • RBA Dillingen
  • +
  • Unbekannt
  • +
  • Reisebüro Winkelmann GmbH
  • +
  • Würzburger Straßenbahn
  • +
  • Personen- und Reiseverkehrs GmbH Greiz
  • +
  • LWW Bustouristik GmbH
  • +
  • Rurtalbus GmbH
  • +
  • Österreichische Bundesbahnen
  • +
  • Linienverkehr
  • +
  • Weissenburg
  • +
  • Linienverkehr1
  • +
  • DB Regio AG Mitte
  • +
  • cantus Verkehrsgesellschaft
  • +
  • Erfurter Verkehrsbetriebe AG
  • +
  • Nordhäuser Verkehrsbetriebe GmbH
  • +
  • Ostalbkreis
  • +
  • ARGE SFB
  • +
  • Frölich Linie
  • +
  • Stadt Pohlheim
  • +
  • Dürk-Reisen
  • +
  • Bus (SSB)
  • +
  • Expressbus Relex1
  • +
  • Alb-Donau-Kreis1
  • +
  • Andre-Touristk
  • +
  • Vetter Verkehrsbetriebe
  • +
  • Bus12
  • +
  • Neustadt an der Aisch
  • +
  • Rhön-Grabfeld
  • +
  • Bus (Stadtverkehr)
  • +
  • Bus (Region)
  • +
  • Nachtbus
  • +
  • Regionalverkehr Oberbayer (überregional)
  • +
  • DB ZugBus (RAB) Bereich Bus
  • +
  • Miltenberg-Elsavatal
  • +
  • Autokraft Kiel GmbH Anrufverkehre
  • +
  • DB Region Nord Anrufverkehre
  • +
  • ESTW
  • +
  • LB2 Vogel VGN 202-202-246
  • +
  • Schienenersatzverkehre
  • +
  • Reisebüro Beckermann
  • +
  • Weserfähre Bremen
  • +
  • Rheinfähre Maul GmbH
  • +
  • Odenwald-Regional-Ges.
  • +
  • Busverkehr Wissmüller
  • +
  • Schnappinger
  • +
  • Stadtbus Bad Wildungen
  • +
  • Bus13
  • +
  • Stadtbus Kulmbach
  • +
  • Weser-Ems-Bus Auftragnehmerleistung von Wilmering
  • +
  • Weser-Ems-Bus Betrieb Bremen
  • +
  • Weser-Ems-Bus Betrieb Ostfriesland
  • +
  • Weser-Ems-Bus Betrieb Osnabrück
  • +
  • RAB-Bus (ZÖA-LB-NW)
  • +
  • Hal över
  • +
  • Go-Ahead Baden-Württemberg GmbH
  • +
  • Görlitzer Verkehrsbetriebe
  • +
  • VGN
  • +
  • Stadtbus Konstanz
  • +
  • Landkreis Konstanz
  • +
  • Stadtbus Singen (Htw)
  • +
  • Freizeitverkehr
  • +
  • U-Bahn Nürnberg
  • +
  • Tram Nürnberg
  • +
  • Stadtverkehr Fürth
  • +
  • Schmetterling Reisen
  • +
  • Erlanger Stadtverkehr
  • +
  • Hetzler & Pfadt vorher Viabus
  • +
  • Regional Bus Stuttgart
  • +
  • Westpfalz
  • +
  • HzL-Zug
  • +
  • Ebenbeck
  • +
  • Frey
  • +
  • Mückenhausen
  • +
  • Pellkofer
  • +
  • Reicheneder
  • +
  • Speckner
  • +
  • Stadtwerke Dingolfing
  • +
  • Stadtwerke Landau
  • +
  • Hülsmann Reisen
  • +
  • Stadtbus Weiden
  • +
  • Überlandverkehr
  • +
  • Wagenhäuser
  • +
  • VGS
  • +
  • KVIP-AST
  • +
  • Ratzeburg-Möllner Verkehrsbetriebe GmbH
  • +
  • Überlandlinien Schwandorf
  • +
  • sonstige Linien
  • +
  • Personenverkehrsgesellschaft Altmarkkreis Salzwedel mbH
  • +
  • TGO-EFA Datenversorgung
  • +
  • SWG-EFA Datenversorgung
  • +
  • S-Bahn Hannover
  • +
  • Go-Ahead Bayern GmbH
  • +
  • FlixBus-de
  • +
  • FlixTrain-de
  • +
  • Bus Engel
  • +
  • Fahrplan 2022 Fürth
  • +
  • Fahrplan 2022 AST/Rufbus
  • +
  • Kreativ Tours GmbH
  • +
  • Stroh Bus-Verkehrs GmbH, Offenbach
  • +
  • Georg Becker GmbH & Co. KG
  • +
  • Schau in's Land Hain GmbH
  • +
  • Reise Fischer GmbH
  • +
  • Staab
  • +
  • Wendelsteinbahn
  • +
  • Bayerische Seen-Schifffahrt1
  • +
  • Chiemsee-Schiffahrt Ludwig Feßler
  • +
  • Dillschnitter GmbH und Co. KG
  • +
  • Zickenheiner GmbH
  • +
  • Bus7
  • +
  • Omnibusverkehr Gloss
  • +
  • Zarth GmbH1
  • +
  • Kreis Euskirchen Verkehrsunternehmen
  • +
  • Regionalverband Großraum Braunschweig
  • +
  • DB Regio Bus Mitte1
  • +
  • BKR Mobility
  • +
  • Kalmer Reisen GmbH
  • +
  • Stadtverkehr Herzogenaurach
  • +
  • Grand Est
  • +
  • Bad Salzdetzfurth
  • +
  • Ilmebahn GmbH
  • +
  • Scheithauer & Weihrauch GbR
  • +
  • Verkehrsgesellschaft Südniedersachsen mbH
  • +
  • Weihrauch Uhlendorff GmbH
  • +
  • Gemeinde Ebhausen
  • +
  • Regiobus Uhlendorff GmbH & Co. KG
  • +
  • Scheithauer Reisen
  • +
  • Hörmooslinie
  • +
  • Regionalbus Zweibrücken
  • +
  • CityBus Mobil GmbH
  • +
  • VerkehrsService GmbH Groß-Gerau
  • +
  • Verkehrsbetriebe des Landkreises Leer GmbH
  • +
  • Flexible Bedienformen ADK
  • +
  • DB Regio Bus Ost GmbH1
  • +
  • BKW Bad Wildungen
  • +
  • Bamberg
  • +
  • Cargo Logistik Rail Service
  • +
  • Bus14
  • +
  • SWEG Bahn Stuttgart
  • +
  • RheinRuhrBahn
  • +
  • Regionalverkehre Start Deutschland GmbH
  • +
  • Omnibus Verkehr Oberlausitz
  • +
  • Firma Schieck
  • +
  • Verkehr Hainich OHG
  • +
  • Verkehr Werraland OHG
  • +
  • Verkehr Werra OHG
  • +
  • Rohde Verkehrsbetriebe Ostholstein Nord
  • +
  • Start Deutschland GmbH SEV
  • +
  • Start Deutschland GmbH
  • +
  • Mainzer Mobilität
  • +
  • Friedrich Müller Omnibus im KVSH
  • +
  • VGH-Verkehrsgesellschaft Hoyerswerda
  • +
  • Arendt Busbetrieb GmbH
  • +
  • Regionale ö. Bahn der Stadt Pfullendorf
  • +
  • 02
  • +
  • 04
  • +
  • Rathje
  • +
  • Autobus Stoss GmbH1
  • +
  • Bus15
  • +
  • Vonau Reisedienst GmbH & Co. KG
  • +
  • Ebenbeck1
  • +
  • Wertach 01 (ab j24)
  • +
  • Stauden 02 (ab j24)
  • +
  • Sieghart
  • +
  • Hahne Reisen e.K
  • +
  • Omnibusunternehmen Paul Knühl e.K.
  • +
  • Lippe1
  • +
  • Lippe2
  • +
  • Lippe3
  • +
  • Lippe4
  • +
  • Lippe5
  • +
  • Bad Salzuflen
  • +
  • Lemgo
  • +
  • Detmold
  • +
  • VGL-AST/ALF
  • +
  • GBN-moBiel-Stadtbahn
  • +
  • Bielefeld Diverse
  • +
  • GBN-AST/ALF
  • +
  • Lübbecke A
  • +
  • Buende B
  • +
  • Minden C
  • +
  • Löhne/Oey D
  • +
  • Herford E
  • +
  • Vlotho F
  • +
  • MHS-AST/ALF
  • +
  • GTSüdwest
  • +
  • GTNord
  • +
  • GTSüdost
  • +
  • GTStadt
  • +
  • GTNordwest
  • +
  • NVG-AST/ALF
  • +
  • bkr-mobility & DB Regio Bus Mitte
  • +
  • bkr-mobility & DB Regio Bus Mitte & Sche
  • +
  • ExpressBus1
  • +
  • NachtTram1
  • +
  • NachtBus
  • +
  • SEV Tram
  • +
  • Koenigsbrunn Stadtbus
  • +
  • zz_TaxiXXL
  • +
  • Hofmann Omnibusverkehr
  • +
  • Lokale Nahverkehrsgesellschaft Fulda mbH
  • +
  • Regionalverkehr Westsachsen GmbH
  • +
  • Stadtverkehr Friedrichshafen
  • +
  • Mittelhaardt Nahverkehrsgesellschaft mbH
  • +
  • Vorderpfalz
  • +
  • Nahverkehrsbetriebe Birkenfeld
  • +
  • OstalbMobil
  • +
  • VRE24 Bus Region 1000er Linien
  • +
  • Linienverkehr2
  • +
  • zz_TZTüb
  • +
  • SEV Nacht
  • +
  • Rhein-Sieg-Verkehrsgesellschaft mbH
  • +
  • Griesar Reisen GmbH
  • +
  • Hoffmann-Reisen
  • +
  • Bischoff-Touristik GmbH & Co. KG
  • +
  • bkr-mobility & Scherer Reisen
  • +
  • bkr mobility
  • +
  • Fährgemeinschaft Kaub
  • +
  • DB Regio Bus Mitte GmbH1
  • +
  • Bustouristik Marenbach GmbH & Co. KG
  • +
  • Meso and more GmbH
  • +
  • Modigell & Scherer GmbH
  • +
  • Omnibusbetrieb Orthen GmbH
  • +
  • Rheinfähre Linz-Kripp GmbH
  • +
  • Koblenzer Verkehrsbetriebe GmbH
  • +
  • Verkehrsbetriebe Mittelrhein AWV
  • +
  • Martin Becker GmbH & Co. KG
  • +
  • DB Regio Bus Rhein-Mosel GmbH
  • +
  • RMV Rhein-Mosel Verkehrsgesellschaft mbH
  • +
  • FriBus
  • +
  • Westerwaldbus des Kreises Altenkirchen G
  • +
  • Jung Bus GmbH
  • +
  • Verbandsgemeindeverwaltung Montabaur
  • +
  • Fähre Boppard
  • +
  • Fähre Loreley GmbH & Co. KG
  • +
  • Stemmler Bus GmbH
  • +
  • Mittelrheinischer Verkehrsbetrieb GmbH
  • +
  • KVG Zickenheiner GmbH
  • +
  • Verkehrsbetriebe Mittelrhein VREM
  • +
  • Verkehrsbetrieb Rhein-Westerwald GmbH
  • +
  • Wittelsbacher Land 03 (ab j21)
  • +
  • Paartal 01
  • +
  • Zusam1
  • +
  • Wittelsbacher Land 01
  • +
  • Friedberg 011
  • +
  • Wittelsbacher Land 02 (ab j21)
  • +
  • Bus Richard Eberhardt GmbH
  • +
  • RBS AA + FMO SHA
  • +
  • Rurseeschifffahrt
  • +
  • Schienenersatzverkehr
  • +
  • OMNIBUS
  • +
  • STRASSENBAHN
  • +
  • SONDERVERKEHRE
  • +
  • Anrufsammeltaxi
  • +
  • GVG 1 (Bündel Nr. 3)
  • +
  • Schwabenbus 7 (Bündel Nr. 18)
  • +
  • STVP
  • +
  • BOGESTRA City-Express
  • +
  • BOGESTRA Schnellbus
  • +
  • BOGESTRA Stadtbahn, Linie U35
  • +
  • BOGESTRA Straßenbahn
  • +
  • BOGESTRA Bus
  • +
  • Sonstige VU
  • +
  • Buchmann
  • +
  • Bühler
  • +
  • Ehrmann
  • +
  • Grabherr
  • +
  • Hagmann
  • +
  • Hutter
  • +
  • Müller
  • +
  • Isny
  • +
  • Reisch
  • +
  • Schuler
  • +
  • Strauss
  • +
  • Volk
  • +
  • Straßenbahn
  • +
  • Bahnen der Stadt Monheim
  • +
  • Mülheimer Verkehrsgesellschaft
  • +
  • Busverkehr Rheinland
  • +
  • Landkreis Cham
  • +
  • Calw VPC
  • +
  • Schützenbus Biberach
  • +
  • Stadtwerke Biberach
  • +
  • Klemens Diesch
  • +
  • Diesch GmbH
  • +
  • Gairing BC
  • +
  • Reinalter
  • +
  • BBS Schapfl
  • +
  • Miller
  • +
  • Probst
  • +
  • Bottenschein Laupheim
  • +
  • Fromm
  • +
  • Klöpfer
  • +
  • Walk
  • +
  • SWU Verkehr
  • +
  • RAB
  • +
  • NeUBus_RBA
  • +
  • Gairing NU
  • +
  • Weidachstein
  • +
  • Oster
  • +
  • Braunmiller
  • +
  • SWU - SAM
  • +
  • Dortmunder Stadtwerke U-Bahn
  • +
  • Dortmunder Stadtwerke Bus
  • +
  • Dortmunder Stadtwerke Hochbahn
  • +
  • DVG Strab
  • +
  • DVG Bus
  • +
  • DVG
  • +
  • Essener Verkehrs AG, Omnibus
  • +
  • Essener Verkehrs AG, U-Bahn
  • +
  • Essener Verkehrs AG, Straßenbahn
  • +
  • Private Omnibusunternehmer GmbH
  • +
  • VAG - BUS
  • +
  • VAG - Stadtbahn
  • +
  • FREMD - Unternehmer
  • +
  • Taxi
  • +
  • HCR alles
  • +
  • Hagener Straßenbahn AG Bus
  • +
  • Nachtverkehr
  • +
  • Busverkehr Nordschwarzwald GmbH
  • +
  • Bus AVG
  • +
  • Bus RVS
  • +
  • Bus Wöhrle
  • +
  • Bus VERA
  • +
  • Bus SWEG
  • +
  • Taxiverkehre
  • +
  • Tram VBK
  • +
  • Bus VBK
  • +
  • SEV R+S (R-Bahn + S-Bahn)
  • +
  • SEV T+B (Tram + Sonstige Busse)
  • +
  • Märkische Verkehrsgesellschaft
  • +
  • MVG Bürgerbuspläne
  • +
  • MVG Shuttelverkehr FH Iserlohn
  • +
  • MVG ALF/AST Verkehr
  • +
  • Nicht in MVV integriert
  • +
  • MVV-Ruftaxi
  • +
  • MVV-Regionalbus
  • +
  • ExpressBus
  • +
  • Stadtbus
  • +
  • NIAG
  • +
  • Beck + Schubert GmbH & CoKG
  • +
  • Rheinbahn Stadtbahn
  • +
  • Rheinbahn Strab
  • +
  • Rheinbahn Bus
  • +
  • Rheinbahn BusNE
  • +
  • Rheinbahn SkyTrain
  • +
  • SBG - BUS
  • +
  • Stadtwerke Oberhausen
  • +
  • Städtische Werke Krefeld Strab
  • +
  • Städtische Werke Krefeld Bus
  • +
  • Neusser Stadtwerke GmbH Bus
  • +
  • Stadtwerke Remscheid
  • +
  • Stadtwerke Solingen
  • +
  • Verkehrsgesellschaft Ennepe-Ruhr mbH
  • +
  • Vestische Straßenbahnen GmbH Bus
  • +
  • RVM Kreis Coesfeld
  • +
  • RVM Kreis Warendorf
  • +
  • Verkehrsgesellschaft Kreis Unna mbH
  • +
  • RLG AST
  • +
  • Westfalen Bus
  • +
  • RVM Kreis Steinfurt
  • +
  • Schäpers Kreis ST
  • +
  • Weilke Kreis ST
  • +
  • Emsdettener Busreisen GmbH
  • +
  • Euregio Verkehrsgesellschaft
  • +
  • RVM Kreis Borken
  • +
  • Kottenstedte GmbH
  • +
  • StadtBus Rheine
  • +
  • Gronemann GmbH
  • +
  • RLG Hochsauerlandkreis
  • +
  • RLG Kreis Soest
  • +
  • NVV
  • +
  • Busverkehr Ruhr-Sieg
  • +
  • Stadtwerke Münster
  • +
  • Veelker GmbH & Co. KG
  • +
  • Verkehrsbetriebe Hamm
  • +
  • VGBreitenbach
  • +
  • Verkehrsgemeinschaft Osnabrück
  • +
  • PVU-1000er-Linien
  • +
  • Bus Region (Private VU)
  • +
  • Bus BA BT PVU-Region
  • +
  • SVZ Zwickau Strab
  • +
  • SVZ Zwickau Bus
  • +
  • RV RVW Bus
  • +
  • SV CRM_GC_Bus
  • +
  • SV Wendler Bus
  • +
  • RV ASR Bus
  • +
  • Stollberg Bus
  • +
  • Städteverkehr Grüne Linie Bus
  • +
  • SV Zschopau Bus
  • +
  • SV Limbach-Oberfrohna Bus
  • +
  • SV Chemnitz Strab
  • +
  • SV Chemnitz Bus
  • +
  • RV BVO Bus
  • +
  • SV Annaberg-Buchholz Bus
  • +
  • SV Aue Bus
  • +
  • SV Lößnitz Bus
  • +
  • SV Marienberg Bus
  • +
  • SV Schwarzenberg Bus
  • +
  • Bahnersatzverkehr
  • +
  • Chemnitzer Modell
  • +
  • Drahtseilbahn
  • +
  • RV Mittweida Bus
  • +
  • SV Burgstädt Kleinfzg
  • +
  • SV Frankenberg Bus
  • +
  • SV Mittweida Bus
  • +
  • SV Rochlitz Bus
  • +
  • RV Freiberg Bus
  • +
  • SV Flöha Bus
  • +
  • SV Freiberg/Brand-Erbisdorf Bus
  • +
  • RV Döbeln
  • +
  • SV Döbeln
  • +
  • VVV
  • +
  • DB-Nahverkehr
  • +
  • RBO-Bus
  • +
  • KVG-Bus
  • +
  • Autobusy Karlovy Vary
  • +
  • BIELAWA
  • +
  • CD
  • +
  • Przewozy Regionalne
  • +
  • Ostdeutsche Eisenbahn GmbH
  • +
  • Koleje Dolnoslaskie
  • +
  • Lassak-Reisen
  • +
  • Trilex
  • +
  • OBB-Beck
  • +
  • S.Wilhelm-OBB
  • +
  • Schmidt-Reisen
  • +
  • Waldeisenbahn Muskau
  • +
  • CSAD-Liberec
  • +
  • MZK Boleslawiec
  • +
  • PKS Boleslawiec
  • +
  • PKS VOYAGER
  • +
  • PKS Jelenia Gora
  • +
  • MZK Jelenia Góra
  • +
  • Regionalbusse (privat)
  • +
  • Anruf-Sammel-Taxi
  • +
  • RNV LU-MA (Strab)
  • +
  • RNV Heidelberg (Strab)
  • +
  • RNV HD-MA-Weinheim (Strab)
  • +
  • Rheinfähre Altrip
  • +
  • RNV Mannheim (Bus)
  • +
  • RNV Ludwigshafen(Bus)
  • +
  • RNV Heidelberg (Bus)
  • +
  • Südwestdeutsche-Verkehrs-AG
  • +
  • Stadtwerke Bad Dürkheim
  • +
  • Stadtwerke Eberbach
  • +
  • Stadtwerke Lampertheim
  • +
  • Stadtwerke Viernheim
  • +
  • PalatinaBus GmbH
  • +
  • Busverkehr-Rhein-Neckar
  • +
  • Omnibusverkehr Rhein-Nahe GmbH
  • +
  • Verkehrsgesellschaft Untermain
  • +
  • Verkehrsgesellschaft Gersprenztal/Sauter
  • +
  • Verkehrsbetriebe Leininger Land/Behles
  • +
  • Reisedienst Walter Müller Biblis
  • +
  • Berberich Walldürn
  • +
  • Verkehrsgemeinschaft Main-Tauber
  • +
  • Queichtal Nahverkehrsgesellschaft
  • +
  • Regionalbus-Westpfalz
  • +
  • Sonstige Private im VRN
  • +
  • Private nicht im VRN
  • +
  • BASF Werkslinienverkehr
  • +
  • Sonstige Fährbetriebe
  • +
  • Stadtverkehr Ingelheim
  • +
  • ORN im RNN
  • +
  • Stadtverkehr Bingen
  • +
  • Stadtwerke Kaiserslautern
  • +
  • Stadtwerke Pirmasens
  • +
  • Stadtwerke Zweibrücken
  • +
  • restliches Übergangstarifgebiet
  • +
  • Kölner VB
  • +
  • Stadtwerke Bonn
  • +
  • RSVG
  • +
  • OVAG
  • +
  • Meckenheim
  • +
  • Euskirchen
  • +
  • Bergisch Gladbach
  • +
  • Wermelskirchen
  • +
  • REVG
  • +
  • Stadtverkehr Euskirchen
  • +
  • Stadtverkehr Hürth
  • +
  • Stadtverkehr Brühl
  • +
  • Schäfer Reisen
  • +
  • Stadtwerke Wesseling
  • +
  • Stadtverkehr SHA
  • +
  • Röhler
  • +
  • Niederrheinwerke Viersen mobil GmbH
  • +
  • NE-Zug (VVS)
  • +
  • Stadtbahn
  • +
  • Zahnrad-/Seilbahn
  • +
  • Privatunternehmer-Bus (VVS)
  • +
  • Nachtbus (SSB)
  • +
  • Nachtbus (Region)
  • +
  • Privatunternehmer-Bus (nicht VVS)
  • +
  • Ruftaxi entlang Linie
  • +
  • Ruftaxi nicht entlang Linie
  • +
  • Linientaxi
  • +
  • Museumsbahn (GES)
  • +
  • Museumsstraßenbahn (SHB)
  • +
  • Privatunternehmer-Bus (Enzkreis)
  • +
  • BRS Busverkehr Ruhr-Sieg GmbH
  • +
  • Verkehrsbetriebe Westfalen-Süd GmbH
  • +
  • Schwebebahn
  • +
  • Wuppertaler Stadtwerke
  • +
  • Omnibusbetrieb Edith Meichsner GmbH
  • +
  • Ingolstädter Verkehrsgesellschaft mbH
  • +
  • Landkreis Landshut
  • +
  • Landkreis Mühldorf (Inn)
  • +
  • NEW mobil und aktiv Mönchengladbach GmbH
  • +
  • Jägle
  • +
  • Seitz
  • +
  • Demmelmair
  • +
  • Egenberger
  • +
  • Osterrieder
  • +
  • Schwarzer
  • +
  • BBS Brandner (VMK)
  • +
  • BBS Verkehrs Ges. (VMK)
  • +
  • Klaus
  • +
  • Brandner/Babenhausen (VMK)
  • +
  • Bettighofer
  • +
  • Dirr/Stricker
  • +
  • Gruber
  • +
  • Kirchweihtal
  • +
  • Brandner Unterallgäu
  • +
  • Angele-Braunmiller
  • +
  • Stadtverkehr Bad Wörishofen
  • +
  • Stadtverkehr Memmingen/Angele
  • +
  • Berchtold
  • +
  • Steber Reisen / Stadtverkehr Mindelheim
  • +
  • Haslach Bus
  • +
  • Stadtbus Kempten
  • +
  • Baumeister
  • +
  • Schattmeier
  • +
  • Schweighart
  • +
  • Schwabenbus
  • +
  • RBA Ingolstadt
  • +
  • RBA Kempten
  • +
  • RBA Lindau
  • +
  • NeuBus
  • +
  • RBA Betrieb Augsburg
  • +
  • RBA Neu Ulm
  • +
  • Schwabenbus Dillingen
  • +
  • Landkreis Rottal
  • +
  • Regional-Busse RBS
  • +
  • RVS
  • +
  • Regensburger Verkehrsbetrieb
  • +
  • Stadtverkehr Schwandorf (WiesBus)
  • +
  • RegioBus NVH
  • +
  • U-Bahn München
  • +
  • Bus
  • +
  • Stadtwerke Passau
  • +
  • Stadtwerke Trier
  • +
  • Moselbahn
  • +
  • Saargau on Tour
  • +
  • Rhein-Mosel Verkehrsgesellschaft mbH
  • +
  • Linden Reisen
  • +
  • Eifel-Mosel Verkehrsgesellschaft
  • +
  • Robert
  • +
  • Müller-Kylltal
  • +
  • Jozi-Reisen
  • +
  • Stadtverkehr Tübingen GmbH
  • +
  • Kreisverkehrsbetrieb Sigmaringen
  • +
  • Omnibus-Verkehr Ruoff GmbH
  • +
  • Eissler-Reisen GmbH & Co.KG
  • +
  • Zollern-Alb-Anrufbus
  • +
  • SWEG (HzL) Bus
  • +
  • RSV-GmbH Hogenmüller & Kull Co.
  • +
  • Stadt Rottenburg am Neckar
  • +
  • Edel Reisen
  • +
  • Beck GmbH
  • +
  • Gebr. Frankenhauser GbR
  • +
  • Omnibus Groß GmbH
  • +
  • HVB Wiest + Schürmann GmbH
  • +
  • Fa. Willy Kopp Omnibusverkehr
  • +
  • Omnibus Kurzenberger GmbH
  • +
  • Wilhelm Lutz Omnibusverkehr GmbH
  • +
  • Gebr. Maas GmbH & Co.KG
  • +
  • Reisch GmbH
  • +
  • Omnibusverkehr Stoß GmbH
  • +
  • Stadtwerke Bad Urach
  • +
  • Bürgerbusverein e.V.
  • +
  • Stadtwerke Sigmaringen
  • +
  • Knoll Fahrtenservice
  • +
  • Landkreis Tuttlingen
  • +
  • Verkehrsbetrieb Greifswald
  • +
  • Mecklenburg Vorpommersche VG
  • +
  • Verkehrsgesellschaft Vorp.-Greifswald
  • +
  • DVB-Straßenbahn
  • +
  • OVPS-Stadtbus
  • +
  • Kirnitzschtalbahn
  • +
  • Busübernahme OVPS
  • +
  • DVB-Bus
  • +
  • RVD-Busverkehr
  • +
  • VGM-Busverkehr
  • +
  • RBO-Busverkehr
  • +
  • VGH Busverkehr
  • +
  • Bergbahn
  • +
  • Fähre
  • +
  • Bus-RSAG
  • +
  • Ruftaxi
  • +
  • Schwerin Bus
  • +
  • Omnibus
  • +
  • NEB Betriebsgesellschaft mbH
  • +
  • Verkehrsgesellschaft Teltow-Fläming mbH
  • +
  • S-Bahn Berlin GmbH
  • +
  • Verkehrsgesellschaft Oberspreewald-Lausitz mbH
  • +
  • Oberhavel Verkehrsgesellschaft mbH
  • +
  • Verkehrsbetriebe Brandenburg an der Havel GmbH
  • +
  • Günter Anger Güterverkehrs GmbH & Co. Omnibusvermietung KG
  • +
  • Schöneicher Rüdersdorfer Straßenbahn GmbH
  • +
  • Uckermärkische Verkehrsgesellschaft
  • +
  • Havelbus Verkehrsgesellschaft mbH
  • +
  • Cottbusverkehr GmbH
  • +
  • Busverkehr Oder-Spree GmbH
  • +
  • Barnimer Busgesellschaft mbH
  • +
  • Berliner Verkehrsbetriebe
  • +
  • Stadtverkehrsgesellschaft mbH Frankfurt (Oder)
  • +
  • Regionale Verkehrsgesellschaft Dahme-Spreewald mbH
  • +
  • Strausberger Eisenbahn GmbH
  • +
  • Verkehrsmanagement Elbe-Elster GmbH
  • +
  • Busverkehr Gerd Schmidt
  • +
  • ORP Ostprignitz-Ruppiner Personennahverkehrsgesellschaft mbH
  • +
  • Verkehrsbetrieb Potsdam GmbH
  • +
  • Gemeinde Seeheim-Jugendheim
  • +
  • FahrPlan Verkehrsgesellschaft mbH
  • +
  • Kreisverkehrsgesellschaft Main-Kinzig mbH
  • +
  • Omnibus Sauter
  • +
  • HLB Hessenbus Hofheim
  • +
  • Stadtwerke Verkehrsgesellschaft Frankfurt
  • +
  • HEAG Mobilo
  • +
  • Stadtwerke Oberursel
  • +
  • Omnibusbetrieb Heuser GmbH
  • +
  • Becker und Bender Busverkehr GbR
  • +
  • Stadtwerke Rüsselsheim
  • +
  • Erfurter Bahn
  • +
  • Stadtwerke Gießen
  • +
  • Magistrat der Stadt Homburg v.d.H.
  • +
  • HEAG mobiBus GmbH + Co. KG
  • +
  • Stadt Friedrichsdorf
  • +
  • Stadtwerke Marburg GmbH
  • +
  • LNG Fulda
  • +
  • Offenbacher Verkehrsbetriebe GmbH
  • +
  • Omnibusbetrieb Winzenhöler GmbH + Co. KG
  • +
  • Transdev Rhein-Main
  • +
  • ALV Vogelsberg
  • +
  • Hanauer Straßenbahn GmbH
  • +
  • Verkehrsges. Gersprenztal
  • +
  • Stadtwerke Langen GmbH
  • +
  • Fa. Stadtwerke Bad Vilbel GmbH
  • +
  • Fa. Jungermann
  • +
  • VGO Gießen
  • +
  • ALV Marburg
  • +
  • Stadtwerke Bad Nauheim
  • +
  • VGF Fulda
  • +
  • Urberacher Omnibusbetrieb
  • +
  • Nassauische Verkehrsgesellschaft mbH Bogel
  • +
  • Medenbach Traffic GmbH
  • +
  • ALV Oberhessen
  • +
  • Stadtwerke Dietzenbach
  • +
  • Wetzlarer Verkehrsbetriebe und Reisebüro GmbH
  • +
  • Stadtwerke Neu-Isenburg
  • +
  • Main-Taunus-Verkehrsgesellschaft mbH
  • +
  • Karl Hasenauer GmbH & Co. KG
  • +
  • In-der-City-Bus
  • +
  • RDG Regionalverkehrsdienst Gründau E. Laubach e.K.
  • +
  • Stadtverkehr Limburg
  • +
  • Verkehrsgesellschaft Lahn-Dill-Weil mbH (LDK)
  • +
  • RhönEnergie Bus GmbH
  • +
  • Frieda Gass
  • +
  • Arnold Engelhardt GmbH
  • +
  • Regionalverkehr Main-Kinzig GmbH
  • +
  • Müller Omnibusbetrieb
  • +
  • VGO Alsfeld
  • +
  • ESWE Verkehrsgesellschaft mbH
  • +
  • Becker-Bus GmbH+Co.KG, Langen
  • +
  • Erletz
  • +
  • Verkehrsbetriebe Dreieich
  • +
  • Kirchgäßner Reisen
  • +
  • Verkehrsgesellschaft Gießen mbH
  • +
  • Stroh Busverkehr GmbH
  • +
  • VGO Friedberg
  • +
  • Stadtverkehr Maintal
  • +
  • PNVG Merseburg-Querfurt
  • +
  • Mansfelder Bergwerksbahn
  • +
  • Nordsachsen Mobil
  • +
  • Nahverkehrsgesellschaft Jerichower Land
  • +
  • Magdeburger Weiße Flotte
  • +
  • KVG Salzland
  • +
  • Leipziger Verkehrsbetriebe
  • +
  • Harzer Schmalspurbahnen
  • +
  • Halberstädter Verkehrs-GmbH
  • +
  • Vetter GmbH
  • +
  • Stendalbus
  • +
  • Omnibusbetrieb Saalekreis
  • +
  • Verkehrsgesellschaft Südharz
  • +
  • THÜSAC
  • +
  • Regionalbus Leipzig GmbH
  • +
  • Bernburger Freizeit - Parkeisenbahn Krumbholz
  • +
  • Magdeburger Verkehrsbetriebe
  • +
  • Regiobus Mittelsachsen
  • +
  • Hallesche Verkehrs-AG
  • +
  • Saarbahn GmbH
  • +
  • Müllenbach Reisen GmbH
  • +
  • Saar-Mobil GmbH
  • +
  • Baron Reisen GmbH
  • +
  • Lay Reisen - on Tour GmbH
  • +
  • KVS GmbH
  • +
  • NVG Neunkircher Verkehrs GmbH
  • +
  • Bayerische Oberlandbahn
  • +
  • KVG Bus
  • +
  • KVG Tram
  • +
  • Omnibusbetrieb Sallwey GmbH
  • +
  • Brundig Reisen
  • +
  • EW Bus GmbH
  • +
  • RhönEnergie Bus GmbH (NVV)
  • +
  • Frölich Bus GmbH
  • +
  • Schmetterling-Reisen Zulauf
  • +
  • H. Sandrock GmbH&Co KG
  • +
  • Reisedienst Bonte
  • +
  • HLB Hessenbus Kassel
  • +
  • Frölich Reisen GmbH
  • +
  • Knieling Touristik
  • +
  • Stadtwerke Witzenhausen
  • +
  • Käberich Omnibusbetrieb
  • +
  • WEFRA-Bus GbR
  • +
  • Racktours GmbH + Co. KG
  • +
  • Gemeinde Wettenberg
  • +
  • Stadt Grünberg
  • +
  • Energie Waldeck-Frankenberg
  • +
  • BWV Bad Wildungen
  • +
  • MüllerBusReisen
  • +
  • HLB Bus GmbH
  • +
  • mobus Märkisch-Oderland Bus GmbH
  • +
  • ARGE prignitzbus
  • +
  • DB Regio Bus Mitte
  • +
  • Padersprinter
  • +
  • nph-Linienbündel 01
  • +
  • nph-Linienbündel 02
  • +
  • nph-Linienbündel 03
  • +
  • nph-Linienbündel 04
  • +
  • nph-Linienbündel 05
  • +
  • nph-Linienbündel 06
  • +
  • nph-Linienbündel 07
  • +
  • nph-Linienbündel 08
  • +
  • nph-Linienbündel 09
  • +
  • nph-Linienbündel 10
  • +
  • nph-Linienbündel 11
  • +
  • nph-Linienbündel 12
  • +
  • Martin Becker
  • +
  • wupsi GmbH
  • +
  • Stadtbus Pforzheim
  • +
  • Süddeutsche Verkehrslinien
  • +
  • Pfiffibus
  • +
  • Bus1
  • +
  • Stadt-Bus-Verkehr Straubing
  • +
  • Bus2
  • +
  • Bus3
  • +
  • Kraftverkehr B. Menchen GmbH & Co.KG
  • +
  • Anklamer Verkehrsgesellschaft
  • +
  • Neubrandenburger Verkehrsbetriebe
  • +
  • NAHBUS GmbH
  • +
  • Verkehrsgesellschaft Ludwigslust-Parchim
  • +
  • Bergbahn Heidelberg
  • +
  • Reisedienst Krauss & Wolff Reisen
  • +
  • Bus4
  • +
  • AST1
  • +
  • Stadtbus Bad Orb
  • +
  • Bus5
  • +
  • Nachtverkehr Ausstieg
  • +
  • Bus6
  • +
  • Bus Nürnberg
  • +
  • Regionalbuslinien
  • +
  • RVV-VLC für EFA
  • +
  • Citybus Regenstauf
  • +
  • Bus8
  • +
  • Fritz Behrendt OHG2
  • +
  • Glaser2
  • +
  • Lange1
  • +
  • A. Reich GmbH Busbetrieb2
  • +
  • regiobus Potsdam Mittelmark GmbH
  • +
  • Sabinchen Touristik GmbH2
  • +
  • ESE Verkehrsgesellschaft mbH
  • +
+

Filename: ca-bc_BC-Ferries.gtfs.zip

+ +
    +
  • BC Ferries
  • +
+

Filename: ca-bc_Black-Ball-Ferry-Line.gtfs.zip

+ +
    +
  • Black Ball Ferry Line
  • +
+

Filename: ca-bc_Campbell-River-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Campbell-River-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Comox-Valley-Transit.gtfs.zip

+ +
    +
  • BC Transit - Comox Valley Transit System
  • +
+

Filename: ca-bc_Comox-Valley-Transit.gtfs.zip

+ +
    +
  • BC Transit - Comox Valley Transit System
  • +
+

Filename: ca-bc_Cowichan-Valley-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Cowichan-Valley-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Creston-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Creston-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Dawson-Creek-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Dawson-Creek-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_East-Kootenay-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_East-Kootenay-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Fort-St-John-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Fort-St-John-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Fraser-Valley-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Fraser-Valley-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Kamloops-Transit.gtfs.zip

+ +
    +
  • BC Transit - Kamloops Transit System
  • +
+

Filename: ca-bc_Kamloops-Transit.gtfs.zip

+ +
    +
  • BC Transit - Kamloops Transit System
  • +
+

Filename: ca-bc_Nanaimo-Transit.gtfs.zip

+ +
    +
  • BC Transit - RDN Transit System
  • +
+

Filename: ca-bc_Nanaimo-Transit.gtfs.zip

+ +
    +
  • BC Transit - RDN Transit System
  • +
+

Filename: ca-bc_North-Okanagan-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_North-Okanagan-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Port-Alberni-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Port-Alberni-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Powell-River-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Powell-River-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Prince-George-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Prince-George-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Prince-Rupert-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Prince-Rupert-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_South-Okanagan-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_South-Okanagan-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Squamish-Transit.gtfs.zip

+ +
    +
  • BC Transit - Squamish Transit System
  • +
+

Filename: ca-bc_Squamish-Transit.gtfs.zip

+ +
    +
  • BC Transit - Squamish Transit System
  • +
+

Filename: ca-bc_Sunshine-Coast-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Sunshine-Coast-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_TransLink.gtfs.zip

+ +
    +
  • TransLink
  • +
+

Filename: ca-bc_TransLink.gtfs.zip

+ +
    +
  • TransLink
  • +
+

Filename: ca-bc_Victoria-Transit.gtfs.zip

+ +
    +
  • BC Transit - Victoria Regional Transit System
  • +
+

Filename: ca-bc_Victoria-Transit.gtfs.zip

+ +
    +
  • BC Transit - Victoria Regional Transit System
  • +
+

Filename: ca-bc_West-Kootenay-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_West-Kootenay-Transit.gtfs.zip

+ +
    +
  • BCTransit
  • +
+

Filename: ca-bc_Whistler-Transit.gtfs.zip

+ +
    +
  • BC Transit - Whistler Transit System
  • +
+

Filename: ca-bc_Whistler-Transit.gtfs.zip

+ +
    +
  • BC Transit - Whistler Transit System
  • +
+

Filename: lv_pv.gtfs.zip

+ +
    +
  • Pasažieru Vilciens
  • +
+

Filename: lv_rigas-satiksme.gtfs.zip

+ +
    +
  • Rīgas satiksme
  • +
+

Filename: lv_rigas-saraksti.gtfs.zip

+ +
    +
  • Rīgas satiksme
  • +
+

Filename: lv_valsts-sia-autotransporta.gtfs.zip

+ +
    +
  • AS Nordeka
  • +
  • Pasažieru vilciens AS
  • +
  • SIA DOBELES AUTOBUSU PARKS
  • +
  • AS Rēzeknes autobusu parks
  • +
  • SIA Latvijas Sabiedriskais Autobuss
  • +
  • SIA VTU Valmiera
  • +
  • SIA GALSS BUSS
  • +
  • SIA Balvu autotransports
  • +
  • AS Liepājas autobusu parks
  • +
  • Pašvaldības SIA Ventspils reiss
  • +
  • SIA Ludzas autotransporta uzņēmums
  • +
  • SIA NORMA-A
  • +
  • AS CATA
  • +
  • SIA Gulbenes autobuss
  • +
  • SIA Daugavpils autobusu parks
  • +
  • AS Talsu autotransports
  • +
  • SIA Tukuma auto
  • +
+

Filename: is_straeto.gtfs.zip

+ +
    +
  • Strætó BS
  • +
  • Reykjanesbær
  • +
  • Akureyri
  • +
+

Filename: fr_TGV.gtfs.zip

+ +
    +
  • SNCF VOYAGEURS
  • +
+

Filename: fr_TGV.gtfs.zip

+ +
    +
  • SNCF VOYAGEURS
  • +
+

Filename: fr_Intercites.gtfs.zip

+ +
    +
  • SNCF VOYAGEURS
  • +
+

Filename: fr_Intercites.gtfs.zip

+ +
    +
  • SNCF VOYAGEURS
  • +
+

Filename: fr_Transilien.gtfs.zip

+ +
    +
  • Transilien
  • +
  • RER
  • +
  • TER
  • +
+

Filename: fr_TER.gtfs.zip

+ +
    +
  • SNCF VOYAGEURS
  • +
  • Conseil Régional Auvergne - Rhône-Alpes
  • +
+

Filename: fr_TER.gtfs.zip

+ +
    +
  • SNCF VOYAGEURS
  • +
  • Conseil Régional Auvergne - Rhône-Alpes
  • +
+

Filename: fr_Mobilites-M-bul.gtfs.zip

+ +
    +
  • OT Grenoble
  • +
+

Filename: fr_Mobilites-M-fun.gtfs.zip

+ +
    +
  • OT ST-HILAIRE-DU-TOUVET
  • +
+

Filename: fr_Mobilites-M-gsv.gtfs.zip

+ +
    +
  • Mobilités M - TouGo
  • +
+

Filename: fr_Mobilites-M-mco.gtfs.zip

+ +
    +
  • Mobilités M - Covoit Lignes +
  • +
+

Filename: fr_Mobilites-M-tpv.gtfs.zip

+ +
    +
  • Mobilités M - Transports du Pays Voironnais
  • +
+

Filename: fr_Mobilites-M-tag.gtfs.zip

+ +
    +
  • Mobilités M - Tag
  • +
+

Filename: fr_Paris.gtfs.zip

+ +
    +
  • Transilien
  • +
  • Seine Grand Orly
  • +
  • Vexin
  • +
  • Vallée de Montmorency
  • +
  • Grand Melun
  • +
  • Poissy - Les Mureaux
  • +
  • Mantois
  • +
  • Argenteuil - Boucles de Seine
  • +
  • Meaux et Ourcq
  • +
  • Brie et 2 Morin
  • +
  • Val d'Yerres Val de Seine
  • +
  • Essonne Sud Est
  • +
  • Essonne Sud Ouest
  • +
  • Paris Saclay
  • +
  • Vélizy Vallées
  • +
  • Saint Germain Boucles de Seine
  • +
  • Bièvre
  • +
  • Vallée Grand Sud Paris
  • +
  • Marne et Seine
  • +
  • Saint-Quentin-en-Yvelines
  • +
  • Terres d'Envol
  • +
  • Pays Briard
  • +
  • Roissy Ouest
  • +
  • Roissy Est
  • +
  • Pays de Montereau
  • +
  • Fontainebleau - Moret
  • +
  • Vallée du Loing - Nemours
  • +
  • Cœur d’Essonne
  • +
  • Grand Versailles
  • +
  • Provinois - Brie et Seine
  • +
  • Lignes Île-de-France Ouest
  • +
  • Evry Centre Essonne
  • +
  • Centre et Sud Yvelines
  • +
  • Cergy-Pontoise Confluence
  • +
  • Haut Val d'Oise
  • +
  • ValBus
  • +
  • Valoise
  • +
  • Busval d'Oise
  • +
  • Seine-Saint-Denis
  • +
  • Noctilien
  • +
  • Parisis
  • +
  • Titus
  • +
  • Apolo 7
  • +
  • Marne-la-Vallée
  • +
  • Chavilbus
  • +
  • RER
  • +
  • Seine et Marne Express
  • +
  • Sénart
  • +
  • Sit'bus
  • +
  • Paris-Saclay Mobilités
  • +
  • TER
  • +
  • Cars Lacroix
  • +
  • Cars Rose
  • +
  • SAVAC
  • +
  • ADP
  • +
  • RATP
  • +
  • Keolis Ouest Val-de-Marne
  • +
  • RD Mantois
  • +
  • Keolis Roissy Pays de France Ouest
  • +
  • Mobicité
  • +
  • Keolis Mobilité Roissy
  • +
  • Magical Shuttle
  • +
  • Autobus du Fort
  • +
  • Autocars Dominique
  • +
  • Aéroport Paris-Beauvais / SAGEB
  • +
+

Filename: fr_CTS.gtfs.zip

+ +
    +
  • CTS
  • +
+

Filename: fi_digitraffic.gtfs.zip

+ +
    +
  • VR
  • +
  • NRC Group Finland Oy
  • +
  • Pohjois-Suomen Rautatieharrastajat ry
  • +
  • Haapamäen museoveturiyhdistys ry
  • +
  • Porvoon Museorautatie ry
  • +
  • Fenniarail Oy
  • +
  • North Rail Oy
  • +
  • FoxRail Logistics Oy
  • +
  • Sweco Finland Oy
  • +
  • Prorata Oy
  • +
  • Sinisten vaunujen ystävät ry
  • +
  • GRK Rail Oy
  • +
+

Filename: fi_203.gtfs.zip

+ +
    +
  • Tilausliikenne Ali-Vehmas Ay
  • +
  • Lehdon Liikenne Oy
  • +
  • Pekolan Liikenne Oy
  • +
  • Vekka Group Oy
  • +
  • Länsilinjat Oy
  • +
  • Valkeakosken Liikenne Oy
  • +
  • Mikkolan Liikenne Oy
  • +
  • Taksipalvelu Mutta Oy
  • +
+

Filename: fi_207.gtfs.zip

+ +
    +
  • Linja-Karjala Oy
  • +
  • Savo-Karjalan Linja Oy
  • +
  • Savonlinja Oy
  • +
  • Länsilinjat Oy
  • +
+

Filename: fi_209.gtfs.zip

+ +
    +
  • Matka Mäkelä Oy
  • +
  • TILAUSAJOT MENNÄÄN BUSSILLA OY
  • +
  • Jyväskylän Liikenne Oy
  • +
  • Koivuranta Oy
  • +
  • Uuraisten Liikenne Ky
  • +
  • Länsilinjat Oy
  • +
  • Pohjolan Matka (Pohjolan Turistiauto Oy)
  • +
+

Filename: fi_211.gtfs.zip

+ +
    +
  • KYMEN CHARTERLINE OY
  • +
  • Liikenne M. Heikura Oy
  • +
  • Kainuun Tilausliikenne P. Jääskeläinen Ky
  • +
  • Oulaisten Liikenne Oy
  • +
  • Vekka Group Oy
  • +
  • Tilausliikenne Kuvaja Oy
  • +
+

Filename: fi_217.gtfs.zip

+ +
    +
  • Kotkan Seudun Liikenne / KYMEN CHARTERLINE
  • +
  • Kotkan Seudun Liikenne / Jyrkilä Oy
  • +
  • Liikenne Vuorela Oy / Kotkan Seudun Liikenne
  • +
  • Kotkan Seudun Liikenne / Oy Pohjolan liikenne Ab
  • +
+

Filename: fi_219.gtfs.zip

+ +
    +
  • Tilaustaksit K. Sydänmaanlakka Ky
  • +
  • KYMEN CHARTERLINE OY
  • +
  • Liikenne Sipari Oy
  • +
  • Mattilan Liikenne Oy
  • +
  • Matkatoimisto Matka-Majuri Ky
  • +
  • Linjaliikenne Martti Laurila Oy
  • +
  • Savonlinja Oy
  • +
  • Elimäen Liikenne Oy
  • +
+

Filename: fi_221.gtfs.zip

+ +
    +
  • Kymen Charterline Oy
  • +
  • Mika K. Niskanen Oy
  • +
  • Kuopion Tila-Auto Oy
  • +
  • Kuopion Liikenne Oy
  • +
  • Linja-autoliike E Ahonen Ky
  • +
  • Oy Pohjolan liikenne Ab
  • +
  • Savonlinja Oy
  • +
  • Vihavaisen Taksi Oy
  • +
  • Pohjolan Matka (Pohjolan Turistiauto Oy)
  • +
+

Filename: fi_223.gtfs.zip

+ +
    +
  • Remoted Oy
  • +
  • Koiviston Auto Oy
  • +
  • Lehtimäen Liikenne Oy
  • +
  • Tilausliikenne Kuisma Ky
  • +
+

Filename: fi_225.gtfs.zip

+ +
    +
  • V-S Bussipalvelut Oy
  • +
  • Kuljetus Mikkonen Oy
  • +
  • Savonlinja Oy
  • +
  • TOIMI VENTO KY
  • +
  • Soisalon liikenne Oy
  • +
+

Filename: fi_227.gtfs.zip

+ +
    +
  • Tilausliikenne Linjakas Oy
  • +
  • Tilausliikenne Himanen
  • +
  • Kantamatkat
  • +
  • Hanskin Tilausliikenne
  • +
  • Ihastjärven Linja Oy
  • +
  • Saimaan Turistiliikenne Oy
  • +
  • Soisalon Liikenne Oy
  • +
  • Tuplabus
  • +
+

Filename: fi_229.gtfs.zip

+ +
    +
  • OSL / Revonturistiliikenne
  • +
  • OSL / Oubus
  • +
  • OSL / Koiviston Auto Oulu Oy
  • +
  • ELY / Oulaisten Liikenne Oy
  • +
  • OSL / Nobina Oy
  • +
+

Filename: fi_231.gtfs.zip

+ +
    +
  • Porin Linjat Oy
  • +
+

Filename: fi_232.gtfs.zip

+ +
    +
  • ELY
  • +
  • Hangon liikenne, Friman&Co
  • +
  • Linjaliikenne Kivistö Oy
  • +
  • OY AMPER&WIKSTRÖM AB
  • +
  • ROLLY UUSIMAA OY
  • +
  • Salon Tilausmatkat Oy
  • +
+

Filename: fi_237.gtfs.zip

+ +
    +
  • Koskilinjat Oy
  • +
+

Filename: fi_239.gtfs.zip

+ +
    +
  • J. Vainion Liikenne Oy
  • +
  • LS-Liikennelinjat Oy
  • +
+

Filename: fi_249.gtfs.zip

+ +
    +
  • OY WIIK & STRÖM AB
  • +
  • Vekka liikenne Oy
  • +
+

Filename: fi_hsl.gtfs.zip

+ +
    +
  • Helsingin seudun liikenne
  • +
+

Filename: nl_ovapi.gtfs.zip

+ +
    +
  • allGo (Keolis)
  • +
  • Arriva
  • +
  • Blue Amigo
  • +
  • Bravo (Arriva)
  • +
  • Bravo (Hermes)
  • +
  • Breng
  • +
  • Connexxion
  • +
  • De Lijn
  • +
  • EBS
  • +
  • GVB
  • +
  • Hermes
  • +
  • HTM
  • +
  • Arriva
  • +
  • Blauwnet
  • +
  • Breng
  • +
  • DB
  • +
  • Eurobahn
  • +
  • Eu Sleeper
  • +
  • NMBS
  • +
  • NS
  • +
  • NS International
  • +
  • R-net
  • +
  • RRReis
  • +
  • VIAS
  • +
  • Keolis
  • +
  • NIAG
  • +
  • Overal (Connexxion)
  • +
  • Qbuzz
  • +
  • RET
  • +
  • RRReis
  • +
  • Syntus Utrecht
  • +
  • TESO
  • +
  • Texelhopper
  • +
  • Transdev
  • +
  • U-OV
  • +
  • Westerschelde Ferry
  • +
+

Filename: ca_Brandon-Transit.gtfs.zip

+ +
    +
  • Brandon Transit
  • +
+

Filename: ca_Calgary-Transit.gtfs.zip

+ +
    +
  • Calgary Transit
  • +
+

Filename: ca_Calgary-Transit.gtfs.zip

+ +
    +
  • Calgary Transit
  • +
+

Filename: ca_Codiac-Transit.gtfs.zip

+ +
    +
  • Codiac Transpo
  • +
+

Filename: ca_Cold-Lake-Transit.gtfs.zip

+ +
    +
  • Cold Lake Transit
  • +
+

Filename: ca_Edmonton-Transit-Service.gtfs.zip

+ +
    +
  • Edmonton Transit Service
  • +
  • St. Albert Transit
  • +
  • Strathcona County Transit
  • +
  • Spruce Grove Transit
  • +
  • Fort Saskatchewan Transit
  • +
  • Beaumont Transit
  • +
+

Filename: ca_Edmonton-Transit-Service.gtfs.zip

+ +
    +
  • Edmonton Transit Service
  • +
  • St. Albert Transit
  • +
  • Strathcona County Transit
  • +
  • Spruce Grove Transit
  • +
  • Fort Saskatchewan Transit
  • +
  • Beaumont Transit
  • +
+

Filename: ca_Fredericton-Transit.gtfs.zip

+ +
    +
  • Fredericton Transit
  • +
+

Filename: ca_Grande-Prairie-Transit.gtfs.zip

+ +
    +
  • cityofgp
  • +
+

Filename: ca_Halifax-Transit.gtfs.zip

+ +
    +
  • Halifax Transit
  • +
+

Filename: ca_Halifax-Transit.gtfs.zip

+ +
    +
  • Halifax Transit
  • +
+

Filename: ca_Lethbridge-Transit.gtfs.zip

+ +
    +
  • Lethbridge Transit
  • +
+

Filename: ca_Medicine-Hat-Transit.gtfs.zip

+ +
    +
  • Medicine Hat Transit
  • +
+

Filename: ca_Medicine-Hat-Transit.gtfs.zip

+ +
    +
  • Medicine Hat Transit
  • +
+

Filename: ca_Metrobus-Transit.gtfs.zip

+ +
    +
  • METROBUS
  • +
+

Filename: ca_Prince-Albert-Transit.gtfs.zip

+ +
    +
  • Prince Albert Transit
  • +
+

Filename: ca_Red-Deer-Transit.gtfs.zip

+ +
    +
  • Red Deer Transit
  • +
+

Filename: ca_Regina-Transit.gtfs.zip

+ +
    +
  • The City of Regina
  • +
+

Filename: ca_Roam-Transit.gtfs.zip

+ +
    +
  • Roam Transit
  • +
+

Filename: ca_Saint-John-Transit.gtfs.zip

+ +
    +
  • Saint John Transit
  • +
+

Filename: ca_Saskatoon-Transit.gtfs.zip

+ +
    +
  • Saskatoon Transit
  • +
+

Filename: ca_Saskatoon-Transit.gtfs.zip

+ +
    +
  • Saskatoon Transit
  • +
+

Filename: ca_T3-Transit.gtfs.zip

+ +
    +
  • T3 Transit
  • +
+

Filename: ca_Viarail.gtfs.zip

+ +
    +
  • VIA Rail
  • +
+

Filename: ca_Whitehorse-Transit.gtfs.zip

+ +
    +
  • Whitehorse Transit
  • +
+

Filename: ca_Winnipeg-Transit.gtfs.zip

+ +
    +
  • Winnipeg Transit
  • +
+

Filename: ca_Wood-Buffalo-Transit.gtfs.zip

+ +
    +
  • RMWB
  • +
+

Filename: ca_Wood-Buffalo-Transit.gtfs.zip

+ +
    +
  • RMWB
  • +
+

Filename: ca_Yellowknife-Transit.gtfs.zip

+ +
    +
  • Yellowknife Transit
  • +
+

Filename: hk_Hong-Kong-Transit.gtfs.zip

+ +
    +
  • Citybus
  • +
  • Discovery Bay Transit Services (Bus Services)
  • +
  • Ferry Services
  • +
  • Green Minibus Services
  • +
  • Kowloon Motor Bus
  • +
  • Kowloon Motor Bus|Citybus
  • +
  • MTR Bus
  • +
  • Long Win Bus
  • +
  • Long Win Bus|Citybus
  • +
  • New Lantao Bus
  • +
  • Park Island Transport (Bus Services)
  • +
  • Peak Tram
  • +
  • HK Tramways
  • +
  • Lok Ma Chau Crossing-boundary Coach Services
  • +
+

Filename: it_Emilia-Romagna-TPER-Bologna.gtfs.zip

+ +
    +
  • TPER spa
  • +
+

Filename: it_Emilia-Romagna-TPER-Ferrara.gtfs.zip

+ +
    +
  • TPER spa
  • +
+

Filename: it_Emilia-Romagna-TPER-BLQ-Airport.gtfs.zip

+ +
    +
  • Marconi Express
  • +
+

Filename: it_Lazio-Rome.gtfs.zip

+ +
    +
  • Atac
  • +
  • Roma TPL
  • +
  • Autoservizi Troiani
  • +
  • Trenitalia
  • +
+

Filename: it_Lombardia-ATM.gtfs.zip

+ +
    +
  • ATM
  • +
+

Filename: it_Lombardia-Trenord.gtfs.zip

+ +
    +
  • Trenord
  • +
+

Filename: it_Piemonte-Bus.gtfs.zip

+ +
    +
  • n.d.
  • +
  • Azienda Multiservizi Casalese S.p.a. E Piu' Brevemente A.m.c. S.p.a
  • +
  • A.t.a.p. - Azienda Trasporti Automobilistici Pubblici Delle Province Di Biella E Vercelli - S.p.a.
  • +
  • Asti Servizi Pubblici S.p.a.
  • +
  • Societa' Trasporti Novaresi - S.r.l.
  • +
  • Sun S.p.a.
  • +
  • Bus Company S.r.l.
  • +
  • Navigazione Lago D'orta S.r.l.
  • +
  • Coas Consorzio Astigiano
  • +
  • Societa' Consortile Alessandrina Trasporti A Responsabilita' Limitata
  • +
  • Extra.to S.c. A R.l.
  • +
  • Comune Pareto
  • +
+

Filename: it_Piemonte-Gruppo-Torinese-Trasporti.gtfs.zip

+ +
    +
  • GTT Servizio Extraurbano
  • +
  • GTT Servizio Ferroviario
  • +
  • GTT Servizi Turistici
  • +
  • GTT Servizio Urbano
  • +
+

Filename: it_Piemonte-Trenitalia.gtfs.zip

+ +
    +
  • TRENITALIA
  • +
+

Filename: it_Sardegna-Contributate.gtfs.zip

+ +
    +
  • ASARA GIUSEPPE EREDI AUTOSERVIZI - LOCATARIO
  • +
  • ATZENI
  • +
  • AUTOLINEE BAIRE S.R.L.
  • +
  • AUTOSERVIZI VACCA DI VACCA FABRIZIO & C. SNC
  • +
  • BAIRE MARIO
  • +
  • BALESTRUCCI SRL
  • +
  • CARAMELLI TOURS S.N.C.
  • +
  • COOPERATIVA ORISTANESE BUS 90
  • +
  • F.LLI DEPLANO S.N.C. DI GABRIELE DEPLANO E C
  • +
  • AUTOLINEE DEPLANU GIUSEPPINO
  • +
  • DIGITUR S.R.L.
  • +
  • AUTOSERVIZI EUROSAR
  • +
  • FARA VIAGGI SRL
  • +
  • FATA EREDI ANGIUS SNC
  • +
  • AUTONOLEGGIO FOLLESA DEI F.LLI PASQUALE E GIANNI FOLLESA SNC
  • +
  • AUTOLINEE FRAU S.R.L.
  • +
  • GARAU MAURO
  • +
  • GIAGHEDDU ANTONIO
  • +
  • AUTOLINEE DEL GOLFO SRL
  • +
  • MASALA FRANCESCO ANGELO EREDI S.A.S.
  • +
  • MELIS SERGIO
  • +
  • MEREU AUTOLINEE
  • +
  • AUTOLINEE ANTONIO MURGIA S.R.L.
  • +
  • AUTOSERVIZI NORDORIENTALE S.A.S. DI BRUNDU COSIMO DAMIANO & C.
  • +
  • A.S.P. DI PANI FRANCA DANIELA E CHRISTIAN SNC
  • +
  • PISANU EREDI SNC
  • +
  • SANNA ANTONIO
  • +
  • SAUT S.R.L.
  • +
  • AUTOSERVIZI E AUTOLINEE DI SENIS ENRICO & C. SNC
  • +
  • SERRA GESUINO
  • +
  • SEUNIS TOURS EREDI PIREDDA SALVATORICO S.A.S.
  • +
  • AUTONOLEGGIO AUTOBUS SPINA SALVATORE E FIGLI S.N.C. DI SPINA FRANCESCO
  • +
  • AUTOLINEE TREXENTA SNC
  • +
  • TURMO LINES S.R.L.
  • +
  • ANGLONA TOUR DI ZENTILE SALVATORE
  • +
  • AUTOLINEE DEL GOLFO S.R.L.
  • +
  • AUTOSERVIZI NUOVA SUN TRAVEL S.R.L.
  • +
  • AUTOLINEE BAIRE S.R.L.
  • +
  • F.LLI CAPPATO DI IVANA E PIER LORENZO S.N.C.
  • +
  • CAREDDU MADDALO
  • +
  • DEDONI SARDINIA
  • +
  • DEDONI SARDINIA
  • +
  • AUTOSERVIZI F.A.B. S.R.L.
  • +
  • FARA VIAGGI S.R.L.
  • +
  • LOGUDORO TOURS
  • +
  • AUTOLINEE ANTONIO MURGIA S.R.L.
  • +
  • PUDDU SANDRO AUTOLINEE DI PUDDU SANDRO
  • +
  • SARDABUS DI ADDIS FRANCESCO
  • +
  • SINA DI GIANFRANCO STEVELLI S.R.L.
  • +
  • SUN LINES S.R.L.
  • +
  • TOUR BUS S.N.C. DI CARIA GIACOMO
  • +
  • TURMO TRAVEL S.R.L.
  • +
  • TUVONI
  • +
  • VACCA VIAGGI S.N.C.
  • +
+

Filename: it_Sardegna-ARST.gtfs.zip

+ +
    +
  • ARST SpA - Trasporti Regionali Della Sardegna
  • +
+

Filename: it_Sardegna-ASPO-Olbia.gtfs.zip

+ +
    +
  • ASPO SPA
  • +
+

Filename: it_Sardegna-ATP-Nuoro.gtfs.zip

+ +
    +
  • ATP NUORO
  • +
+

Filename: it_Sardegna-ATP-Sassari.gtfs.zip

+ +
    +
  • Atp Sassari
  • +
+

Filename: it_Sardegna-CTM.gtfs.zip

+ +
    +
  • CTM Spa
  • +
+

Filename: it_Sardegna-Ferries-Collegamenti-marittimi-Corsica.gtfs.zip

+ +
    +
  • GENOVA TRASPORTI MARITTIMI
  • +
  • MOBY LINES
  • +
+

Filename: it_Sardegna-Ferries-Collegamenti-isole-minori.gtfs.zip

+ +
    +
  • DELCOMAR
  • +
  • ENSAMAR
  • +
+

Filename: it_Sardegna-Ferries-Sardinia-Ferries.gtfs.zip

+ +
    +
  • Sardinia Ferries
  • +
+

Filename: it_Sardegna-Ferries-Tirrenia.gtfs.zip

+ +
    +
  • Compagnia Italiana di Navigazione S.p.A
  • +
+

Filename: it_Sardegna-Planes-Alghero-Airport.gtfs.zip

+ +
    +
  • BLUE AIR
  • +
  • Helvetic Airways
  • +
  • TRAVEL SERVICE POLSKA
  • +
  • Gazpromavia
  • +
  • TUIfly Nordic
  • +
  • Travel Service Slovensko
  • +
  • Air France
  • +
  • AEROMEDICARE
  • +
  • AirOne
  • +
  • ITA AIRWAYS
  • +
  • British Airways
  • +
  • SkyAlps Luxwings
  • +
  • Air Baltic
  • +
  • Blue Panorama Airlines S.p.A.
  • +
  •  THOMSONFLY
  • +
  • Corendon Dutch Airlines B.V.
  • +
  • Norwegian Air
  • +
  • CONDOR
  • +
  • FIRST CHOICE AIRWAYS LTD
  • +
  • EASYJET SWITZERLAND
  • +
  • Danish Air Transport
  • +
  • Norwegian Air
  • +
  • DOMODEDOVO AIRLINES
  • +
  • Enter air
  • +
  • Easyjet Europe
  • +
  • Ernest Airlines
  • +
  • EGO Airways
  • +
  • AIR DOLOMITI
  • +
  • Eurowings
  • +
  • RYANAIR
  • +
  • AIR SLOVAKIA BWJ , LTD
  • +
  • Bulgarian Air Charter Ltd
  • +
  • HAT
  • +
  • Luftfahrtgesellschaft Walter
  • +
  • Transavia Airlines
  • +
  • VUELING AIRLINES
  • +
  • IBERIA AIRLINES
  • +
  • Air Italy
  • +
  • Arkia Israeli Airlines
  • +
  • ADRIA AIRWAYS
  • +
  • KLM
  • +
  • Air Malta
  • +
  • BELLE AIR EUROPE
  • +
  • Luxair
  • +
  • Deutsche Lufthansa
  • +
  • LOT Polish Airlines
  • +
  • LUXWINGÂ
  • +
  • SWISS International Air Lines
  • +
  • EL AL
  • +
  • MYX
  • +
  • NEOS
  • +
  • Laudamotion (Ryanair)
  • +
  • Austrian Airlines AG
  • +
  • People's Viennaline
  • +
  • SMARTWINGS
  • +
  • Trast Aero
  • +
  • SIBERIA AIRLINES
  • +
  • SCANDINAVIAN AIRLINES
  • +
  • Brussels Airlines
  • +
  • GERMANIA FLUGESELLSCHAFT MBH
  • +
  • SkyWork Airlines
  • +
  • TUI Airlines Belgium
  • +
  • Transavia France
  • +
  • TAP Portugal
  • +
  • EASYJET
  • +
  • URAL AIRLINERS
  • +
  • AIR EUROPA
  • +
  • VOLOTEA
  • +
  • VUELING AIRLINES
  • +
  • Vueling Airlines
  • +
  • Wizz Air Malta
  • +
  • WIZZ AIR
  • +
  • China Northwest Airlines
  • +
  • Edelweiss Air
  • +
  • Oman Air
  • +
  • TUIfly GmbH
  • +
  • CORENDON AIRLINES
  • +
  • AeroItalia
  • +
  • Air Nostrum
  • +
  • MONARCH
  • +
  • TITAN AIRWAYS
  • +
+

Filename: it_Sardegna-Planes-Cagliari-Airport.gtfs.zip

+ +
    +
  • BA Euroflyer
  • +
  • AEGEAN AIRLINES
  • +
  • Air France
  • +
  • AirOne
  • +
  • ITA AIRWAYS
  • +
  • SKY ALPS SRL
  • +
  • EASYJET SWITZERLAND
  • +
  • Enter air
  • +
  • Easyjet Europe
  • +
  • AIR DOLOMITI
  • +
  • Eurowings
  • +
  • RYANAIR
  • +
  • IBERIA AIRLINES
  • +
  • ATLASJET HAVACILIK
  • +
  • KLM
  • +
  • LEISURE INTERNATIONAL
  • +
  • Luxair
  • +
  • Deutsche Lufthansa
  • +
  • Malta MedAir
  • +
  • NESMA AIRLINES
  • +
  • NEOS
  • +
  • Austrian Airlines AG
  • +
  • People's Viennaline
  • +
  • SMARTWINGS
  • +
  • Tailwind Airlines
  • +
  • Transavia France
  • +
  • EASYJET
  • +
  • TUNISAIR EXPRESS
  • +
  • VOLOTEA
  • +
  • Universal Air Charter
  • +
  • Vueling Airlines
  • +
  • Edelweiss Air
  • +
+

Filename: it_Sardegna-Planes-Olbia-Airport.gtfs.zip

+ +
    +
  • Travel Service Slovensko
  • +
  • AEGEAN AIRLINES
  • +
  • Air France
  • +
  • AirOne
  • +
  • AVANTI AIR
  • +
  • ITA AIRWAYS
  • +
  • British Airways
  • +
  • SKY ALPS SRL
  • +
  • Air Baltic
  • +
  • THOMSONFLY
  • +
  • TRADE AIR
  • +
  • BA Cityflyer
  • +
  • Norwegian Air
  • +
  • CONDOR
  • +
  • EASYJET SWITZERLAND
  • +
  • Norwegian Air
  • +
  • Enter air
  • +
  • Easyjet Europe
  • +
  • AER LINGUS
  • +
  • AIR DOLOMITI
  • +
  • Eurowings
  • +
  • RYANAIR
  • +
  • FlyDubai
  • +
  • GETJET
  • +
  • Bulgarian Air Charter Ltd
  • +
  • AIR HORIZONT LTD
  • +
  • Transavia Airlines
  • +
  • IBERIA AIRLINES
  • +
  • BELLE AIR EUROPE
  • +
  • Luxair
  • +
  • Deutsche Lufthansa
  • +
  • LOT Polish Airlines
  • +
  • JET TWO COM
  • +
  • SWISS International Air Lines
  • +
  • Malta MedAir
  • +
  • AIR MEDITERRANEAN
  • +
  • NEOS
  • +
  • Austrian Airlines AG
  • +
  • People's Viennaline
  • +
  • SMARTWINGS
  • +
  • SCANDINAVIAN AIRLINES
  • +
  • Brussels Airlines
  • +
  • Transavia France
  • +
  • EASYJET
  • +
  • VOLOTEA
  • +
  • Vueling Airlines
  • +
  • WIZZAIR MALTA
  • +
  • WIZZ AIR
  • +
  • Edelweiss Air
  • +
  • Aeroitalia srl
  • +
+

Filename: it_Sardegna-Trenitalia.gtfs.zip

+ +
    +
  • TRENITALIA
  • +
+

Filename: it_Toscana-Trenitalia.gtfs.zip

+ +
    +
  • TRENITALIA S.p.A.
  • +
+

Filename: it_Veneto-Venezia-Bus.gtfs.zip

+ +
    +
  • ACTVs.p.a
  • +
+

Filename: it_Veneto-Venezia-Ferries.gtfs.zip

+ +
    +
  • ACTVs.p.a
  • +
+

Filename: eu_flixbus.gtfs.zip

+ +
    +
  • FlixBus-eu
  • +
  • FlixTrain-eu
  • +
  • Greyhound-eu
  • +
+

Filename: eu_blablacar-bus.gtfs.zip

+ +
    +
  • BlaBlaCar Bus
  • +
+

Filename: si_nap.gtfs.zip

+ +
    +
  • Javno podjetje Ljubljanski potniški promet d.o.o.
  • +
  • Nomago d.o.o.
  • +
  • Avtobusni promet Murska Sobota d.d.
  • +
  • Arriva d.o.o.
  • +
  • Prevozi Prijatelj d.o.o.
  • +
  • Avtoprevozništvo Šamu turs, Josip Šamu s.p.
  • +
  • Avtobusni prevozi Novak bus d.o.o.
  • +
  • Avtobusni prevozi Mrgole d.o.o.
  • +
  • Avtobusni prevozi Kastigar Polikarp s.p.
  • +
  • Avtoprevozništvo Martin - Valentina Frelih s.p.
  • +
  • MPOV d.o.o. Vinica
  • +
  • Prevozi Rok Jaklič s.p.
  • +
  • Pohorje turizem d.o.o.
  • +
  • SŽ-ŽIP d.o.o.
  • +
  • Mirttours Peter Mirt s.p.
  • +
  • Miroslav Špik s.p.
  • +
  • Avtobusni prevozi Lipičnik Anita s.p.
  • +
  • Zgornji Zavratnik d.o.o.
  • +
  • AP Novak d.o.o.
  • +
  • SŽ - Potniški promet, d.o.o.
  • +
  • Oštrman tours d.o.o.
  • +
+

Filename: us-co_RTD.gtfs.zip

+ +
    +
  • Regional Transportation District
  • +
+

Filename: us-co_RTD.gtfs.zip

+ +
    +
  • Regional Transportation District
  • +
+

Filename: us-co_RTD-bustang.gtfs.zip

+ +
    +
  • Colorado Department of Transportation
  • +
+

Filename: us-co_RTD-bustang.gtfs.zip

+ +
    +
  • Colorado Department of Transportation
  • +
+

Filename: be_sncb.gtfs.zip

+ +
    +
  • NMBS/SNCB
  • +
+

Filename: be_stib.gtfs.zip

+ +
    +
  • STIB
  • +
+

Filename: be_delijn.gtfs.zip

+ +
    +
  • De Lijn
  • +
+

Filename: be_dewaterbus.gtfs.zip

+ +
    +
  • DeWaterbus
  • +
+

Filename: be_tec.gtfs.zip

+ +
    +
  • TEC Brabant Wallon
  • +
  • TEC Charleroi
  • +
  • TEC Hainaut
  • +
  • TEC Liège - Verviers
  • +
  • TEC Namur - Luxembourg
  • +
+

Filename: lu_openov.gtfs.zip

+ +
    +
  • RGTR
  • +
  • CFL_Bus
  • +
  • Luxtram
  • +
  • AVL
  • +
  • CFL
  • +
  • TICE
  • +
+

Filename: at_oebb.gtfs.zip

+ +
    +
  • OEBB Personenverkehr AG Kundenservice
  • +
  • City Air Terminal Betriebsgesellschaft m.b.H.
  • +
  • Montafonerbahn AG
  • +
+

Filename: ca-on_TTC.gtfs.zip

+ +
    +
  • TTC
  • +
+

Filename: ca-on_Metrolinx-belleville.gtfs.zip

+ +
    +
  • Belleville Transit
  • +
+

Filename: ca-on_Metrolinx-belleville.gtfs.zip

+ +
    +
  • Belleville Transit
  • +
+

Filename: ca-on_Metrolinx-cornwall.gtfs.zip

+ +
    +
  • Cornwall Transit
  • +
+

Filename: ca-on_Metrolinx-cornwall.gtfs.zip

+ +
    +
  • Cornwall Transit
  • +
+

Filename: ca-on_Metrolinx-kawartha.gtfs.zip

+ +
    +
  • Lindsay Transit
  • +
+

Filename: ca-on_Metrolinx-kawartha.gtfs.zip

+ +
    +
  • Lindsay Transit
  • +
+

Filename: ca-on_Metrolinx-milton.gtfs.zip

+ +
    +
  • Milton Transit
  • +
+

Filename: ca-on_Metrolinx-milton.gtfs.zip

+ +
    +
  • Milton Transit
  • +
+

Filename: ca-on_Metrolinx-orangeville.gtfs.zip

+ +
    +
  • Orangeville Transit
  • +
+

Filename: ca-on_Metrolinx-orangeville.gtfs.zip

+ +
    +
  • Orangeville Transit
  • +
+

Filename: ca-on_Metrolinx-orillia.gtfs.zip

+ +
    +
  • Orillia Transit
  • +
+

Filename: ca-on_Metrolinx-orillia.gtfs.zip

+ +
    +
  • Orillia Transit
  • +
+

Filename: ca-on_Metrolinx-sarnia.gtfs.zip

+ +
    +
  • Sarnia Transit
  • +
+

Filename: ca-on_Metrolinx-sarnia.gtfs.zip

+ +
    +
  • Sarnia Transit
  • +
+

Filename: ca-on_Metrolinx-saultstemarie.gtfs.zip

+ +
    +
  • Sault Ste. Marie Transit
  • +
+

Filename: ca-on_Metrolinx-saultstemarie.gtfs.zip

+ +
    +
  • Sault Ste. Marie Transit
  • +
+

Filename: ca-on_Metrolinx-simcoe.gtfs.zip

+ +
    +
  • Simcoe County Linx
  • +
+

Filename: ca-on_Metrolinx-simcoe.gtfs.zip

+ +
    +
  • Simcoe County Linx
  • +
+

Filename: ca-on_Metrolinx-stratford.gtfs.zip

+ +
    +
  • Stratford Transit
  • +
+

Filename: ca-on_Metrolinx-stratford.gtfs.zip

+ +
    +
  • Stratford Transit
  • +
+

Filename: ca-on_Metrolinx-stthomas.gtfs.zip

+ +
    +
  • St. Thomas Transit
  • +
+

Filename: ca-on_Metrolinx-stthomas.gtfs.zip

+ +
    +
  • St. Thomas Transit
  • +
+

Filename: ca-on_Metrolinx-temiskaming.gtfs.zip

+ +
    +
  • Temiskaming Transit
  • +
+

Filename: ca-on_Metrolinx-temiskaming.gtfs.zip

+ +
    +
  • Temiskaming Transit
  • +
+

Filename: ca-on_Metrolinx-timmins.gtfs.zip

+ +
    +
  • Timmins Transit
  • +
+

Filename: ca-on_Metrolinx-timmins.gtfs.zip

+ +
    +
  • Timmins Transit
  • +
+

Filename: ee_ee.gtfs.zip

+ +
    +
  • Teadmata
  • +
  • OV Ida-Bus OÜ
  • +
  • OSAÜHING FREMANTI
  • +
  • NAJA OÜ
  • +
  • Sirel Reisid OÜ
  • +
  • PRESTO osaühing
  • +
  • Estonian Lines OÜ
  • +
  • Atko Bussiliinid AS
  • +
  • TS Laevad OÜ
  • +
  • Ekspressbussiliinid osaühing
  • +
  • ABuss OÜ
  • +
  • Saaremaa vald
  • +
  • Alukvik OÜ
  • +
  • MEELIS HEEK
  • +
  • OÜ Baltic Shuttle
  • +
  • Valgis osaühing
  • +
  • osaühing Tulisilm
  • +
  • Osaühing Bristol Takso
  • +
  • ATG Bussiliinid OÜ
  • +
  • ATG Bussipark OÜ
  • +
  • Flixbus Polska sp.o.o
  • +
  • Taisto Express OÜ
  • +
  • HANSABUSS AS
  • +
  • Aktsiaselts MK Autobuss
  • +
  • MK Reis OÜ
  • +
  • Rannu Rukkilill E.S.T. OÜ
  • +
  • SEBE Aktsiaselts
  • +
  • Tallinna Linnatranspordi AS
  • +
  • GoBus AS
  • +
  • Norma-A SIA
  • +
  • Arilix OÜ
  • +
  • Aktsiaselts Hansa Bussiliinid
  • +
  • AS Lux Express Estonia
  • +
  • Kalle Bussid OÜ
  • +
  • ELRON
  • +
  • Tõnu Tours OÜ
  • +
+

Filename: es_renfe-hsldmd.gtfs.zip

+ +
    +
  • RENFE OPERADORA
  • +
+

Filename: es_renfe-cercanias.gtfs.zip

+ +
    +
  • Renfe Cercanias
  • +
+

Filename: es_vitrasa.gtfs.zip

+ +
    +
  • Viguesa de Transportes S.L.
  • +
+

Filename: es_malaga-metro.gtfs.zip

+ +
    +
  • Metro de Málaga
  • +
+

Filename: es_valencia-bus-emt.gtfs.zip

+ +
    +
  • EMT Valencia
  • +
+

Filename: se_Trafiklab.gtfs.zip

+ +
    +
  • Visingsöleden
  • +
  • Ul
  • +
  • Sörmlandstrafiken
  • +
  • Östgötatrafiken
  • +
  • Jlt
  • +
  • Länstrafiken Kronoberg
  • +
  • Klt
  • +
  • Region Gotland
  • +
  • Blekingetrafiken
  • +
  • Gällivare Stadstrafik
  • +
  • Hallandstrafiken
  • +
  • Värmlandstrafik
  • +
  • Vl
  • +
  • Dalatrafik
  • +
  • X-trafik
  • +
  • Din Tur
  • +
  • Destination Gotland
  • +
  • Länstrafiken Jämtland
  • +
  • Länstrafiken Västerbotten
  • +
  • Länstrafiken Norrbotten
  • +
  • Sl
  • +
  • Skånetrafiken
  • +
  • Flygbussarna
  • +
  • Västtrafik
  • +
  • Ventrafiken
  • +
  • Arlanda Express
  • +
  • Länstrafiken Örebro
  • +
  • Öresundståg
  • +
  • BT Buss
  • +
  • Mälartåg
  • +
  • Vy Tåg
  • +
  • Värmlandstrafik
  • +
  • Waxholmsbolaget
  • +
  • Flixtrain
  • +
  • Tåg i Bergslagen
  • +
  • Vy Bus4you
  • +
  • Vy Express
  • +
  • Skelleftebuss
  • +
  • Y-buss
  • +
  • Masexpressen
  • +
  • Silverlinjen
  • +
  • Härjedalingen
  • +
  • Snälltåget
  • +
  • Nikkaluoktaexpressen
  • +
  • Trafikverket Färjerederiet
  • +
  • Bergkvarabuss
  • +
  • Vy Nattåg
  • +
  • Norrtåg
  • +
  • Falcks Omnibus
  • +
  • Krösatågen
  • +
  • Tågab
  • +
  • Karlstadsbuss
  • +
  • Luleå Lokaltrafik
  • +
  • Trosabussen
  • +
  • Haparanda lokaltrafik
  • +
  • Piteå Lokaltrafik
  • +
  • Strömma
  • +
  • Boden Stadstrafik
  • +
  • Kiruna Stadstrafik
  • +
  • Stadsbussarna Östersund
  • +
  • Krösatågen
  • +
  • Sj
  • +
  • Vy
  • +
  • SJ Nord
  • +
  • Marstrandsfärjan
  • +
  • Mtrx
  • +
  • Stavsnäs Båttaxi
  • +
  • Västervik Express
  • +
  • Kalix stadstrafik
  • +
  • Flixbus
  • +
  • Stockholms stad
  • +
+ + +
+
+ +
+
+ +
+ +
+ +
+ + + + « Previous + + + +
+ + + + + + + + + diff --git a/search.html b/search.html new file mode 100644 index 00000000..536eb35b --- /dev/null +++ b/search.html @@ -0,0 +1,120 @@ + + + + + + + + Transitous + + + + + + + + + + + + + + +
+ + +
+ +
+
+
    +
  • +
  • +
  • +
+
+
+
+
+ + +

Search Results

+ + + +
+ Searching... +
+ + +
+
+ +
+ +
+ +

Copyright © 2024 Transitous contributors

+
+ + Built with MkDocs using a theme provided by Read the Docs. +
+ +
+
+ +
+ +
+ +
+ + + + + +
+ + + + + + + + + diff --git a/search/lunr.js b/search/lunr.js new file mode 100644 index 00000000..aca0a167 --- /dev/null +++ b/search/lunr.js @@ -0,0 +1,3475 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ + +;(function(){ + +/** + * A convenience function for configuring and constructing + * a new lunr Index. + * + * A lunr.Builder instance is created and the pipeline setup + * with a trimmer, stop word filter and stemmer. + * + * This builder object is yielded to the configuration function + * that is passed as a parameter, allowing the list of fields + * and other builder parameters to be customised. + * + * All documents _must_ be added within the passed config function. + * + * @example + * var idx = lunr(function () { + * this.field('title') + * this.field('body') + * this.ref('id') + * + * documents.forEach(function (doc) { + * this.add(doc) + * }, this) + * }) + * + * @see {@link lunr.Builder} + * @see {@link lunr.Pipeline} + * @see {@link lunr.trimmer} + * @see {@link lunr.stopWordFilter} + * @see {@link lunr.stemmer} + * @namespace {function} lunr + */ +var lunr = function (config) { + var builder = new lunr.Builder + + builder.pipeline.add( + lunr.trimmer, + lunr.stopWordFilter, + lunr.stemmer + ) + + builder.searchPipeline.add( + lunr.stemmer + ) + + config.call(builder, builder) + return builder.build() +} + +lunr.version = "2.3.9" +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A namespace containing utils for the rest of the lunr library + * @namespace lunr.utils + */ +lunr.utils = {} + +/** + * Print a warning message to the console. + * + * @param {String} message The message to be printed. + * @memberOf lunr.utils + * @function + */ +lunr.utils.warn = (function (global) { + /* eslint-disable no-console */ + return function (message) { + if (global.console && console.warn) { + console.warn(message) + } + } + /* eslint-enable no-console */ +})(this) + +/** + * Convert an object to a string. + * + * In the case of `null` and `undefined` the function returns + * the empty string, in all other cases the result of calling + * `toString` on the passed object is returned. + * + * @param {Any} obj The object to convert to a string. + * @return {String} string representation of the passed object. + * @memberOf lunr.utils + */ +lunr.utils.asString = function (obj) { + if (obj === void 0 || obj === null) { + return "" + } else { + return obj.toString() + } +} + +/** + * Clones an object. + * + * Will create a copy of an existing object such that any mutations + * on the copy cannot affect the original. + * + * Only shallow objects are supported, passing a nested object to this + * function will cause a TypeError. + * + * Objects with primitives, and arrays of primitives are supported. + * + * @param {Object} obj The object to clone. + * @return {Object} a clone of the passed object. + * @throws {TypeError} when a nested object is passed. + * @memberOf Utils + */ +lunr.utils.clone = function (obj) { + if (obj === null || obj === undefined) { + return obj + } + + var clone = Object.create(null), + keys = Object.keys(obj) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i], + val = obj[key] + + if (Array.isArray(val)) { + clone[key] = val.slice() + continue + } + + if (typeof val === 'string' || + typeof val === 'number' || + typeof val === 'boolean') { + clone[key] = val + continue + } + + throw new TypeError("clone is not deep and does not support nested objects") + } + + return clone +} +lunr.FieldRef = function (docRef, fieldName, stringValue) { + this.docRef = docRef + this.fieldName = fieldName + this._stringValue = stringValue +} + +lunr.FieldRef.joiner = "/" + +lunr.FieldRef.fromString = function (s) { + var n = s.indexOf(lunr.FieldRef.joiner) + + if (n === -1) { + throw "malformed field ref string" + } + + var fieldRef = s.slice(0, n), + docRef = s.slice(n + 1) + + return new lunr.FieldRef (docRef, fieldRef, s) +} + +lunr.FieldRef.prototype.toString = function () { + if (this._stringValue == undefined) { + this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef + } + + return this._stringValue +} +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A lunr set. + * + * @constructor + */ +lunr.Set = function (elements) { + this.elements = Object.create(null) + + if (elements) { + this.length = elements.length + + for (var i = 0; i < this.length; i++) { + this.elements[elements[i]] = true + } + } else { + this.length = 0 + } +} + +/** + * A complete set that contains all elements. + * + * @static + * @readonly + * @type {lunr.Set} + */ +lunr.Set.complete = { + intersect: function (other) { + return other + }, + + union: function () { + return this + }, + + contains: function () { + return true + } +} + +/** + * An empty set that contains no elements. + * + * @static + * @readonly + * @type {lunr.Set} + */ +lunr.Set.empty = { + intersect: function () { + return this + }, + + union: function (other) { + return other + }, + + contains: function () { + return false + } +} + +/** + * Returns true if this set contains the specified object. + * + * @param {object} object - Object whose presence in this set is to be tested. + * @returns {boolean} - True if this set contains the specified object. + */ +lunr.Set.prototype.contains = function (object) { + return !!this.elements[object] +} + +/** + * Returns a new set containing only the elements that are present in both + * this set and the specified set. + * + * @param {lunr.Set} other - set to intersect with this set. + * @returns {lunr.Set} a new set that is the intersection of this and the specified set. + */ + +lunr.Set.prototype.intersect = function (other) { + var a, b, elements, intersection = [] + + if (other === lunr.Set.complete) { + return this + } + + if (other === lunr.Set.empty) { + return other + } + + if (this.length < other.length) { + a = this + b = other + } else { + a = other + b = this + } + + elements = Object.keys(a.elements) + + for (var i = 0; i < elements.length; i++) { + var element = elements[i] + if (element in b.elements) { + intersection.push(element) + } + } + + return new lunr.Set (intersection) +} + +/** + * Returns a new set combining the elements of this and the specified set. + * + * @param {lunr.Set} other - set to union with this set. + * @return {lunr.Set} a new set that is the union of this and the specified set. + */ + +lunr.Set.prototype.union = function (other) { + if (other === lunr.Set.complete) { + return lunr.Set.complete + } + + if (other === lunr.Set.empty) { + return this + } + + return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements))) +} +/** + * A function to calculate the inverse document frequency for + * a posting. This is shared between the builder and the index + * + * @private + * @param {object} posting - The posting for a given term + * @param {number} documentCount - The total number of documents. + */ +lunr.idf = function (posting, documentCount) { + var documentsWithTerm = 0 + + for (var fieldName in posting) { + if (fieldName == '_index') continue // Ignore the term index, its not a field + documentsWithTerm += Object.keys(posting[fieldName]).length + } + + var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5) + + return Math.log(1 + Math.abs(x)) +} + +/** + * A token wraps a string representation of a token + * as it is passed through the text processing pipeline. + * + * @constructor + * @param {string} [str=''] - The string token being wrapped. + * @param {object} [metadata={}] - Metadata associated with this token. + */ +lunr.Token = function (str, metadata) { + this.str = str || "" + this.metadata = metadata || {} +} + +/** + * Returns the token string that is being wrapped by this object. + * + * @returns {string} + */ +lunr.Token.prototype.toString = function () { + return this.str +} + +/** + * A token update function is used when updating or optionally + * when cloning a token. + * + * @callback lunr.Token~updateFunction + * @param {string} str - The string representation of the token. + * @param {Object} metadata - All metadata associated with this token. + */ + +/** + * Applies the given function to the wrapped string token. + * + * @example + * token.update(function (str, metadata) { + * return str.toUpperCase() + * }) + * + * @param {lunr.Token~updateFunction} fn - A function to apply to the token string. + * @returns {lunr.Token} + */ +lunr.Token.prototype.update = function (fn) { + this.str = fn(this.str, this.metadata) + return this +} + +/** + * Creates a clone of this token. Optionally a function can be + * applied to the cloned token. + * + * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token. + * @returns {lunr.Token} + */ +lunr.Token.prototype.clone = function (fn) { + fn = fn || function (s) { return s } + return new lunr.Token (fn(this.str, this.metadata), this.metadata) +} +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A function for splitting a string into tokens ready to be inserted into + * the search index. Uses `lunr.tokenizer.separator` to split strings, change + * the value of this property to change how strings are split into tokens. + * + * This tokenizer will convert its parameter to a string by calling `toString` and + * then will split this string on the character in `lunr.tokenizer.separator`. + * Arrays will have their elements converted to strings and wrapped in a lunr.Token. + * + * Optional metadata can be passed to the tokenizer, this metadata will be cloned and + * added as metadata to every token that is created from the object to be tokenized. + * + * @static + * @param {?(string|object|object[])} obj - The object to convert into tokens + * @param {?object} metadata - Optional metadata to associate with every token + * @returns {lunr.Token[]} + * @see {@link lunr.Pipeline} + */ +lunr.tokenizer = function (obj, metadata) { + if (obj == null || obj == undefined) { + return [] + } + + if (Array.isArray(obj)) { + return obj.map(function (t) { + return new lunr.Token( + lunr.utils.asString(t).toLowerCase(), + lunr.utils.clone(metadata) + ) + }) + } + + var str = obj.toString().toLowerCase(), + len = str.length, + tokens = [] + + for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) { + var char = str.charAt(sliceEnd), + sliceLength = sliceEnd - sliceStart + + if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) { + + if (sliceLength > 0) { + var tokenMetadata = lunr.utils.clone(metadata) || {} + tokenMetadata["position"] = [sliceStart, sliceLength] + tokenMetadata["index"] = tokens.length + + tokens.push( + new lunr.Token ( + str.slice(sliceStart, sliceEnd), + tokenMetadata + ) + ) + } + + sliceStart = sliceEnd + 1 + } + + } + + return tokens +} + +/** + * The separator used to split a string into tokens. Override this property to change the behaviour of + * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens. + * + * @static + * @see lunr.tokenizer + */ +lunr.tokenizer.separator = /[\s\-]+/ +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.Pipelines maintain an ordered list of functions to be applied to all + * tokens in documents entering the search index and queries being ran against + * the index. + * + * An instance of lunr.Index created with the lunr shortcut will contain a + * pipeline with a stop word filter and an English language stemmer. Extra + * functions can be added before or after either of these functions or these + * default functions can be removed. + * + * When run the pipeline will call each function in turn, passing a token, the + * index of that token in the original list of all tokens and finally a list of + * all the original tokens. + * + * The output of functions in the pipeline will be passed to the next function + * in the pipeline. To exclude a token from entering the index the function + * should return undefined, the rest of the pipeline will not be called with + * this token. + * + * For serialisation of pipelines to work, all functions used in an instance of + * a pipeline should be registered with lunr.Pipeline. Registered functions can + * then be loaded. If trying to load a serialised pipeline that uses functions + * that are not registered an error will be thrown. + * + * If not planning on serialising the pipeline then registering pipeline functions + * is not necessary. + * + * @constructor + */ +lunr.Pipeline = function () { + this._stack = [] +} + +lunr.Pipeline.registeredFunctions = Object.create(null) + +/** + * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token + * string as well as all known metadata. A pipeline function can mutate the token string + * or mutate (or add) metadata for a given token. + * + * A pipeline function can indicate that the passed token should be discarded by returning + * null, undefined or an empty string. This token will not be passed to any downstream pipeline + * functions and will not be added to the index. + * + * Multiple tokens can be returned by returning an array of tokens. Each token will be passed + * to any downstream pipeline functions and all will returned tokens will be added to the index. + * + * Any number of pipeline functions may be chained together using a lunr.Pipeline. + * + * @interface lunr.PipelineFunction + * @param {lunr.Token} token - A token from the document being processed. + * @param {number} i - The index of this token in the complete list of tokens for this document/field. + * @param {lunr.Token[]} tokens - All tokens for this document/field. + * @returns {(?lunr.Token|lunr.Token[])} + */ + +/** + * Register a function with the pipeline. + * + * Functions that are used in the pipeline should be registered if the pipeline + * needs to be serialised, or a serialised pipeline needs to be loaded. + * + * Registering a function does not add it to a pipeline, functions must still be + * added to instances of the pipeline for them to be used when running a pipeline. + * + * @param {lunr.PipelineFunction} fn - The function to check for. + * @param {String} label - The label to register this function with + */ +lunr.Pipeline.registerFunction = function (fn, label) { + if (label in this.registeredFunctions) { + lunr.utils.warn('Overwriting existing registered function: ' + label) + } + + fn.label = label + lunr.Pipeline.registeredFunctions[fn.label] = fn +} + +/** + * Warns if the function is not registered as a Pipeline function. + * + * @param {lunr.PipelineFunction} fn - The function to check for. + * @private + */ +lunr.Pipeline.warnIfFunctionNotRegistered = function (fn) { + var isRegistered = fn.label && (fn.label in this.registeredFunctions) + + if (!isRegistered) { + lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\n', fn) + } +} + +/** + * Loads a previously serialised pipeline. + * + * All functions to be loaded must already be registered with lunr.Pipeline. + * If any function from the serialised data has not been registered then an + * error will be thrown. + * + * @param {Object} serialised - The serialised pipeline to load. + * @returns {lunr.Pipeline} + */ +lunr.Pipeline.load = function (serialised) { + var pipeline = new lunr.Pipeline + + serialised.forEach(function (fnName) { + var fn = lunr.Pipeline.registeredFunctions[fnName] + + if (fn) { + pipeline.add(fn) + } else { + throw new Error('Cannot load unregistered function: ' + fnName) + } + }) + + return pipeline +} + +/** + * Adds new functions to the end of the pipeline. + * + * Logs a warning if the function has not been registered. + * + * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline. + */ +lunr.Pipeline.prototype.add = function () { + var fns = Array.prototype.slice.call(arguments) + + fns.forEach(function (fn) { + lunr.Pipeline.warnIfFunctionNotRegistered(fn) + this._stack.push(fn) + }, this) +} + +/** + * Adds a single function after a function that already exists in the + * pipeline. + * + * Logs a warning if the function has not been registered. + * + * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline. + * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline. + */ +lunr.Pipeline.prototype.after = function (existingFn, newFn) { + lunr.Pipeline.warnIfFunctionNotRegistered(newFn) + + var pos = this._stack.indexOf(existingFn) + if (pos == -1) { + throw new Error('Cannot find existingFn') + } + + pos = pos + 1 + this._stack.splice(pos, 0, newFn) +} + +/** + * Adds a single function before a function that already exists in the + * pipeline. + * + * Logs a warning if the function has not been registered. + * + * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline. + * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline. + */ +lunr.Pipeline.prototype.before = function (existingFn, newFn) { + lunr.Pipeline.warnIfFunctionNotRegistered(newFn) + + var pos = this._stack.indexOf(existingFn) + if (pos == -1) { + throw new Error('Cannot find existingFn') + } + + this._stack.splice(pos, 0, newFn) +} + +/** + * Removes a function from the pipeline. + * + * @param {lunr.PipelineFunction} fn The function to remove from the pipeline. + */ +lunr.Pipeline.prototype.remove = function (fn) { + var pos = this._stack.indexOf(fn) + if (pos == -1) { + return + } + + this._stack.splice(pos, 1) +} + +/** + * Runs the current list of functions that make up the pipeline against the + * passed tokens. + * + * @param {Array} tokens The tokens to run through the pipeline. + * @returns {Array} + */ +lunr.Pipeline.prototype.run = function (tokens) { + var stackLength = this._stack.length + + for (var i = 0; i < stackLength; i++) { + var fn = this._stack[i] + var memo = [] + + for (var j = 0; j < tokens.length; j++) { + var result = fn(tokens[j], j, tokens) + + if (result === null || result === void 0 || result === '') continue + + if (Array.isArray(result)) { + for (var k = 0; k < result.length; k++) { + memo.push(result[k]) + } + } else { + memo.push(result) + } + } + + tokens = memo + } + + return tokens +} + +/** + * Convenience method for passing a string through a pipeline and getting + * strings out. This method takes care of wrapping the passed string in a + * token and mapping the resulting tokens back to strings. + * + * @param {string} str - The string to pass through the pipeline. + * @param {?object} metadata - Optional metadata to associate with the token + * passed to the pipeline. + * @returns {string[]} + */ +lunr.Pipeline.prototype.runString = function (str, metadata) { + var token = new lunr.Token (str, metadata) + + return this.run([token]).map(function (t) { + return t.toString() + }) +} + +/** + * Resets the pipeline by removing any existing processors. + * + */ +lunr.Pipeline.prototype.reset = function () { + this._stack = [] +} + +/** + * Returns a representation of the pipeline ready for serialisation. + * + * Logs a warning if the function has not been registered. + * + * @returns {Array} + */ +lunr.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (fn) { + lunr.Pipeline.warnIfFunctionNotRegistered(fn) + + return fn.label + }) +} +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A vector is used to construct the vector space of documents and queries. These + * vectors support operations to determine the similarity between two documents or + * a document and a query. + * + * Normally no parameters are required for initializing a vector, but in the case of + * loading a previously dumped vector the raw elements can be provided to the constructor. + * + * For performance reasons vectors are implemented with a flat array, where an elements + * index is immediately followed by its value. E.g. [index, value, index, value]. This + * allows the underlying array to be as sparse as possible and still offer decent + * performance when being used for vector calculations. + * + * @constructor + * @param {Number[]} [elements] - The flat list of element index and element value pairs. + */ +lunr.Vector = function (elements) { + this._magnitude = 0 + this.elements = elements || [] +} + + +/** + * Calculates the position within the vector to insert a given index. + * + * This is used internally by insert and upsert. If there are duplicate indexes then + * the position is returned as if the value for that index were to be updated, but it + * is the callers responsibility to check whether there is a duplicate at that index + * + * @param {Number} insertIdx - The index at which the element should be inserted. + * @returns {Number} + */ +lunr.Vector.prototype.positionForIndex = function (index) { + // For an empty vector the tuple can be inserted at the beginning + if (this.elements.length == 0) { + return 0 + } + + var start = 0, + end = this.elements.length / 2, + sliceLength = end - start, + pivotPoint = Math.floor(sliceLength / 2), + pivotIndex = this.elements[pivotPoint * 2] + + while (sliceLength > 1) { + if (pivotIndex < index) { + start = pivotPoint + } + + if (pivotIndex > index) { + end = pivotPoint + } + + if (pivotIndex == index) { + break + } + + sliceLength = end - start + pivotPoint = start + Math.floor(sliceLength / 2) + pivotIndex = this.elements[pivotPoint * 2] + } + + if (pivotIndex == index) { + return pivotPoint * 2 + } + + if (pivotIndex > index) { + return pivotPoint * 2 + } + + if (pivotIndex < index) { + return (pivotPoint + 1) * 2 + } +} + +/** + * Inserts an element at an index within the vector. + * + * Does not allow duplicates, will throw an error if there is already an entry + * for this index. + * + * @param {Number} insertIdx - The index at which the element should be inserted. + * @param {Number} val - The value to be inserted into the vector. + */ +lunr.Vector.prototype.insert = function (insertIdx, val) { + this.upsert(insertIdx, val, function () { + throw "duplicate index" + }) +} + +/** + * Inserts or updates an existing index within the vector. + * + * @param {Number} insertIdx - The index at which the element should be inserted. + * @param {Number} val - The value to be inserted into the vector. + * @param {function} fn - A function that is called for updates, the existing value and the + * requested value are passed as arguments + */ +lunr.Vector.prototype.upsert = function (insertIdx, val, fn) { + this._magnitude = 0 + var position = this.positionForIndex(insertIdx) + + if (this.elements[position] == insertIdx) { + this.elements[position + 1] = fn(this.elements[position + 1], val) + } else { + this.elements.splice(position, 0, insertIdx, val) + } +} + +/** + * Calculates the magnitude of this vector. + * + * @returns {Number} + */ +lunr.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude + + var sumOfSquares = 0, + elementsLength = this.elements.length + + for (var i = 1; i < elementsLength; i += 2) { + var val = this.elements[i] + sumOfSquares += val * val + } + + return this._magnitude = Math.sqrt(sumOfSquares) +} + +/** + * Calculates the dot product of this vector and another vector. + * + * @param {lunr.Vector} otherVector - The vector to compute the dot product with. + * @returns {Number} + */ +lunr.Vector.prototype.dot = function (otherVector) { + var dotProduct = 0, + a = this.elements, b = otherVector.elements, + aLen = a.length, bLen = b.length, + aVal = 0, bVal = 0, + i = 0, j = 0 + + while (i < aLen && j < bLen) { + aVal = a[i], bVal = b[j] + if (aVal < bVal) { + i += 2 + } else if (aVal > bVal) { + j += 2 + } else if (aVal == bVal) { + dotProduct += a[i + 1] * b[j + 1] + i += 2 + j += 2 + } + } + + return dotProduct +} + +/** + * Calculates the similarity between this vector and another vector. + * + * @param {lunr.Vector} otherVector - The other vector to calculate the + * similarity with. + * @returns {Number} + */ +lunr.Vector.prototype.similarity = function (otherVector) { + return this.dot(otherVector) / this.magnitude() || 0 +} + +/** + * Converts the vector to an array of the elements within the vector. + * + * @returns {Number[]} + */ +lunr.Vector.prototype.toArray = function () { + var output = new Array (this.elements.length / 2) + + for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) { + output[j] = this.elements[i] + } + + return output +} + +/** + * A JSON serializable representation of the vector. + * + * @returns {Number[]} + */ +lunr.Vector.prototype.toJSON = function () { + return this.elements +} +/* eslint-disable */ +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ + +/** + * lunr.stemmer is an english language stemmer, this is a JavaScript + * implementation of the PorterStemmer taken from http://tartarus.org/~martin + * + * @static + * @implements {lunr.PipelineFunction} + * @param {lunr.Token} token - The string to stem + * @returns {lunr.Token} + * @see {@link lunr.Pipeline} + * @function + */ +lunr.stemmer = (function(){ + var step2list = { + "ational" : "ate", + "tional" : "tion", + "enci" : "ence", + "anci" : "ance", + "izer" : "ize", + "bli" : "ble", + "alli" : "al", + "entli" : "ent", + "eli" : "e", + "ousli" : "ous", + "ization" : "ize", + "ation" : "ate", + "ator" : "ate", + "alism" : "al", + "iveness" : "ive", + "fulness" : "ful", + "ousness" : "ous", + "aliti" : "al", + "iviti" : "ive", + "biliti" : "ble", + "logi" : "log" + }, + + step3list = { + "icate" : "ic", + "ative" : "", + "alize" : "al", + "iciti" : "ic", + "ical" : "ic", + "ful" : "", + "ness" : "" + }, + + c = "[^aeiou]", // consonant + v = "[aeiouy]", // vowel + C = c + "[^aeiouy]*", // consonant sequence + V = v + "[aeiou]*", // vowel sequence + + mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0 + meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1 + mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1 + s_v = "^(" + C + ")?" + v; // vowel in stem + + var re_mgr0 = new RegExp(mgr0); + var re_mgr1 = new RegExp(mgr1); + var re_meq1 = new RegExp(meq1); + var re_s_v = new RegExp(s_v); + + var re_1a = /^(.+?)(ss|i)es$/; + var re2_1a = /^(.+?)([^s])s$/; + var re_1b = /^(.+?)eed$/; + var re2_1b = /^(.+?)(ed|ing)$/; + var re_1b_2 = /.$/; + var re2_1b_2 = /(at|bl|iz)$/; + var re3_1b_2 = new RegExp("([^aeiouylsz])\\1$"); + var re4_1b_2 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + + var re_1c = /^(.+?[^aeiou])y$/; + var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + + var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + + var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + var re2_4 = /^(.+?)(s|t)(ion)$/; + + var re_5 = /^(.+?)e$/; + var re_5_1 = /ll$/; + var re3_5 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + + var porterStemmer = function porterStemmer(w) { + var stem, + suffix, + firstch, + re, + re2, + re3, + re4; + + if (w.length < 3) { return w; } + + firstch = w.substr(0,1); + if (firstch == "y") { + w = firstch.toUpperCase() + w.substr(1); + } + + // Step 1a + re = re_1a + re2 = re2_1a; + + if (re.test(w)) { w = w.replace(re,"$1$2"); } + else if (re2.test(w)) { w = w.replace(re2,"$1$2"); } + + // Step 1b + re = re_1b; + re2 = re2_1b; + if (re.test(w)) { + var fp = re.exec(w); + re = re_mgr0; + if (re.test(fp[1])) { + re = re_1b_2; + w = w.replace(re,""); + } + } else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = re_s_v; + if (re2.test(stem)) { + w = stem; + re2 = re2_1b_2; + re3 = re3_1b_2; + re4 = re4_1b_2; + if (re2.test(w)) { w = w + "e"; } + else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,""); } + else if (re4.test(w)) { w = w + "e"; } + } + } + + // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say) + re = re_1c; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem + "i"; + } + + // Step 2 + re = re_2; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = re_mgr0; + if (re.test(stem)) { + w = stem + step2list[suffix]; + } + } + + // Step 3 + re = re_3; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = re_mgr0; + if (re.test(stem)) { + w = stem + step3list[suffix]; + } + } + + // Step 4 + re = re_4; + re2 = re2_4; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = re_mgr1; + if (re.test(stem)) { + w = stem; + } + } else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = re_mgr1; + if (re2.test(stem)) { + w = stem; + } + } + + // Step 5 + re = re_5; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = re_mgr1; + re2 = re_meq1; + re3 = re3_5; + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) { + w = stem; + } + } + + re = re_5_1; + re2 = re_mgr1; + if (re.test(w) && re2.test(w)) { + re = re_1b_2; + w = w.replace(re,""); + } + + // and turn initial Y back to y + + if (firstch == "y") { + w = firstch.toLowerCase() + w.substr(1); + } + + return w; + }; + + return function (token) { + return token.update(porterStemmer); + } +})(); + +lunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer') +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.generateStopWordFilter builds a stopWordFilter function from the provided + * list of stop words. + * + * The built in lunr.stopWordFilter is built using this generator and can be used + * to generate custom stopWordFilters for applications or non English languages. + * + * @function + * @param {Array} token The token to pass through the filter + * @returns {lunr.PipelineFunction} + * @see lunr.Pipeline + * @see lunr.stopWordFilter + */ +lunr.generateStopWordFilter = function (stopWords) { + var words = stopWords.reduce(function (memo, stopWord) { + memo[stopWord] = stopWord + return memo + }, {}) + + return function (token) { + if (token && words[token.toString()] !== token.toString()) return token + } +} + +/** + * lunr.stopWordFilter is an English language stop word list filter, any words + * contained in the list will not be passed through the filter. + * + * This is intended to be used in the Pipeline. If the token does not pass the + * filter then undefined will be returned. + * + * @function + * @implements {lunr.PipelineFunction} + * @params {lunr.Token} token - A token to check for being a stop word. + * @returns {lunr.Token} + * @see {@link lunr.Pipeline} + */ +lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'all', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'any', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'do', + 'does', + 'either', + 'else', + 'ever', + 'every', + 'for', + 'from', + 'get', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'in', + 'into', + 'is', + 'it', + 'its', + 'just', + 'least', + 'let', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'only', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'where', + 'which', + 'while', + 'who', + 'whom', + 'why', + 'will', + 'with', + 'would', + 'yet', + 'you', + 'your' +]) + +lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter') +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.trimmer is a pipeline function for trimming non word + * characters from the beginning and end of tokens before they + * enter the index. + * + * This implementation may not work correctly for non latin + * characters and should either be removed or adapted for use + * with languages with non-latin characters. + * + * @static + * @implements {lunr.PipelineFunction} + * @param {lunr.Token} token The token to pass through the filter + * @returns {lunr.Token} + * @see lunr.Pipeline + */ +lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^\W+/, '').replace(/\W+$/, '') + }) +} + +lunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer') +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A token set is used to store the unique list of all tokens + * within an index. Token sets are also used to represent an + * incoming query to the index, this query token set and index + * token set are then intersected to find which tokens to look + * up in the inverted index. + * + * A token set can hold multiple tokens, as in the case of the + * index token set, or it can hold a single token as in the + * case of a simple query token set. + * + * Additionally token sets are used to perform wildcard matching. + * Leading, contained and trailing wildcards are supported, and + * from this edit distance matching can also be provided. + * + * Token sets are implemented as a minimal finite state automata, + * where both common prefixes and suffixes are shared between tokens. + * This helps to reduce the space used for storing the token set. + * + * @constructor + */ +lunr.TokenSet = function () { + this.final = false + this.edges = {} + this.id = lunr.TokenSet._nextId + lunr.TokenSet._nextId += 1 +} + +/** + * Keeps track of the next, auto increment, identifier to assign + * to a new tokenSet. + * + * TokenSets require a unique identifier to be correctly minimised. + * + * @private + */ +lunr.TokenSet._nextId = 1 + +/** + * Creates a TokenSet instance from the given sorted array of words. + * + * @param {String[]} arr - A sorted array of strings to create the set from. + * @returns {lunr.TokenSet} + * @throws Will throw an error if the input array is not sorted. + */ +lunr.TokenSet.fromArray = function (arr) { + var builder = new lunr.TokenSet.Builder + + for (var i = 0, len = arr.length; i < len; i++) { + builder.insert(arr[i]) + } + + builder.finish() + return builder.root +} + +/** + * Creates a token set from a query clause. + * + * @private + * @param {Object} clause - A single clause from lunr.Query. + * @param {string} clause.term - The query clause term. + * @param {number} [clause.editDistance] - The optional edit distance for the term. + * @returns {lunr.TokenSet} + */ +lunr.TokenSet.fromClause = function (clause) { + if ('editDistance' in clause) { + return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance) + } else { + return lunr.TokenSet.fromString(clause.term) + } +} + +/** + * Creates a token set representing a single string with a specified + * edit distance. + * + * Insertions, deletions, substitutions and transpositions are each + * treated as an edit distance of 1. + * + * Increasing the allowed edit distance will have a dramatic impact + * on the performance of both creating and intersecting these TokenSets. + * It is advised to keep the edit distance less than 3. + * + * @param {string} str - The string to create the token set from. + * @param {number} editDistance - The allowed edit distance to match. + * @returns {lunr.Vector} + */ +lunr.TokenSet.fromFuzzyString = function (str, editDistance) { + var root = new lunr.TokenSet + + var stack = [{ + node: root, + editsRemaining: editDistance, + str: str + }] + + while (stack.length) { + var frame = stack.pop() + + // no edit + if (frame.str.length > 0) { + var char = frame.str.charAt(0), + noEditNode + + if (char in frame.node.edges) { + noEditNode = frame.node.edges[char] + } else { + noEditNode = new lunr.TokenSet + frame.node.edges[char] = noEditNode + } + + if (frame.str.length == 1) { + noEditNode.final = true + } + + stack.push({ + node: noEditNode, + editsRemaining: frame.editsRemaining, + str: frame.str.slice(1) + }) + } + + if (frame.editsRemaining == 0) { + continue + } + + // insertion + if ("*" in frame.node.edges) { + var insertionNode = frame.node.edges["*"] + } else { + var insertionNode = new lunr.TokenSet + frame.node.edges["*"] = insertionNode + } + + if (frame.str.length == 0) { + insertionNode.final = true + } + + stack.push({ + node: insertionNode, + editsRemaining: frame.editsRemaining - 1, + str: frame.str + }) + + // deletion + // can only do a deletion if we have enough edits remaining + // and if there are characters left to delete in the string + if (frame.str.length > 1) { + stack.push({ + node: frame.node, + editsRemaining: frame.editsRemaining - 1, + str: frame.str.slice(1) + }) + } + + // deletion + // just removing the last character from the str + if (frame.str.length == 1) { + frame.node.final = true + } + + // substitution + // can only do a substitution if we have enough edits remaining + // and if there are characters left to substitute + if (frame.str.length >= 1) { + if ("*" in frame.node.edges) { + var substitutionNode = frame.node.edges["*"] + } else { + var substitutionNode = new lunr.TokenSet + frame.node.edges["*"] = substitutionNode + } + + if (frame.str.length == 1) { + substitutionNode.final = true + } + + stack.push({ + node: substitutionNode, + editsRemaining: frame.editsRemaining - 1, + str: frame.str.slice(1) + }) + } + + // transposition + // can only do a transposition if there are edits remaining + // and there are enough characters to transpose + if (frame.str.length > 1) { + var charA = frame.str.charAt(0), + charB = frame.str.charAt(1), + transposeNode + + if (charB in frame.node.edges) { + transposeNode = frame.node.edges[charB] + } else { + transposeNode = new lunr.TokenSet + frame.node.edges[charB] = transposeNode + } + + if (frame.str.length == 1) { + transposeNode.final = true + } + + stack.push({ + node: transposeNode, + editsRemaining: frame.editsRemaining - 1, + str: charA + frame.str.slice(2) + }) + } + } + + return root +} + +/** + * Creates a TokenSet from a string. + * + * The string may contain one or more wildcard characters (*) + * that will allow wildcard matching when intersecting with + * another TokenSet. + * + * @param {string} str - The string to create a TokenSet from. + * @returns {lunr.TokenSet} + */ +lunr.TokenSet.fromString = function (str) { + var node = new lunr.TokenSet, + root = node + + /* + * Iterates through all characters within the passed string + * appending a node for each character. + * + * When a wildcard character is found then a self + * referencing edge is introduced to continually match + * any number of any characters. + */ + for (var i = 0, len = str.length; i < len; i++) { + var char = str[i], + final = (i == len - 1) + + if (char == "*") { + node.edges[char] = node + node.final = final + + } else { + var next = new lunr.TokenSet + next.final = final + + node.edges[char] = next + node = next + } + } + + return root +} + +/** + * Converts this TokenSet into an array of strings + * contained within the TokenSet. + * + * This is not intended to be used on a TokenSet that + * contains wildcards, in these cases the results are + * undefined and are likely to cause an infinite loop. + * + * @returns {string[]} + */ +lunr.TokenSet.prototype.toArray = function () { + var words = [] + + var stack = [{ + prefix: "", + node: this + }] + + while (stack.length) { + var frame = stack.pop(), + edges = Object.keys(frame.node.edges), + len = edges.length + + if (frame.node.final) { + /* In Safari, at this point the prefix is sometimes corrupted, see: + * https://github.com/olivernn/lunr.js/issues/279 Calling any + * String.prototype method forces Safari to "cast" this string to what + * it's supposed to be, fixing the bug. */ + frame.prefix.charAt(0) + words.push(frame.prefix) + } + + for (var i = 0; i < len; i++) { + var edge = edges[i] + + stack.push({ + prefix: frame.prefix.concat(edge), + node: frame.node.edges[edge] + }) + } + } + + return words +} + +/** + * Generates a string representation of a TokenSet. + * + * This is intended to allow TokenSets to be used as keys + * in objects, largely to aid the construction and minimisation + * of a TokenSet. As such it is not designed to be a human + * friendly representation of the TokenSet. + * + * @returns {string} + */ +lunr.TokenSet.prototype.toString = function () { + // NOTE: Using Object.keys here as this.edges is very likely + // to enter 'hash-mode' with many keys being added + // + // avoiding a for-in loop here as it leads to the function + // being de-optimised (at least in V8). From some simple + // benchmarks the performance is comparable, but allowing + // V8 to optimize may mean easy performance wins in the future. + + if (this._str) { + return this._str + } + + var str = this.final ? '1' : '0', + labels = Object.keys(this.edges).sort(), + len = labels.length + + for (var i = 0; i < len; i++) { + var label = labels[i], + node = this.edges[label] + + str = str + label + node.id + } + + return str +} + +/** + * Returns a new TokenSet that is the intersection of + * this TokenSet and the passed TokenSet. + * + * This intersection will take into account any wildcards + * contained within the TokenSet. + * + * @param {lunr.TokenSet} b - An other TokenSet to intersect with. + * @returns {lunr.TokenSet} + */ +lunr.TokenSet.prototype.intersect = function (b) { + var output = new lunr.TokenSet, + frame = undefined + + var stack = [{ + qNode: b, + output: output, + node: this + }] + + while (stack.length) { + frame = stack.pop() + + // NOTE: As with the #toString method, we are using + // Object.keys and a for loop instead of a for-in loop + // as both of these objects enter 'hash' mode, causing + // the function to be de-optimised in V8 + var qEdges = Object.keys(frame.qNode.edges), + qLen = qEdges.length, + nEdges = Object.keys(frame.node.edges), + nLen = nEdges.length + + for (var q = 0; q < qLen; q++) { + var qEdge = qEdges[q] + + for (var n = 0; n < nLen; n++) { + var nEdge = nEdges[n] + + if (nEdge == qEdge || qEdge == '*') { + var node = frame.node.edges[nEdge], + qNode = frame.qNode.edges[qEdge], + final = node.final && qNode.final, + next = undefined + + if (nEdge in frame.output.edges) { + // an edge already exists for this character + // no need to create a new node, just set the finality + // bit unless this node is already final + next = frame.output.edges[nEdge] + next.final = next.final || final + + } else { + // no edge exists yet, must create one + // set the finality bit and insert it + // into the output + next = new lunr.TokenSet + next.final = final + frame.output.edges[nEdge] = next + } + + stack.push({ + qNode: qNode, + output: next, + node: node + }) + } + } + } + } + + return output +} +lunr.TokenSet.Builder = function () { + this.previousWord = "" + this.root = new lunr.TokenSet + this.uncheckedNodes = [] + this.minimizedNodes = {} +} + +lunr.TokenSet.Builder.prototype.insert = function (word) { + var node, + commonPrefix = 0 + + if (word < this.previousWord) { + throw new Error ("Out of order word insertion") + } + + for (var i = 0; i < word.length && i < this.previousWord.length; i++) { + if (word[i] != this.previousWord[i]) break + commonPrefix++ + } + + this.minimize(commonPrefix) + + if (this.uncheckedNodes.length == 0) { + node = this.root + } else { + node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child + } + + for (var i = commonPrefix; i < word.length; i++) { + var nextNode = new lunr.TokenSet, + char = word[i] + + node.edges[char] = nextNode + + this.uncheckedNodes.push({ + parent: node, + char: char, + child: nextNode + }) + + node = nextNode + } + + node.final = true + this.previousWord = word +} + +lunr.TokenSet.Builder.prototype.finish = function () { + this.minimize(0) +} + +lunr.TokenSet.Builder.prototype.minimize = function (downTo) { + for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) { + var node = this.uncheckedNodes[i], + childKey = node.child.toString() + + if (childKey in this.minimizedNodes) { + node.parent.edges[node.char] = this.minimizedNodes[childKey] + } else { + // Cache the key for this node since + // we know it can't change anymore + node.child._str = childKey + + this.minimizedNodes[childKey] = node.child + } + + this.uncheckedNodes.pop() + } +} +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * An index contains the built index of all documents and provides a query interface + * to the index. + * + * Usually instances of lunr.Index will not be created using this constructor, instead + * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be + * used to load previously built and serialized indexes. + * + * @constructor + * @param {Object} attrs - The attributes of the built search index. + * @param {Object} attrs.invertedIndex - An index of term/field to document reference. + * @param {Object} attrs.fieldVectors - Field vectors + * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens. + * @param {string[]} attrs.fields - The names of indexed document fields. + * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms. + */ +lunr.Index = function (attrs) { + this.invertedIndex = attrs.invertedIndex + this.fieldVectors = attrs.fieldVectors + this.tokenSet = attrs.tokenSet + this.fields = attrs.fields + this.pipeline = attrs.pipeline +} + +/** + * A result contains details of a document matching a search query. + * @typedef {Object} lunr.Index~Result + * @property {string} ref - The reference of the document this result represents. + * @property {number} score - A number between 0 and 1 representing how similar this document is to the query. + * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match. + */ + +/** + * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple + * query language which itself is parsed into an instance of lunr.Query. + * + * For programmatically building queries it is advised to directly use lunr.Query, the query language + * is best used for human entered text rather than program generated text. + * + * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported + * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello' + * or 'world', though those that contain both will rank higher in the results. + * + * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can + * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding + * wildcards will increase the number of documents that will be found but can also have a negative + * impact on query performance, especially with wildcards at the beginning of a term. + * + * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term + * hello in the title field will match this query. Using a field not present in the index will lead + * to an error being thrown. + * + * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term + * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported + * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2. + * Avoid large values for edit distance to improve query performance. + * + * Each term also supports a presence modifier. By default a term's presence in document is optional, however + * this can be changed to either required or prohibited. For a term's presence to be required in a document the + * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and + * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not + * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'. + * + * To escape special characters the backslash character '\' can be used, this allows searches to include + * characters that would normally be considered modifiers, e.g. `foo\~2` will search for a term "foo~2" instead + * of attempting to apply a boost of 2 to the search term "foo". + * + * @typedef {string} lunr.Index~QueryString + * @example Simple single term query + * hello + * @example Multiple term query + * hello world + * @example term scoped to a field + * title:hello + * @example term with a boost of 10 + * hello^10 + * @example term with an edit distance of 2 + * hello~2 + * @example terms with presence modifiers + * -foo +bar baz + */ + +/** + * Performs a search against the index using lunr query syntax. + * + * Results will be returned sorted by their score, the most relevant results + * will be returned first. For details on how the score is calculated, please see + * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}. + * + * For more programmatic querying use lunr.Index#query. + * + * @param {lunr.Index~QueryString} queryString - A string containing a lunr query. + * @throws {lunr.QueryParseError} If the passed query string cannot be parsed. + * @returns {lunr.Index~Result[]} + */ +lunr.Index.prototype.search = function (queryString) { + return this.query(function (query) { + var parser = new lunr.QueryParser(queryString, query) + parser.parse() + }) +} + +/** + * A query builder callback provides a query object to be used to express + * the query to perform on the index. + * + * @callback lunr.Index~queryBuilder + * @param {lunr.Query} query - The query object to build up. + * @this lunr.Query + */ + +/** + * Performs a query against the index using the yielded lunr.Query object. + * + * If performing programmatic queries against the index, this method is preferred + * over lunr.Index#search so as to avoid the additional query parsing overhead. + * + * A query object is yielded to the supplied function which should be used to + * express the query to be run against the index. + * + * Note that although this function takes a callback parameter it is _not_ an + * asynchronous operation, the callback is just yielded a query object to be + * customized. + * + * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query. + * @returns {lunr.Index~Result[]} + */ +lunr.Index.prototype.query = function (fn) { + // for each query clause + // * process terms + // * expand terms from token set + // * find matching documents and metadata + // * get document vectors + // * score documents + + var query = new lunr.Query(this.fields), + matchingFields = Object.create(null), + queryVectors = Object.create(null), + termFieldCache = Object.create(null), + requiredMatches = Object.create(null), + prohibitedMatches = Object.create(null) + + /* + * To support field level boosts a query vector is created per + * field. An empty vector is eagerly created to support negated + * queries. + */ + for (var i = 0; i < this.fields.length; i++) { + queryVectors[this.fields[i]] = new lunr.Vector + } + + fn.call(query, query) + + for (var i = 0; i < query.clauses.length; i++) { + /* + * Unless the pipeline has been disabled for this term, which is + * the case for terms with wildcards, we need to pass the clause + * term through the search pipeline. A pipeline returns an array + * of processed terms. Pipeline functions may expand the passed + * term, which means we may end up performing multiple index lookups + * for a single query term. + */ + var clause = query.clauses[i], + terms = null, + clauseMatches = lunr.Set.empty + + if (clause.usePipeline) { + terms = this.pipeline.runString(clause.term, { + fields: clause.fields + }) + } else { + terms = [clause.term] + } + + for (var m = 0; m < terms.length; m++) { + var term = terms[m] + + /* + * Each term returned from the pipeline needs to use the same query + * clause object, e.g. the same boost and or edit distance. The + * simplest way to do this is to re-use the clause object but mutate + * its term property. + */ + clause.term = term + + /* + * From the term in the clause we create a token set which will then + * be used to intersect the indexes token set to get a list of terms + * to lookup in the inverted index + */ + var termTokenSet = lunr.TokenSet.fromClause(clause), + expandedTerms = this.tokenSet.intersect(termTokenSet).toArray() + + /* + * If a term marked as required does not exist in the tokenSet it is + * impossible for the search to return any matches. We set all the field + * scoped required matches set to empty and stop examining any further + * clauses. + */ + if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) { + for (var k = 0; k < clause.fields.length; k++) { + var field = clause.fields[k] + requiredMatches[field] = lunr.Set.empty + } + + break + } + + for (var j = 0; j < expandedTerms.length; j++) { + /* + * For each term get the posting and termIndex, this is required for + * building the query vector. + */ + var expandedTerm = expandedTerms[j], + posting = this.invertedIndex[expandedTerm], + termIndex = posting._index + + for (var k = 0; k < clause.fields.length; k++) { + /* + * For each field that this query term is scoped by (by default + * all fields are in scope) we need to get all the document refs + * that have this term in that field. + * + * The posting is the entry in the invertedIndex for the matching + * term from above. + */ + var field = clause.fields[k], + fieldPosting = posting[field], + matchingDocumentRefs = Object.keys(fieldPosting), + termField = expandedTerm + "/" + field, + matchingDocumentsSet = new lunr.Set(matchingDocumentRefs) + + /* + * if the presence of this term is required ensure that the matching + * documents are added to the set of required matches for this clause. + * + */ + if (clause.presence == lunr.Query.presence.REQUIRED) { + clauseMatches = clauseMatches.union(matchingDocumentsSet) + + if (requiredMatches[field] === undefined) { + requiredMatches[field] = lunr.Set.complete + } + } + + /* + * if the presence of this term is prohibited ensure that the matching + * documents are added to the set of prohibited matches for this field, + * creating that set if it does not yet exist. + */ + if (clause.presence == lunr.Query.presence.PROHIBITED) { + if (prohibitedMatches[field] === undefined) { + prohibitedMatches[field] = lunr.Set.empty + } + + prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet) + + /* + * Prohibited matches should not be part of the query vector used for + * similarity scoring and no metadata should be extracted so we continue + * to the next field + */ + continue + } + + /* + * The query field vector is populated using the termIndex found for + * the term and a unit value with the appropriate boost applied. + * Using upsert because there could already be an entry in the vector + * for the term we are working with. In that case we just add the scores + * together. + */ + queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b }) + + /** + * If we've already seen this term, field combo then we've already collected + * the matching documents and metadata, no need to go through all that again + */ + if (termFieldCache[termField]) { + continue + } + + for (var l = 0; l < matchingDocumentRefs.length; l++) { + /* + * All metadata for this term/field/document triple + * are then extracted and collected into an instance + * of lunr.MatchData ready to be returned in the query + * results + */ + var matchingDocumentRef = matchingDocumentRefs[l], + matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field), + metadata = fieldPosting[matchingDocumentRef], + fieldMatch + + if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) { + matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata) + } else { + fieldMatch.add(expandedTerm, field, metadata) + } + + } + + termFieldCache[termField] = true + } + } + } + + /** + * If the presence was required we need to update the requiredMatches field sets. + * We do this after all fields for the term have collected their matches because + * the clause terms presence is required in _any_ of the fields not _all_ of the + * fields. + */ + if (clause.presence === lunr.Query.presence.REQUIRED) { + for (var k = 0; k < clause.fields.length; k++) { + var field = clause.fields[k] + requiredMatches[field] = requiredMatches[field].intersect(clauseMatches) + } + } + } + + /** + * Need to combine the field scoped required and prohibited + * matching documents into a global set of required and prohibited + * matches + */ + var allRequiredMatches = lunr.Set.complete, + allProhibitedMatches = lunr.Set.empty + + for (var i = 0; i < this.fields.length; i++) { + var field = this.fields[i] + + if (requiredMatches[field]) { + allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field]) + } + + if (prohibitedMatches[field]) { + allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field]) + } + } + + var matchingFieldRefs = Object.keys(matchingFields), + results = [], + matches = Object.create(null) + + /* + * If the query is negated (contains only prohibited terms) + * we need to get _all_ fieldRefs currently existing in the + * index. This is only done when we know that the query is + * entirely prohibited terms to avoid any cost of getting all + * fieldRefs unnecessarily. + * + * Additionally, blank MatchData must be created to correctly + * populate the results. + */ + if (query.isNegated()) { + matchingFieldRefs = Object.keys(this.fieldVectors) + + for (var i = 0; i < matchingFieldRefs.length; i++) { + var matchingFieldRef = matchingFieldRefs[i] + var fieldRef = lunr.FieldRef.fromString(matchingFieldRef) + matchingFields[matchingFieldRef] = new lunr.MatchData + } + } + + for (var i = 0; i < matchingFieldRefs.length; i++) { + /* + * Currently we have document fields that match the query, but we + * need to return documents. The matchData and scores are combined + * from multiple fields belonging to the same document. + * + * Scores are calculated by field, using the query vectors created + * above, and combined into a final document score using addition. + */ + var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]), + docRef = fieldRef.docRef + + if (!allRequiredMatches.contains(docRef)) { + continue + } + + if (allProhibitedMatches.contains(docRef)) { + continue + } + + var fieldVector = this.fieldVectors[fieldRef], + score = queryVectors[fieldRef.fieldName].similarity(fieldVector), + docMatch + + if ((docMatch = matches[docRef]) !== undefined) { + docMatch.score += score + docMatch.matchData.combine(matchingFields[fieldRef]) + } else { + var match = { + ref: docRef, + score: score, + matchData: matchingFields[fieldRef] + } + matches[docRef] = match + results.push(match) + } + } + + /* + * Sort the results objects by score, highest first. + */ + return results.sort(function (a, b) { + return b.score - a.score + }) +} + +/** + * Prepares the index for JSON serialization. + * + * The schema for this JSON blob will be described in a + * separate JSON schema file. + * + * @returns {Object} + */ +lunr.Index.prototype.toJSON = function () { + var invertedIndex = Object.keys(this.invertedIndex) + .sort() + .map(function (term) { + return [term, this.invertedIndex[term]] + }, this) + + var fieldVectors = Object.keys(this.fieldVectors) + .map(function (ref) { + return [ref, this.fieldVectors[ref].toJSON()] + }, this) + + return { + version: lunr.version, + fields: this.fields, + fieldVectors: fieldVectors, + invertedIndex: invertedIndex, + pipeline: this.pipeline.toJSON() + } +} + +/** + * Loads a previously serialized lunr.Index + * + * @param {Object} serializedIndex - A previously serialized lunr.Index + * @returns {lunr.Index} + */ +lunr.Index.load = function (serializedIndex) { + var attrs = {}, + fieldVectors = {}, + serializedVectors = serializedIndex.fieldVectors, + invertedIndex = Object.create(null), + serializedInvertedIndex = serializedIndex.invertedIndex, + tokenSetBuilder = new lunr.TokenSet.Builder, + pipeline = lunr.Pipeline.load(serializedIndex.pipeline) + + if (serializedIndex.version != lunr.version) { + lunr.utils.warn("Version mismatch when loading serialised index. Current version of lunr '" + lunr.version + "' does not match serialized index '" + serializedIndex.version + "'") + } + + for (var i = 0; i < serializedVectors.length; i++) { + var tuple = serializedVectors[i], + ref = tuple[0], + elements = tuple[1] + + fieldVectors[ref] = new lunr.Vector(elements) + } + + for (var i = 0; i < serializedInvertedIndex.length; i++) { + var tuple = serializedInvertedIndex[i], + term = tuple[0], + posting = tuple[1] + + tokenSetBuilder.insert(term) + invertedIndex[term] = posting + } + + tokenSetBuilder.finish() + + attrs.fields = serializedIndex.fields + + attrs.fieldVectors = fieldVectors + attrs.invertedIndex = invertedIndex + attrs.tokenSet = tokenSetBuilder.root + attrs.pipeline = pipeline + + return new lunr.Index(attrs) +} +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.Builder performs indexing on a set of documents and + * returns instances of lunr.Index ready for querying. + * + * All configuration of the index is done via the builder, the + * fields to index, the document reference, the text processing + * pipeline and document scoring parameters are all set on the + * builder before indexing. + * + * @constructor + * @property {string} _ref - Internal reference to the document reference field. + * @property {string[]} _fields - Internal reference to the document fields to index. + * @property {object} invertedIndex - The inverted index maps terms to document fields. + * @property {object} documentTermFrequencies - Keeps track of document term frequencies. + * @property {object} documentLengths - Keeps track of the length of documents added to the index. + * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing. + * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing. + * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index. + * @property {number} documentCount - Keeps track of the total number of documents indexed. + * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75. + * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2. + * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space. + * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index. + */ +lunr.Builder = function () { + this._ref = "id" + this._fields = Object.create(null) + this._documents = Object.create(null) + this.invertedIndex = Object.create(null) + this.fieldTermFrequencies = {} + this.fieldLengths = {} + this.tokenizer = lunr.tokenizer + this.pipeline = new lunr.Pipeline + this.searchPipeline = new lunr.Pipeline + this.documentCount = 0 + this._b = 0.75 + this._k1 = 1.2 + this.termIndex = 0 + this.metadataWhitelist = [] +} + +/** + * Sets the document field used as the document reference. Every document must have this field. + * The type of this field in the document should be a string, if it is not a string it will be + * coerced into a string by calling toString. + * + * The default ref is 'id'. + * + * The ref should _not_ be changed during indexing, it should be set before any documents are + * added to the index. Changing it during indexing can lead to inconsistent results. + * + * @param {string} ref - The name of the reference field in the document. + */ +lunr.Builder.prototype.ref = function (ref) { + this._ref = ref +} + +/** + * A function that is used to extract a field from a document. + * + * Lunr expects a field to be at the top level of a document, if however the field + * is deeply nested within a document an extractor function can be used to extract + * the right field for indexing. + * + * @callback fieldExtractor + * @param {object} doc - The document being added to the index. + * @returns {?(string|object|object[])} obj - The object that will be indexed for this field. + * @example Extracting a nested field + * function (doc) { return doc.nested.field } + */ + +/** + * Adds a field to the list of document fields that will be indexed. Every document being + * indexed should have this field. Null values for this field in indexed documents will + * not cause errors but will limit the chance of that document being retrieved by searches. + * + * All fields should be added before adding documents to the index. Adding fields after + * a document has been indexed will have no effect on already indexed documents. + * + * Fields can be boosted at build time. This allows terms within that field to have more + * importance when ranking search results. Use a field boost to specify that matches within + * one field are more important than other fields. + * + * @param {string} fieldName - The name of a field to index in all documents. + * @param {object} attributes - Optional attributes associated with this field. + * @param {number} [attributes.boost=1] - Boost applied to all terms within this field. + * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document. + * @throws {RangeError} fieldName cannot contain unsupported characters '/' + */ +lunr.Builder.prototype.field = function (fieldName, attributes) { + if (/\//.test(fieldName)) { + throw new RangeError ("Field '" + fieldName + "' contains illegal character '/'") + } + + this._fields[fieldName] = attributes || {} +} + +/** + * A parameter to tune the amount of field length normalisation that is applied when + * calculating relevance scores. A value of 0 will completely disable any normalisation + * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b + * will be clamped to the range 0 - 1. + * + * @param {number} number - The value to set for this tuning parameter. + */ +lunr.Builder.prototype.b = function (number) { + if (number < 0) { + this._b = 0 + } else if (number > 1) { + this._b = 1 + } else { + this._b = number + } +} + +/** + * A parameter that controls the speed at which a rise in term frequency results in term + * frequency saturation. The default value is 1.2. Setting this to a higher value will give + * slower saturation levels, a lower value will result in quicker saturation. + * + * @param {number} number - The value to set for this tuning parameter. + */ +lunr.Builder.prototype.k1 = function (number) { + this._k1 = number +} + +/** + * Adds a document to the index. + * + * Before adding fields to the index the index should have been fully setup, with the document + * ref and all fields to index already having been specified. + * + * The document must have a field name as specified by the ref (by default this is 'id') and + * it should have all fields defined for indexing, though null or undefined values will not + * cause errors. + * + * Entire documents can be boosted at build time. Applying a boost to a document indicates that + * this document should rank higher in search results than other documents. + * + * @param {object} doc - The document to add to the index. + * @param {object} attributes - Optional attributes associated with this document. + * @param {number} [attributes.boost=1] - Boost applied to all terms within this document. + */ +lunr.Builder.prototype.add = function (doc, attributes) { + var docRef = doc[this._ref], + fields = Object.keys(this._fields) + + this._documents[docRef] = attributes || {} + this.documentCount += 1 + + for (var i = 0; i < fields.length; i++) { + var fieldName = fields[i], + extractor = this._fields[fieldName].extractor, + field = extractor ? extractor(doc) : doc[fieldName], + tokens = this.tokenizer(field, { + fields: [fieldName] + }), + terms = this.pipeline.run(tokens), + fieldRef = new lunr.FieldRef (docRef, fieldName), + fieldTerms = Object.create(null) + + this.fieldTermFrequencies[fieldRef] = fieldTerms + this.fieldLengths[fieldRef] = 0 + + // store the length of this field for this document + this.fieldLengths[fieldRef] += terms.length + + // calculate term frequencies for this field + for (var j = 0; j < terms.length; j++) { + var term = terms[j] + + if (fieldTerms[term] == undefined) { + fieldTerms[term] = 0 + } + + fieldTerms[term] += 1 + + // add to inverted index + // create an initial posting if one doesn't exist + if (this.invertedIndex[term] == undefined) { + var posting = Object.create(null) + posting["_index"] = this.termIndex + this.termIndex += 1 + + for (var k = 0; k < fields.length; k++) { + posting[fields[k]] = Object.create(null) + } + + this.invertedIndex[term] = posting + } + + // add an entry for this term/fieldName/docRef to the invertedIndex + if (this.invertedIndex[term][fieldName][docRef] == undefined) { + this.invertedIndex[term][fieldName][docRef] = Object.create(null) + } + + // store all whitelisted metadata about this token in the + // inverted index + for (var l = 0; l < this.metadataWhitelist.length; l++) { + var metadataKey = this.metadataWhitelist[l], + metadata = term.metadata[metadataKey] + + if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) { + this.invertedIndex[term][fieldName][docRef][metadataKey] = [] + } + + this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata) + } + } + + } +} + +/** + * Calculates the average document length for this index + * + * @private + */ +lunr.Builder.prototype.calculateAverageFieldLengths = function () { + + var fieldRefs = Object.keys(this.fieldLengths), + numberOfFields = fieldRefs.length, + accumulator = {}, + documentsWithField = {} + + for (var i = 0; i < numberOfFields; i++) { + var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]), + field = fieldRef.fieldName + + documentsWithField[field] || (documentsWithField[field] = 0) + documentsWithField[field] += 1 + + accumulator[field] || (accumulator[field] = 0) + accumulator[field] += this.fieldLengths[fieldRef] + } + + var fields = Object.keys(this._fields) + + for (var i = 0; i < fields.length; i++) { + var fieldName = fields[i] + accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName] + } + + this.averageFieldLength = accumulator +} + +/** + * Builds a vector space model of every document using lunr.Vector + * + * @private + */ +lunr.Builder.prototype.createFieldVectors = function () { + var fieldVectors = {}, + fieldRefs = Object.keys(this.fieldTermFrequencies), + fieldRefsLength = fieldRefs.length, + termIdfCache = Object.create(null) + + for (var i = 0; i < fieldRefsLength; i++) { + var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]), + fieldName = fieldRef.fieldName, + fieldLength = this.fieldLengths[fieldRef], + fieldVector = new lunr.Vector, + termFrequencies = this.fieldTermFrequencies[fieldRef], + terms = Object.keys(termFrequencies), + termsLength = terms.length + + + var fieldBoost = this._fields[fieldName].boost || 1, + docBoost = this._documents[fieldRef.docRef].boost || 1 + + for (var j = 0; j < termsLength; j++) { + var term = terms[j], + tf = termFrequencies[term], + termIndex = this.invertedIndex[term]._index, + idf, score, scoreWithPrecision + + if (termIdfCache[term] === undefined) { + idf = lunr.idf(this.invertedIndex[term], this.documentCount) + termIdfCache[term] = idf + } else { + idf = termIdfCache[term] + } + + score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf) + score *= fieldBoost + score *= docBoost + scoreWithPrecision = Math.round(score * 1000) / 1000 + // Converts 1.23456789 to 1.234. + // Reducing the precision so that the vectors take up less + // space when serialised. Doing it now so that they behave + // the same before and after serialisation. Also, this is + // the fastest approach to reducing a number's precision in + // JavaScript. + + fieldVector.insert(termIndex, scoreWithPrecision) + } + + fieldVectors[fieldRef] = fieldVector + } + + this.fieldVectors = fieldVectors +} + +/** + * Creates a token set of all tokens in the index using lunr.TokenSet + * + * @private + */ +lunr.Builder.prototype.createTokenSet = function () { + this.tokenSet = lunr.TokenSet.fromArray( + Object.keys(this.invertedIndex).sort() + ) +} + +/** + * Builds the index, creating an instance of lunr.Index. + * + * This completes the indexing process and should only be called + * once all documents have been added to the index. + * + * @returns {lunr.Index} + */ +lunr.Builder.prototype.build = function () { + this.calculateAverageFieldLengths() + this.createFieldVectors() + this.createTokenSet() + + return new lunr.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline + }) +} + +/** + * Applies a plugin to the index builder. + * + * A plugin is a function that is called with the index builder as its context. + * Plugins can be used to customise or extend the behaviour of the index + * in some way. A plugin is just a function, that encapsulated the custom + * behaviour that should be applied when building the index. + * + * The plugin function will be called with the index builder as its argument, additional + * arguments can also be passed when calling use. The function will be called + * with the index builder as its context. + * + * @param {Function} plugin The plugin to apply. + */ +lunr.Builder.prototype.use = function (fn) { + var args = Array.prototype.slice.call(arguments, 1) + args.unshift(this) + fn.apply(this, args) +} +/** + * Contains and collects metadata about a matching document. + * A single instance of lunr.MatchData is returned as part of every + * lunr.Index~Result. + * + * @constructor + * @param {string} term - The term this match data is associated with + * @param {string} field - The field in which the term was found + * @param {object} metadata - The metadata recorded about this term in this field + * @property {object} metadata - A cloned collection of metadata associated with this document. + * @see {@link lunr.Index~Result} + */ +lunr.MatchData = function (term, field, metadata) { + var clonedMetadata = Object.create(null), + metadataKeys = Object.keys(metadata || {}) + + // Cloning the metadata to prevent the original + // being mutated during match data combination. + // Metadata is kept in an array within the inverted + // index so cloning the data can be done with + // Array#slice + for (var i = 0; i < metadataKeys.length; i++) { + var key = metadataKeys[i] + clonedMetadata[key] = metadata[key].slice() + } + + this.metadata = Object.create(null) + + if (term !== undefined) { + this.metadata[term] = Object.create(null) + this.metadata[term][field] = clonedMetadata + } +} + +/** + * An instance of lunr.MatchData will be created for every term that matches a + * document. However only one instance is required in a lunr.Index~Result. This + * method combines metadata from another instance of lunr.MatchData with this + * objects metadata. + * + * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one. + * @see {@link lunr.Index~Result} + */ +lunr.MatchData.prototype.combine = function (otherMatchData) { + var terms = Object.keys(otherMatchData.metadata) + + for (var i = 0; i < terms.length; i++) { + var term = terms[i], + fields = Object.keys(otherMatchData.metadata[term]) + + if (this.metadata[term] == undefined) { + this.metadata[term] = Object.create(null) + } + + for (var j = 0; j < fields.length; j++) { + var field = fields[j], + keys = Object.keys(otherMatchData.metadata[term][field]) + + if (this.metadata[term][field] == undefined) { + this.metadata[term][field] = Object.create(null) + } + + for (var k = 0; k < keys.length; k++) { + var key = keys[k] + + if (this.metadata[term][field][key] == undefined) { + this.metadata[term][field][key] = otherMatchData.metadata[term][field][key] + } else { + this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key]) + } + + } + } + } +} + +/** + * Add metadata for a term/field pair to this instance of match data. + * + * @param {string} term - The term this match data is associated with + * @param {string} field - The field in which the term was found + * @param {object} metadata - The metadata recorded about this term in this field + */ +lunr.MatchData.prototype.add = function (term, field, metadata) { + if (!(term in this.metadata)) { + this.metadata[term] = Object.create(null) + this.metadata[term][field] = metadata + return + } + + if (!(field in this.metadata[term])) { + this.metadata[term][field] = metadata + return + } + + var metadataKeys = Object.keys(metadata) + + for (var i = 0; i < metadataKeys.length; i++) { + var key = metadataKeys[i] + + if (key in this.metadata[term][field]) { + this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key]) + } else { + this.metadata[term][field][key] = metadata[key] + } + } +} +/** + * A lunr.Query provides a programmatic way of defining queries to be performed + * against a {@link lunr.Index}. + * + * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method + * so the query object is pre-initialized with the right index fields. + * + * @constructor + * @property {lunr.Query~Clause[]} clauses - An array of query clauses. + * @property {string[]} allFields - An array of all available fields in a lunr.Index. + */ +lunr.Query = function (allFields) { + this.clauses = [] + this.allFields = allFields +} + +/** + * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause. + * + * This allows wildcards to be added to the beginning and end of a term without having to manually do any string + * concatenation. + * + * The wildcard constants can be bitwise combined to select both leading and trailing wildcards. + * + * @constant + * @default + * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour + * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists + * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists + * @see lunr.Query~Clause + * @see lunr.Query#clause + * @see lunr.Query#term + * @example query term with trailing wildcard + * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING }) + * @example query term with leading and trailing wildcard + * query.term('foo', { + * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING + * }) + */ + +lunr.Query.wildcard = new String ("*") +lunr.Query.wildcard.NONE = 0 +lunr.Query.wildcard.LEADING = 1 +lunr.Query.wildcard.TRAILING = 2 + +/** + * Constants for indicating what kind of presence a term must have in matching documents. + * + * @constant + * @enum {number} + * @see lunr.Query~Clause + * @see lunr.Query#clause + * @see lunr.Query#term + * @example query term with required presence + * query.term('foo', { presence: lunr.Query.presence.REQUIRED }) + */ +lunr.Query.presence = { + /** + * Term's presence in a document is optional, this is the default value. + */ + OPTIONAL: 1, + + /** + * Term's presence in a document is required, documents that do not contain + * this term will not be returned. + */ + REQUIRED: 2, + + /** + * Term's presence in a document is prohibited, documents that do contain + * this term will not be returned. + */ + PROHIBITED: 3 +} + +/** + * A single clause in a {@link lunr.Query} contains a term and details on how to + * match that term against a {@link lunr.Index}. + * + * @typedef {Object} lunr.Query~Clause + * @property {string[]} fields - The fields in an index this clause should be matched against. + * @property {number} [boost=1] - Any boost that should be applied when matching this clause. + * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be. + * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline. + * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended. + * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents. + */ + +/** + * Adds a {@link lunr.Query~Clause} to this query. + * + * Unless the clause contains the fields to be matched all fields will be matched. In addition + * a default boost of 1 is applied to the clause. + * + * @param {lunr.Query~Clause} clause - The clause to add to this query. + * @see lunr.Query~Clause + * @returns {lunr.Query} + */ +lunr.Query.prototype.clause = function (clause) { + if (!('fields' in clause)) { + clause.fields = this.allFields + } + + if (!('boost' in clause)) { + clause.boost = 1 + } + + if (!('usePipeline' in clause)) { + clause.usePipeline = true + } + + if (!('wildcard' in clause)) { + clause.wildcard = lunr.Query.wildcard.NONE + } + + if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) { + clause.term = "*" + clause.term + } + + if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) { + clause.term = "" + clause.term + "*" + } + + if (!('presence' in clause)) { + clause.presence = lunr.Query.presence.OPTIONAL + } + + this.clauses.push(clause) + + return this +} + +/** + * A negated query is one in which every clause has a presence of + * prohibited. These queries require some special processing to return + * the expected results. + * + * @returns boolean + */ +lunr.Query.prototype.isNegated = function () { + for (var i = 0; i < this.clauses.length; i++) { + if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) { + return false + } + } + + return true +} + +/** + * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause} + * to the list of clauses that make up this query. + * + * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion + * to a token or token-like string should be done before calling this method. + * + * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an + * array, each term in the array will share the same options. + * + * @param {object|object[]} term - The term(s) to add to the query. + * @param {object} [options] - Any additional properties to add to the query clause. + * @returns {lunr.Query} + * @see lunr.Query#clause + * @see lunr.Query~Clause + * @example adding a single term to a query + * query.term("foo") + * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard + * query.term("foo", { + * fields: ["title"], + * boost: 10, + * wildcard: lunr.Query.wildcard.TRAILING + * }) + * @example using lunr.tokenizer to convert a string to tokens before using them as terms + * query.term(lunr.tokenizer("foo bar")) + */ +lunr.Query.prototype.term = function (term, options) { + if (Array.isArray(term)) { + term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this) + return this + } + + var clause = options || {} + clause.term = term.toString() + + this.clause(clause) + + return this +} +lunr.QueryParseError = function (message, start, end) { + this.name = "QueryParseError" + this.message = message + this.start = start + this.end = end +} + +lunr.QueryParseError.prototype = new Error +lunr.QueryLexer = function (str) { + this.lexemes = [] + this.str = str + this.length = str.length + this.pos = 0 + this.start = 0 + this.escapeCharPositions = [] +} + +lunr.QueryLexer.prototype.run = function () { + var state = lunr.QueryLexer.lexText + + while (state) { + state = state(this) + } +} + +lunr.QueryLexer.prototype.sliceString = function () { + var subSlices = [], + sliceStart = this.start, + sliceEnd = this.pos + + for (var i = 0; i < this.escapeCharPositions.length; i++) { + sliceEnd = this.escapeCharPositions[i] + subSlices.push(this.str.slice(sliceStart, sliceEnd)) + sliceStart = sliceEnd + 1 + } + + subSlices.push(this.str.slice(sliceStart, this.pos)) + this.escapeCharPositions.length = 0 + + return subSlices.join('') +} + +lunr.QueryLexer.prototype.emit = function (type) { + this.lexemes.push({ + type: type, + str: this.sliceString(), + start: this.start, + end: this.pos + }) + + this.start = this.pos +} + +lunr.QueryLexer.prototype.escapeCharacter = function () { + this.escapeCharPositions.push(this.pos - 1) + this.pos += 1 +} + +lunr.QueryLexer.prototype.next = function () { + if (this.pos >= this.length) { + return lunr.QueryLexer.EOS + } + + var char = this.str.charAt(this.pos) + this.pos += 1 + return char +} + +lunr.QueryLexer.prototype.width = function () { + return this.pos - this.start +} + +lunr.QueryLexer.prototype.ignore = function () { + if (this.start == this.pos) { + this.pos += 1 + } + + this.start = this.pos +} + +lunr.QueryLexer.prototype.backup = function () { + this.pos -= 1 +} + +lunr.QueryLexer.prototype.acceptDigitRun = function () { + var char, charCode + + do { + char = this.next() + charCode = char.charCodeAt(0) + } while (charCode > 47 && charCode < 58) + + if (char != lunr.QueryLexer.EOS) { + this.backup() + } +} + +lunr.QueryLexer.prototype.more = function () { + return this.pos < this.length +} + +lunr.QueryLexer.EOS = 'EOS' +lunr.QueryLexer.FIELD = 'FIELD' +lunr.QueryLexer.TERM = 'TERM' +lunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE' +lunr.QueryLexer.BOOST = 'BOOST' +lunr.QueryLexer.PRESENCE = 'PRESENCE' + +lunr.QueryLexer.lexField = function (lexer) { + lexer.backup() + lexer.emit(lunr.QueryLexer.FIELD) + lexer.ignore() + return lunr.QueryLexer.lexText +} + +lunr.QueryLexer.lexTerm = function (lexer) { + if (lexer.width() > 1) { + lexer.backup() + lexer.emit(lunr.QueryLexer.TERM) + } + + lexer.ignore() + + if (lexer.more()) { + return lunr.QueryLexer.lexText + } +} + +lunr.QueryLexer.lexEditDistance = function (lexer) { + lexer.ignore() + lexer.acceptDigitRun() + lexer.emit(lunr.QueryLexer.EDIT_DISTANCE) + return lunr.QueryLexer.lexText +} + +lunr.QueryLexer.lexBoost = function (lexer) { + lexer.ignore() + lexer.acceptDigitRun() + lexer.emit(lunr.QueryLexer.BOOST) + return lunr.QueryLexer.lexText +} + +lunr.QueryLexer.lexEOS = function (lexer) { + if (lexer.width() > 0) { + lexer.emit(lunr.QueryLexer.TERM) + } +} + +// This matches the separator used when tokenising fields +// within a document. These should match otherwise it is +// not possible to search for some tokens within a document. +// +// It is possible for the user to change the separator on the +// tokenizer so it _might_ clash with any other of the special +// characters already used within the search string, e.g. :. +// +// This means that it is possible to change the separator in +// such a way that makes some words unsearchable using a search +// string. +lunr.QueryLexer.termSeparator = lunr.tokenizer.separator + +lunr.QueryLexer.lexText = function (lexer) { + while (true) { + var char = lexer.next() + + if (char == lunr.QueryLexer.EOS) { + return lunr.QueryLexer.lexEOS + } + + // Escape character is '\' + if (char.charCodeAt(0) == 92) { + lexer.escapeCharacter() + continue + } + + if (char == ":") { + return lunr.QueryLexer.lexField + } + + if (char == "~") { + lexer.backup() + if (lexer.width() > 0) { + lexer.emit(lunr.QueryLexer.TERM) + } + return lunr.QueryLexer.lexEditDistance + } + + if (char == "^") { + lexer.backup() + if (lexer.width() > 0) { + lexer.emit(lunr.QueryLexer.TERM) + } + return lunr.QueryLexer.lexBoost + } + + // "+" indicates term presence is required + // checking for length to ensure that only + // leading "+" are considered + if (char == "+" && lexer.width() === 1) { + lexer.emit(lunr.QueryLexer.PRESENCE) + return lunr.QueryLexer.lexText + } + + // "-" indicates term presence is prohibited + // checking for length to ensure that only + // leading "-" are considered + if (char == "-" && lexer.width() === 1) { + lexer.emit(lunr.QueryLexer.PRESENCE) + return lunr.QueryLexer.lexText + } + + if (char.match(lunr.QueryLexer.termSeparator)) { + return lunr.QueryLexer.lexTerm + } + } +} + +lunr.QueryParser = function (str, query) { + this.lexer = new lunr.QueryLexer (str) + this.query = query + this.currentClause = {} + this.lexemeIdx = 0 +} + +lunr.QueryParser.prototype.parse = function () { + this.lexer.run() + this.lexemes = this.lexer.lexemes + + var state = lunr.QueryParser.parseClause + + while (state) { + state = state(this) + } + + return this.query +} + +lunr.QueryParser.prototype.peekLexeme = function () { + return this.lexemes[this.lexemeIdx] +} + +lunr.QueryParser.prototype.consumeLexeme = function () { + var lexeme = this.peekLexeme() + this.lexemeIdx += 1 + return lexeme +} + +lunr.QueryParser.prototype.nextClause = function () { + var completedClause = this.currentClause + this.query.clause(completedClause) + this.currentClause = {} +} + +lunr.QueryParser.parseClause = function (parser) { + var lexeme = parser.peekLexeme() + + if (lexeme == undefined) { + return + } + + switch (lexeme.type) { + case lunr.QueryLexer.PRESENCE: + return lunr.QueryParser.parsePresence + case lunr.QueryLexer.FIELD: + return lunr.QueryParser.parseField + case lunr.QueryLexer.TERM: + return lunr.QueryParser.parseTerm + default: + var errorMessage = "expected either a field or a term, found " + lexeme.type + + if (lexeme.str.length >= 1) { + errorMessage += " with value '" + lexeme.str + "'" + } + + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } +} + +lunr.QueryParser.parsePresence = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + switch (lexeme.str) { + case "-": + parser.currentClause.presence = lunr.Query.presence.PROHIBITED + break + case "+": + parser.currentClause.presence = lunr.Query.presence.REQUIRED + break + default: + var errorMessage = "unrecognised presence operator'" + lexeme.str + "'" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + var errorMessage = "expecting term or field, found nothing" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.FIELD: + return lunr.QueryParser.parseField + case lunr.QueryLexer.TERM: + return lunr.QueryParser.parseTerm + default: + var errorMessage = "expecting term or field, found '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseField = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + if (parser.query.allFields.indexOf(lexeme.str) == -1) { + var possibleFields = parser.query.allFields.map(function (f) { return "'" + f + "'" }).join(', '), + errorMessage = "unrecognised field '" + lexeme.str + "', possible fields: " + possibleFields + + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + parser.currentClause.fields = [lexeme.str] + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + var errorMessage = "expecting term, found nothing" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + return lunr.QueryParser.parseTerm + default: + var errorMessage = "expecting term, found '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseTerm = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + parser.currentClause.term = lexeme.str.toLowerCase() + + if (lexeme.str.indexOf("*") != -1) { + parser.currentClause.usePipeline = false + } + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + parser.nextClause() + return + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + parser.nextClause() + return lunr.QueryParser.parseTerm + case lunr.QueryLexer.FIELD: + parser.nextClause() + return lunr.QueryParser.parseField + case lunr.QueryLexer.EDIT_DISTANCE: + return lunr.QueryParser.parseEditDistance + case lunr.QueryLexer.BOOST: + return lunr.QueryParser.parseBoost + case lunr.QueryLexer.PRESENCE: + parser.nextClause() + return lunr.QueryParser.parsePresence + default: + var errorMessage = "Unexpected lexeme type '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseEditDistance = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + var editDistance = parseInt(lexeme.str, 10) + + if (isNaN(editDistance)) { + var errorMessage = "edit distance must be numeric" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + parser.currentClause.editDistance = editDistance + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + parser.nextClause() + return + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + parser.nextClause() + return lunr.QueryParser.parseTerm + case lunr.QueryLexer.FIELD: + parser.nextClause() + return lunr.QueryParser.parseField + case lunr.QueryLexer.EDIT_DISTANCE: + return lunr.QueryParser.parseEditDistance + case lunr.QueryLexer.BOOST: + return lunr.QueryParser.parseBoost + case lunr.QueryLexer.PRESENCE: + parser.nextClause() + return lunr.QueryParser.parsePresence + default: + var errorMessage = "Unexpected lexeme type '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseBoost = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + var boost = parseInt(lexeme.str, 10) + + if (isNaN(boost)) { + var errorMessage = "boost must be numeric" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + parser.currentClause.boost = boost + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + parser.nextClause() + return + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + parser.nextClause() + return lunr.QueryParser.parseTerm + case lunr.QueryLexer.FIELD: + parser.nextClause() + return lunr.QueryParser.parseField + case lunr.QueryLexer.EDIT_DISTANCE: + return lunr.QueryParser.parseEditDistance + case lunr.QueryLexer.BOOST: + return lunr.QueryParser.parseBoost + case lunr.QueryLexer.PRESENCE: + parser.nextClause() + return lunr.QueryParser.parsePresence + default: + var errorMessage = "Unexpected lexeme type '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + + /** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ + ;(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + root.lunr = factory() + } + }(this, function () { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return lunr + })) +})(); diff --git a/search/main.js b/search/main.js new file mode 100644 index 00000000..a5e469d7 --- /dev/null +++ b/search/main.js @@ -0,0 +1,109 @@ +function getSearchTermFromLocation() { + var sPageURL = window.location.search.substring(1); + var sURLVariables = sPageURL.split('&'); + for (var i = 0; i < sURLVariables.length; i++) { + var sParameterName = sURLVariables[i].split('='); + if (sParameterName[0] == 'q') { + return decodeURIComponent(sParameterName[1].replace(/\+/g, '%20')); + } + } +} + +function joinUrl (base, path) { + if (path.substring(0, 1) === "/") { + // path starts with `/`. Thus it is absolute. + return path; + } + if (base.substring(base.length-1) === "/") { + // base ends with `/` + return base + path; + } + return base + "/" + path; +} + +function escapeHtml (value) { + return value.replace(/&/g, '&') + .replace(/"/g, '"') + .replace(//g, '>'); +} + +function formatResult (location, title, summary) { + return ''; +} + +function displayResults (results) { + var search_results = document.getElementById("mkdocs-search-results"); + while (search_results.firstChild) { + search_results.removeChild(search_results.firstChild); + } + if (results.length > 0){ + for (var i=0; i < results.length; i++){ + var result = results[i]; + var html = formatResult(result.location, result.title, result.summary); + search_results.insertAdjacentHTML('beforeend', html); + } + } else { + var noResultsText = search_results.getAttribute('data-no-results-text'); + if (!noResultsText) { + noResultsText = "No results found"; + } + search_results.insertAdjacentHTML('beforeend', '

' + noResultsText + '

'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 00000000..fcb2bf3b --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Transitous Free and open public transport routing. Goal A community-run provider-neutral international public transport routing service. Using openly available GTFS/GTFS-RT/etc. feeds and FOSS routing engine we want to operate a routing service that: focuses on the interest of the user rather than the public transport operators is free to use values user privacy does not stop at borders aims at crowd-sourced maintenance of data feeds in the spirit of FOSS Contact Matrix channel: #opentransport:matrix.org (for now) Adding a region Transitous data sources are divided by region, so they can be continuously tested and verified by locals. A region file in the feeds directory has a maintainers attribute, which contains a list of people responsible for keeping the feeds for the region up to date. { \"maintainers\": [ ... ], \"sources\": [ ... ] } A person is represented like this: { \"name\": \"< name of the maintainer >\", \"github\": \"< github username of the maintainer >\" } The main attribute of a region is sources . It contains a list of feeds that should be fetched. Each source can either be of type \"transitland-atlas\" or \"http\". A transitland-atlas source is a feed from Transitland , identified by its Onestop ID. { \"name\": \"\", \"type\": \"transitland-atlas\", \"transitland-atlas-id\": \"\" } If the feed is not known in Transitland, a http source can be used instead. { \"name\": \"\", \"type\": \"http\", \"url\": \"https://\", \"license\": { \"spdx-identifier\": \"\", \"url\": \"< url as source for the license if available >\" } } In both cases, the name needs to be unique in the file, except for if it is an GTFS-RT feed. These are realtime feeds that contain updates for a GTFS feed. In order to know which one to apply the updates to, the names must match. If the feed contains errors, you can try to add the \"fix\": true attribute, to try to automatically correct errors. Once you create a pull request, fetching your feed will automatically be tested. You can also test it locally, by running ./src/fetch.py feeds/.json . For that you need to have gtfstidy installed. You can also use the container described below. Running a transitous instance locally Running a local instance of the transitous setup can be useful for debugging. The easiest way is to use the same container image that we use for fetching and importing the data on the CI. First, ensure that you have the Git submodules: git submodule update --remote --checkout --init Proceed by building the container: podman build ci/container/ -t transitous -f ci/container/Containerfile Enter the container: podman run -it -p 8080:8080 -v $PWD:/transitous:Z --userns=keep-id -w /transitous transitous Now inside the container, you can download and post-process all the feeds. This may take a while. ./ci/fetch-feeds.py timer The out/ directory should now contain a number of zip files. In addition to those, you also need a background map. Importing all of europe would take too long, so for now just a smaller region. You can find working map pbf downloads at Geofabrik . You can click on the region names to find downloads for smaller subregions. Then download the chosen region: wget https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf -P out In order to start motis, we need a config file listing all the feeds we want to use. You can generate one using our script: ./src/generate-motis-config.py full The generated config file still needs a small adjustment. Edit the line in out/config.ini that starts with paths=osm to point to your map. You can then go to the out directory, and start motis: cd out motis -c config.ini --server.host 0.0.0.0 --server.static_path /opt/motis/web The first start will take a while, as it imports all the maps and feeds. Once it's done, the motis web interface should be reachable on localhost:8080 .","title":"Home"},{"location":"#transitous","text":"Free and open public transport routing.","title":"Transitous"},{"location":"#goal","text":"A community-run provider-neutral international public transport routing service. Using openly available GTFS/GTFS-RT/etc. feeds and FOSS routing engine we want to operate a routing service that: focuses on the interest of the user rather than the public transport operators is free to use values user privacy does not stop at borders aims at crowd-sourced maintenance of data feeds in the spirit of FOSS","title":"Goal"},{"location":"#contact","text":"Matrix channel: #opentransport:matrix.org (for now)","title":"Contact"},{"location":"#adding-a-region","text":"Transitous data sources are divided by region, so they can be continuously tested and verified by locals. A region file in the feeds directory has a maintainers attribute, which contains a list of people responsible for keeping the feeds for the region up to date. { \"maintainers\": [ ... ], \"sources\": [ ... ] } A person is represented like this: { \"name\": \"< name of the maintainer >\", \"github\": \"< github username of the maintainer >\" } The main attribute of a region is sources . It contains a list of feeds that should be fetched. Each source can either be of type \"transitland-atlas\" or \"http\". A transitland-atlas source is a feed from Transitland , identified by its Onestop ID. { \"name\": \"\", \"type\": \"transitland-atlas\", \"transitland-atlas-id\": \"\" } If the feed is not known in Transitland, a http source can be used instead. { \"name\": \"\", \"type\": \"http\", \"url\": \"https://\", \"license\": { \"spdx-identifier\": \"\", \"url\": \"< url as source for the license if available >\" } } In both cases, the name needs to be unique in the file, except for if it is an GTFS-RT feed. These are realtime feeds that contain updates for a GTFS feed. In order to know which one to apply the updates to, the names must match. If the feed contains errors, you can try to add the \"fix\": true attribute, to try to automatically correct errors. Once you create a pull request, fetching your feed will automatically be tested. You can also test it locally, by running ./src/fetch.py feeds/.json . For that you need to have gtfstidy installed. You can also use the container described below.","title":"Adding a region"},{"location":"#running-a-transitous-instance-locally","text":"Running a local instance of the transitous setup can be useful for debugging. The easiest way is to use the same container image that we use for fetching and importing the data on the CI. First, ensure that you have the Git submodules: git submodule update --remote --checkout --init Proceed by building the container: podman build ci/container/ -t transitous -f ci/container/Containerfile Enter the container: podman run -it -p 8080:8080 -v $PWD:/transitous:Z --userns=keep-id -w /transitous transitous Now inside the container, you can download and post-process all the feeds. This may take a while. ./ci/fetch-feeds.py timer The out/ directory should now contain a number of zip files. In addition to those, you also need a background map. Importing all of europe would take too long, so for now just a smaller region. You can find working map pbf downloads at Geofabrik . You can click on the region names to find downloads for smaller subregions. Then download the chosen region: wget https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf -P out In order to start motis, we need a config file listing all the feeds we want to use. You can generate one using our script: ./src/generate-motis-config.py full The generated config file still needs a small adjustment. Edit the line in out/config.ini that starts with paths=osm to point to your map. You can then go to the out directory, and start motis: cd out motis -c config.ini --server.host 0.0.0.0 --server.static_path /opt/motis/web The first start will take a while, as it imports all the maps and feeds. Once it's done, the motis web interface should be reachable on localhost:8080 .","title":"Running a transitous instance locally"},{"location":"licenses/","text":"Licenses of included feeds Filename: au_Translink-SEQ.gtfs.zip Copyright holders Translink Filename: au_Translink-SEQ.gtfs.zip Copyright holders Translink Filename: au_Translink-BOW.gtfs.zip Copyright holders Bowen Transit Filename: au_Translink-BOW.gtfs.zip Copyright holders Bowen Transit Filename: au_Translink-BUN.gtfs.zip Copyright holders Duffys & Stewarts Filename: au_Translink-CNS.gtfs.zip Copyright holders Sunbus Cairns Filename: au_Translink-CNS.gtfs.zip Copyright holders Sunbus Cairns Filename: au_Translink-GLT.gtfs.zip Copyright holders Buslink Gladstone Filename: au_Translink-GYM.gtfs.zip Copyright holders Polleys Coaches Filename: au_Translink-INN.gtfs.zip Copyright holders Trans North Innisfail Filename: au_Translink-INN.gtfs.zip Copyright holders Trans North Innisfail Filename: au_Translink-KIL.gtfs.zip Copyright holders Christensens Bus and Coach Filename: au_Translink-MKY.gtfs.zip Copyright holders Mackay Transit Coaches Filename: au_Translink-MAG.gtfs.zip Copyright holders Translink Filename: au_Translink-MIF.gtfs.zip Copyright holders Translink Filename: au_Translink-MAL.gtfs.zip Copyright holders Glass House Country Coaches Filename: au_Translink-MHB.gtfs.zip Copyright holders Wide Bay Transit Filename: au_Translink-MHB.gtfs.zip Copyright holders Wide Bay Transit Filename: au_Translink-NSI.gtfs.zip Copyright holders North Stradbroke Island Buses Filename: au_Translink-NSI.gtfs.zip Copyright holders North Stradbroke Island Buses Filename: au_Translink-RKY.gtfs.zip Copyright holders Translink Filename: au_Translink-TWB.gtfs.zip Copyright holders Bus Qld Toowoomba Filename: au_Translink-WAR.gtfs.zip Copyright holders Haidleys Panoramic Coaches Filename: au_Translink-WHT.gtfs.zip Copyright holders Whitsunday Transit Filename: au_Transperth.gtfs.zip Copyright holders TransCollie TransCarnarvon TransEsperance TransKarratha Mandurah Bus Charter TransNarrogin Transperth Transperth Transperth Transperth Transperth TransHedland TransBroome TransGeraldton Transperth Transperth Transperth Transperth Transperth Transperth Transperth TransAlbany TransBunbury TransBusselton TransGoldfields Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transwa 2K Tours Transperth TransBridgetown TransManjimup Filename: us_Amtrak.gtfs.zip Copyright holders Martz Trailways Executive Transportation Route 66 Express Americanstar Alvand Transportation Vegas Airporter Central Oregon Breeze El Dorado Transit Vermont Translines Beeline Express Coach Usa Cantrail Shore Line East Amtrak Chartered Vehicle Sunway Charters Placeholder train number for CTrail BayRunner Shuttle Virginia Railway Express MARC Grape Line Gold Line Northwestern Trailways Peoria Charter Smart Way Connector Van Galder Coach Usa Southeast Area Transit Pacific Crest Bus Lines Roadrunner Shuttle Apple Line Express Arrow Badger Bus Stagecoach Express Amtrak Chartered Motorcoach The Lift Bustang New York Trailways Adirondack Trailways Pine Hill Trailways Fullington Trailways Groome Transportation Dungeness Line Indian Trails Arrow Trailways Grand Canyon Railway Amtrak Santa Cruz Metro C&j Altamont Corridor Express Filename: us-mo_Metro-stlouis.gtfs.zip Copyright holders Metro St. Louis Filename: us-mo_Metro-stlouis.gtfs.zip Copyright holders Metro St. Louis Filename: hr_hz.gtfs.zip Copyright holders H\u017d Putnicki prijevoz Filename: dk_rejseplanen.gtfs.zip Copyright holders Bornholms Trafik DSB FYNBUS NT Movia Midttrafik Mols-Linien Arriva tog DSB \u00d8resund Lokaltog A/S DSB S-tog Metroselskabet Sydtrafik Sporvejsmuseet Skjolden\u00e6sholm \u00d6resundst\u00e5g \u00c6r\u00f8 Kommune Sams\u00f8 Bus Sk\u00e5netrafiken Fan\u00f8 Kommune Svendborg Havn, F\u00e6rge- og Sundfart \u00c6r\u00f8Xpressen A/S Sams\u00f8 Rederi Thinggaard Express Odense Letbane \u00c6r\u00f8f\u00e6rgerne Filename: uk_great-britain.gtfs.zip Copyright holders Ellenvale Coaches Stagecoach Bluebird Stagecoach East Stagecoach West Stagecoach Midlands Stagecoach South Stagecoach Supertram Stagecoach South West Stagecoach West Scotland Stagecoach Oxfordshire Kirkby Lonsdale Coaches Mountain Goat Holidays and Tours Stagecoach South Stagecoach South East Stagecoach East Stagecoach Midlands Stagecoach Yorkshire Stagecoach East Midlands Stagecoach East Scotland Stagecoach Highlands Stagecoach South Stagecoach East Fellrunner Stagecoach East Stagecoach South Telfords Coaches Arriva North East Stagecoach North East Station Taxis Tyne and Wear Metro A-line Coaches Nexus Ferry Readypay Ltd Nexus Metro Replacement Glen Valley Tours Arriva North East Stagecoach Manchester Coastliner Bee Network The Harrogate Bus Company Bee Network Gateshead Central Taxis Dales and District Gem Travel Reliance Motor Services Stanley Travel Paul's Travel North Yorkshire County Council Hodgsons Metrolink Vision Bus Weardale Motor Services First Greater Manchester Thornes Independent Ltd Go North East Arriva Wales D & G Bus Ryedale Community Transport Generation Travel York Pullman SS Suncruisers The Little White Bus Stagecoach Merseyside and South Lancashire Aintree Coachlines JH Coaches Upper Wharfedale Venturer Belle Vue Coaches Arriva North West Cumbria Classic Coaches Mikro Coaches Hollinshead Coaches Warrington's Own Buses First Halifax, Calder Valley & Huddersfield Stanley Travel Huyton Travel Nexus Move Arriva Yorkshire Preston Bus Rosso Direct Taxis Coastal and Country Coaches Team Pennine The Blackburn Bus Company Bee Network Bee Network Arriva North West Go North West Diamond Bus North West Coatham Coaches Swans Travel Ltd Atlantic Travel GB Ashcrofts Mini Travel Bullocks Coaches Olympia Travel Peter Hogg of Jedburgh Bee Network Stagecoach Cumbria and North Lancashire Green Mountain Travel Borders Buses Wright Brothers Coaches Northlink Ferries Berwick Buses Western Dales Community Bus Reays Coaches NBM Hire Ltd A2B Bus and Coach Aberdeenshire Council Argyll & Bute Council Ferries A1 Coaches A&A Coach Travel Aarons of Wick Arriva Derby Arriva Kent and Surrey AK Transport A MacDonald Ambassador Travel Alasdair Macdonald Arriva Midlands Arriva Kent and Surrey Andersons of Langholm Andrew's Andrews of Tideswell Arriva Beds and Bucks Ardlui Hotel Arriva Herts and Essex Arisaig Marine Arrow Taxi Ashbourne Community Transport ASD Coaches Ashley Travel Amberley & Slindon Community Bus BK Marine Autocar Bus & Coach Services Avondale Coaches Gatwick Airport inter-terminal Shuttle Stansted Airport Hotel Shuttle Battle Area Community Transport Bagnalls Bay Travel Globe Holidays Burnbrae Garage Bluebell Railway Bright Bus Braintree Community Transport Basildon District Volunteer Carers Bear Buses Bexhill Community Bus Brighton & Hove Bus and Coach Company Brian Jones Coaches Black Cat Travel Bayliss Executive Travel BM Coaches Islay Coaches Bus Na Comhairle Bo'ness and Kinneil Railway Borders Buses Jonathan Boyd Brentwood Community Transport Brookline Brylaine Travel Buses4U Bishops Stortford Community Transport W Brownrigg Caledonian MacBrayne CallConnect Camerons Travel Cardinal Buses Climate Action Strathaven Centrebus Centrebus Craigs of Cumbernauld Coggeshall Community Bus Chatterbus Chalkwell Garage & Coach Hire Cuckmere Buses Clydelink Carlone Buses Centaur Coaches ARG Travel Colchri Coaches Compo Compass Travel Compaid Trust Wilsons Buses Crosskeys Coaches Carousel Buses Coach Services Derbyshire Community Transport Glasgow Citybus Community Transport Glasgow Community Transport for Lewes Area County Travel Cawthorne's Travel Community Action Dacorum D A & A J MacLean D A Travel D & E Coaches Delaine Buses J R Dent Coaches Dews Coaches DGC Buses David Goodfellow Travel Dochertys Midland Coaches D M K Motors Dodds of Troon Prentice Coaches Dunnett's Transport Deveron Coaches Essex & Suffolk DaRT Eazy Coach Hire East Coast Buses Edinburgh Coach Lines Edinburgh Trams Edward Thomas Epping Forest Community Transport East Hull Community Transport Lothian Country Buses Ember Ensign Bus Eastern Scottish Eve Coaches East Yorkshire First Aberdeen Fenland Association for Community Transport Falcon Coaches First Berkshire & The Thames Valley Reading RailAir First Buses of Somerset 1st Bus Stop Ltd First Kernow First Wessex, Dorset & South Somerset First Essex Midland Bluebird Feline Executive Travel First Portsmouth, Fareham & Gosport First Leicester Flyer First Worcestershire Fowlers Travel First Potteries Fords Coaches Fishers Tours Festival Travel First South Yorkshire Faversham Hopper First Bradford First Leeds First West Yorkshire Ltd Galson Motors Goole Go Far Hamish Gordon Coaches Green Line (operated by Arriva) Globe Coaches Garelochhead Minibuses & Coaches Glovers Gem Mini Travel Go-Coach Hire Grenitote Travel George Rapson Travel Grayscroft Coaches Glenfarg Community Transport Group Haines Coaches J & D S Halcrow Hams Travel HART Harpurs Coaches Hunter Cabs & Mini Buses HcL Handcross District Community Bus Isle of Hoy Development Trust Heatons Coaches Hedingham & Chambers Hebridean Transport Hunters Executive Coaches Highland Ferries Connexions Buses High Peak Historic Scotland Harting Minibus CIC Hebridean MiniBus Service Houston's Minicoaches Hunts Coaches Hornsbys Bus & Coach Hobson Travel Harpenden Connect Hadlow Rural Community School Horseman Coaches Harwich Connexions Transport Hulleys of Baslow Hawkes Coaches J A & G D Nicolson Johnson Brothers Jacksons of Silsden Ltd Jetstream Tours John Ferguson Minibus Hirer JMB Travel Johnson Transport John Kennedy J P Minibus J R Services Kinchbus Kent College Canterbury Konectbus Kent Coach Tours Keith and Dufftown Railway Kent & East Sussex Railway K White Transport K and K Transport Kingshouse Travel Steve Keats of Sheffield Kilvingtons of Leeds Key Coaches Lochaber Action on Disability Lochcarron Garage Lothian Community Transport Landmark Coaches The Big Lemon Little Jim's Lochs Motor Transport Lothian Buses JW Lodge & Sons Lord's Travel Langston & Tasker Littles Travel Lucketts of Watford The London Bus Company Leadhills and Wanlockhead Railway A Lyles and Son Lynx Martins Car Hire Bland's McGill's Bus Service McCulloch's Coaches McColls Travel McNairn Coaches Moray Council Diamond Bus East Midlands Midhurst Community Bus Stringers Cruisers Mackie's Coaches Mil-Ken Travel Murdo MacIver Moffat & Williamson Moxons Tours Millport Motors Marshalls of Sutton on Trent Marsland Travel C G Myall & Son North Area Transport Association Nauticalia Ferry Nottingham City Transport Notts and Derby Nottingham Express Transit (Tram) NIBSbuses The Durness Bus North Lincolnshire Council CT4N Nottinghamshire County Council Fleet Services Nu-Venture Wealdlink Community Transport Wright Way To Travel A1 Coaches Archway Travel Avacab K&P Coaches Berwyn Bretherton Gold Line Tours B & J Travel Blackpool Transport Blackpool Coach Hire Blackburn Private Hire Bibby's of Ingleton Ltd The Burnley Bus Company Britannia Bus Coach Hire Executive Travel Ltd Thomas Herbert Jones & Partners Cardiff Bus Celtic Travel Charlton Mini's Coastal Coaches Caerphilly County Borough Council Cranberry Coachways Crickhowell Taxis Clynnog & Trefor / Berwyn Coaches Thames Valley Buses Cogenhoe and Whiston Parish Council Denbighshire Council Don Fraser Coaches DANSA Dilwyn's Coaches Edwards Coaches Eifion's Coaches Englands Limousines Express Travel First Bristol, Bath & the West First South & West Wales First Norfolk & Suffolk First Greater Glasgow Forge Travel Foreign Support Gemsar Travel Limited Goodsir Gwynfor Coaches Harris Travel Henleys Hodsons Coaches Harris Coaches Holmeswood Coaches Ltd Evans Coaches Tregaron Limited Jones Login J Robinson Taxis The Keighley Bus Company Keepings Coaches Lawson's of Corby Llew Jones Coaches Lewis Y Llan Lloyds Coaches Mario Coaches M & H Coaches Monmouthshire County Council Moving People Morris Travel Mid Wales Travel Newbury & District Adventure Travel Nefyn Nick Maddy Coaches Northern Star Coach Hire Coastliner Buses Pilkingtonbus Oswestry Community Action (Qube) O R Jones Bus Vannin Owen's Travelmaster P & O Lloyd Pat's Coaches JP Travel Peter's Minibus Hire Pembrokeshire County Council Thomas of Rhondda P & S Nelson Peyton Travel Richards Bros Reading Buses Ridgways Redline Travel Tyrers Coaches Sarah Bell Sargeants Brothers Saunders of Preston SP Cars Select Coaches Shane Nuttall Stagecoach South Wales South Wales Transport Taf Valley Coaches Tanat Valley Coaches Travel Assist Townlynx The Travellers Choice Uno Valentines Travel Village & Valleys Travel Waltons Coach Hire Wyre Coaches Wrexham Taxis Yeomans Travel Pendle Coaches Our Bus Our Centre A and J Taxis Al's Coaches Derek Hilton Travel Maghull Coaches Hattons Travel Mersey Ferries Cumfybus A2B Travel Anthony's Travel Selwyn's Travel Peoples Bus Ashcroft Travel Liverpool City Sights Link Network Hadleigh Community Transport High Suffolk Community Transport ABUS Astra Coach Travel 4K Travel Transpora Bus AMK Flexibus Arriva Midlands Airport Bus Express Astons Coaches Somerset Council Atwest Axe Valley Mini-Travel Country Bus Broughton & Mottisfont Community Bus Banga Buses Basingstoke Community Transport Bath Bus Company Borderbus Go Ahead London Beestons Bennetts Travel Bakers Dolphin New Bharat Coaches (Southall, London) Air-Rail Link Belle Coaches Beaminster Town Council Berry's Coaches Beeline Coaches Connect2Wiltshire Emirates Air Line Caradoc Coaches Coastal Accessible Transport Cheltenham Community Transport Community First Wessex Cotswold Green Hedingham & Chambers Cresta Coaches Chaserider Carolean Coaches Coachstyle Community Transport South Wiltshire CT Coaches Thames Clippers Coventry Minibuses N N Cresswell Clearway of Catshill Abellio London Dawlish Community Transport Diamond Bus South East Docklands Buses Dorset Community Transport Discover Dorset Tours Dartmouth Higher Ferry Diamond Bus London Docklands Light Railway - TfL Dan's Coach Travel D & P Boat Hire DRM Bus Dartline Coaches Damory Coaches Three Villages MiniBus Eurocoaches Exe Valley and Community Bus Fareline Bus & Coach Services First & Last Mile Faresaver Forest Community Transport Felixstowe Ferry Boat Yard Faringdon Community Bus Finesse Travel Flixbus Flittabus FromeBus Filers Travel Felix Taxis & Co. FYTbus Gorran & District Community Bus Going Forward Buses Greenslades Tours Grant Palmer Grindles Coaches Grayline Coaches Halesworth Area Community Transport Hampshire Community Transport Hedgehog Community Bus Henshaw's Coaches Hatch Green Coaches Harwich Harbour Ferry Hopleys Coaches Hollands Coaches Herberts Travel Hartley Wintney Community Bus Independent Coach Company igo Cowes Ferry Ipswich Buses Isle Valley Transport Ivel Sprinter Isle of Wedmore RT Assoc. John Dix Travel Kidlington Assisted Transport CIC K B Coaches Kevs Cars and Coaches Fal River Links Lakeside Coaches LA Travel (South Staffs Coach Hire) Lichfield City Coaches Lilbourne Community Bus The Big Lemon Stagecoach London Shipston Link LMS Travel Logan Rock Cars Libra Travel London United London Underground (TfL) Lugg Valley Travel Minibus Plus.com MD Coaches MRD Ltd Metrobus Megabus Meon Valley Community Bus Minsterley Metroline Travel Arriva London Mendip Community Transport Mulleys Motorways Newton Abbot Community Transport National Express Newent Community Link Newport Bus National Express West Midlands Oakleys Coaches OTS OurBus Bartons Oxford Bus Company Phil Anslow Travel Plymouth Boat Trips Plymouth Citybus Go Cornwall Bus Pulhams Coaches Royal Buses R & B Travel Ramsbury Community Bus Redwoods Travel Robert Eugene Dix Red Funnel W Ridler & Sons Road Runner Community Transport Replacement Service Roselyn Coaches Richard Wellesley Memorial Community Minibus South Beds Dial-a-Ride Select Bus Services Scottish Citylink Scraggs Shires Passenger Transport St Ives Minibus Services LandFlight Stagecoach London Swanbrook Coaches Sullivan Buses Stanton's of Stoke Bluestar Uni-Link Saltash Red Bus NATIONAL EXPRESS OPERATIONS LIMITED South Somerset Community Transport Travel Cornwall London Sovereign Southern Vectis South West Coaches Taw & Torridge Aimee's Tavistock Community Transport Totness Community Bus Torbay Community Development Trust London Tramlink National Express Coventry Let's Go Tally Ho! Thandi Red Limited Thames Travel TK Travel West Midlands Metro Thompsons Coaches Thames River Services Swindon's Bus Company Taylors Travel Uno Villager Community Bus (Oxon) Villager Minibus Sharnbrook Torbay Buses Walsall Community Transport morebus Salisbury Reds Wyre Forest Dial a Ride Woolwich Free Ferry WightLink West Oxfordshire Community Transport Wanderbus F R Willetts Xelabus The Seend Shuttle Yeos Contracts Yarranton Brothers Bristol Ferry Boat Company Polruan Passenger Ferry, Bodinnick Vehicle Ferry River Link Flushing Ferry Gosport-Portsmouth Ferry Hayling Ferry Limited Hovertravel Mountbatten Water Taxis Polruan Ferry Co Ltd Padstow Harbour Commissioners Sandbanks Ferry Salcombe Ferry St Mawes Ferry Tamar Bridge & Torpoint Ferry Joint Committee White Horse Ferries Orkney Ferries PC Coaches Canavan Travel Pentland Ferries Peter Hodgson Travel Peter MacLennan Panther Travel Nottingham Minibus PVT Transfer Prentice Westwood Risborough Area Community Bus Ramsey and District Community Bus Association Rambler Coaches Roberts Coaches Richmonds Coaches Redroute Buses Redwing Coaches Red Eagle Reptons Coaches R G Jamieson & Son Regent Coaches Ravenshead Community Project Romney Hythe & Dymchurch Light Railway R & J Coaches Redline R Robertson & Son Red Rose Travel RS Taxis and Minicoaches Ross Travel Rye Community Transport South Ayrshire Community Transport Scottish Borders Council Scottish Citylink/Megabus jointly operated Scoraig Ferry Sheffield Community Transport Scottish Citylink & Ulsterbus SD Travel Seaford & District Flagfinders Stephensons of Essex Skye Ferry Community Interest Company Safeguard Buses South Harris Coaches Shiel Buses Short's Travel Sharpes of Nottingham Shetland Ferries Shuttle Buses Simonds Selsey Community Bus Sleafordian Coaches Starline Sanders Coaches South Pennine Community Transport SPT Subway Squarepeg Smith & Sons Stevenson's Travel Star Travel Star Cabs Stewarts Coaches Station Coaches Stotts Coaches Stuart's Coaches Sussex Coaches Soar Valley Community Bus Spa Valley Railway Sweeneys Cruises Sweeneys Garage Steam Ship Sir Walter Scott trentbarton TransportConnect Tendring Community Transport Tranport for Tongue Highland Council TLC Travel Ltd Tetley's Travelmasters TM Travel Xplore Dundee Central Connect Taxi Service Ulva Ferry United Coaches United Minibuses Vectare Vale Travel Wilma Ann Nicolson R & S Watersons West Berkshire Council Transport Services Wilfreda Beehive White Bus Services Watermill Coaches West Coast Motors Woking Community Transport MacLeod's Coaches Westerbus Western Ferries Wharfeconnections Whitelaw Coaches Whippet Coaches Waverley Hoppa Community Transport Whites Coaches (Shetland) Winslow & District Community Bus A C Williams WM Travel WMV Motor Hirer Go To Town Wilson's of Rhu Travel Wisharts Wastbus Viking Coaches First York Yorkshire Travel Group Stagecoach Yorkshire Elizabeth Yule Z & S Transport Border Rambler Blueworks Private Hire McCall's Coaches Lakeland Coaches Transport for Wales c2c Chiltern Railways Caledonian Sleeper E M R Grand Central Great Northern LNER GWR Gatwick Express Hull Trains Heathrow Express Island Line East Coast Trains Great Anglia West Midlands Trains London Overground London Underground Merseyrail Northern Caledonian MacBrayne Southeastern Southern ScotRail South Western Railway Thameslink TransPennine Express Tyne and Wear Metro Avanti West Coast CrossCountry Elizabeth line Agency Filename: uk_northern-ireland.gtfs.zip Copyright holders Foyle Metro Translink - Glider Goldline Express Translink Metro Ulsterbus Ulsterbus Town Services Translink Northern Ireland Rail Filename: lt_visimarsrutai.gtfs.zip Copyright holders Pag\u0117gi\u0173 sav. Joni\u0161kio r. sav. Kalvarijos sav. Kai\u0161iadori\u0173 r. sav. Kauno r. sav. UAB \"Trak\u0173 paslaugos\" K\u0117daini\u0173 r. sav. Kelm\u0117s r. sav. Klaip\u0117dos r. sav. Kretingos r. sav. Lietuvos transporto saugos administracija Pakruojo r. sav. Panev\u0117\u017eio r. sav. Radvili\u0161kio r. sav. Raseini\u0173 r. sav. Roki\u0161kio r. sav. Pasvalio r. sav. Plung\u0117s r. sav. Prien\u0173 r. sav. administracija Rietavo sav. Skuodo r. sav. Taurag\u0117s r. sav. Tel\u0161i\u0173 r. sav. Trak\u0173 r. sav. UAB \"Joni\u0161kio autobus\u0173 parkas\" Ukmerg\u0117s r. sav. Utenos r. sav. \u0160aki\u0173 r. sav. \u0160al\u010dinink\u0173 rajono savivaldyb\u0117s administracija \u0160ven\u010dioni\u0173 r. sav. \u0160ilal\u0117s r. sav. \u0160ilut\u0117s r. sav. \u0160irvint\u0173 r. sav. \u0160iauli\u0173 r. sav. Jurbarko r. sav. Panev\u0117\u017eio m. sav. \u0160iauli\u0173 m. sav. Alytaus m. sav. U\u017dDAROJI AKCIN\u0116 BENDROV\u0116 \"EMTRA\" Visagino sav. Akmen\u0117s r. sav. Alytaus r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \"Kupi\u0161kio autobus\u0173 parkas\" U\u017edaroji akcin\u0117 bendrov\u0117 Kur\u0161\u0117n\u0173 autobus\u0173 parkas Anyk\u0161\u010di\u0173 r. sav. Bir\u017e\u0173 r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 Naujosios Akmen\u0117s autobus\u0173 parkas Var\u0117nos r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \"Roki\u0161kio autobus\u0173 parkas\" Vilkavi\u0161kio r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \u0160irvint\u0173 autobus\u0173 parkas U\u017edaroji akcin\u0117 bendrov\u0117 Tolimojo keleivinio transporto kompanija Vilniaus r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \"UKMERG\u0116S AUTOBUS\u0172 PARKAS\" Elektr\u0117n\u0173 sav. Zaras\u0173 r. sav. Ignalinos r. sav. Jonavos r. sav. Vilniaus m. sav. Druskinink\u0173 sav. Marijampol\u0117s savivaldyb\u0117s administracija Kauno m. sav. Klaip\u0117dos m. sav. Neringos sav. Palangos m. sav. Kupi\u0161kio r. sav. Kazl\u0173 R\u016bdos sav. Lazdij\u0173 r. sav. Testin\u0117 savivaldyb\u0117 Ma\u017eeiki\u0173 r. sav. V\u012e Lietuvos automobili\u0173 keli\u0173 direkcija Valstyb\u0117s \u012fmon\u0117 Lietuvos oro uostai Akcin\u0117 bendrov\u0117 \"SMILTYN\u0116S PERK\u0116LA\" Mol\u0117t\u0173 r. sav. UAB LTG Link Filename: ch_opentransportdataswiss.gtfs.zip Copyright holders DB Regio AG Baden-W\u00fcrttemberg Verkehrsbetriebe Biel Verkehrsbetriebe Biel Brienz Rothorn Bahn AG Braunwald-Standseilbahn B\u00fcrgenstock Bahn AG Davos Klosters Bergbahnen (dpb) Schweizerische Bundesbahnen SBB Sportbahnen Davos Standseilbahn Schwyz-Stoos AG Toggenburg Bergbahnen Unterwasser Engelberg-Tr\u00fcbsee-Titlis Parc d'Attractions du Ch\u00e2telard Societ\u00e0 Funicolare Cassarate-Monte Br\u00e8 Funicolare Ritom SA Aufzug Matte-Plattform (Bern) Drahtseilbahn Marzili-Stadt Bern AG Giessbachbahn Gornergratbahn Gurtenbahn Harderbahn Jungfraubahn Montreux-Vevey-Riviera (las) Aare Seeland mobil (ltb) Ferrovia Monte Generoso Montreux-Vevey-Riviera (mtgn) Celeriner Bergbahnen - Punt Muragl-Muottas Muragl Lugano-Monte San Salvatore Niesenbahn Pilatusbahnen Kriens-Fr\u00e4km\u00fcntegg Rigi Bahnen AG Weggis-Rigi Kaltbad Bus Ostschweiz (Rheintal) Berner Oberland-Bahnen Schilthornbahn (sbm) Sierre-Montana-Crans Funiculaire Saint-Imier-Mont-Soleil SA Stanserhornbahn STI Bus AG Bergbahnen Engadin St. Moritz AG Niederhornbahn AG Transports Publics de la R\u00e9gion Lausannoise sa Transports Publics Neuch\u00e2telois SA (tn) Transports Publics Neuch\u00e2telois SA Treib-Seelisberg-Bahn Montreux-Vevey-Riviera (vcp) Service d'automobiles TRN (vr) Wengernalpbahn Zugerbergbahn Interlaken-Heimwehfluh Dampfbahn Furka-Bergstrecke Societ\u00e0 della Funicolare Locarno-Madonna del Sasso SA Dolderbahn Betriebs AG Poly-Bahn Z\u00fcrich Funiculaire Neuch\u00e2tel-Universit\u00e9 - Neuch\u00e2tel-Gare \u00c4gerisee Schifffahrt AG Schifffahrts-Genossenschaft Greifensee Hallwilersee Bielersee BLS Schifffahrt AG (brs) CGN SA Vierwaldst\u00e4ttersee Schifffahrtsgesellschaft f\u00fcr den Zugersee AG Lago di Lugano Lacs de Neuch\u00e2tel et Morat Societ\u00e0 Navigazione del Lago di Lugano SA BLS Schifffahrt AG (ths) Schweiz. Schifffahrtsgesellschaft Untersee und Rhein AG Z\u00fcrichsee-Schifffahrtsgesellschaft AG (ZSG) Schweizerische Bodensee-Schifffahrt AG Z\u00fcrichsee-F\u00e4hre Horgen-Meilen AG Schiffsbetrieb Walensee Navigation Lac des Brenets Soci\u00e9t\u00e9 des Mouettes Genevoises Navigation Wengernalpbahn Grindelwald Grund - Eigergletscher Grindelwald-First Seilbahn Weissenstein AG Brunni-Bahnen Engelberg AG Adliswil-Felsenegg Bergbahnen Beckenried-Emmetten Davos Klosters Bergbahnen (bbbj) Funivia Monte Lema SA Raron-Unterb\u00e4ch Chalais-Briey-Vercorin Schw\u00e4galp-S\u00e4ntis Luftseilbahn Unterterzen-Flumserberg AG Wasserauen-Ebenalp Wengen-M\u00e4nnlichen Portes du Soleil Suisse SA Bergbahnen Engadin St. Moritz, Bernina-Diavolezza (lbd) Arosa Bergbahnen Appenzeller Bahnen (ab) Touristische Unternehmung Gr\u00e4chen AG Sportbahnen Melchsee-Frutt (lsm) Pendicularas Scuol SA Sportbahnen Pischa Bergbahnen Destination Gstaad AG Luftseilbahn Obergschwend-Rigi-Burggeist AG Riddes-Is\u00e9rables Luftseilbahn Kandersteg-Sunnb\u00fcel (Gemmi) AG Leukerbad-Gemmipass Transports Publics du Chablais Savognin-Bergbahnen AG Rh\u00e4z\u00fcns-Feldis/Veulden T\u00e9l\u00e9-Leysin-Col des Mosses - La L\u00e9cherette SA Saastal Bergbahnen AG Rotenfluebahn Mythenregion AG Chur-Dreib\u00fcndenstein Reigoldswil-Wasserfallen Celeriner Bergbahnen - Celerina-Saluver Niederhornbahn AG Sattel-Hochstuckli AG Gampel-Jeizinen Remont\u00e9es M\u00e9caniques Crans-Montana-Aminona Curtinatsch-Piz Lagalb Surlej-Silvaplana-Corvatsch Dallenwil-Niederrickenbach Andermatt-Sedrun Sport AG Lenzerheide Bergbahnen Hoher Kasten Drehrestaurant und Seilbahn AG Dallenwil-Wirzweli Jakobsbad-Kronberg Stechelberg-M\u00fcrren-Schilthorn (lsms) Bergbahnen Wildhaus AG Funiculaire St-Luc-Chandolin Gstaad 3000 AG Aletsch Bahnen AG F\u00fcrgangen-Bellwald Erlenbach-Stockhorn Bergbahnen Flumserberg AG Pontresina-Alp Languard Luftseilbahn M\u00fcrren-Schilthorn Luftseilbahn Schattdorf-Haldi Grindelwald-Pfingstegg Marbach-Marbachegg Blatten-Belalp Weisse Arena Bergbahnen AG Rosswald Bahnen AG T\u00e9l\u00e9ph\u00e9rique Dor\u00e9naz-Champex d'Alesse/Commune de Dor\u00e9naz Stalden-Gspon K\u00fcssnacht am Rigi-Seebodenalp Bergbahnen Engstligenalp AG Bergbahnen S\u00f6renberg AG Cardada Impianti Turistici Pizolbahnen AG Bergbahnen Flumserberg AG Transports de la r\u00e9gion Morges-Bi\u00e8re-Cossonay Turtmann-Unterems-Oberems Staldenried\u00bfGspon Glaris-Rinerhorn Remont\u00e9es M\u00e9c. du Wildhorn Anz\u00e8re Brusino-Arsizio-Serpiano Torrent-Bahnen Leukerbad-Albinen AG Lenk Bergbahnen Zermatt Bergbahnen AG Aletsch-Express Riederalp-Bettmeralp T\u00e9l\u00e9si\u00e8ge Buttes-La Robella Transports publics fribourgeois Kaisereggbahnen Schwarzsee AG Centre Touristique Mol\u00e9son Schutt Atzm\u00e4nnig Luftseilbahngenossenschaft Gitschenen T\u00e9l\u00e9-Villars-Gryon T\u00e9l\u00e9-Torgon SA T\u00e9l\u00e9LaFouly-ChampexLac SA Val Sporz-Piz Scalottas Remont\u00e9es m\u00e9caniques SA Bergbahnen Hoch-Ybrig AG T\u00e9l\u00e9-Thyon SA Theytaz Excursions Sion T\u00e9l\u00e9si\u00e8ge Lana-La Meina Luftseilbahngenossenschaft Br\u00fcgg-Eierschwand-Ruogig T\u00e9l\u00e9si\u00e8ge Ovronnaz-Jorasse T\u00e9l\u00e9Mar\u00e9cottes Sportbahnen Unterb\u00e4ch AG Sesselbahn St. Moritz Suvretta-Randolins Sesselbahn Visperterminen-Giw Seilbahngenossenschaft Embd-Schalb Lauchernalp Bergbahnen AG Sportbahnen Bellwald Goms AG Bergbahnen Meiringen-Hasliberg Genossenschaft Luftseilbahn Sulwald Reichenbachfall-Bahn Klosters-Madrisa Bergbahn Kriens-Sonnenberg-Bahn Sportbahnen Melchsee-Frutt (ldb) Luftseilbahn Engelberg-F\u00fcrenalp Luftseilbahn Fell-Chr\u00fczh\u00fctte Luftseilbahn Fellboden-Bannalpsee Luftseilbahn Niederbauen Aargau Verkehr AG Luftseilbahn Kalpetran-Embd Genossenschaft Tschinglenbahn Elm Stoosbahnen AG Holzegg Liegenschaften AG Bergbahnen Hoch-Ybrig AG Luftseilbahn Attinghausen-Br\u00fcsti AG Luftseilbahn Fl\u00fcelen-Eggbergen T\u00e9l\u00e9verbier Biel-Kinzig AG Seilbahngenossenschaft Golzern Luftseilbahngenossenschaft Arnisee Cantone di Grigioni Gondelbahn Grindelwald-M\u00e4nnlichen AG Funivia Selma-Landarenca Kraftwerk Sanetsch AG Funiva San Carlo-Robiei Sesselbahn Kr\u00fcmmenschwil-Rietbach Luftseilbahn Kr\u00e4bel-Rigi Scheidegg AG Sportbahnen Amden Bergbahnen Malbun AG Sportbahnen Kerenzerberg GmbH Genossenschaft Luftseilbahn Morgenholz Luftseilbahn Kies-Mettmen Luftseilbahn Matt-Weissenberg Sportbahnen Elm T\u00e9l\u00e9cabine Vercorin-Cr\u00eat-du-Midi Aelplibahn Malans Genossenschaft Gemeinde Fanas Bergbahnen Obersaxen AG Bergbahnen Piz Mundaun AG Bergbahnen Hohsaas AG Sesselbahn Vals-Gadenstatt Bergbahnen Piz Mundaun AG Sesselbahn Feldis-Mutta Valbianca SA Airolo Bergbahnen Samnaun AG ebs Energie AG Luftseilbahn Illgau - Vorder Oberberg Navigation Lac de Joux Solarf\u00e4hrbetrieb Thomas Geiger Reichenau Schiffahrtsunternehmung Silsersee Ernst M\u00e4ndli AG Nohl Schiff Eglisau-T\u00f6ssegg Luftseilbahn Amsteg-Arni Stoosbahnen AG F\u00e4hre Beckenried-Gersau Wasserngrat 2000 AG MS Seestern + Gastro AG Lauterbrunnen-M\u00fcrren Gondelbahn Kandersteg-Oeschinensee La Punt Ferien T\u00e9l\u00e9Charmey SA TreNord Association neuch\u00e2teloise des Amis du Tramway ANAT Bergbahnen Disentis BLS AG (bls) Raron-Eischoll Bergbahnen Hoch-Ybrig AG Sportbahnen Berg\u00fcn Remont\u00e9es M\u00e9caniques Grimentz-Zinal SA Pradaschier AG Top Bergbahnen S\u00f6renberg AG - fikt Transports de la R\u00e9gion Morges-Bi\u00e8re-Cossonay Luftseilbahn Kandersteg-Allmenalp Seilbahn Ried Illgau Impianti turistici Rivera-Monte Tamaro LTB Lungern-Turren-Bahn AG Berner Oberland-Bahnen SBB GmbH (Grenzverkehr) Bodensee-Schiffsbetriebe GmbH Baselland Transport Soci\u00e9t\u00e9 coop\u00e9rative du Chemin de fer - Mus\u00e9e Blonay-Chamby Aare Seeland mobil (bti) Verkehrsbetriebe Z\u00fcrich INFO+ Trasporti Pubblici Luganesi SA Aargau Verkehr AG Montreux-Vevey-Riviera (cev) Chemins de fer du Jura Transports Publics Neuch\u00e2telois SA (cmn) Forchbahn Lugano-Ponte Tresa Matterhorn Gotthard Bahn (fo) Ferrovie Autolinee Regionali Ticinesi Transports publics fribourgeois Lausanne-Echallens-Bercher Aare Seeland mobil (rvo) Bergbahnen Adelboden AG STI Bus AG Comune di Personico Transports de Martigny et R\u00e9gions (mc) Alpbus Fournier Tschentenbahnen AG Elsigenalpbahnen AG Frutigen, Luftseilbahn und Skilifte Alpintrans GmbH Montreux-Oberland Bernois THURBO Nyon-St-Cergue-Morez Interimsfahrplan / Horaire interimaire / Orario ad interim Commune d'Anniviers Vissoie Riffelalp Resort AG Zermatt Ruftaxi Rorschacherberg Anrufsammeltaxi Bischofszell Anrufsammeltaxi Amriswil Gemeinde St. Gallenkappel Busbetrieb Kandersteg - Gasterntal Walker's S\u00f6hne Urnerboden Skilift Schilt AG 8753 Mollis Aroser Verkehrsbetriebe Bahnersatz Jahresfahrplan Autobusbetrieb LEE B\u00fcrgerbus Gondiswil-Huttwil-Ufhusen B\u00fcrgerbus Kleindietwil-Oeschenbach-Walterswil Sumvitg Turissem F\u00f6rderverein Region Gantrisch ZB Bus Fahrplanbed\u00fcrfnisse Gemeinde Surses \u00bf Cumegn Surses Funicar AG Engelberger Auto-Betriebe Ortsbus Saas-Fee Office du tourisme de Leysin Busbetrieb Oberems-Gruben Andermatt-Urserntal Tourismus GmbH Taxi, Bau- und Traxarbeiten Willi Schaad Busbetrieb Gemeinde Berg\u00fcn PRO REGIO HUTTWIL Verkehrsverein Elektrobus Zermatt Bus alpin Lombachalp Verein Naturpark Beverin Ortsbus der Gemeinde Silvaplana / Gemeinde Silvaplana B\u00fcrgerbus R\u00fcderswil Tr\u00e4gerverein Historische Postautolinie M\u00fchleggbahn AG Gemeinde Luzein B\u00fcrgerbus Walperswil-Epsach-T\u00e4uffelen-Aarberg B\u00fcrgerbus Hellsau-H\u00f6chstetten-Willadingen-Koppigen Autoservizi Silvestri Livigno Bus urbain de Martigny Bus Sierrois Ortsbus St. Moritz Rh\u00e4tische Bahn TPF Ersatzverkehr Aargau Verkehr AG BLS Netz AG Ersatzverkehr SBB Infrastruktur AG Bahnersatz zb Zentralbahn AG Ersatzverkehr Verkehrsbetriebe Kreuzlingen Transports Publics Neuch\u00e2telois SA (rvt) Autotransports de la Vall\u00e9e de Joux Autolinea Mendrisiense SA Servizio d'automobili Transports Publics de la R\u00e9gion Nyonnaise Regionalps Verkehrsbetrieb der Landschaft Davos Bus Nyon-Prangins Automobildienst Appenzeller Bahnen Verkehrsverbund Tirol GesmbH Autobusbetrieb Freienbach Automobiles MBC Bus commune Sion Bus und Service AG (Chur) Busbetrieb Rapperswil-Eschenbach-R\u00fcti ZH Verkehrsbetriebe Glattal Busbetrieb Wollerau-Samstagern Sihltal-Z\u00fcrich-Uetliberg-Bahn Transports Publics Neuch\u00e2telois SA (tc) Busbetrieb Olten-G\u00f6sgen-G\u00e4u Service d'automobiles TRN (rvt Auto) Stadtbus Frauenfeld Verkehrsbetriebe Herisau Bergbahnen Adelboden AG DB Regio AG Baden-W\u00fcrttemberg PostAuto AG Verkehrsbetrieb LIECHTENSTEINmobil Automobildienst SZU FPLAN BOD RAB OMP FPLAN RBG SWG FPLAN VHB SBP Aare Seeland mobil (snb) Busbetrieb Lichtensteig-Wattwil-Ebnat-Kappel Autobus AG Liestal Auto AG Rothenburg AFA Bus AG RegionAlps Bus Bus und Service AG (Engadin) Auto AG Uri Autolinee FART NeTS Planung \u00d6BB Transports Publics du Chablais (Bus) Automobil Rottal AG \u00d6sterreichische Bundesbahnen Schweizerische S\u00fcdostbahn (sob) Verkehrsbetriebe Luzern AG Busbetrieb BOB Basler Verkehrsbetriebe Bus Ostschweiz (Wil) St\u00e4dtische Verkehrsbetriebe Bern Autobetrieb Weesen-Amden Automobiles CJ Service d'automobiles TPF Service d'automobiles TMR Verkehrsbetriebe Schaffhausen Verkehrsbetriebe Z\u00fcrichsee und Oberland Zugerland Verkehrsbetriebe Busbetrieb Aarau Auto AG Schwyz BUS Oberthurgau AG Verkehrsbetriebe Schaffhausen Verkehrsbetriebe Z\u00fcrich Autobusbetrieb RBS NA_85000 Automobildienst Matterhorn Gotthard Bahn (fo auto) Theytaz Excursions Sion Auto Leuk-Leukerbad Autobetrieb Sernftal Autolinee Regionali Luganesi STI Bus AG Zentralbahn Autolinee Bleniesi Automobildienste Aare Seeland mobil Busland AG Regionalbus Lenzburg Transports publics Vevey-Montreux-Chillon-Villeneuve But Cars Rh\u00f4ne-Alpes DistriBus Evian Soci\u00e9t\u00e9 Nationale des Chemins de fer Fran\u00e7ais R\u00e9seau Lihsa Proxim iTi RDTAin SIBRA Transports Publics de l'agglom\u00e9ration d'Annemasse Regionalverkehr Bern-Solothurn Transports Publics Genevois Stadtbus Winterthur Busbetrieb Solothurn und Umgebung Verkehrsbetriebe der Stadt St.Gallen Regionale Verkehrsbetriebe Baden-Wettingen Verkehrsbetriebe Biel Busbetrieb Grenchen und Umgebung Transports Vall\u00e9e de Joux-Yverdon-Ste-Croix Regiobus Gossau SG Aargau Verkehr AG Verein Dampfbahn Bern Transports Vall\u00e9e de Joux-Yverdon-Ste-Croix (oc/bus) Gemeinde Celerina/Schlarigna Dampfbahn-Verein Z\u00fcrcher Oberland Matterhorn Gotthard Bahn (bvz) Trasporti Pubblici Luganesi SA Heuberge AG Aargau Verkehr AG Transports Vall\u00e9e de Joux-Yverdon-Ste-Croix Diverse INFO SBB GmbH S\u00fcdbadenbus Filename: us-il_CTA.gtfs.zip Copyright holders Chicago Transit Authority Filename: us-il_SMTD.gtfs.zip Copyright holders SMTD Filename: us-il_SMTD.gtfs.zip Copyright holders SMTD Filename: us-il_ChampaignUrbana-MTD.gtfs.zip Copyright holders Champaign Urbana Mass Transit District Filename: us-il_Peoria-CityLink.gtfs.zip Copyright holders CityLink Filename: pl_PKP-Intercity.gtfs.zip Copyright holders PKP Intercity Filename: pl_PolRegio.gtfs.zip Copyright holders PolRegio Filename: pl_Rzesz\u00f3w.gtfs.zip Copyright holders ZTM Rzesz\u00f3w Filename: pl_Koleje-Mazowieckie.gtfs.zip Copyright holders Koleje Mazowieckie Filename: pl_\u015awinouj\u015bcie.gtfs.zip Copyright holders Komunikacja Autobusowa w \u015awinouj\u015bciu Filename: pl_Koleje-Dolno\u015bl\u0105skie.gtfs.zip Copyright holders Koleje Dolno\u015bl\u0105skie Filename: pl_Bydgoszcz.gtfs.zip Copyright holders ZDMiKP Bydgoszcz Filename: pl_W\u0142oc\u0142awek.gtfs.zip Copyright holders MPK W\u0142oc\u0142awek Filename: pl_Toru\u0144.gtfs.zip Copyright holders Urz\u0105d Miasta Torunia Filename: pl_Kielce.gtfs.zip Copyright holders Zarz\u0105d Transportu Miejskiego w Kielcach Filename: pl_Radom.gtfs.zip Copyright holders MZDiK Radom Filename: pl_Warszawa.gtfs.zip Copyright holders Warszawski Transport Publiczny Filename: pl_\u0141om\u017ca.gtfs.zip Copyright holders MPK ZB w \u0141om\u017cy Filename: pl_Wejherowo.gtfs.zip Copyright holders MZK Wejherowo Filename: pl_Tr\u00f3jmiasto-(Gda\u0144sk,-Gdynia,-Sopot)-combined.gtfs.zip Copyright holders ZTM Gda\u0144sk ZKM Gdynia Filename: pl_Gi\u017cycko.gtfs.zip Copyright holders GZK Bystry Filename: pl_Lublin.gtfs.zip Copyright holders ZTM Lublin Filename: ca-qc_STM.gtfs.zip Copyright holders Soci\u00e9t\u00e9 de transport de Montr\u00e9al Filename: ca-qc_STM.gtfs.zip Copyright holders Soci\u00e9t\u00e9 de transport de Montr\u00e9al Filename: ca-qc_Exo-reseaudetransportmetropolitain.gtfs.zip Copyright holders exo-R\u00e9seau de transport m\u00e9tropolitain Filename: ca-qc_Exo-reseaudetransportmetropolitain.gtfs.zip Copyright holders exo-R\u00e9seau de transport m\u00e9tropolitain Filename: ca-qc_Exo-varannes.gtfs.zip Copyright holders exo-Sorel-Varennes Filename: ca-qc_Exo-varannes.gtfs.zip Copyright holders exo-Sorel-Varennes Filename: ca-qc_Exo-citsud.gtfs.zip Copyright holders exo-Sud-Ouest Filename: ca-qc_Exo-citsud.gtfs.zip Copyright holders exo-Sud-Ouest Filename: ca-qc_Exo-citlapresqu\u00eele.gtfs.zip Copyright holders exo-La Presqu'\u00eele Filename: ca-qc_Exo-citlapresqu\u00eele.gtfs.zip Copyright holders exo-La Presqu'\u00eele Filename: ca-qc_Exo-citlaurentides.gtfs.zip Copyright holders exo-Laurentides Filename: ca-qc_Exo-citlaurentides.gtfs.zip Copyright holders exo-Laurentides Filename: ca-qc_Exo-citduhaut-saint-laurent.gtfs.zip Copyright holders exo-Haut-Saint-Laurent Filename: ca-qc_Exo-citduhaut-saint-laurent.gtfs.zip Copyright holders exo-Haut-Saint-Laurent Filename: ca-qc_Exo-richelain-roussillon.gtfs.zip Copyright holders exo-Le Richelain / Roussillon Filename: ca-qc_Exo-richelain-roussillon.gtfs.zip Copyright holders exo-Le Richelain / Roussillon Filename: ca-qc_Exo-citchambly-richelieu-carignan.gtfs.zip Copyright holders exo-Chambly-Richelieu-Carignan Filename: ca-qc_Exo-citchambly-richelieu-carignan.gtfs.zip Copyright holders exo-Chambly-Richelieu-Carignan Filename: ca-qc_Exo-citvall\u00e9e-du-richelieu.gtfs.zip Copyright holders exo-Vall\u00e9e du Richelieu Filename: ca-qc_Exo-citvall\u00e9e-du-richelieu.gtfs.zip Copyright holders exo-Vall\u00e9e du Richelieu Filename: ca-qc_Exo-omitsainte-julie.gtfs.zip Copyright holders exo-Sainte-Julie Filename: ca-qc_Exo-omitsainte-julie.gtfs.zip Copyright holders exo-Sainte-Julie Filename: ca-qc_Exo-mrclesmoulinsurbis.gtfs.zip Copyright holders exo-Terrebonne-Mascouche Filename: ca-qc_Exo-mrclesmoulinsurbis.gtfs.zip Copyright holders exo-Terrebonne-Mascouche Filename: ca-qc_Exo-mrcdelassomption.gtfs.zip Copyright holders exo-L'Assomption Filename: ca-qc_Exo-mrcdelassomption.gtfs.zip Copyright holders exo-L'Assomption Filename: ca-qc_Laval.gtfs.zip Copyright holders Societe de transport de Laval Filename: us-or_Trimet.gtfs.zip Copyright holders Portland Streetcar Portland Aerial Tram TriMet Filename: us-or_Trimet.gtfs.zip Copyright holders Portland Streetcar Portland Aerial Tram TriMet Filename: hu_mav.gtfs.zip Copyright holders ROeEE M\u00c1V MAV-START Filename: hu_volanbusz.gtfs.zip Copyright holders Vol\u00e1nbusz - Ercsi Vol\u00e1nbusz - G\u00f6d\u00f6ll\u0151 Vol\u00e1nbusz - Monor Vol\u00e1nbusz - V\u00e1c Vol\u00e1nbusz - \u00c9rd Vol\u00e1nbusz - Baja Vol\u00e1nbusz - B\u00e9k\u00e9scsaba Vol\u00e1nbusz - B\u00e9k\u00e9s Vol\u00e1nbusz - Csongr\u00e1d Vol\u00e1nbusz - Gyula Vol\u00e1nbusz - H\u00f3dmez\u0151v\u00e1s\u00e1rhely Vol\u00e1nbusz - Mak\u00f3 Vol\u00e1nbusz - Mez\u0151ber\u00e9ny Vol\u00e1nbusz - M\u00f3rahalom Vol\u00e1nbusz - Orosh\u00e1za Vol\u00e1nbusz - Szentes Vol\u00e1nbusz - Szeksz\u00e1rd Vol\u00e1nbusz - Bonyh\u00e1d Vol\u00e1nbusz - Koml\u00f3 Vol\u00e1nbusz - Moh\u00e1cs Vol\u00e1nbusz - Sikl\u00f3s Vol\u00e1nbusz - Szigetv\u00e1r Vol\u00e1nbusz - Si\u00f3fok Vol\u00e1nbusz - Fony\u00f3d Vol\u00e1nbusz - Nagyat\u00e1d Vol\u00e1nbusz - Csurg\u00f3 Vol\u00e1nbusz - B\u00e1tasz\u00e9k Vol\u00e1nbusz - Mez\u0151k\u00f6vesd Vol\u00e1nbusz - Balmaz\u00fajv\u00e1ros Vol\u00e1nbusz - Hajd\u00faszoboszl\u00f3 Vol\u00e1nbusz - Kazincbarcika Vol\u00e1nbusz - \u00d3zd Vol\u00e1nbusz - Tisza\u00fajv\u00e1ros Vol\u00e1nbusz - Ny\u00edregyh\u00e1za Vol\u00e1nbusz - Ajka Vol\u00e1nbusz - Balatonf\u00fcred Vol\u00e1nbusz - Balatonf\u0171zf\u0151 Vol\u00e1nbusz - Gy\u0151r Vol\u00e1nbusz - Keszthely Vol\u00e1nbusz - K\u00f6rmend Vol\u00e1nbusz - Lenti Vol\u00e1nbusz - Mosonmagyar\u00f3v\u00e1r Vol\u00e1nbusz - Nagykanizsa Vol\u00e1nbusz - P\u00e1pa Vol\u00e1nbusz - Sopron Vol\u00e1nbusz - V\u00e1rpalota Vol\u00e1nbusz - Zalaegerszeg Vol\u00e1nbusz - Szolnok Vol\u00e1nbusz - Eger Vol\u00e1nbusz - Salg\u00f3tarj\u00e1n Vol\u00e1nbusz - J\u00e1szber\u00e9ny Vol\u00e1nbusz - Gy\u00f6ngy\u00f6s Vol\u00e1nbusz - Balassagyarmat Vol\u00e1nbusz - Karcag Vol\u00e1nbusz - Tiszaf\u00fcred Vol\u00e1nbusz - Mez\u0151t\u00far Vol\u00e1nbusz - \u00dajsz\u00e1sz Vol\u00e1nbusz - B\u00e1tonyterenye Vol\u00e1nbusz - Duna\u00fajv\u00e1ros Vol\u00e1nbusz - Esztergom Vol\u00e1nbusz - Kom\u00e1rom Vol\u00e1nbusz - Oroszl\u00e1ny Vol\u00e1nbusz - Sz\u00e9kesfeh\u00e9rv\u00e1r Vol\u00e1nbusz - Tata Vol\u00e1nbusz Filename: hu_bkk.gtfs.zip Copyright holders BKK M\u00c1V-H\u00c9V Filename: sk_zssk.gtfs.zip Copyright holders \u017delezni\u010dn\u00e1 spolo\u010dnos\u0165 Slovensko, a.s. Filename: ie_transit-for-ireland.gtfs.zip Copyright holders Citylink Nitelink, Dublin Bus Go-Ahead Ireland Bus \u00c9ireann Waterford Bernard Kavanagh & Sons Luas Iarnr\u00f3d \u00c9ireann / Irish Rail Bus \u00c1tha Cliath \u2013 Dublin Bus Bus \u00c9ireann Go-Ahead Ireland Aircoach Catherine Madigan Corduff Travel Express Bus Farragher International Travel Services Finnegan-Bray Ltd Halpenny Transport J.J Kavanagh & Sons Joseph Foley Kearns Transport Mangan Tours Mcgeehan Coaches Mcgrath Coaches Michael Gray Coach Hire PJ Martley Slieve Bloom Coach Tours Swords Express Tralee People's Bus Service M4 Direct Healy Bus Mcgonagle Bus and Coach Hire Barrys Coaches Bus4u Dunnes Coaches K. Buggy Coaches Llimited Harrington's Ardgroom Matthew Whelan Mini Bus Hire Kelly Travel Westlink Coaches Patrick Gallagher Travel St.Kevin's Bus Service Andrew Wharton West Cork Connect Gleneagle Hotel (Killarney) Ltd Keelings Retail Uc Balbriggan Express Flagline Coaches Roscommon Coaches Flight Link Limited Dublin Express Burkesbus Collins Coaches Dublin Coach Bus Feda Teoranta TFI Local Link Mayo TFI Local Link Kerry TFI Local Link Cork TFI Local Link Galway TFI Local Link Longford Westmeath Roscommon TFI Local Link Cavan Monaghan TFI Local Link Tipperary TFI Local Link Waterford TFI Local Link Wexford TFI Local Link Louth Meath Fingal TFI Local Link Carlow Kilkenny Wicklow TFI Local Link Laois Offaly TFI Local Link Limerick Clare TFI Local Link Donegal Sligo Leitrim Kilbride Coaches Doherty's Coach Travel Wexford Bus Matthews Coach Hire Mc Ginley Coach Travel Treacy Coaches JJ/Bernard Kavanagh Ashbourne Connect Martin Leydon Coaches Gorey Bus Links Mcconnon Travel Joe Moroney Coach Hire Ltd Fair Isle Gorey Coach & Bus Co. Ltd. Ardcavan Coach Tours Kennedy Coaches Callinan Coaches Michael Moran Piltown Coaches Slevins Coaches Streamline Coaches Barrett Travel Hillview Transport Ltd Eamon Mcentee Shannon Hopper Michael O'Reilly Seamus O'Reilly Royal Breffni Tours Ltd TU Dublin Blancahrdstown Patrick Keenan Eugene Deffely Go-Ahead Ireland Hallahans Bus and Coach Hire Island Ferries Teoranta TFI Local Link Kildare South Dublin Francis Finegan Coach Hire Walsh's Executive Travel Nolan Coaches Allen's Bus Hire Mccaffrey Coaches Limited MCD Minibus Hire Filename: no_Entur.gtfs.zip Copyright holders Agder Kollektivtrafikk AS AtB \u00c5lesund Turvogn Service Avinor Beffen Boreal Askeladden Reiser Forsvarsbygg Oscarsborgfergen Brakar Bussring Best Arctic Snelandia Vy FlixBus Flytoget Vy GlobeOrbit100 Go-Ahead Norge AS Go Fjords Havila H\u00f8gsfjordferja Hurtigruten Hyke F\u00e6mund II Gjendeb\u00e5ten AS Innlandstrafikk Rondejenta Skibladner Norled AS Fjord1 ASA Kolumbus AMBU Pendlerrute The Fjords FRAM Sundb\u00e5ten Flybussen Connect Norsk Industriarbeidermuseum Nordland fylkeskommune Vy NOR-WAY Bussekspress Bygd\u00f8yfergen MF \u00d8isang Oscarsborgfergen \u00d8stfold kollektivtrafikk Ruter SJ Nord SJ Skyss Skyss Norled Lustrabaatane Tide Buss AS Stadbussen Telemarkskanalen Farte Tide AS Troms fylkestrafikk Torghatten Ulriken Unibuss Bast\u00f8 Fosen VKT Vy Travel Vy T\u00e5g Vy Vy Buss Filename: de_DELFI.gtfs.zip Copyright holders Bus Faller Bus Hassis Bus NVW (Walz) Verkehrsgesellschaft Vorpommern-R\u00fcgen GVB Verkehrs- und Betriebsgesellschaft Gera mbH Verkehrsunternehmen Andreas Schr\u00f6der Salza Tours RVG Regionalverkehr Gera RB-Gesellschaft UHK mbH Jenaer Nahverkehr GmbH JES Verkehrsgesellschaft mbH Personenverkehrsgesellschaft mbH Weimarer Land Stadtwirtschaft Weimar GmbH Th\u00fcringerwaldbahn und Stra\u00dfenbahn Gotha GmbH Ilmenauer Omnibusverkehr Kombus MBB GmbH G. Ilchmann SNG Suhl VWG S\u00f6mmerda Weingart Werrabus Becker, Martin Omnibus Friedrich FS Omnibus GmbH & Co. KG Omnibusbetrieb Lust Rheiner Verkehrsbetrieb Mersch GmbH B\u00f6rdeBus Verkehrsgesellschaft mbH PVG Burgenlandkreis Dessauer Verkehrsgesellschaft Dessauer Verkehrs- und Eisenbahngesellschaft Harzer Verkehrsbetriebe Traditionsverein Kleinbahn des Kreises Jerichow I e.V. NSB Naumburger Stra\u00dfenbahn Parkeisenbahn Vatterode PVGS Altmarkkreis Salzwedel S-Bahn Hamburg Nahreisezug vogtlandbahn - Die L\u00e4nderbahn GmbH DLB WESTbahn SNCF Voyages Deutschland DB Regio AG Nordost DB Regio AG Nord DB Regio AG NRW DB Regio AG S\u00fcdost DB RegioNetz Verkehrs GmbH Erzgebirgsbahn DB RegioNetz Verkehrs GmbH Oberweisbacher Berg+Schwarzatalb DB Regio AG Mitte Region Hessen DB RegioNetz Verkehrs GmbH Kurhessenbahn DB RegioNetz Verkehrs GmbH Westfrankenbahn DB Regio AG Baden-W\u00fcrttemberg DB ZugBus Regionalverkehr Alb-Bodensee S\u00dcWEX DB Regio AG Bayern DB RegioNetz Verkehrs GmbH G\u00e4ubodenbahn DB RegioNetz Verkehrs GmbH S\u00fcdostbayernbahn DB Regio AG Mitte Region S\u00fcdwest Sylt Shuttle Plus DB/SBB/TI Eurocity Milano Nederlandse Spoorwegen THURBO Regionale Verkehrsbetriebe Schaffhausen SBB SBB GmbH S\u00fcdbadenbus Arriva Danmark AKN Eisenbahn AG Rhenus Veniro Albtal-Verkehrs-Gesellschaft alex - Die L\u00e4nderbahn GmbH DLB agilis Dessau-W\u00f6rlitzer Eisenbahn ABELLIO Rail NRW GmbH Brohltalbahn SDG S\u00e4chsische Dampfeisenbahngesellschaft mbH Bentheimer Eisenbahn Kandertalbahn Chiemgauer Lokalbahn City-Bahn Chemnitz Mitteldeutsche Regiobahn Rurtalbahn EVB ELBE-WESER GmbH Kasbachtalbahn Freiberger Eisenbahngesellschaft Erfurter Bahn Express Bodensee-Oberschwaben-Bahn Nebenbahn Gaildorf-Untergr\u00f6ningen Hohenzollerische Landesbahn AG Ilztalbahn Stadtbahn Karlsruhe SEV K\u00f6ln-D\u00fcsseldorfer Deutsche Rheinschifffahrt AG Berchtesgadener Land Bahn trilex-express - Die L\u00e4nderbahn GmbH DLB trilex - Die L\u00e4nderbahn GmbH DLB Museumsbahn REGIOBAHN Meridian Mainschleifenbahn Mecklenburgische B\u00e4derbahn Molli Norddeutsche Eisenbahn Gesellschaft cantus Verkehrsgesellschaft Breisgau-S-Bahn GmbH BayernBahn Betriebs-GmbH NEB Niederbarnimer Eisenbahn National Express Nachtzug MSM Partyzug DB Fernverkehr (Codesharing) Nordbahn Eisenbahngesellschaft \u00d6chsle-Bahn-Betriebsgesellschaft mbH1 oberpfalz-express - Die L\u00e4nderbahn GmbH DLB oberpfalzbahn - Die L\u00e4nderbahn GmbH DLB S\u00e4chsisch-Oberlausitzer Eisenbahngesellschaft Hanseatische Eisenbahn GmbH enno metronom VIAS GmbH VIAS Rail GmbH AUTOZUG Sylt Pressnitztalbahn S\u00fcdwestdeutsche Verkehrs-AG agilis-Schnellzug S\u00fcd-Th\u00fcringen-Bahn Express S\u00fcd-Th\u00fcringen-Bahn MittelrheinBahn (Trans Regio) Ulmer Eisenbahnfreunde Usedomer B\u00e4derbahn1 vlexx vlexx1 vlexx2 Nebenbahn Vaihingen-Enzweihingen Wanderbahn im Regental Wyker Dampfschiffs-Reederei F\u00f6hr-Amrum GmbH Daadetalbahn Wutachtalbahn waldbahn - Die L\u00e4nderbahn GmbH DLB Kreisbahn Mansfelder Land erixx Adler-Schiffe Bayerische Regiobahn Bayerische Zugspitzbahn Rh\u00f6n-Z\u00fcgle Hochbahn U-Bahn Hochbahn Bus Neu KVG EVB-Ma AKMasten HADAG-Z VKP VHH Bus DivVgl/Waldorf1 Stadtverkehr Lindau ASEAG Netliner ABELLIO Rail NRW GmbH1 Hessische Landesbahn GmbH Eurobahn Friedrich M\u00fcller Omnibus GmbH BahnTouristikExpress Kein Bereich M\u00fcller (FMO) Erfurter Verkehrsbetriebe AG VVB V\u00f6lklinger Verkehrsbetriebe GmbH Seilbahnen Thale Stadtverkehr Aschaffenburg Bus9 Strasse Kahlgrund VG BUS SWL POB Vnetz Hauptlinien POB Vnetz Sch\u00fclerverkehr Abellio Rail Mitteldeutschland GmbH VSH1 ARGE HRS Omnibus OHG Bruns Reisen GmbH Varel Aktiv Bus Flensburg GmbH Autokraft Kiel GmbH AllerBus BREMERHAVEN BUS Bittner/Emsland-Mitte BUSPUNKT GmbH Br\u00fcnemeyer Reisen & Transporte GmbH Bruns Reisen GmbH Bad Zwischenahn Bremer Stra\u00dfenbahn AG Braunschweiger Verkehrs-GmbH CeBus GmbH & Co. KG Delbus GmbH & Co. KG Delmenhorst-Harpstedter Eisenbahn GmbH DB Regio Bus Nord GmbH Hermann Edzards Omnibusbetrieb Lkr. Emsland Fischer Linienverkehre GmbH & Co. KG Gerdes Reisen W. Giese Nachf. Omnibusbetrieb GmbH G\u00f6ttinger Verkehrsbetriebe (G\u00f6VB) Stadtbus Goslar GmbH Kraftverkehrsgesellschaft Hameln mbH Jacobs Reisedienst SBV Jan\u00dfen GmbH & Co. KG Kreisbahn Aurich GmbH KVG Stade GmbH & Co. KG L\u00fcchow-Schmarsauer Eisenbahn Meyering Verkehrsgesellschaft mbH Stadtbusgesellschaft Nienburg/Weser mbH Verkehrsgemeinschaft Grafschaft Bentheim Tjaden Nahverkehrs GmbH RegioBus Hannover GmbH Autobus Stoss GmbH Stadtverkehr Eckernf\u00f6rde Schaumburger Verkehrs-Gesellschaft mbH Stadtwerke L\u00fcbeck Mobil GmbH Stadtwerke Emden GmbH SWN Stadtwerke Neum\u00fcnster GmbH Sylter Verkehrsgesellschaft Kraftverkehrsgesellschaft mbH Braunschweig Transdev Nord GmbH \u00fcstra Hannoversche Verkehrsbetriebe AG Reisedienst Hinrich Uffen Verkehrsbetriebe Bachstein Verkehrsbetriebe Wesermarsch GmbH Verkehrsgemeinschaft Emsland-S\u00fcd Verkehrsbetriebe Grafschaft Hoya GmbH Peiner Verkehrsgesellschaft mbH Landkreis Wolfenb\u00fcttel Verkehrsbetriebe Kreis Pl\u00f6n GmbH Verkehrsgesellschaft Landkreis Gifhorn mbH Verkehrsbetriebe Oldenburger Land Schrage Reisen Stadtwerke Osnabr\u00fcck AG - Verkehrsbetriebe Verkehrsbetriebe Schleswig-Flensburg GmbH Verkehr und Wasser GmbH (VWG) Stadtwerke Verkehrsbetriebe Wilhelmshaven GmbH Ert Wissmann Omnibusbetrieb GmbH Wolfsburger Verkehrs-GmbH Weser-Ems-Bus Anrufverkehre Regionalbus Braunschweig GmbH J\u00f6rg Stadtbus Schweinfurt PVU 8000er-Linien Astel SV-Zgorzelec Bus Stadtwerke Baden-Baden KVIPVH F\u00e4hren Wettin-L\u00f6bej\u00fcn DB Regio AG S-Bahn Rhein-Main nahbus1 Rheinbahn MetroBus Heidekreis RVHI Regionalverkehr Hildesheim GmbH SVHI Stadtverkehr Hildesheim GmbH Willy Hummert Omnibusverkehr GmbH Wyker Dampfschifs-Reederei1 rebus SSB-Bus (nicht VVS) Stadtwerke M\u00fchlheim1 Stadtwerke Rodgau1 Regionalverkehre Start Deutschland GmbH Regionalverkehre Start Deutschland GmbH D\u00e4nische Staatsbahnen HZPP MAV PKP Intercity SNCB SNCF Trenitalia ZSSK Ceske Drahy NordWestBahn Gemeinde Ringgau DB Fernverkehr AG Regionalverkehre Start Unterelbe mbH SWU \u00dcberlingen ELKO Ehard VGN Kraus Reisen Bus10 MKB-M\u00fchlenkreisBus GmbH Omnibus-Nahverkehrs-Service Landkreis Heilbronn Landkreis T\u00fcbingen Anrufsammeltaxi1 SV Hohenstein-Ernstthal Bus Kraichtal Bus GbR Sonstige Unternehmen Bus11 Festbus Laupheim Kieler Verkehrsgesellschaft mbH Kr\u00fcmberg Reisen GmbH Schlepp- und F\u00e4hrgesellschaft Kiel mbh (SFK) DB Regio Mitte ABELLIO Rail Baden-W\u00fcrttemberg GmbH Go-Ahead Verkehrsgesellschaft Deutschland mbH HarzBus GbR die linie ARRIVA_NML ARRIVA_ZL Aachener Stra\u00dfenbahn und Energieversorgungs-AG WestVerkehr GmbH Hartmann Scherer Reisen Omnibus Gesellschaft mbH Komm mit AB____ ABELLIO Rail Baden-W\u00fcrttemberg GmbH Schw\u00e4bische Alb-Bahn Verkehrsgemeinschaft Landkreis Gotha GbR Rohde Verkehrsbetriebe NF Mitte F\u00e4hre Wei\u00dfe Flotte F\u00e4hre Antaris Meier Stadtwerke Dachau, Dachau1 Lollsfahrten Dortmunder Stadtwerke Taxibus Leibfritz Busreisen Andreesen Morten GmbH & Co. KG Vineta Autobus GmbH Auro Schneider Hock Grasmann neu UBB-Bus1 Gebken Reisen GmbH Hutfilters Reisedienst GmbH & Co. Omnibusbetrieb Nienaber Externe Leistungen Buchsatz Sch\u00fclerlinien CVAG SV KO Oberwiesenthal Bus Regensburger Verkehrsbetrieb1 Sch\u00fclerlinien Region Zwickau Stadtverkehr Pfaffenhofen (Ilm) Delmenhorst-Harpstedter Eisenbahnhfreunde e.V Westliche W\u00e4lder 01 Wirtschaftsbetrieb Bad Hersfeld B\u00fcndel_1_4_6 TRI Train Rental GmbH LB 1 Vogel VGN 204 - VGN 248 ARGE Nahverkehrsgesellschaft Merzig-Wadern Verkehrsgesellschaft Landkreis Osnabr\u00fcck Verkehrsunternehmen Wartburgmobil VUW gkA\u00f6R Bayer Tempus mobil Waibel Bus Verkehrsgemeinschaft Vechta Stadtbus Kronberg im Taunus1 Linienb\u00fcndel 5 (Abteiland) S-Bahn Omnibus Gr\u00f6tzinger GmbH Heidenheimer Verkehrsgesellschaft1 Eisenbahnen und Verkehrsbetriebe Elbe-Weser GmbH Reisedienst von Rahden GmbH & Co. KG Weserf\u00e4hre GmbH Tschechische Republik (Sonstige) WestfalenBahn Omnibus Verkehrs Gesellschaft mbH Sonneberg/Th\u00fcr. RBA Dillingen Unbekannt Reiseb\u00fcro Winkelmann GmbH W\u00fcrzburger Stra\u00dfenbahn Personen- und Reiseverkehrs GmbH Greiz LWW Bustouristik GmbH Rurtalbus GmbH \u00d6sterreichische Bundesbahnen Linienverkehr Weissenburg Linienverkehr1 DB Regio AG Mitte cantus Verkehrsgesellschaft Erfurter Verkehrsbetriebe AG Nordh\u00e4user Verkehrsbetriebe GmbH Ostalbkreis ARGE SFB Fr\u00f6lich Linie Stadt Pohlheim D\u00fcrk-Reisen Bus (SSB) Expressbus Relex1 Alb-Donau-Kreis1 Andre-Touristk Vetter Verkehrsbetriebe Bus12 Neustadt an der Aisch Rh\u00f6n-Grabfeld Bus (Stadtverkehr) Bus (Region) Nachtbus Regionalverkehr Oberbayer (\u00fcberregional) DB ZugBus (RAB) Bereich Bus Miltenberg-Elsavatal Autokraft Kiel GmbH Anrufverkehre DB Region Nord Anrufverkehre ESTW LB2 Vogel VGN 202-202-246 Schienenersatzverkehre Reiseb\u00fcro Beckermann Weserf\u00e4hre Bremen Rheinf\u00e4hre Maul GmbH Odenwald-Regional-Ges. Busverkehr Wissm\u00fcller Schnappinger Stadtbus Bad Wildungen Bus13 Stadtbus Kulmbach Weser-Ems-Bus Auftragnehmerleistung von Wilmering Weser-Ems-Bus Betrieb Bremen Weser-Ems-Bus Betrieb Ostfriesland Weser-Ems-Bus Betrieb Osnabr\u00fcck RAB-Bus (Z\u00d6A-LB-NW) Hal \u00f6ver Go-Ahead Baden-W\u00fcrttemberg GmbH G\u00f6rlitzer Verkehrsbetriebe VGN Stadtbus Konstanz Landkreis Konstanz Stadtbus Singen (Htw) Freizeitverkehr U-Bahn N\u00fcrnberg Tram N\u00fcrnberg Stadtverkehr F\u00fcrth Schmetterling Reisen Erlanger Stadtverkehr Hetzler & Pfadt vorher Viabus Regional Bus Stuttgart Westpfalz HzL-Zug Ebenbeck Frey M\u00fcckenhausen Pellkofer Reicheneder Speckner Stadtwerke Dingolfing Stadtwerke Landau H\u00fclsmann Reisen Stadtbus Weiden \u00dcberlandverkehr Wagenh\u00e4user VGS KVIP-AST Ratzeburg-M\u00f6llner Verkehrsbetriebe GmbH \u00dcberlandlinien Schwandorf sonstige Linien Personenverkehrsgesellschaft Altmarkkreis Salzwedel mbH TGO-EFA Datenversorgung SWG-EFA Datenversorgung S-Bahn Hannover Go-Ahead Bayern GmbH FlixBus-de FlixTrain-de Bus Engel Fahrplan 2022 F\u00fcrth Fahrplan 2022 AST/Rufbus Kreativ Tours GmbH Stroh Bus-Verkehrs GmbH, Offenbach Georg Becker GmbH & Co. KG Schau in's Land Hain GmbH Reise Fischer GmbH Staab Wendelsteinbahn Bayerische Seen-Schifffahrt1 Chiemsee-Schiffahrt Ludwig Fe\u00dfler Dillschnitter GmbH und Co. KG Zickenheiner GmbH Bus7 Omnibusverkehr Gloss Zarth GmbH1 Kreis Euskirchen Verkehrsunternehmen Regionalverband Gro\u00dfraum Braunschweig DB Regio Bus Mitte1 BKR Mobility Kalmer Reisen GmbH Stadtverkehr Herzogenaurach Grand Est Bad Salzdetzfurth Ilmebahn GmbH Scheithauer & Weihrauch GbR Verkehrsgesellschaft S\u00fcdniedersachsen mbH Weihrauch Uhlendorff GmbH Gemeinde Ebhausen Regiobus Uhlendorff GmbH & Co. KG Scheithauer Reisen H\u00f6rmooslinie Regionalbus Zweibr\u00fccken CityBus Mobil GmbH VerkehrsService GmbH Gro\u00df-Gerau Verkehrsbetriebe des Landkreises Leer GmbH Flexible Bedienformen ADK DB Regio Bus Ost GmbH1 BKW Bad Wildungen Bamberg Cargo Logistik Rail Service Bus14 SWEG Bahn Stuttgart RheinRuhrBahn Regionalverkehre Start Deutschland GmbH Omnibus Verkehr Oberlausitz Firma Schieck Verkehr Hainich OHG Verkehr Werraland OHG Verkehr Werra OHG Rohde Verkehrsbetriebe Ostholstein Nord Start Deutschland GmbH SEV Start Deutschland GmbH Mainzer Mobilit\u00e4t Friedrich M\u00fcller Omnibus im KVSH VGH-Verkehrsgesellschaft Hoyerswerda Arendt Busbetrieb GmbH Regionale \u00f6. Bahn der Stadt Pfullendorf 02 04 Rathje Autobus Stoss GmbH1 Bus15 Vonau Reisedienst GmbH & Co. KG Ebenbeck1 Wertach 01 (ab j24) Stauden 02 (ab j24) Sieghart Hahne Reisen e.K Omnibusunternehmen Paul Kn\u00fchl e.K. Lippe1 Lippe2 Lippe3 Lippe4 Lippe5 Bad Salzuflen Lemgo Detmold VGL-AST/ALF GBN-moBiel-Stadtbahn Bielefeld Diverse GBN-AST/ALF L\u00fcbbecke A Buende B Minden C L\u00f6hne/Oey D Herford E Vlotho F MHS-AST/ALF GTS\u00fcdwest GTNord GTS\u00fcdost GTStadt GTNordwest NVG-AST/ALF bkr-mobility & DB Regio Bus Mitte bkr-mobility & DB Regio Bus Mitte & Sche ExpressBus1 NachtTram1 NachtBus SEV Tram Koenigsbrunn Stadtbus zz_TaxiXXL Hofmann Omnibusverkehr Lokale Nahverkehrsgesellschaft Fulda mbH Regionalverkehr Westsachsen GmbH Stadtverkehr Friedrichshafen Mittelhaardt Nahverkehrsgesellschaft mbH Vorderpfalz Nahverkehrsbetriebe Birkenfeld OstalbMobil VRE24 Bus Region 1000er Linien Linienverkehr2 zz_TZT\u00fcb SEV Nacht Rhein-Sieg-Verkehrsgesellschaft mbH Griesar Reisen GmbH Hoffmann-Reisen Bischoff-Touristik GmbH & Co. KG bkr-mobility & Scherer Reisen bkr mobility F\u00e4hrgemeinschaft Kaub DB Regio Bus Mitte GmbH1 Bustouristik Marenbach GmbH & Co. KG Meso and more GmbH Modigell & Scherer GmbH Omnibusbetrieb Orthen GmbH Rheinf\u00e4hre Linz-Kripp GmbH Koblenzer Verkehrsbetriebe GmbH Verkehrsbetriebe Mittelrhein AWV Martin Becker GmbH & Co. KG DB Regio Bus Rhein-Mosel GmbH RMV Rhein-Mosel Verkehrsgesellschaft mbH FriBus Westerwaldbus des Kreises Altenkirchen G Jung Bus GmbH Verbandsgemeindeverwaltung Montabaur F\u00e4hre Boppard F\u00e4hre Loreley GmbH & Co. KG Stemmler Bus GmbH Mittelrheinischer Verkehrsbetrieb GmbH KVG Zickenheiner GmbH Verkehrsbetriebe Mittelrhein VREM Verkehrsbetrieb Rhein-Westerwald GmbH Wittelsbacher Land 03 (ab j21) Paartal 01 Zusam1 Wittelsbacher Land 01 Friedberg 011 Wittelsbacher Land 02 (ab j21) Bus Richard Eberhardt GmbH RBS AA + FMO SHA Rurseeschifffahrt Schienenersatzverkehr OMNIBUS STRASSENBAHN SONDERVERKEHRE Anrufsammeltaxi GVG 1 (B\u00fcndel Nr. 3) Schwabenbus 7 (B\u00fcndel Nr. 18) STVP BOGESTRA City-Express BOGESTRA Schnellbus BOGESTRA Stadtbahn, Linie U35 BOGESTRA Stra\u00dfenbahn BOGESTRA Bus Sonstige VU Buchmann B\u00fchler Ehrmann Grabherr Hagmann Hutter M\u00fcller Isny Reisch Schuler Strauss Volk Stra\u00dfenbahn Bahnen der Stadt Monheim M\u00fclheimer Verkehrsgesellschaft Busverkehr Rheinland Landkreis Cham Calw VPC Sch\u00fctzenbus Biberach Stadtwerke Biberach Klemens Diesch Diesch GmbH Gairing BC Reinalter BBS Schapfl Miller Probst Bottenschein Laupheim Fromm Kl\u00f6pfer Walk SWU Verkehr RAB NeUBus_RBA Gairing NU Weidachstein Oster Braunmiller SWU - SAM Dortmunder Stadtwerke U-Bahn Dortmunder Stadtwerke Bus Dortmunder Stadtwerke Hochbahn DVG Strab DVG Bus DVG Essener Verkehrs AG, Omnibus Essener Verkehrs AG, U-Bahn Essener Verkehrs AG, Stra\u00dfenbahn Private Omnibusunternehmer GmbH VAG - BUS VAG - Stadtbahn FREMD - Unternehmer Taxi HCR alles Hagener Stra\u00dfenbahn AG Bus Nachtverkehr Busverkehr Nordschwarzwald GmbH Bus AVG Bus RVS Bus W\u00f6hrle Bus VERA Bus SWEG Taxiverkehre Tram VBK Bus VBK SEV R+S (R-Bahn + S-Bahn) SEV T+B (Tram + Sonstige Busse) M\u00e4rkische Verkehrsgesellschaft MVG B\u00fcrgerbuspl\u00e4ne MVG Shuttelverkehr FH Iserlohn MVG ALF/AST Verkehr Nicht in MVV integriert MVV-Ruftaxi MVV-Regionalbus ExpressBus Stadtbus NIAG Beck + Schubert GmbH & CoKG Rheinbahn Stadtbahn Rheinbahn Strab Rheinbahn Bus Rheinbahn BusNE Rheinbahn SkyTrain SBG - BUS Stadtwerke Oberhausen St\u00e4dtische Werke Krefeld Strab St\u00e4dtische Werke Krefeld Bus Neusser Stadtwerke GmbH Bus Stadtwerke Remscheid Stadtwerke Solingen Verkehrsgesellschaft Ennepe-Ruhr mbH Vestische Stra\u00dfenbahnen GmbH Bus RVM Kreis Coesfeld RVM Kreis Warendorf Verkehrsgesellschaft Kreis Unna mbH RLG AST Westfalen Bus RVM Kreis Steinfurt Sch\u00e4pers Kreis ST Weilke Kreis ST Emsdettener Busreisen GmbH Euregio Verkehrsgesellschaft RVM Kreis Borken Kottenstedte GmbH StadtBus Rheine Gronemann GmbH RLG Hochsauerlandkreis RLG Kreis Soest NVV Busverkehr Ruhr-Sieg Stadtwerke M\u00fcnster Veelker GmbH & Co. KG Verkehrsbetriebe Hamm VGBreitenbach Verkehrsgemeinschaft Osnabr\u00fcck PVU-1000er-Linien Bus Region (Private VU) Bus BA BT PVU-Region SVZ Zwickau Strab SVZ Zwickau Bus RV RVW Bus SV CRM_GC_Bus SV Wendler Bus RV ASR Bus Stollberg Bus St\u00e4dteverkehr Gr\u00fcne Linie Bus SV Zschopau Bus SV Limbach-Oberfrohna Bus SV Chemnitz Strab SV Chemnitz Bus RV BVO Bus SV Annaberg-Buchholz Bus SV Aue Bus SV L\u00f6\u00dfnitz Bus SV Marienberg Bus SV Schwarzenberg Bus Bahnersatzverkehr Chemnitzer Modell Drahtseilbahn RV Mittweida Bus SV Burgst\u00e4dt Kleinfzg SV Frankenberg Bus SV Mittweida Bus SV Rochlitz Bus RV Freiberg Bus SV Fl\u00f6ha Bus SV Freiberg/Brand-Erbisdorf Bus RV D\u00f6beln SV D\u00f6beln VVV DB-Nahverkehr RBO-Bus KVG-Bus Autobusy Karlovy Vary BIELAWA CD Przewozy Regionalne Ostdeutsche Eisenbahn GmbH Koleje Dolnoslaskie Lassak-Reisen Trilex OBB-Beck S.Wilhelm-OBB Schmidt-Reisen Waldeisenbahn Muskau CSAD-Liberec MZK Boleslawiec PKS Boleslawiec PKS VOYAGER PKS Jelenia Gora MZK Jelenia G\u00f3ra Regionalbusse (privat) Anruf-Sammel-Taxi RNV LU-MA (Strab) RNV Heidelberg (Strab) RNV HD-MA-Weinheim (Strab) Rheinf\u00e4hre Altrip RNV Mannheim (Bus) RNV Ludwigshafen(Bus) RNV Heidelberg (Bus) S\u00fcdwestdeutsche-Verkehrs-AG Stadtwerke Bad D\u00fcrkheim Stadtwerke Eberbach Stadtwerke Lampertheim Stadtwerke Viernheim PalatinaBus GmbH Busverkehr-Rhein-Neckar Omnibusverkehr Rhein-Nahe GmbH Verkehrsgesellschaft Untermain Verkehrsgesellschaft Gersprenztal/Sauter Verkehrsbetriebe Leininger Land/Behles Reisedienst Walter M\u00fcller Biblis Berberich Walld\u00fcrn Verkehrsgemeinschaft Main-Tauber Queichtal Nahverkehrsgesellschaft Regionalbus-Westpfalz Sonstige Private im VRN Private nicht im VRN BASF Werkslinienverkehr Sonstige F\u00e4hrbetriebe Stadtverkehr Ingelheim ORN im RNN Stadtverkehr Bingen Stadtwerke Kaiserslautern Stadtwerke Pirmasens Stadtwerke Zweibr\u00fccken restliches \u00dcbergangstarifgebiet K\u00f6lner VB Stadtwerke Bonn RSVG OVAG Meckenheim Euskirchen Bergisch Gladbach Wermelskirchen REVG Stadtverkehr Euskirchen Stadtverkehr H\u00fcrth Stadtverkehr Br\u00fchl Sch\u00e4fer Reisen Stadtwerke Wesseling Stadtverkehr SHA R\u00f6hler Niederrheinwerke Viersen mobil GmbH NE-Zug (VVS) Stadtbahn Zahnrad-/Seilbahn Privatunternehmer-Bus (VVS) Nachtbus (SSB) Nachtbus (Region) Privatunternehmer-Bus (nicht VVS) Ruftaxi entlang Linie Ruftaxi nicht entlang Linie Linientaxi Museumsbahn (GES) Museumsstra\u00dfenbahn (SHB) Privatunternehmer-Bus (Enzkreis) BRS Busverkehr Ruhr-Sieg GmbH Verkehrsbetriebe Westfalen-S\u00fcd GmbH Schwebebahn Wuppertaler Stadtwerke Omnibusbetrieb Edith Meichsner GmbH Ingolst\u00e4dter Verkehrsgesellschaft mbH Landkreis Landshut Landkreis M\u00fchldorf (Inn) NEW mobil und aktiv M\u00f6nchengladbach GmbH J\u00e4gle Seitz Demmelmair Egenberger Osterrieder Schwarzer BBS Brandner (VMK) BBS Verkehrs Ges. (VMK) Klaus Brandner/Babenhausen (VMK) Bettighofer Dirr/Stricker Gruber Kirchweihtal Brandner Unterallg\u00e4u Angele-Braunmiller Stadtverkehr Bad W\u00f6rishofen Stadtverkehr Memmingen/Angele Berchtold Steber Reisen / Stadtverkehr Mindelheim Haslach Bus Stadtbus Kempten Baumeister Schattmeier Schweighart Schwabenbus RBA Ingolstadt RBA Kempten RBA Lindau NeuBus RBA Betrieb Augsburg RBA Neu Ulm Schwabenbus Dillingen Landkreis Rottal Regional-Busse RBS RVS Regensburger Verkehrsbetrieb Stadtverkehr Schwandorf (WiesBus) RegioBus NVH U-Bahn M\u00fcnchen Bus Stadtwerke Passau Stadtwerke Trier Moselbahn Saargau on Tour Rhein-Mosel Verkehrsgesellschaft mbH Linden Reisen Eifel-Mosel Verkehrsgesellschaft Robert M\u00fcller-Kylltal Jozi-Reisen Stadtverkehr T\u00fcbingen GmbH Kreisverkehrsbetrieb Sigmaringen Omnibus-Verkehr Ruoff GmbH Eissler-Reisen GmbH & Co.KG Zollern-Alb-Anrufbus SWEG (HzL) Bus RSV-GmbH Hogenm\u00fcller & Kull Co. Stadt Rottenburg am Neckar Edel Reisen Beck GmbH Gebr. Frankenhauser GbR Omnibus Gro\u00df GmbH HVB Wiest + Sch\u00fcrmann GmbH Fa. Willy Kopp Omnibusverkehr Omnibus Kurzenberger GmbH Wilhelm Lutz Omnibusverkehr GmbH Gebr. Maas GmbH & Co.KG Reisch GmbH Omnibusverkehr Sto\u00df GmbH Stadtwerke Bad Urach B\u00fcrgerbusverein e.V. Stadtwerke Sigmaringen Knoll Fahrtenservice Landkreis Tuttlingen Verkehrsbetrieb Greifswald Mecklenburg Vorpommersche VG Verkehrsgesellschaft Vorp.-Greifswald DVB-Stra\u00dfenbahn OVPS-Stadtbus Kirnitzschtalbahn Bus\u00fcbernahme OVPS DVB-Bus RVD-Busverkehr VGM-Busverkehr RBO-Busverkehr VGH Busverkehr Bergbahn F\u00e4hre Bus-RSAG Ruftaxi Schwerin Bus Omnibus NEB Betriebsgesellschaft mbH Verkehrsgesellschaft Teltow-Fl\u00e4ming mbH S-Bahn Berlin GmbH Verkehrsgesellschaft Oberspreewald-Lausitz mbH Oberhavel Verkehrsgesellschaft mbH Verkehrsbetriebe Brandenburg an der Havel GmbH G\u00fcnter Anger G\u00fcterverkehrs GmbH & Co. Omnibusvermietung KG Sch\u00f6neicher R\u00fcdersdorfer Stra\u00dfenbahn GmbH Uckerm\u00e4rkische Verkehrsgesellschaft Havelbus Verkehrsgesellschaft mbH Cottbusverkehr GmbH Busverkehr Oder-Spree GmbH Barnimer Busgesellschaft mbH Berliner Verkehrsbetriebe Stadtverkehrsgesellschaft mbH Frankfurt (Oder) Regionale Verkehrsgesellschaft Dahme-Spreewald mbH Strausberger Eisenbahn GmbH Verkehrsmanagement Elbe-Elster GmbH Busverkehr Gerd Schmidt ORP Ostprignitz-Ruppiner Personennahverkehrsgesellschaft mbH Verkehrsbetrieb Potsdam GmbH Gemeinde Seeheim-Jugendheim FahrPlan Verkehrsgesellschaft mbH Kreisverkehrsgesellschaft Main-Kinzig mbH Omnibus Sauter HLB Hessenbus Hofheim Stadtwerke Verkehrsgesellschaft Frankfurt HEAG Mobilo Stadtwerke Oberursel Omnibusbetrieb Heuser GmbH Becker und Bender Busverkehr GbR Stadtwerke R\u00fcsselsheim Erfurter Bahn Stadtwerke Gie\u00dfen Magistrat der Stadt Homburg v.d.H. HEAG mobiBus GmbH + Co. KG Stadt Friedrichsdorf Stadtwerke Marburg GmbH LNG Fulda Offenbacher Verkehrsbetriebe GmbH Omnibusbetrieb Winzenh\u00f6ler GmbH + Co. KG Transdev Rhein-Main ALV Vogelsberg Hanauer Stra\u00dfenbahn GmbH Verkehrsges. Gersprenztal Stadtwerke Langen GmbH Fa. Stadtwerke Bad Vilbel GmbH Fa. Jungermann VGO Gie\u00dfen ALV Marburg Stadtwerke Bad Nauheim VGF Fulda Urberacher Omnibusbetrieb Nassauische Verkehrsgesellschaft mbH Bogel Medenbach Traffic GmbH ALV Oberhessen Stadtwerke Dietzenbach Wetzlarer Verkehrsbetriebe und Reiseb\u00fcro GmbH Stadtwerke Neu-Isenburg Main-Taunus-Verkehrsgesellschaft mbH Karl Hasenauer GmbH & Co. KG In-der-City-Bus RDG Regionalverkehrsdienst Gr\u00fcndau E. Laubach e.K. Stadtverkehr Limburg Verkehrsgesellschaft Lahn-Dill-Weil mbH (LDK) Rh\u00f6nEnergie Bus GmbH Frieda Gass Arnold Engelhardt GmbH Regionalverkehr Main-Kinzig GmbH M\u00fcller Omnibusbetrieb VGO Alsfeld ESWE Verkehrsgesellschaft mbH Becker-Bus GmbH+Co.KG, Langen Erletz Verkehrsbetriebe Dreieich Kirchg\u00e4\u00dfner Reisen Verkehrsgesellschaft Gie\u00dfen mbH Stroh Busverkehr GmbH VGO Friedberg Stadtverkehr Maintal PNVG Merseburg-Querfurt Mansfelder Bergwerksbahn Nordsachsen Mobil Nahverkehrsgesellschaft Jerichower Land Magdeburger Wei\u00dfe Flotte KVG Salzland Leipziger Verkehrsbetriebe Harzer Schmalspurbahnen Halberst\u00e4dter Verkehrs-GmbH Vetter GmbH Stendalbus Omnibusbetrieb Saalekreis Verkehrsgesellschaft S\u00fcdharz TH\u00dcSAC Regionalbus Leipzig GmbH Bernburger Freizeit - Parkeisenbahn Krumbholz Magdeburger Verkehrsbetriebe Regiobus Mittelsachsen Hallesche Verkehrs-AG Saarbahn GmbH M\u00fcllenbach Reisen GmbH Saar-Mobil GmbH Baron Reisen GmbH Lay Reisen - on Tour GmbH KVS GmbH NVG Neunkircher Verkehrs GmbH Bayerische Oberlandbahn KVG Bus KVG Tram Omnibusbetrieb Sallwey GmbH Brundig Reisen EW Bus GmbH Rh\u00f6nEnergie Bus GmbH (NVV) Fr\u00f6lich Bus GmbH Schmetterling-Reisen Zulauf H. Sandrock GmbH&Co KG Reisedienst Bonte HLB Hessenbus Kassel Fr\u00f6lich Reisen GmbH Knieling Touristik Stadtwerke Witzenhausen K\u00e4berich Omnibusbetrieb WEFRA-Bus GbR Racktours GmbH + Co. KG Gemeinde Wettenberg Stadt Gr\u00fcnberg Energie Waldeck-Frankenberg BWV Bad Wildungen M\u00fcllerBusReisen HLB Bus GmbH mobus M\u00e4rkisch-Oderland Bus GmbH ARGE prignitzbus DB Regio Bus Mitte Padersprinter nph-Linienb\u00fcndel 01 nph-Linienb\u00fcndel 02 nph-Linienb\u00fcndel 03 nph-Linienb\u00fcndel 04 nph-Linienb\u00fcndel 05 nph-Linienb\u00fcndel 06 nph-Linienb\u00fcndel 07 nph-Linienb\u00fcndel 08 nph-Linienb\u00fcndel 09 nph-Linienb\u00fcndel 10 nph-Linienb\u00fcndel 11 nph-Linienb\u00fcndel 12 Martin Becker wupsi GmbH Stadtbus Pforzheim S\u00fcddeutsche Verkehrslinien Pfiffibus Bus1 Stadt-Bus-Verkehr Straubing Bus2 Bus3 Kraftverkehr B. Menchen GmbH & Co.KG Anklamer Verkehrsgesellschaft Neubrandenburger Verkehrsbetriebe NAHBUS GmbH Verkehrsgesellschaft Ludwigslust-Parchim Bergbahn Heidelberg Reisedienst Krauss & Wolff Reisen Bus4 AST1 Stadtbus Bad Orb Bus5 Nachtverkehr Ausstieg Bus6 Bus N\u00fcrnberg Regionalbuslinien RVV-VLC f\u00fcr EFA Citybus Regenstauf Bus8 Fritz Behrendt OHG2 Glaser2 Lange1 A. Reich GmbH Busbetrieb2 regiobus Potsdam Mittelmark GmbH Sabinchen Touristik GmbH2 ESE Verkehrsgesellschaft mbH Filename: ca-bc_BC-Ferries.gtfs.zip Copyright holders BC Ferries Filename: ca-bc_Black-Ball-Ferry-Line.gtfs.zip Copyright holders Black Ball Ferry Line Filename: ca-bc_Campbell-River-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Campbell-River-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Comox-Valley-Transit.gtfs.zip Copyright holders BC Transit - Comox Valley Transit System Filename: ca-bc_Comox-Valley-Transit.gtfs.zip Copyright holders BC Transit - Comox Valley Transit System Filename: ca-bc_Cowichan-Valley-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Cowichan-Valley-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Creston-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Creston-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Dawson-Creek-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Dawson-Creek-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_East-Kootenay-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_East-Kootenay-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Fort-St-John-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Fort-St-John-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Fraser-Valley-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Fraser-Valley-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Kamloops-Transit.gtfs.zip Copyright holders BC Transit - Kamloops Transit System Filename: ca-bc_Kamloops-Transit.gtfs.zip Copyright holders BC Transit - Kamloops Transit System Filename: ca-bc_Nanaimo-Transit.gtfs.zip Copyright holders BC Transit - RDN Transit System Filename: ca-bc_Nanaimo-Transit.gtfs.zip Copyright holders BC Transit - RDN Transit System Filename: ca-bc_North-Okanagan-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_North-Okanagan-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Port-Alberni-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Port-Alberni-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Powell-River-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Powell-River-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Prince-George-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Prince-George-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Prince-Rupert-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Prince-Rupert-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_South-Okanagan-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_South-Okanagan-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Squamish-Transit.gtfs.zip Copyright holders BC Transit - Squamish Transit System Filename: ca-bc_Squamish-Transit.gtfs.zip Copyright holders BC Transit - Squamish Transit System Filename: ca-bc_Sunshine-Coast-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Sunshine-Coast-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_TransLink.gtfs.zip Copyright holders TransLink Filename: ca-bc_TransLink.gtfs.zip Copyright holders TransLink Filename: ca-bc_Victoria-Transit.gtfs.zip Copyright holders BC Transit - Victoria Regional Transit System Filename: ca-bc_Victoria-Transit.gtfs.zip Copyright holders BC Transit - Victoria Regional Transit System Filename: ca-bc_West-Kootenay-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_West-Kootenay-Transit.gtfs.zip Copyright holders BCTransit Filename: ca-bc_Whistler-Transit.gtfs.zip Copyright holders BC Transit - Whistler Transit System Filename: ca-bc_Whistler-Transit.gtfs.zip Copyright holders BC Transit - Whistler Transit System Filename: lv_pv.gtfs.zip Copyright holders Pasa\u017eieru Vilciens Filename: lv_rigas-satiksme.gtfs.zip Copyright holders R\u012bgas satiksme Filename: lv_rigas-saraksti.gtfs.zip Copyright holders R\u012bgas satiksme Filename: lv_valsts-sia-autotransporta.gtfs.zip Copyright holders AS Nordeka Pasa\u017eieru vilciens AS SIA DOBELES AUTOBUSU PARKS AS R\u0113zeknes autobusu parks SIA Latvijas Sabiedriskais Autobuss SIA VTU Valmiera SIA GALSS BUSS SIA Balvu autotransports AS Liep\u0101jas autobusu parks Pa\u0161vald\u012bbas SIA Ventspils reiss SIA Ludzas autotransporta uz\u0146\u0113mums SIA NORMA-A AS CATA SIA Gulbenes autobuss SIA Daugavpils autobusu parks AS Talsu autotransports SIA Tukuma auto Filename: is_straeto.gtfs.zip Copyright holders Str\u00e6t\u00f3 BS Reykjanesb\u00e6r Akureyri Filename: fr_TGV.gtfs.zip Copyright holders SNCF VOYAGEURS Filename: fr_TGV.gtfs.zip Copyright holders SNCF VOYAGEURS Filename: fr_Intercites.gtfs.zip Copyright holders SNCF VOYAGEURS Filename: fr_Intercites.gtfs.zip Copyright holders SNCF VOYAGEURS Filename: fr_Transilien.gtfs.zip Copyright holders Transilien RER TER Filename: fr_TER.gtfs.zip Copyright holders SNCF VOYAGEURS Conseil R\u00e9gional Auvergne - Rh\u00f4ne-Alpes Filename: fr_TER.gtfs.zip Copyright holders SNCF VOYAGEURS Conseil R\u00e9gional Auvergne - Rh\u00f4ne-Alpes Filename: fr_Mobilites-M-bul.gtfs.zip Copyright holders OT Grenoble Filename: fr_Mobilites-M-fun.gtfs.zip Copyright holders OT ST-HILAIRE-DU-TOUVET Filename: fr_Mobilites-M-gsv.gtfs.zip Copyright holders Mobilit\u00e9s M - TouGo Filename: fr_Mobilites-M-mco.gtfs.zip Copyright holders Mobilit\u00e9s M - Covoit Lignes + Filename: fr_Mobilites-M-tpv.gtfs.zip Copyright holders Mobilit\u00e9s M - Transports du Pays Voironnais Filename: fr_Mobilites-M-tag.gtfs.zip Copyright holders Mobilit\u00e9s M - Tag Filename: fr_Paris.gtfs.zip Copyright holders Transilien Seine Grand Orly Vexin Vall\u00e9e de Montmorency Grand Melun Poissy - Les Mureaux Mantois Argenteuil - Boucles de Seine Meaux et Ourcq Brie et 2 Morin Val d'Yerres Val de Seine Essonne Sud Est Essonne Sud Ouest Paris Saclay V\u00e9lizy Vall\u00e9es Saint Germain Boucles de Seine Bi\u00e8vre Vall\u00e9e Grand Sud Paris Marne et Seine Saint-Quentin-en-Yvelines Terres d'Envol Pays Briard Roissy Ouest Roissy Est Pays de Montereau Fontainebleau - Moret Vall\u00e9e du Loing - Nemours C\u0153ur d\u2019Essonne Grand Versailles Provinois - Brie et Seine Lignes \u00cele-de-France Ouest Evry Centre Essonne Centre et Sud Yvelines Cergy-Pontoise Confluence Haut Val d'Oise ValBus Valoise Busval d'Oise Seine-Saint-Denis Noctilien Parisis Titus Apolo 7 Marne-la-Vall\u00e9e Chavilbus RER Seine et Marne Express S\u00e9nart Sit'bus Paris-Saclay Mobilit\u00e9s TER Cars Lacroix Cars Rose SAVAC ADP RATP Keolis Ouest Val-de-Marne RD Mantois Keolis Roissy Pays de France Ouest Mobicit\u00e9 Keolis Mobilit\u00e9 Roissy Magical Shuttle Autobus du Fort Autocars Dominique A\u00e9roport Paris-Beauvais / SAGEB Filename: fr_CTS.gtfs.zip Copyright holders CTS Filename: fi_digitraffic.gtfs.zip Copyright holders VR NRC Group Finland Oy Pohjois-Suomen Rautatieharrastajat ry Haapam\u00e4en museoveturiyhdistys ry Porvoon Museorautatie ry Fenniarail Oy North Rail Oy FoxRail Logistics Oy Sweco Finland Oy Prorata Oy Sinisten vaunujen yst\u00e4v\u00e4t ry GRK Rail Oy Filename: fi_203.gtfs.zip Copyright holders Tilausliikenne Ali-Vehmas Ay Lehdon Liikenne Oy Pekolan Liikenne Oy Vekka Group Oy L\u00e4nsilinjat Oy Valkeakosken Liikenne Oy Mikkolan Liikenne Oy Taksipalvelu Mutta Oy Filename: fi_207.gtfs.zip Copyright holders Linja-Karjala Oy Savo-Karjalan Linja Oy Savonlinja Oy L\u00e4nsilinjat Oy Filename: fi_209.gtfs.zip Copyright holders Matka M\u00e4kel\u00e4 Oy TILAUSAJOT MENN\u00c4\u00c4N BUSSILLA OY Jyv\u00e4skyl\u00e4n Liikenne Oy Koivuranta Oy Uuraisten Liikenne Ky L\u00e4nsilinjat Oy Pohjolan Matka (Pohjolan Turistiauto Oy) Filename: fi_211.gtfs.zip Copyright holders KYMEN CHARTERLINE OY Liikenne M. Heikura Oy Kainuun Tilausliikenne P. J\u00e4\u00e4skel\u00e4inen Ky Oulaisten Liikenne Oy Vekka Group Oy Tilausliikenne Kuvaja Oy Filename: fi_217.gtfs.zip Copyright holders Kotkan Seudun Liikenne / KYMEN CHARTERLINE Kotkan Seudun Liikenne / Jyrkil\u00e4 Oy Liikenne Vuorela Oy / Kotkan Seudun Liikenne Kotkan Seudun Liikenne / Oy Pohjolan liikenne Ab Filename: fi_219.gtfs.zip Copyright holders Tilaustaksit K. Syd\u00e4nmaanlakka Ky KYMEN CHARTERLINE OY Liikenne Sipari Oy Mattilan Liikenne Oy Matkatoimisto Matka-Majuri Ky Linjaliikenne Martti Laurila Oy Savonlinja Oy Elim\u00e4en Liikenne Oy Filename: fi_221.gtfs.zip Copyright holders Kymen Charterline Oy Mika K. Niskanen Oy Kuopion Tila-Auto Oy Kuopion Liikenne Oy Linja-autoliike E Ahonen Ky Oy Pohjolan liikenne Ab Savonlinja Oy Vihavaisen Taksi Oy Pohjolan Matka (Pohjolan Turistiauto Oy) Filename: fi_223.gtfs.zip Copyright holders Remoted Oy Koiviston Auto Oy Lehtim\u00e4en Liikenne Oy Tilausliikenne Kuisma Ky Filename: fi_225.gtfs.zip Copyright holders V-S Bussipalvelut Oy Kuljetus Mikkonen Oy Savonlinja Oy TOIMI VENTO KY Soisalon liikenne Oy Filename: fi_227.gtfs.zip Copyright holders Tilausliikenne Linjakas Oy Tilausliikenne Himanen Kantamatkat Hanskin Tilausliikenne Ihastj\u00e4rven Linja Oy Saimaan Turistiliikenne Oy Soisalon Liikenne Oy Tuplabus Filename: fi_229.gtfs.zip Copyright holders OSL / Revonturistiliikenne OSL / Oubus OSL / Koiviston Auto Oulu Oy ELY / Oulaisten Liikenne Oy OSL / Nobina Oy Filename: fi_231.gtfs.zip Copyright holders Porin Linjat Oy Filename: fi_232.gtfs.zip Copyright holders ELY Hangon liikenne, Friman&Co Linjaliikenne Kivist\u00f6 Oy OY AMPER&WIKSTR\u00d6M AB ROLLY UUSIMAA OY Salon Tilausmatkat Oy Filename: fi_237.gtfs.zip Copyright holders Koskilinjat Oy Filename: fi_239.gtfs.zip Copyright holders J. Vainion Liikenne Oy LS-Liikennelinjat Oy Filename: fi_249.gtfs.zip Copyright holders OY WIIK & STR\u00d6M AB Vekka liikenne Oy Filename: fi_hsl.gtfs.zip Copyright holders Helsingin seudun liikenne Filename: nl_ovapi.gtfs.zip Copyright holders allGo (Keolis) Arriva Blue Amigo Bravo (Arriva) Bravo (Hermes) Breng Connexxion De Lijn EBS GVB Hermes HTM Arriva Blauwnet Breng DB Eurobahn Eu Sleeper NMBS NS NS International R-net RRReis VIAS Keolis NIAG Overal (Connexxion) Qbuzz RET RRReis Syntus Utrecht TESO Texelhopper Transdev U-OV Westerschelde Ferry Filename: ca_Brandon-Transit.gtfs.zip Copyright holders Brandon Transit Filename: ca_Calgary-Transit.gtfs.zip Copyright holders Calgary Transit Filename: ca_Calgary-Transit.gtfs.zip Copyright holders Calgary Transit Filename: ca_Codiac-Transit.gtfs.zip Copyright holders Codiac Transpo Filename: ca_Cold-Lake-Transit.gtfs.zip Copyright holders Cold Lake Transit Filename: ca_Edmonton-Transit-Service.gtfs.zip Copyright holders Edmonton Transit Service St. Albert Transit Strathcona County Transit Spruce Grove Transit Fort Saskatchewan Transit Beaumont Transit Filename: ca_Edmonton-Transit-Service.gtfs.zip Copyright holders Edmonton Transit Service St. Albert Transit Strathcona County Transit Spruce Grove Transit Fort Saskatchewan Transit Beaumont Transit Filename: ca_Fredericton-Transit.gtfs.zip Copyright holders Fredericton Transit Filename: ca_Grande-Prairie-Transit.gtfs.zip Copyright holders cityofgp Filename: ca_Halifax-Transit.gtfs.zip Copyright holders Halifax Transit Filename: ca_Halifax-Transit.gtfs.zip Copyright holders Halifax Transit Filename: ca_Lethbridge-Transit.gtfs.zip Copyright holders Lethbridge Transit Filename: ca_Medicine-Hat-Transit.gtfs.zip Copyright holders Medicine Hat Transit Filename: ca_Medicine-Hat-Transit.gtfs.zip Copyright holders Medicine Hat Transit Filename: ca_Metrobus-Transit.gtfs.zip Copyright holders METROBUS Filename: ca_Prince-Albert-Transit.gtfs.zip Copyright holders Prince Albert Transit Filename: ca_Red-Deer-Transit.gtfs.zip Copyright holders Red Deer Transit Filename: ca_Regina-Transit.gtfs.zip Copyright holders The City of Regina Filename: ca_Roam-Transit.gtfs.zip Copyright holders Roam Transit Filename: ca_Saint-John-Transit.gtfs.zip Copyright holders Saint John Transit Filename: ca_Saskatoon-Transit.gtfs.zip Copyright holders Saskatoon Transit Filename: ca_Saskatoon-Transit.gtfs.zip Copyright holders Saskatoon Transit Filename: ca_T3-Transit.gtfs.zip Copyright holders T3 Transit Filename: ca_Viarail.gtfs.zip Copyright holders VIA Rail Filename: ca_Whitehorse-Transit.gtfs.zip Copyright holders Whitehorse Transit Filename: ca_Winnipeg-Transit.gtfs.zip Copyright holders Winnipeg Transit Filename: ca_Wood-Buffalo-Transit.gtfs.zip Copyright holders RMWB Filename: ca_Wood-Buffalo-Transit.gtfs.zip Copyright holders RMWB Filename: ca_Yellowknife-Transit.gtfs.zip Copyright holders Yellowknife Transit Filename: hk_Hong-Kong-Transit.gtfs.zip Copyright holders Citybus Discovery Bay Transit Services (Bus Services) Ferry Services Green Minibus Services Kowloon Motor Bus Kowloon Motor Bus|Citybus MTR Bus Long Win Bus Long Win Bus|Citybus New Lantao Bus Park Island Transport (Bus Services) Peak Tram HK Tramways Lok Ma Chau Crossing-boundary Coach Services Filename: it_Emilia-Romagna-TPER-Bologna.gtfs.zip Copyright holders TPER spa Filename: it_Emilia-Romagna-TPER-Ferrara.gtfs.zip Copyright holders TPER spa Filename: it_Emilia-Romagna-TPER-BLQ-Airport.gtfs.zip Copyright holders Marconi Express Filename: it_Lazio-Rome.gtfs.zip Copyright holders Atac Roma TPL Autoservizi Troiani Trenitalia Filename: it_Lombardia-ATM.gtfs.zip Copyright holders ATM Filename: it_Lombardia-Trenord.gtfs.zip Copyright holders Trenord Filename: it_Piemonte-Bus.gtfs.zip Copyright holders n.d. Azienda Multiservizi Casalese S.p.a. E Piu' Brevemente A.m.c. S.p.a A.t.a.p. - Azienda Trasporti Automobilistici Pubblici Delle Province Di Biella E Vercelli - S.p.a. Asti Servizi Pubblici S.p.a. Societa' Trasporti Novaresi - S.r.l. Sun S.p.a. Bus Company S.r.l. Navigazione Lago D'orta S.r.l. Coas Consorzio Astigiano Societa' Consortile Alessandrina Trasporti A Responsabilita' Limitata Extra.to S.c. A R.l. Comune Pareto Filename: it_Piemonte-Gruppo-Torinese-Trasporti.gtfs.zip Copyright holders GTT Servizio Extraurbano GTT Servizio Ferroviario GTT Servizi Turistici GTT Servizio Urbano Filename: it_Piemonte-Trenitalia.gtfs.zip Copyright holders TRENITALIA Filename: it_Sardegna-Contributate.gtfs.zip Copyright holders ASARA GIUSEPPE EREDI AUTOSERVIZI - LOCATARIO ATZENI AUTOLINEE BAIRE S.R.L. AUTOSERVIZI VACCA DI VACCA FABRIZIO & C. SNC BAIRE MARIO BALESTRUCCI SRL CARAMELLI TOURS S.N.C. COOPERATIVA ORISTANESE BUS 90 F.LLI DEPLANO S.N.C. DI GABRIELE DEPLANO E C AUTOLINEE DEPLANU GIUSEPPINO DIGITUR S.R.L. AUTOSERVIZI EUROSAR FARA VIAGGI SRL FATA EREDI ANGIUS SNC AUTONOLEGGIO FOLLESA DEI F.LLI PASQUALE E GIANNI FOLLESA SNC AUTOLINEE FRAU S.R.L. GARAU MAURO GIAGHEDDU ANTONIO AUTOLINEE DEL GOLFO SRL MASALA FRANCESCO ANGELO EREDI S.A.S. MELIS SERGIO MEREU AUTOLINEE AUTOLINEE ANTONIO MURGIA S.R.L. AUTOSERVIZI NORDORIENTALE S.A.S. DI BRUNDU COSIMO DAMIANO & C. A.S.P. DI PANI FRANCA DANIELA E CHRISTIAN SNC PISANU EREDI SNC SANNA ANTONIO SAUT S.R.L. AUTOSERVIZI E AUTOLINEE DI SENIS ENRICO & C. SNC SERRA GESUINO SEUNIS TOURS EREDI PIREDDA SALVATORICO S.A.S. AUTONOLEGGIO AUTOBUS SPINA SALVATORE E FIGLI S.N.C. DI SPINA FRANCESCO AUTOLINEE TREXENTA SNC TURMO LINES S.R.L. ANGLONA TOUR DI ZENTILE SALVATORE AUTOLINEE DEL GOLFO S.R.L. AUTOSERVIZI NUOVA SUN TRAVEL S.R.L. AUTOLINEE BAIRE S.R.L. F.LLI CAPPATO DI IVANA E PIER LORENZO S.N.C. CAREDDU MADDALO DEDONI SARDINIA DEDONI SARDINIA AUTOSERVIZI F.A.B. S.R.L. FARA VIAGGI S.R.L. LOGUDORO TOURS AUTOLINEE ANTONIO MURGIA S.R.L. PUDDU SANDRO AUTOLINEE DI PUDDU SANDRO SARDABUS DI ADDIS FRANCESCO SINA DI GIANFRANCO STEVELLI S.R.L. SUN LINES S.R.L. TOUR BUS S.N.C. DI CARIA GIACOMO TURMO TRAVEL S.R.L. TUVONI VACCA VIAGGI S.N.C. Filename: it_Sardegna-ARST.gtfs.zip Copyright holders ARST SpA - Trasporti Regionali Della Sardegna Filename: it_Sardegna-ASPO-Olbia.gtfs.zip Copyright holders ASPO SPA Filename: it_Sardegna-ATP-Nuoro.gtfs.zip Copyright holders ATP NUORO Filename: it_Sardegna-ATP-Sassari.gtfs.zip Copyright holders Atp Sassari Filename: it_Sardegna-CTM.gtfs.zip Copyright holders CTM Spa Filename: it_Sardegna-Ferries-Collegamenti-marittimi-Corsica.gtfs.zip Copyright holders GENOVA TRASPORTI MARITTIMI MOBY LINES Filename: it_Sardegna-Ferries-Collegamenti-isole-minori.gtfs.zip Copyright holders DELCOMAR ENSAMAR Filename: it_Sardegna-Ferries-Sardinia-Ferries.gtfs.zip Copyright holders Sardinia Ferries Filename: it_Sardegna-Ferries-Tirrenia.gtfs.zip Copyright holders Compagnia Italiana di Navigazione S.p.A Filename: it_Sardegna-Planes-Alghero-Airport.gtfs.zip Copyright holders BLUE AIR Helvetic Airways TRAVEL SERVICE POLSKA Gazpromavia TUIfly Nordic Travel Service Slovensko Air France AEROMEDICARE AirOne ITA AIRWAYS British Airways SkyAlps Luxwings Air Baltic Blue Panorama Airlines S.p.A. \u00c2 THOMSONFLY Corendon Dutch Airlines B.V. Norwegian Air CONDOR FIRST CHOICE AIRWAYS LTD EASYJET SWITZERLAND Danish Air Transport Norwegian Air DOMODEDOVO AIRLINES Enter air Easyjet Europe Ernest Airlines EGO Airways AIR DOLOMITI Eurowings RYANAIR AIR SLOVAKIA BWJ , LTD Bulgarian Air Charter Ltd HAT Luftfahrtgesellschaft Walter Transavia Airlines VUELING AIRLINES IBERIA AIRLINES Air Italy Arkia Israeli Airlines ADRIA AIRWAYS KLM Air Malta BELLE AIR EUROPE Luxair Deutsche Lufthansa LOT Polish Airlines LUXWING\u00c2 SWISS International Air Lines EL AL MYX NEOS Laudamotion (Ryanair) Austrian Airlines AG People's Viennaline SMARTWINGS Trast Aero SIBERIA AIRLINES SCANDINAVIAN AIRLINES Brussels Airlines GERMANIA FLUGESELLSCHAFT MBH SkyWork Airlines TUI Airlines Belgium Transavia France TAP Portugal EASYJET URAL AIRLINERS AIR EUROPA VOLOTEA VUELING AIRLINES Vueling Airlines Wizz Air Malta WIZZ AIR China Northwest Airlines Edelweiss Air Oman Air TUIfly GmbH CORENDON AIRLINES AeroItalia Air Nostrum MONARCH TITAN AIRWAYS Filename: it_Sardegna-Planes-Cagliari-Airport.gtfs.zip Copyright holders BA Euroflyer AEGEAN AIRLINES Air France AirOne ITA AIRWAYS SKY ALPS SRL EASYJET SWITZERLAND Enter air Easyjet Europe AIR DOLOMITI Eurowings RYANAIR IBERIA AIRLINES ATLASJET HAVACILIK KLM LEISURE INTERNATIONAL Luxair Deutsche Lufthansa Malta MedAir NESMA AIRLINES NEOS Austrian Airlines AG People's Viennaline SMARTWINGS Tailwind Airlines Transavia France EASYJET TUNISAIR EXPRESS VOLOTEA Universal Air Charter Vueling Airlines Edelweiss Air Filename: it_Sardegna-Planes-Olbia-Airport.gtfs.zip Copyright holders Travel Service Slovensko AEGEAN AIRLINES Air France AirOne AVANTI AIR ITA AIRWAYS British Airways SKY ALPS SRL Air Baltic THOMSONFLY TRADE AIR BA Cityflyer Norwegian Air CONDOR EASYJET SWITZERLAND Norwegian Air Enter air Easyjet Europe AER LINGUS AIR DOLOMITI Eurowings RYANAIR FlyDubai GETJET Bulgarian Air Charter Ltd AIR HORIZONT LTD Transavia Airlines IBERIA AIRLINES BELLE AIR EUROPE Luxair Deutsche Lufthansa LOT Polish Airlines JET TWO COM SWISS International Air Lines Malta MedAir AIR MEDITERRANEAN NEOS Austrian Airlines AG People's Viennaline SMARTWINGS SCANDINAVIAN AIRLINES Brussels Airlines Transavia France EASYJET VOLOTEA Vueling Airlines WIZZAIR MALTA WIZZ AIR Edelweiss Air Aeroitalia srl Filename: it_Sardegna-Trenitalia.gtfs.zip Copyright holders TRENITALIA Filename: it_Toscana-Trenitalia.gtfs.zip Copyright holders TRENITALIA S.p.A. Filename: it_Veneto-Venezia-Bus.gtfs.zip Copyright holders ACTVs.p.a Filename: it_Veneto-Venezia-Ferries.gtfs.zip Copyright holders ACTVs.p.a Filename: eu_flixbus.gtfs.zip Copyright holders FlixBus-eu FlixTrain-eu Greyhound-eu Filename: eu_blablacar-bus.gtfs.zip Copyright holders BlaBlaCar Bus Filename: si_nap.gtfs.zip Copyright holders Javno podjetje Ljubljanski potni\u0161ki promet d.o.o. Nomago d.o.o. Avtobusni promet Murska Sobota d.d. Arriva d.o.o. Prevozi Prijatelj d.o.o. Avtoprevozni\u0161tvo \u0160amu turs, Josip \u0160amu s.p. Avtobusni prevozi Novak bus d.o.o. Avtobusni prevozi Mrgole d.o.o. Avtobusni prevozi Kastigar Polikarp s.p. Avtoprevozni\u0161tvo Martin - Valentina Frelih s.p. MPOV d.o.o. Vinica Prevozi Rok Jakli\u010d s.p. Pohorje turizem d.o.o. S\u017d-\u017dIP d.o.o. Mirttours Peter Mirt s.p. Miroslav \u0160pik s.p. Avtobusni prevozi Lipi\u010dnik Anita s.p. Zgornji Zavratnik d.o.o. AP Novak d.o.o. S\u017d - Potni\u0161ki promet, d.o.o. O\u0161trman tours d.o.o. Filename: us-co_RTD.gtfs.zip Copyright holders Regional Transportation District Filename: us-co_RTD.gtfs.zip Copyright holders Regional Transportation District Filename: us-co_RTD-bustang.gtfs.zip Copyright holders Colorado Department of Transportation Filename: us-co_RTD-bustang.gtfs.zip Copyright holders Colorado Department of Transportation Filename: be_sncb.gtfs.zip Copyright holders NMBS/SNCB Filename: be_stib.gtfs.zip Copyright holders STIB Filename: be_delijn.gtfs.zip Copyright holders De Lijn Filename: be_dewaterbus.gtfs.zip Copyright holders DeWaterbus Filename: be_tec.gtfs.zip Copyright holders TEC Brabant Wallon TEC Charleroi TEC Hainaut TEC Li\u00e8ge - Verviers TEC Namur - Luxembourg Filename: lu_openov.gtfs.zip Copyright holders RGTR CFL_Bus Luxtram AVL CFL TICE Filename: at_oebb.gtfs.zip Copyright holders OEBB Personenverkehr AG Kundenservice City Air Terminal Betriebsgesellschaft m.b.H. Montafonerbahn AG Filename: ca-on_TTC.gtfs.zip Copyright holders TTC Filename: ca-on_Metrolinx-belleville.gtfs.zip Copyright holders Belleville Transit Filename: ca-on_Metrolinx-belleville.gtfs.zip Copyright holders Belleville Transit Filename: ca-on_Metrolinx-cornwall.gtfs.zip Copyright holders Cornwall Transit Filename: ca-on_Metrolinx-cornwall.gtfs.zip Copyright holders Cornwall Transit Filename: ca-on_Metrolinx-kawartha.gtfs.zip Copyright holders Lindsay Transit Filename: ca-on_Metrolinx-kawartha.gtfs.zip Copyright holders Lindsay Transit Filename: ca-on_Metrolinx-milton.gtfs.zip Copyright holders Milton Transit Filename: ca-on_Metrolinx-milton.gtfs.zip Copyright holders Milton Transit Filename: ca-on_Metrolinx-orangeville.gtfs.zip Copyright holders Orangeville Transit Filename: ca-on_Metrolinx-orangeville.gtfs.zip Copyright holders Orangeville Transit Filename: ca-on_Metrolinx-orillia.gtfs.zip Copyright holders Orillia Transit Filename: ca-on_Metrolinx-orillia.gtfs.zip Copyright holders Orillia Transit Filename: ca-on_Metrolinx-sarnia.gtfs.zip Copyright holders Sarnia Transit Filename: ca-on_Metrolinx-sarnia.gtfs.zip Copyright holders Sarnia Transit Filename: ca-on_Metrolinx-saultstemarie.gtfs.zip Copyright holders Sault Ste. Marie Transit Filename: ca-on_Metrolinx-saultstemarie.gtfs.zip Copyright holders Sault Ste. Marie Transit Filename: ca-on_Metrolinx-simcoe.gtfs.zip Copyright holders Simcoe County Linx Filename: ca-on_Metrolinx-simcoe.gtfs.zip Copyright holders Simcoe County Linx Filename: ca-on_Metrolinx-stratford.gtfs.zip Copyright holders Stratford Transit Filename: ca-on_Metrolinx-stratford.gtfs.zip Copyright holders Stratford Transit Filename: ca-on_Metrolinx-stthomas.gtfs.zip Copyright holders St. Thomas Transit Filename: ca-on_Metrolinx-stthomas.gtfs.zip Copyright holders St. Thomas Transit Filename: ca-on_Metrolinx-temiskaming.gtfs.zip Copyright holders Temiskaming Transit Filename: ca-on_Metrolinx-temiskaming.gtfs.zip Copyright holders Temiskaming Transit Filename: ca-on_Metrolinx-timmins.gtfs.zip Copyright holders Timmins Transit Filename: ca-on_Metrolinx-timmins.gtfs.zip Copyright holders Timmins Transit Filename: ee_ee.gtfs.zip Copyright holders Teadmata OV Ida-Bus O\u00dc OSA\u00dcHING FREMANTI NAJA O\u00dc Sirel Reisid O\u00dc PRESTO osa\u00fching Estonian Lines O\u00dc Atko Bussiliinid AS TS Laevad O\u00dc Ekspressbussiliinid osa\u00fching ABuss O\u00dc Saaremaa vald Alukvik O\u00dc MEELIS HEEK O\u00dc Baltic Shuttle Valgis osa\u00fching osa\u00fching Tulisilm Osa\u00fching Bristol Takso ATG Bussiliinid O\u00dc ATG Bussipark O\u00dc Flixbus Polska sp.o.o Taisto Express O\u00dc HANSABUSS AS Aktsiaselts MK Autobuss MK Reis O\u00dc Rannu Rukkilill E.S.T. O\u00dc SEBE Aktsiaselts Tallinna Linnatranspordi AS GoBus AS Norma-A SIA Arilix O\u00dc Aktsiaselts Hansa Bussiliinid AS Lux Express Estonia Kalle Bussid O\u00dc ELRON T\u00f5nu Tours O\u00dc Filename: es_renfe-hsldmd.gtfs.zip Copyright holders RENFE OPERADORA Filename: es_renfe-cercanias.gtfs.zip Copyright holders Renfe Cercanias Filename: es_vitrasa.gtfs.zip Copyright holders Viguesa de Transportes S.L. Filename: es_malaga-metro.gtfs.zip Copyright holders Metro de M\u00e1laga Filename: es_valencia-bus-emt.gtfs.zip Copyright holders EMT Valencia Filename: se_Trafiklab.gtfs.zip Copyright holders Visings\u00f6leden Ul S\u00f6rmlandstrafiken \u00d6stg\u00f6tatrafiken Jlt L\u00e4nstrafiken Kronoberg Klt Region Gotland Blekingetrafiken G\u00e4llivare Stadstrafik Hallandstrafiken V\u00e4rmlandstrafik Vl Dalatrafik X-trafik Din Tur Destination Gotland L\u00e4nstrafiken J\u00e4mtland L\u00e4nstrafiken V\u00e4sterbotten L\u00e4nstrafiken Norrbotten Sl Sk\u00e5netrafiken Flygbussarna V\u00e4sttrafik Ventrafiken Arlanda Express L\u00e4nstrafiken \u00d6rebro \u00d6resundst\u00e5g BT Buss M\u00e4lart\u00e5g Vy T\u00e5g V\u00e4rmlandstrafik Waxholmsbolaget Flixtrain T\u00e5g i Bergslagen Vy Bus4you Vy Express Skelleftebuss Y-buss Masexpressen Silverlinjen H\u00e4rjedalingen Sn\u00e4llt\u00e5get Nikkaluoktaexpressen Trafikverket F\u00e4rjerederiet Bergkvarabuss Vy Natt\u00e5g Norrt\u00e5g Falcks Omnibus Kr\u00f6sat\u00e5gen T\u00e5gab Karlstadsbuss Lule\u00e5 Lokaltrafik Trosabussen Haparanda lokaltrafik Pite\u00e5 Lokaltrafik Str\u00f6mma Boden Stadstrafik Kiruna Stadstrafik Stadsbussarna \u00d6stersund Kr\u00f6sat\u00e5gen Sj Vy SJ Nord Marstrandsf\u00e4rjan Mtrx Stavsn\u00e4s B\u00e5ttaxi V\u00e4stervik Express Kalix stadstrafik Flixbus Stockholms stad","title":"Feed-Licenses"},{"location":"licenses/#licenses-of-included-feeds","text":"","title":"Licenses of included feeds"},{"location":"licenses/#filename-au_translink-seqgtfszip","text":"","title":"Filename: au_Translink-SEQ.gtfs.zip"},{"location":"licenses/#copyright-holders","text":"Translink","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-seqgtfszip_1","text":"","title":"Filename: au_Translink-SEQ.gtfs.zip"},{"location":"licenses/#copyright-holders_1","text":"Translink","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-bowgtfszip","text":"","title":"Filename: au_Translink-BOW.gtfs.zip"},{"location":"licenses/#copyright-holders_2","text":"Bowen Transit","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-bowgtfszip_1","text":"","title":"Filename: au_Translink-BOW.gtfs.zip"},{"location":"licenses/#copyright-holders_3","text":"Bowen Transit","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-bungtfszip","text":"","title":"Filename: au_Translink-BUN.gtfs.zip"},{"location":"licenses/#copyright-holders_4","text":"Duffys & Stewarts","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-cnsgtfszip","text":"","title":"Filename: au_Translink-CNS.gtfs.zip"},{"location":"licenses/#copyright-holders_5","text":"Sunbus Cairns","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-cnsgtfszip_1","text":"","title":"Filename: au_Translink-CNS.gtfs.zip"},{"location":"licenses/#copyright-holders_6","text":"Sunbus Cairns","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-gltgtfszip","text":"","title":"Filename: au_Translink-GLT.gtfs.zip"},{"location":"licenses/#copyright-holders_7","text":"Buslink Gladstone","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-gymgtfszip","text":"","title":"Filename: au_Translink-GYM.gtfs.zip"},{"location":"licenses/#copyright-holders_8","text":"Polleys Coaches","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-inngtfszip","text":"","title":"Filename: au_Translink-INN.gtfs.zip"},{"location":"licenses/#copyright-holders_9","text":"Trans North Innisfail","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-inngtfszip_1","text":"","title":"Filename: au_Translink-INN.gtfs.zip"},{"location":"licenses/#copyright-holders_10","text":"Trans North Innisfail","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-kilgtfszip","text":"","title":"Filename: au_Translink-KIL.gtfs.zip"},{"location":"licenses/#copyright-holders_11","text":"Christensens Bus and Coach","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-mkygtfszip","text":"","title":"Filename: au_Translink-MKY.gtfs.zip"},{"location":"licenses/#copyright-holders_12","text":"Mackay Transit Coaches","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-maggtfszip","text":"","title":"Filename: au_Translink-MAG.gtfs.zip"},{"location":"licenses/#copyright-holders_13","text":"Translink","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-mifgtfszip","text":"","title":"Filename: au_Translink-MIF.gtfs.zip"},{"location":"licenses/#copyright-holders_14","text":"Translink","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-malgtfszip","text":"","title":"Filename: au_Translink-MAL.gtfs.zip"},{"location":"licenses/#copyright-holders_15","text":"Glass House Country Coaches","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-mhbgtfszip","text":"","title":"Filename: au_Translink-MHB.gtfs.zip"},{"location":"licenses/#copyright-holders_16","text":"Wide Bay Transit","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-mhbgtfszip_1","text":"","title":"Filename: au_Translink-MHB.gtfs.zip"},{"location":"licenses/#copyright-holders_17","text":"Wide Bay Transit","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-nsigtfszip","text":"","title":"Filename: au_Translink-NSI.gtfs.zip"},{"location":"licenses/#copyright-holders_18","text":"North Stradbroke Island Buses","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-nsigtfszip_1","text":"","title":"Filename: au_Translink-NSI.gtfs.zip"},{"location":"licenses/#copyright-holders_19","text":"North Stradbroke Island Buses","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-rkygtfszip","text":"","title":"Filename: au_Translink-RKY.gtfs.zip"},{"location":"licenses/#copyright-holders_20","text":"Translink","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-twbgtfszip","text":"","title":"Filename: au_Translink-TWB.gtfs.zip"},{"location":"licenses/#copyright-holders_21","text":"Bus Qld Toowoomba","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-wargtfszip","text":"","title":"Filename: au_Translink-WAR.gtfs.zip"},{"location":"licenses/#copyright-holders_22","text":"Haidleys Panoramic Coaches","title":"Copyright holders"},{"location":"licenses/#filename-au_translink-whtgtfszip","text":"","title":"Filename: au_Translink-WHT.gtfs.zip"},{"location":"licenses/#copyright-holders_23","text":"Whitsunday Transit","title":"Copyright holders"},{"location":"licenses/#filename-au_transperthgtfszip","text":"","title":"Filename: au_Transperth.gtfs.zip"},{"location":"licenses/#copyright-holders_24","text":"TransCollie TransCarnarvon TransEsperance TransKarratha Mandurah Bus Charter TransNarrogin Transperth Transperth Transperth Transperth Transperth TransHedland TransBroome TransGeraldton Transperth Transperth Transperth Transperth Transperth Transperth Transperth TransAlbany TransBunbury TransBusselton TransGoldfields Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transperth Transwa 2K Tours Transperth TransBridgetown TransManjimup","title":"Copyright holders"},{"location":"licenses/#filename-us_amtrakgtfszip","text":"","title":"Filename: us_Amtrak.gtfs.zip"},{"location":"licenses/#copyright-holders_25","text":"Martz Trailways Executive Transportation Route 66 Express Americanstar Alvand Transportation Vegas Airporter Central Oregon Breeze El Dorado Transit Vermont Translines Beeline Express Coach Usa Cantrail Shore Line East Amtrak Chartered Vehicle Sunway Charters Placeholder train number for CTrail BayRunner Shuttle Virginia Railway Express MARC Grape Line Gold Line Northwestern Trailways Peoria Charter Smart Way Connector Van Galder Coach Usa Southeast Area Transit Pacific Crest Bus Lines Roadrunner Shuttle Apple Line Express Arrow Badger Bus Stagecoach Express Amtrak Chartered Motorcoach The Lift Bustang New York Trailways Adirondack Trailways Pine Hill Trailways Fullington Trailways Groome Transportation Dungeness Line Indian Trails Arrow Trailways Grand Canyon Railway Amtrak Santa Cruz Metro C&j Altamont Corridor Express","title":"Copyright holders"},{"location":"licenses/#filename-us-mo_metro-stlouisgtfszip","text":"","title":"Filename: us-mo_Metro-stlouis.gtfs.zip"},{"location":"licenses/#copyright-holders_26","text":"Metro St. Louis","title":"Copyright holders"},{"location":"licenses/#filename-us-mo_metro-stlouisgtfszip_1","text":"","title":"Filename: us-mo_Metro-stlouis.gtfs.zip"},{"location":"licenses/#copyright-holders_27","text":"Metro St. Louis","title":"Copyright holders"},{"location":"licenses/#filename-hr_hzgtfszip","text":"","title":"Filename: hr_hz.gtfs.zip"},{"location":"licenses/#copyright-holders_28","text":"H\u017d Putnicki prijevoz","title":"Copyright holders"},{"location":"licenses/#filename-dk_rejseplanengtfszip","text":"","title":"Filename: dk_rejseplanen.gtfs.zip"},{"location":"licenses/#copyright-holders_29","text":"Bornholms Trafik DSB FYNBUS NT Movia Midttrafik Mols-Linien Arriva tog DSB \u00d8resund Lokaltog A/S DSB S-tog Metroselskabet Sydtrafik Sporvejsmuseet Skjolden\u00e6sholm \u00d6resundst\u00e5g \u00c6r\u00f8 Kommune Sams\u00f8 Bus Sk\u00e5netrafiken Fan\u00f8 Kommune Svendborg Havn, F\u00e6rge- og Sundfart \u00c6r\u00f8Xpressen A/S Sams\u00f8 Rederi Thinggaard Express Odense Letbane \u00c6r\u00f8f\u00e6rgerne","title":"Copyright holders"},{"location":"licenses/#filename-uk_great-britaingtfszip","text":"","title":"Filename: uk_great-britain.gtfs.zip"},{"location":"licenses/#copyright-holders_30","text":"Ellenvale Coaches Stagecoach Bluebird Stagecoach East Stagecoach West Stagecoach Midlands Stagecoach South Stagecoach Supertram Stagecoach South West Stagecoach West Scotland Stagecoach Oxfordshire Kirkby Lonsdale Coaches Mountain Goat Holidays and Tours Stagecoach South Stagecoach South East Stagecoach East Stagecoach Midlands Stagecoach Yorkshire Stagecoach East Midlands Stagecoach East Scotland Stagecoach Highlands Stagecoach South Stagecoach East Fellrunner Stagecoach East Stagecoach South Telfords Coaches Arriva North East Stagecoach North East Station Taxis Tyne and Wear Metro A-line Coaches Nexus Ferry Readypay Ltd Nexus Metro Replacement Glen Valley Tours Arriva North East Stagecoach Manchester Coastliner Bee Network The Harrogate Bus Company Bee Network Gateshead Central Taxis Dales and District Gem Travel Reliance Motor Services Stanley Travel Paul's Travel North Yorkshire County Council Hodgsons Metrolink Vision Bus Weardale Motor Services First Greater Manchester Thornes Independent Ltd Go North East Arriva Wales D & G Bus Ryedale Community Transport Generation Travel York Pullman SS Suncruisers The Little White Bus Stagecoach Merseyside and South Lancashire Aintree Coachlines JH Coaches Upper Wharfedale Venturer Belle Vue Coaches Arriva North West Cumbria Classic Coaches Mikro Coaches Hollinshead Coaches Warrington's Own Buses First Halifax, Calder Valley & Huddersfield Stanley Travel Huyton Travel Nexus Move Arriva Yorkshire Preston Bus Rosso Direct Taxis Coastal and Country Coaches Team Pennine The Blackburn Bus Company Bee Network Bee Network Arriva North West Go North West Diamond Bus North West Coatham Coaches Swans Travel Ltd Atlantic Travel GB Ashcrofts Mini Travel Bullocks Coaches Olympia Travel Peter Hogg of Jedburgh Bee Network Stagecoach Cumbria and North Lancashire Green Mountain Travel Borders Buses Wright Brothers Coaches Northlink Ferries Berwick Buses Western Dales Community Bus Reays Coaches NBM Hire Ltd A2B Bus and Coach Aberdeenshire Council Argyll & Bute Council Ferries A1 Coaches A&A Coach Travel Aarons of Wick Arriva Derby Arriva Kent and Surrey AK Transport A MacDonald Ambassador Travel Alasdair Macdonald Arriva Midlands Arriva Kent and Surrey Andersons of Langholm Andrew's Andrews of Tideswell Arriva Beds and Bucks Ardlui Hotel Arriva Herts and Essex Arisaig Marine Arrow Taxi Ashbourne Community Transport ASD Coaches Ashley Travel Amberley & Slindon Community Bus BK Marine Autocar Bus & Coach Services Avondale Coaches Gatwick Airport inter-terminal Shuttle Stansted Airport Hotel Shuttle Battle Area Community Transport Bagnalls Bay Travel Globe Holidays Burnbrae Garage Bluebell Railway Bright Bus Braintree Community Transport Basildon District Volunteer Carers Bear Buses Bexhill Community Bus Brighton & Hove Bus and Coach Company Brian Jones Coaches Black Cat Travel Bayliss Executive Travel BM Coaches Islay Coaches Bus Na Comhairle Bo'ness and Kinneil Railway Borders Buses Jonathan Boyd Brentwood Community Transport Brookline Brylaine Travel Buses4U Bishops Stortford Community Transport W Brownrigg Caledonian MacBrayne CallConnect Camerons Travel Cardinal Buses Climate Action Strathaven Centrebus Centrebus Craigs of Cumbernauld Coggeshall Community Bus Chatterbus Chalkwell Garage & Coach Hire Cuckmere Buses Clydelink Carlone Buses Centaur Coaches ARG Travel Colchri Coaches Compo Compass Travel Compaid Trust Wilsons Buses Crosskeys Coaches Carousel Buses Coach Services Derbyshire Community Transport Glasgow Citybus Community Transport Glasgow Community Transport for Lewes Area County Travel Cawthorne's Travel Community Action Dacorum D A & A J MacLean D A Travel D & E Coaches Delaine Buses J R Dent Coaches Dews Coaches DGC Buses David Goodfellow Travel Dochertys Midland Coaches D M K Motors Dodds of Troon Prentice Coaches Dunnett's Transport Deveron Coaches Essex & Suffolk DaRT Eazy Coach Hire East Coast Buses Edinburgh Coach Lines Edinburgh Trams Edward Thomas Epping Forest Community Transport East Hull Community Transport Lothian Country Buses Ember Ensign Bus Eastern Scottish Eve Coaches East Yorkshire First Aberdeen Fenland Association for Community Transport Falcon Coaches First Berkshire & The Thames Valley Reading RailAir First Buses of Somerset 1st Bus Stop Ltd First Kernow First Wessex, Dorset & South Somerset First Essex Midland Bluebird Feline Executive Travel First Portsmouth, Fareham & Gosport First Leicester Flyer First Worcestershire Fowlers Travel First Potteries Fords Coaches Fishers Tours Festival Travel First South Yorkshire Faversham Hopper First Bradford First Leeds First West Yorkshire Ltd Galson Motors Goole Go Far Hamish Gordon Coaches Green Line (operated by Arriva) Globe Coaches Garelochhead Minibuses & Coaches Glovers Gem Mini Travel Go-Coach Hire Grenitote Travel George Rapson Travel Grayscroft Coaches Glenfarg Community Transport Group Haines Coaches J & D S Halcrow Hams Travel HART Harpurs Coaches Hunter Cabs & Mini Buses HcL Handcross District Community Bus Isle of Hoy Development Trust Heatons Coaches Hedingham & Chambers Hebridean Transport Hunters Executive Coaches Highland Ferries Connexions Buses High Peak Historic Scotland Harting Minibus CIC Hebridean MiniBus Service Houston's Minicoaches Hunts Coaches Hornsbys Bus & Coach Hobson Travel Harpenden Connect Hadlow Rural Community School Horseman Coaches Harwich Connexions Transport Hulleys of Baslow Hawkes Coaches J A & G D Nicolson Johnson Brothers Jacksons of Silsden Ltd Jetstream Tours John Ferguson Minibus Hirer JMB Travel Johnson Transport John Kennedy J P Minibus J R Services Kinchbus Kent College Canterbury Konectbus Kent Coach Tours Keith and Dufftown Railway Kent & East Sussex Railway K White Transport K and K Transport Kingshouse Travel Steve Keats of Sheffield Kilvingtons of Leeds Key Coaches Lochaber Action on Disability Lochcarron Garage Lothian Community Transport Landmark Coaches The Big Lemon Little Jim's Lochs Motor Transport Lothian Buses JW Lodge & Sons Lord's Travel Langston & Tasker Littles Travel Lucketts of Watford The London Bus Company Leadhills and Wanlockhead Railway A Lyles and Son Lynx Martins Car Hire Bland's McGill's Bus Service McCulloch's Coaches McColls Travel McNairn Coaches Moray Council Diamond Bus East Midlands Midhurst Community Bus Stringers Cruisers Mackie's Coaches Mil-Ken Travel Murdo MacIver Moffat & Williamson Moxons Tours Millport Motors Marshalls of Sutton on Trent Marsland Travel C G Myall & Son North Area Transport Association Nauticalia Ferry Nottingham City Transport Notts and Derby Nottingham Express Transit (Tram) NIBSbuses The Durness Bus North Lincolnshire Council CT4N Nottinghamshire County Council Fleet Services Nu-Venture Wealdlink Community Transport Wright Way To Travel A1 Coaches Archway Travel Avacab K&P Coaches Berwyn Bretherton Gold Line Tours B & J Travel Blackpool Transport Blackpool Coach Hire Blackburn Private Hire Bibby's of Ingleton Ltd The Burnley Bus Company Britannia Bus Coach Hire Executive Travel Ltd Thomas Herbert Jones & Partners Cardiff Bus Celtic Travel Charlton Mini's Coastal Coaches Caerphilly County Borough Council Cranberry Coachways Crickhowell Taxis Clynnog & Trefor / Berwyn Coaches Thames Valley Buses Cogenhoe and Whiston Parish Council Denbighshire Council Don Fraser Coaches DANSA Dilwyn's Coaches Edwards Coaches Eifion's Coaches Englands Limousines Express Travel First Bristol, Bath & the West First South & West Wales First Norfolk & Suffolk First Greater Glasgow Forge Travel Foreign Support Gemsar Travel Limited Goodsir Gwynfor Coaches Harris Travel Henleys Hodsons Coaches Harris Coaches Holmeswood Coaches Ltd Evans Coaches Tregaron Limited Jones Login J Robinson Taxis The Keighley Bus Company Keepings Coaches Lawson's of Corby Llew Jones Coaches Lewis Y Llan Lloyds Coaches Mario Coaches M & H Coaches Monmouthshire County Council Moving People Morris Travel Mid Wales Travel Newbury & District Adventure Travel Nefyn Nick Maddy Coaches Northern Star Coach Hire Coastliner Buses Pilkingtonbus Oswestry Community Action (Qube) O R Jones Bus Vannin Owen's Travelmaster P & O Lloyd Pat's Coaches JP Travel Peter's Minibus Hire Pembrokeshire County Council Thomas of Rhondda P & S Nelson Peyton Travel Richards Bros Reading Buses Ridgways Redline Travel Tyrers Coaches Sarah Bell Sargeants Brothers Saunders of Preston SP Cars Select Coaches Shane Nuttall Stagecoach South Wales South Wales Transport Taf Valley Coaches Tanat Valley Coaches Travel Assist Townlynx The Travellers Choice Uno Valentines Travel Village & Valleys Travel Waltons Coach Hire Wyre Coaches Wrexham Taxis Yeomans Travel Pendle Coaches Our Bus Our Centre A and J Taxis Al's Coaches Derek Hilton Travel Maghull Coaches Hattons Travel Mersey Ferries Cumfybus A2B Travel Anthony's Travel Selwyn's Travel Peoples Bus Ashcroft Travel Liverpool City Sights Link Network Hadleigh Community Transport High Suffolk Community Transport ABUS Astra Coach Travel 4K Travel Transpora Bus AMK Flexibus Arriva Midlands Airport Bus Express Astons Coaches Somerset Council Atwest Axe Valley Mini-Travel Country Bus Broughton & Mottisfont Community Bus Banga Buses Basingstoke Community Transport Bath Bus Company Borderbus Go Ahead London Beestons Bennetts Travel Bakers Dolphin New Bharat Coaches (Southall, London) Air-Rail Link Belle Coaches Beaminster Town Council Berry's Coaches Beeline Coaches Connect2Wiltshire Emirates Air Line Caradoc Coaches Coastal Accessible Transport Cheltenham Community Transport Community First Wessex Cotswold Green Hedingham & Chambers Cresta Coaches Chaserider Carolean Coaches Coachstyle Community Transport South Wiltshire CT Coaches Thames Clippers Coventry Minibuses N N Cresswell Clearway of Catshill Abellio London Dawlish Community Transport Diamond Bus South East Docklands Buses Dorset Community Transport Discover Dorset Tours Dartmouth Higher Ferry Diamond Bus London Docklands Light Railway - TfL Dan's Coach Travel D & P Boat Hire DRM Bus Dartline Coaches Damory Coaches Three Villages MiniBus Eurocoaches Exe Valley and Community Bus Fareline Bus & Coach Services First & Last Mile Faresaver Forest Community Transport Felixstowe Ferry Boat Yard Faringdon Community Bus Finesse Travel Flixbus Flittabus FromeBus Filers Travel Felix Taxis & Co. FYTbus Gorran & District Community Bus Going Forward Buses Greenslades Tours Grant Palmer Grindles Coaches Grayline Coaches Halesworth Area Community Transport Hampshire Community Transport Hedgehog Community Bus Henshaw's Coaches Hatch Green Coaches Harwich Harbour Ferry Hopleys Coaches Hollands Coaches Herberts Travel Hartley Wintney Community Bus Independent Coach Company igo Cowes Ferry Ipswich Buses Isle Valley Transport Ivel Sprinter Isle of Wedmore RT Assoc. John Dix Travel Kidlington Assisted Transport CIC K B Coaches Kevs Cars and Coaches Fal River Links Lakeside Coaches LA Travel (South Staffs Coach Hire) Lichfield City Coaches Lilbourne Community Bus The Big Lemon Stagecoach London Shipston Link LMS Travel Logan Rock Cars Libra Travel London United London Underground (TfL) Lugg Valley Travel Minibus Plus.com MD Coaches MRD Ltd Metrobus Megabus Meon Valley Community Bus Minsterley Metroline Travel Arriva London Mendip Community Transport Mulleys Motorways Newton Abbot Community Transport National Express Newent Community Link Newport Bus National Express West Midlands Oakleys Coaches OTS OurBus Bartons Oxford Bus Company Phil Anslow Travel Plymouth Boat Trips Plymouth Citybus Go Cornwall Bus Pulhams Coaches Royal Buses R & B Travel Ramsbury Community Bus Redwoods Travel Robert Eugene Dix Red Funnel W Ridler & Sons Road Runner Community Transport Replacement Service Roselyn Coaches Richard Wellesley Memorial Community Minibus South Beds Dial-a-Ride Select Bus Services Scottish Citylink Scraggs Shires Passenger Transport St Ives Minibus Services LandFlight Stagecoach London Swanbrook Coaches Sullivan Buses Stanton's of Stoke Bluestar Uni-Link Saltash Red Bus NATIONAL EXPRESS OPERATIONS LIMITED South Somerset Community Transport Travel Cornwall London Sovereign Southern Vectis South West Coaches Taw & Torridge Aimee's Tavistock Community Transport Totness Community Bus Torbay Community Development Trust London Tramlink National Express Coventry Let's Go Tally Ho! Thandi Red Limited Thames Travel TK Travel West Midlands Metro Thompsons Coaches Thames River Services Swindon's Bus Company Taylors Travel Uno Villager Community Bus (Oxon) Villager Minibus Sharnbrook Torbay Buses Walsall Community Transport morebus Salisbury Reds Wyre Forest Dial a Ride Woolwich Free Ferry WightLink West Oxfordshire Community Transport Wanderbus F R Willetts Xelabus The Seend Shuttle Yeos Contracts Yarranton Brothers Bristol Ferry Boat Company Polruan Passenger Ferry, Bodinnick Vehicle Ferry River Link Flushing Ferry Gosport-Portsmouth Ferry Hayling Ferry Limited Hovertravel Mountbatten Water Taxis Polruan Ferry Co Ltd Padstow Harbour Commissioners Sandbanks Ferry Salcombe Ferry St Mawes Ferry Tamar Bridge & Torpoint Ferry Joint Committee White Horse Ferries Orkney Ferries PC Coaches Canavan Travel Pentland Ferries Peter Hodgson Travel Peter MacLennan Panther Travel Nottingham Minibus PVT Transfer Prentice Westwood Risborough Area Community Bus Ramsey and District Community Bus Association Rambler Coaches Roberts Coaches Richmonds Coaches Redroute Buses Redwing Coaches Red Eagle Reptons Coaches R G Jamieson & Son Regent Coaches Ravenshead Community Project Romney Hythe & Dymchurch Light Railway R & J Coaches Redline R Robertson & Son Red Rose Travel RS Taxis and Minicoaches Ross Travel Rye Community Transport South Ayrshire Community Transport Scottish Borders Council Scottish Citylink/Megabus jointly operated Scoraig Ferry Sheffield Community Transport Scottish Citylink & Ulsterbus SD Travel Seaford & District Flagfinders Stephensons of Essex Skye Ferry Community Interest Company Safeguard Buses South Harris Coaches Shiel Buses Short's Travel Sharpes of Nottingham Shetland Ferries Shuttle Buses Simonds Selsey Community Bus Sleafordian Coaches Starline Sanders Coaches South Pennine Community Transport SPT Subway Squarepeg Smith & Sons Stevenson's Travel Star Travel Star Cabs Stewarts Coaches Station Coaches Stotts Coaches Stuart's Coaches Sussex Coaches Soar Valley Community Bus Spa Valley Railway Sweeneys Cruises Sweeneys Garage Steam Ship Sir Walter Scott trentbarton TransportConnect Tendring Community Transport Tranport for Tongue Highland Council TLC Travel Ltd Tetley's Travelmasters TM Travel Xplore Dundee Central Connect Taxi Service Ulva Ferry United Coaches United Minibuses Vectare Vale Travel Wilma Ann Nicolson R & S Watersons West Berkshire Council Transport Services Wilfreda Beehive White Bus Services Watermill Coaches West Coast Motors Woking Community Transport MacLeod's Coaches Westerbus Western Ferries Wharfeconnections Whitelaw Coaches Whippet Coaches Waverley Hoppa Community Transport Whites Coaches (Shetland) Winslow & District Community Bus A C Williams WM Travel WMV Motor Hirer Go To Town Wilson's of Rhu Travel Wisharts Wastbus Viking Coaches First York Yorkshire Travel Group Stagecoach Yorkshire Elizabeth Yule Z & S Transport Border Rambler Blueworks Private Hire McCall's Coaches Lakeland Coaches Transport for Wales c2c Chiltern Railways Caledonian Sleeper E M R Grand Central Great Northern LNER GWR Gatwick Express Hull Trains Heathrow Express Island Line East Coast Trains Great Anglia West Midlands Trains London Overground London Underground Merseyrail Northern Caledonian MacBrayne Southeastern Southern ScotRail South Western Railway Thameslink TransPennine Express Tyne and Wear Metro Avanti West Coast CrossCountry Elizabeth line Agency","title":"Copyright holders"},{"location":"licenses/#filename-uk_northern-irelandgtfszip","text":"","title":"Filename: uk_northern-ireland.gtfs.zip"},{"location":"licenses/#copyright-holders_31","text":"Foyle Metro Translink - Glider Goldline Express Translink Metro Ulsterbus Ulsterbus Town Services Translink Northern Ireland Rail","title":"Copyright holders"},{"location":"licenses/#filename-lt_visimarsrutaigtfszip","text":"","title":"Filename: lt_visimarsrutai.gtfs.zip"},{"location":"licenses/#copyright-holders_32","text":"Pag\u0117gi\u0173 sav. Joni\u0161kio r. sav. Kalvarijos sav. Kai\u0161iadori\u0173 r. sav. Kauno r. sav. UAB \"Trak\u0173 paslaugos\" K\u0117daini\u0173 r. sav. Kelm\u0117s r. sav. Klaip\u0117dos r. sav. Kretingos r. sav. Lietuvos transporto saugos administracija Pakruojo r. sav. Panev\u0117\u017eio r. sav. Radvili\u0161kio r. sav. Raseini\u0173 r. sav. Roki\u0161kio r. sav. Pasvalio r. sav. Plung\u0117s r. sav. Prien\u0173 r. sav. administracija Rietavo sav. Skuodo r. sav. Taurag\u0117s r. sav. Tel\u0161i\u0173 r. sav. Trak\u0173 r. sav. UAB \"Joni\u0161kio autobus\u0173 parkas\" Ukmerg\u0117s r. sav. Utenos r. sav. \u0160aki\u0173 r. sav. \u0160al\u010dinink\u0173 rajono savivaldyb\u0117s administracija \u0160ven\u010dioni\u0173 r. sav. \u0160ilal\u0117s r. sav. \u0160ilut\u0117s r. sav. \u0160irvint\u0173 r. sav. \u0160iauli\u0173 r. sav. Jurbarko r. sav. Panev\u0117\u017eio m. sav. \u0160iauli\u0173 m. sav. Alytaus m. sav. U\u017dDAROJI AKCIN\u0116 BENDROV\u0116 \"EMTRA\" Visagino sav. Akmen\u0117s r. sav. Alytaus r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \"Kupi\u0161kio autobus\u0173 parkas\" U\u017edaroji akcin\u0117 bendrov\u0117 Kur\u0161\u0117n\u0173 autobus\u0173 parkas Anyk\u0161\u010di\u0173 r. sav. Bir\u017e\u0173 r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 Naujosios Akmen\u0117s autobus\u0173 parkas Var\u0117nos r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \"Roki\u0161kio autobus\u0173 parkas\" Vilkavi\u0161kio r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \u0160irvint\u0173 autobus\u0173 parkas U\u017edaroji akcin\u0117 bendrov\u0117 Tolimojo keleivinio transporto kompanija Vilniaus r. sav. U\u017edaroji akcin\u0117 bendrov\u0117 \"UKMERG\u0116S AUTOBUS\u0172 PARKAS\" Elektr\u0117n\u0173 sav. Zaras\u0173 r. sav. Ignalinos r. sav. Jonavos r. sav. Vilniaus m. sav. Druskinink\u0173 sav. Marijampol\u0117s savivaldyb\u0117s administracija Kauno m. sav. Klaip\u0117dos m. sav. Neringos sav. Palangos m. sav. Kupi\u0161kio r. sav. Kazl\u0173 R\u016bdos sav. Lazdij\u0173 r. sav. Testin\u0117 savivaldyb\u0117 Ma\u017eeiki\u0173 r. sav. V\u012e Lietuvos automobili\u0173 keli\u0173 direkcija Valstyb\u0117s \u012fmon\u0117 Lietuvos oro uostai Akcin\u0117 bendrov\u0117 \"SMILTYN\u0116S PERK\u0116LA\" Mol\u0117t\u0173 r. sav. UAB LTG Link","title":"Copyright holders"},{"location":"licenses/#filename-ch_opentransportdataswissgtfszip","text":"","title":"Filename: ch_opentransportdataswiss.gtfs.zip"},{"location":"licenses/#copyright-holders_33","text":"DB Regio AG Baden-W\u00fcrttemberg Verkehrsbetriebe Biel Verkehrsbetriebe Biel Brienz Rothorn Bahn AG Braunwald-Standseilbahn B\u00fcrgenstock Bahn AG Davos Klosters Bergbahnen (dpb) Schweizerische Bundesbahnen SBB Sportbahnen Davos Standseilbahn Schwyz-Stoos AG Toggenburg Bergbahnen Unterwasser Engelberg-Tr\u00fcbsee-Titlis Parc d'Attractions du Ch\u00e2telard Societ\u00e0 Funicolare Cassarate-Monte Br\u00e8 Funicolare Ritom SA Aufzug Matte-Plattform (Bern) Drahtseilbahn Marzili-Stadt Bern AG Giessbachbahn Gornergratbahn Gurtenbahn Harderbahn Jungfraubahn Montreux-Vevey-Riviera (las) Aare Seeland mobil (ltb) Ferrovia Monte Generoso Montreux-Vevey-Riviera (mtgn) Celeriner Bergbahnen - Punt Muragl-Muottas Muragl Lugano-Monte San Salvatore Niesenbahn Pilatusbahnen Kriens-Fr\u00e4km\u00fcntegg Rigi Bahnen AG Weggis-Rigi Kaltbad Bus Ostschweiz (Rheintal) Berner Oberland-Bahnen Schilthornbahn (sbm) Sierre-Montana-Crans Funiculaire Saint-Imier-Mont-Soleil SA Stanserhornbahn STI Bus AG Bergbahnen Engadin St. Moritz AG Niederhornbahn AG Transports Publics de la R\u00e9gion Lausannoise sa Transports Publics Neuch\u00e2telois SA (tn) Transports Publics Neuch\u00e2telois SA Treib-Seelisberg-Bahn Montreux-Vevey-Riviera (vcp) Service d'automobiles TRN (vr) Wengernalpbahn Zugerbergbahn Interlaken-Heimwehfluh Dampfbahn Furka-Bergstrecke Societ\u00e0 della Funicolare Locarno-Madonna del Sasso SA Dolderbahn Betriebs AG Poly-Bahn Z\u00fcrich Funiculaire Neuch\u00e2tel-Universit\u00e9 - Neuch\u00e2tel-Gare \u00c4gerisee Schifffahrt AG Schifffahrts-Genossenschaft Greifensee Hallwilersee Bielersee BLS Schifffahrt AG (brs) CGN SA Vierwaldst\u00e4ttersee Schifffahrtsgesellschaft f\u00fcr den Zugersee AG Lago di Lugano Lacs de Neuch\u00e2tel et Morat Societ\u00e0 Navigazione del Lago di Lugano SA BLS Schifffahrt AG (ths) Schweiz. Schifffahrtsgesellschaft Untersee und Rhein AG Z\u00fcrichsee-Schifffahrtsgesellschaft AG (ZSG) Schweizerische Bodensee-Schifffahrt AG Z\u00fcrichsee-F\u00e4hre Horgen-Meilen AG Schiffsbetrieb Walensee Navigation Lac des Brenets Soci\u00e9t\u00e9 des Mouettes Genevoises Navigation Wengernalpbahn Grindelwald Grund - Eigergletscher Grindelwald-First Seilbahn Weissenstein AG Brunni-Bahnen Engelberg AG Adliswil-Felsenegg Bergbahnen Beckenried-Emmetten Davos Klosters Bergbahnen (bbbj) Funivia Monte Lema SA Raron-Unterb\u00e4ch Chalais-Briey-Vercorin Schw\u00e4galp-S\u00e4ntis Luftseilbahn Unterterzen-Flumserberg AG Wasserauen-Ebenalp Wengen-M\u00e4nnlichen Portes du Soleil Suisse SA Bergbahnen Engadin St. Moritz, Bernina-Diavolezza (lbd) Arosa Bergbahnen Appenzeller Bahnen (ab) Touristische Unternehmung Gr\u00e4chen AG Sportbahnen Melchsee-Frutt (lsm) Pendicularas Scuol SA Sportbahnen Pischa Bergbahnen Destination Gstaad AG Luftseilbahn Obergschwend-Rigi-Burggeist AG Riddes-Is\u00e9rables Luftseilbahn Kandersteg-Sunnb\u00fcel (Gemmi) AG Leukerbad-Gemmipass Transports Publics du Chablais Savognin-Bergbahnen AG Rh\u00e4z\u00fcns-Feldis/Veulden T\u00e9l\u00e9-Leysin-Col des Mosses - La L\u00e9cherette SA Saastal Bergbahnen AG Rotenfluebahn Mythenregion AG Chur-Dreib\u00fcndenstein Reigoldswil-Wasserfallen Celeriner Bergbahnen - Celerina-Saluver Niederhornbahn AG Sattel-Hochstuckli AG Gampel-Jeizinen Remont\u00e9es M\u00e9caniques Crans-Montana-Aminona Curtinatsch-Piz Lagalb Surlej-Silvaplana-Corvatsch Dallenwil-Niederrickenbach Andermatt-Sedrun Sport AG Lenzerheide Bergbahnen Hoher Kasten Drehrestaurant und Seilbahn AG Dallenwil-Wirzweli Jakobsbad-Kronberg Stechelberg-M\u00fcrren-Schilthorn (lsms) Bergbahnen Wildhaus AG Funiculaire St-Luc-Chandolin Gstaad 3000 AG Aletsch Bahnen AG F\u00fcrgangen-Bellwald Erlenbach-Stockhorn Bergbahnen Flumserberg AG Pontresina-Alp Languard Luftseilbahn M\u00fcrren-Schilthorn Luftseilbahn Schattdorf-Haldi Grindelwald-Pfingstegg Marbach-Marbachegg Blatten-Belalp Weisse Arena Bergbahnen AG Rosswald Bahnen AG T\u00e9l\u00e9ph\u00e9rique Dor\u00e9naz-Champex d'Alesse/Commune de Dor\u00e9naz Stalden-Gspon K\u00fcssnacht am Rigi-Seebodenalp Bergbahnen Engstligenalp AG Bergbahnen S\u00f6renberg AG Cardada Impianti Turistici Pizolbahnen AG Bergbahnen Flumserberg AG Transports de la r\u00e9gion Morges-Bi\u00e8re-Cossonay Turtmann-Unterems-Oberems Staldenried\u00bfGspon Glaris-Rinerhorn Remont\u00e9es M\u00e9c. du Wildhorn Anz\u00e8re Brusino-Arsizio-Serpiano Torrent-Bahnen Leukerbad-Albinen AG Lenk Bergbahnen Zermatt Bergbahnen AG Aletsch-Express Riederalp-Bettmeralp T\u00e9l\u00e9si\u00e8ge Buttes-La Robella Transports publics fribourgeois Kaisereggbahnen Schwarzsee AG Centre Touristique Mol\u00e9son Schutt Atzm\u00e4nnig Luftseilbahngenossenschaft Gitschenen T\u00e9l\u00e9-Villars-Gryon T\u00e9l\u00e9-Torgon SA T\u00e9l\u00e9LaFouly-ChampexLac SA Val Sporz-Piz Scalottas Remont\u00e9es m\u00e9caniques SA Bergbahnen Hoch-Ybrig AG T\u00e9l\u00e9-Thyon SA Theytaz Excursions Sion T\u00e9l\u00e9si\u00e8ge Lana-La Meina Luftseilbahngenossenschaft Br\u00fcgg-Eierschwand-Ruogig T\u00e9l\u00e9si\u00e8ge Ovronnaz-Jorasse T\u00e9l\u00e9Mar\u00e9cottes Sportbahnen Unterb\u00e4ch AG Sesselbahn St. Moritz Suvretta-Randolins Sesselbahn Visperterminen-Giw Seilbahngenossenschaft Embd-Schalb Lauchernalp Bergbahnen AG Sportbahnen Bellwald Goms AG Bergbahnen Meiringen-Hasliberg Genossenschaft Luftseilbahn Sulwald Reichenbachfall-Bahn Klosters-Madrisa Bergbahn Kriens-Sonnenberg-Bahn Sportbahnen Melchsee-Frutt (ldb) Luftseilbahn Engelberg-F\u00fcrenalp Luftseilbahn Fell-Chr\u00fczh\u00fctte Luftseilbahn Fellboden-Bannalpsee Luftseilbahn Niederbauen Aargau Verkehr AG Luftseilbahn Kalpetran-Embd Genossenschaft Tschinglenbahn Elm Stoosbahnen AG Holzegg Liegenschaften AG Bergbahnen Hoch-Ybrig AG Luftseilbahn Attinghausen-Br\u00fcsti AG Luftseilbahn Fl\u00fcelen-Eggbergen T\u00e9l\u00e9verbier Biel-Kinzig AG Seilbahngenossenschaft Golzern Luftseilbahngenossenschaft Arnisee Cantone di Grigioni Gondelbahn Grindelwald-M\u00e4nnlichen AG Funivia Selma-Landarenca Kraftwerk Sanetsch AG Funiva San Carlo-Robiei Sesselbahn Kr\u00fcmmenschwil-Rietbach Luftseilbahn Kr\u00e4bel-Rigi Scheidegg AG Sportbahnen Amden Bergbahnen Malbun AG Sportbahnen Kerenzerberg GmbH Genossenschaft Luftseilbahn Morgenholz Luftseilbahn Kies-Mettmen Luftseilbahn Matt-Weissenberg Sportbahnen Elm T\u00e9l\u00e9cabine Vercorin-Cr\u00eat-du-Midi Aelplibahn Malans Genossenschaft Gemeinde Fanas Bergbahnen Obersaxen AG Bergbahnen Piz Mundaun AG Bergbahnen Hohsaas AG Sesselbahn Vals-Gadenstatt Bergbahnen Piz Mundaun AG Sesselbahn Feldis-Mutta Valbianca SA Airolo Bergbahnen Samnaun AG ebs Energie AG Luftseilbahn Illgau - Vorder Oberberg Navigation Lac de Joux Solarf\u00e4hrbetrieb Thomas Geiger Reichenau Schiffahrtsunternehmung Silsersee Ernst M\u00e4ndli AG Nohl Schiff Eglisau-T\u00f6ssegg Luftseilbahn Amsteg-Arni Stoosbahnen AG F\u00e4hre Beckenried-Gersau Wasserngrat 2000 AG MS Seestern + Gastro AG Lauterbrunnen-M\u00fcrren Gondelbahn Kandersteg-Oeschinensee La Punt Ferien T\u00e9l\u00e9Charmey SA TreNord Association neuch\u00e2teloise des Amis du Tramway ANAT Bergbahnen Disentis BLS AG (bls) Raron-Eischoll Bergbahnen Hoch-Ybrig AG Sportbahnen Berg\u00fcn Remont\u00e9es M\u00e9caniques Grimentz-Zinal SA Pradaschier AG Top Bergbahnen S\u00f6renberg AG - fikt Transports de la R\u00e9gion Morges-Bi\u00e8re-Cossonay Luftseilbahn Kandersteg-Allmenalp Seilbahn Ried Illgau Impianti turistici Rivera-Monte Tamaro LTB Lungern-Turren-Bahn AG Berner Oberland-Bahnen SBB GmbH (Grenzverkehr) Bodensee-Schiffsbetriebe GmbH Baselland Transport Soci\u00e9t\u00e9 coop\u00e9rative du Chemin de fer - Mus\u00e9e Blonay-Chamby Aare Seeland mobil (bti) Verkehrsbetriebe Z\u00fcrich INFO+ Trasporti Pubblici Luganesi SA Aargau Verkehr AG Montreux-Vevey-Riviera (cev) Chemins de fer du Jura Transports Publics Neuch\u00e2telois SA (cmn) Forchbahn Lugano-Ponte Tresa Matterhorn Gotthard Bahn (fo) Ferrovie Autolinee Regionali Ticinesi Transports publics fribourgeois Lausanne-Echallens-Bercher Aare Seeland mobil (rvo) Bergbahnen Adelboden AG STI Bus AG Comune di Personico Transports de Martigny et R\u00e9gions (mc) Alpbus Fournier Tschentenbahnen AG Elsigenalpbahnen AG Frutigen, Luftseilbahn und Skilifte Alpintrans GmbH Montreux-Oberland Bernois THURBO Nyon-St-Cergue-Morez Interimsfahrplan / Horaire interimaire / Orario ad interim Commune d'Anniviers Vissoie Riffelalp Resort AG Zermatt Ruftaxi Rorschacherberg Anrufsammeltaxi Bischofszell Anrufsammeltaxi Amriswil Gemeinde St. Gallenkappel Busbetrieb Kandersteg - Gasterntal Walker's S\u00f6hne Urnerboden Skilift Schilt AG 8753 Mollis Aroser Verkehrsbetriebe Bahnersatz Jahresfahrplan Autobusbetrieb LEE B\u00fcrgerbus Gondiswil-Huttwil-Ufhusen B\u00fcrgerbus Kleindietwil-Oeschenbach-Walterswil Sumvitg Turissem F\u00f6rderverein Region Gantrisch ZB Bus Fahrplanbed\u00fcrfnisse Gemeinde Surses \u00bf Cumegn Surses Funicar AG Engelberger Auto-Betriebe Ortsbus Saas-Fee Office du tourisme de Leysin Busbetrieb Oberems-Gruben Andermatt-Urserntal Tourismus GmbH Taxi, Bau- und Traxarbeiten Willi Schaad Busbetrieb Gemeinde Berg\u00fcn PRO REGIO HUTTWIL Verkehrsverein Elektrobus Zermatt Bus alpin Lombachalp Verein Naturpark Beverin Ortsbus der Gemeinde Silvaplana / Gemeinde Silvaplana B\u00fcrgerbus R\u00fcderswil Tr\u00e4gerverein Historische Postautolinie M\u00fchleggbahn AG Gemeinde Luzein B\u00fcrgerbus Walperswil-Epsach-T\u00e4uffelen-Aarberg B\u00fcrgerbus Hellsau-H\u00f6chstetten-Willadingen-Koppigen Autoservizi Silvestri Livigno Bus urbain de Martigny Bus Sierrois Ortsbus St. Moritz Rh\u00e4tische Bahn TPF Ersatzverkehr Aargau Verkehr AG BLS Netz AG Ersatzverkehr SBB Infrastruktur AG Bahnersatz zb Zentralbahn AG Ersatzverkehr Verkehrsbetriebe Kreuzlingen Transports Publics Neuch\u00e2telois SA (rvt) Autotransports de la Vall\u00e9e de Joux Autolinea Mendrisiense SA Servizio d'automobili Transports Publics de la R\u00e9gion Nyonnaise Regionalps Verkehrsbetrieb der Landschaft Davos Bus Nyon-Prangins Automobildienst Appenzeller Bahnen Verkehrsverbund Tirol GesmbH Autobusbetrieb Freienbach Automobiles MBC Bus commune Sion Bus und Service AG (Chur) Busbetrieb Rapperswil-Eschenbach-R\u00fcti ZH Verkehrsbetriebe Glattal Busbetrieb Wollerau-Samstagern Sihltal-Z\u00fcrich-Uetliberg-Bahn Transports Publics Neuch\u00e2telois SA (tc) Busbetrieb Olten-G\u00f6sgen-G\u00e4u Service d'automobiles TRN (rvt Auto) Stadtbus Frauenfeld Verkehrsbetriebe Herisau Bergbahnen Adelboden AG DB Regio AG Baden-W\u00fcrttemberg PostAuto AG Verkehrsbetrieb LIECHTENSTEINmobil Automobildienst SZU FPLAN BOD RAB OMP FPLAN RBG SWG FPLAN VHB SBP Aare Seeland mobil (snb) Busbetrieb Lichtensteig-Wattwil-Ebnat-Kappel Autobus AG Liestal Auto AG Rothenburg AFA Bus AG RegionAlps Bus Bus und Service AG (Engadin) Auto AG Uri Autolinee FART NeTS Planung \u00d6BB Transports Publics du Chablais (Bus) Automobil Rottal AG \u00d6sterreichische Bundesbahnen Schweizerische S\u00fcdostbahn (sob) Verkehrsbetriebe Luzern AG Busbetrieb BOB Basler Verkehrsbetriebe Bus Ostschweiz (Wil) St\u00e4dtische Verkehrsbetriebe Bern Autobetrieb Weesen-Amden Automobiles CJ Service d'automobiles TPF Service d'automobiles TMR Verkehrsbetriebe Schaffhausen Verkehrsbetriebe Z\u00fcrichsee und Oberland Zugerland Verkehrsbetriebe Busbetrieb Aarau Auto AG Schwyz BUS Oberthurgau AG Verkehrsbetriebe Schaffhausen Verkehrsbetriebe Z\u00fcrich Autobusbetrieb RBS NA_85000 Automobildienst Matterhorn Gotthard Bahn (fo auto) Theytaz Excursions Sion Auto Leuk-Leukerbad Autobetrieb Sernftal Autolinee Regionali Luganesi STI Bus AG Zentralbahn Autolinee Bleniesi Automobildienste Aare Seeland mobil Busland AG Regionalbus Lenzburg Transports publics Vevey-Montreux-Chillon-Villeneuve But Cars Rh\u00f4ne-Alpes DistriBus Evian Soci\u00e9t\u00e9 Nationale des Chemins de fer Fran\u00e7ais R\u00e9seau Lihsa Proxim iTi RDTAin SIBRA Transports Publics de l'agglom\u00e9ration d'Annemasse Regionalverkehr Bern-Solothurn Transports Publics Genevois Stadtbus Winterthur Busbetrieb Solothurn und Umgebung Verkehrsbetriebe der Stadt St.Gallen Regionale Verkehrsbetriebe Baden-Wettingen Verkehrsbetriebe Biel Busbetrieb Grenchen und Umgebung Transports Vall\u00e9e de Joux-Yverdon-Ste-Croix Regiobus Gossau SG Aargau Verkehr AG Verein Dampfbahn Bern Transports Vall\u00e9e de Joux-Yverdon-Ste-Croix (oc/bus) Gemeinde Celerina/Schlarigna Dampfbahn-Verein Z\u00fcrcher Oberland Matterhorn Gotthard Bahn (bvz) Trasporti Pubblici Luganesi SA Heuberge AG Aargau Verkehr AG Transports Vall\u00e9e de Joux-Yverdon-Ste-Croix Diverse INFO SBB GmbH S\u00fcdbadenbus","title":"Copyright holders"},{"location":"licenses/#filename-us-il_ctagtfszip","text":"","title":"Filename: us-il_CTA.gtfs.zip"},{"location":"licenses/#copyright-holders_34","text":"Chicago Transit Authority","title":"Copyright holders"},{"location":"licenses/#filename-us-il_smtdgtfszip","text":"","title":"Filename: us-il_SMTD.gtfs.zip"},{"location":"licenses/#copyright-holders_35","text":"SMTD","title":"Copyright holders"},{"location":"licenses/#filename-us-il_smtdgtfszip_1","text":"","title":"Filename: us-il_SMTD.gtfs.zip"},{"location":"licenses/#copyright-holders_36","text":"SMTD","title":"Copyright holders"},{"location":"licenses/#filename-us-il_champaignurbana-mtdgtfszip","text":"","title":"Filename: us-il_ChampaignUrbana-MTD.gtfs.zip"},{"location":"licenses/#copyright-holders_37","text":"Champaign Urbana Mass Transit District","title":"Copyright holders"},{"location":"licenses/#filename-us-il_peoria-citylinkgtfszip","text":"","title":"Filename: us-il_Peoria-CityLink.gtfs.zip"},{"location":"licenses/#copyright-holders_38","text":"CityLink","title":"Copyright holders"},{"location":"licenses/#filename-pl_pkp-intercitygtfszip","text":"","title":"Filename: pl_PKP-Intercity.gtfs.zip"},{"location":"licenses/#copyright-holders_39","text":"PKP Intercity","title":"Copyright holders"},{"location":"licenses/#filename-pl_polregiogtfszip","text":"","title":"Filename: pl_PolRegio.gtfs.zip"},{"location":"licenses/#copyright-holders_40","text":"PolRegio","title":"Copyright holders"},{"location":"licenses/#filename-pl_rzeszowgtfszip","text":"","title":"Filename: pl_Rzesz\u00f3w.gtfs.zip"},{"location":"licenses/#copyright-holders_41","text":"ZTM Rzesz\u00f3w","title":"Copyright holders"},{"location":"licenses/#filename-pl_koleje-mazowieckiegtfszip","text":"","title":"Filename: pl_Koleje-Mazowieckie.gtfs.zip"},{"location":"licenses/#copyright-holders_42","text":"Koleje Mazowieckie","title":"Copyright holders"},{"location":"licenses/#filename-pl_swinoujsciegtfszip","text":"","title":"Filename: pl_\u015awinouj\u015bcie.gtfs.zip"},{"location":"licenses/#copyright-holders_43","text":"Komunikacja Autobusowa w \u015awinouj\u015bciu","title":"Copyright holders"},{"location":"licenses/#filename-pl_koleje-dolnoslaskiegtfszip","text":"","title":"Filename: pl_Koleje-Dolno\u015bl\u0105skie.gtfs.zip"},{"location":"licenses/#copyright-holders_44","text":"Koleje Dolno\u015bl\u0105skie","title":"Copyright holders"},{"location":"licenses/#filename-pl_bydgoszczgtfszip","text":"","title":"Filename: pl_Bydgoszcz.gtfs.zip"},{"location":"licenses/#copyright-holders_45","text":"ZDMiKP Bydgoszcz","title":"Copyright holders"},{"location":"licenses/#filename-pl_wocawekgtfszip","text":"","title":"Filename: pl_W\u0142oc\u0142awek.gtfs.zip"},{"location":"licenses/#copyright-holders_46","text":"MPK W\u0142oc\u0142awek","title":"Copyright holders"},{"location":"licenses/#filename-pl_torungtfszip","text":"","title":"Filename: pl_Toru\u0144.gtfs.zip"},{"location":"licenses/#copyright-holders_47","text":"Urz\u0105d Miasta Torunia","title":"Copyright holders"},{"location":"licenses/#filename-pl_kielcegtfszip","text":"","title":"Filename: pl_Kielce.gtfs.zip"},{"location":"licenses/#copyright-holders_48","text":"Zarz\u0105d Transportu Miejskiego w Kielcach","title":"Copyright holders"},{"location":"licenses/#filename-pl_radomgtfszip","text":"","title":"Filename: pl_Radom.gtfs.zip"},{"location":"licenses/#copyright-holders_49","text":"MZDiK Radom","title":"Copyright holders"},{"location":"licenses/#filename-pl_warszawagtfszip","text":"","title":"Filename: pl_Warszawa.gtfs.zip"},{"location":"licenses/#copyright-holders_50","text":"Warszawski Transport Publiczny","title":"Copyright holders"},{"location":"licenses/#filename-pl_omzagtfszip","text":"","title":"Filename: pl_\u0141om\u017ca.gtfs.zip"},{"location":"licenses/#copyright-holders_51","text":"MPK ZB w \u0141om\u017cy","title":"Copyright holders"},{"location":"licenses/#filename-pl_wejherowogtfszip","text":"","title":"Filename: pl_Wejherowo.gtfs.zip"},{"location":"licenses/#copyright-holders_52","text":"MZK Wejherowo","title":"Copyright holders"},{"location":"licenses/#filename-pl_trojmiasto-gdansk-gdynia-sopot-combinedgtfszip","text":"","title":"Filename: pl_Tr\u00f3jmiasto-(Gda\u0144sk,-Gdynia,-Sopot)-combined.gtfs.zip"},{"location":"licenses/#copyright-holders_53","text":"ZTM Gda\u0144sk ZKM Gdynia","title":"Copyright holders"},{"location":"licenses/#filename-pl_gizyckogtfszip","text":"","title":"Filename: pl_Gi\u017cycko.gtfs.zip"},{"location":"licenses/#copyright-holders_54","text":"GZK Bystry","title":"Copyright holders"},{"location":"licenses/#filename-pl_lublingtfszip","text":"","title":"Filename: pl_Lublin.gtfs.zip"},{"location":"licenses/#copyright-holders_55","text":"ZTM Lublin","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_stmgtfszip","text":"","title":"Filename: ca-qc_STM.gtfs.zip"},{"location":"licenses/#copyright-holders_56","text":"Soci\u00e9t\u00e9 de transport de Montr\u00e9al","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_stmgtfszip_1","text":"","title":"Filename: ca-qc_STM.gtfs.zip"},{"location":"licenses/#copyright-holders_57","text":"Soci\u00e9t\u00e9 de transport de Montr\u00e9al","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-reseaudetransportmetropolitaingtfszip","text":"","title":"Filename: ca-qc_Exo-reseaudetransportmetropolitain.gtfs.zip"},{"location":"licenses/#copyright-holders_58","text":"exo-R\u00e9seau de transport m\u00e9tropolitain","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-reseaudetransportmetropolitaingtfszip_1","text":"","title":"Filename: ca-qc_Exo-reseaudetransportmetropolitain.gtfs.zip"},{"location":"licenses/#copyright-holders_59","text":"exo-R\u00e9seau de transport m\u00e9tropolitain","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-varannesgtfszip","text":"","title":"Filename: ca-qc_Exo-varannes.gtfs.zip"},{"location":"licenses/#copyright-holders_60","text":"exo-Sorel-Varennes","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-varannesgtfszip_1","text":"","title":"Filename: ca-qc_Exo-varannes.gtfs.zip"},{"location":"licenses/#copyright-holders_61","text":"exo-Sorel-Varennes","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citsudgtfszip","text":"","title":"Filename: ca-qc_Exo-citsud.gtfs.zip"},{"location":"licenses/#copyright-holders_62","text":"exo-Sud-Ouest","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citsudgtfszip_1","text":"","title":"Filename: ca-qc_Exo-citsud.gtfs.zip"},{"location":"licenses/#copyright-holders_63","text":"exo-Sud-Ouest","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citlapresquilegtfszip","text":"","title":"Filename: ca-qc_Exo-citlapresqu\u00eele.gtfs.zip"},{"location":"licenses/#copyright-holders_64","text":"exo-La Presqu'\u00eele","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citlapresquilegtfszip_1","text":"","title":"Filename: ca-qc_Exo-citlapresqu\u00eele.gtfs.zip"},{"location":"licenses/#copyright-holders_65","text":"exo-La Presqu'\u00eele","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citlaurentidesgtfszip","text":"","title":"Filename: ca-qc_Exo-citlaurentides.gtfs.zip"},{"location":"licenses/#copyright-holders_66","text":"exo-Laurentides","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citlaurentidesgtfszip_1","text":"","title":"Filename: ca-qc_Exo-citlaurentides.gtfs.zip"},{"location":"licenses/#copyright-holders_67","text":"exo-Laurentides","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citduhaut-saint-laurentgtfszip","text":"","title":"Filename: ca-qc_Exo-citduhaut-saint-laurent.gtfs.zip"},{"location":"licenses/#copyright-holders_68","text":"exo-Haut-Saint-Laurent","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citduhaut-saint-laurentgtfszip_1","text":"","title":"Filename: ca-qc_Exo-citduhaut-saint-laurent.gtfs.zip"},{"location":"licenses/#copyright-holders_69","text":"exo-Haut-Saint-Laurent","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-richelain-roussillongtfszip","text":"","title":"Filename: ca-qc_Exo-richelain-roussillon.gtfs.zip"},{"location":"licenses/#copyright-holders_70","text":"exo-Le Richelain / Roussillon","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-richelain-roussillongtfszip_1","text":"","title":"Filename: ca-qc_Exo-richelain-roussillon.gtfs.zip"},{"location":"licenses/#copyright-holders_71","text":"exo-Le Richelain / Roussillon","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citchambly-richelieu-carignangtfszip","text":"","title":"Filename: ca-qc_Exo-citchambly-richelieu-carignan.gtfs.zip"},{"location":"licenses/#copyright-holders_72","text":"exo-Chambly-Richelieu-Carignan","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citchambly-richelieu-carignangtfszip_1","text":"","title":"Filename: ca-qc_Exo-citchambly-richelieu-carignan.gtfs.zip"},{"location":"licenses/#copyright-holders_73","text":"exo-Chambly-Richelieu-Carignan","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citvallee-du-richelieugtfszip","text":"","title":"Filename: ca-qc_Exo-citvall\u00e9e-du-richelieu.gtfs.zip"},{"location":"licenses/#copyright-holders_74","text":"exo-Vall\u00e9e du Richelieu","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-citvallee-du-richelieugtfszip_1","text":"","title":"Filename: ca-qc_Exo-citvall\u00e9e-du-richelieu.gtfs.zip"},{"location":"licenses/#copyright-holders_75","text":"exo-Vall\u00e9e du Richelieu","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-omitsainte-juliegtfszip","text":"","title":"Filename: ca-qc_Exo-omitsainte-julie.gtfs.zip"},{"location":"licenses/#copyright-holders_76","text":"exo-Sainte-Julie","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-omitsainte-juliegtfszip_1","text":"","title":"Filename: ca-qc_Exo-omitsainte-julie.gtfs.zip"},{"location":"licenses/#copyright-holders_77","text":"exo-Sainte-Julie","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-mrclesmoulinsurbisgtfszip","text":"","title":"Filename: ca-qc_Exo-mrclesmoulinsurbis.gtfs.zip"},{"location":"licenses/#copyright-holders_78","text":"exo-Terrebonne-Mascouche","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-mrclesmoulinsurbisgtfszip_1","text":"","title":"Filename: ca-qc_Exo-mrclesmoulinsurbis.gtfs.zip"},{"location":"licenses/#copyright-holders_79","text":"exo-Terrebonne-Mascouche","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-mrcdelassomptiongtfszip","text":"","title":"Filename: ca-qc_Exo-mrcdelassomption.gtfs.zip"},{"location":"licenses/#copyright-holders_80","text":"exo-L'Assomption","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_exo-mrcdelassomptiongtfszip_1","text":"","title":"Filename: ca-qc_Exo-mrcdelassomption.gtfs.zip"},{"location":"licenses/#copyright-holders_81","text":"exo-L'Assomption","title":"Copyright holders"},{"location":"licenses/#filename-ca-qc_lavalgtfszip","text":"","title":"Filename: ca-qc_Laval.gtfs.zip"},{"location":"licenses/#copyright-holders_82","text":"Societe de transport de Laval","title":"Copyright holders"},{"location":"licenses/#filename-us-or_trimetgtfszip","text":"","title":"Filename: us-or_Trimet.gtfs.zip"},{"location":"licenses/#copyright-holders_83","text":"Portland Streetcar Portland Aerial Tram TriMet","title":"Copyright holders"},{"location":"licenses/#filename-us-or_trimetgtfszip_1","text":"","title":"Filename: us-or_Trimet.gtfs.zip"},{"location":"licenses/#copyright-holders_84","text":"Portland Streetcar Portland Aerial Tram TriMet","title":"Copyright holders"},{"location":"licenses/#filename-hu_mavgtfszip","text":"","title":"Filename: hu_mav.gtfs.zip"},{"location":"licenses/#copyright-holders_85","text":"ROeEE M\u00c1V MAV-START","title":"Copyright holders"},{"location":"licenses/#filename-hu_volanbuszgtfszip","text":"","title":"Filename: hu_volanbusz.gtfs.zip"},{"location":"licenses/#copyright-holders_86","text":"Vol\u00e1nbusz - Ercsi Vol\u00e1nbusz - G\u00f6d\u00f6ll\u0151 Vol\u00e1nbusz - Monor Vol\u00e1nbusz - V\u00e1c Vol\u00e1nbusz - \u00c9rd Vol\u00e1nbusz - Baja Vol\u00e1nbusz - B\u00e9k\u00e9scsaba Vol\u00e1nbusz - B\u00e9k\u00e9s Vol\u00e1nbusz - Csongr\u00e1d Vol\u00e1nbusz - Gyula Vol\u00e1nbusz - H\u00f3dmez\u0151v\u00e1s\u00e1rhely Vol\u00e1nbusz - Mak\u00f3 Vol\u00e1nbusz - Mez\u0151ber\u00e9ny Vol\u00e1nbusz - M\u00f3rahalom Vol\u00e1nbusz - Orosh\u00e1za Vol\u00e1nbusz - Szentes Vol\u00e1nbusz - Szeksz\u00e1rd Vol\u00e1nbusz - Bonyh\u00e1d Vol\u00e1nbusz - Koml\u00f3 Vol\u00e1nbusz - Moh\u00e1cs Vol\u00e1nbusz - Sikl\u00f3s Vol\u00e1nbusz - Szigetv\u00e1r Vol\u00e1nbusz - Si\u00f3fok Vol\u00e1nbusz - Fony\u00f3d Vol\u00e1nbusz - Nagyat\u00e1d Vol\u00e1nbusz - Csurg\u00f3 Vol\u00e1nbusz - B\u00e1tasz\u00e9k Vol\u00e1nbusz - Mez\u0151k\u00f6vesd Vol\u00e1nbusz - Balmaz\u00fajv\u00e1ros Vol\u00e1nbusz - Hajd\u00faszoboszl\u00f3 Vol\u00e1nbusz - Kazincbarcika Vol\u00e1nbusz - \u00d3zd Vol\u00e1nbusz - Tisza\u00fajv\u00e1ros Vol\u00e1nbusz - Ny\u00edregyh\u00e1za Vol\u00e1nbusz - Ajka Vol\u00e1nbusz - Balatonf\u00fcred Vol\u00e1nbusz - Balatonf\u0171zf\u0151 Vol\u00e1nbusz - Gy\u0151r Vol\u00e1nbusz - Keszthely Vol\u00e1nbusz - K\u00f6rmend Vol\u00e1nbusz - Lenti Vol\u00e1nbusz - Mosonmagyar\u00f3v\u00e1r Vol\u00e1nbusz - Nagykanizsa Vol\u00e1nbusz - P\u00e1pa Vol\u00e1nbusz - Sopron Vol\u00e1nbusz - V\u00e1rpalota Vol\u00e1nbusz - Zalaegerszeg Vol\u00e1nbusz - Szolnok Vol\u00e1nbusz - Eger Vol\u00e1nbusz - Salg\u00f3tarj\u00e1n Vol\u00e1nbusz - J\u00e1szber\u00e9ny Vol\u00e1nbusz - Gy\u00f6ngy\u00f6s Vol\u00e1nbusz - Balassagyarmat Vol\u00e1nbusz - Karcag Vol\u00e1nbusz - Tiszaf\u00fcred Vol\u00e1nbusz - Mez\u0151t\u00far Vol\u00e1nbusz - \u00dajsz\u00e1sz Vol\u00e1nbusz - B\u00e1tonyterenye Vol\u00e1nbusz - Duna\u00fajv\u00e1ros Vol\u00e1nbusz - Esztergom Vol\u00e1nbusz - Kom\u00e1rom Vol\u00e1nbusz - Oroszl\u00e1ny Vol\u00e1nbusz - Sz\u00e9kesfeh\u00e9rv\u00e1r Vol\u00e1nbusz - Tata Vol\u00e1nbusz","title":"Copyright holders"},{"location":"licenses/#filename-hu_bkkgtfszip","text":"","title":"Filename: hu_bkk.gtfs.zip"},{"location":"licenses/#copyright-holders_87","text":"BKK M\u00c1V-H\u00c9V","title":"Copyright holders"},{"location":"licenses/#filename-sk_zsskgtfszip","text":"","title":"Filename: sk_zssk.gtfs.zip"},{"location":"licenses/#copyright-holders_88","text":"\u017delezni\u010dn\u00e1 spolo\u010dnos\u0165 Slovensko, a.s.","title":"Copyright holders"},{"location":"licenses/#filename-ie_transit-for-irelandgtfszip","text":"","title":"Filename: ie_transit-for-ireland.gtfs.zip"},{"location":"licenses/#copyright-holders_89","text":"Citylink Nitelink, Dublin Bus Go-Ahead Ireland Bus \u00c9ireann Waterford Bernard Kavanagh & Sons Luas Iarnr\u00f3d \u00c9ireann / Irish Rail Bus \u00c1tha Cliath \u2013 Dublin Bus Bus \u00c9ireann Go-Ahead Ireland Aircoach Catherine Madigan Corduff Travel Express Bus Farragher International Travel Services Finnegan-Bray Ltd Halpenny Transport J.J Kavanagh & Sons Joseph Foley Kearns Transport Mangan Tours Mcgeehan Coaches Mcgrath Coaches Michael Gray Coach Hire PJ Martley Slieve Bloom Coach Tours Swords Express Tralee People's Bus Service M4 Direct Healy Bus Mcgonagle Bus and Coach Hire Barrys Coaches Bus4u Dunnes Coaches K. Buggy Coaches Llimited Harrington's Ardgroom Matthew Whelan Mini Bus Hire Kelly Travel Westlink Coaches Patrick Gallagher Travel St.Kevin's Bus Service Andrew Wharton West Cork Connect Gleneagle Hotel (Killarney) Ltd Keelings Retail Uc Balbriggan Express Flagline Coaches Roscommon Coaches Flight Link Limited Dublin Express Burkesbus Collins Coaches Dublin Coach Bus Feda Teoranta TFI Local Link Mayo TFI Local Link Kerry TFI Local Link Cork TFI Local Link Galway TFI Local Link Longford Westmeath Roscommon TFI Local Link Cavan Monaghan TFI Local Link Tipperary TFI Local Link Waterford TFI Local Link Wexford TFI Local Link Louth Meath Fingal TFI Local Link Carlow Kilkenny Wicklow TFI Local Link Laois Offaly TFI Local Link Limerick Clare TFI Local Link Donegal Sligo Leitrim Kilbride Coaches Doherty's Coach Travel Wexford Bus Matthews Coach Hire Mc Ginley Coach Travel Treacy Coaches JJ/Bernard Kavanagh Ashbourne Connect Martin Leydon Coaches Gorey Bus Links Mcconnon Travel Joe Moroney Coach Hire Ltd Fair Isle Gorey Coach & Bus Co. Ltd. Ardcavan Coach Tours Kennedy Coaches Callinan Coaches Michael Moran Piltown Coaches Slevins Coaches Streamline Coaches Barrett Travel Hillview Transport Ltd Eamon Mcentee Shannon Hopper Michael O'Reilly Seamus O'Reilly Royal Breffni Tours Ltd TU Dublin Blancahrdstown Patrick Keenan Eugene Deffely Go-Ahead Ireland Hallahans Bus and Coach Hire Island Ferries Teoranta TFI Local Link Kildare South Dublin Francis Finegan Coach Hire Walsh's Executive Travel Nolan Coaches Allen's Bus Hire Mccaffrey Coaches Limited MCD Minibus Hire","title":"Copyright holders"},{"location":"licenses/#filename-no_enturgtfszip","text":"","title":"Filename: no_Entur.gtfs.zip"},{"location":"licenses/#copyright-holders_90","text":"Agder Kollektivtrafikk AS AtB \u00c5lesund Turvogn Service Avinor Beffen Boreal Askeladden Reiser Forsvarsbygg Oscarsborgfergen Brakar Bussring Best Arctic Snelandia Vy FlixBus Flytoget Vy GlobeOrbit100 Go-Ahead Norge AS Go Fjords Havila H\u00f8gsfjordferja Hurtigruten Hyke F\u00e6mund II Gjendeb\u00e5ten AS Innlandstrafikk Rondejenta Skibladner Norled AS Fjord1 ASA Kolumbus AMBU Pendlerrute The Fjords FRAM Sundb\u00e5ten Flybussen Connect Norsk Industriarbeidermuseum Nordland fylkeskommune Vy NOR-WAY Bussekspress Bygd\u00f8yfergen MF \u00d8isang Oscarsborgfergen \u00d8stfold kollektivtrafikk Ruter SJ Nord SJ Skyss Skyss Norled Lustrabaatane Tide Buss AS Stadbussen Telemarkskanalen Farte Tide AS Troms fylkestrafikk Torghatten Ulriken Unibuss Bast\u00f8 Fosen VKT Vy Travel Vy T\u00e5g Vy Vy Buss","title":"Copyright holders"},{"location":"licenses/#filename-de_delfigtfszip","text":"","title":"Filename: de_DELFI.gtfs.zip"},{"location":"licenses/#copyright-holders_91","text":"Bus Faller Bus Hassis Bus NVW (Walz) Verkehrsgesellschaft Vorpommern-R\u00fcgen GVB Verkehrs- und Betriebsgesellschaft Gera mbH Verkehrsunternehmen Andreas Schr\u00f6der Salza Tours RVG Regionalverkehr Gera RB-Gesellschaft UHK mbH Jenaer Nahverkehr GmbH JES Verkehrsgesellschaft mbH Personenverkehrsgesellschaft mbH Weimarer Land Stadtwirtschaft Weimar GmbH Th\u00fcringerwaldbahn und Stra\u00dfenbahn Gotha GmbH Ilmenauer Omnibusverkehr Kombus MBB GmbH G. Ilchmann SNG Suhl VWG S\u00f6mmerda Weingart Werrabus Becker, Martin Omnibus Friedrich FS Omnibus GmbH & Co. KG Omnibusbetrieb Lust Rheiner Verkehrsbetrieb Mersch GmbH B\u00f6rdeBus Verkehrsgesellschaft mbH PVG Burgenlandkreis Dessauer Verkehrsgesellschaft Dessauer Verkehrs- und Eisenbahngesellschaft Harzer Verkehrsbetriebe Traditionsverein Kleinbahn des Kreises Jerichow I e.V. NSB Naumburger Stra\u00dfenbahn Parkeisenbahn Vatterode PVGS Altmarkkreis Salzwedel S-Bahn Hamburg Nahreisezug vogtlandbahn - Die L\u00e4nderbahn GmbH DLB WESTbahn SNCF Voyages Deutschland DB Regio AG Nordost DB Regio AG Nord DB Regio AG NRW DB Regio AG S\u00fcdost DB RegioNetz Verkehrs GmbH Erzgebirgsbahn DB RegioNetz Verkehrs GmbH Oberweisbacher Berg+Schwarzatalb DB Regio AG Mitte Region Hessen DB RegioNetz Verkehrs GmbH Kurhessenbahn DB RegioNetz Verkehrs GmbH Westfrankenbahn DB Regio AG Baden-W\u00fcrttemberg DB ZugBus Regionalverkehr Alb-Bodensee S\u00dcWEX DB Regio AG Bayern DB RegioNetz Verkehrs GmbH G\u00e4ubodenbahn DB RegioNetz Verkehrs GmbH S\u00fcdostbayernbahn DB Regio AG Mitte Region S\u00fcdwest Sylt Shuttle Plus DB/SBB/TI Eurocity Milano Nederlandse Spoorwegen THURBO Regionale Verkehrsbetriebe Schaffhausen SBB SBB GmbH S\u00fcdbadenbus Arriva Danmark AKN Eisenbahn AG Rhenus Veniro Albtal-Verkehrs-Gesellschaft alex - Die L\u00e4nderbahn GmbH DLB agilis Dessau-W\u00f6rlitzer Eisenbahn ABELLIO Rail NRW GmbH Brohltalbahn SDG S\u00e4chsische Dampfeisenbahngesellschaft mbH Bentheimer Eisenbahn Kandertalbahn Chiemgauer Lokalbahn City-Bahn Chemnitz Mitteldeutsche Regiobahn Rurtalbahn EVB ELBE-WESER GmbH Kasbachtalbahn Freiberger Eisenbahngesellschaft Erfurter Bahn Express Bodensee-Oberschwaben-Bahn Nebenbahn Gaildorf-Untergr\u00f6ningen Hohenzollerische Landesbahn AG Ilztalbahn Stadtbahn Karlsruhe SEV K\u00f6ln-D\u00fcsseldorfer Deutsche Rheinschifffahrt AG Berchtesgadener Land Bahn trilex-express - Die L\u00e4nderbahn GmbH DLB trilex - Die L\u00e4nderbahn GmbH DLB Museumsbahn REGIOBAHN Meridian Mainschleifenbahn Mecklenburgische B\u00e4derbahn Molli Norddeutsche Eisenbahn Gesellschaft cantus Verkehrsgesellschaft Breisgau-S-Bahn GmbH BayernBahn Betriebs-GmbH NEB Niederbarnimer Eisenbahn National Express Nachtzug MSM Partyzug DB Fernverkehr (Codesharing) Nordbahn Eisenbahngesellschaft \u00d6chsle-Bahn-Betriebsgesellschaft mbH1 oberpfalz-express - Die L\u00e4nderbahn GmbH DLB oberpfalzbahn - Die L\u00e4nderbahn GmbH DLB S\u00e4chsisch-Oberlausitzer Eisenbahngesellschaft Hanseatische Eisenbahn GmbH enno metronom VIAS GmbH VIAS Rail GmbH AUTOZUG Sylt Pressnitztalbahn S\u00fcdwestdeutsche Verkehrs-AG agilis-Schnellzug S\u00fcd-Th\u00fcringen-Bahn Express S\u00fcd-Th\u00fcringen-Bahn MittelrheinBahn (Trans Regio) Ulmer Eisenbahnfreunde Usedomer B\u00e4derbahn1 vlexx vlexx1 vlexx2 Nebenbahn Vaihingen-Enzweihingen Wanderbahn im Regental Wyker Dampfschiffs-Reederei F\u00f6hr-Amrum GmbH Daadetalbahn Wutachtalbahn waldbahn - Die L\u00e4nderbahn GmbH DLB Kreisbahn Mansfelder Land erixx Adler-Schiffe Bayerische Regiobahn Bayerische Zugspitzbahn Rh\u00f6n-Z\u00fcgle Hochbahn U-Bahn Hochbahn Bus Neu KVG EVB-Ma AKMasten HADAG-Z VKP VHH Bus DivVgl/Waldorf1 Stadtverkehr Lindau ASEAG Netliner ABELLIO Rail NRW GmbH1 Hessische Landesbahn GmbH Eurobahn Friedrich M\u00fcller Omnibus GmbH BahnTouristikExpress Kein Bereich M\u00fcller (FMO) Erfurter Verkehrsbetriebe AG VVB V\u00f6lklinger Verkehrsbetriebe GmbH Seilbahnen Thale Stadtverkehr Aschaffenburg Bus9 Strasse Kahlgrund VG BUS SWL POB Vnetz Hauptlinien POB Vnetz Sch\u00fclerverkehr Abellio Rail Mitteldeutschland GmbH VSH1 ARGE HRS Omnibus OHG Bruns Reisen GmbH Varel Aktiv Bus Flensburg GmbH Autokraft Kiel GmbH AllerBus BREMERHAVEN BUS Bittner/Emsland-Mitte BUSPUNKT GmbH Br\u00fcnemeyer Reisen & Transporte GmbH Bruns Reisen GmbH Bad Zwischenahn Bremer Stra\u00dfenbahn AG Braunschweiger Verkehrs-GmbH CeBus GmbH & Co. KG Delbus GmbH & Co. KG Delmenhorst-Harpstedter Eisenbahn GmbH DB Regio Bus Nord GmbH Hermann Edzards Omnibusbetrieb Lkr. Emsland Fischer Linienverkehre GmbH & Co. KG Gerdes Reisen W. Giese Nachf. Omnibusbetrieb GmbH G\u00f6ttinger Verkehrsbetriebe (G\u00f6VB) Stadtbus Goslar GmbH Kraftverkehrsgesellschaft Hameln mbH Jacobs Reisedienst SBV Jan\u00dfen GmbH & Co. KG Kreisbahn Aurich GmbH KVG Stade GmbH & Co. KG L\u00fcchow-Schmarsauer Eisenbahn Meyering Verkehrsgesellschaft mbH Stadtbusgesellschaft Nienburg/Weser mbH Verkehrsgemeinschaft Grafschaft Bentheim Tjaden Nahverkehrs GmbH RegioBus Hannover GmbH Autobus Stoss GmbH Stadtverkehr Eckernf\u00f6rde Schaumburger Verkehrs-Gesellschaft mbH Stadtwerke L\u00fcbeck Mobil GmbH Stadtwerke Emden GmbH SWN Stadtwerke Neum\u00fcnster GmbH Sylter Verkehrsgesellschaft Kraftverkehrsgesellschaft mbH Braunschweig Transdev Nord GmbH \u00fcstra Hannoversche Verkehrsbetriebe AG Reisedienst Hinrich Uffen Verkehrsbetriebe Bachstein Verkehrsbetriebe Wesermarsch GmbH Verkehrsgemeinschaft Emsland-S\u00fcd Verkehrsbetriebe Grafschaft Hoya GmbH Peiner Verkehrsgesellschaft mbH Landkreis Wolfenb\u00fcttel Verkehrsbetriebe Kreis Pl\u00f6n GmbH Verkehrsgesellschaft Landkreis Gifhorn mbH Verkehrsbetriebe Oldenburger Land Schrage Reisen Stadtwerke Osnabr\u00fcck AG - Verkehrsbetriebe Verkehrsbetriebe Schleswig-Flensburg GmbH Verkehr und Wasser GmbH (VWG) Stadtwerke Verkehrsbetriebe Wilhelmshaven GmbH Ert Wissmann Omnibusbetrieb GmbH Wolfsburger Verkehrs-GmbH Weser-Ems-Bus Anrufverkehre Regionalbus Braunschweig GmbH J\u00f6rg Stadtbus Schweinfurt PVU 8000er-Linien Astel SV-Zgorzelec Bus Stadtwerke Baden-Baden KVIPVH F\u00e4hren Wettin-L\u00f6bej\u00fcn DB Regio AG S-Bahn Rhein-Main nahbus1 Rheinbahn MetroBus Heidekreis RVHI Regionalverkehr Hildesheim GmbH SVHI Stadtverkehr Hildesheim GmbH Willy Hummert Omnibusverkehr GmbH Wyker Dampfschifs-Reederei1 rebus SSB-Bus (nicht VVS) Stadtwerke M\u00fchlheim1 Stadtwerke Rodgau1 Regionalverkehre Start Deutschland GmbH Regionalverkehre Start Deutschland GmbH D\u00e4nische Staatsbahnen HZPP MAV PKP Intercity SNCB SNCF Trenitalia ZSSK Ceske Drahy NordWestBahn Gemeinde Ringgau DB Fernverkehr AG Regionalverkehre Start Unterelbe mbH SWU \u00dcberlingen ELKO Ehard VGN Kraus Reisen Bus10 MKB-M\u00fchlenkreisBus GmbH Omnibus-Nahverkehrs-Service Landkreis Heilbronn Landkreis T\u00fcbingen Anrufsammeltaxi1 SV Hohenstein-Ernstthal Bus Kraichtal Bus GbR Sonstige Unternehmen Bus11 Festbus Laupheim Kieler Verkehrsgesellschaft mbH Kr\u00fcmberg Reisen GmbH Schlepp- und F\u00e4hrgesellschaft Kiel mbh (SFK) DB Regio Mitte ABELLIO Rail Baden-W\u00fcrttemberg GmbH Go-Ahead Verkehrsgesellschaft Deutschland mbH HarzBus GbR die linie ARRIVA_NML ARRIVA_ZL Aachener Stra\u00dfenbahn und Energieversorgungs-AG WestVerkehr GmbH Hartmann Scherer Reisen Omnibus Gesellschaft mbH Komm mit AB____ ABELLIO Rail Baden-W\u00fcrttemberg GmbH Schw\u00e4bische Alb-Bahn Verkehrsgemeinschaft Landkreis Gotha GbR Rohde Verkehrsbetriebe NF Mitte F\u00e4hre Wei\u00dfe Flotte F\u00e4hre Antaris Meier Stadtwerke Dachau, Dachau1 Lollsfahrten Dortmunder Stadtwerke Taxibus Leibfritz Busreisen Andreesen Morten GmbH & Co. KG Vineta Autobus GmbH Auro Schneider Hock Grasmann neu UBB-Bus1 Gebken Reisen GmbH Hutfilters Reisedienst GmbH & Co. Omnibusbetrieb Nienaber Externe Leistungen Buchsatz Sch\u00fclerlinien CVAG SV KO Oberwiesenthal Bus Regensburger Verkehrsbetrieb1 Sch\u00fclerlinien Region Zwickau Stadtverkehr Pfaffenhofen (Ilm) Delmenhorst-Harpstedter Eisenbahnhfreunde e.V Westliche W\u00e4lder 01 Wirtschaftsbetrieb Bad Hersfeld B\u00fcndel_1_4_6 TRI Train Rental GmbH LB 1 Vogel VGN 204 - VGN 248 ARGE Nahverkehrsgesellschaft Merzig-Wadern Verkehrsgesellschaft Landkreis Osnabr\u00fcck Verkehrsunternehmen Wartburgmobil VUW gkA\u00f6R Bayer Tempus mobil Waibel Bus Verkehrsgemeinschaft Vechta Stadtbus Kronberg im Taunus1 Linienb\u00fcndel 5 (Abteiland) S-Bahn Omnibus Gr\u00f6tzinger GmbH Heidenheimer Verkehrsgesellschaft1 Eisenbahnen und Verkehrsbetriebe Elbe-Weser GmbH Reisedienst von Rahden GmbH & Co. KG Weserf\u00e4hre GmbH Tschechische Republik (Sonstige) WestfalenBahn Omnibus Verkehrs Gesellschaft mbH Sonneberg/Th\u00fcr. RBA Dillingen Unbekannt Reiseb\u00fcro Winkelmann GmbH W\u00fcrzburger Stra\u00dfenbahn Personen- und Reiseverkehrs GmbH Greiz LWW Bustouristik GmbH Rurtalbus GmbH \u00d6sterreichische Bundesbahnen Linienverkehr Weissenburg Linienverkehr1 DB Regio AG Mitte cantus Verkehrsgesellschaft Erfurter Verkehrsbetriebe AG Nordh\u00e4user Verkehrsbetriebe GmbH Ostalbkreis ARGE SFB Fr\u00f6lich Linie Stadt Pohlheim D\u00fcrk-Reisen Bus (SSB) Expressbus Relex1 Alb-Donau-Kreis1 Andre-Touristk Vetter Verkehrsbetriebe Bus12 Neustadt an der Aisch Rh\u00f6n-Grabfeld Bus (Stadtverkehr) Bus (Region) Nachtbus Regionalverkehr Oberbayer (\u00fcberregional) DB ZugBus (RAB) Bereich Bus Miltenberg-Elsavatal Autokraft Kiel GmbH Anrufverkehre DB Region Nord Anrufverkehre ESTW LB2 Vogel VGN 202-202-246 Schienenersatzverkehre Reiseb\u00fcro Beckermann Weserf\u00e4hre Bremen Rheinf\u00e4hre Maul GmbH Odenwald-Regional-Ges. Busverkehr Wissm\u00fcller Schnappinger Stadtbus Bad Wildungen Bus13 Stadtbus Kulmbach Weser-Ems-Bus Auftragnehmerleistung von Wilmering Weser-Ems-Bus Betrieb Bremen Weser-Ems-Bus Betrieb Ostfriesland Weser-Ems-Bus Betrieb Osnabr\u00fcck RAB-Bus (Z\u00d6A-LB-NW) Hal \u00f6ver Go-Ahead Baden-W\u00fcrttemberg GmbH G\u00f6rlitzer Verkehrsbetriebe VGN Stadtbus Konstanz Landkreis Konstanz Stadtbus Singen (Htw) Freizeitverkehr U-Bahn N\u00fcrnberg Tram N\u00fcrnberg Stadtverkehr F\u00fcrth Schmetterling Reisen Erlanger Stadtverkehr Hetzler & Pfadt vorher Viabus Regional Bus Stuttgart Westpfalz HzL-Zug Ebenbeck Frey M\u00fcckenhausen Pellkofer Reicheneder Speckner Stadtwerke Dingolfing Stadtwerke Landau H\u00fclsmann Reisen Stadtbus Weiden \u00dcberlandverkehr Wagenh\u00e4user VGS KVIP-AST Ratzeburg-M\u00f6llner Verkehrsbetriebe GmbH \u00dcberlandlinien Schwandorf sonstige Linien Personenverkehrsgesellschaft Altmarkkreis Salzwedel mbH TGO-EFA Datenversorgung SWG-EFA Datenversorgung S-Bahn Hannover Go-Ahead Bayern GmbH FlixBus-de FlixTrain-de Bus Engel Fahrplan 2022 F\u00fcrth Fahrplan 2022 AST/Rufbus Kreativ Tours GmbH Stroh Bus-Verkehrs GmbH, Offenbach Georg Becker GmbH & Co. KG Schau in's Land Hain GmbH Reise Fischer GmbH Staab Wendelsteinbahn Bayerische Seen-Schifffahrt1 Chiemsee-Schiffahrt Ludwig Fe\u00dfler Dillschnitter GmbH und Co. KG Zickenheiner GmbH Bus7 Omnibusverkehr Gloss Zarth GmbH1 Kreis Euskirchen Verkehrsunternehmen Regionalverband Gro\u00dfraum Braunschweig DB Regio Bus Mitte1 BKR Mobility Kalmer Reisen GmbH Stadtverkehr Herzogenaurach Grand Est Bad Salzdetzfurth Ilmebahn GmbH Scheithauer & Weihrauch GbR Verkehrsgesellschaft S\u00fcdniedersachsen mbH Weihrauch Uhlendorff GmbH Gemeinde Ebhausen Regiobus Uhlendorff GmbH & Co. KG Scheithauer Reisen H\u00f6rmooslinie Regionalbus Zweibr\u00fccken CityBus Mobil GmbH VerkehrsService GmbH Gro\u00df-Gerau Verkehrsbetriebe des Landkreises Leer GmbH Flexible Bedienformen ADK DB Regio Bus Ost GmbH1 BKW Bad Wildungen Bamberg Cargo Logistik Rail Service Bus14 SWEG Bahn Stuttgart RheinRuhrBahn Regionalverkehre Start Deutschland GmbH Omnibus Verkehr Oberlausitz Firma Schieck Verkehr Hainich OHG Verkehr Werraland OHG Verkehr Werra OHG Rohde Verkehrsbetriebe Ostholstein Nord Start Deutschland GmbH SEV Start Deutschland GmbH Mainzer Mobilit\u00e4t Friedrich M\u00fcller Omnibus im KVSH VGH-Verkehrsgesellschaft Hoyerswerda Arendt Busbetrieb GmbH Regionale \u00f6. Bahn der Stadt Pfullendorf 02 04 Rathje Autobus Stoss GmbH1 Bus15 Vonau Reisedienst GmbH & Co. KG Ebenbeck1 Wertach 01 (ab j24) Stauden 02 (ab j24) Sieghart Hahne Reisen e.K Omnibusunternehmen Paul Kn\u00fchl e.K. Lippe1 Lippe2 Lippe3 Lippe4 Lippe5 Bad Salzuflen Lemgo Detmold VGL-AST/ALF GBN-moBiel-Stadtbahn Bielefeld Diverse GBN-AST/ALF L\u00fcbbecke A Buende B Minden C L\u00f6hne/Oey D Herford E Vlotho F MHS-AST/ALF GTS\u00fcdwest GTNord GTS\u00fcdost GTStadt GTNordwest NVG-AST/ALF bkr-mobility & DB Regio Bus Mitte bkr-mobility & DB Regio Bus Mitte & Sche ExpressBus1 NachtTram1 NachtBus SEV Tram Koenigsbrunn Stadtbus zz_TaxiXXL Hofmann Omnibusverkehr Lokale Nahverkehrsgesellschaft Fulda mbH Regionalverkehr Westsachsen GmbH Stadtverkehr Friedrichshafen Mittelhaardt Nahverkehrsgesellschaft mbH Vorderpfalz Nahverkehrsbetriebe Birkenfeld OstalbMobil VRE24 Bus Region 1000er Linien Linienverkehr2 zz_TZT\u00fcb SEV Nacht Rhein-Sieg-Verkehrsgesellschaft mbH Griesar Reisen GmbH Hoffmann-Reisen Bischoff-Touristik GmbH & Co. KG bkr-mobility & Scherer Reisen bkr mobility F\u00e4hrgemeinschaft Kaub DB Regio Bus Mitte GmbH1 Bustouristik Marenbach GmbH & Co. KG Meso and more GmbH Modigell & Scherer GmbH Omnibusbetrieb Orthen GmbH Rheinf\u00e4hre Linz-Kripp GmbH Koblenzer Verkehrsbetriebe GmbH Verkehrsbetriebe Mittelrhein AWV Martin Becker GmbH & Co. KG DB Regio Bus Rhein-Mosel GmbH RMV Rhein-Mosel Verkehrsgesellschaft mbH FriBus Westerwaldbus des Kreises Altenkirchen G Jung Bus GmbH Verbandsgemeindeverwaltung Montabaur F\u00e4hre Boppard F\u00e4hre Loreley GmbH & Co. KG Stemmler Bus GmbH Mittelrheinischer Verkehrsbetrieb GmbH KVG Zickenheiner GmbH Verkehrsbetriebe Mittelrhein VREM Verkehrsbetrieb Rhein-Westerwald GmbH Wittelsbacher Land 03 (ab j21) Paartal 01 Zusam1 Wittelsbacher Land 01 Friedberg 011 Wittelsbacher Land 02 (ab j21) Bus Richard Eberhardt GmbH RBS AA + FMO SHA Rurseeschifffahrt Schienenersatzverkehr OMNIBUS STRASSENBAHN SONDERVERKEHRE Anrufsammeltaxi GVG 1 (B\u00fcndel Nr. 3) Schwabenbus 7 (B\u00fcndel Nr. 18) STVP BOGESTRA City-Express BOGESTRA Schnellbus BOGESTRA Stadtbahn, Linie U35 BOGESTRA Stra\u00dfenbahn BOGESTRA Bus Sonstige VU Buchmann B\u00fchler Ehrmann Grabherr Hagmann Hutter M\u00fcller Isny Reisch Schuler Strauss Volk Stra\u00dfenbahn Bahnen der Stadt Monheim M\u00fclheimer Verkehrsgesellschaft Busverkehr Rheinland Landkreis Cham Calw VPC Sch\u00fctzenbus Biberach Stadtwerke Biberach Klemens Diesch Diesch GmbH Gairing BC Reinalter BBS Schapfl Miller Probst Bottenschein Laupheim Fromm Kl\u00f6pfer Walk SWU Verkehr RAB NeUBus_RBA Gairing NU Weidachstein Oster Braunmiller SWU - SAM Dortmunder Stadtwerke U-Bahn Dortmunder Stadtwerke Bus Dortmunder Stadtwerke Hochbahn DVG Strab DVG Bus DVG Essener Verkehrs AG, Omnibus Essener Verkehrs AG, U-Bahn Essener Verkehrs AG, Stra\u00dfenbahn Private Omnibusunternehmer GmbH VAG - BUS VAG - Stadtbahn FREMD - Unternehmer Taxi HCR alles Hagener Stra\u00dfenbahn AG Bus Nachtverkehr Busverkehr Nordschwarzwald GmbH Bus AVG Bus RVS Bus W\u00f6hrle Bus VERA Bus SWEG Taxiverkehre Tram VBK Bus VBK SEV R+S (R-Bahn + S-Bahn) SEV T+B (Tram + Sonstige Busse) M\u00e4rkische Verkehrsgesellschaft MVG B\u00fcrgerbuspl\u00e4ne MVG Shuttelverkehr FH Iserlohn MVG ALF/AST Verkehr Nicht in MVV integriert MVV-Ruftaxi MVV-Regionalbus ExpressBus Stadtbus NIAG Beck + Schubert GmbH & CoKG Rheinbahn Stadtbahn Rheinbahn Strab Rheinbahn Bus Rheinbahn BusNE Rheinbahn SkyTrain SBG - BUS Stadtwerke Oberhausen St\u00e4dtische Werke Krefeld Strab St\u00e4dtische Werke Krefeld Bus Neusser Stadtwerke GmbH Bus Stadtwerke Remscheid Stadtwerke Solingen Verkehrsgesellschaft Ennepe-Ruhr mbH Vestische Stra\u00dfenbahnen GmbH Bus RVM Kreis Coesfeld RVM Kreis Warendorf Verkehrsgesellschaft Kreis Unna mbH RLG AST Westfalen Bus RVM Kreis Steinfurt Sch\u00e4pers Kreis ST Weilke Kreis ST Emsdettener Busreisen GmbH Euregio Verkehrsgesellschaft RVM Kreis Borken Kottenstedte GmbH StadtBus Rheine Gronemann GmbH RLG Hochsauerlandkreis RLG Kreis Soest NVV Busverkehr Ruhr-Sieg Stadtwerke M\u00fcnster Veelker GmbH & Co. KG Verkehrsbetriebe Hamm VGBreitenbach Verkehrsgemeinschaft Osnabr\u00fcck PVU-1000er-Linien Bus Region (Private VU) Bus BA BT PVU-Region SVZ Zwickau Strab SVZ Zwickau Bus RV RVW Bus SV CRM_GC_Bus SV Wendler Bus RV ASR Bus Stollberg Bus St\u00e4dteverkehr Gr\u00fcne Linie Bus SV Zschopau Bus SV Limbach-Oberfrohna Bus SV Chemnitz Strab SV Chemnitz Bus RV BVO Bus SV Annaberg-Buchholz Bus SV Aue Bus SV L\u00f6\u00dfnitz Bus SV Marienberg Bus SV Schwarzenberg Bus Bahnersatzverkehr Chemnitzer Modell Drahtseilbahn RV Mittweida Bus SV Burgst\u00e4dt Kleinfzg SV Frankenberg Bus SV Mittweida Bus SV Rochlitz Bus RV Freiberg Bus SV Fl\u00f6ha Bus SV Freiberg/Brand-Erbisdorf Bus RV D\u00f6beln SV D\u00f6beln VVV DB-Nahverkehr RBO-Bus KVG-Bus Autobusy Karlovy Vary BIELAWA CD Przewozy Regionalne Ostdeutsche Eisenbahn GmbH Koleje Dolnoslaskie Lassak-Reisen Trilex OBB-Beck S.Wilhelm-OBB Schmidt-Reisen Waldeisenbahn Muskau CSAD-Liberec MZK Boleslawiec PKS Boleslawiec PKS VOYAGER PKS Jelenia Gora MZK Jelenia G\u00f3ra Regionalbusse (privat) Anruf-Sammel-Taxi RNV LU-MA (Strab) RNV Heidelberg (Strab) RNV HD-MA-Weinheim (Strab) Rheinf\u00e4hre Altrip RNV Mannheim (Bus) RNV Ludwigshafen(Bus) RNV Heidelberg (Bus) S\u00fcdwestdeutsche-Verkehrs-AG Stadtwerke Bad D\u00fcrkheim Stadtwerke Eberbach Stadtwerke Lampertheim Stadtwerke Viernheim PalatinaBus GmbH Busverkehr-Rhein-Neckar Omnibusverkehr Rhein-Nahe GmbH Verkehrsgesellschaft Untermain Verkehrsgesellschaft Gersprenztal/Sauter Verkehrsbetriebe Leininger Land/Behles Reisedienst Walter M\u00fcller Biblis Berberich Walld\u00fcrn Verkehrsgemeinschaft Main-Tauber Queichtal Nahverkehrsgesellschaft Regionalbus-Westpfalz Sonstige Private im VRN Private nicht im VRN BASF Werkslinienverkehr Sonstige F\u00e4hrbetriebe Stadtverkehr Ingelheim ORN im RNN Stadtverkehr Bingen Stadtwerke Kaiserslautern Stadtwerke Pirmasens Stadtwerke Zweibr\u00fccken restliches \u00dcbergangstarifgebiet K\u00f6lner VB Stadtwerke Bonn RSVG OVAG Meckenheim Euskirchen Bergisch Gladbach Wermelskirchen REVG Stadtverkehr Euskirchen Stadtverkehr H\u00fcrth Stadtverkehr Br\u00fchl Sch\u00e4fer Reisen Stadtwerke Wesseling Stadtverkehr SHA R\u00f6hler Niederrheinwerke Viersen mobil GmbH NE-Zug (VVS) Stadtbahn Zahnrad-/Seilbahn Privatunternehmer-Bus (VVS) Nachtbus (SSB) Nachtbus (Region) Privatunternehmer-Bus (nicht VVS) Ruftaxi entlang Linie Ruftaxi nicht entlang Linie Linientaxi Museumsbahn (GES) Museumsstra\u00dfenbahn (SHB) Privatunternehmer-Bus (Enzkreis) BRS Busverkehr Ruhr-Sieg GmbH Verkehrsbetriebe Westfalen-S\u00fcd GmbH Schwebebahn Wuppertaler Stadtwerke Omnibusbetrieb Edith Meichsner GmbH Ingolst\u00e4dter Verkehrsgesellschaft mbH Landkreis Landshut Landkreis M\u00fchldorf (Inn) NEW mobil und aktiv M\u00f6nchengladbach GmbH J\u00e4gle Seitz Demmelmair Egenberger Osterrieder Schwarzer BBS Brandner (VMK) BBS Verkehrs Ges. (VMK) Klaus Brandner/Babenhausen (VMK) Bettighofer Dirr/Stricker Gruber Kirchweihtal Brandner Unterallg\u00e4u Angele-Braunmiller Stadtverkehr Bad W\u00f6rishofen Stadtverkehr Memmingen/Angele Berchtold Steber Reisen / Stadtverkehr Mindelheim Haslach Bus Stadtbus Kempten Baumeister Schattmeier Schweighart Schwabenbus RBA Ingolstadt RBA Kempten RBA Lindau NeuBus RBA Betrieb Augsburg RBA Neu Ulm Schwabenbus Dillingen Landkreis Rottal Regional-Busse RBS RVS Regensburger Verkehrsbetrieb Stadtverkehr Schwandorf (WiesBus) RegioBus NVH U-Bahn M\u00fcnchen Bus Stadtwerke Passau Stadtwerke Trier Moselbahn Saargau on Tour Rhein-Mosel Verkehrsgesellschaft mbH Linden Reisen Eifel-Mosel Verkehrsgesellschaft Robert M\u00fcller-Kylltal Jozi-Reisen Stadtverkehr T\u00fcbingen GmbH Kreisverkehrsbetrieb Sigmaringen Omnibus-Verkehr Ruoff GmbH Eissler-Reisen GmbH & Co.KG Zollern-Alb-Anrufbus SWEG (HzL) Bus RSV-GmbH Hogenm\u00fcller & Kull Co. Stadt Rottenburg am Neckar Edel Reisen Beck GmbH Gebr. Frankenhauser GbR Omnibus Gro\u00df GmbH HVB Wiest + Sch\u00fcrmann GmbH Fa. Willy Kopp Omnibusverkehr Omnibus Kurzenberger GmbH Wilhelm Lutz Omnibusverkehr GmbH Gebr. Maas GmbH & Co.KG Reisch GmbH Omnibusverkehr Sto\u00df GmbH Stadtwerke Bad Urach B\u00fcrgerbusverein e.V. Stadtwerke Sigmaringen Knoll Fahrtenservice Landkreis Tuttlingen Verkehrsbetrieb Greifswald Mecklenburg Vorpommersche VG Verkehrsgesellschaft Vorp.-Greifswald DVB-Stra\u00dfenbahn OVPS-Stadtbus Kirnitzschtalbahn Bus\u00fcbernahme OVPS DVB-Bus RVD-Busverkehr VGM-Busverkehr RBO-Busverkehr VGH Busverkehr Bergbahn F\u00e4hre Bus-RSAG Ruftaxi Schwerin Bus Omnibus NEB Betriebsgesellschaft mbH Verkehrsgesellschaft Teltow-Fl\u00e4ming mbH S-Bahn Berlin GmbH Verkehrsgesellschaft Oberspreewald-Lausitz mbH Oberhavel Verkehrsgesellschaft mbH Verkehrsbetriebe Brandenburg an der Havel GmbH G\u00fcnter Anger G\u00fcterverkehrs GmbH & Co. Omnibusvermietung KG Sch\u00f6neicher R\u00fcdersdorfer Stra\u00dfenbahn GmbH Uckerm\u00e4rkische Verkehrsgesellschaft Havelbus Verkehrsgesellschaft mbH Cottbusverkehr GmbH Busverkehr Oder-Spree GmbH Barnimer Busgesellschaft mbH Berliner Verkehrsbetriebe Stadtverkehrsgesellschaft mbH Frankfurt (Oder) Regionale Verkehrsgesellschaft Dahme-Spreewald mbH Strausberger Eisenbahn GmbH Verkehrsmanagement Elbe-Elster GmbH Busverkehr Gerd Schmidt ORP Ostprignitz-Ruppiner Personennahverkehrsgesellschaft mbH Verkehrsbetrieb Potsdam GmbH Gemeinde Seeheim-Jugendheim FahrPlan Verkehrsgesellschaft mbH Kreisverkehrsgesellschaft Main-Kinzig mbH Omnibus Sauter HLB Hessenbus Hofheim Stadtwerke Verkehrsgesellschaft Frankfurt HEAG Mobilo Stadtwerke Oberursel Omnibusbetrieb Heuser GmbH Becker und Bender Busverkehr GbR Stadtwerke R\u00fcsselsheim Erfurter Bahn Stadtwerke Gie\u00dfen Magistrat der Stadt Homburg v.d.H. HEAG mobiBus GmbH + Co. KG Stadt Friedrichsdorf Stadtwerke Marburg GmbH LNG Fulda Offenbacher Verkehrsbetriebe GmbH Omnibusbetrieb Winzenh\u00f6ler GmbH + Co. KG Transdev Rhein-Main ALV Vogelsberg Hanauer Stra\u00dfenbahn GmbH Verkehrsges. Gersprenztal Stadtwerke Langen GmbH Fa. Stadtwerke Bad Vilbel GmbH Fa. Jungermann VGO Gie\u00dfen ALV Marburg Stadtwerke Bad Nauheim VGF Fulda Urberacher Omnibusbetrieb Nassauische Verkehrsgesellschaft mbH Bogel Medenbach Traffic GmbH ALV Oberhessen Stadtwerke Dietzenbach Wetzlarer Verkehrsbetriebe und Reiseb\u00fcro GmbH Stadtwerke Neu-Isenburg Main-Taunus-Verkehrsgesellschaft mbH Karl Hasenauer GmbH & Co. KG In-der-City-Bus RDG Regionalverkehrsdienst Gr\u00fcndau E. Laubach e.K. Stadtverkehr Limburg Verkehrsgesellschaft Lahn-Dill-Weil mbH (LDK) Rh\u00f6nEnergie Bus GmbH Frieda Gass Arnold Engelhardt GmbH Regionalverkehr Main-Kinzig GmbH M\u00fcller Omnibusbetrieb VGO Alsfeld ESWE Verkehrsgesellschaft mbH Becker-Bus GmbH+Co.KG, Langen Erletz Verkehrsbetriebe Dreieich Kirchg\u00e4\u00dfner Reisen Verkehrsgesellschaft Gie\u00dfen mbH Stroh Busverkehr GmbH VGO Friedberg Stadtverkehr Maintal PNVG Merseburg-Querfurt Mansfelder Bergwerksbahn Nordsachsen Mobil Nahverkehrsgesellschaft Jerichower Land Magdeburger Wei\u00dfe Flotte KVG Salzland Leipziger Verkehrsbetriebe Harzer Schmalspurbahnen Halberst\u00e4dter Verkehrs-GmbH Vetter GmbH Stendalbus Omnibusbetrieb Saalekreis Verkehrsgesellschaft S\u00fcdharz TH\u00dcSAC Regionalbus Leipzig GmbH Bernburger Freizeit - Parkeisenbahn Krumbholz Magdeburger Verkehrsbetriebe Regiobus Mittelsachsen Hallesche Verkehrs-AG Saarbahn GmbH M\u00fcllenbach Reisen GmbH Saar-Mobil GmbH Baron Reisen GmbH Lay Reisen - on Tour GmbH KVS GmbH NVG Neunkircher Verkehrs GmbH Bayerische Oberlandbahn KVG Bus KVG Tram Omnibusbetrieb Sallwey GmbH Brundig Reisen EW Bus GmbH Rh\u00f6nEnergie Bus GmbH (NVV) Fr\u00f6lich Bus GmbH Schmetterling-Reisen Zulauf H. Sandrock GmbH&Co KG Reisedienst Bonte HLB Hessenbus Kassel Fr\u00f6lich Reisen GmbH Knieling Touristik Stadtwerke Witzenhausen K\u00e4berich Omnibusbetrieb WEFRA-Bus GbR Racktours GmbH + Co. KG Gemeinde Wettenberg Stadt Gr\u00fcnberg Energie Waldeck-Frankenberg BWV Bad Wildungen M\u00fcllerBusReisen HLB Bus GmbH mobus M\u00e4rkisch-Oderland Bus GmbH ARGE prignitzbus DB Regio Bus Mitte Padersprinter nph-Linienb\u00fcndel 01 nph-Linienb\u00fcndel 02 nph-Linienb\u00fcndel 03 nph-Linienb\u00fcndel 04 nph-Linienb\u00fcndel 05 nph-Linienb\u00fcndel 06 nph-Linienb\u00fcndel 07 nph-Linienb\u00fcndel 08 nph-Linienb\u00fcndel 09 nph-Linienb\u00fcndel 10 nph-Linienb\u00fcndel 11 nph-Linienb\u00fcndel 12 Martin Becker wupsi GmbH Stadtbus Pforzheim S\u00fcddeutsche Verkehrslinien Pfiffibus Bus1 Stadt-Bus-Verkehr Straubing Bus2 Bus3 Kraftverkehr B. Menchen GmbH & Co.KG Anklamer Verkehrsgesellschaft Neubrandenburger Verkehrsbetriebe NAHBUS GmbH Verkehrsgesellschaft Ludwigslust-Parchim Bergbahn Heidelberg Reisedienst Krauss & Wolff Reisen Bus4 AST1 Stadtbus Bad Orb Bus5 Nachtverkehr Ausstieg Bus6 Bus N\u00fcrnberg Regionalbuslinien RVV-VLC f\u00fcr EFA Citybus Regenstauf Bus8 Fritz Behrendt OHG2 Glaser2 Lange1 A. Reich GmbH Busbetrieb2 regiobus Potsdam Mittelmark GmbH Sabinchen Touristik GmbH2 ESE Verkehrsgesellschaft mbH","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_bc-ferriesgtfszip","text":"","title":"Filename: ca-bc_BC-Ferries.gtfs.zip"},{"location":"licenses/#copyright-holders_92","text":"BC Ferries","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_black-ball-ferry-linegtfszip","text":"","title":"Filename: ca-bc_Black-Ball-Ferry-Line.gtfs.zip"},{"location":"licenses/#copyright-holders_93","text":"Black Ball Ferry Line","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_campbell-river-transitgtfszip","text":"","title":"Filename: ca-bc_Campbell-River-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_94","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_campbell-river-transitgtfszip_1","text":"","title":"Filename: ca-bc_Campbell-River-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_95","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_comox-valley-transitgtfszip","text":"","title":"Filename: ca-bc_Comox-Valley-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_96","text":"BC Transit - Comox Valley Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_comox-valley-transitgtfszip_1","text":"","title":"Filename: ca-bc_Comox-Valley-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_97","text":"BC Transit - Comox Valley Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_cowichan-valley-transitgtfszip","text":"","title":"Filename: ca-bc_Cowichan-Valley-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_98","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_cowichan-valley-transitgtfszip_1","text":"","title":"Filename: ca-bc_Cowichan-Valley-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_99","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_creston-transitgtfszip","text":"","title":"Filename: ca-bc_Creston-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_100","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_creston-transitgtfszip_1","text":"","title":"Filename: ca-bc_Creston-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_101","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_dawson-creek-transitgtfszip","text":"","title":"Filename: ca-bc_Dawson-Creek-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_102","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_dawson-creek-transitgtfszip_1","text":"","title":"Filename: ca-bc_Dawson-Creek-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_103","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_east-kootenay-transitgtfszip","text":"","title":"Filename: ca-bc_East-Kootenay-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_104","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_east-kootenay-transitgtfszip_1","text":"","title":"Filename: ca-bc_East-Kootenay-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_105","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_fort-st-john-transitgtfszip","text":"","title":"Filename: ca-bc_Fort-St-John-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_106","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_fort-st-john-transitgtfszip_1","text":"","title":"Filename: ca-bc_Fort-St-John-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_107","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_fraser-valley-transitgtfszip","text":"","title":"Filename: ca-bc_Fraser-Valley-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_108","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_fraser-valley-transitgtfszip_1","text":"","title":"Filename: ca-bc_Fraser-Valley-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_109","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_kamloops-transitgtfszip","text":"","title":"Filename: ca-bc_Kamloops-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_110","text":"BC Transit - Kamloops Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_kamloops-transitgtfszip_1","text":"","title":"Filename: ca-bc_Kamloops-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_111","text":"BC Transit - Kamloops Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_nanaimo-transitgtfszip","text":"","title":"Filename: ca-bc_Nanaimo-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_112","text":"BC Transit - RDN Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_nanaimo-transitgtfszip_1","text":"","title":"Filename: ca-bc_Nanaimo-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_113","text":"BC Transit - RDN Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_north-okanagan-transitgtfszip","text":"","title":"Filename: ca-bc_North-Okanagan-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_114","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_north-okanagan-transitgtfszip_1","text":"","title":"Filename: ca-bc_North-Okanagan-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_115","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_port-alberni-transitgtfszip","text":"","title":"Filename: ca-bc_Port-Alberni-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_116","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_port-alberni-transitgtfszip_1","text":"","title":"Filename: ca-bc_Port-Alberni-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_117","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_powell-river-transitgtfszip","text":"","title":"Filename: ca-bc_Powell-River-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_118","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_powell-river-transitgtfszip_1","text":"","title":"Filename: ca-bc_Powell-River-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_119","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_prince-george-transitgtfszip","text":"","title":"Filename: ca-bc_Prince-George-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_120","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_prince-george-transitgtfszip_1","text":"","title":"Filename: ca-bc_Prince-George-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_121","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_prince-rupert-transitgtfszip","text":"","title":"Filename: ca-bc_Prince-Rupert-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_122","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_prince-rupert-transitgtfszip_1","text":"","title":"Filename: ca-bc_Prince-Rupert-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_123","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_south-okanagan-transitgtfszip","text":"","title":"Filename: ca-bc_South-Okanagan-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_124","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_south-okanagan-transitgtfszip_1","text":"","title":"Filename: ca-bc_South-Okanagan-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_125","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_squamish-transitgtfszip","text":"","title":"Filename: ca-bc_Squamish-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_126","text":"BC Transit - Squamish Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_squamish-transitgtfszip_1","text":"","title":"Filename: ca-bc_Squamish-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_127","text":"BC Transit - Squamish Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_sunshine-coast-transitgtfszip","text":"","title":"Filename: ca-bc_Sunshine-Coast-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_128","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_sunshine-coast-transitgtfszip_1","text":"","title":"Filename: ca-bc_Sunshine-Coast-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_129","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_translinkgtfszip","text":"","title":"Filename: ca-bc_TransLink.gtfs.zip"},{"location":"licenses/#copyright-holders_130","text":"TransLink","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_translinkgtfszip_1","text":"","title":"Filename: ca-bc_TransLink.gtfs.zip"},{"location":"licenses/#copyright-holders_131","text":"TransLink","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_victoria-transitgtfszip","text":"","title":"Filename: ca-bc_Victoria-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_132","text":"BC Transit - Victoria Regional Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_victoria-transitgtfszip_1","text":"","title":"Filename: ca-bc_Victoria-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_133","text":"BC Transit - Victoria Regional Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_west-kootenay-transitgtfszip","text":"","title":"Filename: ca-bc_West-Kootenay-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_134","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_west-kootenay-transitgtfszip_1","text":"","title":"Filename: ca-bc_West-Kootenay-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_135","text":"BCTransit","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_whistler-transitgtfszip","text":"","title":"Filename: ca-bc_Whistler-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_136","text":"BC Transit - Whistler Transit System","title":"Copyright holders"},{"location":"licenses/#filename-ca-bc_whistler-transitgtfszip_1","text":"","title":"Filename: ca-bc_Whistler-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_137","text":"BC Transit - Whistler Transit System","title":"Copyright holders"},{"location":"licenses/#filename-lv_pvgtfszip","text":"","title":"Filename: lv_pv.gtfs.zip"},{"location":"licenses/#copyright-holders_138","text":"Pasa\u017eieru Vilciens","title":"Copyright holders"},{"location":"licenses/#filename-lv_rigas-satiksmegtfszip","text":"","title":"Filename: lv_rigas-satiksme.gtfs.zip"},{"location":"licenses/#copyright-holders_139","text":"R\u012bgas satiksme","title":"Copyright holders"},{"location":"licenses/#filename-lv_rigas-sarakstigtfszip","text":"","title":"Filename: lv_rigas-saraksti.gtfs.zip"},{"location":"licenses/#copyright-holders_140","text":"R\u012bgas satiksme","title":"Copyright holders"},{"location":"licenses/#filename-lv_valsts-sia-autotransportagtfszip","text":"","title":"Filename: lv_valsts-sia-autotransporta.gtfs.zip"},{"location":"licenses/#copyright-holders_141","text":"AS Nordeka Pasa\u017eieru vilciens AS SIA DOBELES AUTOBUSU PARKS AS R\u0113zeknes autobusu parks SIA Latvijas Sabiedriskais Autobuss SIA VTU Valmiera SIA GALSS BUSS SIA Balvu autotransports AS Liep\u0101jas autobusu parks Pa\u0161vald\u012bbas SIA Ventspils reiss SIA Ludzas autotransporta uz\u0146\u0113mums SIA NORMA-A AS CATA SIA Gulbenes autobuss SIA Daugavpils autobusu parks AS Talsu autotransports SIA Tukuma auto","title":"Copyright holders"},{"location":"licenses/#filename-is_straetogtfszip","text":"","title":"Filename: is_straeto.gtfs.zip"},{"location":"licenses/#copyright-holders_142","text":"Str\u00e6t\u00f3 BS Reykjanesb\u00e6r Akureyri","title":"Copyright holders"},{"location":"licenses/#filename-fr_tgvgtfszip","text":"","title":"Filename: fr_TGV.gtfs.zip"},{"location":"licenses/#copyright-holders_143","text":"SNCF VOYAGEURS","title":"Copyright holders"},{"location":"licenses/#filename-fr_tgvgtfszip_1","text":"","title":"Filename: fr_TGV.gtfs.zip"},{"location":"licenses/#copyright-holders_144","text":"SNCF VOYAGEURS","title":"Copyright holders"},{"location":"licenses/#filename-fr_intercitesgtfszip","text":"","title":"Filename: fr_Intercites.gtfs.zip"},{"location":"licenses/#copyright-holders_145","text":"SNCF VOYAGEURS","title":"Copyright holders"},{"location":"licenses/#filename-fr_intercitesgtfszip_1","text":"","title":"Filename: fr_Intercites.gtfs.zip"},{"location":"licenses/#copyright-holders_146","text":"SNCF VOYAGEURS","title":"Copyright holders"},{"location":"licenses/#filename-fr_transiliengtfszip","text":"","title":"Filename: fr_Transilien.gtfs.zip"},{"location":"licenses/#copyright-holders_147","text":"Transilien RER TER","title":"Copyright holders"},{"location":"licenses/#filename-fr_tergtfszip","text":"","title":"Filename: fr_TER.gtfs.zip"},{"location":"licenses/#copyright-holders_148","text":"SNCF VOYAGEURS Conseil R\u00e9gional Auvergne - Rh\u00f4ne-Alpes","title":"Copyright holders"},{"location":"licenses/#filename-fr_tergtfszip_1","text":"","title":"Filename: fr_TER.gtfs.zip"},{"location":"licenses/#copyright-holders_149","text":"SNCF VOYAGEURS Conseil R\u00e9gional Auvergne - Rh\u00f4ne-Alpes","title":"Copyright holders"},{"location":"licenses/#filename-fr_mobilites-m-bulgtfszip","text":"","title":"Filename: fr_Mobilites-M-bul.gtfs.zip"},{"location":"licenses/#copyright-holders_150","text":"OT Grenoble","title":"Copyright holders"},{"location":"licenses/#filename-fr_mobilites-m-fungtfszip","text":"","title":"Filename: fr_Mobilites-M-fun.gtfs.zip"},{"location":"licenses/#copyright-holders_151","text":"OT ST-HILAIRE-DU-TOUVET","title":"Copyright holders"},{"location":"licenses/#filename-fr_mobilites-m-gsvgtfszip","text":"","title":"Filename: fr_Mobilites-M-gsv.gtfs.zip"},{"location":"licenses/#copyright-holders_152","text":"Mobilit\u00e9s M - TouGo","title":"Copyright holders"},{"location":"licenses/#filename-fr_mobilites-m-mcogtfszip","text":"","title":"Filename: fr_Mobilites-M-mco.gtfs.zip"},{"location":"licenses/#copyright-holders_153","text":"Mobilit\u00e9s M - Covoit Lignes +","title":"Copyright holders"},{"location":"licenses/#filename-fr_mobilites-m-tpvgtfszip","text":"","title":"Filename: fr_Mobilites-M-tpv.gtfs.zip"},{"location":"licenses/#copyright-holders_154","text":"Mobilit\u00e9s M - Transports du Pays Voironnais","title":"Copyright holders"},{"location":"licenses/#filename-fr_mobilites-m-taggtfszip","text":"","title":"Filename: fr_Mobilites-M-tag.gtfs.zip"},{"location":"licenses/#copyright-holders_155","text":"Mobilit\u00e9s M - Tag","title":"Copyright holders"},{"location":"licenses/#filename-fr_parisgtfszip","text":"","title":"Filename: fr_Paris.gtfs.zip"},{"location":"licenses/#copyright-holders_156","text":"Transilien Seine Grand Orly Vexin Vall\u00e9e de Montmorency Grand Melun Poissy - Les Mureaux Mantois Argenteuil - Boucles de Seine Meaux et Ourcq Brie et 2 Morin Val d'Yerres Val de Seine Essonne Sud Est Essonne Sud Ouest Paris Saclay V\u00e9lizy Vall\u00e9es Saint Germain Boucles de Seine Bi\u00e8vre Vall\u00e9e Grand Sud Paris Marne et Seine Saint-Quentin-en-Yvelines Terres d'Envol Pays Briard Roissy Ouest Roissy Est Pays de Montereau Fontainebleau - Moret Vall\u00e9e du Loing - Nemours C\u0153ur d\u2019Essonne Grand Versailles Provinois - Brie et Seine Lignes \u00cele-de-France Ouest Evry Centre Essonne Centre et Sud Yvelines Cergy-Pontoise Confluence Haut Val d'Oise ValBus Valoise Busval d'Oise Seine-Saint-Denis Noctilien Parisis Titus Apolo 7 Marne-la-Vall\u00e9e Chavilbus RER Seine et Marne Express S\u00e9nart Sit'bus Paris-Saclay Mobilit\u00e9s TER Cars Lacroix Cars Rose SAVAC ADP RATP Keolis Ouest Val-de-Marne RD Mantois Keolis Roissy Pays de France Ouest Mobicit\u00e9 Keolis Mobilit\u00e9 Roissy Magical Shuttle Autobus du Fort Autocars Dominique A\u00e9roport Paris-Beauvais / SAGEB","title":"Copyright holders"},{"location":"licenses/#filename-fr_ctsgtfszip","text":"","title":"Filename: fr_CTS.gtfs.zip"},{"location":"licenses/#copyright-holders_157","text":"CTS","title":"Copyright holders"},{"location":"licenses/#filename-fi_digitrafficgtfszip","text":"","title":"Filename: fi_digitraffic.gtfs.zip"},{"location":"licenses/#copyright-holders_158","text":"VR NRC Group Finland Oy Pohjois-Suomen Rautatieharrastajat ry Haapam\u00e4en museoveturiyhdistys ry Porvoon Museorautatie ry Fenniarail Oy North Rail Oy FoxRail Logistics Oy Sweco Finland Oy Prorata Oy Sinisten vaunujen yst\u00e4v\u00e4t ry GRK Rail Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_203gtfszip","text":"","title":"Filename: fi_203.gtfs.zip"},{"location":"licenses/#copyright-holders_159","text":"Tilausliikenne Ali-Vehmas Ay Lehdon Liikenne Oy Pekolan Liikenne Oy Vekka Group Oy L\u00e4nsilinjat Oy Valkeakosken Liikenne Oy Mikkolan Liikenne Oy Taksipalvelu Mutta Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_207gtfszip","text":"","title":"Filename: fi_207.gtfs.zip"},{"location":"licenses/#copyright-holders_160","text":"Linja-Karjala Oy Savo-Karjalan Linja Oy Savonlinja Oy L\u00e4nsilinjat Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_209gtfszip","text":"","title":"Filename: fi_209.gtfs.zip"},{"location":"licenses/#copyright-holders_161","text":"Matka M\u00e4kel\u00e4 Oy TILAUSAJOT MENN\u00c4\u00c4N BUSSILLA OY Jyv\u00e4skyl\u00e4n Liikenne Oy Koivuranta Oy Uuraisten Liikenne Ky L\u00e4nsilinjat Oy Pohjolan Matka (Pohjolan Turistiauto Oy)","title":"Copyright holders"},{"location":"licenses/#filename-fi_211gtfszip","text":"","title":"Filename: fi_211.gtfs.zip"},{"location":"licenses/#copyright-holders_162","text":"KYMEN CHARTERLINE OY Liikenne M. Heikura Oy Kainuun Tilausliikenne P. J\u00e4\u00e4skel\u00e4inen Ky Oulaisten Liikenne Oy Vekka Group Oy Tilausliikenne Kuvaja Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_217gtfszip","text":"","title":"Filename: fi_217.gtfs.zip"},{"location":"licenses/#copyright-holders_163","text":"Kotkan Seudun Liikenne / KYMEN CHARTERLINE Kotkan Seudun Liikenne / Jyrkil\u00e4 Oy Liikenne Vuorela Oy / Kotkan Seudun Liikenne Kotkan Seudun Liikenne / Oy Pohjolan liikenne Ab","title":"Copyright holders"},{"location":"licenses/#filename-fi_219gtfszip","text":"","title":"Filename: fi_219.gtfs.zip"},{"location":"licenses/#copyright-holders_164","text":"Tilaustaksit K. Syd\u00e4nmaanlakka Ky KYMEN CHARTERLINE OY Liikenne Sipari Oy Mattilan Liikenne Oy Matkatoimisto Matka-Majuri Ky Linjaliikenne Martti Laurila Oy Savonlinja Oy Elim\u00e4en Liikenne Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_221gtfszip","text":"","title":"Filename: fi_221.gtfs.zip"},{"location":"licenses/#copyright-holders_165","text":"Kymen Charterline Oy Mika K. Niskanen Oy Kuopion Tila-Auto Oy Kuopion Liikenne Oy Linja-autoliike E Ahonen Ky Oy Pohjolan liikenne Ab Savonlinja Oy Vihavaisen Taksi Oy Pohjolan Matka (Pohjolan Turistiauto Oy)","title":"Copyright holders"},{"location":"licenses/#filename-fi_223gtfszip","text":"","title":"Filename: fi_223.gtfs.zip"},{"location":"licenses/#copyright-holders_166","text":"Remoted Oy Koiviston Auto Oy Lehtim\u00e4en Liikenne Oy Tilausliikenne Kuisma Ky","title":"Copyright holders"},{"location":"licenses/#filename-fi_225gtfszip","text":"","title":"Filename: fi_225.gtfs.zip"},{"location":"licenses/#copyright-holders_167","text":"V-S Bussipalvelut Oy Kuljetus Mikkonen Oy Savonlinja Oy TOIMI VENTO KY Soisalon liikenne Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_227gtfszip","text":"","title":"Filename: fi_227.gtfs.zip"},{"location":"licenses/#copyright-holders_168","text":"Tilausliikenne Linjakas Oy Tilausliikenne Himanen Kantamatkat Hanskin Tilausliikenne Ihastj\u00e4rven Linja Oy Saimaan Turistiliikenne Oy Soisalon Liikenne Oy Tuplabus","title":"Copyright holders"},{"location":"licenses/#filename-fi_229gtfszip","text":"","title":"Filename: fi_229.gtfs.zip"},{"location":"licenses/#copyright-holders_169","text":"OSL / Revonturistiliikenne OSL / Oubus OSL / Koiviston Auto Oulu Oy ELY / Oulaisten Liikenne Oy OSL / Nobina Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_231gtfszip","text":"","title":"Filename: fi_231.gtfs.zip"},{"location":"licenses/#copyright-holders_170","text":"Porin Linjat Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_232gtfszip","text":"","title":"Filename: fi_232.gtfs.zip"},{"location":"licenses/#copyright-holders_171","text":"ELY Hangon liikenne, Friman&Co Linjaliikenne Kivist\u00f6 Oy OY AMPER&WIKSTR\u00d6M AB ROLLY UUSIMAA OY Salon Tilausmatkat Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_237gtfszip","text":"","title":"Filename: fi_237.gtfs.zip"},{"location":"licenses/#copyright-holders_172","text":"Koskilinjat Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_239gtfszip","text":"","title":"Filename: fi_239.gtfs.zip"},{"location":"licenses/#copyright-holders_173","text":"J. Vainion Liikenne Oy LS-Liikennelinjat Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_249gtfszip","text":"","title":"Filename: fi_249.gtfs.zip"},{"location":"licenses/#copyright-holders_174","text":"OY WIIK & STR\u00d6M AB Vekka liikenne Oy","title":"Copyright holders"},{"location":"licenses/#filename-fi_hslgtfszip","text":"","title":"Filename: fi_hsl.gtfs.zip"},{"location":"licenses/#copyright-holders_175","text":"Helsingin seudun liikenne","title":"Copyright holders"},{"location":"licenses/#filename-nl_ovapigtfszip","text":"","title":"Filename: nl_ovapi.gtfs.zip"},{"location":"licenses/#copyright-holders_176","text":"allGo (Keolis) Arriva Blue Amigo Bravo (Arriva) Bravo (Hermes) Breng Connexxion De Lijn EBS GVB Hermes HTM Arriva Blauwnet Breng DB Eurobahn Eu Sleeper NMBS NS NS International R-net RRReis VIAS Keolis NIAG Overal (Connexxion) Qbuzz RET RRReis Syntus Utrecht TESO Texelhopper Transdev U-OV Westerschelde Ferry","title":"Copyright holders"},{"location":"licenses/#filename-ca_brandon-transitgtfszip","text":"","title":"Filename: ca_Brandon-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_177","text":"Brandon Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_calgary-transitgtfszip","text":"","title":"Filename: ca_Calgary-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_178","text":"Calgary Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_calgary-transitgtfszip_1","text":"","title":"Filename: ca_Calgary-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_179","text":"Calgary Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_codiac-transitgtfszip","text":"","title":"Filename: ca_Codiac-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_180","text":"Codiac Transpo","title":"Copyright holders"},{"location":"licenses/#filename-ca_cold-lake-transitgtfszip","text":"","title":"Filename: ca_Cold-Lake-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_181","text":"Cold Lake Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_edmonton-transit-servicegtfszip","text":"","title":"Filename: ca_Edmonton-Transit-Service.gtfs.zip"},{"location":"licenses/#copyright-holders_182","text":"Edmonton Transit Service St. Albert Transit Strathcona County Transit Spruce Grove Transit Fort Saskatchewan Transit Beaumont Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_edmonton-transit-servicegtfszip_1","text":"","title":"Filename: ca_Edmonton-Transit-Service.gtfs.zip"},{"location":"licenses/#copyright-holders_183","text":"Edmonton Transit Service St. Albert Transit Strathcona County Transit Spruce Grove Transit Fort Saskatchewan Transit Beaumont Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_fredericton-transitgtfszip","text":"","title":"Filename: ca_Fredericton-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_184","text":"Fredericton Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_grande-prairie-transitgtfszip","text":"","title":"Filename: ca_Grande-Prairie-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_185","text":"cityofgp","title":"Copyright holders"},{"location":"licenses/#filename-ca_halifax-transitgtfszip","text":"","title":"Filename: ca_Halifax-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_186","text":"Halifax Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_halifax-transitgtfszip_1","text":"","title":"Filename: ca_Halifax-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_187","text":"Halifax Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_lethbridge-transitgtfszip","text":"","title":"Filename: ca_Lethbridge-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_188","text":"Lethbridge Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_medicine-hat-transitgtfszip","text":"","title":"Filename: ca_Medicine-Hat-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_189","text":"Medicine Hat Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_medicine-hat-transitgtfszip_1","text":"","title":"Filename: ca_Medicine-Hat-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_190","text":"Medicine Hat Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_metrobus-transitgtfszip","text":"","title":"Filename: ca_Metrobus-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_191","text":"METROBUS","title":"Copyright holders"},{"location":"licenses/#filename-ca_prince-albert-transitgtfszip","text":"","title":"Filename: ca_Prince-Albert-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_192","text":"Prince Albert Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_red-deer-transitgtfszip","text":"","title":"Filename: ca_Red-Deer-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_193","text":"Red Deer Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_regina-transitgtfszip","text":"","title":"Filename: ca_Regina-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_194","text":"The City of Regina","title":"Copyright holders"},{"location":"licenses/#filename-ca_roam-transitgtfszip","text":"","title":"Filename: ca_Roam-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_195","text":"Roam Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_saint-john-transitgtfszip","text":"","title":"Filename: ca_Saint-John-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_196","text":"Saint John Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_saskatoon-transitgtfszip","text":"","title":"Filename: ca_Saskatoon-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_197","text":"Saskatoon Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_saskatoon-transitgtfszip_1","text":"","title":"Filename: ca_Saskatoon-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_198","text":"Saskatoon Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_t3-transitgtfszip","text":"","title":"Filename: ca_T3-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_199","text":"T3 Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_viarailgtfszip","text":"","title":"Filename: ca_Viarail.gtfs.zip"},{"location":"licenses/#copyright-holders_200","text":"VIA Rail","title":"Copyright holders"},{"location":"licenses/#filename-ca_whitehorse-transitgtfszip","text":"","title":"Filename: ca_Whitehorse-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_201","text":"Whitehorse Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_winnipeg-transitgtfszip","text":"","title":"Filename: ca_Winnipeg-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_202","text":"Winnipeg Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca_wood-buffalo-transitgtfszip","text":"","title":"Filename: ca_Wood-Buffalo-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_203","text":"RMWB","title":"Copyright holders"},{"location":"licenses/#filename-ca_wood-buffalo-transitgtfszip_1","text":"","title":"Filename: ca_Wood-Buffalo-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_204","text":"RMWB","title":"Copyright holders"},{"location":"licenses/#filename-ca_yellowknife-transitgtfszip","text":"","title":"Filename: ca_Yellowknife-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_205","text":"Yellowknife Transit","title":"Copyright holders"},{"location":"licenses/#filename-hk_hong-kong-transitgtfszip","text":"","title":"Filename: hk_Hong-Kong-Transit.gtfs.zip"},{"location":"licenses/#copyright-holders_206","text":"Citybus Discovery Bay Transit Services (Bus Services) Ferry Services Green Minibus Services Kowloon Motor Bus Kowloon Motor Bus|Citybus MTR Bus Long Win Bus Long Win Bus|Citybus New Lantao Bus Park Island Transport (Bus Services) Peak Tram HK Tramways Lok Ma Chau Crossing-boundary Coach Services","title":"Copyright holders"},{"location":"licenses/#filename-it_emilia-romagna-tper-bolognagtfszip","text":"","title":"Filename: it_Emilia-Romagna-TPER-Bologna.gtfs.zip"},{"location":"licenses/#copyright-holders_207","text":"TPER spa","title":"Copyright holders"},{"location":"licenses/#filename-it_emilia-romagna-tper-ferraragtfszip","text":"","title":"Filename: it_Emilia-Romagna-TPER-Ferrara.gtfs.zip"},{"location":"licenses/#copyright-holders_208","text":"TPER spa","title":"Copyright holders"},{"location":"licenses/#filename-it_emilia-romagna-tper-blq-airportgtfszip","text":"","title":"Filename: it_Emilia-Romagna-TPER-BLQ-Airport.gtfs.zip"},{"location":"licenses/#copyright-holders_209","text":"Marconi Express","title":"Copyright holders"},{"location":"licenses/#filename-it_lazio-romegtfszip","text":"","title":"Filename: it_Lazio-Rome.gtfs.zip"},{"location":"licenses/#copyright-holders_210","text":"Atac Roma TPL Autoservizi Troiani Trenitalia","title":"Copyright holders"},{"location":"licenses/#filename-it_lombardia-atmgtfszip","text":"","title":"Filename: it_Lombardia-ATM.gtfs.zip"},{"location":"licenses/#copyright-holders_211","text":"ATM","title":"Copyright holders"},{"location":"licenses/#filename-it_lombardia-trenordgtfszip","text":"","title":"Filename: it_Lombardia-Trenord.gtfs.zip"},{"location":"licenses/#copyright-holders_212","text":"Trenord","title":"Copyright holders"},{"location":"licenses/#filename-it_piemonte-busgtfszip","text":"","title":"Filename: it_Piemonte-Bus.gtfs.zip"},{"location":"licenses/#copyright-holders_213","text":"n.d. Azienda Multiservizi Casalese S.p.a. E Piu' Brevemente A.m.c. S.p.a A.t.a.p. - Azienda Trasporti Automobilistici Pubblici Delle Province Di Biella E Vercelli - S.p.a. Asti Servizi Pubblici S.p.a. Societa' Trasporti Novaresi - S.r.l. Sun S.p.a. Bus Company S.r.l. Navigazione Lago D'orta S.r.l. Coas Consorzio Astigiano Societa' Consortile Alessandrina Trasporti A Responsabilita' Limitata Extra.to S.c. A R.l. Comune Pareto","title":"Copyright holders"},{"location":"licenses/#filename-it_piemonte-gruppo-torinese-trasportigtfszip","text":"","title":"Filename: it_Piemonte-Gruppo-Torinese-Trasporti.gtfs.zip"},{"location":"licenses/#copyright-holders_214","text":"GTT Servizio Extraurbano GTT Servizio Ferroviario GTT Servizi Turistici GTT Servizio Urbano","title":"Copyright holders"},{"location":"licenses/#filename-it_piemonte-trenitaliagtfszip","text":"","title":"Filename: it_Piemonte-Trenitalia.gtfs.zip"},{"location":"licenses/#copyright-holders_215","text":"TRENITALIA","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-contributategtfszip","text":"","title":"Filename: it_Sardegna-Contributate.gtfs.zip"},{"location":"licenses/#copyright-holders_216","text":"ASARA GIUSEPPE EREDI AUTOSERVIZI - LOCATARIO ATZENI AUTOLINEE BAIRE S.R.L. AUTOSERVIZI VACCA DI VACCA FABRIZIO & C. SNC BAIRE MARIO BALESTRUCCI SRL CARAMELLI TOURS S.N.C. COOPERATIVA ORISTANESE BUS 90 F.LLI DEPLANO S.N.C. DI GABRIELE DEPLANO E C AUTOLINEE DEPLANU GIUSEPPINO DIGITUR S.R.L. AUTOSERVIZI EUROSAR FARA VIAGGI SRL FATA EREDI ANGIUS SNC AUTONOLEGGIO FOLLESA DEI F.LLI PASQUALE E GIANNI FOLLESA SNC AUTOLINEE FRAU S.R.L. GARAU MAURO GIAGHEDDU ANTONIO AUTOLINEE DEL GOLFO SRL MASALA FRANCESCO ANGELO EREDI S.A.S. MELIS SERGIO MEREU AUTOLINEE AUTOLINEE ANTONIO MURGIA S.R.L. AUTOSERVIZI NORDORIENTALE S.A.S. DI BRUNDU COSIMO DAMIANO & C. A.S.P. DI PANI FRANCA DANIELA E CHRISTIAN SNC PISANU EREDI SNC SANNA ANTONIO SAUT S.R.L. AUTOSERVIZI E AUTOLINEE DI SENIS ENRICO & C. SNC SERRA GESUINO SEUNIS TOURS EREDI PIREDDA SALVATORICO S.A.S. AUTONOLEGGIO AUTOBUS SPINA SALVATORE E FIGLI S.N.C. DI SPINA FRANCESCO AUTOLINEE TREXENTA SNC TURMO LINES S.R.L. ANGLONA TOUR DI ZENTILE SALVATORE AUTOLINEE DEL GOLFO S.R.L. AUTOSERVIZI NUOVA SUN TRAVEL S.R.L. AUTOLINEE BAIRE S.R.L. F.LLI CAPPATO DI IVANA E PIER LORENZO S.N.C. CAREDDU MADDALO DEDONI SARDINIA DEDONI SARDINIA AUTOSERVIZI F.A.B. S.R.L. FARA VIAGGI S.R.L. LOGUDORO TOURS AUTOLINEE ANTONIO MURGIA S.R.L. PUDDU SANDRO AUTOLINEE DI PUDDU SANDRO SARDABUS DI ADDIS FRANCESCO SINA DI GIANFRANCO STEVELLI S.R.L. SUN LINES S.R.L. TOUR BUS S.N.C. DI CARIA GIACOMO TURMO TRAVEL S.R.L. TUVONI VACCA VIAGGI S.N.C.","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-arstgtfszip","text":"","title":"Filename: it_Sardegna-ARST.gtfs.zip"},{"location":"licenses/#copyright-holders_217","text":"ARST SpA - Trasporti Regionali Della Sardegna","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-aspo-olbiagtfszip","text":"","title":"Filename: it_Sardegna-ASPO-Olbia.gtfs.zip"},{"location":"licenses/#copyright-holders_218","text":"ASPO SPA","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-atp-nuorogtfszip","text":"","title":"Filename: it_Sardegna-ATP-Nuoro.gtfs.zip"},{"location":"licenses/#copyright-holders_219","text":"ATP NUORO","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-atp-sassarigtfszip","text":"","title":"Filename: it_Sardegna-ATP-Sassari.gtfs.zip"},{"location":"licenses/#copyright-holders_220","text":"Atp Sassari","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-ctmgtfszip","text":"","title":"Filename: it_Sardegna-CTM.gtfs.zip"},{"location":"licenses/#copyright-holders_221","text":"CTM Spa","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-ferries-collegamenti-marittimi-corsicagtfszip","text":"","title":"Filename: it_Sardegna-Ferries-Collegamenti-marittimi-Corsica.gtfs.zip"},{"location":"licenses/#copyright-holders_222","text":"GENOVA TRASPORTI MARITTIMI MOBY LINES","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-ferries-collegamenti-isole-minorigtfszip","text":"","title":"Filename: it_Sardegna-Ferries-Collegamenti-isole-minori.gtfs.zip"},{"location":"licenses/#copyright-holders_223","text":"DELCOMAR ENSAMAR","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-ferries-sardinia-ferriesgtfszip","text":"","title":"Filename: it_Sardegna-Ferries-Sardinia-Ferries.gtfs.zip"},{"location":"licenses/#copyright-holders_224","text":"Sardinia Ferries","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-ferries-tirreniagtfszip","text":"","title":"Filename: it_Sardegna-Ferries-Tirrenia.gtfs.zip"},{"location":"licenses/#copyright-holders_225","text":"Compagnia Italiana di Navigazione S.p.A","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-planes-alghero-airportgtfszip","text":"","title":"Filename: it_Sardegna-Planes-Alghero-Airport.gtfs.zip"},{"location":"licenses/#copyright-holders_226","text":"BLUE AIR Helvetic Airways TRAVEL SERVICE POLSKA Gazpromavia TUIfly Nordic Travel Service Slovensko Air France AEROMEDICARE AirOne ITA AIRWAYS British Airways SkyAlps Luxwings Air Baltic Blue Panorama Airlines S.p.A. \u00c2 THOMSONFLY Corendon Dutch Airlines B.V. Norwegian Air CONDOR FIRST CHOICE AIRWAYS LTD EASYJET SWITZERLAND Danish Air Transport Norwegian Air DOMODEDOVO AIRLINES Enter air Easyjet Europe Ernest Airlines EGO Airways AIR DOLOMITI Eurowings RYANAIR AIR SLOVAKIA BWJ , LTD Bulgarian Air Charter Ltd HAT Luftfahrtgesellschaft Walter Transavia Airlines VUELING AIRLINES IBERIA AIRLINES Air Italy Arkia Israeli Airlines ADRIA AIRWAYS KLM Air Malta BELLE AIR EUROPE Luxair Deutsche Lufthansa LOT Polish Airlines LUXWING\u00c2 SWISS International Air Lines EL AL MYX NEOS Laudamotion (Ryanair) Austrian Airlines AG People's Viennaline SMARTWINGS Trast Aero SIBERIA AIRLINES SCANDINAVIAN AIRLINES Brussels Airlines GERMANIA FLUGESELLSCHAFT MBH SkyWork Airlines TUI Airlines Belgium Transavia France TAP Portugal EASYJET URAL AIRLINERS AIR EUROPA VOLOTEA VUELING AIRLINES Vueling Airlines Wizz Air Malta WIZZ AIR China Northwest Airlines Edelweiss Air Oman Air TUIfly GmbH CORENDON AIRLINES AeroItalia Air Nostrum MONARCH TITAN AIRWAYS","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-planes-cagliari-airportgtfszip","text":"","title":"Filename: it_Sardegna-Planes-Cagliari-Airport.gtfs.zip"},{"location":"licenses/#copyright-holders_227","text":"BA Euroflyer AEGEAN AIRLINES Air France AirOne ITA AIRWAYS SKY ALPS SRL EASYJET SWITZERLAND Enter air Easyjet Europe AIR DOLOMITI Eurowings RYANAIR IBERIA AIRLINES ATLASJET HAVACILIK KLM LEISURE INTERNATIONAL Luxair Deutsche Lufthansa Malta MedAir NESMA AIRLINES NEOS Austrian Airlines AG People's Viennaline SMARTWINGS Tailwind Airlines Transavia France EASYJET TUNISAIR EXPRESS VOLOTEA Universal Air Charter Vueling Airlines Edelweiss Air","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-planes-olbia-airportgtfszip","text":"","title":"Filename: it_Sardegna-Planes-Olbia-Airport.gtfs.zip"},{"location":"licenses/#copyright-holders_228","text":"Travel Service Slovensko AEGEAN AIRLINES Air France AirOne AVANTI AIR ITA AIRWAYS British Airways SKY ALPS SRL Air Baltic THOMSONFLY TRADE AIR BA Cityflyer Norwegian Air CONDOR EASYJET SWITZERLAND Norwegian Air Enter air Easyjet Europe AER LINGUS AIR DOLOMITI Eurowings RYANAIR FlyDubai GETJET Bulgarian Air Charter Ltd AIR HORIZONT LTD Transavia Airlines IBERIA AIRLINES BELLE AIR EUROPE Luxair Deutsche Lufthansa LOT Polish Airlines JET TWO COM SWISS International Air Lines Malta MedAir AIR MEDITERRANEAN NEOS Austrian Airlines AG People's Viennaline SMARTWINGS SCANDINAVIAN AIRLINES Brussels Airlines Transavia France EASYJET VOLOTEA Vueling Airlines WIZZAIR MALTA WIZZ AIR Edelweiss Air Aeroitalia srl","title":"Copyright holders"},{"location":"licenses/#filename-it_sardegna-trenitaliagtfszip","text":"","title":"Filename: it_Sardegna-Trenitalia.gtfs.zip"},{"location":"licenses/#copyright-holders_229","text":"TRENITALIA","title":"Copyright holders"},{"location":"licenses/#filename-it_toscana-trenitaliagtfszip","text":"","title":"Filename: it_Toscana-Trenitalia.gtfs.zip"},{"location":"licenses/#copyright-holders_230","text":"TRENITALIA S.p.A.","title":"Copyright holders"},{"location":"licenses/#filename-it_veneto-venezia-busgtfszip","text":"","title":"Filename: it_Veneto-Venezia-Bus.gtfs.zip"},{"location":"licenses/#copyright-holders_231","text":"ACTVs.p.a","title":"Copyright holders"},{"location":"licenses/#filename-it_veneto-venezia-ferriesgtfszip","text":"","title":"Filename: it_Veneto-Venezia-Ferries.gtfs.zip"},{"location":"licenses/#copyright-holders_232","text":"ACTVs.p.a","title":"Copyright holders"},{"location":"licenses/#filename-eu_flixbusgtfszip","text":"","title":"Filename: eu_flixbus.gtfs.zip"},{"location":"licenses/#copyright-holders_233","text":"FlixBus-eu FlixTrain-eu Greyhound-eu","title":"Copyright holders"},{"location":"licenses/#filename-eu_blablacar-busgtfszip","text":"","title":"Filename: eu_blablacar-bus.gtfs.zip"},{"location":"licenses/#copyright-holders_234","text":"BlaBlaCar Bus","title":"Copyright holders"},{"location":"licenses/#filename-si_napgtfszip","text":"","title":"Filename: si_nap.gtfs.zip"},{"location":"licenses/#copyright-holders_235","text":"Javno podjetje Ljubljanski potni\u0161ki promet d.o.o. Nomago d.o.o. Avtobusni promet Murska Sobota d.d. Arriva d.o.o. Prevozi Prijatelj d.o.o. Avtoprevozni\u0161tvo \u0160amu turs, Josip \u0160amu s.p. Avtobusni prevozi Novak bus d.o.o. Avtobusni prevozi Mrgole d.o.o. Avtobusni prevozi Kastigar Polikarp s.p. Avtoprevozni\u0161tvo Martin - Valentina Frelih s.p. MPOV d.o.o. Vinica Prevozi Rok Jakli\u010d s.p. Pohorje turizem d.o.o. S\u017d-\u017dIP d.o.o. Mirttours Peter Mirt s.p. Miroslav \u0160pik s.p. Avtobusni prevozi Lipi\u010dnik Anita s.p. Zgornji Zavratnik d.o.o. AP Novak d.o.o. S\u017d - Potni\u0161ki promet, d.o.o. O\u0161trman tours d.o.o.","title":"Copyright holders"},{"location":"licenses/#filename-us-co_rtdgtfszip","text":"","title":"Filename: us-co_RTD.gtfs.zip"},{"location":"licenses/#copyright-holders_236","text":"Regional Transportation District","title":"Copyright holders"},{"location":"licenses/#filename-us-co_rtdgtfszip_1","text":"","title":"Filename: us-co_RTD.gtfs.zip"},{"location":"licenses/#copyright-holders_237","text":"Regional Transportation District","title":"Copyright holders"},{"location":"licenses/#filename-us-co_rtd-bustanggtfszip","text":"","title":"Filename: us-co_RTD-bustang.gtfs.zip"},{"location":"licenses/#copyright-holders_238","text":"Colorado Department of Transportation","title":"Copyright holders"},{"location":"licenses/#filename-us-co_rtd-bustanggtfszip_1","text":"","title":"Filename: us-co_RTD-bustang.gtfs.zip"},{"location":"licenses/#copyright-holders_239","text":"Colorado Department of Transportation","title":"Copyright holders"},{"location":"licenses/#filename-be_sncbgtfszip","text":"","title":"Filename: be_sncb.gtfs.zip"},{"location":"licenses/#copyright-holders_240","text":"NMBS/SNCB","title":"Copyright holders"},{"location":"licenses/#filename-be_stibgtfszip","text":"","title":"Filename: be_stib.gtfs.zip"},{"location":"licenses/#copyright-holders_241","text":"STIB","title":"Copyright holders"},{"location":"licenses/#filename-be_delijngtfszip","text":"","title":"Filename: be_delijn.gtfs.zip"},{"location":"licenses/#copyright-holders_242","text":"De Lijn","title":"Copyright holders"},{"location":"licenses/#filename-be_dewaterbusgtfszip","text":"","title":"Filename: be_dewaterbus.gtfs.zip"},{"location":"licenses/#copyright-holders_243","text":"DeWaterbus","title":"Copyright holders"},{"location":"licenses/#filename-be_tecgtfszip","text":"","title":"Filename: be_tec.gtfs.zip"},{"location":"licenses/#copyright-holders_244","text":"TEC Brabant Wallon TEC Charleroi TEC Hainaut TEC Li\u00e8ge - Verviers TEC Namur - Luxembourg","title":"Copyright holders"},{"location":"licenses/#filename-lu_openovgtfszip","text":"","title":"Filename: lu_openov.gtfs.zip"},{"location":"licenses/#copyright-holders_245","text":"RGTR CFL_Bus Luxtram AVL CFL TICE","title":"Copyright holders"},{"location":"licenses/#filename-at_oebbgtfszip","text":"","title":"Filename: at_oebb.gtfs.zip"},{"location":"licenses/#copyright-holders_246","text":"OEBB Personenverkehr AG Kundenservice City Air Terminal Betriebsgesellschaft m.b.H. Montafonerbahn AG","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_ttcgtfszip","text":"","title":"Filename: ca-on_TTC.gtfs.zip"},{"location":"licenses/#copyright-holders_247","text":"TTC","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-bellevillegtfszip","text":"","title":"Filename: ca-on_Metrolinx-belleville.gtfs.zip"},{"location":"licenses/#copyright-holders_248","text":"Belleville Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-bellevillegtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-belleville.gtfs.zip"},{"location":"licenses/#copyright-holders_249","text":"Belleville Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-cornwallgtfszip","text":"","title":"Filename: ca-on_Metrolinx-cornwall.gtfs.zip"},{"location":"licenses/#copyright-holders_250","text":"Cornwall Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-cornwallgtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-cornwall.gtfs.zip"},{"location":"licenses/#copyright-holders_251","text":"Cornwall Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-kawarthagtfszip","text":"","title":"Filename: ca-on_Metrolinx-kawartha.gtfs.zip"},{"location":"licenses/#copyright-holders_252","text":"Lindsay Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-kawarthagtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-kawartha.gtfs.zip"},{"location":"licenses/#copyright-holders_253","text":"Lindsay Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-miltongtfszip","text":"","title":"Filename: ca-on_Metrolinx-milton.gtfs.zip"},{"location":"licenses/#copyright-holders_254","text":"Milton Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-miltongtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-milton.gtfs.zip"},{"location":"licenses/#copyright-holders_255","text":"Milton Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-orangevillegtfszip","text":"","title":"Filename: ca-on_Metrolinx-orangeville.gtfs.zip"},{"location":"licenses/#copyright-holders_256","text":"Orangeville Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-orangevillegtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-orangeville.gtfs.zip"},{"location":"licenses/#copyright-holders_257","text":"Orangeville Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-orilliagtfszip","text":"","title":"Filename: ca-on_Metrolinx-orillia.gtfs.zip"},{"location":"licenses/#copyright-holders_258","text":"Orillia Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-orilliagtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-orillia.gtfs.zip"},{"location":"licenses/#copyright-holders_259","text":"Orillia Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-sarniagtfszip","text":"","title":"Filename: ca-on_Metrolinx-sarnia.gtfs.zip"},{"location":"licenses/#copyright-holders_260","text":"Sarnia Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-sarniagtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-sarnia.gtfs.zip"},{"location":"licenses/#copyright-holders_261","text":"Sarnia Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-saultstemariegtfszip","text":"","title":"Filename: ca-on_Metrolinx-saultstemarie.gtfs.zip"},{"location":"licenses/#copyright-holders_262","text":"Sault Ste. Marie Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-saultstemariegtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-saultstemarie.gtfs.zip"},{"location":"licenses/#copyright-holders_263","text":"Sault Ste. Marie Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-simcoegtfszip","text":"","title":"Filename: ca-on_Metrolinx-simcoe.gtfs.zip"},{"location":"licenses/#copyright-holders_264","text":"Simcoe County Linx","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-simcoegtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-simcoe.gtfs.zip"},{"location":"licenses/#copyright-holders_265","text":"Simcoe County Linx","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-stratfordgtfszip","text":"","title":"Filename: ca-on_Metrolinx-stratford.gtfs.zip"},{"location":"licenses/#copyright-holders_266","text":"Stratford Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-stratfordgtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-stratford.gtfs.zip"},{"location":"licenses/#copyright-holders_267","text":"Stratford Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-stthomasgtfszip","text":"","title":"Filename: ca-on_Metrolinx-stthomas.gtfs.zip"},{"location":"licenses/#copyright-holders_268","text":"St. Thomas Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-stthomasgtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-stthomas.gtfs.zip"},{"location":"licenses/#copyright-holders_269","text":"St. Thomas Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-temiskaminggtfszip","text":"","title":"Filename: ca-on_Metrolinx-temiskaming.gtfs.zip"},{"location":"licenses/#copyright-holders_270","text":"Temiskaming Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-temiskaminggtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-temiskaming.gtfs.zip"},{"location":"licenses/#copyright-holders_271","text":"Temiskaming Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-timminsgtfszip","text":"","title":"Filename: ca-on_Metrolinx-timmins.gtfs.zip"},{"location":"licenses/#copyright-holders_272","text":"Timmins Transit","title":"Copyright holders"},{"location":"licenses/#filename-ca-on_metrolinx-timminsgtfszip_1","text":"","title":"Filename: ca-on_Metrolinx-timmins.gtfs.zip"},{"location":"licenses/#copyright-holders_273","text":"Timmins Transit","title":"Copyright holders"},{"location":"licenses/#filename-ee_eegtfszip","text":"","title":"Filename: ee_ee.gtfs.zip"},{"location":"licenses/#copyright-holders_274","text":"Teadmata OV Ida-Bus O\u00dc OSA\u00dcHING FREMANTI NAJA O\u00dc Sirel Reisid O\u00dc PRESTO osa\u00fching Estonian Lines O\u00dc Atko Bussiliinid AS TS Laevad O\u00dc Ekspressbussiliinid osa\u00fching ABuss O\u00dc Saaremaa vald Alukvik O\u00dc MEELIS HEEK O\u00dc Baltic Shuttle Valgis osa\u00fching osa\u00fching Tulisilm Osa\u00fching Bristol Takso ATG Bussiliinid O\u00dc ATG Bussipark O\u00dc Flixbus Polska sp.o.o Taisto Express O\u00dc HANSABUSS AS Aktsiaselts MK Autobuss MK Reis O\u00dc Rannu Rukkilill E.S.T. O\u00dc SEBE Aktsiaselts Tallinna Linnatranspordi AS GoBus AS Norma-A SIA Arilix O\u00dc Aktsiaselts Hansa Bussiliinid AS Lux Express Estonia Kalle Bussid O\u00dc ELRON T\u00f5nu Tours O\u00dc","title":"Copyright holders"},{"location":"licenses/#filename-es_renfe-hsldmdgtfszip","text":"","title":"Filename: es_renfe-hsldmd.gtfs.zip"},{"location":"licenses/#copyright-holders_275","text":"RENFE OPERADORA","title":"Copyright holders"},{"location":"licenses/#filename-es_renfe-cercaniasgtfszip","text":"","title":"Filename: es_renfe-cercanias.gtfs.zip"},{"location":"licenses/#copyright-holders_276","text":"Renfe Cercanias","title":"Copyright holders"},{"location":"licenses/#filename-es_vitrasagtfszip","text":"","title":"Filename: es_vitrasa.gtfs.zip"},{"location":"licenses/#copyright-holders_277","text":"Viguesa de Transportes S.L.","title":"Copyright holders"},{"location":"licenses/#filename-es_malaga-metrogtfszip","text":"","title":"Filename: es_malaga-metro.gtfs.zip"},{"location":"licenses/#copyright-holders_278","text":"Metro de M\u00e1laga","title":"Copyright holders"},{"location":"licenses/#filename-es_valencia-bus-emtgtfszip","text":"","title":"Filename: es_valencia-bus-emt.gtfs.zip"},{"location":"licenses/#copyright-holders_279","text":"EMT Valencia","title":"Copyright holders"},{"location":"licenses/#filename-se_trafiklabgtfszip","text":"","title":"Filename: se_Trafiklab.gtfs.zip"},{"location":"licenses/#copyright-holders_280","text":"Visings\u00f6leden Ul S\u00f6rmlandstrafiken \u00d6stg\u00f6tatrafiken Jlt L\u00e4nstrafiken Kronoberg Klt Region Gotland Blekingetrafiken G\u00e4llivare Stadstrafik Hallandstrafiken V\u00e4rmlandstrafik Vl Dalatrafik X-trafik Din Tur Destination Gotland L\u00e4nstrafiken J\u00e4mtland L\u00e4nstrafiken V\u00e4sterbotten L\u00e4nstrafiken Norrbotten Sl Sk\u00e5netrafiken Flygbussarna V\u00e4sttrafik Ventrafiken Arlanda Express L\u00e4nstrafiken \u00d6rebro \u00d6resundst\u00e5g BT Buss M\u00e4lart\u00e5g Vy T\u00e5g V\u00e4rmlandstrafik Waxholmsbolaget Flixtrain T\u00e5g i Bergslagen Vy Bus4you Vy Express Skelleftebuss Y-buss Masexpressen Silverlinjen H\u00e4rjedalingen Sn\u00e4llt\u00e5get Nikkaluoktaexpressen Trafikverket F\u00e4rjerederiet Bergkvarabuss Vy Natt\u00e5g Norrt\u00e5g Falcks Omnibus Kr\u00f6sat\u00e5gen T\u00e5gab Karlstadsbuss Lule\u00e5 Lokaltrafik Trosabussen Haparanda lokaltrafik Pite\u00e5 Lokaltrafik Str\u00f6mma Boden Stadstrafik Kiruna Stadstrafik Stadsbussarna \u00d6stersund Kr\u00f6sat\u00e5gen Sj Vy SJ Nord Marstrandsf\u00e4rjan Mtrx Stavsn\u00e4s B\u00e5ttaxi V\u00e4stervik Express Kalix stadstrafik Flixbus Stockholms stad","title":"Copyright holders"}]} \ No newline at end of file diff --git a/search/worker.js b/search/worker.js new file mode 100644 index 00000000..8628dbce --- /dev/null +++ b/search/worker.js @@ -0,0 +1,133 @@ +var base_path = 'function' === typeof importScripts ? '.' : '/search/'; +var allowSearch = false; +var index; +var documents = {}; +var lang = ['en']; +var data; + +function getScript(script, callback) { + console.log('Loading script: ' + script); + $.getScript(base_path + script).done(function () { + callback(); + }).fail(function (jqxhr, settings, exception) { + console.log('Error: ' + exception); + }); +} + +function getScriptsInOrder(scripts, callback) { + if (scripts.length === 0) { + callback(); + return; + } + getScript(scripts[0], function() { + getScriptsInOrder(scripts.slice(1), callback); + }); +} + +function loadScripts(urls, callback) { + if( 'function' === typeof importScripts ) { + importScripts.apply(null, urls); + callback(); + } else { + getScriptsInOrder(urls, callback); + } +} + +function onJSONLoaded () { + data = JSON.parse(this.responseText); + var scriptsToLoad = ['lunr.js']; + if (data.config && data.config.lang && data.config.lang.length) { + lang = data.config.lang; + } + if (lang.length > 1 || lang[0] !== "en") { + scriptsToLoad.push('lunr.stemmer.support.js'); + if (lang.length > 1) { + scriptsToLoad.push('lunr.multi.js'); + } + if (lang.includes("ja") || lang.includes("jp")) { + scriptsToLoad.push('tinyseg.js'); + } + for (var i=0; i < lang.length; i++) { + if (lang[i] != 'en') { + scriptsToLoad.push(['lunr', lang[i], 'js'].join('.')); + } + } + } + loadScripts(scriptsToLoad, onScriptsLoaded); +} + +function onScriptsLoaded () { + console.log('All search scripts loaded, building Lunr index...'); + if (data.config && data.config.separator && data.config.separator.length) { + lunr.tokenizer.separator = new RegExp(data.config.separator); + } + + if (data.index) { + index = lunr.Index.load(data.index); + data.docs.forEach(function (doc) { + documents[doc.location] = doc; + }); + console.log('Lunr pre-built index loaded, search ready'); + } else { + index = lunr(function () { + if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) { + this.use(lunr[lang[0]]); + } else if (lang.length > 1) { + this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility + } + this.field('title'); + this.field('text'); + this.ref('location'); + + for (var i=0; i < data.docs.length; i++) { + var doc = data.docs[i]; + this.add(doc); + documents[doc.location] = doc; + } + }); + console.log('Lunr index built, search ready'); + } + allowSearch = true; + postMessage({config: data.config}); + postMessage({allowSearch: allowSearch}); +} + +function init () { + var oReq = new XMLHttpRequest(); + oReq.addEventListener("load", onJSONLoaded); + var index_path = base_path + '/search_index.json'; + if( 'function' === typeof importScripts ){ + index_path = 'search_index.json'; + } + oReq.open("GET", index_path); + oReq.send(); +} + +function search (query) { + if (!allowSearch) { + console.error('Assets for search still loading'); + return; + } + + var resultDocuments = []; + var results = index.search(query); + for (var i=0; i < results.length; i++){ + var result = results[i]; + doc = documents[result.ref]; + doc.summary = doc.text.substring(0, 200); + resultDocuments.push(doc); + } + return resultDocuments; +} + +if( 'function' === typeof importScripts ) { + onmessage = function (e) { + if (e.data.init) { + init(); + } else if (e.data.query) { + postMessage({ results: search(e.data.query) }); + } else { + console.error("Worker - Unrecognized message: " + e); + } + }; +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..1d8a9f14 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,13 @@ + + + + https://routing.spline.de/ + 2024-03-16 + daily + + + https://routing.spline.de/licenses/ + 2024-03-16 + daily + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 00000000..80ab5f72 Binary files /dev/null and b/sitemap.xml.gz differ