This PR introduces the base rendering services for doc in console.
This will be used in the next version of `nitx` to benefit fron the new nitdoc architecture.
Pull-Request: #1315
# Wanted screen height
var screen_height = 480
- redef fun window_created
+ redef fun on_create
do
super
game = new Game
# Zoom applied for the device display from the game logic coordinates
var zoom = 1.0
- redef fun window_created
+ redef fun on_create
do
super
init do super
- redef fun window_created
+ redef fun on_create
do
super
mkdir -p bin
../../bin/nitc src/nitiwiki.nit -o bin/nitiwiki
-check: tests
-tests: nitiwiki
+check: nitiwiki
cd tests; make
doc:
To add content in your wiki simply add markdown files (with `.md` extension) into the `pages/` folder.
+#### Write content
+
+Nitiwiki only support content written in
+[markdown format](http://daringfireball.net/projects/markdown/).
+
+#### Link wiki articles
+
+In nitiwiki, linking to a section or an article is done using the *wikilinks*.
+
+Wikilinks provide easy linking between pages of the wiki.
+To create a wikilink, just put the name of the page to link to in double brackets.
+For example `[[WikiLink]]`.
+
+If you ever need to write something like `[[WikiLink]]` without creating a wikilink,
+just prefix it with a `\\`, like `\\[[WikiLink]]`.
+
+There are some special linking precedence that come into play when linking between
+sections and sub-sections.
+
+Nitiwiki will chose the first entry that match the given wikilinks in that order:
+1. Looks in the current section
+2. Looks in the current section children recursively
+3. Looks in the current section parents until root
+
+To link to or from a subpage, you can use a regular wikilink that does not
+contain the name of the parent directory of the subpage.
+Nikiwiki descends the directory hierarchy looking for a page that matches your link.
+
+For example, if `FooBar/SubPage` links to `OtherPage`, nikiwiki will first prefer
+pointing the link to `FooBar/SubPage/OtherPage` if it exists, next to
+`FooBar/OtherPage` and finally to `OtherPage` in the root of the wiki.
+
+You can also specify a link that contains a relative section name,
+like `FooBar/OtherPage` to specify what page to link to.
+
+You can also use `/` at the start of a link, to specify exactly which page to link to,
+when there are multiple pages with similar names and the link goes to the wrong page by default.
+For example, linking from `FooBar/SubPage` to `/OtherPage` will link to the `OtherPage`
+in the root of the wiki, even if there is a `FooBar/OtherPage`.
+
+It's also possible to write a wikilink that uses something other than the page
+name as the link text.
+For example `[[Contact|Contact me!]]` links to the `Contact` page, but the link
+will appear like this: `Contact me!`.
+
+You can link to an anchor inside a page, using something like `[[WikiLink#foo]]`.
+
+#### Render the wiki in HTML
+
Once you have done your changes, use:
nitiwiki --status
end
# --status
-if opt_status.value or args.is_empty then
+if opt_status.value or
+ (not opt_clean.value and
+ not opt_fetch.value and
+ not opt_render.value and
+ not opt_rsync.value) then
wiki.parse
wiki.status
end
module wiki_base
import template::macro
-import markdown
import opts
import ini
end
end
+ # Render output.
+ fun render do end
+
# Show wiki status.
fun status do
print "nitiWiki"
end
end
- # Display msg if `level >= verbose_level`
+ # Display msg if `level <= verbose_level`
fun message(msg: String, level: Int) do
if level <= verbose_level then print msg
end
# `path` is used to determine the ancestor sections.
protected fun new_article(path: String): WikiArticle do
if entries.has_key(path) then return entries[path].as(WikiArticle)
+ message("Found article `{path}`", 2)
var article = new WikiArticle.from_source(self, path)
var section = new_section(path.dirname)
section.add_child(article)
private fun try_load_config do
var cfile = wiki.expand_path(wiki.config.root_dir, src_path, wiki.config_filename)
if not cfile.file_exists then return
- wiki.message("Custom config for section {name}", 2)
+ wiki.message("Custom config for section {name}", 1)
config = new SectionConfig(cfile)
end
# Page content.
#
# What you want to be displayed in the page.
- var content: nullable Writable = null
-
- # Headlines ids and titles.
- var headlines = new ArrayMap[String, HeadLine]
+ var content: nullable Writable = null is writable
- # Create a new articleu sing a markdown source file.
+ # Create a new article using a markdown source file.
init from_source(wiki: Nitiwiki, md_file: String) do
src_full_path = md_file
init(wiki, md_file.basename(".md"))
- var md_proc = new MarkdownProcessor
- content = md_proc.process(md)
- headlines = md_proc.emitter.decorator.headlines
+ content = md
end
redef var src_full_path: nullable String = null
# Extract the markdown text from `source_file`.
#
# REQUIRE: `has_source`.
- var md: String is lazy do
- assert has_source
+ var md: nullable String is lazy do
+ if not has_source then return null
var file = new FileReader.open(src_full_path.to_s)
var md = file.read_all
file.close
# HTML wiki rendering
module wiki_html
-import wiki_base
+import wiki_links
redef class Nitiwiki
# Render HTML output looking for changes in the markdown sources.
- fun render do
+ redef fun render do
+ super
if not root_section.is_dirty and not force_render then return
var out_dir = expand_path(config.root_dir, config.out_dir)
out_dir.mkdir
end
redef class WikiEntry
-
- # Url to `self` once generated.
- fun url: String do return wiki.config.root_url.join_path(breadcrumbs.join("/"))
-
# Get a `<a>` template link to `self`
fun tpl_link: Writable do
return "<a href=\"{url}\">{title}</a>"
end
end
- # The index page for this section.
- #
- # If no file `index.md` exists for this section,
- # a summary is generated using contained articles.
- var index: WikiArticle is lazy do
- for child in children.values do
- if child isa WikiArticle and child.is_index then return child
- end
- return new WikiSectionIndex(wiki, "index", self)
- end
-
redef fun tpl_link do return index.tpl_link
# Render the section hierarchy as a html tree.
end
end
- redef fun url do
- if parent == null then
- return wiki.config.root_url.join_path("{name}.html")
- else
- return parent.url.join_path("{name}.html")
- end
- end
-
- # Is `self` an index page?
- #
- # Checks if `self.name == "index"`.
- fun is_index: Bool do return name == "index"
-
redef fun render do
+ super
if not is_dirty and not wiki.force_render then return
wiki.message("Render article {name}", 2)
var file = out_full_path
file.dirname.mkdir
tpl_page.write_to_file file
- super
end
end
# A `WikiArticle` that contains the section index tree.
-class WikiSectionIndex
- super WikiArticle
-
- # The section described by `self`.
- var section: WikiSection
-
- redef fun title do return section.title
-
- redef fun url do return section.url
+redef class WikiSectionIndex
redef var is_dirty = false
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Wiki internal links handling.
+module wiki_links
+
+import wiki_base
+intrude import markdown
+
+redef class Nitiwiki
+ # Looks up a WikiEntry by its `name`.
+ #
+ # Rules are:
+ # 1. Looks in the current section
+ # 2. Looks in the current section children
+ # 3. Looks in the current section parent
+ # 4. Looks up to wiki root
+ #
+ # Returns `null` if no article can be found.
+ fun lookup_entry_by_name(context: WikiEntry, name: String): nullable WikiEntry do
+ var section = context.parent
+ var res = section.lookup_entry_by_name(name)
+ if res != null then return res
+ while section != null do
+ if section.name == name then return section
+ if section.children.has_key(name) then return section.children[name]
+ section = section.parent
+ end
+ return null
+ end
+
+ # Looks up a WikiEntry by its `title`.
+ #
+ # Rules are:
+ # 1. Looks in the current section
+ # 2. Looks in the current section children
+ # 3. Looks in the current section parent
+ # 4. Looks up to wiki root
+ #
+ # Returns `null` if no article can be found.
+ fun lookup_entry_by_title(context: WikiEntry, title: String): nullable WikiEntry do
+ var section = context.parent
+ var res = section.lookup_entry_by_title(title)
+ if res != null then return res
+ while section != null do
+ if section.title == title then return section
+ for child in section.children.values do
+ if child.title == title then return child
+ end
+ section = section.parent
+ end
+ return null
+ end
+
+ # Looks up a WikiEntry by its `path`.
+ #
+ # Path can be relative from `context` like `context/entry`.
+ # Or absolute like `/entry1/entry2`.
+ #
+ # Returns `null` if no article can be found.
+ fun lookup_entry_by_path(context: WikiEntry, path: String): nullable WikiEntry do
+ var entry = context.parent
+ var parts = path.split_with("/")
+ if path.has_prefix("/") then
+ entry = root_section
+ if parts.is_empty then return root_section.index
+ parts.shift
+ end
+ while not parts.is_empty do
+ var name = parts.shift
+ if name.is_empty then continue
+ if not entry.children.has_key(name) then return null
+ entry = entry.children[name]
+ end
+ return entry
+ end
+end
+
+redef class WikiEntry
+
+ # Url to `self` once generated.
+ fun url: String do return wiki.config.root_url.join_path(breadcrumbs.join("/"))
+
+ redef fun render do
+ super
+ if not is_dirty and not wiki.force_render then return
+ end
+
+ # Search in `self` then `self.children` if an entry has the name `name`.
+ fun lookup_entry_by_name(name: String): nullable WikiEntry do
+ if children.has_key(name) then return children[name]
+ for child in children.values do
+ var res = child.lookup_entry_by_name(name)
+ if res != null then return res
+ end
+ return null
+ end
+
+ # Search in `self` then `self.children` if an entry has the title `title`.
+ fun lookup_entry_by_title(title: String): nullable WikiEntry do
+ for child in children.values do
+ if child.title == title then return child
+ end
+ for child in children.values do
+ var res = child.lookup_entry_by_title(title)
+ if res != null then return res
+ end
+ return null
+ end
+end
+
+redef class WikiSection
+
+ # The index page for this section.
+ #
+ # If no file `index.md` exists for this section,
+ # a summary is generated using contained articles.
+ var index: WikiArticle is lazy do
+ for child in children.values do
+ if child isa WikiArticle and child.is_index then return child
+ end
+ return new WikiSectionIndex(wiki, "index", self)
+ end
+end
+
+redef class WikiArticle
+
+ # Headlines ids and titles.
+ var headlines = new ArrayMap[String, HeadLine]
+
+ # Is `self` an index page?
+ #
+ # Checks if `self.name == "index"`.
+ fun is_index: Bool do return name == "index"
+
+ redef fun url do
+ if parent == null then
+ return wiki.config.root_url.join_path("{name}.html")
+ else
+ return parent.url.join_path("{name}.html")
+ end
+ end
+
+ redef fun render do
+ super
+ if not is_dirty and not wiki.force_render or not has_source then return
+ var md_proc = new NitiwikiMdProcessor(wiki, self)
+ content = md_proc.process(md.as(not null))
+ headlines.recover_with(md_proc.emitter.decorator.headlines)
+ end
+end
+
+# A `WikiArticle` that contains the section index tree.
+class WikiSectionIndex
+ super WikiArticle
+
+ # The section described by `self`.
+ var section: WikiSection
+
+ redef fun title do return section.title
+
+ redef fun url do return section.url
+end
+
+# A MarkdownProcessor able to parse wiki links.
+class NitiwikiMdProcessor
+ super MarkdownProcessor
+
+ # Wiki used to resolve links.
+ var wiki: Nitiwiki
+
+ # Article parsed by `self`.
+ #
+ # Used to contextualize links.
+ var context: WikiArticle
+
+ init do
+ emitter = new MarkdownEmitter(self)
+ emitter.decorator = new NitiwikiDecorator(wiki, context)
+ end
+
+ redef fun token_at(text, pos) do
+ var token = super
+ if not token isa TokenLink then return token
+ if pos + 1 < text.length then
+ var c = text[pos + 1]
+ if c == '[' then return new TokenWikiLink(pos, c)
+ end
+ return token
+ end
+end
+
+private class NitiwikiDecorator
+ super HTMLDecorator
+
+ # Wiki used to resolve links.
+ var wiki: Nitiwiki
+
+ # Article used to contextualize links.
+ var context: WikiArticle
+
+ fun add_wikilink(v: MarkdownEmitter, link: Text, name, comment: nullable Text) do
+ var wiki = v.processor.as(NitiwikiMdProcessor).wiki
+ var target: nullable WikiEntry = null
+ var anchor: nullable String = null
+ if link.has("#") then
+ var parts = link.split_with("#")
+ link = parts.first
+ anchor = parts.subarray(1, parts.length - 1).join("#")
+ end
+ if link.has("/") then
+ target = wiki.lookup_entry_by_path(context, link.to_s)
+ else
+ target = wiki.lookup_entry_by_name(context, link.to_s)
+ if target == null then
+ target = wiki.lookup_entry_by_title(context, link.to_s)
+ end
+ end
+ v.add "<a "
+ if target != null then
+ if name == null then name = target.title
+ link = target.url
+ else
+ wiki.message("Warning: unknown wikilink `{link}` (in {context.src_path.as(not null)})", 0)
+ v.add "class=\"broken\" "
+ end
+ v.add "href=\""
+ append_value(v, link)
+ if anchor != null then append_value(v, "#{anchor}")
+ v.add "\""
+ if comment != null and not comment.is_empty then
+ v.add " title=\""
+ append_value(v, comment)
+ v.add "\""
+ end
+ v.add ">"
+ if name == null then name = link
+ v.emit_text(name)
+ v.add "</a>"
+ end
+end
+
+# A NitiWiki link token.
+#
+# Something of the form `[[foo]]`.
+#
+# Allowed formats:
+#
+# * `[[Wikilink]]`
+# * `[[Wikilink/Bar]]`
+# * `[[Wikilink#foo]]`
+# * `[[Wikilink/Bar#foo]]`
+# * `[[title|Wikilink]]`
+# * `[[title|Wikilink/Bar]]`
+# * `[[title|Wikilink/Bar#foo]]`
+class TokenWikiLink
+ super TokenLink
+
+ redef fun emit_hyper(v) do
+ v.decorator.as(NitiwikiDecorator).add_wikilink(v, link.as(not null), name, comment)
+ end
+
+ redef fun check_link(v, out, start, token) do
+ var md = v.current_text
+ var pos = start + 2
+ var tmp = new FlatBuffer
+ pos = md.read_md_link_id(tmp, pos)
+ if pos < start then return -1
+ var name = tmp.write_to_string
+ if name.has("|") then
+ var parts = name.split_once_on("|")
+ self.name = parts.first
+ self.link = parts[1]
+ else
+ self.name = null
+ self.link = name
+ end
+ pos += 1
+ pos = md.skip_spaces(pos)
+ if pos < start then return -1
+ pos += 1
+ return pos
+ end
+end
-nitiwiki
+../bin/nitiwiki
+++ /dev/null
-nitiwiki --config wiki1/config.ini --clean --render -v
+++ /dev/null
-nitiwiki --config wiki1/config.ini --clean --status
+++ /dev/null
-Render section out
-Render section out/sec1
-Render section out/sec2
-Render auto-index for section out/sec2
-Render section out/sec2/sub-sec21
-Render section out/sec2/sub-sec22
--- /dev/null
+Render section out
--- /dev/null
+nitiWiki
+name: wiki1
+config: wiki1/config.ini
+url: http://localhost/
+
+There is modified files:
+ + pages
+ + /pages/index.md
+
+Use nitiwiki --render to render modified files
--- /dev/null
+Custom config for section sec2
+Render section out
+Warning: unknown wikilink `not found` (in /pages/index.md)
+Warning: unknown wikilink `Not Found` (in /pages/index.md)
+Warning: unknown wikilink `/not/found` (in /pages/index.md)
+Warning: unknown wikilink `not/found` (in /pages/index.md)
+Warning: unknown wikilink `not found` (in /pages/index.md)
+Warning: unknown wikilink `not found` (in /pages/index.md)
+Warning: unknown wikilink `not found` (in /pages/index.md)
+Render section out/sec1
+Render section out/sec2
+Warning: unknown wikilink `not found` (in /pages/sec2/index.md)
+Warning: unknown wikilink `Not Found` (in /pages/sec2/index.md)
+Warning: unknown wikilink `/not/found` (in /pages/sec2/index.md)
+Warning: unknown wikilink `not/found` (in /pages/sec2/index.md)
+Warning: unknown wikilink `not found` (in /pages/sec2/index.md)
+Warning: unknown wikilink `not found` (in /pages/sec2/index.md)
+Warning: unknown wikilink `not found` (in /pages/sec2/index.md)
+Render section out/sec2/sub-sec21
+Render section out/sec2/sub-sec22
nitiWiki
-name: wiki1
-config: wiki1/config.ini
+name: wiki2
+config: wiki2/config.ini
url: http://localhost/
There is modified files:
+ pages
+ + /pages/contact.md
+ /pages/index.md
+ + /pages/other_page.md
+ pages/sec1
+ /pages/sec1/index.md
+ pages/sec2
+ + /pages/sec2/index.md
+ pages/sec2/sub-sec21
+ /pages/sec2/sub-sec21/index.md
+ pages/sec2/sub-sec22
+ /pages/sec2/sub-sec22/index.md
+ + /pages/sec2/sub-sec22/other.md
Use nitiwiki --render to render modified files
--- /dev/null
+../bin/nitiwiki --config wiki1/config.ini --clean --render -v
--- /dev/null
+../bin/nitiwiki --config wiki1/config.ini --clean --status
--- /dev/null
+dummy { margin: 0 }
+
+a.broken { font-style: italic; color: red }
--- /dev/null
+wiki.name=wiki2
+wiki.root_dir=wiki2
--- /dev/null
+# Test wikilinks
+
+## Link to entries by name
+
+* Link to [[sec1]]
+* Link to [[sec2]]
+* Link to [[contact]]
+* Link to [[other_page]]
+* Link to [[other]]
+* Link to [[not found]]
+
+## Link to entries by title
+
+* Link to [[Sec1]]
+* Link to [[Section 2]]
+* Link to [[Contact]]
+* Link to [[Other Page]]
+* Link to [[Other]]
+* Link to [[Not Found]]
+
+## Link to entries by absolute path
+
+* Link to [[/index]]
+* Link to [[/sec1]]
+* Link to [[/sec1/index]]
+* Link to [[/sec1/]]
+* Link to [[/sec2/sub-sec22]]
+* Link to [[/sec2/sub-sec22/]]
+* Link to [[/sec2/sub-sec22/index]]
+* Link to [[/sec2/sub-sec22/other]]
+* Link to [[/not/found]]
+
+## Link to entries by relative path
+
+* Link to [[sec1]]
+* Link to [[sec1/index]]
+* Link to [[sec1/]]
+* Link to [[sec2/sub-sec22]]
+* Link to [[sec2/sub-sec22/]]
+* Link to [[sec2/sub-sec22/index]]
+* Link to [[sec2/sub-sec22/other]]
+* Link to [[not/found]]
+
+## Link with custom text
+
+* Link to [[1Fooi|Other Page]]
+* Link to [[2 Foo bar|/sec2/sub-sec22/index]]
+* Link to [[3|sec2/sub-sec22/other]]
+* Link to [[foo>bar>bar|other_page]]
+* Link to [[5|not found]]
+
+## Link with anchors
+
+* Link to [[Other Page#Foo]]
+* Link to [[/sec2/sub-sec22/index#2 Foo bar]]
+* Link to [[sec2/sub-sec22/other#3]]
+* Link to [[other_page#4]]
+* Link to [[not found#5_lol]]
+* Link to [[1|Other Page#Foo]]
+* Link to [[2|/sec2/sub-sec22/index#2 Foo bar]]
+* Link to [[3|sec2/sub-sec22/other#3]]
+* Link to [[4|other_page#4foobar#baz]]
+* Link to [[5|not found#5]]
--- /dev/null
+# Other Page
--- /dev/null
+# Section 1
--- /dev/null
+section.title=Section 2
--- /dev/null
+# Test wikilinks
+
+## Link to entries by name
+
+* Link to [[sec1]]
+* Link to [[sec2]]
+* Link to [[contact]]
+* Link to [[other_page]]
+* Link to [[not found]]
+
+## Link to entries by title
+
+* Link to [[Sec1]]
+* Link to [[Section 2]]
+* Link to [[Contact]]
+* Link to [[Other Page]]
+* Link to [[Not Found]]
+
+## Link to entries by absolute path
+
+* Link to [[/index]]
+* Link to [[/sec1]]
+* Link to [[/sec1/index]]
+* Link to [[/sec1/]]
+* Link to [[/sec2/sub-sec22]]
+* Link to [[/sec2/sub-sec22/]]
+* Link to [[/sec2/sub-sec22/index]]
+* Link to [[/sec2/sub-sec22/other]]
+* Link to [[/not/found]]
+
+## Link to entries by relative path
+
+* Link to [[sub-sec22]]
+* Link to [[sub-sec22/index]]
+* Link to [[sub-sec22/other]]
+* Link to [[sub-sec22/]]
+* Link to [[not/found]]
+
+## Link with custom text
+
+* Link to [[1Foo|Other Page]]
+* Link to [[2 Foo bar|/sec2/sub-sec22/index]]
+* Link to [[3|sub-sec22/other]]
+* Link to [[4foo>bar>baz|other_page]]
+* Link to [[5|not found]]
+
+## Link with anchors
+
+* Link to [[Other Page#Foo]]
+* Link to [[/sec2/sub-sec22/index#2 Foo bar]]
+* Link to [[sub-sec22/other#3]]
+* Link to [[other_page#4]]
+* Link to [[not found#5_lol]]
+* Link to [[1|Other Page#Foo]]
+* Link to [[2|/sec2/sub-sec22/index#2 Foo bar]]
+* Link to [[3|sub-sec22/other#3]]
+* Link to [[4|other_page#4foobar#baz]]
+* Link to [[5|not found#5]]
--- /dev/null
+# Section 2-1
--- /dev/null
+# Section 2-2
--- /dev/null
+# Other page
--- /dev/null
+<div class="row footer">
+ <div class="container-fluid">
+ <div class="well well-sm">
+ <p><strong>%TITLE% © %YEAR%</strong></p>
+ <p class="text-muted"><em>last modification %GEN_TIME%</em></p>
+ <p class="text-muted">Proudly powered by
+ <a href="http://nitlanguage.org">nit</a>!</p>
+ </div>
+ </div>
+</div>
--- /dev/null
+<div class="container-fluid header">
+ <div class="container">
+ <div class="header">
+ <a href="http://uqam.ca"><img src="%ROOT_URL%/%LOGO%" alt="logo" /></a>
+ <h2>%SUBTITLE%</h2>
+ <h1>%TITLE%</h1>
+ </div>
+ </div>
+</div>
--- /dev/null
+<nav class="menu" role="navigation">
+ <div class="container">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="%ROOT_URL%index.html">%TITLE%</a>
+ </div>
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav">
+ %MENUS%
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div>
+</nav>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>%TITLE%</title>
+
+ <link href="%ROOT_URL%/assets/vendors/bootstrap/bootstrap-3.2.0-dist/css/bootstrap.min.css" rel="stylesheet">
+ <link href="%ROOT_URL%/assets/css/main.css" rel="stylesheet">
+
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+ </head>
+ <body>
+ %HEADER%
+ %TOP_MENU%
+ <div class="container">
+ <div class="row">
+ %BODY%
+ </div>
+ %FOOTER%
+ </div>
+
+ <script src="%ROOT_URL%/vendors/jquery/jquery-1.11.1.min.js"></script>
+ <script src="%ROOT_URL%/vendors/bootstrap/bootstrap-3.2.0-dist/js/bootstrap.min.js"></script>
+ </body>
+</html>
--- /dev/null
+../bin/nitiwiki --config wiki2/config.ini --clean --render -v
--- /dev/null
+../bin/nitiwiki --config wiki2/config.ini --clean --status
redef fun react_event(game, event) do
if not event isa IssueCommentEvent then return
# FIXME use a more precise way to locate reviews
- if event.comment.has_ok_review then
+ if event.comment.is_ack then
var player = event.comment.user.player(game)
var a = new_achievement(game)
player.unlock_achievement(a, event)
# Rewards player for review comments.
#
- # Actuallty we look if the comment contains the string `"+1"`.
- #
# TODO only give nitcoins if reviewers < 2
redef fun react_player_event(r, game) do
- # FIXME use a more precise way to locate reviews
- if comment.body.has("\\+1\\b".to_re) then
+ if comment.is_ack then
react_player_review(r, game)
end
end
game.stats.inc("comments")
player.stats.inc("comments")
# FIXME use a more precise way to locate reviews
- if comment.has_ok_review then
+ if comment.is_ack then
game.stats.inc("reviews")
player.stats.inc("reviews")
end
end
end
end
-
-redef class IssueComment
- # Does this comment contain a "+1"?
- fun has_ok_review: Bool do return body.has("\\+1\\b".to_re)
-end
--- /dev/null
+bin/
+tests/out/
+stats.json
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+all: refund
+
+refund:
+ mkdir -p bin
+ ../../bin/nitc src/refund.nit -o bin/refund
+
+check: refund
+ cd tests; make
+
+clean:
+ rm -rf bin
+ rm -rf -- .nit_compile 2> /dev/null || true
+ cd tests; make clean
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Insurance refunds calculation tool.
+#
+# `refund` computes automatically the allowed refund for a reclamation according
+# to an insurrance policy.
+#
+# Usage:
+#
+# ~~~sh
+# > refund (<input_file> <output_file> | [OPTIONS])
+# ~~~
+#
+# Input file:
+#
+# `refund` expects a JSON input file on the form:
+#
+# ~~~json
+# {
+# "dossier": "A100323",
+# "mois": "2015-01",
+# "reclamations": [
+# {
+# "soin": 100,
+# "date": "2015-01-11",
+# "montant": "234.00$"
+# }, {
+# "soin": 200,
+# "date": "2015-01-13",
+# "montant": "128.00$"
+# }, {
+# "soin": 334,
+# "date": "2015-01-23",
+# "montant": "50.00$"
+# }
+# ]
+# }
+# ~~~
+#
+# Output file:
+#
+# You have to specify the path where `refund` should output the result file.
+#
+# Results are formatted as JSON:
+#
+# ~~~json
+# {
+# "client": "100323",
+# "mois": "2015-01",
+# "remboursements": [
+# {
+# "soin": 100,
+# "date": "2015-01-11",
+# "montant": "58.50$"
+# }, {
+# "soin": 200,
+# "date": "2015-01-13",
+# "montant": "22.50$"
+# }, {
+# "soin": 334,
+# "date": "2015-01-23",
+# "montant": "0.00$"
+# }
+# ]
+# }
+# ~~~
+#
+# Options:
+#
+# `refund` can generate statistics about reclamations and refunds computed.
+#
+# * `-S`: display statistics
+# * `-SR`: reset statistics
+#
+# Error handling:
+#
+# In case of error, a JSON object is generated in place of the output file:
+#
+# ~~~json
+# { "message": "Invalid input data" }
+# ~~~
+module refund
+
+
+import refund_json
+
+# Display usage in console then leave.
+fun usage do
+ print ""
+ print "Usage:"
+ print "refund <input.json> <output.json>"
+ print ""
+ print "options"
+ print " -S\tShow stats in console"
+ print " -RS\tClear stats"
+ exit 1
+end
+
+var proc = new RefundProcessor
+
+if args.length == 1 then
+ var flag = args.first
+ if flag == "-RS" then
+ proc.clear_stats
+ exit 0
+ else if flag == "-S" then
+ proc.show_stats
+ exit 0
+ else
+ print "Error: Unknown flag {flag}."
+ usage
+ end
+else if args.length != 2 then
+ print "Error: Incorrect number of arguments. Got {args.length}, expected 2."
+ usage
+end
+
+proc.process(args[0], args[1])
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Insurance refunds calculation base classes.
+module refund_base
+
+import counter
+
+# `RefundProcessor` manages the calculation of the refunds.
+#
+# See `process`.
+class RefundProcessor
+
+ # Where to generate output file.
+ var output_file: String is noinit, writable
+
+ # Where to save usage statistics.
+ var stats_file = "stats.json"
+
+ # Processes the `input_file` and write the output in `output_file`.
+ #
+ # Steps:
+ #
+ # 1. Parses the input_file and check json validity (see `load_input`).
+ # 2. Instantiates and checks the reclamation sheet against client rules
+ # (see `ReclamationSheet.from_json`).
+ # 3. Processes refunds (see `proces_refunds`).
+ # 4. Writes the output file (see `write_output`).
+ fun process(input_file, output_file: String) is abstract
+
+ # Refunds allowed for the current reclamation sheet.
+ var current_refunds = new HashMap[Care, Dollar]
+
+ # Computes allowed refunds for a given `Reclamation` found in a `ReclamationSheet`.
+ fun process_refund(sheet: ReclamationSheet, recl: Reclamation): Dollar is abstract
+
+ # Shows stats values in console
+ fun show_stats do print load_stats
+
+ # Loads stats from file as a RefundStats instance.
+ fun load_stats: RefundStats is abstract
+
+ # Saves stats in file.
+ fun save_stats(stats: RefundStats) is abstract
+
+ # Outputs error object then exit.
+ fun die(msg: String) is abstract
+
+ # Clears stats.
+ #
+ # Basically delete the stats file.
+ fun clear_stats do if stats_file.file_exists then stats_file.file_delete
+end
+
+# Stats representation using a `Counter`.
+class RefundStats
+ super Counter[String]
+end
+
+# A `Client` can ask for refunds from the insurance company.
+class Client
+
+ # Client number.
+ var number: String
+
+ redef fun to_s do return "#{number}"
+end
+
+# A `ReclamationSheet` is filled by the `Client` to obtain a `RefundSheet`.
+class ReclamationSheet
+
+ # File used for this refund.
+ var file: ReclFile is writable
+
+ # Month concerned by the refund.
+ var month: ReclMonth is writable
+
+ # Array of reclamations.
+ var recls = new Array[Reclamation] is writable
+
+ redef fun to_s do
+ return "Refund (file: {file}, month: {month}, recls: {recls.length})"
+ end
+end
+
+# A File found in a `ReclamationSheet`.
+#
+# A File points to a `Contract` and a `Client`.
+#
+# Allowed format is: `X12345` where `X` is the contract kind and `12345` is the
+# client number.
+class ReclFile
+
+ # File string id.
+ var id: String is writable
+
+ # Contract instance linked to this file.
+ var contract: Contract is noinit, writable
+
+ # Client instance linked to this file.
+ var client: Client is noinit, writable
+
+ # Returns the contract instance corresponding to `kind`.
+ fun contract_factory(proc: RefundProcessor, kind: String): Contract do
+ if kind == "A" then return new ContractA
+ if kind == "B" then return new ContractB
+ if kind == "C" then return new ContractC
+ if kind == "D" then return new ContractD
+ if kind == "E" then return new ContractE
+ proc.die("Unknown contract {kind}")
+ abort
+ end
+
+ redef fun to_s do return "{contract.kind}{client.number}"
+end
+
+# Month date formatted for contracts.
+#
+# Mainly used to factorize treatments on date calculation.
+class ReclMonth
+
+ # Internal date used to store the month.
+ var date: ReclDate is writable
+
+ # Is `date` in this month?
+ fun has(date: ReclDate): Bool do return self.date.month == date.month
+
+ redef fun to_s do
+ if date.month < 10 then
+ return "{date.year}-0{date.month}"
+ end
+ return "{date.year}-0{date.month}"
+ end
+end
+
+# The date on which a `Care` occured.
+class ReclDate
+ # Year of the month.
+ var year: Int is writable
+
+ # Month number (`1` is January).
+ var month: Int is writable
+
+ # Day number.
+ var day: Int is writable
+
+ redef fun to_s do
+ var res = new FlatBuffer
+ res.append "{year}-"
+ if month < 10 then
+ res.append "0{month}-"
+ else
+ res.append "{month}-"
+ end
+ if day < 10 then
+ res.append "0{day}"
+ else
+ res.append day.to_s
+ end
+ return res.write_to_string
+ end
+end
+
+# `RefundRecl` are parts of the `RefundReclamation`.
+class Reclamation
+ # `Care` id concerned by this reclamation.
+ var care_id: Int is writable
+
+ # Date this care was applied.
+ var date: ReclDate is writable
+
+ # Amount of money given by the `Client` in exchange of this care.
+ var fees: Dollar is writable
+
+ redef fun to_s do return "Entry (care: {care_id}, date: {date}, fees: {fees})"
+end
+
+# A `Contract` specifies the refund applicable on care.
+class Contract
+
+ # Kind of the contract (specified by a letter).
+ var kind: String is noinit, writable
+
+ # Covered cares for this kind of contract.
+ var cares = new Array[Care] is writable
+
+ # Adds a care to this contract.
+ fun add_care(care: Care) do cares.add care
+
+ # Gets a `Care` instance by its id.
+ #
+ # Returns `null` if no `Care` found.
+ fun care_by_id(id: Int): nullable Care do
+ for care in cares do
+ if care.match_id(id) then return care
+ end
+ return null
+ end
+
+ redef fun to_s do return "{kind} ({cares.length} cares)"
+end
+
+# Contracts
+# FIXME move contracts to a JSON configuration file.
+
+private class ContractA
+ super Contract
+
+ init do
+ kind = "A"
+ add_care(new UniqCare.with_vals(0, 25.0, null, null))
+ add_care(new UniqCare.with_vals(100, 35.0, null, 250.0.to_dollar))
+ add_care(new UniqCare.with_vals(150, 0.0, null, null))
+ add_care(new UniqCare.with_vals(175, 50.0, null, 200.0.to_dollar))
+ add_care(new UniqCare.with_vals(200, 25.0, null, 250.0.to_dollar))
+ add_care(new RangeCare.with_vals([300..399], 0.0, null, null))
+ add_care(new UniqCare.with_vals(400, 0.0, null, null))
+ add_care(new UniqCare.with_vals(500, 25.0, null, 150.0.to_dollar))
+ add_care(new UniqCare.with_vals(600, 40.0, null, 300.0.to_dollar))
+ add_care(new UniqCare.with_vals(700, 0.0, null, null))
+ end
+end
+
+private class ContractB
+ super Contract
+
+ init do
+ kind = "B"
+ add_care(new UniqCare.with_vals(0, 50.0, 40.0.to_dollar, null))
+ add_care(new UniqCare.with_vals(100, 50.0, 50.0.to_dollar, 250.0.to_dollar))
+ add_care(new UniqCare.with_vals(150, 0.0, null, null))
+ add_care(new UniqCare.with_vals(175, 75.0, null, 200.0.to_dollar))
+ add_care(new UniqCare.with_vals(200, 100.0,null, 250.0.to_dollar))
+ add_care(new RangeCare.with_vals([300..399], 50.0, null, null))
+ add_care(new UniqCare.with_vals(400, 0.0, null, null))
+ add_care(new UniqCare.with_vals(500, 50.0, 50.0.to_dollar, 150.0.to_dollar))
+ add_care(new UniqCare.with_vals(600, 100.0,null, 300.0.to_dollar))
+ add_care(new UniqCare.with_vals(700, 70.0, null, null))
+ end
+end
+
+private class ContractC
+ super Contract
+
+ init do
+ kind = "C"
+ add_care(new UniqCare.with_vals(0, 90.0, null, null))
+ add_care(new UniqCare.with_vals(100, 95.0, null, 250.0.to_dollar))
+ add_care(new UniqCare.with_vals(150, 85.0, null, null))
+ add_care(new UniqCare.with_vals(175, 90.0, null, 200.0.to_dollar))
+ add_care(new UniqCare.with_vals(200, 90.0, null, 250.0.to_dollar))
+ add_care(new RangeCare.with_vals([300..399], 90.0, null, null))
+ add_care(new UniqCare.with_vals(400, 90.0, null, null))
+ add_care(new UniqCare.with_vals(500, 90.0, null, 150.0.to_dollar))
+ add_care(new UniqCare.with_vals(600, 75.0, null, 300.0.to_dollar))
+ add_care(new UniqCare.with_vals(700, 90.0, null, null))
+ end
+end
+
+private class ContractD
+ super Contract
+
+ init do
+ kind = "D"
+ add_care(new UniqCare.with_vals(0, 100.0, 85.0.to_dollar, null))
+ add_care(new UniqCare.with_vals(100, 100.0, 75.0.to_dollar, 250.0.to_dollar))
+ add_care(new UniqCare.with_vals(150, 100.0, 150.0.to_dollar, null))
+ add_care(new UniqCare.with_vals(175, 95.0, null, 200.0.to_dollar))
+ add_care(new UniqCare.with_vals(200, 100.0, 100.0.to_dollar, 250.0.to_dollar))
+ add_care(new RangeCare.with_vals([300..399],100.0, null, null))
+ add_care(new UniqCare.with_vals(400, 100.0, 65.0.to_dollar, null))
+ add_care(new UniqCare.with_vals(500, 100.0, null, 150.0.to_dollar))
+ add_care(new UniqCare.with_vals(600, 100.0, 100.0.to_dollar, 300.0.to_dollar))
+ add_care(new UniqCare.with_vals(700, 100.0, 90.0.to_dollar, null))
+ end
+end
+
+private class ContractE
+ super Contract
+
+ init do
+ kind = "E"
+ add_care(new UniqCare.with_vals(0, 15.0, null, null))
+ add_care(new UniqCare.with_vals(100, 25.0, null, 250.0.to_dollar))
+ add_care(new UniqCare.with_vals(150, 15.0, null, null))
+ add_care(new UniqCare.with_vals(175, 25.0, 20.0.to_dollar, 200.0.to_dollar))
+ add_care(new UniqCare.with_vals(200, 12.0, null, 250.0.to_dollar))
+ add_care(new RangeCare.with_vals([300..399], 60.0, null, null))
+ add_care(new UniqCare.with_vals(400, 25.0, 15.0.to_dollar, null))
+ add_care(new UniqCare.with_vals(500, 30.0, 20.0.to_dollar, 150.0.to_dollar))
+ add_care(new UniqCare.with_vals(600, 15.0, null, 300.0.to_dollar))
+ add_care(new UniqCare.with_vals(700, 22.0, null, null))
+ end
+end
+
+# A `Care` is payed by the `Client` and can raises a `Refund`.
+interface Care
+
+ # Does `id` is acceptable for this care?
+ fun match_id(id: Int): Bool is abstract
+
+ # Percent covered for this kind of care.
+ fun cover: Float is abstract
+
+ # Max amount covered for this kind of care by reclamation.
+ fun max: nullable Dollar is abstract
+
+ # Max amount covered for this kind of care by month.
+ fun month_max: nullable Dollar is abstract
+
+ # Computes the refund for this care.
+ fun process_refund(fees: Dollar): Dollar do
+ var max = self.max
+ var val = ((fees.value.to_f * (cover / 100.0)) / 100.0).to_dollar
+ if max != null and val > max then val = max
+ return val
+ end
+end
+
+# A `UniqCare` refers to one and only one kind of `Care`.
+#
+# For example, the care `Ostéopathie` as the uniq id `200`.
+class UniqCare
+ super Care
+
+ # Care id.
+ var id: Int
+
+ redef fun match_id(id) do return self.id == id
+
+ redef var cover = 0.0
+ redef var max = null
+ redef var month_max = null
+
+ # Inits this `Care` with values.
+ #
+ # * `id`: the `Care` id.
+ # * `cover`: refund percentage covered for this `Care`.
+ # * `max`: max amount refunded for this `Care` in a reclamation sheet.
+ # * `month_max`: max amount refunded by month.
+ init with_vals(id: Int, cover: Float, max, month_max: nullable Dollar) do
+ self.id = id
+ self.cover = cover
+ self.max = max
+ self.month_max = month_max
+ end
+
+ redef fun to_s do return id.to_s
+end
+
+# A `RangeCare` refers to a set of id corresponding to the same `Care`.
+#
+# For example, the care `Soins Dentaires` is refered by the ids 300 to 399.
+class RangeCare
+ super Care
+
+ # Care id range.
+ var id: Range[Int]
+
+ redef fun match_id(id) do return self.id.has(id)
+ redef var cover = 0.0
+ redef var max = null
+ redef var month_max = null
+
+ # Inits this `Care` with values.
+ #
+ # * `id`: the `Care` id.
+ # * `cover`: refund percentage covered for this `Care`.
+ # * `max`: max amount refunded for this `Care` in a reclamation sheet.
+ # * `month_max`: max amount refunded by month.
+ init with_vals(id: Range[Int], cover: Float, max, month_max: nullable Dollar) do
+ self.id = id
+ self.cover = cover
+ self.max = max
+ self.month_max = month_max
+ end
+
+ redef fun to_s do return id.first.to_s
+end
+
+# Used to represent currencies values.
+class Dollar
+ super Comparable
+
+ redef type OTHER: Dollar
+
+ # Amount of cents.
+ var value: Int
+
+ # Inits `self` from a float `value`.
+ init from_float(value: Float) do
+ self.value = (value * 100.0).to_i
+ end
+
+ redef fun to_s do return "{value / 100}.{value % 100}$"
+ redef fun <(o) do return value < o.value
+
+ # Dollars addition.
+ fun +(o: Dollar): Dollar do return new Dollar(value + o.value)
+
+ # Dollars substraction.
+ fun -(o: Dollar): Dollar do return new Dollar(value - o.value)
+end
+
+redef class Float
+ # Returns `self` as a Dollar instance.
+ fun to_dollar: Dollar do return new Dollar.from_float(self)
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# JSON handling for `refund`.
+module refund_json
+
+import refund_base
+import json::static
+
+redef class RefundProcessor
+
+ redef fun process(input_file, output_file) do
+ self.output_file = output_file
+ var json = load_input(input_file)
+ var sheet = new ReclamationSheet.from_json(self, json)
+ var res = process_refunds(sheet)
+ write_output(res.to_pretty_json, output_file)
+ end
+
+ # Computes allowed refunds for a given `ReclamationSheet`.
+ fun process_refunds(sheet: ReclamationSheet): JsonObject do
+ # update stats
+ var stats = load_stats
+ stats.inc("total_treatments")
+ # compute refunds
+ current_refunds.clear
+ var json = new JsonObject
+ json["dossier"] = sheet.file.to_s
+ json["mois"] = sheet.month.to_s
+ var arr = new JsonArray
+ var sum = 0.0.to_dollar
+ for recl in sheet.recls do
+ var refund = process_refund(sheet, recl)
+ var obj = new JsonObject
+ obj["soin"] = recl.care_id
+ obj["date"] = recl.date.to_s
+ obj["montant"] = refund.to_s
+ arr.add obj
+ sum += refund
+ # update stats for care
+ stats.inc("total_{recl.care_id}")
+ end
+ save_stats(stats)
+ json["remboursements"] = arr
+ json["total"] = sum.to_s
+ return json
+ end
+
+ # Loads the input string and returns its content as a JsonObject.
+ #
+ # Dies if the file cannot be read or does not contain a valid JSONObject.
+ fun load_input(file: String): JsonObject do
+ if not file.file_exists then
+ die("File `{file}` not found.")
+ abort
+ end
+ var ptr = new FileReader.open(file)
+ var json = ptr.read_all.parse_json
+ if json isa JsonParseError then
+ die("Wrong input file ({json.message})")
+ abort
+ else if not json isa JsonObject then
+ die("Wrong input type (expected JsonObject got {json.class_name})")
+ abort
+ end
+ ptr.close
+ return json
+ end
+
+ # Writes `str` in path specified by `file`.
+ #
+ # Used to produce output and stats.
+ fun write_output(str: String, file: String) do
+ var ofs = new FileWriter.open(file)
+ ofs.write(str)
+ ofs.close
+ end
+
+ # UTILS
+
+ # Does `json` contains `key`? Dies otherwise.
+ private fun check_key(json: JsonObject, key: String) do
+ if json.has_key(key) then return
+ die("Malformed input (missing key {key})")
+ end
+
+ # Does `str` match the regex `re`.
+ private fun check_format(str, re: String): Bool do
+ return str.has(re.to_re)
+ end
+
+ redef fun die(msg) do
+ # save error
+ var obj = new JsonObject
+ obj["message"] = msg
+ write_output(obj.to_pretty_json, output_file)
+ # update stats
+ var stats = load_stats
+ stats.inc("total_reject")
+ save_stats(stats)
+ # leave
+ exit 1
+ end
+
+ redef fun show_stats do print load_stats.to_json.to_pretty_json
+
+ redef fun load_stats do
+ # If no stats found, return a new object
+ if not stats_file.file_exists then return new RefundStats
+ # Try to read from file
+ var ifs = new FileReader.open(stats_file)
+ var content = ifs.read_all.parse_json
+ ifs.close
+ # If file is corrupted, return a new object
+ if not content isa JsonObject then return new RefundStats
+ # Return file contained stats
+ return new RefundStats.from_json(content)
+ end
+
+ redef fun save_stats(stats: RefundStats) do
+ write_output(stats.to_json.to_pretty_json, stats_file)
+ end
+end
+
+redef class RefundStats
+
+ # Inits `self` from the content of a JsonObject
+ init from_json(json: JsonObject) do
+ for k, v in json do self[k] = v.as(Int)
+ end
+
+ # Outputs `self` as a JSON string.
+ fun to_json: JsonObject do
+ var obj = new JsonObject
+ for k, v in self do obj[k] = v
+ return obj
+ end
+end
+
+redef class ReclamationSheet
+
+ # Inits `self` from the content of a `JsonObject`.
+ init from_json(proc: RefundProcessor, json: JsonObject) do
+ file = new ReclFile.from_json(proc, json)
+ month = new ReclMonth.from_json(proc, json)
+ recls = parse_recls(proc, json)
+ init(file, month)
+ end
+
+ # Parses and checks the given `json` then returns an array of `Reclamation` instances.
+ private fun parse_recls(proc: RefundProcessor, json: JsonObject): Array[Reclamation] do
+ proc.check_key(json, "reclamations")
+ var res = new Array[Reclamation]
+ var recls = json["reclamations"]
+ if not recls isa JsonArray then
+ proc.die("Wrong type for `number` (expected JsonArray got {recls.class_name})")
+ abort
+ end
+ var i = 0
+ for obj in recls do
+ if not obj isa JsonObject then
+ proc.die("Wrong type for `reclamations#{i}` " +
+ "(expected JsonObject got {obj.class_name})")
+ abort
+ end
+ var recl = new Reclamation.from_json(proc, obj)
+ if not month.has(recl.date) then
+ proc.die("Wrong `mois` for `soin` with id `{recl.care_id}`")
+ abort
+ end
+ if file.contract.care_by_id(recl.care_id) == null then
+ proc.die("Unknown `soin` with id `{recl.care_id}`")
+ abort
+ end
+ res.add recl
+ i += 1
+ end
+ return res
+ end
+end
+
+redef class ReclFile
+ # Inits `self` from the content of a JsonObject.
+ init from_json(proc: RefundProcessor, json: JsonObject) do
+ proc.check_key(json, "dossier")
+ var id = json["dossier"]
+ if not id isa String then
+ proc.die("Wrong type for `dossier` (expected String got {id.class_name})")
+ abort
+ end
+ # Check format
+ parse_contract(proc, id)
+ parse_client(proc, id)
+ init(id)
+ end
+
+ # Tries to parse the contract from `file_id` string.
+ private fun parse_contract(proc: RefundProcessor, file_id: String) do
+ var kind = file_id.first.to_s
+ if not proc.check_format(kind, "^[A-E]\{1\}$") then
+ proc.die("Wrong contract (expected A, B, C, D or E got {kind})")
+ end
+ contract = contract_factory(proc, kind)
+ end
+
+ # Tries to parse the client number from the `file_id` string.
+ private fun parse_client(proc: RefundProcessor, file_id: String) do
+ var num = file_id.substring_from(1)
+ if not proc.check_format(num, "^[0-9]\{6\}$") then
+ proc.die("Wrong format for `number` (expected XXXXXX got {num})")
+ abort
+ end
+ client = new Client(num)
+ end
+end
+
+redef class ReclMonth
+ # Inits `self` from a `JsonObject`.
+ init from_json(proc: RefundProcessor, json: JsonObject) do
+ proc.check_key(json, "mois")
+ var month = json["mois"]
+ if not month isa String then
+ proc.die("Wrong type for `mois` (expected String got {month.class_name})")
+ return
+ end
+ if not proc.check_format(month, "^[0-9]\{4\}-[0-9]\{2\}$") then
+ proc.die("Wrong format for `mois` (expected AAAA-MM got {month})")
+ return
+ end
+ from_string(proc, month)
+ end
+
+ # Inits `self` from a string representation formatted as `AAAA-MM`.
+ init from_string(proc: RefundProcessor, str: String) do
+ var parts = str.split("-")
+ var year = parts[0].to_i
+ var month = parts[1].to_i
+ if month < 1 or month > 12 then
+ proc.die("Wrong format for `mois` (expected AAAA-MM got {str})")
+ return
+ end
+ date = new ReclDate(year, month, 1)
+ init(date)
+ end
+end
+
+redef class ReclDate
+ # Inits `self` from a `JsonObject`.
+ #
+ # Dies if the `json` input is invalid.
+ init from_json(proc: RefundProcessor, json: JsonObject) do
+ proc.check_key(json, "date")
+ var date = json["date"]
+ if not date isa String then
+ proc.die("Wrong type for `date` (expected String got {date.class_name})")
+ abort
+ end
+ if not proc.check_format(date, "^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$") then
+ proc.die("Wrong format for `date` (expected AAAA-MM-DD got {date})")
+ abort
+ end
+ from_string(proc, date)
+ end
+
+ # Inits `self` from its string representation formatted as `AAAA-MM`.
+ init from_string(proc: RefundProcessor, str: String) do
+ var parts = str.split("-")
+ year = parts[0].to_i
+ month = parts[1].to_i
+ day = parts[2].to_i
+ if month < 1 or month > 12 or day < 1 or day > 31 then
+ proc.die("Wrong format for `mois` (expected AAAA-MM got {str})")
+ abort
+ end
+ init(year, month, day)
+ end
+end
+
+redef class Reclamation
+ # Inits `self` from a `JsonObject`.
+ init from_json(proc: RefundProcessor, json: JsonObject) do
+ care_id = parse_care_id(proc, json)
+ date = new ReclDate.from_json(proc, json)
+ fees = parse_fees(proc, json)
+ init(care_id, date, fees)
+ end
+
+ # Inits `self` from its string representation formatted as `Int`.
+ private fun parse_care_id(proc: RefundProcessor, json: JsonObject): Int do
+ proc.check_key(json, "soin")
+ var id = json["soin"]
+ if not id isa Int then
+ proc.die("Wrong type for `soin` (expected Int got {id.class_name})")
+ abort
+ end
+ return id
+ end
+
+ # Inits `self` from its string representation formatted as `0.00$`.
+ private fun parse_fees(proc: RefundProcessor, json: JsonObject): Dollar do
+ proc.check_key(json, "montant")
+ var fees = json["montant"]
+ if not fees isa String then
+ proc.die("Wrong type for `fees` (expected String got {fees.class_name})")
+ abort
+ end
+ if not proc.check_format(fees, "^[0-9]+((\\.|\\,)[0-9]+)?\\$$") then
+ proc.die("Wrong format for `montant` (expected XX.XX$ got {fees})")
+ abort
+ end
+ return new Dollar.from_float(fees.basename("$").to_f)
+ end
+end
--- /dev/null
+# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+all: tests
+
+tests: clean
+ ./tests.sh
+
+clean:
+ rm -rf out/
--- /dev/null
+{
+ "dossier": "A",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A1003233",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A10032A",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": 1003233,
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 0,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200,00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "130.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-14",
+ "montant": "130.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-15",
+ "montant": "130.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-17",
+ "montant": "130.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.00$"
+ },
+ {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200,00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200,00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "400,00$"
+ },
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "400,00$"
+ },
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "400,00$"
+ },
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "400,00$"
+ },
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "400,00$"
+ },
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "400,00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-11",
+ "montant": "1400,00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "C100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "100.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-13",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 399,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "C100323",
+ "mois": "2015-01",
+ "reclamations": []
+}
--- /dev/null
+{
+ "dossier": "C100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-13",
+ "montant": "900.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "100.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.00$"
+ },
+ {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "0.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.00$"
+ },
+ {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-13",
+ "montant": "900.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "100.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.00$"
+ },
+ {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.00$"
+ },
+ {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 500,
+ "date": "2015-01-23",
+ "montant": "400.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ },
+ {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "200.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "a100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "Z100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "100100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": 10,
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015/01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-23",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015/01/11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-13-32",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-02-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01"
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": {
+ "1": {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ "2": {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ "3": {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ }
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [1, 2, 3]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {},
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "ABCD"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "234.00"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": "200",
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ },
+ {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.00$"
+ },
+ {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "125.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "reclamations": [
+ {
+ "soin": 900,
+ "date": "2015-01-11",
+ "montant": "234.00$"
+ }
+ ]
+}
--- /dev/null
+{
+ "message": "Wrong format for `number` (expected XXXXXX got )"
+}
--- /dev/null
+{
+ "message": "Wrong format for `number` (expected XXXXXX got 1003233)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `number` (expected XXXXXX got 10032A)"
+}
--- /dev/null
+{
+ "message": "Wrong type for `dossier` (expected String got Int)"
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "81.89$"
+ }, {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "22.50$"
+ }, {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "0.0$"
+ }],
+ "total": "104.39$"
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 0,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "0.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-13",
+ "montant": "36.0$"
+ }],
+ "total": "86.0$"
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "0.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "100.0$"
+ }],
+ "total": "100.0$"
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "0.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "100.0$"
+ }],
+ "total": "100.0$"
+}
--- /dev/null
+{
+ "dossier": "A100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "65.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-14",
+ "montant": "65.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-15",
+ "montant": "65.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-17",
+ "montant": "5.0$"
+ }],
+ "total": "200.0$"
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 200,
+ "date": "2015-01-13",
+ "montant": "90.0$"
+ }, {
+ "soin": 334,
+ "date": "2015-01-23",
+ "montant": "200.0$"
+ }],
+ "total": "340.0$"
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.0$"
+ }, {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "0.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "300.0$"
+ }],
+ "total": "369.0$"
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "0.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "150.0$"
+ }],
+ "total": "150.0$"
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "0.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "150.0$"
+ }],
+ "total": "150.0$"
+}
--- /dev/null
+{
+ "dossier": "B100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "50.0$"
+ }, {
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "0.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-11",
+ "montant": "300.0$"
+ }],
+ "total": "550.0$"
+}
--- /dev/null
+{
+ "dossier": "C100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "95.0$"
+ }, {
+ "soin": 334,
+ "date": "2015-01-13",
+ "montant": "180.0$"
+ }, {
+ "soin": 399,
+ "date": "2015-01-23",
+ "montant": "360.0$"
+ }],
+ "total": "635.0$"
+}
--- /dev/null
+{
+ "dossier": "C100323",
+ "mois": "2015-01",
+ "remboursements": [],
+ "total": "0.0$"
+}
--- /dev/null
+{
+ "dossier": "C100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "170.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "180.0$"
+ }],
+ "total": "350.0$"
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "75.0$"
+ }, {
+ "soin": 334,
+ "date": "2015-01-13",
+ "montant": "900.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "100.0$"
+ }],
+ "total": "1075.0$"
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.0$"
+ }, {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "65.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "100.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "0.0$"
+ }],
+ "total": "234.0$"
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "69.0$"
+ }, {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "65.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "100.0$"
+ }],
+ "total": "234.0$"
+}
--- /dev/null
+{
+ "dossier": "D100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "150.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "190.0$"
+ }],
+ "total": "340.0$"
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 100,
+ "date": "2015-01-11",
+ "montant": "58.50$"
+ }, {
+ "soin": 334,
+ "date": "2015-01-13",
+ "montant": "540.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "15.0$"
+ }],
+ "total": "613.50$"
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "8.27$"
+ }, {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "15.0$"
+ }, {
+ "soin": 600,
+ "date": "2015-01-23",
+ "montant": "60.0$"
+ }],
+ "total": "83.27$"
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 200,
+ "date": "2015-01-11",
+ "montant": "8.27$"
+ }, {
+ "soin": 400,
+ "date": "2015-01-13",
+ "montant": "15.0$"
+ }, {
+ "soin": 500,
+ "date": "2015-01-23",
+ "montant": "20.0$"
+ }],
+ "total": "43.27$"
+}
--- /dev/null
+{
+ "dossier": "E100323",
+ "mois": "2015-01",
+ "remboursements": [{
+ "soin": 150,
+ "date": "2015-01-11",
+ "montant": "30.0$"
+ }, {
+ "soin": 175,
+ "date": "2015-01-11",
+ "montant": "20.0$"
+ }],
+ "total": "50.0$"
+}
--- /dev/null
+{
+ "message": "Wrong contract (expected A, B, C, D or E got 1)"
+}
--- /dev/null
+{
+ "message": "Wrong contract (expected A, B, C, D or E got a)"
+}
--- /dev/null
+{
+ "message": "Wrong contract (expected A, B, C, D or E got Z)"
+}
--- /dev/null
+{
+ "message": "Wrong contract (expected A, B, C, D or E got 1)"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key dossier)"
+}
--- /dev/null
+{
+ "message": "Wrong input file (Unexpected Eof; is acceptable instead: value)"
+}
--- /dev/null
+{
+ "message": "Wrong input type (expected JsonObject got JsonArray)"
+}
--- /dev/null
+{
+ "message": "Wrong input file (Unexpected Eof; is acceptable instead: members, pair)"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key mois)"
+}
--- /dev/null
+{
+ "message": "Wrong type for `mois` (expected String got Int)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `mois` (expected AAAA-MM got 2015\/01)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `mois` (expected AAAA-MM got 2015-23)"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key date)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `date` (expected AAAA-MM-DD got 2015\/01\/11)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `mois` (expected AAAA-MM got 2015-13-32)"
+}
--- /dev/null
+{
+ "message": "Wrong `mois` for `soin` with id `100`"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key reclamations)"
+}
--- /dev/null
+{
+ "message": "Wrong type for `number` (expected JsonArray got JsonObject)"
+}
--- /dev/null
+{
+ "message": "Wrong type for `reclamations#0` (expected JsonObject got Int)"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key soin)"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key montant)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `montant` (expected XX.XX$ got ABCD)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `montant` (expected XX.XX$ got 234)"
+}
--- /dev/null
+{
+ "message": "Wrong format for `montant` (expected XX.XX$ got 234.00)"
+}
--- /dev/null
+{
+ "message": "Malformed input (missing key soin)"
+}
--- /dev/null
+{
+ "message": "Wrong type for `soin` (expected Int got FlatString)"
+}
--- /dev/null
+{
+ "message": "Unknown `soin` with id `900`"
+}
--- /dev/null
+#!/bin/bash
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+BIN=../bin
+OUT=out
+RES=res
+
+# Execute test with name $1.
+run_test()
+{
+ local test="$1"
+ $BIN/refund $test.json $OUT/$test.res > $OUT/$test.out 2> $OUT/$test.err
+ diff $OUT/$test.res $RES/$test.res > $OUT/$test.diff 2> /dev/null
+}
+
+# Return
+# 0 if the sav not exists
+# 1 if the file does match
+# 2 if the file does not match
+check_result() {
+ local test="$1"
+
+ if [ ! -r "$RES/$test.res" ]; then
+ return 0
+ elif [ ! -s $OUT/$test.diff ]; then
+ return 1
+ else
+ return 2
+ fi
+}
+
+echo "Testing..."
+echo ""
+
+rm -rf $OUT 2>/dev/null
+mkdir $OUT 2>/dev/null
+
+all=0
+ok=0
+ko=0
+sk=0
+
+for file in `ls *.json`; do
+ ((all++))
+ test="${file%.*}"
+ echo -n "* $test: "
+
+ run_test $test
+ check_result $test
+
+ case "$?" in
+ 0)
+ echo "skip ($test.res not found)"
+ ((sk++))
+ continue;;
+ 1)
+ echo "success"
+ ((ok++))
+ ;;
+ 2)
+ echo "error (diff $OUT/$test.res $RES/$test.res)"
+ ((ko++))
+ ;;
+ esac
+done
+
+# clear tmp stats file.
+rm stats.json
+
+echo ""
+echo "==> success $ok/$all ($ko tests failed, $sk skipped)"
-all:
- mkdir -p bin/
+NITC=../../bin/nitc
+NITLS=../../bin/nitls
- # Compile in global mode to silence warnings on unused GTK deprecated
- ../../bin/nitc --global --dir bin/ src/calculator_gtk.nit src/calculator_test.nit
+all: bin/calculator bin/calculator.apk bin/test
-android:
- mkdir -p bin/ res/
+bin/calculator: $(shell ${NITLS} -M src/calculator.nit ../../lib/linux/ui.nit) ${NITC}
+ mkdir -p bin
+ ${NITC} -o $@ src/calculator.nit -m ../../lib/linux/ui.nit
+
+bin/calculator.apk: $(shell ${NITLS} -M src/calculator.nit ../../lib/android/ui/) ${NITC} ../../contrib/inkscape_tools/bin/svg_to_icons
+ mkdir -p bin res
../../contrib/inkscape_tools/bin/svg_to_icons art/icon.svg --android --out res/
- ../../bin/nitc -o bin/calculator.apk src/calculator_android.nit
+ ${NITC} -o $@ src/calculator.nit -m ../../lib/android/ui/
+
+../../contrib/inkscape_tools/bin/svg_to_icons:
+ make -C ../../contrib/inkscape_tools/
-android-install: android
+android-install: bin/calculator.apk
adb install -r bin/calculator.apk
+
+bin/test: $(shell ${NITLS} -M src/calculator_test.nit) ${NITC}
+ mkdir -p bin
+ ${NITC} -o $@ src/calculator_test.nit
+
+check: bin/test
+ bin/test
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Portable calculator UI
+module calculator is
+app_name "app.nit Calc."
+ app_version(0, 1, git_revision)
+ app_namespace "org.nitlanguage.calculator"
+
+ # Lock in portrait mode
+ android_manifest_activity """android:screenOrientation="portrait""""
+ android_api_target 15
+end
+
+import app::ui
+import app::data_store
+import android::aware
+
+import calculator_logic
+
+redef class App
+ redef fun on_create
+ do
+ # Create the main window
+ window = new CalculatorWindow
+ super
+ end
+end
+
+# The main (and only) window of this calculator
+class CalculatorWindow
+ super Window
+
+ # Calculator context, our business logic
+ private var context = new CalculatorContext
+
+ # Main window layout
+ private var layout = new VerticalLayout(parent=self)
+
+ # Main display, at the top of the screen
+ private var display = new TextInput(parent=layout)
+
+ # Maps operators as `String` to their `Button`
+ private var buttons = new HashMap[String, Button]
+
+ init
+ do
+ # All the button labels, row by row
+ var rows = [["7", "8", "9", "+"],
+ ["4", "5", "6", "-"],
+ ["1", "2", "3", "*"],
+ ["0", ".", "C", "/"],
+ ["="]]
+
+ for row in rows do
+ var row_layout = new HorizontalLayout(parent=layout)
+
+ for op in row do
+ var but = new Button(parent=row_layout, text=op)
+ but.observers.add self
+ buttons[op] = but
+ end
+ end
+ end
+
+ redef fun on_event(event)
+ do
+ if event isa ButtonPressEvent then
+
+ var op = event.sender.text
+ if op == "." then
+ event.sender.enabled = false
+ context.switch_to_decimals
+ else if op.is_numeric then
+ var n = op.to_i
+ context.push_digit n
+ else
+ buttons["."].enabled = true
+ context.push_op op.chars.first
+ end
+
+ display.text = context.display_text
+ end
+ end
+
+ redef fun on_save_state
+ do
+ app.data_store["context"] = context.to_json
+ super
+ end
+
+ redef fun on_restore_state
+ do
+ super
+
+ var save = app.data_store["context"]
+ if save == null then return
+ assert save isa String
+
+ self.context = new CalculatorContext.from_json(save)
+ display.text = context.display_text
+ end
+end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Android calculator application
-module calculator_android is
- app_name "app.nit Calc."
- app_version(0, 1, git_revision)
- app_namespace "org.nitlanguage.calculator"
-
- # Lock in portrait mode
- android_manifest_activity """android:screenOrientation="portrait""""
-end
-
-# FIXME the next line should import `android` only when it uses nit_activity
-import android::log
-import android::ui
-
-import calculator_logic
-
-redef class Activity
- super EventCatcher
-
- private var context = new CalculatorContext
-
- # The main display, at the top of the screen
- private var display: EditText
-
- # Maps operators as `String` to their `Button`
- private var op2but = new HashMap[String, Button]
-
- # Has this window been initialized?
- private var inited = false
-
- redef fun on_start
- do
- super
-
- if inited then return
- inited = true
-
- # Setup UI
- var layout = new NativeLinearLayout(native)
- layout.set_vertical
-
- # Display screen
- var display = new EditText
- layout.add_view_with_weight(display.native, 1.0)
- display.text_size = 36.0
- self.display = display
-
- # Buttons; numbers and operators
- var ops = [["7", "8", "9", "+"],
- ["4", "5", "6", "-"],
- ["1", "2", "3", "*"],
- ["0", ".", "C", "/"],
- ["="]]
-
- for line in ops do
- var buts_layout = new NativeLinearLayout(native)
- buts_layout.set_horizontal
- layout.add_view_with_weight(buts_layout, 1.0)
-
- for op in line do
- var but = new Button
- but.event_catcher = self
- but.text = op
- but.text_size = 40
- buts_layout.add_view_with_weight(but.native, 1.0)
- op2but[op] = but
- end
- end
-
- native.content_view = layout
- end
-
- redef fun on_save_instance_state(state)
- do
- super
-
- var nity = new Bundle.from(state)
- nity["context"] = context.to_json
- end
-
- redef fun on_restore_instance_state(state)
- do
- super
-
- var nity = new Bundle.from(state)
- if not nity.has("context") then return
-
- var json = nity.string("context")
- if json == null then return
-
- context = new CalculatorContext.from_json(json)
- end
-
- redef fun on_resume
- do
- display.text = context.display_text
- end
-
- redef fun catch_event(event)
- do
- if event isa ClickEvent then
- var sender = event.sender
- var op = sender.text
-
- if op == "." then
- sender.enabled = false
- context.switch_to_decimals
- else if op.is_numeric then
- var n = op.to_i
- context.push_digit n
- else
- op2but["."].enabled = true
- context.push_op op.chars.first
- end
-
- display.text = context.display_text
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2013-2014 Alexis Laferrière <alexis.laf@xymus.net>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# GTK calculator
-module calculator_gtk
-
-import calculator_logic
-
-import gtk
-
-# GTK calculator UI
-class CalculatorGui
- super GtkCallable
-
- private var win: GtkWindow is noinit
- private var container: GtkGrid is noinit
-
- private var lbl_disp: GtkLabel is noinit
- private var but_eq: GtkButton is noinit
- private var but_dot: GtkButton is noinit
-
- private var context = new CalculatorContext
-
- redef fun signal(sender, op)
- do
- if op isa Char then # is an operation
- if op == '.' then
- but_dot.sensitive = false
- context.switch_to_decimals
- else
- but_dot.sensitive = true
- context.push_op op
- end
- else if op isa Int then # is a number
- context.push_digit op
- end
-
- lbl_disp.text = context.display_text
- end
-
- init
- do
- init_gtk
-
- win = new GtkWindow(0)
-
- container = new GtkGrid(5, 5, true)
- win.add(container)
-
- lbl_disp = new GtkLabel("_")
- container.attach(lbl_disp, 0, 0, 5, 1)
-
- # Digits
- for n in [0..9] do
- var but = new GtkButton.with_label(n.to_s)
- but.request_size(64, 64)
- but.signal_connect("clicked", self, n)
- if n == 0 then
- container.attach(but, 0, 4, 1, 1)
- else container.attach(but, (n-1)%3, 3-(n-1)/3, 1, 1)
- end
-
- # Operators
- var r = 1
- for op in ['+', '-', '*', '/'] do
- var but = new GtkButton.with_label(op.to_s)
- but.request_size(64, 64)
- but.signal_connect("clicked", self, op)
- container.attach(but, 3, r, 1, 1)
- r+=1
- end
-
- # =
- but_eq = new GtkButton.with_label("=")
- but_eq.request_size(64, 64)
- but_eq.signal_connect("clicked", self, '=')
- container.attach(but_eq, 4, 3, 1, 2)
-
- # .
- but_dot = new GtkButton.with_label(".")
- but_dot.request_size(64, 64)
- but_dot.signal_connect("clicked", self, '.')
- container.attach(but_dot, 1, 4, 1, 1)
-
- # C
- var but_c = new GtkButton.with_label("C")
- but_c.request_size(64, 64)
- but_c.signal_connect("clicked", self, 'C')
- container.attach(but_c, 2, 4, 1, 1)
-
- win.show_all
- end
-end
-
-# Do not show GUI in when testing
-if "NIT_TESTING".environ == "true" then exit 0
-
-var app = new CalculatorGui
-run_gtk
context.push_digit( 2 )
context.push_op( '=' )
var r = context.result
-assert r == "30.00" else print r or else "-"
+assert r == 30 else print r or else "-"
context = new CalculatorContext
context.push_digit( 1 )
context.push_digit( 3 )
context.push_op( '=' )
r = context.result
-assert r == "42.30" else print r or else "-"
+assert r == 42.3 else print r or else "-"
context.push_op( '+' )
context.push_digit( 1 )
context.push_digit( 1 )
context.push_op( '=' )
r = context.result
-assert r == "53.30" else print r or else "-"
+assert r == 53.3 else print r or else "-"
context = new CalculatorContext
context.push_digit( 4 )
context.push_digit( 3 )
context.push_op( '=' )
r = context.result
-assert r == "14.10" else print r or else "-"
+assert r == 14.1 else print r or else "-"
#test multiple decimals
context = new CalculatorContext
context.push_digit( 1 )
context.push_op( '=' )
r = context.result
-assert r == "51.123" else print r or else "-"
+assert r == 51.123 else print r or else "-"
#test 'C' button
context = new CalculatorContext
context.push_op( '=' )
context.push_op( 'C' )
r = context.result
-assert r == "0.0" else print r or else "-"
+assert r == null else print r
of the language annotation capacities
"""
+
+var s = "example"
+
+print "This superstring {s} rocks"
+
+print "This superstring %1 rocks".format(s)
msgid "Multiline string\n\nexample\n\n\nof the language annotation capacities\n"
msgstr "Multiline string\n\nexample\n\n\nof the language annotation capacities\n"
+#: langannot::langannot 39--9:17
+msgid "example"
+msgstr "example"
+
+#: langannot::langannot 41--7:34, langannot::langannot 43--7:33
+msgid "This superstring %1 rocks"
+msgstr "This superstring %1 rocks"
+
# Generated file, do not modify
msgid "Multiline string\n\nexample\n\n\nof the language annotation capacities\n"
msgstr "Example de\n\nchaine multiligne\n\n\navec annotation de localisation\n"
+#: langannot::langannot 39--9:17
+msgid "example"
+msgstr "exemple"
+
+#: langannot::langannot 41--7:34, langannot::langannot 43--7:33
+msgid "This superstring %1 rocks"
+msgstr "Cet %1 de superstring est génial"
+
# Generated file, do not modify
msgid "Multiline string\n\nexample\n\n\nof the language annotation capacities\n"
msgstr "複数行の文字列\n\nなサンプルプログラム\n\n\n新しい国際化アノテーションとともに\n"
+#: langannot::langannot 39--9:17
+msgid "example"
+msgstr "サンプル"
+
+#: langannot::langannot 41--7:34, langannot::langannot 43--7:33
+msgid "This superstring %1 rocks"
+msgstr "このスパ文字列%1は驚くべきです"
+
# Generated file, do not modify
msgid "Multiline string\n\nexample\n\n\nof the language annotation capacities\n"
msgstr ""
+#: langannot::langannot 39--9:17
+msgid "example"
+msgstr ""
+
+#: langannot::langannot 41--7:34, langannot::langannot 43--7:33
+msgid "This superstring %1 rocks"
+msgstr ""
+
# Generated file, do not modify
super
end
- redef fun window_created
+ redef fun on_create
do
super
screen = new Screen(self, display.as(Display))
var imgs : nullable ImageSet = null
var splash : nullable SplashScreen = null
- redef fun window_created
+ redef fun on_create
do
super
var screen: nullable Screen = null
- redef fun window_created
+ redef fun on_create
do
super
module complete_simple_android is
app_namespace "org.nitlanguage.test_all"
- target_api_version 19
+ android_api_target 19
end
import test_bundle
var img : nullable I = null
- redef fun window_created
+ redef fun on_create
do
super
var test_assets = false
var test_ressources = true
- redef fun window_created
+ redef fun on_create
do
super
if test_assets then
import app::data_store
redef class App
- redef fun window_created
+ redef fun on_create
do
super
fun test_intent
do
- intent = new Intent(self)
+ intent = new Intent
intent.action = intent_action.view.to_s
intent.data = "content://contacts/people/"
- intent.launch_activity
+ start_activity intent
intent.destroy
- intent = new Intent(self)
+ intent = new Intent
var p1 = new Point(10, 20)
intent["a_point"] = p1
var p2 = intent["a_point"]
# Test for the API level related annotations
module test_target_api is
- min_api_version(10)
- max_api_version(19)
+ android_api_min 10
+ android_api_max 19
end
import simple_android
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Balanced brackets
+# SEE: <http://rosettacode.org/wiki/Balanced_brackets>
+module balanced_brackets
+
+# Are `[` and `]` balanced?
+# Other characters are ignored.
+#
+# assert is_balanced("[][[]]")
+# assert is_balanced("")
+# assert not is_balanced("[[]")
+# assert not is_balanced("][][")
+fun is_balanced(s: String): Bool
+do
+ var l = 0
+ for x in s.chars do
+ if x == '[' then
+ l += 1
+ else if x == ']' then
+ l -= 1
+ if l < 0 then return false
+ end
+ end
+ return l == 0
+end
+
+var n = 3
+if args.not_empty then n = args.first.to_i
+
+for i in [0..10[ do
+ var a = (['[', ']'] * n)
+ a.shuffle
+ var b = a.join("")
+ if is_balanced(b) then print "{b} is well-balanced" else print "{b} is not well-balanced"
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/Break
+#
+# SEE: http://rosettacode.org/wiki/Loops/Break
+module loops_break
+
+loop
+ var a = 20.rand
+ print a
+ if a == 10 then break
+ print 20.rand
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/Continue
+#
+# SEE: http://rosettacode.org/wiki/Loops/Continue
+module loops_continue
+
+for i in [1..10] do
+ printn i
+ if i % 5 == 0 then
+ printn "\n"
+ continue
+ end
+ printn ", "
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/Do-while
+#
+# SEE: http://rosettacode.org/wiki/Loops/Do-while
+module loops_do_while
+
+var val = 0
+loop
+ val += 1
+ print val
+ if val % 6 == 0 then break
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/Downward for
+#
+# SEE: http://rosettacode.org/wiki/Loops/Downward_for
+module loops_downward_for
+
+for i in [0..10].reverse_iterator do
+ print i
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/For
+#
+# SEE: http://rosettacode.org/wiki/Loops/For
+module loops_for
+
+for i in [1..5] do
+ for j in [1..i] do printn "*"
+ print ""
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/Infinite
+#
+# SEE: http://rosettacode.org/wiki/Loops/Infinite
+module loops_infinite
+
+loop print "SPAM"
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/n + 1/2
+#
+# SEE: http://rosettacode.org/wiki/Loops/N_plus_one_half
+module loops_n_plus_one_half
+
+for i in [0..10] do
+ printn i
+ if i == 10 then break
+ printn ", "
+end
+print ""
+
+# Here the idiomatic version using `join`
+print([0..10].join(", "))
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Loops/While
+#
+# SEE: http://rosettacode.org/wiki/Loops/While
+module loops_while
+
+var i = 2014
+while i > 0 do
+ print i
+ i /= 2
+end
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Read entire file
+#
+# SEE: http://rosettacode.org/wiki/Read_entire_file
+module read_entire_file
+
+var filename = "/etc/issue"
+var content = filename.to_path.read_all
+print content
--- /dev/null
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Tree traversal
+#
+# SEE: http://rosettacode.org/wiki/Tree_traversal
+module tree_traversal
+
+class Node
+ var value: Int
+ var left: nullable Node
+ var right: nullable Node
+
+ fun preorder
+ do
+ print value
+ var l = left
+ if l != null then l.preorder
+ var r = right
+ if r != null then r.preorder
+ end
+
+ fun inorder
+ do
+ var l = left
+ if l != null then l.inorder
+ print value
+ var r = right
+ if r != null then r.inorder
+ end
+
+ fun postorder
+ do
+ var l = left
+ if l != null then l.postorder
+ var r = right
+ if r != null then r.postorder
+ print value
+ end
+
+ fun levelorder
+ do
+ var q = new List[Node]
+ q.add self
+ while q.not_empty do
+ var n = q.shift
+ print n.value
+ var l = n.left
+ if l != null then q.push l
+ var r = n.right
+ if r != null then q.push r
+ end
+ end
+end
+
+var tree = new Node(1,
+ new Node(2,
+ new Node(4,
+ new Node(7)),
+ new Node(5)),
+ new Node(3,
+ new Node(6,
+ new Node(8),
+ new Node(9))))
+
+print "preorder:"
+tree.preorder
+print "inorder:"
+tree.inorder
+print "postorder:"
+tree.postorder
+print "levelorder:"
+tree.levelorder
var img_boss_left: Image
var img_boss_right: Image
- redef fun window_created
+ redef fun on_create
do
super
# Configure your Android application
-The `app.nit` framework and this project offers some services to
-customized the generated Android application.
+The _app.nit_ framework and this project offers some services to
+customize the generated Android application.
-## Module annotations
+## Annotations
-* `app_version` specifies the version of the generated APK file.
-It takes 3 arguments: the major, minor and revision version numbers.
-The special function `git_revision` will use the prefix of the hash of the
-latest git commit. The default version is 1.0.
+* All _app.nit_ annotations are applied to Android projects:
+ `app_name`, `app_namespace` and `app_version`.
- Example: `app_version(1, 0, git_revision)`
-
-* `app_name` takes a single argument, the visible name of the Android
-application. By default, the compiler would use the name of the target
-module. This name will be used as the name of the main activity and
-as the launcher name.
-
- Example: `app_name "My App"`
-
-* `app_namespace` specifies the package used by the generated Java
-classes and the APK file. Once the application is published, this
-value should not be changed. By default, the compiler will use
-the package `org.nitlanguage.{module_name}`.
+ See: `../app/README.md`
* Custom information can be added to the Android manifest file
using the annotations `android_manifest`, `android_manifest_application`
android_manifest """<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>"""
~~~
-* The API version target can be specified with `min_api_version`,
-`max_api_version` and `target_api_version`. These take a single
+* The API version target can be specified with `android_api_min`,
+`android_api_max` and `android_api_target`. These take a single
integer as argument. They are applied in the Android manifest as
`minSdkVesion`, `targetSdkVersion` and `maxSdkVersion`.
import native_app_glue
import dalvik
private import log
-private import android_data_store
-
-# Uses Android logs to print everything
-redef fun print(text) do log_write(priority_info, app.log_prefix.to_cstring, text.to_s.to_cstring)
+private import data_store
redef class App
- redef fun log_error(msg) do log_write(priority_error, log_prefix.to_cstring, msg.to_cstring)
-
- redef fun log_warning(msg) do log_write(priority_warn, log_prefix.to_cstring, msg.to_cstring)
-
redef fun init_window
do
super
- window_created
+ on_create
+ on_restore_state
+ on_start
end
redef fun term_window
do
super
- window_closing
+ on_stop
end
# Is the application currently paused?
var paused = true
- redef fun window_created
- do
- super
- paused = false
- end
-
- redef fun window_closing
- do
- paused = true
- super
- end
-
redef fun pause
do
paused = true
+ on_pause
super
end
redef fun resume
do
paused = false
+ on_resume
super
end
+ redef fun save_state do on_save_state
+
redef fun lost_focus
do
paused = true
super
end
- redef fun destroy do exit 0
+ redef fun destroy do on_destroy
end
# impossible for you to compile the apk correctly
module assets_and_resources
-import native_app_glue
+import dalvik
import java
import java::io
import java
import java::io
import assets_and_resources
+import native_app_glue # FIXME update this module to use nit_activity
import app::audio
in "Java" `{
# Android compatibility module
#
-# Defines all Android related annoations including the `@android` annotations
-# used to tag `ldflags` annotations.
+# Defines all Android related annotations, including `ldflags@android`.
module aware is
new_annotation android
- new_annotation min_api_version
- new_annotation max_api_version
- new_annotation target_api_version
+ new_annotation android_api_min
+ new_annotation android_api_max
+ new_annotation android_api_target
new_annotation android_manifest
new_annotation android_manifest_application
new_annotation android_manifest_activity
# Implements `app::data_store` using `shared_preferences`
#
# We use the shared preferences named "data_store" to store the data.
-module android_data_store
+module data_store
import app::data_store
private import shared_preferences
mkdir -p bin/ res/
../../../contrib/inkscape_tools/bin/svg_to_icons art/icon.svg --android --out res/
../../../bin/nitc --dir bin/ src/ui_test.nit
- adb install -r bin/ui_test.apk
install: android
- adb install -r bin/ui.apk
+ adb install -r bin/ui_test.apk
clean:
rm -rf bin
app_version(0, 1, git_revision)
app_namespace "org.nitlanguage.ui_test"
android_manifest_activity """android:theme="@android:style/Theme.Light""""
+ android_api_target 15
end
-import android
import android::ui
import android::toast
import android::notification
redef class App
-
- var but_notif: Button
- var but_toast: Button
-
- var notif: nullable Notification = null
-
- var inited = false
- redef fun init_window
+ redef fun on_create
do
+ self.window = new Window
super
+ end
+end
- if inited then return
- inited = true
+redef class Window
- # Setup UI
- var context = native_activity
- var layout = new NativeLinearLayout(context)
- layout.set_vertical
+ private var layout = new VerticalLayout(parent=self)
- but_notif = new Button
- but_notif.text = "Show Notification"
- layout.add_view but_notif.native
+ private var but_notif = new Button(parent=layout, text="Show Notification")
+ private var but_toast = new Button(parent=layout, text="Show Toast")
- but_toast = new Button
- but_toast.text = "Show Toast"
- layout.add_view but_toast.native
+ private var notif: nullable Notification = null
- context.content_view = layout
+ init
+ do
+ but_notif.observers.add self
+ but_toast.observers.add self
end
+ # Action when pressing `but_notif`
fun act_notif
do
var notif = self.notif
end
end
+ # Action when pressing `but_toast`
fun act_toast
do
- toast("Sample toast from app.nit at {get_time}", false)
+ app.toast("Sample toast from app.nit at {get_time}", false)
end
- redef fun catch_event(event)
+ redef fun on_event(event)
do
- if event isa ClickEvent then
+ print "on_event {event}"
+ if event isa ButtonPressEvent then
var sender = event.sender
if sender == but_notif then
act_notif
# `android.content.Intent` for the android platform
module intent_api10
-import native_app_glue
+import dalvik
import android::bundle
import serialization
private import json_serialization
extern class NativeIntent in "Java" `{ android.content.Intent `}
super JavaObject
+ new in "Java" `{ return new Intent(); `}
+
fun add_category(category: JavaString) in "Java" `{ recv.addCategory(category); `}
fun add_flags(flags: Int) in "Java" `{ recv.addFlags((int)flags); `}
fun filter_equals(other: NativeIntent): Bool in "Java" `{
# Services allowing to launch an activity and start/stop services
class Intent
- protected var intent: NativeIntent
- protected var context: NativeActivity
-
- init (app: App)
- do
- self.context = app.native_activity
- setup
- end
-
- private fun set_vars(intent: NativeIntent) do
- self.intent = intent.new_global_ref
- end
-
- private fun setup import context, intent, set_vars in "Java" `{
- Intent intent = new Intent();
- Intent_set_vars(recv, intent);
- `}
+ protected var intent: NativeIntent = (new NativeIntent).new_global_ref is lazy
# The general action to be performed
#
sys.jni_env.pop_local_frame
return self
end
- # Execute the intent and launch the appropriate application
- fun launch_activity do context.start_activity(intent)
-
- # Start a service that will be running until the `stop_service` call
- fun start_service do context.start_service(intent)
-
- # Stop service
- fun stop_service do context.stop_service(intent)
# Deletes intent global reference
fun destroy do self.intent.delete_global_ref
end
redef extern class NativeActivity
- fun start_activity(intent: NativeIntent) in "Java" `{ recv.startActivity(intent); `}
- fun start_service(intent: NativeIntent) in "Java" `{ recv.startService(intent); `}
- fun stop_service(intent: NativeIntent) in "Java" `{ recv.stopService(intent); `}
+ private fun start_activity(intent: NativeIntent) in "Java" `{ recv.startActivity(intent); `}
+ private fun start_service(intent: NativeIntent) in "Java" `{ recv.startService(intent); `}
+ private fun stop_service(intent: NativeIntent) in "Java" `{ recv.stopService(intent); `}
end
# Allows user to get values with enum-like syntax : `intent_action.main`
var collection = new HashSet[String]
fun add(element: JavaString) do collection.add element.to_s
end
+
+redef class App
+
+ # Execute the intent and launch the appropriate application
+ fun start_activity(intent: Intent) do native_activity.start_activity(intent.intent)
+
+ # Start a service that will be running until the `stop_service` call
+ fun start_service(intent: Intent) do native_activity.start_service(intent.intent)
+
+ # Stop service
+ fun stop_service(intent: Intent) do native_activity.stop_service(intent.intent)
+end
# limitations under the License.
# Refines intent module to add API 11 services
-module intent_api11 is min_api_version(11)
+module intent_api11 is android_api_min 11
import intent
# limitations under the License.
# Refines intent module to add API 12 services
-module intent_api12 is min_api_version(12)
+module intent_api12 is android_api_min 12
import intent_api11
# limitations under the License.
# Refines intent module to add API 14 services
-module intent_api14 is min_api_version(14)
+module intent_api14 is android_api_min 14
import intent_api12
# limitations under the License.
# Refines intent module to add API 15 services
-module intent_api15 is min_api_version(15)
+module intent_api15 is android_api_min 15
import intent_api14
# limitations under the License.
# Refines intent module to add API 16 services
-module intent_api16 is min_api_version(16)
+module intent_api16 is android_api_min 16
import intent_api15
# limitations under the License.
# Refines intent module to add API 17 services
-module intent_api17 is min_api_version(17)
+module intent_api17 is android_api_min 17
import intent_api16
# limitations under the License.
# Refines intent module to add API 18 services
-module intent_api18 is min_api_version(18)
+module intent_api18 is android_api_min 18
import intent_api17
# limitations under the License.
# Refines intent module to add API 19 services
-module intent_api19 is min_api_version(19)
+module intent_api19 is android_api_min 19
import intent_api18
#include <android/log.h>
`}
+# Use Android logs to print
+redef fun print(object)
+do
+ log_write(priority_info, app.log_prefix.to_cstring, object.to_s.to_cstring)
+end
+
+# Use Android logs to print errors
+redef fun print_error(object)
+do
+ log_write(priority_error, app.log_prefix.to_cstring, object.to_s.to_cstring)
+end
+
+# Use Android logs to print warnings
+redef fun print_warning(object)
+do
+ log_write(priority_warn, app.log_prefix.to_cstring, object.to_s.to_cstring)
+end
+
+redef class App
+ # Prefix to all log messages
+ protected fun log_prefix: String do return "app.nit"
+end
+
# Default Android log priority
-fun priority_default: Int do return 1
+private fun priority_default: Int do return 1
# Verbose Android log priority
-fun priority_verbose: Int do return 2
+private fun priority_verbose: Int do return 2
# Debug Android log priority
-fun priority_debug: Int do return 3
+private fun priority_debug: Int do return 3
# Info Android log priority
-fun priority_info: Int do return 4
+private fun priority_info: Int do return 4
# Warn Android log priority
-fun priority_warn: Int do return 5
+private fun priority_warn: Int do return 5
# Error Android log priority
-fun priority_error: Int do return 6
+private fun priority_error: Int do return 6
# Fatal Android log priority
-fun priority_fatal: Int do return 7
+private fun priority_fatal: Int do return 7
# Silent Android log priority
-fun priority_silent: Int do return 8
+private fun priority_silent: Int do return 8
# Write `text` to Android log at priority `level` with tag `tag`
-fun log_write(level: Int, tag, text: NativeString) `{
+private fun log_write(level: Int, tag, text: NativeString) `{
__android_log_write(level, tag, text);
`}
# as registered by `on_save_instance_state`.
#
# Followed by `on_start`.
- fun on_create(save_state: NativeBundle) do end
+ fun on_create(save_state: NativeBundle)
+ do
+ app.on_create
+ app.on_restore_state
+ end
# Notification from Android, the activity has been restarted
#
# Notification from Android, the activity has been started
#
# Followed by `on_resume` or `on_stop`.
- fun on_start do end
+ fun on_start do app.on_start
# Notification from Android, the activity has been resumed
#
# Followed by `on_pause`
- fun on_resume do end
+ fun on_resume do app.on_resume
# Notification from Android, the activity has been paused
#
# Followed by `on_resume` or `on_stop`.
- fun on_pause do end
+ fun on_pause do app.on_pause
# Notification from Android, the activity has been stopped
#
# Followed by `on_restart` or `on_destroy`.
- fun on_stop do end
+ fun on_stop do app.on_stop
# Notification from Android, the activity is being destroyed
#
# Clean up and exit.
fun on_destroy
do
+ app.on_destroy
+
native.delete_global_ref
app.activities.remove self
end
# Notification from Android, the activity may be stopped, save state
#
# Occurs before `on_stop` and, without guarantee, before or after `on_pause`.
- fun on_save_instance_state(save_state: NativeBundle) do end
+ fun on_save_instance_state(save_state: NativeBundle) do app.on_save_state
# Notification from Android, the system is running low on memory
#
# limitations under the License.
# Native Java classes for notifications
-module native_notification is min_api_version 11
+module native_notification is android_api_min 11
import android::assets_and_resources
# Services to save/load data using `android.content.SharedPreferences` for the android platform
module shared_preferences_api10
-import native_app_glue
+import dalvik
import serialization
private import json_serialization
# limitations under the License.
# Refines shared_preferences module to add API 11 services
-module shared_preferences_api11 is min_api_version(11)
+module shared_preferences_api11 is android_api_min 11
import shared_preferences
# Services to display a _toast_, a small popup on Android
module toast
-import native_app_glue
+import dalvik
in "Java" `{
import android.widget.Toast;
private fun native_toast(message: JavaString, is_long: Bool)
import native_activity in "Java" `{
- final android.app.NativeActivity context = App_native_activity(recv);
+ final android.app.Activity context = App_native_activity(recv);
final CharSequence final_message = message;
final int duration = is_long? Toast.LENGTH_LONG: Toast.LENGTH_SHORT;
# See the License for the specific language governing permissions and
# limitations under the License.
-# Views and services to use the Android native user interface
-#
-# Events, such as a button click, come from the UI thread and are then
-# passed to the main thread. It is recommended to specialize one of the
-# methods of the main thread to customize the response to a given event.
-#
-# This graph shows the path of a button click:
-# ~~~raw
-# UI Thread # Main thread
-#
-# User
-# |
-# V
-# Button::click_ui --> Button::click
-# |
-# V
-# App::catch_event
-# ~~~
-module ui is min_api_version 14
+# Native services from the `android.view` and `android.widget` namespaces
+module native_ui is android_api_min 14
import nit_activity
-import pthreads::concurrent_collections
in "Java" `{
import android.app.Activity;
import android.view.Gravity;
- import android.view.MotionEvent;
+ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import java.util.*;
`}
-# An event from the `app.nit` framework
-interface AppEvent
- # Reaction to this event
- fun react do end
-end
-
-# A control click event
-class ClickEvent
- super AppEvent
-
- # Sender of this event
- var sender: Button
-
- redef fun react do sender.click self
-end
-
-# Receiver of events not handled directly by the sender
-interface EventCatcher
- fun catch_event(event: AppEvent) do end
-end
-
-redef class App
- super EventCatcher
-end
-
redef extern class NativeActivity
# Set the main layout of this activity
`}
end
-# An `Object` that raises events
-abstract class Eventful
- var event_catcher: EventCatcher = app is lazy, writable
-end
-
-#
-## Nity classes and services
-#
-
-# An Android control with text
-abstract class TextView
- super Finalizable
- super Eventful
-
- # Native Java variant to this Nity class
- type NATIVE: NativeTextView
-
- # The native Java object encapsulated by `self`
- var native: NATIVE is noinit
-
- # Get the text of this view
- fun text: String
- do
- var jstr = native.text
- var str = jstr.to_s
- jstr.delete_local_ref
- return str
- end
-
- # Set the text of this view
- fun text=(value: Text)
- do
- var jstr = value.to_s.to_java_string
- native.text = jstr
- jstr.delete_local_ref
- end
-
- # Get whether this view is enabled or not
- fun enabled: Bool do return native.enabled
-
- # Set if this view is enabled
- fun enabled=(val: Bool) do native.enabled = val
-
- # Set the size of the text in this view at `dpi`
- fun text_size=(dpi: Numeric) do native.text_size = dpi.to_f
-
- private var finalized = false
- redef fun finalize
- do
- if not finalized then
- native.delete_global_ref
- finalized = true
- end
- end
-end
-
-# An Android button
-class Button
- super TextView
-
- redef type NATIVE: NativeButton
-
- init
- do
- var native = new NativeButton(app.native_activity, self)
- self.native = native.new_global_ref
- end
-
- # Click event
- #
- # By default, this method calls `app.catch_event`. It can be specialized
- # with custom behavior or the receiver of `catch_event` can be changed
- # with `event_catcher=`.
- fun click(event: AppEvent) do event_catcher.catch_event(event)
-
- private fun click_from_native do click(new ClickEvent(self))
-end
-
-# An Android editable text field
-class EditText
- super TextView
-
- redef type NATIVE: NativeEditText
-
- init
- do
- var native = new NativeEditText(app.activities.first.native)
- self.native = native.new_global_ref
- end
-end
-
-#
-## Native classes
-#
-
# A `View` for Android
extern class NativeView in "Java" `{ android.view.View `}
super JavaObject
fun minimum_width=(val: Int) in "Java" `{ recv.setMinimumWidth((int)val); `}
fun minimum_height=(val: Int) in "Java" `{ recv.setMinimumHeight((int)val); `}
+
+ fun enabled: Bool in "Java" `{ return recv.isEnabled(); `}
+ fun enabled=(value: Bool) in "Java" `{
+ final View final_recv = recv;
+ final boolean final_value = value;
+
+ ((Activity)recv.getContext()).runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ final_recv.setEnabled(final_value);
+ }
+ });
+ `}
end
# A collection of `NativeView`
super NativeView
fun add_view(view: NativeView) in "Java" `{ recv.addView(view); `}
+
+ fun add_view_with_weight(view: NativeView, weight: Float)
+ in "Java" `{
+ recv.addView(view, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, (float)weight));
+ `}
end
# A `NativeViewGroup` organized in a line
LinearLayout.LayoutParams.WRAP_CONTENT);
recv.addView(view, params);
`}
-
- fun add_view_with_weight(view: NativeView, weight: Float)
- in "Java" `{
- recv.addView(view, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, (float)weight));
- `}
end
# A `NativeViewGroup` organized as a grid
});
`}
- fun enabled: Bool in "Java" `{ return recv.isEnabled(); `}
- fun enabled=(value: Bool) in "Java" `{
- final TextView final_recv = recv;
- final boolean final_value = value;
-
- ((Activity)recv.getContext()).runOnUiThread(new Runnable() {
- @Override
- public void run() {
- final_recv.setEnabled(final_value);
- }
- });
- `}
-
fun gravity_center in "Java" `{
recv.setGravity(Gravity.CENTER);
`}
+ fun text_size: Float in "Java" `{
+ return recv.getTextSize();
+ `}
fun text_size=(dpi: Float) in "Java" `{
recv.setTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, (float)dpi);
`}
redef type SELF: NativeButton
- new (context: NativeActivity, sender_object: Object)
- import Button.click_from_native in "Java" `{
- final int final_sender_object = sender_object;
-
- return new Button(context){
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if(event.getAction() == MotionEvent.ACTION_DOWN) {
- Button_click_from_native(final_sender_object);
- return true;
- }
- return false;
- }
- };
- `}
-
redef fun new_global_ref: SELF import sys, Sys.jni_env `{
Sys sys = NativeButton_sys(recv);
JNIEnv *env = Sys_jni_env(sys);
--- /dev/null
+# This file is part of NIT (http://www.nitlanguage.org).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Views and services to use the Android native user interface
+module ui
+
+# Implementation note:
+#
+# We cannot rely on `Activity::on_restore_instance_state` to implement
+# `on_restore_state` is it only invoked if there is a bundled state,
+# and we don't use the Android bundled state.
+
+import native_ui
+import log
+import nit_activity
+
+import app::ui
+private import data_store
+
+redef class Control
+ # The Android element used to implement `self`
+ fun native: NATIVE is abstract
+
+ # Type of `native`
+ type NATIVE: JavaObject
+end
+
+redef class Window
+ redef var native = app.native_activity
+
+ redef type NATIVE: NativeActivity
+
+ redef fun add(item)
+ do
+ super
+
+ # FIXME abstract the Android restriction where `content_view` must be a layout
+ assert item isa Layout
+ native.content_view = item.native
+ end
+end
+
+redef class View
+ redef type NATIVE: NativeView
+
+ redef fun enabled=(enabled) do native.enabled = enabled or else true
+ redef fun enabled do return native.enabled
+end
+
+redef class Layout
+ redef type NATIVE: NativeViewGroup
+
+ redef fun add(item)
+ do
+ super
+
+ assert item isa View
+
+ # FIXME abstract the use either homogeneous or weight to balance views size in a layout
+ native.add_view_with_weight(item.native, 1.0)
+ end
+end
+
+redef class HorizontalLayout
+ redef var native do
+ var layout = new NativeLinearLayout(app.native_activity)
+ layout.set_horizontal
+ return layout
+ end
+end
+
+redef class VerticalLayout
+ redef var native do
+ var layout = new NativeLinearLayout(app.native_activity)
+ layout.set_vertical
+ return layout
+ end
+end
+
+redef class TextView
+ redef type NATIVE: NativeTextView
+
+ redef fun text do return native.text.to_s
+ redef fun text=(value) do
+ if value == null then value = ""
+ native.text = value.to_java_string
+ end
+
+ # Size of the text
+ fun text_size: Float do return native.text_size
+
+ # Size of the text
+ fun text_size=(text_size: nullable Float) do
+ if text_size != null then native.text_size = text_size
+ end
+end
+
+redef class TextInput
+ redef type NATIVE: NativeEditText
+ redef var native = (new NativeEditText(app.native_activity)).new_global_ref
+end
+
+redef class Button
+ super Finalizable
+
+ redef type NATIVE: NativeButton
+ redef var native = (new NativeButton(app.native_activity, self)).new_global_ref
+
+ private fun on_click do notify_observers new ButtonPressEvent(self)
+
+ redef fun finalize do native.delete_global_ref
+end
+
+redef class NativeButton
+ private new (context: NativeActivity, sender_object: Button)
+ import Button.on_click in "Java" `{
+ final int final_sender_object = sender_object;
+
+ return new android.widget.Button(context){
+ @Override
+ public boolean onTouchEvent(android.view.MotionEvent event) {
+ if(event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
+ Button_on_click(final_sender_object);
+ return true;
+ }
+ return false;
+ }
+ };
+ `}
+end
android_manifest("""<uses-permission android:name="android.permission.VIBRATE" />""")
end
-import native_app_glue
+import dalvik
# Handle to an Android vibrator
extern class Vibrator in "Java" `{ android.os.Vibrator `}
--- /dev/null
+_app.nit_ is a framework to create cross-platform applications
+
+The framework provides services to manage common needs of modern mobile applications:
+
+* Life-cycle
+* User interface
+* Persistence
+* Package metadata
+* Compilation and packaging
+
+The features offered by _app.nit_ are common to all platforms, but
+may not be available on all devices.
+
+## Application Life-Cycle
+
+The _app.nit_ application life-cycle is compatible with all target platforms.
+It relies on the following sequence of events, represented here by their callback method name:
+
+1. `on_create`: The application is being created.
+ You should build the UI at this time.
+
+2. `on_start`: The app is starting or restarting, background activities may
+
+3. `on_resume`: The app enters the active state, it is in the foreground.
+
+4. `on_pause`: The app leaves the active state and the foreground.
+ It may still be visible in the background.
+ It may then go back to `on_resume` or `on_stop`.
+
+5. `on_stop`: The app is completely hidden.
+ It may then be destroyed (`on_destroy`) or go back to `on_start`.
+
+6. `on_destroy`: The app is being destroyed.
+
+Life-cycle events related to saving and restoring the application state are provided by two special callback methods:
+
+* `on_save_state`: The app may be destroyed soon, save its state for a future `on_restore_state`.
+ More on how it can be done in the `app::data_store` section.
+
+* `on_restore_state`: The app is launching, restore its state from a previous `on_save_state`.
+
+These events are synchronized to the native platforms applications
+The `App` instance is the first to be notified of these events.
+Other UI elements, from the `ui` submodule, are notified of the same events using a simple depth first visit.
+So all UI elements can react separately to live-cycle events.
+
+## User Interface
+
+The `app::ui` module defines an abstract API to build a portable graphical application.
+The API is composed of interactive `Control`s, visible `View`s and an active `Window`.
+
+Here is a subset of the most useful controls and views:
+
+* The classic pushable `Button` with text (usually rectangular).
+
+* `TextInput` is a field for the user to enter text.
+
+* `HorizontalLayout` and `VerticalLayout` organize other controls in order.
+
+Each control is notified of input events by callbacks to `on_event`.
+All controls have observers that are also notified of the events.
+So there is two ways to customize the behavior on a given event:
+
+* Create a subclass of the wanted `Control`, let's say `Button`, and specialize `on_event`.
+
+* Add an observer to a `Button` instance, and implement `on_event` in the observer.
+
+### Usage Example
+
+The calculator example (at `../../examples/calculator/src/calculator.nit`) is a concrete,
+simple and complete use of the _app.nit_ portable UI.
+
+### Platform-specific UI
+
+You can go beyond the portable UI API of _app.nit_ by using the natives services of a platform.
+
+The suggested approach is to use platform specific modules to customize the application on a precise platform.
+This module redefine `Window::on_start` to call the native language of the platform and setup a native UI.
+
+_TODO complete description and add concrete examples_
+
+## Persistent State with data\_store
+
+_app.nit_ offers the submodule `app::data_store` to easily save the application state and user preferences.
+The service is accessible by the method `App::data_store`. The `DataStore` itself defines 2 methods:
+
+* `DataStore::[]=` saves and associates any serializable instances to a `String` key.
+Pass `null` to clear the value associated to a key.
+
+* `DataStore::[]` returns the object associated to a `String` key.
+It returns `null` if nothing is associated to the key.
+
+### Usage Example
+
+~~~
+import app::data_store
+
+redef class App
+ var user_name: String
+
+ redef fun on_save_state
+ do
+ app.data_store["first run"] = false
+ app.data_store["user name"] = user_name
+
+ super # call `on_save_state` on all attached instances of `AppComponent`
+ end
+
+ redef fun on_restore_state
+ do
+ var first_run = app.data_store["first run"]
+ if first_run != true then
+ print "It's the first run of this application"
+ end
+
+ var user_name = app.data_store["user name"]
+ if user_name isa String then
+ self.user_name = user_name
+ else self.user_name = "Undefined"
+
+ super
+ end
+end
+~~~
+
+## Metadata annotations
+
+The _app.nit_ framework defines three annotations to customize the application package.
+
+* `app_name` takes a single argument, the visible name of the application.
+ This name is used for launchers and window title.
+ By default, the name of the target module.
+
+* `app_namespace` specifies the full namespace (or package name) of the application package.
+ This value usually identify the application uniquely on application stores.
+ It should not change once the application has benn published.
+ By default, the namespace is `org.nitlanguage.{module_name}`.
+
+* `app_version` specifies the version of the application package.
+ This annotation expects at least one argument, usually we use three version numbers:
+ the major, minor and revision.
+ The special function `git_revision` will use the prefix of the hash of the latest git commit.
+ By default, the version is 0.1.
+
+### Usage Example
+
+~~~
+module my_module is
+ app_name "My App"
+ app_namespace "org.example.my_app"
+ app_version(1, 0, git_revision)
+end
+~~~
+
+## Compiling and Packaging an Application
+
+The Nit compiler detects the target platform from the importations and generates the appropriate application format and package.
+
+Applications using only the portable services of _app.nit_ require some special care at compilation.
+Such an application, let's say `calculator.nit`, does not depend on a specific platform and use the portable UI.
+The target platform must be specifed to the compiler for it to produce the correct application package.
+There is two main ways to achieve this goal:
+
+* The the mixin option (`-m path`) loads an additionnal module before compiling.
+ It can be used to load platform specific implementations of the _app.nit_ portable UI.
+
+ ~~~
+ # GNU/Linux version, using GTK
+ nitc calculator.nit -m NIT_DIR/lib/linux/ui.nit
+
+ # Android version
+ nitc calculator.nit -m NIT_DIR/lib/android/ui/
+ ~~~
+
+* A common alternative for larger projects is to use platform specific modules.
+ Continuing with the `calculator.nit` example, it can be accompagnied by the module `calculator_linux.nit`.
+ This module imports both `calculator` and `linux::ui`, and can also use other GNU/Linux specific code.
+
+ ~~~
+ module calculator_linux
+
+ import calculator
+ import linux::ui
+ ~~~
# See the License for the specific language governing permissions and
# limitations under the License.
+# Base of the _app.nit_ framework, defines `App`
module app_base is
new_annotation app_name
new_annotation app_namespace
# App subclasses are cross-platform applications
#
-# This class is redefed by plateform modules and so
-# App can be specialized directly in the user app.
+# This class is refined by platform modules and so
+# App can be specialized directly in the user application code.
class App
+ super AppComponent
+
protected init do end
# Starts the internal setup of graphical and other stuff
# Main entry point of your application
fun run do end
+end
+
+# An element of an application that is notified of the application life cycle
+#
+# Most users of _app.nit_ need only to implement `on_create` to setup the application.
+#
+# On mobile devices, the application can be stopped a anytime when another application takes the foreground.
+# Implement the callbacks `on_save_state` and `on_load_state` to keep the state of the application between execution,
+# for an illusion of continuous execution.
+abstract class AppComponent
+
+ # The application is being created
+ #
+ # You should build the UI at this time.
+ fun on_create do end
- # Prefix to all log messages, used by `log_error`, `log_warning` and `log_info`.
- fun log_prefix: String do return "app.nit"
+ # The application is starting or restarting, it is visible to the user
+ fun on_start do end
- # Helper function for logging errors
- fun log_error(msg: String) do sys.stderr.write "{log_prefix} error: {msg}\n"
+ # The application enters the active state, it is in the foreground and interactive
+ fun on_resume do end
- # Helper function for logging warnings
- fun log_warning(msg: String) do sys.stderr.write "{log_prefix} warn: {msg}\n"
+ # The application leaves the active state but is still partially visible
+ #
+ # It may still be visible in the background.
+ # It may then go back to `on_resume` or `on_stop`.
+ fun on_pause do end
- # Main init method for graphical stuff
- # Is called when display is ready so graphical assets
- # can be loaded at this time.
- fun window_created do end
+ # The application is completely hidden from the user
+ #
+ # It may then be destroyed (`on_destroy`) or go back to `on_start`.
+ fun on_stop do end
- # Called before destroying the window
- fun window_closing do end
+ # The application is being destroyed
+ fun on_destroy do end
+
+ # The application may be destroyed soon, save its state for a future `on_restore_state`
+ fun on_save_state do end
+
+ # The application is launching, restore its state from a previous `on_save_state`
+ fun on_restore_state do end
end
+# Print a warning
+fun print_warning(object: Object)
+do
+ sys.stderr.write object.to_s
+ sys.stderr.write "\n"
+end
+
+# The running `App`
fun app: App do return once new App
+
app.setup
app.run
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Portable UI API for the _app.nit_ framework
+module ui
+
+import app_base
+
+redef class App
+ super AppComponent
+
+ # The current `Window` of this activity
+ #
+ # This attribute must be set by refinements of `App`.
+ var window: Window is writable
+
+ redef fun on_create do window.on_create
+
+ redef fun on_start do window.on_start
+
+ redef fun on_resume do window.on_resume
+
+ redef fun on_pause do window.on_pause
+
+ redef fun on_stop do window.on_stop
+
+ redef fun on_destroy do window.on_destroy
+
+ redef fun on_restore_state do window.on_restore_state
+
+ redef fun on_save_state do window.on_save_state
+end
+
+# An event created by an `AppComponent` and sent to `AppObserver`s
+interface AppEvent
+end
+
+# Observer of `AppEvent`s raised by `AppComponent`s
+interface AppObserver
+ # Notification of `event` raised by `sender`
+ #
+ # To be implemented in subclasses as needed.
+ fun on_event(event: AppEvent) do end
+end
+
+redef class AppComponent
+ super AppObserver
+
+ # All `AppObserver` notified of events raised by `self`
+ #
+ # By default, only `self` is an observer.
+ # Any other `AppObserver` can be added to this collection.
+ var observers = new HashSet[AppObserver].from([self: AppObserver])
+
+ # Propagate `event` to all `observers` by calling `AppObserver::on_event`
+ fun notify_observers(event: AppEvent)
+ do
+ for observer in observers do
+ observer.on_event(event)
+ end
+ end
+end
+
+# A control implementing the UI
+class Control
+ super AppComponent
+
+ # Direct parent `Control` in the control tree
+ #
+ # If `null` then `self` is at the root of the tree, or not yet attached.
+ var parent: nullable CompositeControl = null is private writable(set_parent)
+
+ # Direct parent `Control` in the control tree
+ #
+ # Setting `parent` calls `remove` on the old parent and `add` on the new one.
+ fun parent=(parent: nullable CompositeControl)
+ is autoinit do
+ var old_parent = self.parent
+ if old_parent != null and old_parent != parent then
+ old_parent.remove self
+ end
+
+ if parent != null then parent.add self
+
+ set_parent parent
+ end
+end
+
+# A `Control` grouping other controls
+class CompositeControl
+ super Control
+
+ private var items = new HashSet[Control]
+
+ # Add `item` as a child of `self`
+ protected fun add(item: Control) do items.add item
+
+ # Remove `item` from `self`
+ protected fun remove(item: Control) do if has(item) then items.remove item
+
+ # Is `item` in `self`?
+ protected fun has(item: Control): Bool do return items.has(item)
+
+ redef fun on_create do for i in items do i.on_create
+
+ redef fun on_start do for i in items do i.on_start
+
+ redef fun on_resume do for i in items do i.on_resume
+
+ redef fun on_pause do for i in items do i.on_pause
+
+ redef fun on_stop do for i in items do i.on_stop
+
+ redef fun on_destroy do for i in items do i.on_destroy
+
+ redef fun on_restore_state do for i in items do i.on_restore_state
+
+ redef fun on_save_state do for i in items do i.on_save_state
+end
+
+# A window, root of the `Control` tree
+class Window
+ super CompositeControl
+end
+
+# A viewable `Control`
+abstract class View
+ super Control
+
+ # Is this control enabled so the user can interact with it?
+ #
+ # By default, or if set to `null`, the control is enabled.
+ var enabled: nullable Bool is writable #, abstract FIXME with #1311
+end
+
+# A control with some `text`
+abstract class TextView
+ super View
+
+ # Main `Text` of this control
+ #
+ # By default, or if set to `null`, no text is shown.
+ var text: nullable Text is writable #, abstract FIXME with #1311
+end
+
+# A control for the user to enter custom `text`
+class TextInput
+ super TextView
+end
+
+# A pushable button, raises `ButtonPressEvent`
+class Button
+ super TextView
+end
+
+# A `Button` press event
+class ButtonPressEvent
+ super AppEvent
+
+ # The `Button` that raised this event
+ var sender: Button
+end
+
+# A layout to visually organize `Control`s
+abstract class Layout
+ super View
+ super CompositeControl
+end
+
+# An horizontal linear organization
+class HorizontalLayout
+ super Layout
+end
+
+# A vertical linear organization
+class VerticalLayout
+ super Layout
+end
--- /dev/null
+# This file is part of NIT (http://www.nitlanguage.org).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Add reading and writing binary services
+#
+# ~~~
+# var w = new FileWriter.open("/tmp/data.bin")
+# w.write "hello"
+# w.write_int64 123456789
+# w.write_byte 3
+# w.write_float 1.25
+# w.write_double 1.234567
+# w.write_bits(true, false, true)
+# assert w.last_error == null
+# w.close
+#
+# var r = new FileReader.open("/tmp/data.bin")
+# assert r.read(5) == "hello"
+# assert r.read_int64 == 123456789
+# assert r.read_byte == 3
+# assert r.read_float == 1.25
+# assert r.read_double == 1.234567
+#
+# var bits = r.read_bits
+# assert bits[0] and not bits[1] and bits[2]
+#
+# assert r.last_error == null
+# r.close
+# ~~~
+module binary
+
+in "C" `{
+ #include <inttypes.h>
+ #include <endian.h>
+
+ // Android compatibility
+ #ifndef be64toh
+ #define be64toh(val) betoh64(val)
+ #endif
+ #ifndef le64toh
+ #define le64toh(val) letoh64(val)
+ #endif
+`}
+
+# A stream of binary data
+abstract class BinaryStream
+ super Stream
+
+ # Use the big-endian convention? otherwise use little-endian.
+ #
+ # By default, `true` to use big-endian.
+ var big_endian = true is writable
+end
+
+redef abstract class Writer
+ super BinaryStream
+
+ # Write a boolean `value` on a byte, using 0 for `false` and 1 for `true`
+ fun write_bool(value: Bool) do write_byte if value then 1 else 0
+
+ # Write up to 8 `Bool` in a byte
+ #
+ # To be used with `BinaryReader::read_bits`.
+ #
+ # Ensure: `bits.length <= 8`
+ fun write_bits(bits: Bool...)
+ do
+ assert bits.length <= 8
+
+ var int = 0
+ for b in bits.length.times do
+ if bits[b] then int += 2**b
+ end
+
+ write_byte int
+ end
+
+ # Write a floating point `value` on 32 bits
+ #
+ # Using this format may result in a loss of precision as it uses less bits
+ # than Nit `Float`.
+ fun write_float(value: Float)
+ do
+ for i in [0..4[ do write_byte value.float_byte_at(i, big_endian)
+ end
+
+ # Write a floating point `value` on 64 bits
+ fun write_double(value: Float)
+ do
+ for i in [0..8[ do write_byte value.double_byte_at(i, big_endian)
+ end
+
+ # Write `value` as a signed integer on 64 bits
+ #
+ # Using this format may result in a loss of precision as the length of a
+ # Nit `Int` may be more than 64 bits on some platforms.
+ fun write_int64(value: Int)
+ do
+ for i in [0..8[ do write_byte value.int64_byte_at(i, big_endian)
+ end
+
+ # TODO:
+ #
+ # fun write_int8
+ # fun write_uint8 # No need for this one, it is the current `read_char`
+ # fun write_int16
+ # fun write_uint16
+ # fun write_int32
+ # fun write_uint32
+ # fun write_uint64
+ # fun write_long_double?
+end
+
+redef abstract class Reader
+ super BinaryStream
+
+ # Read a single byte and return `true` if its value is different than 0
+ fun read_bool: Bool do return read_byte != 0
+
+ # Get an `Array` of 8 `Bool` by reading a single byte
+ #
+ # To be used with `BinaryWriter::write_bits`.
+ fun read_bits: Array[Bool]
+ do
+ var int = read_byte
+ if int == null then return new Array[Bool]
+ return [for b in 8.times do int.bin_and(2**b) > 0]
+ end
+
+ # Read a floating point on 32 bits and return it as a `Float`
+ #
+ # Using this format may result in a loss of precision as it uses less bits
+ # than Nit `Float`.
+ fun read_float: Float
+ do
+ if last_error != null then return 0.0
+
+ var b0 = read_byte
+ var b1 = read_byte
+ var b2 = read_byte
+ var b3 = read_byte
+
+ # Check for error, `last_error` is set by `read_byte`
+ if b0 == null or b1 == null or b2 == null or b3 == null then return 0.0
+
+ return native_read_float(b0, b1, b2, b3, big_endian)
+ end
+
+ # Utility for `read_float`
+ private fun native_read_float(b0, b1, b2, b3: Int, big_endian: Bool): Float `{
+ union {
+ unsigned char b[4];
+ float val;
+ uint32_t conv;
+ } u;
+
+ u.b[0] = b0;
+ u.b[1] = b1;
+ u.b[2] = b2;
+ u.b[3] = b3;
+
+ if (big_endian)
+ u.conv = be32toh(u.conv);
+ else u.conv = le32toh(u.conv);
+
+ return u.val;
+ `}
+
+ # Read a floating point on 64 bits and return it as a `Float`
+ fun read_double: Float
+ do
+ if last_error != null then return 0.0
+
+ var b0 = read_byte
+ var b1 = read_byte
+ var b2 = read_byte
+ var b3 = read_byte
+ var b4 = read_byte
+ var b5 = read_byte
+ var b6 = read_byte
+ var b7 = read_byte
+
+ # Check for error, `last_error` is set by `read_byte`
+ if b0 == null or b1 == null or b2 == null or b3 == null or
+ b4 == null or b5 == null or b6 == null or b7 == null then return 0.0
+
+ return native_read_double(b0, b1, b2, b3, b4, b5, b6, b7, big_endian)
+ end
+
+ # Utility for `read_double`
+ private fun native_read_double(b0, b1, b2, b3, b4, b5, b6, b7: Int, big_endian: Bool): Float `{
+ union {
+ unsigned char b[8];
+ double val;
+ uint64_t conv;
+ } u;
+
+ u.b[0] = b0;
+ u.b[1] = b1;
+ u.b[2] = b2;
+ u.b[3] = b3;
+ u.b[4] = b4;
+ u.b[5] = b5;
+ u.b[6] = b6;
+ u.b[7] = b7;
+
+ if (big_endian)
+ u.conv = be64toh(u.conv);
+ else u.conv = le64toh(u.conv);
+
+ return u.val;
+ `}
+
+ # Read a signed integer on 64 bits and return is an `Int`
+ #
+ # Using this format may result in a loss of precision as the length of a
+ # Nit `Int` may be less than 64 bits on some platforms.
+ fun read_int64: Int
+ do
+ if last_error != null then return 0
+
+ var b0 = read_byte
+ var b1 = read_byte
+ var b2 = read_byte
+ var b3 = read_byte
+ var b4 = read_byte
+ var b5 = read_byte
+ var b6 = read_byte
+ var b7 = read_byte
+
+ # Check for error, `last_error` is set by `read_byte`
+ if b0 == null or b1 == null or b2 == null or b3 == null or
+ b4 == null or b5 == null or b6 == null or b7 == null then return 0
+
+ return native_read_int64(b0, b1, b2, b3, b4, b5, b6, b7, big_endian)
+ end
+
+ # Utility for `read_int64`
+ private fun native_read_int64(b0, b1, b2, b3, b4, b5, b6, b7: Int, big_endian: Bool): Int `{
+ union {
+ unsigned char b[8];
+ int64_t val;
+ uint64_t conv;
+ } u;
+
+ u.b[0] = b0;
+ u.b[1] = b1;
+ u.b[2] = b2;
+ u.b[3] = b3;
+ u.b[4] = b4;
+ u.b[5] = b5;
+ u.b[6] = b6;
+ u.b[7] = b7;
+
+ if (big_endian)
+ u.conv = be64toh(u.conv);
+ else u.conv = le64toh(u.conv);
+
+ return u.val;
+ `}
+end
+
+redef class Int
+ # Utility for `BinaryWriter`
+ private fun int64_byte_at(index: Int, big_endian: Bool): Int `{
+ union {
+ unsigned char bytes[8];
+ int64_t val;
+ uint64_t conv;
+ } u;
+
+ u.val = recv;
+
+ if (big_endian)
+ u.conv = htobe64(u.conv);
+ else u.conv = htole64(u.conv);
+
+ return u.bytes[index];
+ `}
+end
+
+redef class Float
+ # Utility for `BinaryWriter`
+ private fun float_byte_at(index: Int, big_endian: Bool): Int `{
+ union {
+ unsigned char bytes[4];
+ float val;
+ uint32_t conv;
+ } u;
+
+ u.val = recv;
+
+ if (big_endian)
+ u.conv = htobe32(u.conv);
+ else u.conv = htole32(u.conv);
+
+ return u.bytes[index];
+ `}
+
+ # Utility for `BinaryWriter`
+ private fun double_byte_at(index: Int, big_endian: Bool): Int `{
+ union {
+ unsigned char bytes[8];
+ double val;
+ uint64_t conv;
+ } u;
+
+ u.val = recv;
+
+ if (big_endian)
+ u.conv = htobe64(u.conv);
+ else u.conv = htole64(u.conv);
+
+ return u.bytes[index];
+ `}
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Budi Kurniawan <budi2020@gmail.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The Bitmap class represents a 24-bit bitmap image. An instance can be constructed
+# by calling load or with_size:
+#
+# new Bitmap.load(path_to_a_bmp_file)
+# new Bitmap.with_size(400, 300)
+#
+# The width and height attributes contain the image's width and height,
+# respectively.
+#
+# Individual pixels can be manipulated by calling the set_pixel function:
+#
+# set_pixel(x, y, color)
+#
+# The no-argument grayscale function converts the bitmap to grayscale and is an
+# implementation of this Rossetacode task:
+# http://rosettacode.org/wiki/Grayscale_image
+#
+# Finally, the bitmap can be saved to a file by calling save:
+#
+# save(path_to_a_file)
+#
+# For information on the bitmap format, see
+# http://en.wikipedia.org/wiki/BMP_file_format
+#
+# A module containing classes for manipulating bitmap images
+module bitmap
+#
+# A class that represents a Bitmap image
+class Bitmap
+ # The file path if this Bitmap is created by loading a bitmap file
+ var file_path: String is noinit
+
+ # The file extension if this Bitmap is created by loading a bitmap file
+ var file_extension: String is noinit
+
+ # The file size if this Bitmap is created by loading a bitmap file
+ var file_size: Int is noinit
+
+ # The image width in pixels
+ var width: Int is noinit
+
+ # The image height in pixels
+ var height: Int is noinit
+
+ # The offset of image data. Typically, 54
+ private var data_offset: Int is noinit
+
+ # The number of bits representing a pixel. Currently only 24-bit bitmaps are supported
+ private var bits_per_pixel: Int is noinit
+
+ # The size of images. For a 24-bit bitmap, this is equal to (3*width*height)
+ private var image_size: Int is noinit
+
+ # 14-byte bitmap header
+ private var bitmap_header: Array[Int] = [66, 77, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0]
+
+ # 40-byte dib header
+ private var dib_header: Array[Int] = [40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 24, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+
+ # The image data, each cell contains a pixel.
+ # The first 8 least-significant bits represent the red component,
+ # the next 8 least-significant bits represent the green component,
+ # and the next 8 bit represent the blue component.
+ # The last 8 most-significant bits are not used
+ private var data = new Array[Array[Int]]
+
+ # Constructs a Bitmap object by passing the image's width and height (in pixels)
+ init with_size(width: Int, height: Int)
+ do
+ self.width = width
+ self.height = height
+ self.bits_per_pixel = 24
+ self.data_offset = 54
+ #set width and height
+
+ self.set_value(dib_header, 4, width)
+ self.set_value(dib_header, 8, height)
+ #set file size
+ var file_size = 3 * width * height + 54
+ self.set_value(bitmap_header, 2, file_size)
+
+ #init pixel data
+ self.data = new Array[Array[Int]].with_capacity(height)
+ for x in [0..height[ do
+ var row = new Array[Int].with_capacity(width)
+ for y in [0..width[ do
+ row.add(0x00FFFFFF)
+ end
+ self.data[x] = row
+ end
+ end
+
+ # Creates an instance of Bitmap by loading an existing image file
+ init load(path: String)
+ do
+ self.file_path = path
+ var temp = path.file_extension
+ if temp != null then
+ self.file_extension = temp
+ else
+ self.file_extension = ""
+ end
+ var fileReader = new FileReader.open(path)
+
+ # =============== Bitmap header ================
+ for x in [0..13] do
+ bitmap_header[x] = fileReader.read(1)[0].ascii
+ end
+ self.file_size = get_value(bitmap_header.subarray(2, 4))
+ self.data_offset = get_value(bitmap_header.subarray(10, 4))
+
+ # =============== DIB header ================
+ for x in [0..39] do
+ dib_header[x] = fileReader.read(1)[0].ascii
+ end
+ var dib_size = get_value(dib_header.subarray(0, 4))
+ # only support BITMAPINFOHEADER
+ if dib_size != 40 then
+ print "This type of bitmap is not supported"
+ fileReader.close
+ return
+ end
+
+ self.width = get_value(dib_header.subarray(4, 4))
+ self.height = get_value(dib_header.subarray(8, 4))
+ self.bits_per_pixel = get_value(dib_header.subarray(14, 2))
+ self.image_size = get_value(dib_header.subarray(20, 4))
+
+ if self.bits_per_pixel != 24 then
+ print "Only full color bitmaps are supported"
+ fileReader.close
+ return
+ end
+
+ if self.bits_per_pixel == 24 then
+ # assert self.image_size + 54 <= self.file_size
+ # start loading image data, for now assume no padding
+ for x in [0..self.height[
+ do
+ var row = new Array[Int].with_capacity(self.width)
+ for y in [0..self.width[
+ do
+ var red = fileReader.read(1)[0].ascii * 256 * 256
+ var green = fileReader.read(1)[0].ascii * 256
+ var blue = fileReader.read(1)[0].ascii
+ row.add(red + green + blue)
+ end
+ self.data.add(row)
+ end
+ end
+ fileReader.close
+ end #end of load_from_file method
+
+ # Reads in a series of bytes from the FileReader when loading a Bitmap from a file
+ # FileReader.read(1) is used due to https://github.com/privat/nit/issues/1264
+ private fun read_chars(fr: FileReader, howMany: Int): String
+ do
+ var s = ""
+ for x in [1..howMany]
+ do
+ s += fr.read(1)
+ end
+ return s
+ end
+
+ # Converts the value contained in two or four bytes into an Int. Since Nit
+ # does not have a byte type, Int is used
+ private fun get_value(array: Array[Int]): Int
+ do
+ var value = 0
+ for x in [0..array.length[ do
+ value += array[x] * 256.to_f.pow(x.to_f).to_i
+ end
+ return value
+ end
+
+ # Converts the value in an Int to four bytes. Since Nit does not have a byte
+ # type, Int is used.
+ private fun set_value(array: Array[Int], start_index: Int, value: Int)
+ do
+ array[start_index] = value.bin_and(0x000000FF)
+ array[start_index + 1] = value.rshift(8).bin_and(0x000000FF)
+ array[start_index + 2] = value.rshift(16).bin_and(0x000000FF)
+ array[start_index + 3] = value.rshift(24).bin_and(0x000000FF)
+ end
+
+ # Saves the bitmap into a file
+ fun save(path: String)
+ do
+ var fw = new FileWriter.open(path)
+ # Write bitmap header
+ for x in [0..self.bitmap_header.length[ do
+ fw.write(self.bitmap_header[x].ascii.to_s)
+ end
+ # Write dib header
+ for x in [0..self.dib_header.length[ do
+ fw.write(self.dib_header[x].ascii.to_s)
+ end
+ # Write color table (if any)
+ # Write data (no padding for now)
+ for x in [0..self.height[ do
+ var row = self.data[x]
+ for y in [0..self.width[ do
+ var pixel = row[y]
+ var red = pixel.rshift(16)
+ var green = pixel.bin_and(0x00FF00).rshift(8)
+ var blue = pixel.bin_and(0x000000FF)
+ fw.write(red.ascii.to_s)
+ fw.write(green.ascii.to_s)
+ fw.write(blue.ascii.to_s)
+ end
+ end
+ fw.close
+ end #end of save
+
+ # Converts the bitmap to grayscale by manipulating each individual pixel
+ fun grayscale
+ do
+ for x in [0..self.height[ do
+ var row = self.data[x]
+ for y in [0..self.width[ do
+ var pixel = row[y]
+ var red = pixel.rshift(16)
+ var green = pixel.bin_and(0x00FF00).rshift(8)
+ var blue = pixel.bin_and(0x000000FF)
+ var lum = (0.2126 * red.to_f + 0.7152 * green.to_f + 0.0722 * blue.to_f).to_i
+ pixel = lum * 256 * 256 + lum * 256 + lum
+ self.data[x][y] = pixel
+ end
+ end
+ end
+
+ # Sets an individual pixel, where position (0, 0) represents the top-left pixel.
+ fun set_pixel(x: Int, y: Int, color: Int)
+ do
+ if x >= 0 and y >= 0 and x < self.width and y < self.height then
+ # Since a bitmap stores its rows of pixels upside-down, y is mapped to
+ # height - 1 - y to make (0, 0) the top-left pixel
+ self.data[self.height - 1 - y][x] = color
+ end
+ end
+end #end of class Bitmap
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Budi Kurniawan <budi2020@gmail.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file tests the Bitmap class in the bitmap module
+# It has to be called by passing two arguments:
+#
+# - An input bitmap file
+# - An output bitmap file
+#
+# It converts the input bitmap to grayscale and save it to the specified
+# output file. In addition, it creates a blank.bmp file in the current directory.
+#
+#
+# A module for testing the classes in the bitmap module
+module test_bitmap is test_suite
+
+import bitmap
+import test_suite
+
+class TestBitmap
+ super TestSuite
+
+ fun test_grayscale do
+ var bitmap = new Bitmap.with_size(400, 300)
+ for y in [0..300] do
+ for x in [0..200] do bitmap.set_pixel(x, y, 0x0077AAAA)
+ end
+ bitmap.grayscale
+ bitmap.save("./blank.bmp")
+ end
+end
# such as a forest with many individual trees.
module bucketed_game
+import serialization
+
# Something acting on the game
class Turnable[G: Game]
+ auto_serializable
# Execute `turn` for this instance.
fun do_turn(turn: GameTurn[G]) is abstract
# Something acting on the game from time to time
class Bucketable[G: Game]
super Turnable[G]
+ auto_serializable
+
private var act_at: nullable Int = null
# Cancel the previously registered acting turn
# Optimized organization of `Bucketable` instances
class Buckets[G: Game]
super Turnable[G]
+ auto_serializable
# Bucket type used in this implementation.
type BUCKET: HashSet[Bucketable[G]]
# Event raised at the first turn
class FirstTurnEvent
super GameEvent
+ auto_serializable
end
# Game logic on the client
class ThinGame
+ auto_serializable
# Game tick when `self` should act.
#
# Game turn on the client
class ThinGameTurn[G: ThinGame]
+ auto_serializable
# Game tick when `self` should act.
var tick: Int is protected writable
- # List of game events occured for `self`.
- var events = new List[GameEvent] is protected writable
+ # Game events occurred for `self`.
+ var events = new Array[GameEvent] is protected writable
end
# Game turn on the full logic
class GameTurn[G: Game]
super ThinGameTurn[G]
+ auto_serializable
# Game that `self` belongs to.
var game: G
# Full game logic
class Game
super ThinGame
+ auto_serializable
# Game type used in this implementation.
type G: Game
#
# Basically just returns `self` encapsulated in a `FlatString`.
private class LeafSubstrings
- super IndexedIterator[Text]
+ super IndexedIterator[FlatText]
var leaf: Leaf
- var str: String is noinit
+ var str: FlatString is noinit
var avail = true
init do
redef fun +(offset) `{ return recv + offset; `}
end
+# Wrapper around an array of `NativeString` in C (`char**`) with length and destroy state.
+class CNativeStringArray
+ super CArray[NativeString]
+
+ redef type NATIVE: NativeCStringArray
+
+ # Initialize a new NativeCStringArray of `size` elements.
+ init(size: Int) is old_style_init do
+ native_array = new NativeCStringArray(size)
+ super size
+ end
+
+ # Build from an `Array[NativeString]`
+ new from(array: Array[NativeString])
+ do
+ var carray = new CNativeStringArray(array.length)
+ for i in array.length.times do
+ carray[i] = array[i]
+ end
+ return carray
+ end
+end
+
+# An array of `NativeString` in C (`char**`)
+extern class NativeCStringArray `{ char** `}
+ super NativeCArray
+
+ redef type E: NativeString
+
+ # Initialize a new NativeCStringArray of `size` elements.
+ new(size: Int) `{ return calloc(size, sizeof(char*)); `}
+
+ redef fun [](index) `{ return recv[index]; `}
+ redef fun []=(index, val) `{ recv[index] = val; `}
+ redef fun +(offset) `{ return recv + offset; `}
+end
+
redef class NativeString
super NativeCArray
redef type E: Char
redef fun iterator do return map.iterator
# The number of counted occurrences of `e`
- redef fun [](e: E): Int
+ redef fun [](e)
do
var map = self.map
if map.has_key(e) then return map[e]
return 0
end
- redef fun []=(e: E, value: Int)
+ redef fun []=(e, value)
do
sum -= self[e]
self.map[e] = value
var got_delimiter = false
loop
- var i = istream.read_char
- var c: Char
+ var c = istream.read_char
- if i < 0 then
+ if c == null then
if got_row then
row.add value.to_s
return row
return null
end
end
- c = i.ascii
if c == format.delimiter then
if got_delimiter and unescaped == 0 then
end
# Read all bytes until the delimiter.
loop
- i = istream.read_char
- assert not_eof: i >= 0 else
+ c = istream.read_char
+ assert not_eof: c != null else
sys.stderr.write "Unexpected end of file before the end of a delimited value.\n"
end
- c = i.ascii
if c == format.delimiter then break
value.add c
end
_length = l + 1
end
- redef fun remove(value: Int)
+ redef fun remove(value)
do
assert not is_empty
+ if not value isa Int then return
var l = _length
if l > 1 then
var last = _values[l - 1]
_length = l - 1
end
- redef fun has(value: Int): Bool
+ redef fun has(value)
do
+ if not value isa Int then return false
assert value < _capacity
var pos = _keys[value]
if pos < _length then
return res
end
- redef fun read_char: Int
+ redef fun read_char
do
assert not eof
return stream.read_char
# Comment body text.
fun body: String do return json["body"].to_s
+
+ # Does the comment contain an acknowledgement (+1)
+ fun is_ack: Bool
+ do
+ return body.has("\\+1\\b".to_re) or body.has(":+1:") or body.has(":shipit:")
+ end
end
# A comment made on a commit.
# See the License for the specific language governing permissions and
# limitations under the License.
-module gdk_enums is pkgconfig("gtk+-3.0")
+module gdk_enums is pkgconfig "gtk+-3.0"
in "C Header" `{
#include <gtk/gtk.h>
`}
-#enum GdkGravity
-#Defines the reference point of a window and the meaning of coordinates passed to gtk_window_move().
-#@https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkGravity
+# enum GdkGravity
+# Defines the reference point of a window and the meaning of coordinates passed to gtk_window_move().
+# See: https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkGravity
extern class GdkGravity `{GdkGravity`}
- #The reference point is at the top left corner.
- new north_west `{ return GDK_GRAVITY_NORTH_WEST; `}
+ # The reference point is at the top left corner.
+ new north_west `{ return GDK_GRAVITY_NORTH_WEST; `}
- #The reference point is in the middle of the top edge.
- new north `{ return GDK_GRAVITY_NORTH; `}
+ # The reference point is in the middle of the top edge.
+ new north `{ return GDK_GRAVITY_NORTH; `}
- #The reference point is at the top right corner.
- new north_east `{ return GDK_GRAVITY_NORTH_EAST; `}
+ # The reference point is at the top right corner.
+ new north_east `{ return GDK_GRAVITY_NORTH_EAST; `}
- #The reference point is at the middle of the left edge.
- new west `{ return GDK_GRAVITY_WEST; `}
+ # The reference point is at the middle of the left edge.
+ new west `{ return GDK_GRAVITY_WEST; `}
- #The reference point is at the center of the window
- new center `{ return GDK_GRAVITY_CENTER; `}
+ # The reference point is at the center of the window
+ new center `{ return GDK_GRAVITY_CENTER; `}
- #The reference point is at the middle of the right edge.
- new east `{ return GDK_GRAVITY_EAST; `}
+ # The reference point is at the middle of the right edge.
+ new east `{ return GDK_GRAVITY_EAST; `}
- #The reference point is at the lower left corner.
- new south_west `{ return GDK_GRAVITY_SOUTH_WEST; `}
+ # The reference point is at the lower left corner.
+ new south_west `{ return GDK_GRAVITY_SOUTH_WEST; `}
- #The reference point is at the middle of the lower edge.
- new south `{ return GDK_GRAVITY_SOUTH; `}
+ # The reference point is at the middle of the lower edge.
+ new south `{ return GDK_GRAVITY_SOUTH; `}
- #The reference point is at the lower right corner.
- new south_east `{ return GDK_GRAVITY_SOUTH_EAST; `}
+ # The reference point is at the lower right corner.
+ new south_east `{ return GDK_GRAVITY_SOUTH_EAST; `}
- #The reference point is at the top left corner of the window itself, ignoring window manager decorations.
- new static `{ return GDK_GRAVITY_STATIC; `}
+ # The reference point is at the top left corner of the window itself, ignoring window manager decorations.
+ new static `{ return GDK_GRAVITY_STATIC; `}
end
-#enum GdkGWindowEdge
-#Determines a window edge or corner.
-#@https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkWindowEdge
+# enum GdkGWindowEdge
+# Determines a window edge or corner.
+# See: https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkWindowEdge
extern class GdkWindowEdge `{GdkWindowEdge`}
- #The top left corner.
- new north_west `{ return GDK_WINDOW_EDGE_NORTH_WEST; `}
+ # The top left corner.
+ new north_west `{ return GDK_WINDOW_EDGE_NORTH_WEST; `}
- #The top edge.
- new north `{ return GDK_WINDOW_EDGE_NORTH; `}
+ # The top edge.
+ new north `{ return GDK_WINDOW_EDGE_NORTH; `}
- #The top right corner.
- new north_east `{ return GDK_WINDOW_EDGE_NORTH_EAST; `}
+ # The top right corner.
+ new north_east `{ return GDK_WINDOW_EDGE_NORTH_EAST; `}
- #The left edge.
- new west `{ return GDK_WINDOW_EDGE_WEST; `}
+ # The left edge.
+ new west `{ return GDK_WINDOW_EDGE_WEST; `}
- #The right edge.
- new east `{ return GDK_WINDOW_EDGE_EAST; `}
+ # The right edge.
+ new east `{ return GDK_WINDOW_EDGE_EAST; `}
- #The lower left corner.
- new south_west `{ return GDK_WINDOW_EDGE_SOUTH_WEST; `}
+ # The lower left corner.
+ new south_west `{ return GDK_WINDOW_EDGE_SOUTH_WEST; `}
- #The lower edge.
- new south `{ return GDK_WINDOW_EDGE_SOUTH; `}
+ # The lower edge.
+ new south `{ return GDK_WINDOW_EDGE_SOUTH; `}
- #The lower right corner.
- new south_east `{ return GDK_WINDOW_EDGE_SOUTH_EAST; `}
+ # The lower right corner.
+ new south_east `{ return GDK_WINDOW_EDGE_SOUTH_EAST; `}
end
# See the License for the specific language governing permissions and
# limitations under the License.
-module gtk_assistant is pkgconfig("gtk+-3.0")
+module gtk_assistant is pkgconfig "gtk+-3.0"
import gtk_core
#include <gtk/gtk.h>
`}
-#A widget used to guide users through multi-step operations
-#@https://developer.gnome.org/gtk3/stable/GtkAssistant.html
+# A widget used to guide users through multi-step operations
+# See: https://developer.gnome.org/gtk3/stable/GtkAssistant.html
extern class GtkAssistant `{GtkAssistant *`}
super GtkWindow
- new is extern `{
- return (GtkAssistant *)gtk_assistant_new( );
+ new `{
+ return (GtkAssistant *)gtk_assistant_new();
`}
- fun current_page : Int is extern `{
- return gtk_assistant_get_current_page ( recv );
+ fun current_page: Int `{
+ return gtk_assistant_get_current_page (recv);
`}
- fun current_page=( page_num : Int ) is extern `{
- gtk_assistant_set_current_page( recv, page_num);
+ fun current_page=(page_num: Int) `{
+ gtk_assistant_set_current_page(recv, page_num);
`}
- fun number_pages : Int is extern `{
- return gtk_assistant_get_n_pages( recv );
+ fun number_pages: Int `{
+ return gtk_assistant_get_n_pages(recv);
`}
- fun get_page( page_num : Int ) : GtkWidget is extern `{
- return gtk_assistant_get_nth_page( recv, page_num );
+ fun get_page(page_num: Int): GtkWidget `{
+ return gtk_assistant_get_nth_page(recv, page_num);
`}
- fun prepend( page : GtkWidget ) : Int is extern `{
- return gtk_assistant_prepend_page( recv, page );
+ fun prepend(page: GtkWidget): Int `{
+ return gtk_assistant_prepend_page(recv, page);
`}
- fun append( page : GtkWidget ) : Int is extern `{
- return gtk_assistant_append_page( recv, page );
+ fun append(page: GtkWidget): Int `{
+ return gtk_assistant_append_page(recv, page);
`}
- fun insert( page : GtkWidget, position : Int ) : Int is extern `{
- return gtk_assistant_insert_page( recv, page, position );
+ fun insert(page: GtkWidget, position: Int): Int `{
+ return gtk_assistant_insert_page(recv, page, position);
`}
- fun remove( page_num : Int ) is extern `{
- gtk_assistant_remove_page( recv, page_num );
+ fun remove(page_num: Int) `{
+ gtk_assistant_remove_page(recv, page_num);
`}
- fun get_page_type( page : GtkWidget ) : GtkAssistantPageType is extern `{
- return gtk_assistant_get_page_type( recv, page );
+ fun get_page_type(page: GtkWidget): GtkAssistantPageType `{
+ return gtk_assistant_get_page_type(recv, page);
`}
- fun set_page_type( page : GtkWidget, t : GtkAssistantPageType) is extern `{
- gtk_assistant_set_page_type( recv, page, t );
+ fun set_page_type(page: GtkWidget, t: GtkAssistantPageType) `{
+ gtk_assistant_set_page_type(recv, page, t);
`}
- fun get_page_title( page : GtkWidget ) : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_assistant_get_page_title( recv, page ) );
+ fun get_page_title(page: GtkWidget): String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_assistant_get_page_title(recv, page));
`}
- fun set_page_title( page : GtkWidget, title : String) is extern import String.to_cstring `{
- gtk_assistant_set_page_title( recv, page, String_to_cstring( title ) );
+ fun set_page_title(page: GtkWidget, title: String) import String.to_cstring `{
+ gtk_assistant_set_page_title(recv, page, String_to_cstring(title));
`}
- fun set_page_complete( page : GtkWidget, is_complete : Bool ) is extern `{
- gtk_assistant_set_page_complete( recv, page, is_complete );
+ fun set_page_complete(page: GtkWidget, is_complete: Bool) `{
+ gtk_assistant_set_page_complete(recv, page, is_complete);
`}
- fun get_page_complete( page : GtkWidget ) : Bool is extern `{
- return gtk_assistant_get_page_complete( recv, page );
+ fun get_page_complete(page: GtkWidget): Bool `{
+ return gtk_assistant_get_page_complete(recv, page);
`}
- fun remove_action_widget( child : GtkWidget ) is extern `{
- gtk_assistant_remove_action_widget( recv, child );
+ fun remove_action_widget(child: GtkWidget) `{
+ gtk_assistant_remove_action_widget(recv, child);
`}
- fun add_action_widget( child : GtkWidget ) is extern `{
- gtk_assistant_add_action_widget( recv, child );
+ fun add_action_widget(child: GtkWidget) `{
+ gtk_assistant_add_action_widget(recv, child);
`}
- fun update_buttons_state is extern `{
- gtk_assistant_update_buttons_state( recv );
+ fun update_buttons_state `{
+ gtk_assistant_update_buttons_state(recv);
`}
- fun commit is extern `{
- gtk_assistant_commit( recv );
+ fun commit `{
+ gtk_assistant_commit(recv);
`}
- fun next_page is extern `{
- gtk_assistant_next_page( recv );
+ fun next_page `{
+ gtk_assistant_next_page(recv);
`}
- fun previous_page is extern `{
- gtk_assistant_previous_page( recv );
+ fun previous_page `{
+ gtk_assistant_previous_page(recv);
`}
end
-#enum GtkAssistantPageType
-#An enum for determining the page role inside the GtkAssistant. It's used to handle buttons sensitivity and visibility.
-#@https://developer.gnome.org/gtk3/stable/GtkAssistant.html#GtkAssistantPageType
+# enum GtkAssistantPageType
+# An enum for determining the page role inside the GtkAssistant. It's used to handle buttons sensitivity and visibility.
+# See: https://developer.gnome.org/gtk3/stable/GtkAssistant.html#GtkAssistantPageType
extern class GtkAssistantPageType `{GtkAssistantPageType`}
- #The page has regular contents. Both the Back and forward buttons will be shown.
+ # The page has regular contents. Both the Back and forward buttons will be shown.
new content `{ return GTK_ASSISTANT_PAGE_CONTENT; `}
- #The page contains an introduction to the assistant task. Only the Forward button will be shown if there is a next page.
+ # The page contains an introduction to the assistant task. Only the Forward button will be shown if there is a next page.
new intro `{ return GTK_ASSISTANT_PAGE_INTRO; `}
- #The page lets the user confirm or deny the changes. The Back and Apply buttons will be shown.
+ # The page lets the user confirm or deny the changes. The Back and Apply buttons will be shown.
new confirm `{ return GTK_ASSISTANT_PAGE_CONFIRM; `}
- #The page informs the user of the changes done. Only the Close button will be shown.
+ # The page informs the user of the changes done. Only the Close button will be shown.
new summary `{ return GTK_ASSISTANT_PAGE_SUMMARY; `}
- #Used for tasks that take a long time to complete, blocks the assistant until the page is marked as complete. Only the back button will be shown.
+ # Used for tasks that take a long time to complete, blocks the assistant until the page is marked as complete. Only the back button will be shown.
new progress `{ return GTK_ASSISTANT_PAGE_PROGRESS; `}
- #Used for when other page types are not appropriate. No buttons will be shown, and the application must add its own buttons through gtk_assistant_add_action_widget().
+ # Used for when other page types are not appropriate. No buttons will be shown, and the application must add its own buttons through gtk_assistant_add_action_widget().
new custom `{ return GTK_ASSISTANT_PAGE_CUSTOM; `}
end
# limitations under the License.
# Classes and services to use libGTK widgets
-module gtk_core is pkgconfig("gtk+-3.0")
+module gtk_core is
+ pkgconfig "gtk+-3.0"
+ cflags "-Wno-deprecated-declarations"
+end
import gtk_enums
import gdk_enums
`}
`{
- /* callback user data */
- typedef struct {
- GtkCallable to_call;
- nullable_Object user_data;
- } NitGtkSignal;
-
- void nit_gtk_callback_func( GtkWidget *widget,
- gpointer callback_data ) {
- NitGtkSignal *data;
- data = (NitGtkSignal*)callback_data;
- GtkCallable_signal( data->to_call, widget, data->user_data );
- }
+ /* callback user data */
+ typedef struct {
+ GtkCallable to_call;
+ nullable_Object user_data;
+ } NitGtkSignal;
+
+ void nit_gtk_callback_func(GtkWidget *widget, gpointer callback_data) {
+ NitGtkSignal *data;
+ data = (NitGtkSignal*)callback_data;
+ GtkCallable_signal(data->to_call, widget, data->user_data);
+ }
`}
-redef interface Object
- protected fun init_gtk `{ gtk_init( 0, NULL ); `}
- protected fun run_gtk `{ gtk_main(); `}
- protected fun quit_gtk `{ gtk_main_quit(); `}
-end
+# Initialize the GTK system
+fun init_gtk `{ gtk_init(0, NULL); `}
+
+# Hand over control to the GTK event loop
+fun run_gtk `{ gtk_main(); `}
+
+# Quit the GTK event loop and clean up the system
+fun quit_gtk `{ gtk_main_quit(); `}
interface GtkCallable
# return true to stop event processing, false to let it propagate
- fun signal( sender : GtkWidget, user_data : nullable Object ) is abstract
+ fun signal(sender: GtkWidget, user_data: nullable Object) is abstract
end
extern class GdkEvent `{GdkEvent *`}
end
-
-#Base class for all widgets
-#@https://developer.gnome.org/gtk3/stable/GtkWidget.html
+# Base class for all widgets
+# See: https://developer.gnome.org/gtk3/stable/GtkWidget.html
extern class GtkWidget `{GtkWidget *`}
- fun show_all is extern `{ gtk_widget_show_all( recv ); `}
+ fun show_all `{ gtk_widget_show_all(recv); `}
- fun signal_connect( signal_name : String, to_call : GtkCallable, user_data : nullable Object ) is extern import String.to_cstring, GtkCallable.signal, Object.as not nullable `{
- NitGtkSignal *data = malloc( sizeof(NitGtkSignal) );
+ fun signal_connect(signal_name: String, to_call: GtkCallable, user_data: nullable Object) import String.to_cstring, GtkCallable.signal, Object.as not nullable `{
+ NitGtkSignal *data = malloc(sizeof(NitGtkSignal));
- GtkCallable_incr_ref( to_call );
- Object_incr_ref( user_data );
+ GtkCallable_incr_ref(to_call);
+ Object_incr_ref(user_data);
data->to_call = to_call;
data->user_data = user_data;
/*Use G_CALLBACK() to cast the callback function to a GCallback*/
- g_signal_connect( recv,
- String_to_cstring( signal_name ),
- G_CALLBACK(nit_gtk_callback_func),
- data );
+ g_signal_connect(recv,
+ String_to_cstring(signal_name),
+ G_CALLBACK(nit_gtk_callback_func),
+ data);
`}
- redef fun == ( o ) do return o isa GtkWidget and equal_to_gtk_widget( o )
+ redef fun ==(o) do return o isa GtkWidget and equal_to_gtk_widget(o)
- private fun equal_to_gtk_widget( o : GtkWidget ) : Bool `{
+ private fun equal_to_gtk_widget(o: GtkWidget): Bool `{
return recv == o;
`}
- fun request_size( width, height : Int ) `{
- gtk_widget_set_size_request( recv, width, height );
+ fun request_size(width, height: Int) `{
+ gtk_widget_set_size_request(recv, width, height);
`}
- fun bg_color=( state : GtkStateType, color : GdkRGBA ) is extern `{
- gtk_widget_override_background_color( recv, state, color);
+ fun bg_color=(state: GtkStateType, color: GdkRGBA) `{
+ gtk_widget_override_background_color(recv, state, color);
`}
- #with gtk it's possible to set fg_color to all widget : is it correct? is fg color inherited?
- #GdkColor color;
- fun fg_color=( state : GtkStateType, color : GdkRGBA ) is extern `{
- gtk_widget_override_color( recv, state, color);
+ # with gtk it's possible to set fg_color to all widget: is it correct? is fg color inherited?
+ # GdkColor color;
+ fun fg_color=(state: GtkStateType, color: GdkRGBA) `{
+ gtk_widget_override_color(recv, state, color);
`}
-
+
# Sets the sensitivity of a widget. sensitive -> the user can interact with it.
# Insensitive -> widget "grayed out" and the user can"t interact with them
- fun sensitive=(sensitive : Bool) is extern `{
+ fun sensitive=(sensitive: Bool) `{
gtk_widget_set_sensitive(recv, sensitive);
`}
-
+
# return the sensitivity of the widget
- fun sensitive: Bool is extern `{
+ fun sensitive: Bool `{
return gtk_widget_get_sensitive(recv);
`}
-
+
# Set the visibility of the widget
- fun visible=(visible: Bool) is extern `{
+ fun visible=(visible: Bool) `{
gtk_widget_set_visible(recv, visible);
`}
# Get the visibility of the widget only
- fun visible_self: Bool is extern `{
+ fun visible_self: Bool `{
return gtk_widget_get_visible(recv);
`}
fun hide `{ gtk_widget_hide(recv); `}
end
-#Base class for widgets which contain other widgets
-#@https://developer.gnome.org/gtk3/stable/GtkContainer.html
+# Base class for widgets which contain other widgets
+# See: https://developer.gnome.org/gtk3/stable/GtkContainer.html
extern class GtkContainer `{GtkContainer *`}
super GtkWidget
# Add a widget to the container
- fun add( widget : GtkWidget ) is extern `{
- gtk_container_add( recv, widget );
+ fun add(widget: GtkWidget) `{
+ gtk_container_add(recv, widget);
`}
# Remove the widget from the container
- fun remove_widget( widget : GtkWidget ) is extern `{
- gtk_container_remove( recv, widget );
+ fun remove_widget(widget: GtkWidget) `{
+ gtk_container_remove(recv, widget);
`}
# Get the resize mode of the container
- fun resize_mode : GtkResizeMode is extern `{
- return gtk_container_get_resize_mode( recv );
+ fun resize_mode: GtkResizeMode `{
+ return gtk_container_get_resize_mode(recv);
`}
# Set the resize mode of the container
- fun resize_mode=( resize_mode: GtkResizeMode ) is extern `{
- gtk_container_set_resize_mode( recv, resize_mode );
+ fun resize_mode=(resize_mode: GtkResizeMode) `{
+ gtk_container_set_resize_mode(recv, resize_mode);
`}
end
-#A container with just one child
-#@https://developer.gnome.org/gtk3/stable/GtkBin.html
+# A container with just one child
+# See: https://developer.gnome.org/gtk3/stable/GtkBin.html
extern class GtkBin `{GtkBin *`}
super GtkContainer
- fun child : GtkWidget is extern `{
- return gtk_bin_get_child( recv );
+ fun child: GtkWidget `{
+ return gtk_bin_get_child(recv);
`}
end
-#Toplevel which can contain other widgets
-#@https://developer.gnome.org/gtk3/stable/GtkWindow.html
+# Toplevel which can contain other widgets
+# See: https://developer.gnome.org/gtk3/stable/GtkWindow.html
extern class GtkWindow `{GtkWindow *`}
super GtkBin
- new ( flag : Int ) is extern `{
- GtkWindow *win;
+ new (typ: GtkWindowType) `{
+ return (GtkWindow *)gtk_window_new(typ);
+ `}
- win = GTK_WINDOW(gtk_window_new( flag ));
- g_signal_connect(win, "destroy", G_CALLBACK(gtk_main_quit), NULL);
- return win;
+ # Connect the "destroy" signal to `quit_gtk`
+ fun connect_destroy_signal_to_quit `{
+ g_signal_connect(recv, "destroy", G_CALLBACK(gtk_main_quit), NULL);
`}
- fun title=( title : String ) is extern import String.to_cstring `{
- gtk_window_set_title( recv, String_to_cstring( title ) );
+ fun title=(title: String) import String.to_cstring `{
+ gtk_window_set_title(recv, String_to_cstring(title));
`}
- #The "destroy" signal is emitted when a widget is destroyed, either by explicitly calling gtk_widget_destroy() or when the widget is unparented. Top-level GtkWindows are also destroyed when the Close window control button is clicked.
- fun on_close( to_call : GtkCallable, user_data : nullable Object )
+ # The "destroy" signal is emitted when a widget is destroyed, either by explicitly calling gtk_widget_destroy() or when the widget is unparented. Top-level GtkWindows are also destroyed when the Close window control button is clicked.
+ fun on_close(to_call: GtkCallable, user_data: nullable Object)
do
- signal_connect( "destroy", to_call, user_data )
+ signal_connect("destroy", to_call, user_data)
end
- fun resizable : Bool is extern `{
- return gtk_window_get_resizable( recv );
+ fun resizable: Bool `{
+ return gtk_window_get_resizable(recv);
`}
- fun resizable=( is_resizable : Bool) is extern `{
- return gtk_window_set_resizable( recv, is_resizable );
+ fun resizable=(is_resizable: Bool) `{
+ return gtk_window_set_resizable(recv, is_resizable);
`}
- #Activates the current focused widget within the window.
- #returns TRUE if a widget got activated.
- fun activate_focus : Bool is extern `{
- return gtk_window_activate_focus( recv );
+ # Activates the current focused widget within the window.
+ # returns TRUE if a widget got activated.
+ fun activate_focus: Bool `{
+ return gtk_window_activate_focus(recv);
`}
- #Sets a window modal or non-modal. Modal windows prevent interaction with other windows in the same application.
- fun modal=( is_modal : Bool ) is extern `{
- gtk_window_set_modal( recv, is_modal );
+ # Sets a window modal or non-modal. Modal windows prevent interaction with other windows in the same application.
+ fun modal=(is_modal: Bool) `{
+ gtk_window_set_modal(recv, is_modal);
`}
- #Windows can't actually be 0x0 in size, they must be at least 1x1
- #but passing 0 for width and height is OK, resulting in a 1x1 default size.
- #params width in pixels, or -1 to unset the default width
- #params height in pixels, or -1 to unset the default height
- fun default_size( width : Int, height : Int ) is extern `{
- gtk_window_set_default_size( recv, width, height );
+ # Windows can't actually be 0x0 in size, they must be at least 1x1
+ # but passing 0 for width and height is OK, resulting in a 1x1 default size.
+ # params width in pixels, or -1 to unset the default width
+ # params height in pixels, or -1 to unset the default height
+ fun default_size(width: Int, height: Int) `{
+ gtk_window_set_default_size(recv, width, height);
`}
- #Activates the default widget for the window
- #unless the current focused widget has been configured to receive the default action (see gtk_widget_set_receives_default()), in which case the focused widget is activated.
- fun activate_default : Bool is extern `{
- return gtk_window_activate_default( recv );
+ # Activates the default widget for the window
+ # unless the current focused widget has been configured to receive the default action (see gtk_widget_set_receives_default()), in which case the focused widget is activated.
+ fun activate_default: Bool `{
+ return gtk_window_activate_default(recv);
`}
- fun gravity : GdkGravity is extern `{
- return gtk_window_get_gravity( recv );
+ fun gravity: GdkGravity `{
+ return gtk_window_get_gravity(recv);
`}
- fun gravity=( window_grav : GdkGravity ) is extern `{
- gtk_window_set_gravity( recv, window_grav );
+ fun gravity=(window_grav: GdkGravity) `{
+ gtk_window_set_gravity(recv, window_grav);
`}
-# fun position : GtkWindowPosition is extern `{
-# return gtk_window_get_position( recv );
+# fun position: GtkWindowPosition `{
+# return gtk_window_get_position(recv);
# `}
#
-# fun position=( window_pos : GtkWindowPosition ) is extern `{
-# gtk_window_set_position( recv, window_pos );
+# fun position=(window_pos: GtkWindowPosition) `{
+# gtk_window_set_position(recv, window_pos);
# `}
- fun active : Bool is extern `{
- return gtk_window_is_active( recv );
+ fun active: Bool `{
+ return gtk_window_is_active(recv);
`}
- #Returns whether the input focus is within this GtkWindow. For real toplevel windows, this is identical to gtk_window_is_active(), but for embedded windows, like GtkPlug, the results will differ.
- fun has_toplevel_focus : Bool is extern `{
- return gtk_window_has_toplevel_focus( recv );
+ # Returns whether the input focus is within this GtkWindow. For real toplevel windows, this is identical to gtk_window_is_active(), but for embedded windows, like GtkPlug, the results will differ.
+ fun has_toplevel_focus: Bool `{
+ return gtk_window_has_toplevel_focus(recv);
`}
- fun get_focus : GtkWidget is extern `{
- return gtk_window_get_focus( recv );
+ fun get_focus: GtkWidget `{
+ return gtk_window_get_focus(recv);
`}
- fun set_focus( widget : GtkWidget ) is extern `{
- return gtk_window_set_focus( recv, widget );
+ fun set_focus(widget: GtkWidget) `{
+ return gtk_window_set_focus(recv, widget);
`}
- fun get_default_widget : GtkWidget is extern `{
- return gtk_window_get_default_widget( recv );
+ fun get_default_widget: GtkWidget `{
+ return gtk_window_get_default_widget(recv);
`}
- fun set_default_widget( widget : GtkWidget ) is extern `{
- return gtk_window_set_default( recv, widget );
+ fun set_default_widget(widget: GtkWidget) `{
+ return gtk_window_set_default(recv, widget);
`}
- fun maximize is extern `{
- return gtk_window_maximize( recv );
+ fun maximize `{
+ return gtk_window_maximize(recv);
`}
- fun unmaximize is extern `{
- return gtk_window_unmaximize( recv );
+ fun unmaximize `{
+ return gtk_window_unmaximize(recv);
`}
- fun fullscreen is extern `{
- return gtk_window_fullscreen( recv );
+ fun fullscreen `{
+ return gtk_window_fullscreen(recv);
`}
- fun unfullscreen is extern `{
- return gtk_window_unfullscreen( recv );
+ fun unfullscreen `{
+ return gtk_window_unfullscreen(recv);
`}
- fun keep_above=( setting : Bool ) is extern `{
- gtk_window_set_keep_above( recv, setting );
+ fun keep_above=(setting: Bool) `{
+ gtk_window_set_keep_above(recv, setting);
`}
- fun keep_below=( setting : Bool ) is extern `{
- gtk_window_set_keep_below( recv, setting );
+ fun keep_below=(setting: Bool) `{
+ gtk_window_set_keep_below(recv, setting);
`}
end
-#A bin with a decorative frame and optional label
-#https://developer.gnome.org/gtk3/stable/GtkFrame.html
+# A bin with a decorative frame and optional label
+# https://developer.gnome.org/gtk3/stable/GtkFrame.html
extern class GtkFrame `{GtkFrame *`}
super GtkBin
- new ( lbl : String ) is extern import String.to_cstring`{
- return (GtkFrame *)gtk_frame_new( String_to_cstring( lbl ) );
+ new (lbl: String) import String.to_cstring `{
+ return (GtkFrame *)gtk_frame_new(String_to_cstring(lbl));
`}
- fun frame_label : String is extern`{
- return NativeString_to_s( (char *)gtk_frame_get_label( recv ) );
+ fun frame_label: String `{
+ return NativeString_to_s((char *)gtk_frame_get_label(recv));
`}
- fun frame_label=( lbl : String ) is extern import String.to_cstring`{
- gtk_frame_set_label( recv, String_to_cstring( lbl ) );
+ fun frame_label=(lbl: String) import String.to_cstring `{
+ gtk_frame_set_label(recv, String_to_cstring(lbl));
`}
- fun label_widget : GtkWidget is extern `{
- return gtk_frame_get_label_widget( recv );
+ fun label_widget: GtkWidget `{
+ return gtk_frame_get_label_widget(recv);
`}
- fun label_widget=( widget : GtkWidget ) is extern `{
- gtk_frame_set_label_widget( recv, widget );
+ fun label_widget=(widget: GtkWidget) `{
+ gtk_frame_set_label_widget(recv, widget);
`}
- fun shadow_type : GtkShadowType is extern `{
- return gtk_frame_get_shadow_type( recv );
+ fun shadow_type: GtkShadowType `{
+ return gtk_frame_get_shadow_type(recv);
`}
- fun shadow_type=( stype : GtkShadowType ) is extern `{
- gtk_frame_set_shadow_type( recv, stype );
+ fun shadow_type=(stype: GtkShadowType) `{
+ gtk_frame_set_shadow_type(recv, stype);
`}
- #fun label_align : GtkShadowType is extern `{
- #`}
-
- fun label_align=( xalign : Float, yalign : Float ) is extern `{
- gtk_frame_set_label_align( recv, xalign, yalign );
+ fun label_align=(xalign: Float, yalign: Float) `{
+ gtk_frame_set_label_align(recv, xalign, yalign);
`}
end
-#Pack widgets in a rows and columns
-#@https://developer.gnome.org/gtk3/3.3/GtkGrid.html
+# Pack widgets in a rows and columns
+# See: https://developer.gnome.org/gtk3/3.3/GtkGrid.html
extern class GtkGrid `{GtkGrid *`}
super GtkContainer
- # Create a grid with a fixed number of rows and columns
- new ( rows : Int, columns : Int, homogeneous : Bool ) `{
- return (GtkGrid*)gtk_grid_new(); // rows, columns, homogeneous );
+ # Create a new grid
+ new `{
+ return (GtkGrid*)gtk_grid_new();
`}
# Set a widget child inside the grid at a given position
- fun attach( child : GtkWidget, left, top, width, height : Int ) `{
- gtk_grid_attach( recv, child, left, top, width, height );
+ fun attach(child: GtkWidget, left, top, width, height: Int) `{
+ gtk_grid_attach(recv, child, left, top, width, height);
`}
# Get the child of the Grid at the given position
- fun get_child_at( left : Int, top : Int ): GtkWidget is extern `{
- return gtk_grid_get_child_at( recv, left, top );
+ fun get_child_at(left: Int, top: Int): GtkWidget `{
+ return gtk_grid_get_child_at(recv, left, top);
`}
# Insert a row at the specified position
- fun insert_row( position :Int ) is extern `{
- gtk_grid_insert_row( recv, position );
+ fun insert_row(position:Int) `{
+ gtk_grid_insert_row(recv, position);
`}
# Insert a column at the specified position
- fun insert_column( position : Int ) is extern `{
- gtk_grid_insert_column( recv, position );
+ fun insert_column(position: Int) `{
+ gtk_grid_insert_column(recv, position);
+ `}
+end
+
+# A widget that can switch orientation
+extern class GtkOrientable `{GtkOrientable *`}
+ super GtkWidget
+
+ # Get the orientation of this widget
+ fun orientation: GtkOrientation `{
+ return gtk_orientable_get_orientation(recv);
+ `}
+
+ # Set the orientation of this widget
+ fun orientation=(orientation: GtkOrientation) `{
+ gtk_orientable_set_orientation(recv, orientation);
`}
end
# A container box
#
-# @https://developer.gnome.org/gtk3/3.4/GtkBox.html
+# See: https://developer.gnome.org/gtk3/3.4/GtkBox.html
extern class GtkBox `{ GtkBox * `}
super GtkContainer
+ super GtkOrientable
+
+ # Create a new `GtkBox` with the given `orientation` and `spacing` between its children
+ new (orientation: GtkOrientation, spacing: Int) `{
+ return (GtkBox *)gtk_box_new(orientation, spacing);
+ `}
+
+ # Give the children of `self` equal space in the box?
+ fun homogeneous: Bool `{ return gtk_box_get_homogeneous(recv); `}
+
+ # Give the children of `self` equal space in the box?
+ fun homogeneous=(homogeneous: Bool) `{
+ gtk_box_set_homogeneous(recv, homogeneous);
+ `}
+
+ # Add `child` and pack it at the start of the box
+ fun pack_start(child: GtkWidget, expand, fill: Bool, padding: Int) `{
+ gtk_box_pack_start(recv, child, expand, fill, padding);
+ `}
+
+ # Add `child` and pack it at the end of the box
+ fun pack_end(child: GtkWidget, expand, fill: Bool, padding: Int) `{
+ gtk_box_pack_end(recv, child, expand, fill, padding);
+ `}
+
+ # Set the way `child` is packed in `self`
+ fun set_child_packing(child: GtkWidget, expand, fill: Bool, padding: Int, packing: GtkPackType) `{
+ gtk_box_set_child_packing(recv, child, expand, fill, padding, packing);
+ `}
end
-#The tree interface used by GtkTreeView
-#@https://developer.gnome.org/gtk3/stable/GtkTreeModel.html
+# The tree interface used by GtkTreeView
+# See: https://developer.gnome.org/gtk3/stable/GtkTreeModel.html
extern class GtkTreeModel `{GtkTreeModel *`}
end
-#An abstract class for laying out GtkCellRenderers
-#@https://developer.gnome.org/gtk3/stable/GtkCellArea.html
+# An abstract class for laying out GtkCellRenderers
+# See: https://developer.gnome.org/gtk3/stable/GtkCellArea.html
extern class GtkCellArea `{GtkCellArea *`}
end
-#Base class for widgets with alignments and padding
-#@https://developer.gnome.org/gtk3/3.2/GtkMisc.html
+# Base class for widgets with alignments and padding
+# See: https://developer.gnome.org/gtk3/3.2/GtkMisc.html
extern class GtkMisc `{GtkMisc *`}
super GtkWidget
- fun alignment : GtkAlignment is abstract
+ fun alignment: GtkAlignment is abstract
- fun alignment=( x : Float, y : Float ) is extern `{
- gtk_misc_set_alignment( recv, x, y );
+ fun alignment=(x: Float, y: Float) `{
+ gtk_misc_set_alignment(recv, x, y);
`}
- fun padding : GtkAlignment is abstract
+ fun padding: GtkAlignment is abstract
- fun padding=( x : Float, y : Float ) is extern `{
- gtk_misc_set_padding( recv, x, y );
+ fun padding=(x: Float, y: Float) `{
+ gtk_misc_set_padding(recv, x, y);
`}
end
-#A single line text entry field
-#@https://developer.gnome.org/gtk3/3.2/GtkEntry.html
+# A single line text entry field
+# See: https://developer.gnome.org/gtk3/3.2/GtkEntry.html
extern class GtkEntry `{GtkEntry *`}
super GtkWidget
- new is extern `{
+ new `{
return (GtkEntry *)gtk_entry_new();
`}
- fun text : String is extern import NativeString.to_s_with_copy `{
- return NativeString_to_s_with_copy( (char *)gtk_entry_get_text( recv ) );
+ fun text: String import NativeString.to_s_with_copy `{
+ return NativeString_to_s_with_copy((char *)gtk_entry_get_text(recv));
`}
- fun text=( value : String) is extern import String.to_cstring`{
- gtk_entry_set_text( recv, String_to_cstring( value ) );
+ fun text=(value: String) import String.to_cstring `{
+ gtk_entry_set_text(recv, String_to_cstring(value));
`}
# Is the text visible or is it the invisible char (such as '*')?
- fun visiblility: Bool is extern `{
- return gtk_entry_get_visibility( recv );
+ fun visiblility: Bool `{
+ return gtk_entry_get_visibility(recv);
`}
# Set the text visiblility
# If false, will use the invisible char (such as '*')
- fun visibility=( is_visible : Bool) is extern `{
- gtk_entry_set_visibility( recv, is_visible );
+ fun visibility=(is_visible: Bool) `{
+ gtk_entry_set_visibility(recv, is_visible);
`}
- fun max_length : Int is extern `{
- return gtk_entry_get_max_length( recv );
+ fun max_length: Int `{
+ return gtk_entry_get_max_length(recv);
`}
- fun max_length=( max : Int) is extern `{
- gtk_entry_set_max_length( recv, max );
+ fun max_length=(max: Int) `{
+ gtk_entry_set_max_length(recv, max);
`}
end
-#Base class for widgets which visualize an adjustment
-#@https://developer.gnome.org/gtk3/3.2/GtkRange.html
+# Base class for widgets which visualize an adjustment
+# See: https://developer.gnome.org/gtk3/3.2/GtkRange.html
extern class GtkRange `{GtkRange *`}
super GtkWidget
- #Gets the current position of the fill level indicator.
- fun fill_level : Float is extern `{
- return gtk_range_get_fill_level( recv );
+ # Gets the current position of the fill level indicator.
+ fun fill_level: Float `{
+ return gtk_range_get_fill_level(recv);
`}
- fun fill_level=( level : Float ) is extern `{
- gtk_range_set_fill_level( recv, level );
+ fun fill_level=(level: Float) `{
+ gtk_range_set_fill_level(recv, level);
`}
- #Gets whether the range is restricted to the fill level.
- fun restricted_to_fill_level : Bool is extern `{
- return gtk_range_get_restrict_to_fill_level( recv );
+ # Gets whether the range is restricted to the fill level.
+ fun restricted_to_fill_level: Bool `{
+ return gtk_range_get_restrict_to_fill_level(recv);
`}
- fun restricted_to_fill_level=( restricted : Bool ) is extern `{
- gtk_range_set_restrict_to_fill_level( recv, restricted );
+ fun restricted_to_fill_level=(restricted: Bool) `{
+ gtk_range_set_restrict_to_fill_level(recv, restricted);
`}
- #Gets whether the range displays the fill level graphically.
- fun show_fill_level : Bool is extern `{
- return gtk_range_get_show_fill_level( recv );
+ # Gets whether the range displays the fill level graphically.
+ fun show_fill_level: Bool `{
+ return gtk_range_get_show_fill_level(recv);
`}
- fun show_fill_level=( is_displayed : Bool ) is extern `{
- gtk_range_set_show_fill_level( recv, is_displayed );
+ fun show_fill_level=(is_displayed: Bool) `{
+ gtk_range_set_show_fill_level(recv, is_displayed);
`}
- fun adjustment : GtkAdjustment is extern `{
- return gtk_range_get_adjustment( recv );
+ fun adjustment: GtkAdjustment `{
+ return gtk_range_get_adjustment(recv);
`}
- fun adjustment=( value : GtkAdjustment ) is extern `{
- gtk_range_set_adjustment( recv, value );
+ fun adjustment=(value: GtkAdjustment) `{
+ gtk_range_set_adjustment(recv, value);
`}
- fun inverted : Bool is extern `{
- return gtk_range_get_inverted( recv );
+ fun inverted: Bool `{
+ return gtk_range_get_inverted(recv);
`}
- fun inverted=( setting : Bool ) is extern `{
- gtk_range_set_inverted( recv, setting );
+ fun inverted=(setting: Bool) `{
+ gtk_range_set_inverted(recv, setting);
`}
- fun value : Float is extern `{
- return gtk_range_get_value( recv );
+ fun value: Float `{
+ return gtk_range_get_value(recv);
`}
- fun value=( val : Float ) is extern `{
- gtk_range_set_value( recv, val );
+ fun value=(val: Float) `{
+ gtk_range_set_value(recv, val);
`}
- fun set_increments( step : Float, page : Float ) is extern `{
- gtk_range_set_increments( recv, step, page );
+ fun set_increments(step: Float, page: Float) `{
+ gtk_range_set_increments(recv, step, page);
`}
- fun set_range( min : Float, max : Float ) is extern `{
- gtk_range_set_range( recv, min, max );
+ fun set_range(min: Float, max: Float) `{
+ gtk_range_set_range(recv, min, max);
`}
- fun round_digits : Int is extern `{
- return gtk_range_get_round_digits( recv );
+ fun round_digits: Int `{
+ return gtk_range_get_round_digits(recv);
`}
- fun round_digits=( nb : Int ) is extern `{
- gtk_range_set_round_digits( recv, nb );
+ fun round_digits=(nb: Int) `{
+ gtk_range_set_round_digits(recv, nb);
`}
- fun size_fixed : Bool is extern `{
- return gtk_range_get_slider_size_fixed( recv );
+ fun size_fixed: Bool `{
+ return gtk_range_get_slider_size_fixed(recv);
`}
- fun size_fixed=( is_fixed : Bool ) is extern `{
- return gtk_range_set_slider_size_fixed( recv, is_fixed );
+ fun size_fixed=(is_fixed: Bool) `{
+ return gtk_range_set_slider_size_fixed(recv, is_fixed);
`}
- fun flippable : Bool is extern `{
- return gtk_range_get_flippable( recv );
+ fun flippable: Bool `{
+ return gtk_range_get_flippable(recv);
`}
- fun min_size=( is_flippable : Bool ) is extern `{
- return gtk_range_set_flippable( recv, is_flippable );
+ fun min_size=(is_flippable: Bool) `{
+ return gtk_range_set_flippable(recv, is_flippable);
`}
- fun min_slider_size : Int is extern `{
- return gtk_range_get_min_slider_size( recv );
+ fun min_slider_size: Int `{
+ return gtk_range_get_min_slider_size(recv);
`}
- fun min_slider_size=( size : Int ) is extern `{
- return gtk_range_set_min_slider_size( recv, size );
+ fun min_slider_size=(size: Int) `{
+ return gtk_range_set_min_slider_size(recv, size);
`}
end
-#A slider widget for selecting a value from a range
-#@https://developer.gnome.org/gtk3/3.2/GtkScale.html
+# A slider widget for selecting a value from a range
+# See: https://developer.gnome.org/gtk3/3.2/GtkScale.html
extern class GtkScale `{GtkScale *`}
super GtkRange
- new ( orientation : GtkOrientation, adjustment : GtkAdjustment ) is extern `{
- return (GtkScale *)gtk_scale_new( orientation, adjustment );
+ new (orientation: GtkOrientation, adjustment: GtkAdjustment) `{
+ return (GtkScale *)gtk_scale_new(orientation, adjustment);
`}
- new with_range ( orientation : GtkOrientation, min : Float, max : Float, step : Float ) is extern `{
- return (GtkScale *)gtk_scale_new_with_range( orientation, min, max, step );
+ new with_range (orientation: GtkOrientation, min: Float, max: Float, step: Float) `{
+ return (GtkScale *)gtk_scale_new_with_range(orientation, min, max, step);
`}
- fun digits : Int is extern `{
- return gtk_scale_get_digits( recv );
+ fun digits: Int `{
+ return gtk_scale_get_digits(recv);
`}
- fun digits=( nb_digits : Int ) is extern `{
- gtk_scale_set_digits( recv, nb_digits );
+ fun digits=(nb_digits: Int) `{
+ gtk_scale_set_digits(recv, nb_digits);
`}
- fun draw_value : Bool is extern `{
- return gtk_scale_get_draw_value( recv );
+ fun draw_value: Bool `{
+ return gtk_scale_get_draw_value(recv);
`}
- fun draw_value=( is_displayed : Bool ) is extern `{
- gtk_scale_set_draw_value( recv, is_displayed );
+ fun draw_value=(is_displayed: Bool) `{
+ gtk_scale_set_draw_value(recv, is_displayed);
`}
- fun value_position : GtkPositionType is extern `{
- return gtk_scale_get_value_pos( recv );
+ fun value_position: GtkPositionType `{
+ return gtk_scale_get_value_pos(recv);
`}
- fun value_position=( pos : GtkPositionType ) is extern `{
- gtk_scale_set_value_pos( recv, pos );
+ fun value_position=(pos: GtkPositionType) `{
+ gtk_scale_set_value_pos(recv, pos);
`}
- fun has_origin : Bool is extern `{
- return gtk_scale_get_has_origin( recv );
+ fun has_origin: Bool `{
+ return gtk_scale_get_has_origin(recv);
`}
- fun has_origin=( orig : Bool ) is extern `{
- gtk_scale_set_has_origin( recv, orig );
+ fun has_origin=(orig: Bool) `{
+ gtk_scale_set_has_origin(recv, orig);
`}
- fun add_mark( value : Float, position : GtkPositionType, markup : String ) is extern import String.to_cstring`{
- gtk_scale_add_mark( recv, value, position, String_to_cstring( markup ) );
+ fun add_mark(value: Float, position: GtkPositionType, markup: String)
+ import String.to_cstring `{
+ gtk_scale_add_mark(recv, value, position, String_to_cstring(markup));
`}
- #Removes any marks that have been added with gtk_scale_add_mark().
- fun clear_marks is extern `{
- gtk_scale_clear_marks( recv );
+ # Removes any marks that have been added with gtk_scale_add_mark().
+ fun clear_marks `{
+ gtk_scale_clear_marks(recv);
`}
-
- #get layout
- #get layout offsets
-
end
-#A scrollbar
-#@https://developer.gnome.org/gtk3/3.2/GtkScrollbar.html
+# A scrollbar
+# See: https://developer.gnome.org/gtk3/3.2/GtkScrollbar.html
extern class GtkScrollbar `{GtkScrollbar *`}
super GtkRange
- new ( orientation : GtkOrientation, adjustment : GtkAdjustment ) is extern `{
- return (GtkScrollbar *)gtk_scrollbar_new( orientation, adjustment );
+ new (orientation: GtkOrientation, adjustment: GtkAdjustment) `{
+ return (GtkScrollbar *)gtk_scrollbar_new(orientation, adjustment);
`}
end
-#A widget that displays a small to medium amount of text
-#@https://developer.gnome.org/gtk3/3.2/GtkLabel.html
+# A widget that displays a small to medium amount of text
+# See: https://developer.gnome.org/gtk3/3.2/GtkLabel.html
extern class GtkLabel `{GtkLabel *`}
super GtkMisc
# Create a GtkLabel with text
- new ( text : String ) is extern import String.to_cstring `{
- return (GtkLabel*)gtk_label_new( String_to_cstring( text ) );
+ new (text: String) import String.to_cstring `{
+ return (GtkLabel*)gtk_label_new(String_to_cstring(text));
`}
# Set the text of the label
- fun text=( text : String ) import String.to_cstring `{
- gtk_label_set_text( recv, String_to_cstring( text ) );
+ fun text=(text: String) import String.to_cstring `{
+ gtk_label_set_text(recv, String_to_cstring(text));
`}
# Returns the text of the label
- fun text : String import NativeString.to_s `{
- return NativeString_to_s( (char*)gtk_label_get_text( recv ) );
+ fun text: String import NativeString.to_s `{
+ return NativeString_to_s((char*)gtk_label_get_text(recv));
`}
# Sets the angle of rotation for the label.
# An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom.
- fun angle=( degre : Float ) `{
- gtk_label_set_angle( recv, degre );
+ fun angle=(degre: Float) `{
+ gtk_label_set_angle(recv, degre);
`}
# Returns the angle of rotation for the label.
- fun angle : Float `{
- return gtk_label_get_angle( recv );
+ fun angle: Float `{
+ return gtk_label_get_angle(recv);
`}
end
-#A widget displaying an image
-#@https://developer.gnome.org/gtk3/3.2/GtkImage.html
+# A widget displaying an image
+# See: https://developer.gnome.org/gtk3/3.2/GtkImage.html
extern class GtkImage `{GtkImage *`}
super GtkMisc
# Create a GtkImage
- new is extern `{
- return (GtkImage*)gtk_image_new( );
+ new `{
+ return (GtkImage*)gtk_image_new();
`}
# Create a GtkImage with text
- new file( filename : String ) is extern import String.to_cstring `{
- return (GtkImage*)gtk_image_new_from_file( String_to_cstring( filename ) );
+ new file(filename: String) import String.to_cstring `{
+ return (GtkImage*)gtk_image_new_from_file(String_to_cstring(filename));
`}
- fun pixel_size : Int is extern `{
- return gtk_image_get_pixel_size( recv );
+ fun pixel_size: Int `{
+ return gtk_image_get_pixel_size(recv);
`}
- fun pixel_size=( size : Int) is extern `{
- gtk_image_set_pixel_size( recv, size );
+ fun pixel_size=(size: Int) `{
+ gtk_image_set_pixel_size(recv, size);
`}
- fun clear is extern `{
- gtk_image_clear( recv );
+ fun clear `{
+ gtk_image_clear(recv);
`}
end
-#enum GtkImageType
-#Describes the image data representation used by a GtkImage.
-#@https://developer.gnome.org/gtk3/3.2/GtkImage.html#GtkImageType
+# enum GtkImageType
+# Describes the image data representation used by a GtkImage.
+# See: https://developer.gnome.org/gtk3/3.2/GtkImage.html#GtkImageType
extern class GtkImageType `{GtkImageType`}
# There is no image displayed by the widget.
new empty `{ return GTK_IMAGE_EMPTY; `}
new gicon `{ return GTK_IMAGE_GICON; `}
end
-#Displays an arrow
-#@https://developer.gnome.org/gtk3/3.2/GtkArrow.html
+# Displays an arrow
+# See: https://developer.gnome.org/gtk3/3.2/GtkArrow.html
extern class GtkArrow `{GtkArrow *`}
super GtkMisc
- new ( arrow_type : GtkArrowType, shadow_type : GtkShadowType ) is extern `{
- return (GtkArrow *)gtk_arrow_new( arrow_type, shadow_type );
+ new (arrow_type: GtkArrowType, shadow_type: GtkShadowType) `{
+ return (GtkArrow *)gtk_arrow_new(arrow_type, shadow_type);
`}
- fun set( arrow_type : GtkArrowType, shadow_type : GtkShadowType ) is extern `{
- gtk_arrow_set( recv, arrow_type, shadow_type );
+ fun set(arrow_type: GtkArrowType, shadow_type: GtkShadowType) `{
+ gtk_arrow_set(recv, arrow_type, shadow_type);
`}
end
-#A widget that emits a signal when clicked on
-#@https://developer.gnome.org/gtk3/stable/GtkButton.html
+# A widget that emits a signal when clicked on
+# See: https://developer.gnome.org/gtk3/stable/GtkButton.html
extern class GtkButton `{GtkButton *`}
super GtkBin
- new is extern `{
- return (GtkButton *)gtk_button_new( );
+ new `{
+ return (GtkButton *)gtk_button_new();
`}
- #Create a GtkButton with text
- new with_label( text : String ) is extern import String.to_cstring `{
- return (GtkButton *)gtk_button_new_with_label( String_to_cstring( text ) );
+ # Create a GtkButton with text
+ new with_label(text: String) import String.to_cstring `{
+ return (GtkButton *)gtk_button_new_with_label(String_to_cstring(text));
`}
- new from_stock( stock_id : String ) is extern import String.to_cstring `{
- return (GtkButton *)gtk_button_new_from_stock( String_to_cstring( stock_id ) );
+ new from_stock(stock_id: String) import String.to_cstring `{
+ return (GtkButton *)gtk_button_new_from_stock(String_to_cstring(stock_id));
`}
- fun text : String is extern `{
- return NativeString_to_s( (char *)gtk_button_get_label( recv ) );
+ fun text: String `{
+ return NativeString_to_s((char *)gtk_button_get_label(recv));
`}
- fun text=( value : String ) is extern import String.to_cstring`{
- gtk_button_set_label( recv, String_to_cstring( value ) );
+ fun text=(value: String) import String.to_cstring `{
+ gtk_button_set_label(recv, String_to_cstring(value));
`}
- fun on_click( to_call : GtkCallable, user_data : nullable Object ) do
- signal_connect( "clicked", to_call, user_data )
+ fun on_click(to_call: GtkCallable, user_data: nullable Object) do
+ signal_connect("clicked", to_call, user_data)
end
end
-#A button which pops up a scale
-#@https://developer.gnome.org/gtk3/stable/GtkScaleButton.html
+# A button which pops up a scale
+# See: https://developer.gnome.org/gtk3/stable/GtkScaleButton.html
extern class GtkScaleButton `{GtkScaleButton *`}
super GtkButton
- #const gchar **icons
- new( size: GtkIconSize, min: Float, max: Float, step: Float ) is extern `{
- return (GtkScaleButton *)gtk_scale_button_new( size, min, max, step, (const char **)0 );
+ # const gchar **icons
+ new(size: GtkIconSize, min: Float, max: Float, step: Float) `{
+ return (GtkScaleButton *)gtk_scale_button_new(size, min, max, step, (const char **)0);
`}
end
-#Create buttons bound to a URL
-#@https://developer.gnome.org/gtk3/stable/GtkLinkButton.html
+# Create buttons bound to a URL
+# See: https://developer.gnome.org/gtk3/stable/GtkLinkButton.html
extern class GtkLinkButton `{GtkLinkButton *`}
super GtkButton
- new( uri: String ) is extern import String.to_cstring `{
- return (GtkLinkButton *)gtk_link_button_new( String_to_cstring(uri) );
+ new(uri: String) import String.to_cstring `{
+ return (GtkLinkButton *)gtk_link_button_new(String_to_cstring(uri));
`}
end
-#A container which can hide its child
-#https://developer.gnome.org/gtk3/stable/GtkExpander.html
+# A container which can hide its child
+# https://developer.gnome.org/gtk3/stable/GtkExpander.html
extern class GtkExpander `{GtkExpander *`}
super GtkBin
- new( lbl : String) is extern import String.to_cstring`{
- return (GtkExpander *)gtk_expander_new( String_to_cstring( lbl ) );
+ new(lbl: String) import String.to_cstring `{
+ return (GtkExpander *)gtk_expander_new(String_to_cstring(lbl));
`}
- new with_mnemonic( lbl : String) is extern import String.to_cstring`{
- return (GtkExpander *)gtk_expander_new_with_mnemonic(String_to_cstring( lbl ));
+ new with_mnemonic(lbl: String) import String.to_cstring `{
+ return (GtkExpander *)gtk_expander_new_with_mnemonic(String_to_cstring(lbl));
`}
- fun expanded : Bool is extern `{
- return gtk_expander_get_expanded( recv );
+ fun expanded: Bool `{
+ return gtk_expander_get_expanded(recv);
`}
- fun expanded=( is_expanded : Bool ) is extern `{
- gtk_expander_set_expanded( recv, is_expanded );
+ fun expanded=(is_expanded: Bool) `{
+ gtk_expander_set_expanded(recv, is_expanded);
`}
- fun spacing : Int is extern `{
- return gtk_expander_get_spacing( recv );
+ fun spacing: Int `{
+ return gtk_expander_get_spacing(recv);
`}
- fun spacing=( pixels : Int ) is extern `{
- gtk_expander_set_spacing( recv, pixels );
+ fun spacing=(pixels: Int) `{
+ gtk_expander_set_spacing(recv, pixels);
`}
- fun label_text : String is extern `{
- return NativeString_to_s( (char *)gtk_expander_get_label( recv ) );
+ fun label_text: String `{
+ return NativeString_to_s((char *)gtk_expander_get_label(recv));
`}
- fun label_text=( lbl : String ) is extern import String.to_cstring`{
- gtk_expander_set_label( recv, String_to_cstring( lbl ) );
+ fun label_text=(lbl: String) import String.to_cstring `{
+ gtk_expander_set_label(recv, String_to_cstring(lbl));
`}
- fun use_underline : Bool is extern `{
- return gtk_expander_get_use_underline( recv );
+ fun use_underline: Bool `{
+ return gtk_expander_get_use_underline(recv);
`}
- fun use_underline=( used : Bool) is extern `{
- gtk_expander_set_use_underline( recv, used );
+ fun use_underline=(used: Bool) `{
+ gtk_expander_set_use_underline(recv, used);
`}
- fun use_markup : Bool is extern `{
- return gtk_expander_get_use_markup( recv );
+ fun use_markup: Bool `{
+ return gtk_expander_get_use_markup(recv);
`}
- fun use_markup=( used : Bool) is extern `{
- gtk_expander_set_use_markup( recv, used );
+ fun use_markup=(used: Bool) `{
+ gtk_expander_set_use_markup(recv, used);
`}
- fun label_widget : GtkWidget is extern `{
- return gtk_expander_get_label_widget( recv );
+ fun label_widget: GtkWidget `{
+ return gtk_expander_get_label_widget(recv);
`}
- fun label_widget=( widget : GtkWidget ) is extern `{
- gtk_expander_set_label_widget( recv, widget );
+ fun label_widget=(widget: GtkWidget) `{
+ gtk_expander_set_label_widget(recv, widget);
`}
- fun label_fill : Bool is extern `{
- return gtk_expander_get_label_fill( recv );
+ fun label_fill: Bool `{
+ return gtk_expander_get_label_fill(recv);
`}
- fun label_fill=( fill : Bool ) is extern `{
- gtk_expander_set_label_fill( recv, fill );
+ fun label_fill=(fill: Bool) `{
+ gtk_expander_set_label_fill(recv, fill);
`}
- fun resize_toplevel : Bool is extern `{
- return gtk_expander_get_resize_toplevel( recv );
+ fun resize_toplevel: Bool `{
+ return gtk_expander_get_resize_toplevel(recv);
`}
- fun resize_toplevel=( resize : Bool ) is extern `{
- gtk_expander_set_resize_toplevel( recv, resize );
+ fun resize_toplevel=(resize: Bool) `{
+ gtk_expander_set_resize_toplevel(recv, resize);
`}
end
-#An abstract class for laying out GtkCellRenderers
-#@https://developer.gnome.org/gtk3/stable/GtkCellArea.html
+# An abstract class for laying out GtkCellRenderers
+# See: https://developer.gnome.org/gtk3/stable/GtkCellArea.html
extern class GtkComboBox `{GtkComboBox *`}
super GtkBin
- new is extern `{
- return (GtkComboBox *)gtk_combo_box_new( );
+ new `{
+ return (GtkComboBox *)gtk_combo_box_new();
`}
- new with_entry is extern `{
- return (GtkComboBox *)gtk_combo_box_new_with_entry( );
+ new with_entry `{
+ return (GtkComboBox *)gtk_combo_box_new_with_entry();
`}
- new with_model( model : GtkTreeModel ) is extern `{
- return (GtkComboBox *)gtk_combo_box_new_with_model( model );
+ new with_model(model: GtkTreeModel) `{
+ return (GtkComboBox *)gtk_combo_box_new_with_model(model);
`}
- new with_model_and_entry( model : GtkTreeModel ) is extern `{
- return (GtkComboBox *)gtk_combo_box_new_with_model_and_entry( model );
+ new with_model_and_entry(model: GtkTreeModel) `{
+ return (GtkComboBox *)gtk_combo_box_new_with_model_and_entry(model);
`}
- new with_area( area : GtkCellArea ) is extern `{
- return (GtkComboBox *)gtk_combo_box_new_with_area( area );
+ new with_area(area: GtkCellArea) `{
+ return (GtkComboBox *)gtk_combo_box_new_with_area(area);
`}
- new with_area_and_entry( area : GtkCellArea ) is extern `{
- return (GtkComboBox *)gtk_combo_box_new_with_area_and_entry( area );
+ new with_area_and_entry(area: GtkCellArea) `{
+ return (GtkComboBox *)gtk_combo_box_new_with_area_and_entry(area);
`}
- fun wrap_width : Int is extern `{
- return gtk_combo_box_get_wrap_width( recv );
+ fun wrap_width: Int `{
+ return gtk_combo_box_get_wrap_width(recv);
`}
- fun wrap_width=( width : Int ) is extern `{
- gtk_combo_box_set_wrap_width( recv, width );
+ fun wrap_width=(width: Int) `{
+ gtk_combo_box_set_wrap_width(recv, width);
`}
- fun row_span_col : Int is extern `{
- return gtk_combo_box_get_row_span_column( recv );
+ fun row_span_col: Int `{
+ return gtk_combo_box_get_row_span_column(recv);
`}
- fun row_span_col=( row_span : Int ) is extern `{
- gtk_combo_box_set_row_span_column( recv, row_span );
+ fun row_span_col=(row_span: Int) `{
+ gtk_combo_box_set_row_span_column(recv, row_span);
`}
- fun col_span_col : Int is extern `{
- return gtk_combo_box_get_column_span_column( recv );
+ fun col_span_col: Int `{
+ return gtk_combo_box_get_column_span_column(recv);
`}
- fun col_span_col=( col_span : Int ) is extern `{
- gtk_combo_box_set_column_span_column( recv, col_span );
+ fun col_span_col=(col_span: Int) `{
+ gtk_combo_box_set_column_span_column(recv, col_span);
`}
- fun active_item : Int is extern `{
- return gtk_combo_box_get_active( recv );
+ fun active_item: Int `{
+ return gtk_combo_box_get_active(recv);
`}
- fun active_item=( active : Int ) is extern `{
- gtk_combo_box_set_active( recv, active );
+ fun active_item=(active: Int) `{
+ gtk_combo_box_set_active(recv, active);
`}
- #fun active_iter : GtkTreeIter is extern `{
- #`}
- #
- #fun active_iter=( active : Bool ) is extern `{
- #`}
-
- fun column_id : Int is extern `{
- return gtk_combo_box_get_id_column( recv );
+ fun column_id: Int `{
+ return gtk_combo_box_get_id_column(recv);
`}
- fun column_id=( id_column : Int ) is extern `{
- gtk_combo_box_set_id_column( recv, id_column );
+ fun column_id=(id_column: Int) `{
+ gtk_combo_box_set_id_column(recv, id_column);
`}
- fun active_id : String is extern `{
- return NativeString_to_s( (char *)gtk_combo_box_get_active_id( recv ) );
+ fun active_id: String `{
+ return NativeString_to_s((char *)gtk_combo_box_get_active_id(recv));
`}
- fun active_id=( id_active : String ) is extern import String.to_cstring`{
- gtk_combo_box_set_active_id( recv, String_to_cstring( id_active ) );
+ fun active_id=(id_active: String) import String.to_cstring `{
+ gtk_combo_box_set_active_id(recv, String_to_cstring(id_active));
`}
- fun model : GtkTreeModel is extern `{
- return gtk_combo_box_get_model( recv );
+ fun model: GtkTreeModel `{
+ return gtk_combo_box_get_model(recv);
`}
- fun model=( model : GtkTreeModel ) is extern `{
- gtk_combo_box_set_model( recv, model );
+ fun model=(model: GtkTreeModel) `{
+ gtk_combo_box_set_model(recv, model);
`}
- fun popup is extern `{
- gtk_combo_box_popup( recv );
+ fun popup `{
+ gtk_combo_box_popup(recv);
`}
- fun popdown is extern `{
- gtk_combo_box_popdown( recv );
+ fun popdown `{
+ gtk_combo_box_popdown(recv);
`}
- fun title : String is extern`{
- return NativeString_to_s( (char *)gtk_combo_box_get_title( recv ) );
+ fun title: String `{
+ return NativeString_to_s((char *)gtk_combo_box_get_title(recv));
`}
- fun title=( t : String ) is extern import String.to_cstring `{
- gtk_combo_box_set_title( recv, String_to_cstring( t ) );
+ fun title=(t: String) import String.to_cstring `{
+ gtk_combo_box_set_title(recv, String_to_cstring(t));
`}
- fun has_entry : Bool is extern `{
- return gtk_combo_box_get_has_entry( recv );
+ fun has_entry: Bool `{
+ return gtk_combo_box_get_has_entry(recv);
`}
- fun with_fixed : Bool is extern `{
- return gtk_combo_box_get_popup_fixed_width( recv );
+ fun with_fixed: Bool `{
+ return gtk_combo_box_get_popup_fixed_width(recv);
`}
- fun with_fixed=( fixed : Bool ) is extern `{
- gtk_combo_box_set_popup_fixed_width( recv, fixed );
+ fun with_fixed=(fixed: Bool) `{
+ gtk_combo_box_set_popup_fixed_width(recv, fixed);
`}
end
-#Show a spinner animation
-#@https://developer.gnome.org/gtk3/3.2/GtkSpinner.html
+# Show a spinner animation
+# See: https://developer.gnome.org/gtk3/3.2/GtkSpinner.html
extern class GtkSpinner `{GtkSpinner *`}
super GtkWidget
- new is extern `{
+ new `{
return (GtkSpinner *)gtk_spinner_new();
`}
- fun start is extern `{
- return gtk_spinner_start( recv );
+ fun start `{
+ return gtk_spinner_start(recv);
`}
- fun stop is extern `{
- return gtk_spinner_stop( recv );
+ fun stop `{
+ return gtk_spinner_stop(recv);
`}
end
-#A "light switch" style toggle
-#@https://developer.gnome.org/gtk3/3.2/GtkSwitch.html
+# A "light switch" style toggle
+# See: https://developer.gnome.org/gtk3/3.2/GtkSwitch.html
extern class GtkSwitch `{GtkSwitch *`}
super GtkWidget
- new is extern `{
+ new `{
return (GtkSwitch *)gtk_switch_new();
`}
- fun active : Bool is extern `{
- return gtk_switch_get_active( recv );
+ fun active: Bool `{
+ return gtk_switch_get_active(recv);
`}
- fun active=( is_active : Bool ) is extern `{
- return gtk_switch_set_active( recv, is_active );
+ fun active=(is_active: Bool) `{
+ return gtk_switch_set_active(recv, is_active);
`}
end
-
-#A widget which controls the alignment and size of its child
-#https://developer.gnome.org/gtk3/stable/GtkAlignment.html
+# A widget which controls the alignment and size of its child
+# https://developer.gnome.org/gtk3/stable/GtkAlignment.html
extern class GtkAlignment `{GtkAlignment *`}
super GtkBin
- new ( xalign : Float, yalign : Float, xscale : Float, yscale : Float ) is extern `{
- return (GtkAlignment *)gtk_alignment_new( xalign, yalign, xscale, yscale );
+ new (xalign: Float, yalign: Float, xscale: Float, yscale: Float) `{
+ return (GtkAlignment *)gtk_alignment_new(xalign, yalign, xscale, yscale);
`}
- fun set ( xalign : Float, yalign : Float, xscale : Float, yscale : Float ) is extern `{
- gtk_alignment_set( recv, xalign, yalign, xscale, yscale );
+ fun set (xalign: Float, yalign: Float, xscale: Float, yscale: Float) `{
+ gtk_alignment_set(recv, xalign, yalign, xscale, yscale);
`}
- #get_padding
- #set_padding
end
-#A representation of an adjustable bounded value
-#@https://developer.gnome.org/gtk3/stable/GtkAdjustment.html#GtkAdjustment.description
+# A representation of an adjustable bounded value
+# See: https://developer.gnome.org/gtk3/stable/GtkAdjustment.html#GtkAdjustment.description
extern class GtkAdjustment `{GtkAdjustment *`}
-
end
extern class GdkColor `{GdkColor*`}
- new is extern `{
- GdkColor * col = malloc(sizeof(GdkColor));
- /*gdk_color_parse( "red", recv );*/
- gdk_color_parse( "red", col);
- return col;
+ new (color_name: String) import String.to_cstring `{
+ GdkColor *color = malloc(sizeof(GdkColor));
+ gdk_color_parse(String_to_cstring(color_name), color);
+ return color;
`}
end
extern class GdkRGBA `{GdkRGBA*`}
- new is extern `{
- `}
end
#include <gtk/gtk.h>
`}
-#Create popup windows
-#@https://developer.gnome.org/gtk3/stable/GtkDialog.html
+# Create popup windows
+# See: https://developer.gnome.org/gtk3/stable/GtkDialog.html
extern class GtkDialog `{GtkDialog *`}
super GtkWindow
- new is extern `{
- return (GtkDialog *)gtk_dialog_new( );
+ new `{
+ return (GtkDialog *)gtk_dialog_new();
`}
- new with_buttons( title : String, parent : GtkWindow, flags : GtkDialogFlags) is extern import String.to_cstring`{
- return (GtkDialog *)gtk_dialog_new_with_buttons( String_to_cstring( title ), parent, flags, "", NULL );
+ new with_buttons(title: String, parent: GtkWindow, flags: GtkDialogFlags)
+ import String.to_cstring `{
+ return (GtkDialog *)gtk_dialog_new_with_buttons(
+ String_to_cstring(title), parent, flags, "", NULL);
`}
- fun run is extern `{
- gtk_dialog_run( recv );
+ fun run `{
+ gtk_dialog_run(recv);
`}
-
end
-#Display information about an application
-#@https://developer.gnome.org/gtk3/stable/GtkAboutDialog.html
+# Display information about an application
+# See: https://developer.gnome.org/gtk3/stable/GtkAboutDialog.html
extern class GtkAboutDialog `{GtkAboutDialog *`}
super GtkDialog
- new is extern `{
- return (GtkAboutDialog *)gtk_about_dialog_new( );
+ new `{
+ return (GtkAboutDialog *)gtk_about_dialog_new();
`}
- fun program_name : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_about_dialog_get_program_name( recv ) );
+ fun program_name: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_about_dialog_get_program_name(recv));
`}
- fun program_name=( name : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_program_name( recv, String_to_cstring( name ) );
+ fun program_name=(name: String) import String.to_cstring `{
+ gtk_about_dialog_set_program_name(recv, String_to_cstring(name));
`}
- fun version : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_about_dialog_get_version( recv ) );
+ fun version: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_about_dialog_get_version(recv));
`}
- fun version=( v : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_version( recv, String_to_cstring( v ) );
+ fun version=(v: String) import String.to_cstring `{
+ gtk_about_dialog_set_version(recv, String_to_cstring(v));
`}
- fun copyright : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_about_dialog_get_copyright( recv ) );
+ fun copyright: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_about_dialog_get_copyright(recv));
`}
- fun copyright=( c : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_copyright( recv, String_to_cstring( c ) );
+ fun copyright=(c: String) import String.to_cstring `{
+ gtk_about_dialog_set_copyright(recv, String_to_cstring(c));
`}
- fun comments : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_about_dialog_get_comments( recv ) );
+ fun comments: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_about_dialog_get_comments(recv));
`}
- fun comments=( com : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_comments( recv, String_to_cstring( com ) );
+ fun comments=(com: String) import String.to_cstring `{
+ gtk_about_dialog_set_comments(recv, String_to_cstring(com));
`}
- fun license : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_about_dialog_get_license( recv ) );
+ fun license: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_about_dialog_get_license(recv));
`}
- fun license=( li : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_license( recv, String_to_cstring( li ) );
+ fun license=(li: String) import String.to_cstring `{
+ gtk_about_dialog_set_license(recv, String_to_cstring(li));
`}
- #license_type
+ # license_type
- fun website : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_about_dialog_get_website( recv ) );
+ fun website: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_about_dialog_get_website(recv));
`}
- fun website=( link : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_website( recv, String_to_cstring( link ) );
+ fun website=(link: String) import String.to_cstring `{
+ gtk_about_dialog_set_website(recv, String_to_cstring(link));
`}
- fun website_label : String import NativeString.to_s `{
- return NativeString_to_s( (char *) gtk_about_dialog_get_website_label( recv ) );
+ fun website_label: String import NativeString.to_s `{
+ return NativeString_to_s((char *) gtk_about_dialog_get_website_label(recv));
`}
- fun website_label=( link_label : String ) is extern import String.to_cstring`{
- gtk_about_dialog_set_website_label( recv, String_to_cstring( link_label ) );
+ fun website_label=(link_label: String) import String.to_cstring `{
+ gtk_about_dialog_set_website_label(recv, String_to_cstring(link_label));
`}
- #TODO
- #fun authors : String is extern`{
- # return NativeString_to_s( gtk_about_dialog_get_authors( recv ) );
- #`}
+ # TODO
+ # fun authors: String`{
+ # return NativeString_to_s(gtk_about_dialog_get_authors(recv));
+ # `}
- #TODO
- #fun authors=( authors_list : String ) is extern import String.to_cstring`{
- # gtk_about_dialog_set_authors( recv, String_to_cstring( authors_list ) );
- #`}
+ # TODO
+ # fun authors=(authors_list: String) import String.to_cstring`{
+ # gtk_about_dialog_set_authors(recv, String_to_cstring(authors_list));
+ # `}
- fun show_about_dialog(parent: GtkWindow, params: String) import String.to_cstring `{
+ fun show_about_dialog(parent: GtkWindow, params: String)
+ import String.to_cstring `{
gtk_show_about_dialog(parent, String_to_cstring(params), NULL);
`}
end
-#An application chooser dialog
-#@https://developer.gnome.org/gtk3/stable/GtkAppChooserDialog.html
+# An application chooser dialog
+# See: https://developer.gnome.org/gtk3/stable/GtkAppChooserDialog.html
extern class GtkAppChooserDialog `{GtkAppChooserDialog *`}
super GtkDialog
- #TODO - GFile
- #new ( parent : GtkWindow, flags : GtkDialogFlags, file : GFile ) is extern `{
- # return (GtkAppChooserDialog *)gtk_app_chooser_dialog_new( parent, flags, file );
- #`}
+ # TODO - GFile
+ # new (parent: GtkWindow, flags: GtkDialogFlags, file: GFile) `{
+ # return (GtkAppChooserDialog *)gtk_app_chooser_dialog_new(parent, flags, file);
+ # `}
- new for_content_type ( parent : GtkWindow, flags : GtkDialogFlags, content_type : String ) is extern import String.to_cstring `{
- return (GtkAppChooserDialog *)gtk_app_chooser_dialog_new_for_content_type( parent, flags, String_to_cstring( content_type ) );
+ new for_content_type (parent: GtkWindow, flags: GtkDialogFlags, content_type: String)
+ import String.to_cstring `{
+ return (GtkAppChooserDialog *)gtk_app_chooser_dialog_new_for_content_type(
+ parent, flags, String_to_cstring(content_type));
`}
- fun widget : GtkWidget is extern `{ return gtk_app_chooser_dialog_get_widget( recv ); `}
+ fun widget: GtkWidget `{ return gtk_app_chooser_dialog_get_widget(recv); `}
- fun heading : String import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_app_chooser_dialog_get_heading( recv ) );
+ fun heading: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_app_chooser_dialog_get_heading(recv));
`}
- fun heading=( text : String ) is extern import String.to_cstring `{
- gtk_app_chooser_dialog_set_heading( recv, String_to_cstring( text ) );
+ fun heading=(text: String) import String.to_cstring `{
+ gtk_app_chooser_dialog_set_heading(recv, String_to_cstring(text));
`}
end
-#A dialog for choosing colors
-#@https://developer.gnome.org/gtk3/stable/GtkColorChooserDialog.html
+# A dialog for choosing colors
+# See: https://developer.gnome.org/gtk3/stable/GtkColorChooserDialog.html
extern class GtkColorChooserDialog `{GtkColorChooserDialog *`}
super GtkDialog
- new ( title : String, parent : GtkWindow ) is extern import String.to_cstring `{
- return (GtkColorChooserDialog *)gtk_color_chooser_dialog_new( String_to_cstring( title ), parent );
+ new (title: String, parent: GtkWindow) import String.to_cstring `{
+ return (GtkColorChooserDialog *)gtk_color_chooser_dialog_new(
+ String_to_cstring(title), parent);
`}
end
-#A file chooser dialog, suitable for "File/Open" or "File/Save" commands
-#@https://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html
+# A file chooser dialog, suitable for "File/Open" or "File/Save" commands
+# See: https://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html
extern class GtkFileChooserDialog `{GtkFileChooserDialog *`}
super GtkDialog
- new ( title : String, parent : GtkWindow, action : GtkFileChooserAction ) is extern import String.to_cstring `{
- return (GtkFileChooserDialog *)gtk_file_chooser_dialog_new( String_to_cstring( title ), parent, action, "", NULL );
+ new (title: String, parent: GtkWindow, action: GtkFileChooserAction)
+ import String.to_cstring `{
+ return (GtkFileChooserDialog *)gtk_file_chooser_dialog_new(
+ String_to_cstring(title), parent, action, "", NULL);
`}
end
-#enum GtkFileChooserAction
-#Describes whether a GtkFileChooser is being used to open existing files or to save to a possibly new file.
-#@https://developer.gnome.org/gtk3/stable/GtkFileChooser.html#GtkFileChooserAction
+# enum GtkFileChooserAction
+#
+# Describes whether a GtkFileChooser is being used to open existing files or to save to a possibly new file.
+# See: https://developer.gnome.org/gtk3/stable/GtkFileChooser.html#GtkFileChooserAction
extern class GtkFileChooserAction `{GtkFileChooserAction`}
- #Indicates open mode. The file chooser will only let the user pick an existing file.
+ # Open file mode
+ #
+ # The file chooser will only let the user pick an existing file.
new open `{ return GTK_FILE_CHOOSER_ACTION_OPEN; `}
- #Indicates save mode. The file chooser will let the user pick an existing file, or type in a new filename.
+ # Save file mode
+ #
+ # The file chooser will let the user pick an existing file, or type in a new filename.
new save `{ return GTK_FILE_CHOOSER_ACTION_SAVE; `}
- #Indicates an Open mode for selecting folders. The file chooser will let the user pick an existing folder.
+ # Select folder mode
+ #
+ # The file chooser will let the user pick an existing folder.
new select_folder `{ return GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; `}
- #Indicates a mode for creating a new folder. The file chooser will let the user name an existing or new folder.
+ # Create a new folder mode
+ #
+ # The file chooser will let the user name an existing or new folder.
new create_folder `{ return GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER; `}
end
-#A dialog for selecting fonts
-#@https://developer.gnome.org/gtk3/stable/GtkFontChooserDialog.html
+# A dialog for selecting fonts
+# See: https://developer.gnome.org/gtk3/stable/GtkFontChooserDialog.html
extern class GtkFontChooserDialog `{GtkFontChooserDialog *`}
super GtkDialog
- new ( title : String, parent : GtkWindow ) is extern `{
- return (GtkFontChooserDialog *)gtk_font_chooser_dialog_new( String_to_cstring( title ), parent );
+ new (title: String, parent: GtkWindow) `{
+ return (GtkFontChooserDialog *)gtk_font_chooser_dialog_new(String_to_cstring(title), parent);
`}
end
-#A convenient message window
-#@https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html
+# A convenient message window
+# See: https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html
extern class GtkMessageDialog `{GtkMessageDialog *`}
super GtkDialog
- new ( parent : GtkWindow, flags : GtkDialogFlags, msg_type : GtkMessageType, btn_type : GtkButtonsType, format : String ) is extern import String.to_cstring `{
- return (GtkMessageDialog *)gtk_message_dialog_new( parent, flags, msg_type, btn_type, String_to_cstring( format ), NULL );
+ new (parent: GtkWindow, flags: GtkDialogFlags, msg_type: GtkMessageType, btn_type: GtkButtonsType, format: String) import String.to_cstring `{
+ return (GtkMessageDialog *)gtk_message_dialog_new(parent, flags, msg_type, btn_type, String_to_cstring(format), NULL);
`}
end
-#enum GtkButtonsType
-#Prebuilt sets of buttons for the dialog. If none of these choices are appropriate, simply use GTK_BUTTONS_NONE then call gtk_dialog_add_buttons().
-#@https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html#GtkButtonsType
+# enum GtkButtonsType
+# Prebuilt sets of buttons for the dialog. If none of these choices are appropriate, simply use GTK_BUTTONS_NONE then call gtk_dialog_add_buttons().
+# See: https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html#GtkButtonsType
extern class GtkButtonsType `{GtkButtonsType`}
- #No buttons at all
+ # No buttons at all
new none `{ return GTK_BUTTONS_NONE; `}
- #An OK button.
+ # An OK button.
new ok `{ return GTK_BUTTONS_OK; `}
- #A Close button.
+ # A Close button.
new close `{ return GTK_BUTTONS_CLOSE; `}
- #A Cancel button.
+ # A Cancel button.
new cancel `{ return GTK_BUTTONS_CANCEL; `}
- #Yes and No buttons.
+ # Yes and No buttons.
new yes_no `{ return GTK_BUTTONS_YES_NO; `}
- #OK and Cancel buttons.
+ # OK and Cancel buttons.
new ok_cancel `{ return GTK_BUTTONS_OK_CANCEL; `}
end
-#enum GtkMessageType
-#The type of message being displayed in the dialog.
-#@https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html#GtkMessageType
+# enum GtkMessageType
+# The type of message being displayed in the dialog.
+# See: https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html#GtkMessageType
extern class GtkMessageType `{GtkMessageType`}
- #Informational message
+ # Informational message
new info `{ return GTK_MESSAGE_INFO; `}
- #Non-fatal warning message.
+ # Non-fatal warning message.
new warning `{ return GTK_MESSAGE_WARNING; `}
- #Question requiring a choice.
+ # Question requiring a choice.
new question `{ return GTK_MESSAGE_QUESTION; `}
- #Fatal error message.
+ # Fatal error message.
new error `{ return GTK_MESSAGE_ERROR; `}
- #None of the above, doesn't get an icon.
+ # None of the above, doesn't get an icon.
new other `{ return GTK_MESSAGE_OTHER; `}
end
-#A page setup dialog
-#@https://developer.gnome.org/gtk3/stable/GtkPageSetupUnixDialog.html
-#extern class GtkPageSetupUnixDialog `{GtkPageSetupUnixDialog *`}
+# A page setup dialog
+# See: https://developer.gnome.org/gtk3/stable/GtkPageSetupUnixDialog.html
+# extern class GtkPageSetupUnixDialog `{GtkPageSetupUnixDialog *`}
# super GtkDialog
#
-#end
+# end
-#A print dialog
-#@https://developer.gnome.org/gtk3/stable/GtkPrintUnixDialog.html
-#extern class GtkPrintUnixDialog `{GtkPrintUnixDialog *`}
+# A print dialog
+# See: https://developer.gnome.org/gtk3/stable/GtkPrintUnixDialog.html
+# extern class GtkPrintUnixDialog `{GtkPrintUnixDialog *`}
# super GtkDialog
#
-#end
+# end
-#Displays recently used files in a dialog
-#@https://developer.gnome.org/gtk3/stable/GtkRecentChooserDialog.html
+# Displays recently used files in a dialog
+# See: https://developer.gnome.org/gtk3/stable/GtkRecentChooserDialog.html
extern class GtkRecentChooserDialog `{GtkRecentChooserDialog *`}
super GtkDialog
end
-#enum GtkDialogFlags
-#Flags used to influence dialog construction.
-#@https://developer.gnome.org/gtk3/stable/GtkDialog.html#GtkDialogFlags
+# enum GtkDialogFlags
+# Flags used to influence dialog construction.
+# See: https://developer.gnome.org/gtk3/stable/GtkDialog.html#GtkDialogFlags
extern class GtkDialogFlags `{GtkDialogFlags`}
- #Make the constructed dialog modal.
+ # Make the constructed dialog modal.
new modal `{ return GTK_DIALOG_MODAL; `}
- #Destroy the dialog when its parent is destroyed.
+ # Destroy the dialog when its parent is destroyed.
new destroy_with_parent `{ return GTK_DIALOG_DESTROY_WITH_PARENT; `}
end
-#enum GtkResponseType
-#Predefined values for use as response ids in gtk_dialog_add_button().
-#@https://developer.gnome.org/gtk3/stable/GtkDialog.html#GtkResponseType
+# enum GtkResponseType
+# Predefined values for use as response ids in gtk_dialog_add_button().
+# See: https://developer.gnome.org/gtk3/stable/GtkDialog.html#GtkResponseType
extern class GtkResponseType `{GtkResponseType`}
- #Returned if an action widget has no response id, or if the dialog gets programmatically hidden or destroyed.
+ # Returned if an action widget has no response id, or if the dialog gets programmatically hidden or destroyed.
new none `{ return GTK_RESPONSE_NONE; `}
- #Generic response id, not used by GTK+ dialogs.
+ # Generic response id, not used by GTK+ dialogs.
new reject `{ return GTK_RESPONSE_REJECT; `}
- #Generic response id, not used by GTK+ dialogs
+ # Generic response id, not used by GTK+ dialogs
new accept `{ return GTK_RESPONSE_ACCEPT; `}
- #Returned if the dialog is deleted
+ # Returned if the dialog is deleted
new delete_event `{ return GTK_RESPONSE_DELETE_EVENT; `}
- #Returned by OK buttons in GTK+ dialogs.
+ # Returned by OK buttons in GTK+ dialogs.
new ok `{ return GTK_RESPONSE_OK; `}
- #Returned by Cancel buttons in GTK+ dialogs.
+ # Returned by Cancel buttons in GTK+ dialogs.
new cancel `{ return GTK_RESPONSE_CANCEL; `}
- #Returned by OK Close in GTK+ dialogs.
+ # Returned by OK Close in GTK+ dialogs.
new close `{ return GTK_RESPONSE_CLOSE; `}
- #Returned by OK Yes in GTK+ dialogs.
+ # Returned by OK Yes in GTK+ dialogs.
new yes `{ return GTK_RESPONSE_YES; `}
- #Returned by OK No in GTK+ dialogs.
+ # Returned by OK No in GTK+ dialogs.
new no `{ return GTK_RESPONSE_NO; `}
- #Returned by OK Apply in GTK+ dialogs.
+ # Returned by OK Apply in GTK+ dialogs.
new apply `{ return GTK_RESPONSE_APPLY; `}
- #Returned by OK Help in GTK+ dialogs.
+ # Returned by OK Help in GTK+ dialogs.
new help `{ return GTK_RESPONSE_HELP; `}
end
# See the License for the specific language governing permissions and
# limitations under the License.
-module gtk_widgets_ext is pkgconfig("gtk+-3.0")
+module gtk_widgets_ext is pkgconfig "gtk+-3.0"
import gtk_core
-#Displays a calendar and allows the user to select a date
-#@https://developer.gnome.org/gtk3/3.2/GtkCalendar.html
+# Displays a calendar and allows the user to select a date
+# See: https://developer.gnome.org/gtk3/3.2/GtkCalendar.html
extern class GtkCalendar `{GtkCalendar *`}
super GtkWidget
- new is extern `{
+ new `{
return (GtkCalendar *)gtk_calendar_new();
`}
- fun month=( month : Int, year : Int ) is extern `{
- gtk_calendar_select_month( recv, month, year );
+ fun month=(month: Int, year: Int) `{
+ gtk_calendar_select_month(recv, month, year);
`}
- fun day=( day : Int ) is extern `{
- gtk_calendar_select_day( recv, day );
+ fun day=(day: Int) `{
+ gtk_calendar_select_day(recv, day);
`}
- fun mark_day( day : Int ) is extern `{
- gtk_calendar_mark_day( recv, day );
+ fun mark_day(day: Int) `{
+ gtk_calendar_mark_day(recv, day);
`}
- fun unmark_day( day : Int ) is extern `{
- gtk_calendar_unmark_day( recv, day );
+ fun unmark_day(day: Int) `{
+ gtk_calendar_unmark_day(recv, day);
`}
- fun is_marked( day : Int ): Bool is extern `{
- return gtk_calendar_get_day_is_marked( recv, day );
+ fun is_marked(day: Int): Bool `{
+ return gtk_calendar_get_day_is_marked(recv, day);
`}
- fun clear_marks is extern `{
- gtk_calendar_clear_marks( recv );
+ fun clear_marks `{
+ gtk_calendar_clear_marks(recv);
`}
- fun display_options : GtkCalendarDisplayOptions is extern `{
- return gtk_calendar_get_display_options( recv );
+ fun display_options: GtkCalendarDisplayOptions `{
+ return gtk_calendar_get_display_options(recv);
`}
- fun display_options=( options : GtkCalendarDisplayOptions) is extern `{
- gtk_calendar_set_display_options( recv, options );
+ fun display_options=(options: GtkCalendarDisplayOptions) `{
+ gtk_calendar_set_display_options(recv, options);
`}
- #date en nit...
+ # date en nit...
fun date: String is abstract
end
-#enum GtkCalendarDisplayOptions
-#@https://developer.gnome.org/gtk3/3.2/GtkCalendar.html#GtkCalendarDisplayOptions
+# enum GtkCalendarDisplayOptions
+# See: https://developer.gnome.org/gtk3/3.2/GtkCalendar.html#GtkCalendarDisplayOptions
extern class GtkCalendarDisplayOptions `{GtkCalendarDisplayOptions`}
new show_heading `{ return GTK_CALENDAR_SHOW_HEADING; `}
new show_day_names `{ return GTK_CALENDAR_SHOW_DAY_NAMES; `}
new show_details `{ return GTK_CALENDAR_SHOW_DETAILS; `}
end
-#A separator widget
-#@https://developer.gnome.org/gtk3/stable/GtkSeparator.html
+# A separator widget
+# See: https://developer.gnome.org/gtk3/stable/GtkSeparator.html
extern class GtkSeparator `{GtkSeparator *`}
super GtkWidget
- new ( orientation : GtkOrientation ) is extern `{
- return (GtkSeparator *)gtk_separator_new( orientation );
+ new (orientation: GtkOrientation) `{
+ return (GtkSeparator *)gtk_separator_new(orientation);
`}
end
-#A widget which indicates progress visually
-#@https://developer.gnome.org/gtk3/3.2/GtkProgressBar.html
+# A widget which indicates progress visually
+# See: https://developer.gnome.org/gtk3/3.2/GtkProgressBar.html
extern class GtkProgressBar `{GtkProgressBar *`}
super GtkWidget
- new is extern `{
+ new `{
return (GtkProgressBar *)gtk_progress_bar_new();
`}
- fun pulse is extern `{
- gtk_progress_bar_pulse( recv );
+ fun pulse `{
+ gtk_progress_bar_pulse(recv);
`}
- fun pulse_step : Float is extern `{
- return gtk_progress_bar_get_pulse_step( recv );
+ fun pulse_step: Float `{
+ return gtk_progress_bar_get_pulse_step(recv);
`}
- fun pulse_step=( step : Float ) is extern `{
- gtk_progress_bar_set_pulse_step( recv, step);
+ fun pulse_step=(step: Float) `{
+ gtk_progress_bar_set_pulse_step(recv, step);
`}
- fun fraction : Float is extern `{
- return gtk_progress_bar_get_fraction( recv );
+ fun fraction: Float `{
+ return gtk_progress_bar_get_fraction(recv);
`}
- fun fraction=( fraction : Float) is extern `{
- gtk_progress_bar_set_fraction( recv, fraction );
+ fun fraction=(fraction: Float) `{
+ gtk_progress_bar_set_fraction(recv, fraction);
`}
- fun inverted : Bool is extern `{
- return gtk_progress_bar_get_inverted( recv );
+ fun inverted: Bool `{
+ return gtk_progress_bar_get_inverted(recv);
`}
- fun inverted=( is_inverted : Bool) is extern `{
- gtk_progress_bar_set_inverted( recv, is_inverted );
+ fun inverted=(is_inverted: Bool) `{
+ gtk_progress_bar_set_inverted(recv, is_inverted);
`}
- fun show_text : Bool is extern `{
- return gtk_progress_bar_get_show_text( recv );
+ fun show_text: Bool `{
+ return gtk_progress_bar_get_show_text(recv);
`}
- fun show_text=( show : Bool) is extern `{
- gtk_progress_bar_set_show_text( recv, show );
+ fun show_text=(show: Bool) `{
+ gtk_progress_bar_set_show_text(recv, show);
`}
- fun text : String is extern import NativeString.to_s `{
- return NativeString_to_s( (char *)gtk_progress_bar_get_text( recv ) );
+ fun text: String import NativeString.to_s `{
+ return NativeString_to_s((char *)gtk_progress_bar_get_text(recv));
`}
- fun text=( value : String) is extern import String.to_cstring`{
- gtk_progress_bar_set_text( recv, String_to_cstring( value ) );
+ fun text=(value: String) import String.to_cstring `{
+ gtk_progress_bar_set_text(recv, String_to_cstring(value));
`}
fun ellipsize is abstract
extern class GtkColorSelectionDialog
super GtkWidget
- new ( title : String, parent : GtkWindow ) is extern import String.to_cstring `{
- return gtk_color_chooser_dialog_new( String_to_cstring( title ), parent );
+ new (title: String, parent: GtkWindow) import String.to_cstring `{
+ return gtk_color_chooser_dialog_new(String_to_cstring(title), parent);
`}
- #fun color_selection : is extern `{
- # return gtk_color_selection_dialog_get_color_selection( GTK_COLOR_SELECTION_DIALOG( recv ) );
- #`}
+ # fun color_selection: `{
+ # return gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(recv));
+ # `}
- #fun color : Float is extern `{
- # return gtk_color_selection_dialog_get_color_selection( GTK_COLOR_SELECTION_DIALOG( recv ) );
- #`}
+ # fun color: Float `{
+ # return gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(recv));
+ # `}
end
-#Retrieve an integer or floating-point number from the user
-#@https://developer.gnome.org/gtk3/3.2/GtkSpinButton.html
+# Retrieve an integer or floating-point number from the user
+# See: https://developer.gnome.org/gtk3/3.2/GtkSpinButton.html
extern class GtkSpinButton `{GtkSpinButton *`}
super GtkEntry
- new ( adjustment : GtkAdjustment, climb_rate : Float, digits : Int )is extern `{
- return (GtkSpinButton *)gtk_spin_button_new( adjustment, climb_rate, digits );
+ new (adjustment: GtkAdjustment, climb_rate: Float, digits: Int)is extern `{
+ return (GtkSpinButton *)gtk_spin_button_new(adjustment, climb_rate, digits);
`}
- new with_range( min : Float, max : Float, step : Float )is extern `{
- return (GtkSpinButton *)gtk_spin_button_new_with_range( min, max, step );
+ new with_range(min: Float, max: Float, step: Float)is extern `{
+ return (GtkSpinButton *)gtk_spin_button_new_with_range(min, max, step);
`}
- fun configure ( adjustment : GtkAdjustment, climb_rate : Float, digits : Int ) is extern `{
- gtk_spin_button_configure( recv, adjustment, climb_rate, digits );
+ fun configure (adjustment: GtkAdjustment, climb_rate: Float, digits: Int) `{
+ gtk_spin_button_configure(recv, adjustment, climb_rate, digits);
`}
- fun adjustment : GtkAdjustment is extern `{
- return gtk_spin_button_get_adjustment( recv );
+ fun adjustment: GtkAdjustment `{
+ return gtk_spin_button_get_adjustment(recv);
`}
- fun adjustment=( value : GtkAdjustment ) is extern `{
- gtk_spin_button_set_adjustment( recv, value );
+ fun adjustment=(value: GtkAdjustment) `{
+ gtk_spin_button_set_adjustment(recv, value);
`}
- fun digits : Int is extern `{
- return gtk_spin_button_get_digits( recv );
+ fun digits: Int `{
+ return gtk_spin_button_get_digits(recv);
`}
- fun digits=( nb_digits : Int ) is extern `{
- gtk_spin_button_set_digits( recv, nb_digits );
+ fun digits=(nb_digits: Int) `{
+ gtk_spin_button_set_digits(recv, nb_digits);
`}
- fun value : Float is extern `{
- return gtk_spin_button_get_value( recv );
+ fun value: Float `{
+ return gtk_spin_button_get_value(recv);
`}
- fun val=( val : Float ) is extern `{
- gtk_spin_button_set_value( recv, val );
+ fun val=(val: Float) `{
+ gtk_spin_button_set_value(recv, val);
`}
- fun spin( direction : GtkSpinType, increment : Float ) is extern`{
- gtk_spin_button_spin( recv, direction, increment );
+ fun spin(direction: GtkSpinType, increment: Float)`{
+ gtk_spin_button_spin(recv, direction, increment);
`}
end
-#enum GtkSpinType
-#The values of the GtkSpinType enumeration are used to specify the change to make in gtk_spin_button_spin().
-#@https://developer.gnome.org/gtk3/stable/GtkSpinButton.html#GtkSpinType
+# enum GtkSpinType
+# The values of the GtkSpinType enumeration are used to specify the change to make in gtk_spin_button_spin().
+# See: https://developer.gnome.org/gtk3/stable/GtkSpinButton.html#GtkSpinType
extern class GtkSpinType `{GtkSpinType`}
- #Increment by the adjustments step increment.
+ # Increment by the adjustments step increment.
new step_forward `{ return GTK_SPIN_STEP_FORWARD; `}
- #Decrement by the adjustments step increment.
+ # Decrement by the adjustments step increment.
new step_backward `{ return GTK_SPIN_STEP_BACKWARD; `}
- #Increment by the adjustments page increment.
+ # Increment by the adjustments page increment.
new page_forward `{ return GTK_SPIN_PAGE_FORWARD; `}
- #Decrement by the adjustments page increment.
+ # Decrement by the adjustments page increment.
new page_backward `{ return GTK_SPIN_PAGE_BACKWARD; `}
- #Go to the adjustments lower bound.
+ # Go to the adjustments lower bound.
new lower_bound `{ return GTK_SPIN_HOME; `}
- #Go to the adjustments upper bound.
+ # Go to the adjustments upper bound.
new upper_bound `{ return GTK_SPIN_END; `}
- #Change by a specified amount.
+ # Change by a specified amount.
new user_defined `{ return GTK_SPIN_USER_DEFINED; `}
end
-#A widget to unlock or lock privileged operations
-#@https://developer.gnome.org/gtk3/stable/GtkLockButton.html
+# A widget to unlock or lock privileged operations
+# See: https://developer.gnome.org/gtk3/stable/GtkLockButton.html
extern class GtkLockButton
super GtkButton
end
-#A button to launch a color selection dialog
-#@https://developer.gnome.org/gtk3/stable/GtkColorButton.html
+# A button to launch a color selection dialog
+# See: https://developer.gnome.org/gtk3/stable/GtkColorButton.html
extern class GtkColorButton `{GtkColorButton *`}
super GtkButton
- new is extern `{
- return (GtkColorButton *)gtk_color_button_new( );
- `}
-
- fun color=( col : GdkColor ) is extern `{
-
- /* deprecated
- GdkColor *c = malloc(sizeof(GdkColor));
- c->pixel = 50;
- c->red = 50;
- c->green = 50;
- c->blue = 50;
-
- gtk_color_button_set_color( (GtkColorButton*)recv, c );*/
+ new `{
+ return (GtkColorButton *)gtk_color_button_new();
`}
end
# See the License for the specific language governing permissions and
# limitations under the License.
-module v3_4 is pkgconfig("gtk+-3.0")
+module v3_4 is pkgconfig "gtk+-3.0"
import gtk_widgets_ext
import gtk_dialogs
# limitations under the License.
# GTK+ services added at version 3.6
-module v3_6 is pkgconfig("gtk+-3.0")
+module v3_6 is pkgconfig "gtk+-3.0"
import v3_4
-#An entry which shows a search icon
-#@https://developer.gnome.org/gtk3/stable/GtkSearchEntry.html
+# An entry which shows a search icon
+# See: https://developer.gnome.org/gtk3/stable/GtkSearchEntry.html
extern class GtkSearchEntry `{GtkSearchEntry *`}
super GtkEntry
- new is extern `{
- return (GtkSearchEntry *)gtk_search_entry_new( );
+ new `{
+ return (GtkSearchEntry *)gtk_search_entry_new();
`}
end
+
+redef extern class GtkEntry
+ # Purpose of this text field
+ #
+ # Can be used by on-screen keyboards and other input methods to adjust their behaviour.
+ fun input_purpose: GtkInputPurpose `{
+ return gtk_entry_get_input_purpose(recv);
+ `}
+
+ # Input purpose, tweaks the behavior of this widget
+ #
+ # Can be used by on-screen keyboards and other input methods to adjust their behaviour.
+ fun input_purpose=(purpose: GtkInputPurpose) `{
+ gtk_entry_set_input_purpose(recv, purpose);
+ `}
+end
+
+# Describe the purpose of an input widget
+extern class GtkInputPurpose `{ GtkInputPurpose `}
+ # Allow any character
+ new free_form `{ return GTK_INPUT_PURPOSE_FREE_FORM; `}
+
+ # Allow only alphabetic characters
+ new alpha `{ return GTK_INPUT_PURPOSE_ALPHA; `}
+
+ # Allow only digits
+ new digits `{ return GTK_INPUT_PURPOSE_DIGITS; `}
+
+ # Edited field expects numbers
+ new number `{ return GTK_INPUT_PURPOSE_NUMBER; `}
+
+ # Edited field expects phone number
+ new phone `{ return GTK_INPUT_PURPOSE_PHONE; `}
+
+ # Edited field expects URL
+ new url `{ return GTK_INPUT_PURPOSE_URL; `}
+
+ # Edited field expects email address
+ new email `{ return GTK_INPUT_PURPOSE_EMAIL; `}
+
+ # Edited field expects the name of a person
+ new name `{ return GTK_INPUT_PURPOSE_NAME; `}
+
+ # Like `free_form`, but characters are hidden
+ new password `{ return GTK_INPUT_PURPOSE_PASSWORD; `}
+
+ # Like `digits`, but characters are hidden
+ new pin `{ return GTK_INPUT_PURPOSE_PIN; `}
+end
redef class GtkWidget
# Get the visibility of the widget, check if it's parents are visible too
- fun visible: Bool is extern `{
+ fun visible: Bool `{
return gtk_widget_is_visible(recv);
`}
end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# This file is free software, which comes along with NIT. This software is
-# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. You can modify it is you want, provided this header
-# is kept unaltered, and a notification of the changes is added.
-# You are allowed to redistribute it and sell it, alone or is a part of
-# another product.
-
-# Additional services for streams.
-module io
-
-import push_back_reader
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# This file is free software, which comes along with NIT. This software is
-# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. You can modify it is you want, provided this header
-# is kept unaltered, and a notification of the changes is added.
-# You are allowed to redistribute it and sell it, alone or is a part of
-# another product.
-
-# Input stream that permits to push bytes back to the stream.
-module io::push_back_reader
-
-# Input stream that permits to push bytes back to the stream.
-class PushBackReader
- super Reader
-
- # Push the specified byte back to the stream.
- #
- # The specified byte is usually the last read byte that is not
- # “unread” already.
- fun unread_char(c: Char) is abstract
-
- # Push the specified string back to the stream.
- #
- # The specified string is usually the last read string that is not
- # “unread” already.
- fun unread(s: String) do
- for c in s.chars.reverse_iterator do unread_char(c)
- end
-end
-
-# Decorates an input stream to permit to push bytes back to the input stream.
-class PushBackDecorator
- super PushBackReader
-
- # The parent stream.
- var parent: Reader
-
- # The stack of the pushed-back bytes.
- #
- # Bytes are in the reverse order they will reappear in the stream.
- # `unread` pushes bytes after already pushed-back bytes.
- #
- # TODO: With optimized bulk array copy operations, a reversed stack (like in
- # OpenJDK) would be more efficient.
- private var buf: Sequence[Char] = new Array[Char]
-
- redef fun read_char: Int do
- if buf.length <= 0 then return parent.read_char
- return buf.pop.ascii
- end
-
- redef fun read(i: Int): String do
- if i <= 0 then return ""
- if buf.length <= 0 then return parent.read(i)
- var s = new FlatBuffer.with_capacity(i)
-
- loop
- s.chars.push(buf.pop)
- i -= 1
- if i <= 0 then
- return s.to_s
- else if buf.length <= 0 then
- s.append(parent.read(i))
- return s.to_s
- end
- end
- end
-
- redef fun read_all: String do
- if buf.length <= 0 then return parent.read_all
- var s = new FlatBuffer
-
- loop
- s.chars.push(buf.pop)
- if buf.length <= 0 then
- s.append(parent.read_all)
- return s.to_s
- end
- end
- end
-
- redef fun append_line_to(s: Buffer) do
- if buf.length > 0 then
- var c: Char
-
- loop
- c = buf.pop
- s.chars.push(c)
- if c == '\n' then return
- if buf.length <= 0 then break
- end
- end
- parent.append_line_to(s)
- end
-
- redef fun eof: Bool do return buf.length <= 0 and parent.eof
-
- redef fun close do
- buf.clear
- parent.close
- end
-
- redef fun unread_char(c: Char) do buf.push(c)
-
- redef fun unread(s: String) do
- for c in s.chars.reverse_iterator do buf.push(c)
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# This file is free software, which comes along with NIT. This software is
-# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. You can modify it is you want, provided this header
-# is kept unaltered, and a notification of the changes is added.
-# You are allowed to redistribute it and sell it, alone or is a part of
-# another product.
-
-# Test suites for module `push_back_reader`
-module test_push_back_reader is test_suite
-
-import test_suite
-import io::push_back_reader
-
-class TestPushBackDecorator
- super TestSuite
-
- private fun sample: PushBackDecorator do
- return new PushBackDecorator(new StringReader("""
-abcd
-
-efg
-"""))
- end
-
- fun test_read_char do
- var subject = sample
-
- assert 'a' == subject.read_char.ascii
- end
-
- fun test_read_char_eof do
- var subject = new PushBackDecorator(new StringReader(""))
-
- assert -1 == subject.read_char
- end
-
- fun test_unread_read_char do
- var subject = sample
-
- subject.unread_char('z')
- assert 'z' == subject.read_char.ascii
- assert 'a' == subject.read_char.ascii
- end
-
- fun test_read_partial do
- var subject = sample
-
- assert "abcd" == subject.read(4)
- end
-
- fun test_read_too_much do
- var subject = sample
- var exp = """
-abcd
-
-efg
-"""
- assert exp == subject.read(100)
- end
-
- fun test_unread_read do
- var subject = sample
-
- subject.unread("a")
- assert "aab" == subject.read(3)
- end
-
- fun test_unread_read_mixed do
- var subject = sample
-
- subject.unread("a")
- assert "aab" == subject.read(3)
- end
-
- fun test_read_all do
- var subject = sample
- var exp = """
-abcd
-
-efg
-"""
- assert exp == subject.read_all
- end
-
- fun test_unread_read_all do
- var subject = sample
- var exp = """
-fooabcd
-
-efg
-"""
- subject.unread("foo")
- assert exp == subject.read_all
- end
-
- fun test_read_line do
- var subject = sample
-
- assert "abcd" == subject.read_line
- assert "" == subject.read_line
- end
-
- fun test_unread_read_line do
- var subject = sample
-
- subject.unread("a\nb")
- assert "a" == subject.read_line
- assert "babcd" == subject.read_line
- end
-
- fun test_eof do
- var subject = sample
-
- assert not subject.eof
- subject.read_all
- assert subject.eof
- end
-
- fun test_eof_empty do
- var subject = new PushBackDecorator(new StringReader(""))
-
- assert subject.eof
- end
-
- fun test_close do
- var subject = sample
-
- subject.close
- assert subject.eof
- end
-
- fun test_unread_close do
- var subject = sample
-
- subject.unread("foo")
- subject.close
- assert subject.eof
- end
-
- fun test_unread_char_order do
- var subject = sample
-
- subject.unread_char('z')
- subject.unread_char('y')
- assert "yzab" == subject.read(4)
- end
-
- fun test_unread_order do
- var subject = sample
-
- subject.unread("bar")
- subject.unread("foo")
- assert "foobarab" == subject.read(8)
- end
-end
#
# SEE: `to_json`
fun append_json(buffer: Buffer) do buffer.append(to_json)
+
+ # Pretty print JSON string.
+ #
+ # ~~~
+ # var obj = new JsonObject
+ # obj["foo"] = 1
+ # obj["bar"] = true
+ # var arr = new JsonArray
+ # arr.add 2
+ # arr.add false
+ # arr.add "baz"
+ # obj["baz"] = arr
+ # var res = obj.to_pretty_json
+ # var exp = """{
+ # "foo": 1,
+ # "bar": true,
+ # "baz": [2, false, "baz"]
+ # }\n"""
+ # assert res == exp
+ # ~~~
+ fun to_pretty_json: String do
+ var res = new FlatBuffer
+ pretty_json_visit(res, 0)
+ res.add '\n'
+ return res.write_to_string
+ end
+
+ private fun pretty_json_visit(buffer: FlatBuffer, indent: Int) is abstract
end
redef class Text
# Encode `self` in JSON.
#
- # assert "\t\"http://example.com\"\r\n\0\\".to_json ==
- # "\"\\t\\\"http:\\/\\/example.com\\\"\\r\\n\\u0000\\\\\""
+ # ~~~
+ # assert "\t\"http://example.com\"\r\n\0\\".to_json ==
+ # "\"\\t\\\"http:\\/\\/example.com\\\"\\r\\n\\u0000\\\\\""
+ # ~~~
redef fun to_json do return to_json_by_append
# Parse `self` as JSON.
# assert obj.to_json == "\{\"baz\":null\}"
redef fun to_json do return to_json_by_append
+ redef fun pretty_json_visit(buffer, indent) do
+ buffer.append "\{\n"
+ indent += 1
+ var i = 0
+ for k, v in self do
+ buffer.append "\t" * indent
+ buffer.append "\"{k}\": "
+ if v isa JsonObject or v isa JsonArray then
+ v.pretty_json_visit(buffer, indent)
+ else
+ buffer.append v.to_json
+ end
+ if i < length - 1 then
+ buffer.append ","
+ end
+ buffer.append "\n"
+ i += 1
+ end
+ indent -= 1
+ buffer.append "\t" * indent
+ buffer.append "\}"
+ end
+
private fun append_json_entry(iterator: MapIterator[String, nullable Jsonable],
buffer: Buffer) do
buffer.append iterator.key.to_json
# assert arr.to_json =="[]"
redef fun to_json do return to_json_by_append
+ redef fun pretty_json_visit(buffer, indent) do
+ buffer.append "\["
+ var i = 0
+ for v in self do
+ if v isa JsonObject or v isa JsonArray then
+ v.pretty_json_visit(buffer, indent)
+ else
+ buffer.append v.to_json
+ end
+ if i < length - 1 then buffer.append ", "
+ i += 1
+ end
+ buffer.append "\]"
+ end
+
private fun append_json_entry(iterator: Iterator[nullable Jsonable],
buffer: Buffer) do
buffer.append_json_of(iterator.item)
# Get the JSON representation of `self`.
#
- # var err = new JsonParseError("foo", new Position(1, 2, 3, 4, 5, 6))
- # assert err.to_json == "\{\"error\":\"JsonParseError\"," +
- # "\"position\":\{" +
- # "\"pos_start\":1,\"pos_end\":2," +
- # "\"line_start\":3,\"line_end\":4," +
- # "\"col_start\":5,\"col_end\":6" +
- # "\},\"message\":\"foo\"\}"
+ # ~~~
+ # var err = new JsonParseError("foo", new Position(1, 2, 3, 4, 5, 6))
+ # assert err.to_json == "\{\"error\":\"JsonParseError\"," +
+ # "\"position\":\{" +
+ # "\"pos_start\":1,\"pos_end\":2," +
+ # "\"line_start\":3,\"line_end\":4," +
+ # "\"col_start\":5,\"col_end\":6" +
+ # "\},\"message\":\"foo\"\}"
+ # ~~~
redef fun to_json do
return "\{\"error\":\"JsonParseError\"," +
"\"position\":{position.to_json}," +
# Get the JSON representation of `self`.
#
- # var pos = new Position(1, 2, 3, 4, 5, 6)
- # assert pos.to_json == "\{" +
- # "\"pos_start\":1,\"pos_end\":2," +
- # "\"line_start\":3,\"line_end\":4," +
- # "\"col_start\":5,\"col_end\":6" +
- # "\}"
+ # ~~~
+ # var pos = new Position(1, 2, 3, 4, 5, 6)
+ # assert pos.to_json == "\{" +
+ # "\"pos_start\":1,\"pos_end\":2," +
+ # "\"line_start\":3,\"line_end\":4," +
+ # "\"col_start\":5,\"col_end\":6" +
+ # "\}"
+ # ~~~
redef fun to_json do
return "\{\"pos_start\":{pos_start},\"pos_end\":{pos_end}," +
"\"line_start\":{line_start},\"line_end\":{line_end}," +
redef fun serialize_reference(object)
do
- if refs_map.keys.has(object) then
+ if refs_map.has_key(object) then
# if already serialized, add local reference
var id = ref_id_for(object)
stream.write "\{\"__kind\": \"ref\", \"__id\": {id}\}"
end
# Map of references to already serialized objects.
- var refs_map = new HashMap[Serializable,Int]
+ private var refs_map = new StrictHashMap[Serializable,Int]
# Get the internal serialized reference for this `object`.
private fun ref_id_for(object: Serializable): Int
do
- if refs_map.keys.has(object) then
+ if refs_map.has_key(object) then
return refs_map[object]
else
var id = refs_map.length
# Depth-first path in the serialized object tree.
var path = new Array[JsonObject]
- # Map of refenrences to already deserialized objects.
- var id_to_object = new HashMap[Int, Object]
+ # Map of references to already deserialized objects.
+ private var id_to_object = new StrictHashMap[Int, Object]
# Last encountered object reference id.
#
redef fun notify_of_creation(new_object)
do
var id = just_opened_id
- assert id != null
+ if id == null then return # Register `new_object` only once
id_to_object[id] = new_object
end
var id = object["__id"]
assert id isa Int
- assert id_to_object.keys.has(id)
+ assert id_to_object.has_key(id)
return id_to_object[id]
end
var class_name = object["__class"]
assert class_name isa String
- assert not id_to_object.keys.has(id) else print "Error: Object with id '{id}' is deserialized twice."
+ assert not id_to_object.has_key(id) else print "Error: Object with id '{id}' of {class_name} is deserialized twice."
# advance on path
path.push object
redef fun serialize_to_json(v) do to_s.serialize_to_json(v)
end
-redef class Array[E]
- redef fun serialize_to_json(v)
+redef class Collection[E]
+ # Utility to serialize a normal Json array
+ private fun serialize_to_pure_json(v: JsonSerializer)
do
- if class_name == "Array[nullable Serializable]" then
- # Using class_name to the the exact type
- # We do not want Array[Int] or anything else here
v.stream.write "["
var is_first = true
for e in self do
if is_first then
is_first = false
- else v.stream.write(", ")
+ else v.stream.write ", "
if not v.try_to_serialize(e) then
v.warn("element of type {e.class_name} is not serializable.")
end
end
v.stream.write "]"
- else
- # Register as pseudo object
- var id = v.ref_id_for(self)
- v.stream.write "\{\"__kind\": \"obj\", \"__id\": {id}, \"__class\": \"{class_name}\""
- v.stream.write """, "__length": {{{length}}}, "__items": ["""
- var is_first = true
- for e in self do
- if is_first then
- is_first = false
- else v.stream.write(", ")
+ end
+end
- if not v.try_to_serialize(e) then
- v.warn("element of type {e.class_name} is not serializable.")
- end
- end
- v.stream.write "]"
- v.stream.write "\}"
- end
+redef class SimpleCollection[E]
+ redef fun serialize_to_json(v)
+ do
+ # Register as pseudo object
+ var id = v.ref_id_for(self)
+ v.stream.write """{"__kind": "obj", "__id": """
+ v.stream.write id.to_s
+ v.stream.write """, "__class": """"
+ v.stream.write class_name
+ v.stream.write """", "__length": """
+ v.stream.write length.to_s
+ v.stream.write """, "__items": """
+ serialize_to_pure_json v
+ v.stream.write "\}"
end
- # Instanciate a new `Array` from its serialized representation.
- init from_deserializer(v: Deserializer)
+ redef init from_deserializer(v: Deserializer)
do
if v isa JsonDeserializer then
v.notify_of_creation self
+ init
var length = v.deserialize_attribute("__length").as(Int)
var arr = v.path.last["__items"].as(SequenceRead[nullable Object])
end
end
end
+
+redef class Array[E]
+ redef fun serialize_to_json(v)
+ do
+ if class_name == "Array[nullable Serializable]" then
+ # Using class_name to get the exact type,
+ # we do not want Array[Int] or anything else here.
+
+ serialize_to_pure_json v
+ else super
+ end
+end
+
+redef class Map[K, V]
+ redef fun serialize_to_json(v)
+ do
+ # Register as pseudo object
+ var id = v.ref_id_for(self)
+
+ v.stream.write """{"__kind": "obj", "__id": """
+ v.stream.write id.to_s
+ v.stream.write """, "__class": """"
+ v.stream.write class_name
+ v.stream.write """", "__length": """
+ v.stream.write length.to_s
+ v.stream.write """, "__keys": """
+
+ keys.serialize_to_pure_json v
+
+ v.stream.write """, "__values": """
+ values.serialize_to_pure_json v
+ v.stream.write "\}"
+ end
+
+ # Instantiate a new `Array` from its serialized representation.
+ redef init from_deserializer(v: Deserializer)
+ do
+ init
+
+ if v isa JsonDeserializer then
+ v.notify_of_creation self
+
+ var length = v.deserialize_attribute("__length").as(Int)
+ var keys = v.path.last["__keys"].as(SequenceRead[nullable Object])
+ var values = v.path.last["__values"].as(SequenceRead[nullable Object])
+ for i in length.times do
+ var key = v.convert_object(keys[i])
+ var value = v.convert_object(values[i])
+ self[key] = value
+ end
+ end
+ end
+end
+
+# Maps instances to a value, uses `is_same_instance`
+#
+# Warning: This class does not implement all the services from `Map`.
+private class StrictHashMap[K, V]
+ super Map[K, V]
+
+ # private
+ var map = new HashMap[K, Array[Couple[K, V]]]
+
+ redef var length = 0
+
+ redef fun is_empty do return length == 0
+
+ # private
+ fun node_at(key: K): nullable Couple[K, V]
+ do
+ if not map.keys.has(key) then return null
+
+ var arr = map[key]
+ for couple in arr do
+ if couple.first.is_same_serialized(key) then
+ return couple
+ end
+ end
+
+ return null
+ end
+
+ redef fun [](key)
+ do
+ var node = node_at(key)
+ assert node != null
+ return node.second
+ end
+
+ redef fun []=(key, value)
+ do
+ var node = node_at(key)
+ if node != null then
+ node.second = value
+ return
+ end
+
+ var arr
+ if not map.keys.has(key) then
+ arr = new Array[Couple[K, V]]
+ map[key] = arr
+ else arr = map[key]
+
+ arr.add new Couple[K, V](key, value)
+ self.length += 1
+ end
+
+ redef fun has_key(key) do return node_at(key) != null
+end
# See the License for the specific language governing permissions and
# limitations under the License.
-module linux_data_store
+# `app::data_store` implementation on GNU/Linux
+module data_store
import app::data_store
private import xdg_basedir
# Open DB connection
db = new Sqlite3DB.open(db_path)
if not db.is_open then
- app.log_error "Data store unavaible, cannot load/save data. (at '{db_path}' with '{db.error or else "unknown"}')"
+ print_error "Data store unavaible, cannot load/save data. (at '{db_path}' with '{db.error or else "unknown"}')"
return null
end
module linux
import app
-private import linux_data_store
+private import data_store
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Implementation of the app.nit UI module for GNU/Linux
+module ui
+
+import app::ui
+import gtk
+
+import data_store
+
+redef class App
+ redef fun setup do init_gtk
+
+ # On GNU/Linux, we go through all the callbacks once,
+ # there is no complex life-cycle.
+ redef fun run
+ do
+ app.on_create
+ app.on_restore_state
+ app.on_start
+ app.on_resume
+
+ var window = window
+ window.native.show_all
+ run_gtk
+
+ app.on_pause
+ app.on_stop
+ app.on_save_state
+ app.on_destroy
+ end
+
+ # Spacing between GTK controls, default at 2
+ var control_spacing = 2 is writable
+end
+
+redef class Control
+ super GtkCallable
+ super Finalizable
+
+ # The GTK element used to implement `self`
+ fun native: NATIVE is abstract
+
+ # Type of `native`
+ type NATIVE: GtkWidget
+
+ redef fun finalize
+ do
+ var native = native
+ if not native.address_is_null then native.destroy
+ end
+end
+
+redef class CompositeControl
+ redef type NATIVE: GtkContainer
+
+ redef fun add(item)
+ do
+ super
+ native.add item.native
+ end
+end
+
+redef class Window
+ redef type NATIVE: GtkWindow
+ redef var native do
+ var win = new GtkWindow(new GtkWindowType.toplevel)
+ win.connect_destroy_signal_to_quit
+ return win
+ end
+end
+
+redef class View
+ redef fun enabled do return native.sensitive
+ redef fun enabled=(enabled) do native.sensitive = enabled or else true
+end
+
+redef class Layout
+ redef type NATIVE: GtkBox
+end
+
+redef class HorizontalLayout
+ redef var native = new GtkBox(new GtkOrientation.horizontal, app.control_spacing)
+
+ redef fun add(item)
+ do
+ super
+ native.homogeneous = true
+ native.set_child_packing(item.native, true, true, 0, new GtkPackType.start)
+ end
+end
+
+redef class VerticalLayout
+ redef var native = new GtkBox(new GtkOrientation.vertical, app.control_spacing)
+
+ redef fun add(item)
+ do
+ super
+
+ # FIXME abstract the use either homogeneous or weight to balance views size in a layout
+ native.homogeneous = true
+ native.set_child_packing(item.native, true, true, 0, new GtkPackType.start)
+ end
+end
+
+redef class Button
+ redef type NATIVE: GtkButton
+ redef var native = new GtkButton
+
+ redef fun text do return native.text
+ redef fun text=(value) do native.text = (value or else "").to_s
+
+ redef fun signal(sender, data) do notify_observers new ButtonPressEvent(self)
+
+ init do native.signal_connect("clicked", self, null)
+end
+
+redef class TextInput
+ redef type NATIVE: GtkEntry
+ redef var native = new GtkEntry
+
+ redef fun text do return native.text
+ redef fun text=(value) do
+ if value == null then value = ""
+ native.text = value.to_s
+ end
+end
#
# Markdown allows link refs to be defined over two lines:
#
- # [id]: http://example.com/longish/path/to/resource/here
+ # [id]: http://example.com/longish/path/to/resource/here
# "Optional Title Here"
#
private var last_link_ref: nullable LinkRef = null
comment = lr.title
end
else
- var tid = name.write_to_string.replace("\n", " ").to_lower
+ var tid = name.write_to_string.replace("\n", " ").to_lower
if v.processor.link_refs.has_key(tid) then
var lr = v.processor.link_refs[tid]
link = lr.link
do
var asset = try_loading_asset( id )
if asset == null then # error
- log_error( "asset <{id}> could not be loaded." )
+ print_error "asset <{id}> could not be loaded."
abort
else
return asset
if asset isa Image then
return asset
else
- log_error( "asset <{id}> is not an image." )
+ print_error "asset <{id}> is not an image."
abort
end
end
# In order to reproduce executions, the behavior of the application must be deterministic
# for a given sequence of inputs.
# The main source of differences in executions is caused by the `rand` function,
-# Set the environment variable `MNIT_SRAND` to a value to force srand to be initialized with this value.
+# Set the environment variable `NIT_SRAND` to a value to force srand to be initialized with this value.
#
# The input event file is made of event descriptions, one event by line.
#
redef fun setup
do
- var env = "MNIT_SRAND".environ
- if env != "" then
- srand_from(env.to_i)
- else
- srand_from(0)
- end
-
var input = "MNIT_READ_INPUT".environ
if input != "" then
injected_input_stream = new FileReader.open(input)
do
super
display = new NullDisplay
- window_created
+ on_create
end
# Force the printing of blit operations
super
- window_created
+ on_create
+ on_restore_state
+ on_start
+ on_resume
+ end
+
+ redef fun run
+ do
+ super
+
+ on_pause
+ on_save_state
+ on_stop
+ on_destroy
end
redef fun generate_input
do
var path = "{assets_dir}/{id}"
if not path.file_exists then
- log_error( "asset <{id}> does not exists." )
+ print_error "asset <{id}> does not exists."
exit(1)
abort
else
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# MongoDB Nit Driver.
+#
+# This is actually a wrapper around the [MongoDB C Driver](http://api.mongodb.org/c/1.1.4/index.html).
+#
+# Usage:
+#
+# ~~~
+# # Opens the connexion with the Mongo server.
+# var client = new MongoClient("mongodb://localhost:27017/")
+#
+# # Retrieve a collection.
+# var col = client.database("test").collection("test")
+#
+# # Insert a document in the collection.
+# var doc = new JsonObject
+# doc["foo"] = 10
+# doc["bar"] = "bar"
+# doc["baz"] = new JsonArray
+# assert col.insert(doc)
+#
+# # Retrieve a document from the collection.
+# var query = new JsonObject
+# query["foo"] = 10
+# var res = col.find(query)
+# assert res["bar"] == "bar"
+# ~~~
+#
+# TODO Get last Object_ID
+module mongodb
+
+import json
+private import native_mongodb
+
+in "C header" `{
+ #include <mongoc.h>
+`}
+
+# Everything inside MongoDB is manipulated as BSON Objects.
+#
+# See:
+# * [Binary JSON spec](http://bsonspec.org/)
+# * [Libbson](http://api.mongodb.org/libbson/1.1.4/)#
+private class BSON
+ super Finalizable
+
+ # Native instance pointer.
+ var native: NativeBSON
+
+ # Is the native instance valid?
+ #
+ # This is set to false if the `native` is destroyed.
+ var is_alive = true
+
+ # Returns a new BSON object initialized from the content of `json`.
+ #
+ # ~~~
+ # intrude import mongodb
+ # var obj = new JsonObject
+ # obj["age"] = 10
+ # obj["name"] = "Rick"
+ # obj["ELS"] = new JsonArray
+ # var bson = new BSON.from_json(obj)
+ # assert bson.to_s == """{ "age" : 10, "name" : "Rick", "ELS" : [ ] }"""
+ # ~~~
+ init from_json(json: JsonObject) do
+ init(new NativeBSON.from_json_string(json.to_json.to_cstring))
+ end
+
+ # Returns a new BSON object parsed from `json_string`.
+ #
+ # If `json_string` is not a valid JSON string, this initializer returns NULL.
+ #
+ # ~~~
+ # intrude import mongodb
+ # var str = """{ "age" : 10, "name" : "Rick", "ELS" : [ ] }"""
+ # var bson = new BSON.from_json_string(str)
+ # assert bson.to_s == str
+ # ~~~
+ init from_json_string(json_string: String) do
+ init(new NativeBSON.from_json_string(json_string.to_cstring))
+ end
+
+ redef fun to_s do
+ assert is_alive
+ var ns = native.to_native_string
+ var res = ns.to_s_with_copy
+ ns.free # manual free of gc allocated NativeString
+ return res
+ end
+
+ # Returns a new JsonObject from `self`.
+ #
+ # ~~~
+ # intrude import mongodb
+ # var str = """{ "age" : 10, "name" : "Rick", "ELS" : [ ] }"""
+ # var bson = new BSON.from_json_string(str)
+ # var json = bson.to_json
+ # assert json["age"] == 10
+ # assert json["name"] == "Rick"
+ # assert json["ELS"].as(JsonArray).is_empty
+ # ~~~
+ fun to_json: JsonObject do
+ assert is_alive
+ return to_s.parse_json.as(JsonObject)
+ end
+
+ redef fun finalize do
+ if is_alive then
+ native.destroy
+ is_alive = false
+ end
+ end
+end
+
+redef class JsonObject
+ # Inits `self` from a BSON object.
+ private init from_bson(bson: BSON) do recover_with(bson.to_json)
+
+ # Returns a new BSON object from `self`.
+ private fun to_bson: BSON do return new BSON.from_json(self)
+end
+
+# An error returned by the mongoc client.
+#
+# Within the client, if a method returns `false` or `null` it's more likely that
+# an error occured during the execution.
+#
+# See `MongoClient::last_error`.
+class MongoError
+
+ private var native: BSONError
+
+ # Is the native instance valid?
+ #
+ # This is set to false if the `native` is destroyed.
+ private var is_alive = true
+
+ # Logical domain within a library that created the error.
+ fun domain: Int do
+ assert is_alive
+ return native.domain
+ end
+
+ # Domain specific error code.
+ fun code: Int do
+ assert is_alive
+ return native.code
+ end
+
+ # Human readable error message.
+ fun message: String do
+ assert is_alive
+ var ns = native.message
+ var res = ns.to_s_with_copy
+ ns.free
+ return res
+ end
+
+ redef fun to_s do return "{message} (code: {code})"
+end
+
+# The MongoClient is used to connect to the mongo server and send queries.
+#
+# Usage:
+#
+# ~~~
+# var uri = "mongodb://localhost:27017/"
+# var client = new MongoClient(uri)
+# assert client.server_uri == uri
+# ~~~
+class MongoClient
+ super Finalizable
+
+ # Server URI.
+ var server_uri: String
+
+ private var native: NativeMongoClient is noinit
+
+ # Is the native instance valid?
+ #
+ # This is set to false if the `native` is destroyed.
+ private var is_alive = true
+
+ init do
+ native = new NativeMongoClient(server_uri.to_cstring)
+ end
+
+ # Gets server data.
+ #
+ # Returns `null` if an error occured. See `last_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # assert client.server_status["process"] == "mongod"
+ # ~~~
+ fun server_status: nullable JsonObject do
+ assert is_alive
+ var nbson = native.server_status
+ if nbson == null then return null
+ var bson = new BSON(nbson)
+ var res = new JsonObject.from_bson(bson)
+ return res
+ end
+
+ # Lists available database names.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var db = client.database("test")
+ # db.collection("test").insert(new JsonObject)
+ # assert client.database_names.has("test")
+ # ~~~
+ fun database_names: Array[String] do
+ assert is_alive
+ var res = new Array[String]
+ var nas = native.database_names
+ var i = 0
+ var name = nas[i]
+ while not name.address_is_null do
+ res.add name.to_s_with_copy
+ name.free
+ i += 1
+ name = nas[i]
+ end
+ return res
+ end
+
+ # Loads or creates a database from its `name`.
+ #
+ # Database are automatically created on the MongoDB server upon insertion of
+ # the first document into a collection.
+ # There is no need to create a database manually.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # assert client.database("test").name == "test"
+ # ~~~
+ fun database(name: String): MongoDb do
+ assert is_alive
+ return new MongoDb(self, name)
+ end
+
+ # Close the connexion and destroy the instance.
+ #
+ # The reference should not be used beyond this point!
+ fun close do
+ assert is_alive
+ finalize
+ end
+
+ redef fun finalize do
+ if is_alive then
+ native.destroy
+ is_alive = false
+ end
+ end
+
+ # Last error raised by mongoc.
+ fun last_error: nullable MongoError do
+ var last_error = sys.last_mongoc_error
+ if last_error == null then return null
+ return new MongoError(last_error)
+ end
+end
+
+# A MongoDb database.
+#
+# Database are automatically created on the MongoDB server upon insertion of the
+# first document into a collection.
+# There is no need to create a database manually.
+class MongoDb
+ super Finalizable
+
+ # `MongoClient` used to load this database.
+ var client: MongoClient
+
+ # The database name.
+ var name: String
+
+ private var native: NativeMongoDb is noinit
+
+ # Is the native instance valid?
+ #
+ # This is set to false if the `native` is destroyed.
+ private var is_alive = true
+
+ init do
+ native = new NativeMongoDb(client.native, name.to_cstring)
+ end
+
+ # Lists available collection names.
+ #
+ # Returns `null` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var db = client.database("test")
+ # db.collection("test").insert(new JsonObject)
+ # assert db.collection_names.has("test")
+ # ~~~
+ fun collection_names: Array[String] do
+ assert is_alive
+ var res = new Array[String]
+ var nas = native.collection_names
+ var i = 0
+ var name = nas[i]
+ while not name.address_is_null do
+ res.add name.to_s_with_copy
+ name.free
+ i += 1
+ name = nas[i]
+ end
+ return res
+ end
+
+ # Loads or creates a collection by its `name`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var db = client.database("test")
+ # var col = db.collection("test")
+ # assert col.name == "test"
+ # ~~~
+ fun collection(name: String): MongoCollection do
+ assert is_alive
+ return new MongoCollection(self, name)
+ end
+
+ # Checks if a collection named `name` exists.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var db = client.database("test")
+ # assert not db.has_collection("qwerty")
+ # ~~~
+ fun has_collection(name: String): Bool do
+ assert is_alive
+ # TODO handle error
+ return native.has_collection(name.to_cstring)
+ end
+
+ # Drop `self`, returns false if an error occured.
+ fun drop: Bool do
+ assert is_alive
+ return native.drop
+ end
+
+ redef fun finalize do
+ if is_alive then
+ native.destroy
+ is_alive = false
+ end
+ end
+end
+
+# A Mongo collection.
+#
+# Collections are automatically created on the MongoDB server upon insertion of
+# the first document.
+# There is no need to create a database manually.
+class MongoCollection
+ super Finalizable
+
+ # Database that collection belongs to.
+ var database: MongoDb
+
+ # Name of this collection.
+ var name: String
+
+ private var native: NativeMongoCollection is noinit
+
+ # Is the native instance valid?
+ #
+ # This is set to false if the `native` is destroyed.
+ private var is_alive = true
+
+ # Loads a collection.
+ #
+ # Call `MongoDb::collection` instead.
+ init do
+ native = new NativeMongoCollection(
+ database.client.native,
+ database.name.to_cstring,
+ name.to_cstring)
+ end
+
+ # Inserts a new document in the collection.
+ #
+ # If no _id element is found in document, then a new one be generated locally
+ # and added to the document.
+ #
+ # Returns `false` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var doc = new JsonObject
+ # doc["foo"] = 10
+ # doc["bar"] = "bar"
+ # doc["baz"] = new JsonArray
+ # assert col.insert(doc)
+ # ~~~
+ fun insert(doc: JsonObject): Bool do
+ assert is_alive
+ return native.insert(doc.to_bson.native)
+ end
+
+ # Inserts multiple documents in the collection.
+ #
+ # See `insert`.
+ fun insert_all(docs: Collection[JsonObject]): Bool do
+ assert is_alive
+ var res = true
+ for doc in docs do res = insert(doc) and res
+ return res
+ end
+
+ # Saves a new document in the collection.
+ #
+ # If the document has an `_id` field it will be updated.
+ # Otherwise it will be inserted.
+ #
+ # Returns `false` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var doc = new JsonObject
+ # doc["foo"] = 10
+ # doc["bar"] = "bar"
+ # doc["baz"] = new JsonArray
+ # assert col.save(doc) # will be inserted
+ # ~~~
+ fun save(doc: JsonObject): Bool do
+ assert is_alive
+ return native.save(doc.to_bson.native)
+ end
+
+ # Removes the first document that matches `selector`.
+ #
+ # Returns `false` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var sel = new JsonObject
+ # sel["foo"] = 10
+ # assert col.remove(sel)
+ # ~~~
+ fun remove(selector: JsonObject): Bool do
+ assert is_alive
+ return native.remove(selector.to_bson.native)
+ end
+
+ # Removes all the document that match `selector`.
+ #
+ # See `remove`.
+ fun remove_all(selector: JsonObject): Bool do
+ assert is_alive
+ return native.remove_all(selector.to_bson.native)
+ end
+
+ # Updates a document already existing in the collection.
+ #
+ # No upsert is done, see `save` instead.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var sel = new JsonObject
+ # sel["foo"] = 10
+ # var upd = new JsonObject
+ # upd["bar"] = "BAR"
+ # assert col.update(sel, upd)
+ # ~~~
+ fun update(selector: JsonObject, update: JsonObject): Bool do
+ assert is_alive
+ return native.update(
+ selector.to_bson.native,
+ update.to_bson.native)
+ end
+
+ # Updates all documents matching the `selector`.
+ #
+ # See `update`.
+ fun update_all(selector: JsonObject, update: JsonObject): Bool do
+ return native.update_all(
+ selector.to_bson.native,
+ update.to_bson.native)
+ end
+
+ # Counts the document matching `query`.
+ #
+ # Returns `-1` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var query = new JsonObject
+ # query["foo"] = 10
+ # assert col.count(query) > 0
+ # ~~~
+ fun count(query: JsonObject): Int do
+ assert is_alive
+ return native.count(query.to_bson.native)
+ end
+
+ # Finds the first document that matches `query`.
+ #
+ # Returns `null` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var query = new JsonObject
+ # query["foo"] = 10
+ # var doc = col.find(query)
+ # print doc or else "nullllllllllllllllll"
+ # print doc.to_json
+ # assert doc["foo"] == 10
+ # ~~~
+ fun find(query: JsonObject): nullable JsonObject do
+ assert is_alive
+ var c = native.find(query.to_bson.native)
+ if c == null then return null
+ var cursor = new MongoCursor(c)
+ if cursor.is_ok then
+ cursor.next
+ return cursor.item
+ end
+ return null
+ end
+
+ # Finds all the documents matching the `query`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # var query = new JsonObject
+ # query["foo"] = 10
+ # assert col.find_all(query).length > 0
+ # ~~~
+ fun find_all(query: JsonObject): Array[JsonObject] do
+ assert is_alive
+ var res = new Array[JsonObject]
+ var c = native.find(query.to_bson.native)
+ if c == null then return res
+ var cursor = new MongoCursor(c)
+ for item in cursor do res.add item
+ return res
+ end
+
+ # Retrieves statistics about the collection.
+ #
+ # Returns `null` if an error occured. See `Sys::last_mongoc_error`.
+ #
+ # ~~~
+ # var client = new MongoClient("mongodb://localhost:27017/")
+ # var col = client.database("test").collection("test")
+ # assert col.stats["ns"] == "test.test"
+ # ~~~
+ fun stats: nullable JsonObject do
+ assert is_alive
+ var bson = native.stats
+ if bson == null then return null
+ return new JsonObject.from_bson(new BSON(bson))
+ end
+
+ # Drops `self`, returns false if an error occured.
+ fun drop: Bool do
+ assert is_alive
+ return native.drop
+ end
+
+ # Moves `self` to another `database`.
+ #
+ # The database will also be updated internally so it is safe to continue using
+ # this collection after the move.
+ # Additional operations will occur on moved collection.
+ fun move(database: MongoDb): Bool do
+ assert is_alive
+ self.database = database
+ return native.rename(database.name.to_cstring, name.to_cstring)
+ end
+
+ # Renames `self`.
+ #
+ # The name of the collection will also be updated internally so it is safe
+ # to continue using this collection after the rename.
+ # Additional operations will occur on renamed collection.
+ fun rename(name: String): Bool do
+ assert is_alive
+ self.name = name
+ return native.rename(database.name.to_cstring, name.to_cstring)
+ end
+
+ redef fun finalize do
+ if is_alive then
+ native.destroy
+ is_alive = false
+ end
+ end
+end
+
+# A MongoDB query cursor.
+#
+# It wraps up the wire protocol negotation required to initiate a query and
+# retreive an unknown number of documents.
+class MongoCursor
+ super Finalizable
+ super Iterator[JsonObject]
+
+ private var native: NativeMongoCursor
+
+ # Is the native instance valid?
+ #
+ # This is set to false if the `native` is destroyed.
+ private var is_alive = true
+
+ init do next
+
+ redef fun is_ok do
+ assert is_alive
+ return native.more
+ end
+
+ redef fun next do
+ assert is_alive
+ native.next
+ end
+
+ redef fun item do
+ assert is_alive
+ return new JsonObject.from_bson(new BSON(native.current))
+ end
+
+ redef fun finalize do
+ if is_alive then
+ native.destroy
+ is_alive = false
+ end
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Native wrapper for the MongoDB C Driver
+#
+# See [mongoc](http://api.mongodb.org/c/1.1.4/index.html).
+module native_mongodb is pkgconfig "libmongoc-1.0"
+
+import c
+
+in "C header" `{
+ #include <mongoc.h>
+`}
+
+# Wrapper for `bson_t`.
+#
+# All data manipulated by `mongoc` are BSON formated.
+#
+# The `bson_t` structure represents a BSON document.
+# This structure manages the underlying BSON encoded buffer.
+# For mutable documents, it can append new data to the document.
+#
+# See [`bson_t`](http://api.mongodb.org/libbson/current/bson_t.html).
+extern class NativeBSON `{ bson_t * `}
+
+ # Wrapper for `bson_new()`.
+ #
+ # The `bson_new()` function shall create a new `bson_t` structure on the heap.
+ # It should be freed with `bson_destroy()` when it is no longer in use.
+ new `{ return bson_new(); `}
+
+ # Wrapper for `bson_new_from_json()`.
+ #
+ # The `bson_new_from_json()` function allocates and initialize a new `bson_t`
+ # by parsing the JSON found in `data`.
+ # Only a single JSON object may exist in data or an error will be set and
+ # `NULL` returned.
+ new from_json_string(data: NativeString) import set_mongoc_error `{
+ bson_error_t error;
+ bson_t *bson;
+ bson = bson_new_from_json(data, -1, &error);
+ if(!bson) {
+ NativeBSON_set_mongoc_error(recv, &error);
+ return NULL;
+ }
+ return bson;
+ `}
+
+ # Wrapper for `bson_as_json()`.
+ #
+ # The `bson_as_json()` function shall encode bson as a JSON encoded UTF-8 string.
+ # The caller is responsible for freeing the resulting UTF-8 encoded string
+ # by calling `bson_free()` with the result.
+ fun to_native_string: NativeString `{ return bson_as_json(recv, NULL); `}
+
+ # Wrapper for `bson_destroy()`.
+ #
+ # The `bson_destroy()` function shall free an allocated `bson_t` structure.
+ # This function should always be called when you are done with a `bson_t`
+ # unless otherwise specified.
+ #
+ # This instance should not be used beyond this point!
+ fun destroy `{ bson_destroy(recv); `}
+
+ # Utility method to set `Sys.last_mongoc_error`.
+ fun set_mongoc_error(err: BSONError) do sys.last_mongoc_error = err
+end
+
+# Wrapper for `bson_error_t`.
+#
+# The `bson_error_t` structure is used to encapsulate information about an error.
+#
+# See [`bson_error_t`](http://api.mongodb.org/libbson/current/bson_error_t.html).
+extern class BSONError `{ bson_error_t * `}
+
+ # Wrapper for `error.domain`.
+ #
+ # The `error.domain` field contains the logical domain within a library that
+ # created the error.
+ fun domain: Int `{ return recv->domain; `}
+
+ # Wrapper for `error.code`.
+ #
+ # The `error.code` field contains the domain specific error code.
+ fun code: Int `{ return recv->code; `}
+
+ # Wrapper for `error.message`.
+ #
+ # The `error.message` field contains a human printable error message.
+ fun message: NativeString `{ return recv->message; `}
+end
+
+redef class Sys
+ # Last error raised by `monogdb::MongoClient`.
+ #
+ # See `MongoClient::last_error`.
+ var last_mongoc_error: nullable BSONError = null
+end
+
+# Wrapper for `char**`.
+#
+# Used to handle array of NativeString returned by MongoDB.
+redef class NativeCStringArray
+ # Frees `self`.
+ #
+ # This instance should not be used beyond this point!
+ fun destroy `{ free(recv); `}
+end
+
+# Wrapper for `mongoc_client_t`.
+#
+# `mongoc_client_t` is an opaque type that provides access to a MongoDB node,
+# replica-set, or sharded-cluster.
+# It maintains management of underlying sockets and routing to individual nodes.
+#
+# See [`mongoc_client_t`](http://api.mongodb.org/c/current/mongoc_client_t.html).
+extern class NativeMongoClient `{ mongoc_client_t * `}
+
+ # Wrapper for `mongoc_client_new()`.
+ #
+ # Creates a new `mongoc_client_t` using the `uri` string provided.
+ new(uri: NativeString) `{
+ mongoc_init();
+ return mongoc_client_new(uri);
+ `}
+
+ # Wrapper for `mongoc_client_get_server_status()`.
+ #
+ # Queries the server for the current server status.
+ # Returns `null` if an error occured.
+ fun server_status: nullable NativeBSON import set_mongoc_error, NativeBSON.as nullable `{
+ bson_error_t error;
+ bson_t *reply = bson_new();
+ if(!mongoc_client_get_server_status(recv, NULL, reply, &error)){
+ NativeMongoClient_set_mongoc_error(recv, &error);
+ return null_NativeBSON();
+ }
+ return NativeBSON_as_nullable(reply);
+ `}
+
+ # Wrapper for `mongoc_client_get_database_names()`.
+ #
+ # This function queries the MongoDB server for a list of known databases.
+ # Returns `null` if an error occured.
+ fun database_names: nullable NativeCStringArray
+ import set_mongoc_error, NativeCStringArray, NativeCStringArray.as nullable `{
+ bson_error_t error;
+ char **strv;
+ if(strv = mongoc_client_get_database_names(recv, &error)) {
+ return NativeCStringArray_as_nullable(strv);
+ }
+ NativeMongoClient_set_mongoc_error(recv, &error);
+ return null_NativeCStringArray();
+ `}
+
+ # Wrapper for `mongoc_client_destroy()`.
+ #
+ # This instance should not be used beyond this point!
+ fun destroy `{
+ mongoc_client_destroy(recv);
+ mongoc_cleanup();
+ `}
+
+ # Utility method to set `Sys.last_mongoc_error`.
+ fun set_mongoc_error(err: BSONError) do sys.last_mongoc_error = err
+end
+
+# Wrapper for `mongoc_database_t`.
+#
+# `mongoc_database_t` provides access to a MongoDB database.
+# This handle is useful for actions a particular database object.
+# It is not a container for `mongoc_collection_t` structures.
+#
+# See [`mongoc_database_t`](http://api.mongodb.org/c/current/mongoc_database_t.html).
+extern class NativeMongoDb `{ mongoc_database_t * `}
+
+ # Wrapper for `mongoc_client_get_database()`.
+ #
+ # Get a newly allocated `mongoc_database_t` for the database named name.
+ #
+ # Database are automatically created on the MongoDB server upon insertion of
+ # the first document into a collection.
+ # There is no need to create a database manually.
+ new(client: NativeMongoClient, db_name: NativeString) `{
+ return mongoc_client_get_database(client, db_name);
+ `}
+
+ # Wrapper for `mongoc_database_get_collection_names()`.
+ #
+ # Fetches a `NULL` terminated array of `NULL-byte` terminated `char*` strings
+ # containing the names of all of the collections in database.
+ fun collection_names: nullable NativeCStringArray
+ import set_mongoc_error, NativeCStringArray, NativeCStringArray.as nullable `{
+ bson_error_t error;
+ char **strv;
+ if(strv = mongoc_database_get_collection_names(recv, &error)) {
+ return NativeCStringArray_as_nullable(strv);
+ }
+ NativeMongoDb_set_mongoc_error(recv, &error);
+ return null_NativeCStringArray();
+ `}
+
+ # Wrapper for `mongoc_database_get_collection()`.
+ #
+ # Allocates a new `mongoc_collection_t` structure for the collection named
+ # `name` in database.
+ fun collection(name: NativeString): NativeMongoCollection `{
+ return mongoc_database_get_collection(recv, name);
+ `}
+
+ # Wrapper for `mongoc_database_has_collection()`.
+ #
+ # This function checks to see if a collection exists on the MongoDB server
+ # within database.
+ fun has_collection(name: NativeString): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_database_has_collection(recv, name, &error)) {
+ NativeMongoDb_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_database_drop()`.
+ #
+ # This function attempts to drop a database on the MongoDB server.
+ fun drop: Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_database_drop(recv, &error)) {
+ NativeMongoDb_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_database_destroy()`.
+ #
+ # This instance should not be used beyond this point!
+ fun destroy `{ mongoc_database_destroy(recv); `}
+
+ # Utility method to set `Sys.last_mongoc_error`.
+ fun set_mongoc_error(err: BSONError) do sys.last_mongoc_error = err
+end
+
+# Wrapper for `mongoc_collection_t`.
+#
+# `mongoc_collection_t` provides access to a MongoDB collection.
+# This handle is useful for actions for most CRUD operations,
+# I.e. insert, update, delete, find, etc.
+#
+# It is an error to call `mongoc_collection_destroy()` on a collection that has
+# operations pending.
+# It is required that you release `mongoc_cursor_t` structures before calling
+# `mongoc_collection_destroy()`.
+#
+# See [`mongoc_collection_t`](http://api.mongodb.org/c/current/mongoc_collection_t.html).
+extern class NativeMongoCollection `{ mongoc_collection_t * `}
+
+ # Wrapper for `mongoc_client_get_collection()`.
+ #
+ # Get a newly allocated `mongoc_collection_t` for the collection named
+ # `collection` in the database named `db`.
+ #
+ # Collections are automatically created on the MongoDB server upon insertion
+ # of the first document.
+ # There is no need to create a collection manually.
+ new(client: NativeMongoClient, db, collection: NativeString) `{
+ return mongoc_client_get_collection(client, db, collection);
+ `}
+
+ # Wrapper for `mongoc_collection_insert()`.
+ #
+ # This function shall insert `document` into the collection.
+ # If no `_id` element is found in document, then a `bson_oid_t` will be
+ # generated locally and added to the document.
+ #
+ # You can retrieve a generated `_id` from `mongoc_collection_get_last_error()`.
+ fun insert(doc: NativeBSON): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_insert(recv, MONGOC_INSERT_NONE, doc, NULL, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_save()`.
+ #
+ # This function shall save a document into the collection.
+ # If the document has an `_id` field it will be updated.
+ # Otherwise it will be inserted.
+ fun save(document: NativeBSON): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_save(recv, document, NULL, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_remove(MONGOC_REMOVE_SINGLE_REMOVE)`.
+ #
+ # This function shall remove the first document in the collection that matches
+ # `selector`.
+ # The bson selector is not validated, simply passed along as appropriate to the server.
+ fun remove(selector: NativeBSON): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_remove(recv, MONGOC_REMOVE_SINGLE_REMOVE, selector, NULL, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_remove(MONGOC_REMOVE_NONE)`.
+ #
+ # This function shall remove documents in the collection that match `selector`.
+ fun remove_all(selector: NativeBSON): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_remove(recv, MONGOC_REMOVE_NONE, selector, NULL, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_update(MONGOC_UPDATE_NONE)`.
+ #
+ # This function shall update the first document in the collection that
+ # matches `selector`.
+ fun update(selector, update: NativeBSON): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_update(recv, MONGOC_UPDATE_NONE, selector, update, NULL, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_update(MONGOC_UPDATE_MULTI_UPDATE)`.
+ #
+ # This function shall update documents in the collection that match `selector`.
+ fun update_all(selector, update: NativeBSON): Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_update(recv, MONGOC_UPDATE_MULTI_UPDATE, selector, update, NULL, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_count()`.
+ #
+ # This function shall execute a count `query` on the underlying collection.
+ fun count(query: NativeBSON): Int import set_mongoc_error `{
+ bson_error_t error;
+ int64_t count = mongoc_collection_count(recv, MONGOC_QUERY_NONE, query, 0, 0, NULL, &error);
+ if(count < 0) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return -1;
+ }
+ return count;
+ `}
+
+ # Wrapper for `mongoc_collection_find()`.
+ #
+ # This function shall execute a `query` on the underlying collection.
+ #
+ # If no options are necessary, `query` can simply contain a query such as `{a:1}`.
+ #
+ # If you would like to specify options such as a sort order,
+ # the query must be placed inside of `{"$query": {}}`.
+ fun find(query: NativeBSON): nullable NativeMongoCursor import
+ NativeMongoCursor.as nullable, set_mongoc_error `{
+ bson_error_t error;
+ mongoc_cursor_t *cursor;
+ cursor = mongoc_collection_find(recv, MONGOC_QUERY_NONE, 0, 0, 0, query, NULL, NULL);
+
+ if (mongoc_cursor_error(cursor, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return null_NativeMongoCursor();
+ }
+
+ return NativeMongoCursor_as_nullable(cursor);
+ `}
+
+ # Wrapper for `mongoc_collection_stats()`.
+ #
+ # This function is a helper to retrieve statistics about the collection.
+ fun stats: nullable NativeBSON import set_mongoc_error, NativeBSON.as nullable `{
+ bson_error_t error;
+ bson_t *reply = bson_new();
+ if(!mongoc_collection_stats(recv, NULL, reply, &error)){
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return null_NativeBSON();
+ }
+ return NativeBSON_as_nullable(reply);
+ `}
+
+ # Wrapper for `mongoc_collection_drop()`.
+ #
+ # This function requests that the `collection` be dropped,
+ # including all indexes associated with the collection.
+ fun drop: Bool import set_mongoc_error `{
+ bson_error_t error;
+ if(!mongoc_collection_drop(recv, &error)) {
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_rename()`.
+ #
+ # This function is a helper to rename an existing collection on a MongoDB server.
+ # The name of the collection will also be updated internally so it is safe
+ # to continue using this collection after the rename.
+ # Additional operations will occur on renamed collection.
+ fun rename(new_database, new_name: NativeString): Bool `{
+ bson_error_t error;
+ if(!mongoc_collection_rename(recv, new_database, new_name, false, &error)){
+ NativeMongoCollection_set_mongoc_error(recv, &error);
+ return false;
+ }
+ return true;
+ `}
+
+ # Wrapper for `mongoc_collection_destroy()`.
+ #
+ # This instance should not be used beyond this point!
+ fun destroy `{ mongoc_collection_destroy(recv); `}
+
+ # Utility method to set `Sys.last_mongoc_error`.
+ fun set_mongoc_error(err: BSONError) do sys.last_mongoc_error = err
+end
+
+# Wrapper for `mongoc_cursor_t`.
+#
+# `mongoc_cursor_t` provides access to a MongoDB query cursor.
+# It wraps up the wire protocol negotation required to initiate a query and
+# retreive an unknown number of documents.
+#
+# Cursors are lazy, meaning that no network traffic occurs until the first call
+# to mongoc_cursor_next().
+#
+# At that point we can:
+# * Retreive more records with repeated calls to `mongoc_cursor_next()`.
+# * Test for more records with `mongoc_cursor_more()`.
+# * Retrieve the document under the cursor with `mongoc_cursor_current()`.
+#
+# See [`mongoc_cursor_t`](http://api.mongodb.org/c/current/mongoc_cursor_t.html).
+extern class NativeMongoCursor `{ mongoc_cursor_t* `}
+
+ # Wrapper for `mongoc_cursor_current()`.
+ #
+ # Fetches the cursors current document or NULL if there has been an error.
+ fun current: NativeBSON `{ return (bson_t*) mongoc_cursor_current(recv); `}
+
+ # Wrapper for `mongoc_cursor_next()`.
+ #
+ # This function shall iterate the underlying cursor, setting `current` to the next
+ # document.
+ #
+ # This function is a blocking function.
+ fun next: Bool `{
+ const bson_t *doc;
+ return mongoc_cursor_next(recv, &doc);
+ `}
+
+ # Wrapper for `mongoc_cursor_more()`.
+ #
+ # This function shall indicate if there is more data to be read from the cursor.
+ fun more: Bool `{ return mongoc_cursor_more(recv); `}
+
+ # Wrapper for `mongoc_cursor_destroy()`.
+ #
+ # This instance should not be used beyond this point!
+ fun destroy `{ mongoc_cursor_destroy(recv); `}
+end
for node in self do remove_node(node)
end
- redef fun remove(node: NeoNode) do
+ redef fun remove(node) do
for n in self do
if node == n then
remove_node(n)
end
end
- redef fun remove_all(node: NeoNode) do
+ redef fun remove_all(node) do
for n in self do
if node == n then remove_node(n)
end
locator.column_number += 1
end
- last_char = input.read_char
- if last_char < 0 then
+ var s = input.read_byte
+ if s == null then
+ last_char = -1
return
end
+ last_char = s
# XML 1.0 end-of-line handling
# Note: Regardless the XML version, any EOL defined by the
# recommandation MUST be reported as a single LINE FEED.
if was_cr and last_char == '\n'.ascii then
# EOL already reported. => Skip this byte.
- last_char = input.read_char
+ s = input.read_byte
+ if s == null then s = -1
+ last_char = s
end
was_cr = last_char == '\r'.ascii
if was_cr then
fun serialize_attribute(name: String, value: nullable Object)
do
if not try_to_serialize(value) then
- warn("argument {value.class_name}::{name} is not serializable.")
+ warn("argument {name} of type {value.class_name} is not serializable.")
end
end
# The subclass change the default behavior, which will accept references,
# to force to always serialize copies of `self`.
private fun serialize_to_or_delay(v: Serializer) do v.serialize_reference(self)
+
+ # Create an instance of this class from the `deserializer`
+ #
+ # This constructor is refined by subclasses to correctly build their instances.
+ init from_deserializer(deserializer: Deserializer) do end
+end
+
+redef interface Object
+ # Is `self` the same as `other` in a serialization context?
+ #
+ # Used to determine if an object has already been serialized.
+ fun is_same_serialized(other: nullable Object): Bool do return is_same_instance(other)
end
# Instances of this class are not delayed and instead serialized immediately
redef class Float super DirectSerializable end
redef class NativeString super DirectSerializable end
redef class String super DirectSerializable end
-redef class Array[E] super Serializable end
+redef class SimpleCollection[E] super Serializable end
+redef class Map[K, V] super Serializable end
socket.write(msg.to_s)
end
+ redef fun write_byte(value)
+ do
+ if closed then return
+ socket.write_byte value
+ end
+
fun write_ln(msg: Text)
do
if end_reached then return
return write(*recv, (char*)String_to_cstring(buffer), String_length(buffer));
`}
+ # Write `value` as a single byte
+ fun write_byte(value: Int): Int `{
+ return write(*recv, &value, 1);
+ `}
+
fun read: String import NativeString.to_s_with_length `{
static char c[1024];
int n = read(*recv, c, 1024);
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Services for byte streams and arrays
+module bytes
+
+import kernel
+import collection::array
+intrude import string
+
+# A buffer containing Byte-manipulation facilities
+#
+# Uses Copy-On-Write when persisted
+#
+# TODO: Change the bound to Byte when available in stdlib and bootstrap
+class Bytes
+ super AbstractArray[Int]
+
+ # A NativeString being a char*, it can be used as underlying representation here.
+ private var items: NativeString
+
+ # Number of bytes in the array
+ redef var length: Int
+
+ # Capacity of the array
+ private var capacity: Int
+
+ # Has this buffer been persisted (to_s'd)?
+ #
+ # Used for Copy-On-Write
+ private var persisted = false
+
+ # var b = new Bytes.empty
+ # assert b.to_s == ""
+ init empty do
+ var ns = new NativeString(0)
+ init(ns, 0, 0)
+ end
+
+ init with_capacity(cap: Int) do
+ var ns = new NativeString(cap)
+ init(ns, 0, cap)
+ end
+
+ redef fun is_empty do return length != 0
+
+ # var b = new Bytes.empty
+ # b.add 101
+ # assert b[0] == 101
+ redef fun [](i: Int): Int do
+ assert i >= 0
+ assert i < length
+ return items[i].ascii
+ end
+
+ # var b = new Bytes.with_capacity(1)
+ # b[0] = 101
+ # assert b.to_s == "e"
+ redef fun []=(i: Int, v: Int) do
+ if persisted then regen
+ assert i >= 0
+ assert i <= length
+ if i == length then add(v)
+ items[i] = v.ascii
+ end
+
+ # var b = new Bytes.empty
+ # b.add 101
+ # assert b.to_s == "e"
+ redef fun add(c: Int) do
+ if persisted then regen
+ if length >= capacity then
+ enlarge(length)
+ end
+ items[length] = c.ascii
+ length += 1
+ end
+
+ # var b = new Bytes.empty
+ # b.append([104, 101, 108, 108, 111])
+ # assert b.to_s == "hello"
+ redef fun append(arr: Collection[Int]) do
+ if arr isa Bytes then
+ append_ns(arr.items, arr.length)
+ else
+ for i in arr do add i
+ end
+ end
+
+ redef fun clear do length = 0
+
+ # Regenerates the buffer, necessary when it was persisted
+ private fun regen do
+ var nns = new NativeString(capacity)
+ items.copy_to(nns, length, 0, 0)
+ persisted = false
+ end
+
+ # Appends the `ln` first bytes of `ns` to self
+ fun append_ns(ns: NativeString, ln: Int) do
+ if persisted then regen
+ var nlen = length + ln
+ if nlen > capacity then enlarge(nlen)
+ ns.copy_to(items, ln, 0, length)
+ length += ln
+ end
+
+ # Appends `ln` bytes from `ns` starting at index `from` to self
+ fun append_ns_from(ns: NativeString, ln, from: Int) do
+ if persisted then regen
+ var nlen = length + ln
+ if nlen > capacity then enlarge(nlen)
+ ns.copy_to(items, ln, from, length)
+ length += ln
+ end
+
+ redef fun enlarge(sz) do
+ if capacity >= sz then return
+ persisted = false
+ while capacity < sz do capacity = capacity * 2 + 2
+ var ns = new NativeString(capacity)
+ items.copy_to(ns, length, 0, 0)
+ items = ns
+ end
+
+ redef fun to_s do
+ persisted = true
+ return new FlatString.with_infos(items, length, 0, length -1)
+ end
+
+ redef fun iterator do return new BytesIterator.with_buffer(self)
+end
+
+private class BytesIterator
+ super IndexedIterator[Int]
+
+ var tgt: NativeString
+
+ redef var index: Int
+
+ var max: Int
+
+ init with_buffer(b: Bytes) do init(b.items, 0, b.length - 1)
+
+ redef fun is_ok do return index < max
+
+ redef fun next do index += 1
+
+ redef fun item do return tgt[index].ascii
+end
+
+redef class NativeString
+ fun to_bytes: Bytes do
+ var len = cstring_length
+ return new Bytes(self, len, len)
+ end
+end
# assert [1,2,3].has(9) == false
# assert [1..5[.has(2) == true
# assert [1..5[.has(9) == false
- fun has(item: E): Bool
+ fun has(item: nullable Object): Bool
do
for i in self do if i == item then return true
return false
# assert [3..3[.has_only(1) == true # empty collection
#
# ENSURE `is_empty implies result == true`
- fun has_only(item: E): Bool
+ fun has_only(item: nullable Object): Bool
do
for i in self do if i != item then return false
return true
# Comparisons are done with ==
#
# assert [10,20,10].count(10) == 2
- fun count(item: E): Int
+ fun count(item: nullable Object): Int
do
var nb = 0
for i in self do if i == item then nb += 1
#
# Note that the default implementation is general and correct for any lawful Collections.
# It is memory-efficient but relies on `has` so may be CPU-inefficient for some kind of collections.
- fun has_all(other: Collection[E]): Bool
+ fun has_all(other: Collection[nullable Object]): Bool
do
for x in other do if not has(x) then return false
return true
#
# Note that the default implementation is general and correct for any lawful Collections.
# It is memory-efficient but relies on `count` so may be CPU-inefficient for some kind of collections.
- fun has_exactly(other: Collection[E]): Bool
+ fun has_exactly(other: Collection[nullable Object]): Bool
do
if length != other.length then return false
for e in self do if self.count(e) != other.count(e) then return false
# ENSURE `is_empty`
fun clear is abstract
- # Remove an occucence of `item`
+ # Remove an occurrence of `item`
#
# var a = [1,2,3,1,2,3]
# a.remove 2
# assert a == [1,3,1,2,3]
- fun remove(item: E) is abstract
+ fun remove(item: nullable Object) is abstract
- # Remove all occurences of `item`
+ # Remove all occurrences of `item`
#
# var a = [1,2,3,1,2,3]
# a.remove_all 2
# assert a == [1,3,1,3]
- fun remove_all(item: E) do while has(item) do remove(item)
+ fun remove_all(item: nullable Object) do while has(item) do remove(item)
end
# Items can be added to these collections.
# Equality is defined on set and means that each set contains the same elements
redef fun ==(other)
do
- if not other isa Set[Object] then return false
+ if not other isa Set[nullable Object] then return false
if other.length != length then return false
return has_all(other)
end
#
# If the key is not in the map, `provide_default_value` is called (that aborts by default)
# See `get_or_null` and `get_or_default` for safe variations.
- fun [](key: K): V is abstract
+ fun [](key: nullable Object): V is abstract
# Get the item at `key` or null if `key` is not in the map.
#
# assert x.get_or_null("five") == null
#
# Note: use `has_key` and `[]` if you need the distinction between a key associated with null, and no key.
- fun get_or_null(key: K): nullable V
+ fun get_or_null(key: nullable Object): nullable V
do
if has_key(key) then return self[key]
return null
# assert x.get_or_default("four", 40) == 4
# assert x.get_or_default("five", 50) == 50
#
- fun get_or_default(key: K, default: V): V
+ fun get_or_default(key: nullable Object, default: V): V
do
if has_key(key) then return self[key]
return default
# assert x.has_key("five") == false
#
# By default it is a synonymous to `keys.has` but could be redefined with a direct implementation.
- fun has_key(key: K): Bool do return self.keys.has(key)
+ fun has_key(key: nullable Object): Bool do return self.keys.has(key)
# Get a new iterator on the map.
fun iterator: MapIterator[K, V] is abstract
#
# Note: the value is returned *as is*, implementations may want to store the value in the map before returning it
# @toimplement
- protected fun provide_default_value(key: K): V do abort
+ protected fun provide_default_value(key: nullable Object): V do abort
# Does `self` and `other` have the same keys associated with the same values?
#
# var a = [10,20,30,10,20,30]
# assert a.index_of(20) == 1
# assert a.index_of(40) == -1
- fun index_of(item: E): Int do return index_of_from(item, 0)
+ fun index_of(item: nullable Object): Int do return index_of_from(item, 0)
# The index of the last occurrence of `item`.
# Return -1 if `item` is not found.
# var a = [10,20,30,10,20,30]
# assert a.last_index_of(20) == 4
# assert a.last_index_of(40) == -1
- fun last_index_of(item: E): Int do return last_index_of_from(item, length-1)
+ fun last_index_of(item: nullable Object): Int do return last_index_of_from(item, length-1)
# The index of the first occurrence of `item`, starting from pos.
# Return -1 if `item` is not found.
# assert a.index_of_from(20, 3) == 4
# assert a.index_of_from(20, 4) == 4
# assert a.index_of_from(20, 5) == -1
- fun index_of_from(item: E, pos: Int): Int
+ fun index_of_from(item: nullable Object, pos: Int): Int
do
var p = 0
var i = iterator
# assert a.last_index_of_from(20, 2) == 1
# assert a.last_index_of_from(20, 1) == 1
# assert a.last_index_of_from(20, 0) == -1
- fun last_index_of_from(item: E, pos: Int): Int
+ fun last_index_of_from(item: nullable Object, pos: Int): Int
do
var res = -1
var p = 0
# Return the couple of the corresponding key
# Return null if the key is no associated element
- protected fun couple_at(key: K): nullable Couple[K, V] is abstract
+ protected fun couple_at(key: nullable Object): nullable Couple[K, V] is abstract
# Return a new iteralot on all couples
# Used to provide `iterator` and others
redef fun index_of(item) do return index_of_from(item, 0)
- redef fun last_index_of(item: E): Int do return last_index_of_from(item, length-1)
+ redef fun last_index_of(item) do return last_index_of_from(item, length-1)
- redef fun index_of_from(item: E, pos: Int): Int
+ redef fun index_of_from(item, pos)
do
var i = pos
var len = length
return -1
end
- redef fun last_index_of_from(item: E, pos: Int): Int
+ redef fun last_index_of_from(item, pos)
do
var i = pos
while i >= 0 do
var last_item: nullable N = null # Last added item (same)
# The last key accessed (used for cache)
- var last_accessed_key: nullable K = null
+ var last_accessed_key: nullable Object = null
# The last node accessed (used for cache)
var last_accessed_node: nullable N = null
# Return the index of the key k
- fun index_at(k: K): Int
+ fun index_at(k: nullable Object): Int
do
if k == null then return 0
end
# Return the node associated with the key
- fun node_at(k: K): nullable N
+ fun node_at(k: nullable Object): nullable N
do
# cache: `is` is used instead of `==` because it is a faster filter (even if not exact)
if k.is_same_instance(_last_accessed_key) then return _last_accessed_node
end
# Return the node associated with the key (but with the index already known)
- fun node_at_idx(i: Int, k: K): nullable N
+ fun node_at_idx(i: Int, k: nullable Object): nullable N
do
var c = _array[i]
while c != null do
end
# Remove the node assosiated with the key
- fun remove_node(k: K)
+ fun remove_node(k: nullable Object)
do
var i = index_at(k)
var node = node_at_idx(i, k)
# assert [1..10].has(5)
# assert [1..10].has(10)
# assert not [1..10[.has(10)
- redef fun has(item) do return item >= first and item <= last
+ redef fun has(item) do return item isa Comparable and item >= first and item <= last
# assert [1..1].has_only(1)
# assert not [1..10].has_only(1)
redef fun iterator do return new IteratorRange[E](self)
+ # Gets an iterator starting at the end and going backwards
+ #
+ # var reviter = [1..4].reverse_iterator
+ # assert reviter.to_a == [4,3,2,1]
+ #
+ # reviter = [1..4[.reverse_iterator
+ # assert reviter.to_a == [3,2,1]
+ fun reverse_iterator: Iterator[E] do return new ReverseIteratorRange[E](self)
+
# assert [1..10].length == 10
# assert [1..10[.length == 9
# assert [1..1].length == 1
end
end
+# Iterator on ranges.
private class IteratorRange[E: Discrete]
- # Iterator on ranges.
super Iterator[E]
var range: Range[E]
redef var item is noinit
redef fun is_ok do return _item < _range.after
-
+
redef fun next do _item = _item.successor(1)
-
+
init
do
_item = _range.first
end
end
+# Reverse iterator on ranges.
+private class ReverseIteratorRange[E: Discrete]
+ super Iterator[E]
+ var range: Range[E]
+ redef var item is noinit
+
+ redef fun is_ok do return _item >= _range.first
+
+ redef fun next do _item = _item.predecessor(1)
+
+ init
+ do
+ _item = _range.last
+ end
+end
+
redef class Int
# Returns the range from 0 to `self-1`, is used to do:
#
# s.add(1)
# assert s.has(1)
# assert not s.has(2)
- redef fun has(e: E): Bool
+ redef fun has(e)
do
return nodes.has_key(e)
end
private fun get_environ: NativeString is extern "string_NativeString_NativeString_get_environ_0"
private fun setenv( v : NativeString ) is extern "string_NativeString_NativeString_setenv_1"
end
+
+redef class Sys
+ redef init
+ do
+ var x = "NIT_SRAND".environ
+ if x != "" then srand_from(x.to_i)
+ end
+end
redef fun read_char do return stream_in.read_char
+ redef fun read_byte do return stream_in.read_byte
+
redef fun eof do return stream_in.eof
redef fun pipeflags do return 2
end
end
+ redef fun write_byte(value)
+ do
+ if last_error != null then return
+ if not _is_writable then
+ last_error = new IOError("Cannot write to non-writable stream")
+ return
+ end
+ if _file.address_is_null then
+ last_error = new IOError("Writing on a null stream")
+ _is_writable = false
+ return
+ end
+
+ var err = _file.write_byte(value)
+ if err != 1 then
+ # Big problem
+ last_error = new IOError("Problem writing a byte: {err}")
+ end
+ end
+
redef fun close
do
super
private extern class NativeFile `{ FILE* `}
fun io_read(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_read_2"
fun io_write(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_write_2"
+ fun write_byte(value: Int): Int `{
+ unsigned char b = (unsigned char)value;
+ return fwrite(&b, 1, 1, recv);
+ `}
fun io_close: Int is extern "file_NativeFile_NativeFile_io_close_0"
fun file_stat: NativeFileStat is extern "file_NativeFile_NativeFile_file_stat_0"
fun fileno: Int `{ return fileno(recv); `}
sys.stdout.write("\n")
end
+# Print `object` on the error output (`stderr` or a log system)
+fun print_error(object: Object)
+do
+ sys.stderr.write object.to_s
+ sys.stderr.write "\n"
+end
+
# Read a character from the standard input (`stdin`).
fun getc: Char
do
- return sys.stdin.read_char.ascii
+ var c = sys.stdin.read_char
+ if c == null then return '\1'
+ return c
end
# Read a line from the standard input (`stdin`).
# Have `self` and `other` the same value?
#
- # The exact meaning of "same value" is let to the subclasses.
+ # The exact meaning of "same value" is left to the subclasses.
# Implicitly, the default implementation, is `is_same_instance`
fun ==(other: nullable Object): Bool do return self.is_same_instance(other)
# Display class name on stdout (debug only).
# This method MUST not be used by programs, it is here for debugging
# only and can be removed without any notice
- fun output_class_name is intern
+ fun output_class_name is intern
# The hash code of the object.
# Assuming that a == b -> a.hash == b.hash
# Something that can be cloned
#
# This interface introduces the `clone` method used to duplicate an instance
-# Its specific semantic is let to the subclasses.
+# Its specific semantic is left to the subclasses.
interface Cloneable
# Duplicate `self`
#
- # The specific semantic of this method is let to the subclasses;
+ # The specific semantic of this method is left to the subclasses;
# Especially, if (and how) attributes are cloned (depth vs. shallow).
#
# As a rule of thumb, the principle of least astonishment should
redef class Collection[ E ]
# Return a random element form the collection
# There must be at least one element in the collection
+ #
+ # ~~~
+ # var x = [1,2,3].rand
+ # assert x == 1 or x == 2 or x == 3
+ # ~~~
fun rand: E
do
if is_empty then abort
end
abort
end
+
+ # Return a new array made of elements in a random order.
+ #
+ # ~~~
+ # var a = [1,2,1].to_shuffle
+ # assert a == [1,1,2] or a == [1,2,1] or a == [2,1,1]
+ # ~~~
+ fun to_shuffle: Array[E]
+ do
+ var res = self.to_a
+ res.shuffle
+ return res
+ end
end
redef class SequenceRead[E]
end
end
+redef class AbstractArray[E]
+ # Reorder randomly the elements in self.
+ #
+ # ~~~
+ # var a = new Array[Int]
+ #
+ # a.shuffle
+ # assert a.is_empty
+ #
+ # a.add 1
+ # a.shuffle
+ # assert a == [1]
+ #
+ # a.add 2
+ # a.shuffle
+ # assert a == [1,2] or a == [2,1]
+ # ~~~
+ #
+ # ENSURE self.shuffle.has_exactly(old(self))
+ fun shuffle
+ do
+ for i in [0..length[ do
+ var j = i + (length-i).rand
+ var tmp = self[i]
+ self[i] = self[j]
+ self[j] = tmp
+ end
+ end
+end
+
redef class Sys
init
do
return new Concat(left, r + s)
end
end
+
+ redef fun copy_to_native(dest, n, src_offset, dest_offset) do
+ var remlen = n
+ var subs = new RopeSubstrings.from(self, src_offset)
+ var st = src_offset - subs.pos
+ var off = dest_offset
+ while n > 0 do
+ var it = subs.item
+ if n > it.length then
+ var cplen = it.length - st
+ it.items.copy_to(dest, cplen, st, off)
+ off += cplen
+ n -= cplen
+ else
+ it.items.copy_to(dest, n, st, off)
+ n = 0
+ end
+ subs.next
+ st = 0
+ end
+ end
end
# Mutable `Rope`, optimized for concatenation operations
# mutable native string (`ns`)
private var buf_size: Int is noinit
- redef fun substrings: Iterator[String] do return new RopeBufSubstringIterator(self)
+ redef fun substrings do return new RopeBufSubstringIterator(self)
# Builds an empty `RopeBuffer`
init do
end
private class RopeBufSubstringIterator
- super Iterator[String]
+ super Iterator[FlatText]
# Iterator on the substrings of the building string
- var iter: Iterator[String]
+ var iter: Iterator[FlatText]
# Makes a String out of the buffered part of the Ropebuffer
- var nsstr: String
+ var nsstr: FlatString
# Did we attain the buffered part ?
var nsstr_done = false
# Substrings of a Rope (i.e. Postfix iterator on leaves)
private class RopeSubstrings
- super IndexedIterator[String]
+ super IndexedIterator[FlatString]
# Visit Stack
var iter: RopeIterPiece is noinit
var max: Int is noinit
# Current leaf
- var str: String is noinit
+ var str: FlatString is noinit
init(root: RopeString) is old_style_init do
var r = new RopeIterPiece(root, true, false, null)
rnod = rnod.left
r = new RopeIterPiece(rnod, true, false, r)
else
- str = rnod
+ str = rnod.as(FlatString)
r.rdone = true
iter = r
break
r = new RopeIterPiece(rnod, true, false, r)
end
else
- str = rnod
+ str = rnod.as(FlatString)
r.rdone = true
iter = r
self.pos = pos - off
if not rnod isa Concat then
it.ldone = true
it.rdone = true
- str = rnod
+ str = rnod.as(FlatString)
iter = it.as(not null)
break
end
import numeric
import error
import re
+import bytes
# A `Stream` that can be read from
abstract class Reader
super Stream
- # Read a character. Return its ASCII value, -1 on EOF or timeout
- fun read_char: Int is abstract
+ # Reads a character. Returns `null` on EOF or timeout
+ fun read_char: nullable Char is abstract
+
+ # Reads a byte. Returns `null` on EOF or timeout
+ fun read_byte: nullable Int is abstract
# Read at most i bytes
fun read(i: Int): String
var s = new FlatBuffer.with_capacity(i)
while i > 0 and not eof do
var c = read_char
- if c >= 0 then
- s.add(c.ascii)
+ if c != null then
+ s.add(c)
i -= 1
end
end
var s = new FlatBuffer
while not eof do
var c = read_char
- if c >= 0 then s.add(c.ascii)
+ if c != null then s.add(c)
end
return s.to_s
end
if last_error != null then return
loop
var x = read_char
- if x == -1 then
+ if x == null then
if eof then return
else
- var c = x.ascii
- s.chars.push(c)
- if c == '\n' then return
+ s.chars.push(x)
+ if x == '\n' then return
end
end
end
do
var buf = new FlatBuffer
var c = read_nonwhitespace
- if c > 0 then
- buf.add(c.ascii)
+ if c != null then
+ buf.add(c)
while not eof do
c = read_char
- if c < 0 then break
- var a = c.ascii
- if a.is_whitespace then break
- buf.add(a)
+ if c == null then break
+ if c.is_whitespace then break
+ buf.add(c)
end
end
var res = buf.to_s
# Skip whitespace characters (if any) then return the following non-whitespace character.
#
# Returns the code point of the character.
- # Return -1 on end of file or error.
+ # Returns `null` on end of file or error.
#
# In fact, this method works like `read_char` except it skips whitespace.
#
# ~~~
# var w = new StringReader(" \nab\tc")
- # assert w.read_nonwhitespace == 'a'.ascii
- # assert w.read_nonwhitespace == 'b'.ascii
- # assert w.read_nonwhitespace == 'c'.ascii
- # assert w.read_nonwhitespace == -1
+ # assert w.read_nonwhitespace == 'a'
+ # assert w.read_nonwhitespace == 'b'
+ # assert w.read_nonwhitespace == 'c'
+ # assert w.read_nonwhitespace == null
# ~~~
#
# `Char::is_whitespace` determines what is a whitespace.
- fun read_nonwhitespace: Int
+ fun read_nonwhitespace: nullable Char
do
- var c = -1
+ var c: nullable Char = null
while not eof do
c = read_char
- if c < 0 or not c.ascii.is_whitespace then break
+ if c == null or not c.is_whitespace then break
end
return c
end
# write a string
fun write(s: Text) is abstract
+ # Write a single byte
+ fun write_byte(value: Int) is abstract
+
# Can the stream be used to write
fun is_writable: Bool is abstract
end
super Reader
redef fun read_char
do
- if last_error != null then return -1
+ if last_error != null then return null
+ if eof then
+ last_error = new IOError("Stream has reached eof")
+ return null
+ end
+ var c = _buffer[_buffer_pos]
+ _buffer_pos += 1
+ return c
+ end
+
+ redef fun read_byte
+ do
+ if last_error != null then return null
if eof then
last_error = new IOError("Stream has reached eof")
- return -1
+ return null
end
- var c = _buffer.chars[_buffer_pos]
+ var c = _buffer[_buffer_pos].ascii
_buffer_pos += 1
- return c.ascii
+ return c
+ end
+
+ # Peeks up to `n` bytes in the buffer, returns an empty string on EOF
+ #
+ # The operation does not consume the buffer
+ #
+ # ~~~nitish
+ # var x = new FileReader("File.txt")
+ # assert x.peek(5) == x.read(5)
+ # ~~~
+ fun peek(i: Int): String do
+ if eof then return ""
+ var b = new FlatBuffer.with_capacity(i)
+ while i > 0 and not eof do
+ b.add _buffer[_buffer_pos]
+ _buffer_pos += 1
+ i -= 1
+ end
+ var nbuflen = b.length + (_buffer.length - _buffer_pos)
+ var nbuf = new FlatBuffer.with_capacity(nbuflen)
+ nbuf.append(b)
+ while _buffer_pos < _buffer.length do
+ nbuf.add(_buffer[_buffer_pos])
+ _buffer_pos += 1
+ end
+ _buffer_pos = 0
+ _buffer = nbuf
+ return b.to_s
end
redef fun read(i)
loop
# First phase: look for a '\n'
var i = _buffer_pos
- while i < _buffer.length and _buffer.chars[i] != '\n' do i += 1
+ while i < _buffer.length and _buffer[i] != '\n' do i += 1
var eol
if i < _buffer.length then
- assert _buffer.chars[i] == '\n'
+ assert _buffer[i] == '\n'
i += 1
eol = true
else
# Copy from the buffer to the string
var j = _buffer_pos
while j < i do
- s.add(_buffer.chars[j])
+ s.add(_buffer[j])
j += 1
end
_buffer_pos = i
redef fun read_char do
if cursor < source.length then
- var c = source[cursor].ascii
+ var c = source[cursor]
cursor += 1
return c
else
- return -1
+ return null
+ end
+ end
+
+ redef fun read_byte do
+ if cursor < source.length then
+ var c = source[cursor]
+
+ cursor += 1
+ return c.ascii
+ else
+ return null
end
end
fun substring(from: Int, count: Int): SELFTYPE is abstract
# Iterates on the substrings of self if any
- fun substrings: Iterator[Text] is abstract
+ fun substrings: Iterator[FlatText] is abstract
# Is the current Text empty (== "")
#
end
return true
end
-
+
# Removes the whitespaces at the beginning of self
#
# assert " \n\thello \n\t".l_trim == "hello \n\t"
return hash_cache.as(not null)
end
+ # Gives the formatted string back as a Nit string with `args` in place
+ #
+ # assert "This %1 is a %2.".format("String", "formatted String") == "This String is a formatted String."
+ # assert "\\%1 This string".format("String") == "\\%1 This string"
+ fun format(args: Object...): String do
+ var s = new Array[Text]
+ var curr_st = 0
+ var i = 0
+ while i < length do
+ # Skip escaped characters
+ if self[i] == '\\' then
+ i += 1
+ # In case of format
+ else if self[i] == '%' then
+ var fmt_st = i
+ i += 1
+ var ciph_st = i
+ while i < length and self[i].is_numeric do
+ i += 1
+ end
+ i -= 1
+ var fmt_end = i
+ var ciph_len = fmt_end - ciph_st + 1
+ s.push substring(curr_st, fmt_st - curr_st)
+ s.push args[substring(ciph_st, ciph_len).to_i - 1].to_s
+ curr_st = i + 1
+ end
+ i += 1
+ end
+ s.push substring(curr_st, length - curr_st)
+ return s.to_s
+ end
+
+ # Copies `n` bytes from `self` at `src_offset` into `dest` starting at `dest_offset`
+ #
+ # Basically a high-level synonym of NativeString::copy_to
+ #
+ # REQUIRE: `n` must be large enough to contain `len` bytes
+ #
+ # var ns = new NativeString(8)
+ # "Text is String".copy_to_native(ns, 8, 2, 0)
+ # assert ns.to_s_with_length(8) == "xt is St"
+ #
+ fun copy_to_native(dest: NativeString, n, src_offset, dest_offset: Int) do
+ var mypos = src_offset
+ var itspos = dest_offset
+ while n > 0 do
+ dest[itspos] = self.chars[mypos]
+ itspos += 1
+ mypos += 1
+ n -= 1
+ end
+ end
+
end
# All kinds of array-based text representations.
end
redef fun flatten do return self
+
+ redef fun copy_to_native(dest, n, src_offset, dest_offset) do
+ items.copy_to(dest, n, src_offset, dest_offset)
+ end
end
# Abstract class for the SequenceRead compatible
# assert "helloworld".insert_at(" ", 5) == "hello world"
fun insert_at(s: String, pos: Int): SELFTYPE is abstract
- redef fun substrings: Iterator[String] is abstract
+ redef fun substrings is abstract
# Returns a reversed version of self
#
# assert "Hello World!".to_lower == "hello world!"
fun to_lower : SELFTYPE is abstract
- # Takes a camel case `self` and converts it to snake case
+ # Takes a camel case `self` and converts it to snake case
#
# assert "randomMethodId".to_snake_case == "random_method_id"
#
prev_is_upper = false
end
end
-
+
return new_str.to_s
end
- # Takes a snake case `self` and converts it to camel case
+ # Takes a snake case `self` and converts it to camel case
#
# assert "random_method_id".to_camel_case == "randomMethodId"
#
# assert not tree.has_key(0)
# assert tree.has_key(2)
# assert not tree.has_key(6)
- redef fun has_key(key: K): Bool do
+ redef fun has_key(key) do
if is_empty then return false
var res = search_down(root.as(not null), key)
if res != null then
# assert tree[1] == "n1"
# assert tree.has_key(1)
# assert tree[2] == "n2"
- redef fun [](key: K): E do
+ redef fun [](key) do
assert not_empty: not is_empty
if cache_node != null and cache_node.key == key then return cache_node.value
var res = search_down(root.as(not null), key)
end
# Search `key` in `from` and its children nodes.
- protected fun search_down(from: N, key: K): nullable N do
+ protected fun search_down(from: N, key: nullable Object): nullable N do
+ if not key isa Comparable then return null
var cmp = key <=> from.key
if cmp == 0 then return from
if from.left != null and cmp < 0 then
private fun unpad_message do
var fin = false
while not fin do
- var fst_char = client.read_char
- var snd_char = client.read_char
+ var fst_byte = client.read_byte
+ var snd_byte = client.read_byte
+ if fst_byte == null or snd_byte == null then
+ last_error = new IOError("Error: bad frame")
+ client.close
+ return
+ end
# First byte in msg is formatted this way :
# |(fin - 1bit)|(RSV1 - 1bit)|(RSV2 - 1bit)|(RSV3 - 1bit)|(opcode - 4bits)
# fin = Flag indicating if current frame is the last one
# %x9 denotes a ping
# %xA denotes a pong
# %xB-F are reserved for further control frames
- var fin_flag = fst_char.bin_and(128)
+ var fin_flag = fst_byte.bin_and(128)
if fin_flag != 0 then fin = true
- var opcode = fst_char.bin_and(15)
+ var opcode = fst_byte.bin_and(15)
if opcode == 9 then
_buffer.add(138.ascii)
_buffer.add('\0')
# |(mask - 1bit)|(payload length - 7 bits)
# As specified, if the payload length is 126 or 127
# The next 16 or 64 bits contain an extended payload length
- var mask_flag = snd_char.bin_and(128)
- var len = snd_char.bin_and(127)
+ var mask_flag = snd_byte.bin_and(128)
+ var len = snd_byte.bin_and(127)
var payload_ext_len = 0
if len == 126 then
- payload_ext_len = client.read_char.lshift(8)
- payload_ext_len += client.read_char
+ var tmp = client.read(2)
+ if tmp.length != 2 then
+ last_error = new IOError("Error: received interrupted frame")
+ client.close
+ return
+ end
+ payload_ext_len = tmp[1].ascii + tmp[0].ascii.lshift(8)
else if len == 127 then
# 64 bits for length are not supported,
# only the last 32 will be interpreted as a Nit Integer
- for i in [0..4[ do client.read_char
- payload_ext_len = client.read_char.lshift(24)
- payload_ext_len += client.read_char.lshift(16)
- payload_ext_len += client.read_char.lshift(8)
- payload_ext_len += client.read_char
+ var tmp = client.read(8)
+ if tmp.length != 8 then
+ last_error = new IOError("Error: received interrupted frame")
+ client.close
+ return
+ end
+ for pos in [0 .. tmp.length[ do
+ var i = tmp[pos].ascii
+ payload_ext_len += i.lshift(8 * (7 - pos))
+ end
end
if mask_flag != 0 then
if payload_ext_len != 0 then
" FFI Python
syntax include @FFIPython syntax/python.vim
unlet b:current_syntax
-syn match NITFFILanguage /\c"Python"/ nextgroup=NITFFIBlockPython skipwhite
+syn match NITFFILanguage /\c"Python"\ze.*`{/ nextgroup=NITFFIBlockPython skipwhite
syn region NITFFIBlockPython matchgroup=NITFFI start='`{' matchgroup=NITFFI end='`}' keepend fold contains=@FFIPython
" FFI Java
syntax include @FFIJava syntax/java.vim
unlet b:current_syntax
-syn match NITFFILanguage /\c"Java\(\| inner\)"/ nextgroup=NITFFIBlockJava skipwhite
+syn match NITFFILanguage /\c"Java\(\| inner\)"\ze.*`{/ nextgroup=NITFFIBlockJava skipwhite
syn region NITFFIBlockJava matchgroup=NITFFI start='`{' matchgroup=NITFFI end='`}' keepend fold contains=@FFIJava
" FFI C++
syntax include @FFICpp syntax/cpp.vim
unlet b:current_syntax
-syn match NITFFILanguage /\c"C++\(\| header\| body\)"/ nextgroup=NITFFIBlockCpp skipwhite
+syn match NITFFILanguage /\c"C++\(\| header\| body\)"\ze.*`{/ nextgroup=NITFFIBlockCpp skipwhite
syn region NITFFIBlockCpp matchgroup=NITFFI start='`{' matchgroup=NITFFI end='`}' keepend fold contains=@FFICpp
" FFI Objective-C
syntax include @FFIObjC syntax/objc.vim
unlet b:current_syntax
-syn match NITFFILanguage /\c"ObjC\(\| Header\| Body\)"/ nextgroup=NITFFIBlockObjC skipwhite
+syn match NITFFILanguage /\c"ObjC\(\| Header\| Body\)"\ze.*`{/ nextgroup=NITFFIBlockObjC skipwhite
syn region NITFFIBlockObjC matchgroup=NITFFI start='`{' matchgroup=NITFFI end='`}' keepend fold contains=@FFIObjC
" FFI C (the last one is the default)
syntax include @FFIC syntax/c.vim
unlet b:current_syntax
-syn match NITFFILanguage /\c"C\(\| header\| body\)"/ nextgroup=NITFFIBlockC skipwhite
+syn match NITFFILanguage /\c"C\(\| header\| body\)"\ze.*`{/ nextgroup=NITFFIBlockC skipwhite
syn region NITFFIBlockC matchgroup=NITFFI start='`{' matchgroup=NITFFI end='`}' keepend fold contains=@FFIC
hi def link NITFFILanguage Define
border-left: 2px solid #0d8921;
}
+
+.pull-right .dropdown-toggle {
+ padding: 0 5px;
+}
+
+/* Hide the "..." link */
+
+article .dropdown, article .dropdown {
+ visibility: hidden;
+}
+article:hover .dropdown, article:target .dropdown {
+ visibility: visible;
+}
+
/*
* Page parts
*/
margin-left: 30px;
}
-.source-link {
- display: none;
- float: right;
- margin-top: 10px;
-}
-
-.source-link a {
- color: #0d8921;
-}
-
-article:hover .source-link, article:target .source-link {
- display: block;
-}
-
/*
* Code Highlighting
*/
/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
+ *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
<font-face units-per-em="1200" ascent="960" descent="-240" />
<missing-glyph horiz-adv-x="500" />
-<glyph />
-<glyph />
-<glyph unicode="
" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
<glyph unicode=" " />
-<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
-<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode=" " />
-<glyph unicode=" " horiz-adv-x="652" />
-<glyph unicode=" " horiz-adv-x="1304" />
-<glyph unicode=" " horiz-adv-x="652" />
-<glyph unicode=" " horiz-adv-x="1304" />
-<glyph unicode=" " horiz-adv-x="434" />
-<glyph unicode=" " horiz-adv-x="326" />
-<glyph unicode=" " horiz-adv-x="217" />
-<glyph unicode=" " horiz-adv-x="217" />
-<glyph unicode=" " horiz-adv-x="163" />
+<glyph unicode="¥" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode=" " horiz-adv-x="650" />
+<glyph unicode=" " horiz-adv-x="1300" />
+<glyph unicode=" " horiz-adv-x="650" />
+<glyph unicode=" " horiz-adv-x="1300" />
+<glyph unicode=" " horiz-adv-x="433" />
+<glyph unicode=" " horiz-adv-x="325" />
+<glyph unicode=" " horiz-adv-x="216" />
+<glyph unicode=" " horiz-adv-x="216" />
+<glyph unicode=" " horiz-adv-x="162" />
<glyph unicode=" " horiz-adv-x="260" />
<glyph unicode=" " horiz-adv-x="72" />
<glyph unicode=" " horiz-adv-x="260" />
-<glyph unicode=" " horiz-adv-x="326" />
-<glyph unicode="€" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
-<glyph unicode="−" d="M200 400h900v300h-900v-300z" />
+<glyph unicode=" " horiz-adv-x="325" />
+<glyph unicode="€" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="₽" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="−" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="⌛" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="☁" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
-<glyph unicode="✉" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
-<glyph unicode="✏" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
-<glyph unicode="" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
-<glyph unicode="" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
-<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
-<glyph unicode="" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
-<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
-<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
-<glyph unicode="" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
-<glyph unicode="" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
-<glyph unicode="" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
-<glyph unicode="" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
-<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
-<glyph unicode="" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
-<glyph unicode="" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
-<glyph unicode="" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
-<glyph unicode="" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
-<glyph unicode="" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
-<glyph unicode="" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
-<glyph unicode="" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
-<glyph unicode="" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
-<glyph unicode="" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
-<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
-<glyph unicode="" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
-<glyph unicode="" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
-<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
-<glyph unicode="" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
-<glyph unicode="" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
-<glyph unicode="" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
-<glyph unicode="" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
-<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
-<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
-<glyph unicode="" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
-<glyph unicode="" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
-<glyph unicode="" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
-<glyph unicode="" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
-<glyph unicode="" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
-<glyph unicode="" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
-<glyph unicode="" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
-<glyph unicode="" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
-<glyph unicode="" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
-<glyph unicode="" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
-<glyph unicode="" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
-<glyph unicode="" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
-<glyph unicode="" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
-<glyph unicode="" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
-<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
-<glyph unicode="" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
-<glyph unicode="" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
-<glyph unicode="" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
-<glyph unicode="" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
-<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
-<glyph unicode="" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
-<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
-<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
-<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
-<glyph unicode="" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
-<glyph unicode="" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
-<glyph unicode="" d="M200 0l900 550l-900 550v-1100z" />
-<glyph unicode="" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
-<glyph unicode="" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
-<glyph unicode="" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
-<glyph unicode="" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
-<glyph unicode="" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
-<glyph unicode="" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
-<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
-<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
-<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
-<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
-<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
-<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
-<glyph unicode="" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
-<glyph unicode="" d="M0 547l600 453v-300h600v-300h-600v-301z" />
-<glyph unicode="" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
-<glyph unicode="" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
-<glyph unicode="" d="M104 600h296v600h300v-600h298l-449 -600z" />
-<glyph unicode="" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
-<glyph unicode="" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
-<glyph unicode="" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
-<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
-<glyph unicode="" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
-<glyph unicode="" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
-<glyph unicode="" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
-<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
-<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
-<glyph unicode="" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
-<glyph unicode="" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
-<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
-<glyph unicode="" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
-<glyph unicode="" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
-<glyph unicode="" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
-<glyph unicode="" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
-<glyph unicode="" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
-<glyph unicode="" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
-<glyph unicode="" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
-<glyph unicode="" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
-<glyph unicode="" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
-<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
-<glyph unicode="" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
-<glyph unicode="" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
-<glyph unicode="" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
-<glyph unicode="" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
-<glyph unicode="" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
-<glyph unicode="" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
-<glyph unicode="" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
-<glyph unicode="" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
-<glyph unicode="" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
-<glyph unicode="" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
-<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
-<glyph unicode="" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
-<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
-<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
-<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
-<glyph unicode="" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
-<glyph unicode="" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
-<glyph unicode="" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
-<glyph unicode="" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
-<glyph unicode="" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
-<glyph unicode="" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
-<glyph unicode="" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
-<glyph unicode="" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
-<glyph unicode="" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
-<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
-<glyph unicode="" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
-<glyph unicode="" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
-<glyph unicode="" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
-<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
-<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
-<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
-<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
-<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
-<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
-<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
-<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
-<glyph unicode="" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
-<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
-<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
-<glyph unicode="" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
-<glyph unicode="" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
-<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
-<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
-<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
-<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
-<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
-<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
-<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
-<glyph unicode="" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
-<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
-<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
-<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
-<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
-<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
-<glyph unicode="" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
-<glyph unicode="" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
-<glyph unicode="" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
-<glyph unicode="" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
-<glyph unicode="" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
-<glyph unicode="" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
-<glyph unicode="" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
-<glyph unicode="" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
-<glyph unicode="" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
-<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
-<glyph unicode="" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
-<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
-<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
-<glyph unicode="" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
-<glyph unicode="" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+<glyph unicode="☁" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="⛺" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="✉" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="✏" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="🔑" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="🚪" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
</font>
</defs></svg>
\ No newline at end of file
/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-
-+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed.bs.alert").remove()}var c=a(this),d=c.attr("data-target");d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));var e=a(d);b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close.bs.alert"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.one(a.support.transition.end,f).emulateTransitionEnd(150):f()};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){b=="loadingText"?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");c.prop("type")=="radio"&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f=typeof c=="object"&&c;e||d.data("bs.button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();if(b>this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){if(this.sliding)return;return this.slide("next")},b.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});this.$element.trigger(j);if(j.isDefaultPrevented())return;return this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(d.css("transition-duration").slice(0,-1)*1e3)):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g=c.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){function e(d){a(b).remove(),a(c).each(function(){var b=f(a(this)),c={relatedTarget:this};if(!b.hasClass("open"))return;b.trigger(d=a.Event("hide.bs.dropdown",c));if(d.isDefaultPrevented())return;b.removeClass("open").trigger("hidden.bs.dropdown",c)})}function f(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}"use strict";var b=".dropdown-backdrop",c="[data-toggle=dropdown]",d=function(b){a(b).on("click.bs.dropdown",this.toggle)};d.prototype.toggle=function(b){var c=a(this);if(c.is(".disabled, :disabled"))return;var d=f(c),g=d.hasClass("open");e();if(!g){"ontouchstart"in document.documentElement&&!d.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",e);var h={relatedTarget:this};d.trigger(b=a.Event("show.bs.dropdown",h));if(b.isDefaultPrevented())return;d.toggleClass("open").trigger("shown.bs.dropdown",h),c.focus()}return!1},d.prototype.keydown=function(b){if(!/(38|40|27)/.test(b.keyCode))return;var d=a(this);b.preventDefault(),b.stopPropagation();if(d.is(".disabled, :disabled"))return;var e=f(d),g=e.hasClass("open");if(!g||g&&b.keyCode==27)return b.which==27&&e.find(c).focus(),d.click();var h=" li:not(.divider):visible a",i=e.find("[role=menu]"+h+", [role=listbox]"+h);if(!i.length)return;var j=i.index(i.filter(":focus"));b.keyCode==38&&j>0&&j--,b.keyCode==40&&j<i.length-1&&j++,~j||(j=0),i.eq(j).focus()};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),e=c.data("bs.dropdown");e||c.data("bs.dropdown",e=new d(this)),typeof b=="string"&&e[b].call(c)})},a.fn.dropdown.Constructor=d,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",e).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",c,d.prototype.toggle).on("keydown.bs.dropdown.data-api",c+", [role=menu], [role=listbox]",d.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d);if(this.isShown||d.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)})},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal()},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]!==a.target&&!this.$element.has(a.target).length&&this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){a.which==27&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){if(a.target!==a.currentTarget)return;this.options.backdrop=="static"?this.$element[0].focus.call(this.$element[0]):this.hide.call(this)},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),typeof c=="object"&&c);f||e.data("bs.modal",f=new b(this,g)),typeof c=="string"?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());c.is("a")&&b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);var e=this.options.trigger.split(" ");for(var f=e.length;f--;){var g=e[f];if(g=="click")this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if(g!="manual"){var h=g=="hover"?"mouseenter":"focusin",i=g=="hover"?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);clearTimeout(c.timeout),c.hoverState="in";if(!c.options.delay||!c.options.delay.show)return c.show();c.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);clearTimeout(c.timeout),c.hoverState="out";if(!c.options.delay||!c.options.delay.hide)return c.hide();c.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this,d=this.tip();this.setContent(),this.options.animation&&d.addClass("fade");var e=typeof this.options.placement=="function"?this.options.placement.call(this,d[0],this.$element[0]):this.options.placement,f=/\s?auto?\s?/i,g=f.test(e);g&&(e=e.replace(f,"")||"top"),d.detach().css({top:0,left:0,display:"block"}).addClass(e),this.options.container?d.appendTo(this.options.container):d.insertAfter(this.$element);var h=this.getPosition(),i=d[0].offsetWidth,j=d[0].offsetHeight;if(g){var k=this.$element.parent(),l=e,m=document.documentElement.scrollTop||document.body.scrollTop,n=this.options.container=="body"?window.innerWidth:k.outerWidth(),o=this.options.container=="body"?window.innerHeight:k.outerHeight(),p=this.options.container=="body"?0:k.offset().left;e=e=="bottom"&&h.top+h.height+j-m>o?"top":e=="top"&&h.top-m-j<0?"bottom":e=="right"&&h.right+i>n?"left":e=="left"&&h.left-i<p?"right":e,d.removeClass(l).addClass(e)}var q=this.getCalculatedOffset(e,h,i,j);this.applyPlacement(q,e),this.hoverState=null;var r=function(){c.$element.trigger("shown.bs."+c.type)};a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,r).emulateTransitionEnd(150):r()}},b.prototype.applyPlacement=function(b,c){var d,e=this.tip(),f=e[0].offsetWidth,g=e[0].offsetHeight,h=parseInt(e.css("margin-top"),10),i=parseInt(e.css("margin-left"),10);isNaN(h)&&(h=0),isNaN(i)&&(i=0),b.top=b.top+h,b.left=b.left+i,a.offset.setOffset(e[0],a.extend({using:function(a){e.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),e.addClass("in");var j=e[0].offsetWidth,k=e[0].offsetHeight;c=="top"&&k!=g&&(d=!0,b.top=b.top+g-k);if(/bottom|top/.test(c)){var l=0;b.left<0&&(l=b.left*-2,b.left=0,e.offset(b),j=e[0].offsetWidth,k=e[0].offsetHeight),this.replaceArrow(l-f+j,j,"left")}else this.replaceArrow(k-g,k,"top");d&&e.offset(b)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function e(){b.hoverState!="in"&&c.detach(),b.$element.trigger("hidden.bs."+b.type)}var b=this,c=this.tip(),d=a.Event("hide.bs."+this.type);this.$element.trigger(d);if(d.isDefaultPrevented())return;return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?c.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),this.hoverState=null,this},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},typeof b.getBoundingClientRect=="function"?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return a=="bottom"?{top:b.top+b.height,left:b.left+b.width/2-c/2}:a=="top"?{top:b.top-d,left:b.left+b.width/2-c/2}:a=="left"?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f=typeof c=="object"&&c;if(!e&&c=="destroy")return;e||d.data("bs.tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?typeof c=="string"?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||(typeof b.content=="function"?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f=typeof c=="object"&&c;if(!e&&c=="destroy")return;e||d.data("bs.popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});b.trigger(f);if(f.isDefaultPrevented())return;var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})},b.prototype.activate=function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g).emulateTransitionEnd(150):g(),e.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;this.affixed=="top"&&(e.top+=d),typeof f!="object"&&(h=g=f),typeof g=="function"&&(g=f.top(this.$element)),typeof h=="function"&&(h=f.bottom(this.$element));var i=this.unpin!=null&&d+this.unpin<=e.top?!1:h!=null&&e.top+this.$element.height()>=c-h?"bottom":g!=null&&d<=g?"top":!1;if(this.affixed===i)return;this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k);if(k.isDefaultPrevented())return;this.affixed=i,this.unpin=i=="bottom"?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),i=="bottom"&&this.$element.offset({top:c-h-this.$element.height()})};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f=typeof c=="object"&&c;e||d.data("bs.affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var b=a.Event("show.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])},b.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var b=a.Event("hide.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!a.support.transition)return d.call(this);this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350)},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c);!e&&f.toggle&&c=="show"&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":c.data(),i=c.attr("data-parent"),j=i&&a(i);if(!g||!g.transitioning)j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(c).addClass("collapsed"),c[f.hasClass("in")?"addClass":"removeClass"]("collapsed");f.collapse(h)})}(jQuery),+function(a){function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}"use strict",b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this,d=this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);if(f&&a<=d[0])return f!=(g=e[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f=typeof c=="object"&&c;e||d.data("bs.scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(a.style[c]!==undefined)return{end:b[c]};return!1}"use strict",a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery)
\ No newline at end of file
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.4",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.4",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.4",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.4",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.4",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport),this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.4",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.4",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.4",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){
+var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.4",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a(document.body).height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
_n_kwif = new TKwif
_n_expr = condition
_n_expr.parent = self
+ _n_kwthen = new TKwthen
_n_then = new ABlockExpr.make
+ _n_kwelse = new TKwelse
_n_else = new ABlockExpr.make
self.mtype = mtype
self.is_typed = true
# files to compile TODO check is appropriate
var files = new Array[String]
- fun add_local_function( efc : CFunction )
+ # Add `c_function` as a `static` function local to this unit
+ fun add_local_function(c_function: CFunction)
do
- body_decl.add "static {efc.signature};\n"
+ body_decl.add "static {c_function.signature};\n"
body_impl.add "\n"
- body_impl.add efc.to_writer
+ body_impl.add c_function.to_writer
end
- fun add_exported_function( efc : CFunction )
+ # Add `c_function` as a public function to this unit
+ fun add_exported_function(c_function: CFunction)
do
- header_decl.add( "{efc.signature};\n" )
- body_impl.add( "\n" )
- body_impl.add( efc.to_writer )
+ header_decl.add "{c_function.signature};\n"
+ body_impl.add "\n"
+ body_impl.add c_function.to_writer
end
- fun compile_header_core( stream : Writer )
+ # Write the core of the header to `stream`
+ fun compile_header_core(stream: Writer)
do
- header_c_base.write_to( stream )
- header_custom.write_to( stream )
- header_c_types.write_to( stream )
- header_decl.write_to( stream )
+ header_c_base.write_to stream
+ header_custom.write_to stream
+ header_c_types.write_to stream
+ header_decl.write_to stream
end
- fun compile_body_core( stream : Writer )
+ # Write the core of the body to `stream`
+ fun compile_body_core(stream: Writer)
do
- body_decl.write_to( stream )
- body_custom.write_to( stream )
- body_impl.write_to( stream )
+ body_decl.write_to stream
+ body_custom.write_to stream
+ body_impl.write_to stream
end
end
# See the License for the specific language governing permissions and
# limitations under the License.
-# FFI support for the compilers
+# Full FFI support for the compiler
module compiler_ffi
-intrude import abstract_compiler
-intrude import ffi
+intrude import light
import nitni
redef class MModule
private var foreign_callbacks = new ForeignCallbackSet
- var nitni_ccu: nullable CCompilationUnit = null
-
- private fun nmodule(v: AbstractCompilerVisitor): nullable AModule
- do
- return v.compiler.modelbuilder.mmodule2node(self)
- end
redef fun finalize_ffi(compiler: AbstractCompiler)
do
if not uses_ffi then return
- var v = compiler.new_visitor
- var n = nmodule(v)
- if n == null then return
- n.ensure_compile_ffi_wrapper
- finalize_ffi_wrapper(v.compiler.modelbuilder.compile_dir, v.compiler.mainmodule)
- for file in ffi_files do v.compiler.extern_bodies.add(file)
-
- ensure_compile_nitni_base(v)
-
- nitni_ccu.header_c_types.add("#include \"{c_name}._ffi.h\"\n")
- nitni_ccu.header_c_types.add """
-extern void nitni_global_ref_incr(void*);
-extern void nitni_global_ref_decr(void*);
-"""
-
- var cflags = self.cflags[""].join(" ")
- nitni_ccu.write_as_nitni(self, v.compiler.modelbuilder.compile_dir)
-
- for file in nitni_ccu.files do
- var f = new ExternCFile(file, cflags)
- f.pkgconfigs.add_all pkgconfigs
- v.compiler.extern_bodies.add(f)
- end
+ super
- # reset FFI things so the next compilation job, if any, starts with a clean context
- # FIXME clean and rationalize this
- nitni_ccu = null
- compiled_ffi_methods.clear
- ffi_ccu = null
- ffi_files.clear
compiled_callbacks.clear
#Do not reset `foreign_callbacks` and `ffi_callbacks` because they are computed in previous phases
end
- private fun ensure_compile_nitni_base(v: AbstractCompilerVisitor)
- do
- if nitni_ccu != null then return
-
- nitni_ccu = new CCompilationUnit
- end
-
- redef fun collect_linker_libs
- do
- if not self.ldflags.keys.has("") then return null
- return self.ldflags[""]
- end
-
private var compiled_callbacks = new Array[NitniCallback]
# Returns true if callbacks has yet to be generated and register it as being generated
end
redef class AMethPropdef
- private fun compile_ffi_support_to_c(v: AbstractCompilerVisitor)
+ redef fun compile_ffi_support_to_c(v)
do
+ super
+
var mmodule = mpropdef.mclassdef.mmodule
var mainmodule = v.compiler.mainmodule
- var amodule = v.compiler.modelbuilder.mmodule2node(mmodule)
- var mclass_type = mpropdef.mclassdef.bound_mtype
-
- # Declare as extern
- var csignature = mpropdef.mproperty.build_csignature(mclass_type, mmodule, "___impl", long_signature, internal_call_context)
- v.declare_once("{csignature};")
-
- # FFI part
- amodule.ensure_compile_ffi_wrapper
- compile_ffi_method(mmodule)
-
- # nitni - Compile missing callbacks
- mmodule.ensure_compile_nitni_base(v)
var ccu = mmodule.nitni_ccu.as(not null)
for mtype in foreign_callbacks.types do
# manage nitni callback set
mmodule.foreign_callbacks.join(foreign_callbacks)
end
+end
- redef fun compile_externmeth_to_c(v, mpropdef, arguments)
+redef class MExplicitCall
+ private fun compile_extern_callback(v: AbstractCompilerVisitor, ccu: CCompilationUnit, compile_implementation_too: Bool)
do
- # if using the old native interface fallback on previous implementation
- if n_extern_code_block == null then return super
+ var mproperty = mproperty
+ assert mproperty isa MMethod
- var mmodule = mpropdef.mclassdef.mmodule
- mmodule.uses_ffi = true
+ # In nitni files, declare internal function as extern
+ var full_friendly_csignature = mproperty.build_csignature(recv_mtype, v.compiler.mainmodule, null, long_signature, internal_call_context)
+ ccu.header_decl.add("extern {full_friendly_csignature};\n")
- var mclass_type = mpropdef.mclassdef.bound_mtype
+ if not compile_implementation_too then return
- # Outgoing code in compiler
- var externname = mpropdef.mproperty.build_cname(mpropdef.mclassdef.bound_mtype, mmodule, "___impl", long_signature)
- var recv_var: nullable RuntimeVariable = null
- var return_mtype = mpropdef.msignature.return_mtype
- if return_mtype != null then
- return_mtype = return_mtype.anchor_to(mmodule, mclass_type)
- recv_var = v.new_var(return_mtype)
- end
+ # Internally, implement internal function
+ var nitni_visitor = v.compiler.new_visitor
+ nitni_visitor.frame = v.frame
+ var msignature = mproperty.lookup_first_definition(v.compiler.mainmodule, recv_mtype).msignature
+ var csignature_blind = mproperty.build_csignature(recv_mtype, v.compiler.mainmodule, null, long_signature, internal_call_context)
- v.adapt_signature(mpropdef, arguments)
- v.unbox_signature_extern(mpropdef, arguments)
-
- var arguments_for_c = new Array[String]
- for a in [0..arguments.length[ do
- var arg = arguments[a]
- var param_mtype: MType
- if a == 0 then
- param_mtype = mpropdef.mclassdef.mclass.mclass_type
- else param_mtype = mpropdef.msignature.mparameters[a-1].mtype
-
- param_mtype = param_mtype.anchor_to(mmodule, mclass_type)
-
- if param_mtype.is_cprimitive then
- arguments_for_c.add(arg.name)
- else
- v.add("struct nitni_instance* var_for_c_{a};")
- v.add("var_for_c_{a} = nit_alloc(sizeof(struct nitni_instance));")
- v.add("var_for_c_{a}->value = {arg.name};")
- arguments_for_c.add("var_for_c_{a}")
- end
- end
+ nitni_visitor.add_decl("/* nitni callback for {mproperty.full_name} */")
+ nitni_visitor.add_decl("{csignature_blind} \{")
- if recv_var == null then
- v.add("{externname}({arguments_for_c.join(", ")});")
+ var vars = new Array[RuntimeVariable]
+ var mtype: MType = recv_mtype
+ var recv_var = null
+ if mproperty.is_init then
+ var recv_mtype = recv_mtype
+ recv_var = nitni_visitor.init_instance_or_extern(recv_mtype)
+ nitni_visitor.add("{mtype.ctype} recv /* var self: {mtype} */;")
+ nitni_visitor.add("recv = {recv_var};")
else
- assert return_mtype != null
- if return_mtype.is_cprimitive then
- v.add("{recv_var} = {externname}({arguments_for_c.join(", ")});")
- else
- v.add("struct nitni_instance* ret_var;")
- v.add("ret_var = {externname}({arguments_for_c.join(", ")});")
- v.add("{recv_var} = ret_var->value;")
- end
- recv_var = v.box_extern(recv_var, return_mtype)
- v.ret(recv_var)
+ mtype = mtype.anchor_to(v.compiler.mainmodule, recv_mtype)
+ recv_var = nitni_visitor.var_from_c("recv", mtype)
+ recv_var = nitni_visitor.box_extern(recv_var, mtype)
end
- compile_ffi_support_to_c(v)
- return true
- end
-
- redef fun compile_externinit_to_c(v, mpropdef, arguments)
- do
- # if using the old native interface fallback on previous implementation
- if n_extern_code_block == null then return super
-
- var mmodule = mpropdef.mclassdef.mmodule
- mmodule.uses_ffi = true
-
- var mclass_type = mpropdef.mclassdef.bound_mtype
-
- var externname = mpropdef.mproperty.build_cname(mpropdef.mclassdef.bound_mtype, mmodule, "___impl", long_signature)
- var return_mtype = arguments.first.mtype
- var recv_var = v.new_var(return_mtype)
-
- v.adapt_signature(mpropdef, arguments)
- v.unbox_signature_extern(mpropdef, arguments)
-
- arguments.shift
-
- var arguments_for_c = new Array[String]
- for a in [0..arguments.length[ do
- var arg = arguments[a]
- var param_mtype: MType
- param_mtype = mpropdef.msignature.mparameters[a].mtype
- param_mtype = param_mtype.anchor_to(mmodule, mclass_type)
-
- if param_mtype.is_cprimitive then
- arguments_for_c.add(arg.name)
- else
- v.add("struct nitni_instance* var_for_c_{a};")
- v.add("var_for_c_{a} = nit_alloc(sizeof(struct nitni_instance));")
- v.add("var_for_c_{a}->value = {arg.name};")
- arguments_for_c.add("var_for_c_{a}")
- end
- end
+ vars.add(recv_var)
- if return_mtype.is_cprimitive then
- v.add("{recv_var} = {externname}({arguments_for_c.join(", ")});")
- else
- v.add("struct nitni_instance* ret_var;")
- v.add("ret_var = {externname}({arguments_for_c.join(", ")});")
- v.add("{recv_var} = ret_var->value;")
+ for p in msignature.mparameters do
+ var arg_mtype = p.mtype.anchor_to(v.compiler.mainmodule, recv_mtype)
+ var arg = nitni_visitor.var_from_c(p.name, arg_mtype)
+ arg = nitni_visitor.box_extern(arg, arg_mtype)
+ vars.add(arg)
end
- recv_var = v.box_extern(recv_var, return_mtype)
- v.ret(recv_var)
- compile_ffi_support_to_c(v)
- return true
- end
-end
-
-redef class CCompilationUnit
- fun write_as_nitni(mmodule: MModule, compdir: String)
- do
- var base_name = "{mmodule.c_name}._nitni"
-
- var h_file = "{base_name}.h"
- write_header_to_file( mmodule, "{compdir}/{h_file}", new Array[String],
- "{mmodule.c_name.to_s.to_upper}_NITG_NITNI_H")
-
- var c_file = "{base_name}.c"
- write_body_to_file( mmodule, "{compdir}/{c_file}", ["\"{h_file}\""] )
-
- files.add( "{compdir}/{c_file}" )
- end
-end
-
-redef class AbstractCompiler
- # Cache to avoid multiple compilation of NULL values
- # see FIXME in `MNullableType#compile_extern_helper_functions`
- private var compiled_null_types = new Array[MNullableType]
-end
+ var ret_var = nitni_visitor.send(mproperty, vars)
-redef class AbstractCompilerVisitor
- # Create a `RuntimeVariable` for this C variable originating from C user code
- private fun var_from_c(name: String, mtype: MType): RuntimeVariable
- do
- if mtype.is_cprimitive then
- return new RuntimeVariable(name, mtype, mtype)
- else
- return new RuntimeVariable("{name}->value", mtype, mtype)
+ var return_mtype = msignature.return_mtype
+ if mproperty.is_init then
+ if recv_mtype.mclass.kind != extern_kind then ret_var = recv_var
+ return_mtype = recv_mtype
end
- end
-
- # Return a `RuntimeVarible` to C user code
- private fun ret_to_c(src: RuntimeVariable, mtype: MType)
- do
- if mtype.is_cprimitive then
- add("return {src};")
- else
- add("struct nitni_instance* ret_for_c;")
- add("ret_for_c = nit_alloc(sizeof(struct nitni_instance));")
- add("ret_for_c->value = {src};")
- add("return ret_for_c;")
+ if return_mtype != null then
+ assert ret_var != null
+ return_mtype = return_mtype.anchor_to(v.compiler.mainmodule, recv_mtype)
+ ret_var = nitni_visitor.autobox(ret_var, return_mtype)
+ ret_var = nitni_visitor.unbox_extern(ret_var, return_mtype)
+ nitni_visitor.ret_to_c(ret_var, return_mtype)
end
+ nitni_visitor.add("\}")
end
end
redef class MType
- private fun compile_extern_type(v: AbstractCompilerVisitor, ccu: CCompilationUnit)
- do
- assert not is_cprimitive
-
- # define friendly type
- ccu.header_c_types.add("#ifndef NIT_TYPE_{cname}\n")
- ccu.header_c_types.add("#define NIT_TYPE_{cname} 1\n")
- ccu.header_c_types.add("typedef struct nitni_instance *{cname};\n")
- ccu.header_c_types.add("#endif\n")
- end
-
private fun compile_extern_helper_functions(v: AbstractCompilerVisitor, ccu: CCompilationUnit, compile_implementation_too: Bool)
do
# actually, we do not need to do anything when using the bohem garbage collector
end
end
-redef class MExplicitCall
- private fun compile_extern_callback(v: AbstractCompilerVisitor, ccu: CCompilationUnit, compile_implementation_too: Bool)
- do
- var mproperty = mproperty
- assert mproperty isa MMethod
-
- # In nitni files, declare internal function as extern
- var full_friendly_csignature = mproperty.build_csignature(recv_mtype, v.compiler.mainmodule, null, long_signature, internal_call_context)
- ccu.header_decl.add("extern {full_friendly_csignature};\n")
-
- if not compile_implementation_too then return
-
- # Internally, implement internal function
- var nitni_visitor = v.compiler.new_visitor
- nitni_visitor.frame = v.frame
- var msignature = mproperty.lookup_first_definition(v.compiler.mainmodule, recv_mtype).msignature
- var csignature_blind = mproperty.build_csignature(recv_mtype, v.compiler.mainmodule, null, long_signature, internal_call_context)
-
- nitni_visitor.add_decl("/* nitni callback for {mproperty.full_name} */")
- nitni_visitor.add_decl("{csignature_blind} \{")
-
- var vars = new Array[RuntimeVariable]
- var mtype: MType = recv_mtype
- var recv_var = null
- if mproperty.is_init then
- var recv_mtype = recv_mtype
- recv_var = nitni_visitor.init_instance_or_extern(recv_mtype)
- nitni_visitor.add("{mtype.ctype} recv /* var self: {mtype} */;")
- nitni_visitor.add("recv = {recv_var};")
- else
- mtype = mtype.anchor_to(v.compiler.mainmodule, recv_mtype)
- recv_var = nitni_visitor.var_from_c("recv", mtype)
- recv_var = nitni_visitor.box_extern(recv_var, mtype)
- end
-
- vars.add(recv_var)
-
- for p in msignature.mparameters do
- var arg_mtype = p.mtype.anchor_to(v.compiler.mainmodule, recv_mtype)
- var arg = nitni_visitor.var_from_c(p.name, arg_mtype)
- arg = nitni_visitor.box_extern(arg, arg_mtype)
- vars.add(arg)
- end
-
- var ret_var = nitni_visitor.send(mproperty, vars)
-
- var return_mtype = msignature.return_mtype
- if mproperty.is_init then
- if recv_mtype.mclass.kind != extern_kind then ret_var = recv_var
- return_mtype = recv_mtype
- end
- if return_mtype != null then
- assert ret_var != null
- return_mtype = return_mtype.anchor_to(v.compiler.mainmodule, recv_mtype)
- ret_var = nitni_visitor.autobox(ret_var, return_mtype)
- ret_var = nitni_visitor.unbox_extern(ret_var, return_mtype)
- nitni_visitor.ret_to_c(ret_var, return_mtype)
- end
- nitni_visitor.add("\}")
- end
-end
-
redef class MExplicitSuper
private fun compile_extern_callback(v: AbstractCompilerVisitor, ccu: CCompilationUnit, compile_implementation_too: Bool)
do
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2013-2015 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Light FFI support for the compiler
+module light
+
+intrude import abstract_compiler
+intrude import ffi::light_ffi
+
+redef class MModule
+ # `CCompilationUnit` used for nitni signatures and code specific to the compiler
+ var nitni_ccu: nullable CCompilationUnit = null
+
+ private fun nmodule(v: AbstractCompilerVisitor): nullable AModule
+ do
+ return v.compiler.modelbuilder.mmodule2node(self)
+ end
+
+ redef fun finalize_ffi(compiler: AbstractCompiler)
+ do
+ if not uses_ffi then return
+
+ var v = compiler.new_visitor
+ var n = nmodule(v)
+ if n == null then return
+ n.ensure_compile_ffi_wrapper
+ finalize_ffi_wrapper(v.compiler.modelbuilder.compile_dir, v.compiler.mainmodule)
+ for file in ffi_files do v.compiler.extern_bodies.add(file)
+
+ ensure_compile_nitni_base(v)
+
+ nitni_ccu.header_c_types.add("#include \"{c_name}._ffi.h\"\n")
+ nitni_ccu.header_c_types.add """
+extern void nitni_global_ref_incr(void*);
+extern void nitni_global_ref_decr(void*);
+"""
+
+ var cflags = self.cflags[""].join(" ")
+ nitni_ccu.write_as_nitni(self, v.compiler.modelbuilder.compile_dir)
+
+ for file in nitni_ccu.files do
+ var f = new ExternCFile(file, cflags)
+ f.pkgconfigs.add_all pkgconfigs
+ v.compiler.extern_bodies.add(f)
+ end
+
+ # reset FFI things so the next compilation job, if any, starts with a clean context
+ # FIXME clean and rationalize this
+ nitni_ccu = null
+ compiled_ffi_methods.clear
+ ffi_ccu = null
+ ffi_files.clear
+ end
+
+ private fun ensure_compile_nitni_base(v: AbstractCompilerVisitor)
+ do
+ if nitni_ccu != null then return
+
+ nitni_ccu = new CCompilationUnit
+ end
+
+ redef fun collect_linker_libs
+ do
+ if not self.ldflags.keys.has("") then return null
+ return self.ldflags[""]
+ end
+end
+
+redef class AMethPropdef
+ private fun compile_ffi_support_to_c(v: AbstractCompilerVisitor)
+ do
+ var mmodule = mpropdef.mclassdef.mmodule
+ var amodule = v.compiler.modelbuilder.mmodule2node(mmodule)
+ var mclass_type = mpropdef.mclassdef.bound_mtype
+
+ # Declare as extern
+ var csignature = mpropdef.mproperty.build_csignature(mclass_type, mmodule, "___impl", long_signature, internal_call_context)
+ v.declare_once("{csignature};")
+
+ # FFI part
+ amodule.ensure_compile_ffi_wrapper
+ compile_ffi_method(mmodule)
+
+ # nitni - Compile missing callbacks
+ mmodule.ensure_compile_nitni_base(v)
+ end
+
+ # Should we compile the extern method `self`?
+ #
+ # Returns false when restricting to the light FFI on methods using callbacks.
+ fun accept_externmeth: Bool do return true
+
+ redef fun compile_externmeth_to_c(v, mpropdef, arguments)
+ do
+ # if using the old native interface fallback on previous implementation
+ if n_extern_code_block == null then return super
+
+ if not accept_externmeth then return false
+
+ var mmodule = mpropdef.mclassdef.mmodule
+ mmodule.uses_ffi = true
+
+ var mclass_type = mpropdef.mclassdef.bound_mtype
+
+ # Outgoing code in compiler
+ var externname = mpropdef.mproperty.build_cname(mpropdef.mclassdef.bound_mtype, mmodule, "___impl", long_signature)
+ var recv_var: nullable RuntimeVariable = null
+ var return_mtype = mpropdef.msignature.return_mtype
+ if return_mtype != null then
+ return_mtype = return_mtype.anchor_to(mmodule, mclass_type)
+ recv_var = v.new_var(return_mtype)
+ end
+
+ v.adapt_signature(mpropdef, arguments)
+ v.unbox_signature_extern(mpropdef, arguments)
+
+ var arguments_for_c = new Array[String]
+ for a in [0..arguments.length[ do
+ var arg = arguments[a]
+ var param_mtype: MType
+ if a == 0 then
+ param_mtype = mpropdef.mclassdef.mclass.mclass_type
+ else param_mtype = mpropdef.msignature.mparameters[a-1].mtype
+
+ param_mtype = param_mtype.anchor_to(mmodule, mclass_type)
+
+ if param_mtype.is_cprimitive then
+ arguments_for_c.add(arg.name)
+ else
+ v.add("struct nitni_instance* var_for_c_{a};")
+ v.add("var_for_c_{a} = nit_alloc(sizeof(struct nitni_instance));")
+ v.add("var_for_c_{a}->value = {arg.name};")
+ arguments_for_c.add("var_for_c_{a}")
+ end
+ end
+
+ if recv_var == null then
+ v.add("{externname}({arguments_for_c.join(", ")});")
+ else
+ assert return_mtype != null
+ if return_mtype.is_cprimitive then
+ v.add("{recv_var} = {externname}({arguments_for_c.join(", ")});")
+ else
+ v.add("struct nitni_instance* ret_var;")
+ v.add("ret_var = {externname}({arguments_for_c.join(", ")});")
+ v.add("{recv_var} = ret_var->value;")
+ end
+ recv_var = v.box_extern(recv_var, return_mtype)
+ v.ret(recv_var)
+ end
+
+ compile_ffi_support_to_c(v)
+ return true
+ end
+
+ redef fun compile_externinit_to_c(v, mpropdef, arguments)
+ do
+ # if using the old native interface fallback on previous implementation
+ if n_extern_code_block == null then return super
+
+ if not accept_externmeth then return false
+
+ var mmodule = mpropdef.mclassdef.mmodule
+ mmodule.uses_ffi = true
+
+ var mclass_type = mpropdef.mclassdef.bound_mtype
+
+ var externname = mpropdef.mproperty.build_cname(mpropdef.mclassdef.bound_mtype, mmodule, "___impl", long_signature)
+ var return_mtype = arguments.first.mtype
+ var recv_var = v.new_var(return_mtype)
+
+ v.adapt_signature(mpropdef, arguments)
+ v.unbox_signature_extern(mpropdef, arguments)
+
+ arguments.shift
+
+ var arguments_for_c = new Array[String]
+ for a in [0..arguments.length[ do
+ var arg = arguments[a]
+ var param_mtype: MType
+ param_mtype = mpropdef.msignature.mparameters[a].mtype
+ param_mtype = param_mtype.anchor_to(mmodule, mclass_type)
+
+ if param_mtype.is_cprimitive then
+ arguments_for_c.add(arg.name)
+ else
+ v.add("struct nitni_instance* var_for_c_{a};")
+ v.add("var_for_c_{a} = nit_alloc(sizeof(struct nitni_instance));")
+ v.add("var_for_c_{a}->value = {arg.name};")
+ arguments_for_c.add("var_for_c_{a}")
+ end
+ end
+
+ if return_mtype.is_cprimitive then
+ v.add("{recv_var} = {externname}({arguments_for_c.join(", ")});")
+ else
+ v.add("struct nitni_instance* ret_var;")
+ v.add("ret_var = {externname}({arguments_for_c.join(", ")});")
+ v.add("{recv_var} = ret_var->value;")
+ end
+ recv_var = v.box_extern(recv_var, return_mtype)
+ v.ret(recv_var)
+
+ compile_ffi_support_to_c(v)
+ return true
+ end
+end
+
+redef class CCompilationUnit
+ # Compile a `_nitni` files, used to implement nitni features for the compiler
+ fun write_as_nitni(mmodule: MModule, compdir: String)
+ do
+ var base_name = "{mmodule.c_name}._nitni"
+
+ var h_file = "{base_name}.h"
+ write_header_to_file( mmodule, "{compdir}/{h_file}", new Array[String],
+ "{mmodule.c_name.to_s.to_upper}_NITG_NITNI_H")
+
+ var c_file = "{base_name}.c"
+ write_body_to_file( mmodule, "{compdir}/{c_file}", ["\"{h_file}\""] )
+
+ files.add( "{compdir}/{c_file}" )
+ end
+end
+
+redef class AbstractCompiler
+ # Cache to avoid multiple compilation of NULL values
+ # see FIXME in `MNullableType#compile_extern_helper_functions`
+ private var compiled_null_types = new Array[MNullableType]
+end
+
+redef class AbstractCompilerVisitor
+ # Create a `RuntimeVariable` for this C variable originating from C user code
+ private fun var_from_c(name: String, mtype: MType): RuntimeVariable
+ do
+ if mtype.is_cprimitive then
+ return new RuntimeVariable(name, mtype, mtype)
+ else
+ return new RuntimeVariable("{name}->value", mtype, mtype)
+ end
+ end
+
+ # Return a `RuntimeVarible` to C user code
+ private fun ret_to_c(src: RuntimeVariable, mtype: MType)
+ do
+ if mtype.is_cprimitive then
+ add("return {src};")
+ else
+ add("struct nitni_instance* ret_for_c;")
+ add("ret_for_c = nit_alloc(sizeof(struct nitni_instance));")
+ add("ret_for_c->value = {src};")
+ add("return ret_for_c;")
+ end
+ end
+end
+
+redef class MType
+ private fun compile_extern_type(v: AbstractCompilerVisitor, ccu: CCompilationUnit)
+ do
+ assert not is_cprimitive
+
+ # define friendly type
+ ccu.header_c_types.add("#ifndef NIT_TYPE_{cname}\n")
+ ccu.header_c_types.add("#define NIT_TYPE_{cname} 1\n")
+ ccu.header_c_types.add("typedef struct nitni_instance *{cname};\n")
+ ccu.header_c_types.add("#endif\n")
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Compiler support for the light FFI only, detects unsupported usage of callbacks
+module light_only
+
+import light
+
+redef class MClassType
+ redef fun cname_normal_class do return "void*"
+end
+
+redef class AMethPropdef
+ redef fun accept_externmeth do return n_extern_calls == null
+end
if compiler.modelbuilder.toolcontext.opt_invocation_metrics.value then add("count_invoke_by_tables++;")
assert arguments.length == mmethod.intro.msignature.arity + 1 else debug("Invalid arity for {mmethod}. {arguments.length} arguments given.")
- var recv = arguments.first
var res0 = before_send(mmethod, arguments)
var runtime_function = mmethod.intro.virtual_runtime_function
var msignature = runtime_function.called_signature
+ adapt_signature(mmethod.intro, arguments)
+
var res: nullable RuntimeVariable
var ret = msignature.return_mtype
if ret == null then
res = self.new_var(ret)
end
- var ss = new FlatBuffer
-
- ss.append("{recv}")
- for i in [0..msignature.arity[ do
- var a = arguments[i+1]
- var t = msignature.mparameters[i].mtype
- if i == msignature.vararg_rank then
- t = arguments[i+1].mcasttype
- end
- a = self.autobox(a, t)
- ss.append(", {a}")
- end
+ var ss = arguments.join(", ")
var const_color = mentity.const_color
var ress
#Build BOX
self.provide_declaration("BOX_{c_name}", "val* BOX_{c_name}({mtype.ctype_extern});")
v.add_decl("/* allocate {mtype} */")
- v.add_decl("val* BOX_{mtype.c_name}({mtype.ctype} value) \{")
+ v.add_decl("val* BOX_{mtype.c_name}({mtype.ctype_extern} value) \{")
v.add("struct instance_{c_name}*res = nit_alloc(sizeof(struct instance_{c_name}));")
v.require_declaration("class_{c_name}")
v.add("res->class = &class_{c_name};")
# Dot script of the graph.
var dot: Text
+
+ redef var is_empty = false
end
redef class MModulePage
redef fun build_inh_list(v, doc) do
var section = new ImportationListSection(mentity)
+ var group = new PanelGroup("List")
var imports = self.imports.to_a
v.name_sorter.sort(imports)
- section.add_child new HierarchyListArticle(mentity, "Imports", imports)
+ group.add_child new HierarchyListArticle(mentity, "Imports", imports)
var clients = self.clients.to_a
v.name_sorter.sort(clients)
- section.add_child new HierarchyListArticle(mentity, "Clients", clients)
+ group.add_child new HierarchyListArticle(mentity, "Clients", clients)
+ section.add_child group
section.parent = root.children.first
root.children.first.children.insert(section, 1)
end
redef class MClassPage
redef fun build_inh_list(v, doc) do
var section = new InheritanceListSection(mentity)
+ var group = new PanelGroup("List")
var parents = self.parents.to_a
v.name_sorter.sort(parents)
- section.add_child new HierarchyListArticle(mentity, "Parents", parents)
+ group.add_child new HierarchyListArticle(mentity, "Parents", parents)
var ancestors = self.ancestors.to_a
v.name_sorter.sort(ancestors)
- section.add_child new HierarchyListArticle(mentity, "Ancestors", ancestors)
+ group.add_child new HierarchyListArticle(mentity, "Ancestors", ancestors)
var children = self.children.to_a
v.name_sorter.sort(children)
- section.add_child new HierarchyListArticle(mentity, "Children", children)
+ group.add_child new HierarchyListArticle(mentity, "Children", children)
var descendants = self.descendants.to_a
v.name_sorter.sort(descendants)
- section.add_child new HierarchyListArticle(mentity, "Descendants", descendants)
+ group.add_child new HierarchyListArticle(mentity, "Descendants", descendants)
+ section.add_child group
section.parent = root.children.first
root.children.first.children.insert(section, 1)
end
# FIXME diff hack
class ImportationListSection
- super DocSection
+ super TabbedGroup
super MEntityComposite
end
# FIXME diff hack
class InheritanceListSection
- super DocSection
+ super TabbedGroup
super MEntityComposite
end
# Build top menu template if any.
fun init_topmenu(v: RenderHTMLPhase, doc: DocModel) do
topmenu = new DocTopMenu
- var brand = v.ctx.opt_custom_brand.value
- if brand != null then
- var tpl = new Template
- tpl.add "<span class='navbar-brand'>"
- tpl.add brand
- tpl.add "</span>"
- topmenu.brand = tpl
- end
+ topmenu.brand = v.ctx.opt_custom_brand.value
var title = "Overview"
if v.ctx.opt_custom_title.value != null then
title = v.ctx.opt_custom_title.value.to_s
if mentity isa MModule then
html_source_link = v.html_source_link(mentity.location)
end
- else if mentity isa MClass then
- var title = new Template
- title.add mentity.html_icon
- title.add mentity.html_link
- html_title = title
- html_subtitle = mentity.html_namespace
- toc_title = mentity.html_name
- is_no_body = true
else if mentity isa MClassDef then
var title = new Template
title.add "in "
redef fun provide_default_value(key) do
var v = new QuickSearchResultList
+ assert key isa String
self[key] = v
return v
end
# TODO this should move to MEntity?
private fun build_mmodule_list(v: IntroRedefListPhase, doc: DocModel, mmodule: MModule) do
+ var section = new IntrosRedefsSection(mentity)
+ var group = new PanelGroup("List")
var intros = mmodule.intro_mclassdefs(v.ctx.min_visibility).to_a
doc.mainmodule.linearize_mclassdefs(intros)
- add_child new IntrosRedefsListArticle(mentity, "Introduces", intros)
+ group.add_child new IntrosRedefsListArticle(mentity, "Introduces", intros)
var redefs = mmodule.redef_mclassdefs(v.ctx.min_visibility).to_a
doc.mainmodule.linearize_mclassdefs(redefs)
- add_child new IntrosRedefsListArticle(mentity, "Redefines", redefs)
+ group.add_child new IntrosRedefsListArticle(mentity, "Redefines", redefs)
+ section.add_child group
+ add_child(section)
end
# TODO this should move to MEntity?
private fun build_mclassdef_list(v: IntroRedefListPhase, doc: DocModel, mclassdef: MClassDef) do
+ var section = new IntrosRedefsSection(mentity)
+ var group = new PanelGroup("List")
var intros = mclassdef.collect_intro_mpropdefs(v.ctx.min_visibility).to_a
# FIXME avoid diff changes
# v.ctx.mainmodule.linearize_mpropdefs(intros)
- add_child new IntrosRedefsListArticle(mentity, "Introduces", intros)
+ group.add_child new IntrosRedefsListArticle(mentity, "Introduces", intros)
var redefs = mclassdef.collect_redef_mpropdefs(v.ctx.min_visibility).to_a
# FIXME avoid diff changes
# v.ctx.mainmodule.linearize_mpropdefs(redefs)
- add_child new IntrosRedefsListArticle(mentity, "Redefines", redefs)
+ group.add_child new IntrosRedefsListArticle(mentity, "Redefines", redefs)
+ section.add_child group
+ add_child(section)
end
end
+# Section that contains the intros and redefs lists.
+class IntrosRedefsSection
+ super TabbedGroup
+ super MEntitySection
+end
+
# An article that displays a list of introduced / refined mentities.
#
# FIXME diff hack
module doc_structure
import doc_concerns
+import modelize
# StructurePhase populates the DocPage content with section and article.
#
var mclasses = mclasses_for_mmodule(mentity).to_a
v.name_sorter.sort(mclasses)
for mclass in mclasses do
- var article = new DefinitionArticle(mclass)
+ var article = new DefinitionListArticle(mclass)
var mclassdefs = mclassdefs_for(mclass).to_a
if not mclassdefs.has(mclass.intro) then
article.add_child(new DefinitionArticle(mclass.intro))
mentity.intro_mmodule.mgroup.mproject.booster_rank = 0
mentity.intro_mmodule.mgroup.booster_rank = 0
mentity.intro_mmodule.booster_rank = 0
+ var constructors = new ConstructorsSection(mentity)
+ var minit = mentity.root_init
+ if minit != null then
+ constructors.add_child new DefinitionArticle(minit)
+ end
+ section.add_child constructors
section.add_child new ConcernsArticle(mentity, concerns)
for mentity in concerns do
var ssection = new ConcernSection(mentity)
v.name_sorter.sort(group)
for mprop in group do
for mpropdef in mpropdefs_for(mprop, mentity) do
- ssection.add_child new DefinitionArticle(mpropdef)
+ if mpropdef isa MMethodDef and mpropdef.mproperty.is_init then
+ if mpropdef == minit then continue
+ constructors.add_child new DefinitionArticle(mpropdef)
+ else
+ ssection.add_child new DefinitionArticle(mpropdef)
+ end
end
end
end
end
end
+# A group of sections that can be displayed together in a tab.
+#
+# Display the first child and hide less relevant data in other panels.
+class TabbedGroup
+ super DocSection
+end
+
+# A group of sections that can be displayed together in a tab panel.
+class PanelGroup
+ super DocSection
+
+ # The title of this group.
+ var group_title: String
+end
+
# A DocComposite element about a MEntity.
class MEntityComposite
super DocComposite
var mentity: MEntity
end
+# A list of constructors.
+class ConstructorsSection
+ super MEntitySection
+end
+
# A Section about a Concern.
#
# Those sections are used to build the page summary.
var concerns: ConcernsTree
end
+# An article that displaus a list of definition belonging to a MEntity.
+class DefinitionListArticle
+ super TabbedGroup
+ super MEntityArticle
+end
+
# An article that display the definition text of a MEntity.
class DefinitionArticle
super MEntityArticle
end
end
+# A component that display tabbed data.
+class DocTabs
+ super BSComponent
+
+ # HTML id of this component.
+ var html_id: String
+
+ # Text displayed on the tabs dropdown button.
+ var drop_text: String
+
+ # Panels to display in this tab group.
+ var panels = new Array[DocTabPanel]
+
+ # Droplist containing links to panels.
+ #
+ # Can also be used to add external links.
+ var drop_list: DocTabsDrop is lazy do return new DocTabsDrop(html_id, drop_text)
+
+ # Adds a new `panel` to that tab.
+ #
+ # You should always use this instead of `panels.add` because it also set the
+ # `drop_list` entry.
+ fun add_panel(panel: DocTabPanel) do
+ drop_list.add_li panel.render_tab
+ panels.add panel
+ end
+
+ redef fun rendering do
+ if panels.is_empty then return
+ panels.first.is_active = true
+ add "<div role=\"tabpanel\">"
+ if drop_list.items.length > 1 then add drop_list
+ add " <div class=\"tab-content\">"
+ for panel in panels do
+ add panel
+ end
+ add " </div>"
+ add "</div>"
+ end
+end
+
+# A list of tab regrouped in a dropdown
+class DocTabsDrop
+ super UnorderedList
+
+ # HTML id used by the tabs group.
+ var html_id: String
+
+ # Title to display in the tab item.
+ var html_title: String
+
+ redef fun rendering do
+ add """<ul id="{{{html_id}}}-tabs" class="nav pull-right" role="tablist">"""
+ add """ <li role="presentation" class="dropdown pull-right">"""
+ add """ <a href="#" id="{{{html_id}}}-drop" class="dropdown-toggle"
+ data-toggle="dropdown" aria-controls="{{{html_id}}}-contents"
+ aria-expanded="false">"""
+ add html_title
+ add """ <span class="glyphicon glyphicon-menu-hamburger"></span>"""
+ add """ </a>"""
+ add """ <ul class="dropdown-menu" role="menu"
+ aria-labelledby="{{{html_id}}}-drop" id="{{{html_id}}}-contents">"""
+ for item in items do add item
+ add " </ul>"
+ add " </li>"
+ add "</ul>"
+ end
+end
+
+# A panel that goes in a DocTabs.
+class DocTabPanel
+ super BSComponent
+
+ # HTML id of this panel.
+ var html_id: String
+
+ # Title of this panel as displayed in the tab label.
+ var tab_title: String
+
+ # HTML content of this panel.
+ var html_content: Writable is writable
+
+ # Is this panel visible by default?
+ var is_active = false
+
+ redef fun rendering do
+ var active = ""
+ if is_active then active = "active in"
+ add "<div role=\"tabpanel\" class=\"tab-pane fade {active}\""
+ add " id=\"{html_id}\" aria-labelledby=\"{html_id}-tab\">"
+ add html_content
+ add "</div>"
+ end
+
+ private fun render_tab: DocTabItem do return new DocTabItem(tab_title, html_id)
+end
+
+# A ListItem that goes in a DocTabsDrop.
+private class DocTabItem
+ super ListItem
+
+ # Panel id to trigger when the link is clicked.
+ var target_id: String
+
+ redef fun rendering do
+ add "<li{render_css_classes}>"
+ add " <a role=\"tab\" data-toggle=\"tab\" aria-expanded=\"false\" tabindex=\"-1\""
+ add " id=\"{target_id}-tab\" href=\"#{target_id}\" aria-controls=\"{target_id}\">"
+ add text
+ add " </a>"
+ add "</li>"
+ end
+end
+
# A HTML tag attribute
# `<tag attr="value">`
#
# FIXME annotation should be handled in their own way
redef fun html_modifiers do
+ if mproperty.is_init then
+ var res = new Array[String]
+ if mproperty.visibility != public_visibility then
+ res.add mproperty.visibility.to_s
+ end
+ return res
+ end
var res = super
if is_abstract then
res.add "abstract"
else if is_intern then
res.add "intern"
end
+ res.add "fun"
+ return res
+ end
+
+ redef fun html_declaration do
if mproperty.is_init then
- res.add "init"
- else
- res.add "fun"
+ var tpl = new Template
+ tpl.add "<span>"
+ tpl.add html_modifiers.join(" ")
+ tpl.add " "
+ tpl.add html_link
+ tpl.add html_signature
+ tpl.add "</span>"
+ return tpl
end
- return res
+ return super
+ end
+
+ redef fun html_short_signature do
+ if mproperty.is_root_init and new_msignature != null then
+ return new_msignature.html_short_signature
+ end
+ return msignature.html_short_signature
end
- redef fun html_short_signature do return msignature.html_short_signature
- redef fun html_signature do return msignature.html_signature
+ redef fun html_signature do
+ if mproperty.is_root_init and new_msignature != null then
+ return new_msignature.html_signature
+ end
+ return msignature.html_signature
+ end
end
redef class MVirtualTypeProp
end
lst.add_li new ListItem(content)
end
+
+ # ID used in HTML tab labels.
+ #
+ # We sanitize it for Boostrap JS panels that do not like ":" and "." in ids.
+ var html_tab_id: String is lazy do
+ var id = html_id.replace(":", "")
+ id = id.replace(".", "")
+ return "{id}-tab"
+ end
end
redef class DocSection
end
end
+redef class TabbedGroup
+ redef fun render_body do
+ var tabs = new DocTabs("{html_id}.tabs", "")
+ for child in children do
+ if child.is_hidden then continue
+ tabs.add_panel new DocTabPanel(child.html_tab_id, child.toc_title, child)
+ end
+ addn tabs
+ end
+end
+
+redef class PanelGroup
+ redef var html_id is lazy do return "group:{group_title.to_lower.to_snake_case}"
+ redef var html_title = null
+ redef var toc_title is lazy do return group_title
+ redef var is_toc_hidden = true
+end
+
redef class HomeArticle
redef var html_id = "article:home"
redef var html_title = "Overview"
redef var html_subtitle is lazy do return mentity.html_declaration
end
+redef class ConstructorsSection
+ redef var html_id is lazy do return "article:{mentity.nitdoc_id}.constructors"
+ redef var html_title = "Constructors"
+ redef var html_subtitle = null
+ redef fun is_toc_hidden do return is_empty
+end
+
redef class ConcernSection
redef var html_id is lazy do return "concern:{mentity.nitdoc_id}"
redef var html_title is lazy do return "in {mentity.nitdoc_name}"
# Link to source to display if any.
var html_source_link: nullable Writable is noinit, writable
- redef fun render_title do
+ redef fun render_body do
+ var tabs = new DocTabs("{html_id}.tabs", "")
+ var comment = mentity.html_comment
+ if comment != null then
+ tabs.add_panel new DocTabPanel("{html_tab_id}-comment", "Comment", comment)
+ end
+ for child in children do
+ if child.is_hidden then continue
+ tabs.add_panel new DocTabPanel(child.html_tab_id, child.toc_title, child)
+ end
var lnk = html_source_link
if lnk != null then
- add "<div class='source-link'>"
- add lnk
- addn "</div>"
+ tabs.drop_list.items.add new ListItem(lnk)
end
- super
- end
-
- redef fun render_body do
- var comment = mentity.html_comment
- if comment != null then addn comment
- super
+ addn tabs
end
end
redef fun render_body do add concerns.html_list
end
+redef class DefinitionListArticle
+ redef var html_id is lazy do return "article:{mentity.nitdoc_id}.definition-list"
+
+ redef var html_title is lazy do
+ var title = new Template
+ title.add mentity.html_icon
+ title.add mentity.html_link
+ return title
+ end
+
+ redef var html_subtitle is lazy do return mentity.html_namespace
+ redef var toc_title is lazy do return mentity.html_name
+end
+
redef class DefinitionArticle
redef var html_id is lazy do return "article:{mentity.nitdoc_id}.definition"
redef var html_title is lazy do return mentity.html_name
# Link to source to display if any.
var html_source_link: nullable Writable is noinit, writable
- redef fun render_title do
- var lnk = html_source_link
- if lnk != null then
- add "<div class='source-link'>"
- add lnk
- addn "</div>"
- end
- super
- end
-
redef fun render_body do
+ var tabs = new DocTabs("{html_id}.tabs", "")
if not is_no_body then
var comment
if is_short_comment then
else
comment = mentity.html_comment
end
- if comment != null then addn comment
+ if comment != null then
+ tabs.add_panel new DocTabPanel("{html_tab_id}-comment", "Comment", comment)
+ end
end
- super
+ for child in children do
+ if child.is_hidden then continue
+ tabs.add_panel new DocTabPanel(child.html_tab_id, child.toc_title, child)
+ end
+ var lnk = html_source_link
+ if lnk != null then
+ tabs.drop_list.items.add new ListItem(lnk)
+ end
+ addn tabs
end
end
redef var html_id is lazy do return "article:{list_title}_{mentity.nitdoc_id}.hierarchy"
redef var html_title is lazy do return list_title
redef fun is_empty do return mentities.is_empty
- redef fun is_toc_hidden do return mentities.is_empty
+ redef var is_toc_hidden = true
redef fun render_body do
var lst = new UnorderedList
end
end
-redef class IntrosRedefsListArticle
+redef class IntrosRedefsSection
redef var html_id is lazy do return "article:{mentity.nitdoc_id}.intros_redefs"
+ redef var toc_title do return "Intros / Redefs"
+ redef var html_title = null
+ redef var html_subtitle = null
+ redef var is_toc_hidden = true
+end
+
+redef class IntrosRedefsListArticle
+ redef var html_id is lazy do return "article:{list_title}_{mentity.nitdoc_id}.intros_redefs"
redef var html_title is lazy do return list_title
redef fun is_hidden do return mentities.is_empty
redef var is_toc_hidden = true
module c
import ffi_base
+import light_c
-redef class FFILanguageAssignationPhase
- var c_language: FFILanguage = new CLanguage(self)
-end
-
-class CLanguage
- super FFILanguage
-
- redef fun identify_language(n) do return n.is_c
-
- redef fun compile_module_block(block, ecc, mmodule)
- do
- if block.is_c_header then
- ecc.header_custom.add block.location.as_line_pragma
- ecc.header_custom.add "\n"
- ecc.header_custom.add block.code
- else if block.is_c_body then
- ecc.body_impl.add block.location.as_line_pragma
- ecc.body_impl.add "\n"
- ecc.body_impl.add block.code
- end
- end
-
- redef fun compile_extern_method(block, m, ecc, mmodule)
- do
- var fc = new ExternCFunction(m, mmodule)
- fc.decls.add( block.location.as_line_pragma )
- fc.exprs.add( block.code )
- ecc.add_exported_function( fc )
- end
-
- redef fun compile_extern_class(block, m, ecc, mmodule) do end
-
- redef fun get_ftype(block, m) do return new ForeignCType(block.code)
-
+redef class CLanguage
redef fun compile_callback(callback, mmodule, mainmodule, ecc)
do
callback.compile_callback_to_c(mainmodule, ecc)
end
end
-redef class AExternCodeBlock
- fun is_c: Bool do return language_name == null or
- language_name_lowered == "c" or language_name_lowered.has_prefix( "c " )
-
- fun is_c_body: Bool do return language_name == null or
- language_name_lowered == "c" or language_name_lowered == "c body"
-
- fun is_c_header: Bool do return language_name_lowered == "c header"
-end
-
-redef class Location
- fun as_line_pragma: String do return "#line {line_start-1} \"{file.filename}\"\n"
-end
-
-redef class MModule
- # FIXME make nullable the key of `cflags`, `ldflags` and `cppflags` when
- # supported by the bootstrap
-
- # Custom options for the C compiler (CFLAGS)
- var cflags = new MultiHashMap[String, String]
-
- # Custom options for the C linker (LDFLAGS)
- var ldflags = new MultiHashMap[String, String]
-
- # Additional libraries needed for the compilation
- # Will be used with pkg-config
- var pkgconfigs = new Array[String]
-end
-
-class ForeignCType
- super ForeignType
-
- redef var ctype: String
-end
-
redef class NitniCallback
fun compile_callback_to_c(mmodule: MModule, ffi_ccu: CCompilationUnit) do end
end
-redef class Object
- # Context when calling user C code from generated code
- fun to_c_call_context: ToCCallContext do return once new ToCCallContext
-
- # Context when calling generated code from user C code
- fun from_c_call_context: FromCCallContext do return once new FromCCallContext
-end
-
redef class MExplicitCall
redef fun compile_callback_to_c(mmodule, ffi_ccu)
do
ffi_ccu.body_decl.add("#define {friendly_cname} {full_cname}\n")
end
end
-
-# Context when calling user C code from generated code
-class ToCCallContext
- super CallContext
-
- # TODO: private init because singleton instance (see `to_c_call_context`)
-
- redef fun name_mtype(mtype)
- do
- if mtype isa MClassType and mtype.mclass.kind == extern_kind then return "void *"
- return mtype.cname
- end
-end
-
-# Context when calling generated code from user C code
-class FromCCallContext
- super CallContext
-
- # TODO: private init because singleton instance (see `from_c_call_context`)
-
- redef fun name_mtype(mtype) do return mtype.cname
-end
-
-class ExternCFunction
- super CFunction
-
- var method: AMethPropdef
-
- init (method: AMethPropdef, mmodule: MModule)
- do
- self.method = method
-
- var recv_mtype = method.mpropdef.mclassdef.bound_mtype
- var csignature = method.mpropdef.mproperty.build_csignature(recv_mtype, mmodule, "___impl", long_signature, from_c_call_context)
-
- super( csignature )
- end
-end
# Manages all extern classes and their associated foreign type.
module extern_classes
-import ffi_base
+import light_ffi_base
+import modelize
redef class ToolContext
var extern_classes_typing_phase_ast: Phase = new ExternClassesTypingPhaseAst(self, [ffi_language_assignation_phase, modelize_class_phase])
# See the License for the specific language governing permissions and
# limitations under the License.
-# FFI concers common between the compilers and the interpreter.
-# Offers services to compile modules using foreign code. Mainly allows
-# to wrap foreign code in Nit methods.
+# Full FFI support, independent of the compiler
+#
+# The full FFI support all the features of the light FFI and more:
+#
+# * More foreign languages: **C++, Java and Objective-C**.
+# * **Callbacks** to Nit from foreign codes.
+# The callbacks are declared in Nit using the `import` annotation on extern methods.
+# They are then generated on demand for the target foreign language.
+# * **Static Nit types** in C for precise typing and static typing errors in C.
+# * **Propagating public code blocks** at the module level (C Header).
+# This allows to use extern classes in foreign code in other modules
+# without having to import the related headers.
+# This is optional in C as it is easy to find the correct importation.
+# However it is important in Java and other complex FFIs.
+# * **Reference pinning** of Nit objects from foreign code.
+# This ensure that objects referenced from foreign code are not liberated by the GC.
+# * FFI **annotations**:
+# * `cflags`, `ldflags` and `cppflags` pass arguments to the C and C++
+# compilers and linker.
+# * `pkgconfig` calls the `pkg-config` program to get the arguments
+# to pass to the C copiler and linker.
+# * `extra_java_files` adds Java source file to the compilation chain.
module ffi
import modelbuilder
import java
import extra_java_files
import objc
+intrude import light_ffi
redef class MModule
- # Does this module uses the FFI?
- var uses_ffi: Bool = false
-
- # C compilation unit for the FFI files
- private var ffi_ccu: nullable CCompilationUnit = null
-
- # Foreign language used in this AModule
- private var present_languages = new HashSet[FFILanguage]
-
# Complete the compilation of the FFI code
- fun finalize_ffi_wrapper(compdir: String, mainmodule: MModule)
+ redef fun finalize_ffi_wrapper(compdir, mainmodule)
do
for language in ffi_callbacks.keys do
for callback in ffi_callbacks[language] do
if mod.uses_ffi then ffi_ccu.header_custom.add("#include \"{mod.c_name}._ffi.h\"\n")
end
- var cflags = self.cflags[""].join(" ")
-
- ffi_ccu.write_as_impl(self, compdir)
- for filename in ffi_ccu.files do
- var f = new ExternCFile(filename, cflags)
- f.pkgconfigs.add_all pkgconfigs
- ffi_files.add(f)
- end
- end
-
- # Avoid the compile a ffi propdef more than once
- # See `AMethPropdef::compile_ffi_method`
- # FIXME find a better way
- private var compiled_ffi_methods = new HashSet[AMethPropdef]
-end
-
-redef class AModule
-
- # Ensures all of the general foreign code of the module has been analyzed.
- # Manages header blocks, extern class types and foreign dependancies between modules
- fun ensure_compile_ffi_wrapper
- do
- var mmodule = mmodule
- if mmodule == null or mmodule.ffi_ccu != null then return
-
- # ready extern code compiler
- var ffi_ccu = new CCompilationUnit
- mmodule.ffi_ccu = ffi_ccu
-
- # generate code
- for block in n_extern_code_blocks do
- var language = block.language
- assert language != null
- mmodule.present_languages.add(language)
- language.compile_module_block(block, ffi_ccu, mmodule)
- end
-
- ffi_ccu.header_c_base.add( "#include \"{mmodule.c_name}._nitni.h\"\n" )
-
- ffi_ccu.body_decl.add("#ifdef ANDROID\n")
- ffi_ccu.body_decl.add(" #include <android/log.h>\n")
- ffi_ccu.body_decl.add(" #define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)\n")
- ffi_ccu.body_decl.add("#else\n")
- ffi_ccu.body_decl.add(" #define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)\n")
- ffi_ccu.body_decl.add("#endif\n")
-
- for nclassdef in n_classdefs do
- # Does it declares an extern type?
- if nclassdef isa AStdClassdef and nclassdef.n_extern_code_block != null then
- mmodule.uses_ffi = true
- var language = nclassdef.n_extern_code_block.language
- assert language != null
- mmodule.present_languages.add(language)
- nclassdef.n_extern_code_block.language.compile_extern_class(
- nclassdef.n_extern_code_block.as(not null), nclassdef, ffi_ccu, mmodule)
- end
- end
+ super
end
end
-redef class AMethPropdef
- # Compile the necessary wrapper around this extern method or constructor
- fun compile_ffi_method(mmodule: MModule)
- do
- assert n_extern_code_block != null
-
- if mmodule.compiled_ffi_methods.has(self) then return
- mmodule.compiled_ffi_methods.add self
-
- var language = n_extern_code_block.language
- assert language != null
- mmodule.present_languages.add(language)
- n_extern_code_block.language.compile_extern_method(
- n_extern_code_block.as(not null), self, mmodule.ffi_ccu.as(not null), mmodule)
- end
-end
redef class VerifyNitniCallbacksPhase
redef fun process_npropdef(npropdef)
# See the License for the specific language governing permissions and
# limitations under the License.
-# Tools and utilities for language targetted FFI implementations
+# Tools and utilities for implement FFI with different languages
module ffi_base
import c_tools
import modelbuilder
import nitni
-redef class ToolContext
- var ffi_language_assignation_phase: Phase = new FFILanguageAssignationPhase(self, null)
-end
-
-class FFILanguageAssignationPhase
- super Phase
-
- # All supported languages
- var languages = new Array[FFILanguage]
-
- redef fun process_nmodule(nmodule)
- do
- for block in nmodule.n_extern_code_blocks do
- verify_foreign_code_on_node( block )
- end
- end
-
- redef fun process_npropdef(npropdef)
- do
- if npropdef isa AMethPropdef then
- var code_block = npropdef.n_extern_code_block
- if code_block != null then
- verify_foreign_code_on_node( code_block )
- end
- end
- end
-
- redef fun process_nclassdef(nclassdef)
- do
- if nclassdef isa AStdClassdef and nclassdef.n_extern_code_block != null then
- verify_foreign_code_on_node( nclassdef.n_extern_code_block.as(not null) )
- end
- end
-
- private fun verify_foreign_code_on_node(n: AExternCodeBlock)
- do
- var found = false
- for v in languages do
- var identified = v.identify_language(n)
- if identified then
- if found and identified then
- toolcontext.error(n.location, "FFI Error: two languages identified as possible handlers.")
- end
- n.language = v
- found = true
- end
- end
-
- if not found then toolcontext.error(n.location, "FFI Error: unsupported language.")
- end
-end
+import light_ffi_base
redef class MModule
- var ffi_files = new Array[ExternFile]
-
# Callbacks used by this module, classified by language
var ffi_callbacks = new HashMap[FFILanguage, Set[NitniCallback]]
end
-redef class AExternCodeBlock
- fun language_name: nullable String do
- if n_in_language == null then return null
- return n_in_language.n_string.without_quotes
- end
- fun language_name_lowered: nullable String do
- if language_name == null then return null
- return language_name.to_lower
- end
-
- fun code: String do return n_extern_code_segment.without_guard
-
- var language: nullable FFILanguage = null
-end
-
# Visitor for a specific languages. Works kinda like a `Phase` and is executed
# by a `Phase`.
-class FFILanguage
- var ffi_language_assignation_phase: FFILanguageAssignationPhase
-
- init
- do
- ffi_language_assignation_phase.languages.add(self)
- end
-
- # Is this `block` written in this language?
- fun identify_language(block: AExternCodeBlock ): Bool is abstract
-
- # Generate wrapper code for this module/header code block
- fun compile_module_block(block: AExternCodeBlock, ecc: CCompilationUnit, mmodule: MModule) is abstract
-
- # Generate wrapper code for this extern method
- fun compile_extern_method(block: AExternCodeBlock, m: AMethPropdef,
- ecc: CCompilationUnit, nmodule: MModule) is abstract
-
- # Generate wrapper code for this extern class
- fun compile_extern_class(block: AExternCodeBlock, m: AClassdef,
- ecc: CCompilationUnit, mmodule: MModule) is abstract
-
- # Get the foreign type of this extern class definition
- fun get_ftype(block: AExternCodeBlock, m: AClassdef): ForeignType is abstract
-
+redef class FFILanguage
# Generate the code to offer this callback if foreign code
fun compile_callback(callback: NitniCallback, mmodule: MModule,
mainmmodule: MModule, ecc: CCompilationUnit) is abstract
-
- # Complete compilation of generated code
- fun compile_to_files(mmodule: MModule, directory: String) do end
-end
-
-redef class TString
- # Returns the content of this node without both of the surrounding "
- fun without_quotes: String
- do
- assert text.length >= 2
- return text.substring(1, text.length-2)
- end
-end
-
-redef class TExternCodeSegment
- # Returns the content of this node without the surrounding `{ and `}
- fun without_guard: String
- do
- assert text.length >= 4
- return text.substring(2, text.length-4)
- end
-end
-
-redef class CCompilationUnit
- fun write_as_impl(mmodule: MModule, compdir: String)
- do
- var base_name = "{mmodule.c_name}._ffi"
-
- var h_file = "{base_name}.h"
- var guard = "{mmodule.c_name.to_upper}_NIT_H"
- write_header_to_file(mmodule, "{compdir}/{h_file}", new Array[String], guard)
-
- var c_file = "{base_name}.c"
- write_body_to_file(mmodule, "{compdir}/{c_file}", ["<stdlib.h>", "<stdio.h>", "\"{h_file}\""])
-
- files.add( "{compdir}/{c_file}" )
- end
-
- fun write_header_to_file(mmodule: MModule, file: String, includes: Array[String], guard: String)
- do
- var stream = new FileWriter.open( file )
-
- # header comments
- var module_info = "/*\n\tExtern implementation of Nit module {mmodule.name}\n*/\n"
-
- stream.write( module_info )
-
- stream.write( "#ifndef {guard}\n" )
- stream.write( "#define {guard}\n\n" )
-
- for incl in includes do stream.write( "#include {incl}\n" )
-
- compile_header_core( stream )
-
- # header file guard close
- stream.write( "#endif\n" )
- stream.close
- end
-
- fun write_body_to_file(mmodule: MModule, file: String, includes: Array[String])
- do
- var stream = new FileWriter.open(file)
-
- var module_info = "/*\n\tExtern implementation of Nit module {mmodule.name}\n*/\n"
-
- stream.write( module_info )
- for incl in includes do stream.write( "#include {incl}\n" )
-
- compile_body_core( stream )
-
- stream.close
- end
-end
-
-class ForeignType
- fun ctype: String do return "void*"
end
var csignature = mproperty.build_c_implementation_signature(recv_mtype, mmodule, "___indirect", long_signature, from_java_call_context)
var cf = new CFunction("JNIEXPORT {csignature}")
cf.exprs.add "\t{mproperty.build_ccall(recv_mtype, mainmodule, null, long_signature, from_java_call_context, null)}\n"
- ccu.add_local_function cf
+ ccu.add_non_static_local_function cf
# In Java, declare the extern method as a private static local method
var java_signature = mproperty.build_csignature(recv_mtype, mainmodule, null, short_signature, java_call_context)
private fun java_call_context: JavaCallContext do return new JavaCallContext
private fun to_java_call_context: ToJavaCallContext do return new ToJavaCallContext
private fun from_java_call_context: FromJavaCallContext do return new FromJavaCallContext
+
+redef class CCompilationUnit
+ # Similar to `add_local_function` but not `static`
+ #
+ # Used when the signature contains a visibility attribute.
+ private fun add_non_static_local_function(c_function: CFunction)
+ do
+ body_decl.add c_function.signature
+ body_decl.add ";\n"
+
+ body_impl.add "\n"
+ body_impl.add c_function.to_writer
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2012-2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Support for nesting C code within a Nit program using its FFI
+module light_c
+
+import modelize::modelize_property
+
+import light_ffi_base
+
+redef class FFILanguageAssignationPhase
+ var c_language: FFILanguage = new CLanguage(self)
+end
+
+class CLanguage
+ super FFILanguage
+
+ redef fun identify_language(n) do return n.is_c
+
+ redef fun compile_module_block(block, ecc, mmodule)
+ do
+ if block.is_c_header then
+ ecc.header_custom.add block.location.as_line_pragma
+ ecc.header_custom.add "\n"
+ ecc.header_custom.add block.code
+ else if block.is_c_body then
+ ecc.body_impl.add block.location.as_line_pragma
+ ecc.body_impl.add "\n"
+ ecc.body_impl.add block.code
+ end
+ end
+
+ redef fun compile_extern_method(block, m, ecc, mmodule)
+ do
+ var fc = new ExternCFunction(m, mmodule)
+ fc.decls.add( block.location.as_line_pragma )
+ fc.exprs.add( block.code )
+ ecc.add_exported_function( fc )
+ end
+
+ redef fun compile_extern_class(block, m, ecc, mmodule) do end
+
+ redef fun get_ftype(block, m) do return new ForeignCType(block.code)
+end
+
+redef class AExternCodeBlock
+ fun is_c: Bool do return language_name == null or
+ language_name_lowered == "c" or language_name_lowered.has_prefix( "c " )
+
+ fun is_c_body: Bool do return language_name == null or
+ language_name_lowered == "c" or language_name_lowered == "c body"
+
+ fun is_c_header: Bool do return language_name_lowered == "c header"
+end
+
+redef class Location
+ fun as_line_pragma: String do return "#line {line_start-1} \"{file.filename}\"\n"
+end
+
+redef class MModule
+ # FIXME make nullable the key of `cflags`, `ldflags` and `cppflags` when
+ # supported by the bootstrap
+
+ # Custom options for the C compiler (CFLAGS)
+ var cflags = new MultiHashMap[String, String]
+
+ # Custom options for the C linker (LDFLAGS)
+ var ldflags = new MultiHashMap[String, String]
+
+ # Additional libraries needed for the compilation
+ # Will be used with pkg-config
+ var pkgconfigs = new Array[String]
+end
+
+class ForeignCType
+ super ForeignType
+
+ redef var ctype: String
+end
+
+redef class Object
+ # Context when calling user C code from generated code
+ fun to_c_call_context: ToCCallContext do return once new ToCCallContext
+
+ # Context when calling generated code from user C code
+ fun from_c_call_context: FromCCallContext do return once new FromCCallContext
+end
+
+# Context when calling user C code from generated code
+class ToCCallContext
+ super CallContext
+
+ # TODO: private init because singleton instance (see `to_c_call_context`)
+
+ redef fun name_mtype(mtype)
+ do
+ if mtype isa MClassType and mtype.mclass.kind == extern_kind then return "void *"
+ return mtype.cname
+ end
+end
+
+# Context when calling generated code from user C code
+class FromCCallContext
+ super CallContext
+
+ # TODO: private init because singleton instance (see `from_c_call_context`)
+
+ redef fun name_mtype(mtype) do return mtype.cname
+end
+
+class ExternCFunction
+ super CFunction
+
+ var method: AMethPropdef
+
+ init (method: AMethPropdef, mmodule: MModule)
+ do
+ self.method = method
+
+ var recv_mtype = method.mpropdef.mclassdef.bound_mtype
+ var csignature = method.mpropdef.mproperty.build_csignature(recv_mtype, mmodule, "___impl", long_signature, from_c_call_context)
+
+ super( csignature )
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2013 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Light FFI support, independent of the compiler
+#
+# The light FFI offers only basic FFI features:
+#
+# * **Extern methods** implemented in C, nested within the Nit code.
+# The body of these method is copied directly to the generated C files for compilation.
+# Also supports extern `new` factories.
+# * Module level **C code blocks**, both "C Body" (the default) and "C Header".
+# They will be copied to the beginning of the generated C files.
+# * Automatic transformation of Nit **primitive types** from/to their equivalent in C.
+# * **Extern classes** to create a Nit class around a C pointer.
+# Allows to specify the equivalent C type of the Nit extern class.
+#
+# These limited features should be easy to implement in new/alternative engines
+# to quickly achieve a bootstrap. For this reason, core features of the Nit
+# standard library should be limited to use the light FFI.
+module light_ffi
+
+import modelbuilder
+
+import nitni::nitni_utilities
+
+intrude import light_ffi_base
+import extern_classes
+import light_c
+
+redef class MModule
+ # Does this module uses the FFI?
+ var uses_ffi: Bool = false
+
+ # C compilation unit for the FFI files
+ private var ffi_ccu: nullable CCompilationUnit = null
+
+ # Foreign language used in this AModule
+ private var present_languages = new HashSet[FFILanguage]
+
+ # Complete the compilation of the FFI code
+ fun finalize_ffi_wrapper(compdir: String, mainmodule: MModule)
+ do
+ var cflags = self.cflags[""].join(" ")
+
+ ffi_ccu.write_as_impl(self, compdir)
+ for filename in ffi_ccu.files do
+ var f = new ExternCFile(filename, cflags)
+ f.pkgconfigs.add_all pkgconfigs
+ ffi_files.add(f)
+ end
+ end
+
+ # Avoid the compile a ffi propdef more than once
+ # See `AMethPropdef::compile_ffi_method`
+ # FIXME find a better way
+ private var compiled_ffi_methods = new HashSet[AMethPropdef]
+end
+
+redef class AModule
+
+ # Ensures all of the general foreign code of the module has been analyzed.
+ # Manages header blocks, extern class types and foreign dependancies between modules
+ fun ensure_compile_ffi_wrapper
+ do
+ var mmodule = mmodule
+ if mmodule == null or mmodule.ffi_ccu != null then return
+
+ # ready extern code compiler
+ var ffi_ccu = new CCompilationUnit
+ mmodule.ffi_ccu = ffi_ccu
+
+ # generate code
+ for block in n_extern_code_blocks do
+ var language = block.language
+ assert language != null
+ mmodule.present_languages.add(language)
+ language.compile_module_block(block, ffi_ccu, mmodule)
+ end
+
+ ffi_ccu.header_c_base.add( "#include \"{mmodule.c_name}._nitni.h\"\n" )
+
+ ffi_ccu.body_decl.add("#ifdef ANDROID\n")
+ ffi_ccu.body_decl.add(" #include <android/log.h>\n")
+ ffi_ccu.body_decl.add(" #define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)\n")
+ ffi_ccu.body_decl.add("#else\n")
+ ffi_ccu.body_decl.add(" #define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)\n")
+ ffi_ccu.body_decl.add("#endif\n")
+
+ for nclassdef in n_classdefs do
+ # Does it declares an extern type?
+ if nclassdef isa AStdClassdef and nclassdef.n_extern_code_block != null then
+ mmodule.uses_ffi = true
+ var language = nclassdef.n_extern_code_block.language
+ assert language != null
+ mmodule.present_languages.add(language)
+ nclassdef.n_extern_code_block.language.compile_extern_class(
+ nclassdef.n_extern_code_block.as(not null), nclassdef, ffi_ccu, mmodule)
+ end
+ end
+ end
+end
+
+redef class AMethPropdef
+ # Compile the necessary wrapper around this extern method or constructor
+ fun compile_ffi_method(mmodule: MModule)
+ do
+ assert n_extern_code_block != null
+
+ if mmodule.compiled_ffi_methods.has(self) then return
+ mmodule.compiled_ffi_methods.add self
+
+ var language = n_extern_code_block.language
+ assert language != null
+ mmodule.present_languages.add(language)
+ n_extern_code_block.language.compile_extern_method(
+ n_extern_code_block.as(not null), self, mmodule.ffi_ccu.as(not null), mmodule)
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2012 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Tools and utilities for implement FFI with different languages
+module light_ffi_base
+
+import c_tools
+import parser
+import modelbuilder
+import nitni::nitni_utilities
+
+redef class ToolContext
+ # Phase that assign a `FFILanguage` to all `AExternCodeBlock`
+ var ffi_language_assignation_phase: Phase = new FFILanguageAssignationPhase(self, null)
+end
+
+# Phase that assign a `FFILanguage` to all `AExternCodeBlock`
+#
+# It will also report errors when using an unknown foreign langages.
+class FFILanguageAssignationPhase
+ super Phase
+
+ # All supported languages
+ var languages = new Array[FFILanguage]
+
+ redef fun process_nmodule(nmodule)
+ do
+ for block in nmodule.n_extern_code_blocks do
+ verify_foreign_code_on_node( block )
+ end
+ end
+
+ redef fun process_npropdef(npropdef)
+ do
+ if npropdef isa AMethPropdef then
+ var code_block = npropdef.n_extern_code_block
+ if code_block != null then
+ verify_foreign_code_on_node( code_block )
+ end
+ end
+ end
+
+ redef fun process_nclassdef(nclassdef)
+ do
+ if nclassdef isa AStdClassdef and nclassdef.n_extern_code_block != null then
+ verify_foreign_code_on_node( nclassdef.n_extern_code_block.as(not null) )
+ end
+ end
+
+ private fun verify_foreign_code_on_node(n: AExternCodeBlock)
+ do
+ var found = false
+ for v in languages do
+ var identified = v.identify_language(n)
+ if identified then
+ if found and identified then
+ toolcontext.error(n.location, "FFI Error: two languages identified as possible handlers.")
+ end
+ n.language = v
+ found = true
+ end
+ end
+
+ if not found then toolcontext.error(n.location, "FFI Error: unsupported language.")
+ end
+end
+
+redef class MModule
+ # All FFI files linked to this module
+ var ffi_files = new Array[ExternFile]
+end
+
+redef class AExternCodeBlock
+ # User entered name for the language of this block
+ fun language_name: nullable String do
+ if n_in_language == null then return null
+ return n_in_language.n_string.without_quotes
+ end
+
+ # `language_name`, in lower case
+ protected fun language_name_lowered: nullable String do
+ if language_name == null then return null
+ return language_name.to_lower
+ end
+
+ # User entered foreign code in the block
+ fun code: String do return n_extern_code_segment.without_guard
+
+ # `FFILanguage` assigned to this block
+ var language: nullable FFILanguage = null
+end
+
+# Visitor for a specific languages. Works kinda like a `Phase` and is executed
+# by a `Phase`.
+class FFILanguage
+ # `FFILanguageAssignationPhase` assigning `self` to `AExternCodeBlock`s
+ var ffi_language_assignation_phase: FFILanguageAssignationPhase
+
+ init
+ do
+ ffi_language_assignation_phase.languages.add(self)
+ end
+
+ # Is this `block` written in this language?
+ fun identify_language(block: AExternCodeBlock ): Bool is abstract
+
+ # Generate wrapper code for this module/header code block
+ fun compile_module_block(block: AExternCodeBlock, ecc: CCompilationUnit, mmodule: MModule) is abstract
+
+ # Generate wrapper code for this extern method
+ fun compile_extern_method(block: AExternCodeBlock, m: AMethPropdef,
+ ecc: CCompilationUnit, nmodule: MModule) is abstract
+
+ # Generate wrapper code for this extern class
+ fun compile_extern_class(block: AExternCodeBlock, m: AClassdef,
+ ecc: CCompilationUnit, mmodule: MModule) is abstract
+
+ # Get the foreign type of this extern class definition
+ fun get_ftype(block: AExternCodeBlock, m: AClassdef): ForeignType is abstract
+
+ # Complete compilation of generated code
+ fun compile_to_files(mmodule: MModule, directory: String) do end
+end
+
+redef class TString
+ # Returns the content of this node without both of the surrounding "
+ fun without_quotes: String
+ do
+ assert text.length >= 2
+ return text.substring(1, text.length-2)
+ end
+end
+
+redef class TExternCodeSegment
+ # Returns the content of this node without the surrounding `{ and `}
+ fun without_guard: String
+ do
+ assert text.length >= 4
+ return text.substring(2, text.length-4)
+ end
+end
+
+redef class CCompilationUnit
+ # Compile as `_ffi` files which contains the implementation of extern methods
+ fun write_as_impl(mmodule: MModule, compdir: String)
+ do
+ var base_name = "{mmodule.c_name}._ffi"
+
+ var h_file = "{base_name}.h"
+ var guard = "{mmodule.c_name.to_upper}_NIT_H"
+ write_header_to_file(mmodule, "{compdir}/{h_file}", new Array[String], guard)
+
+ var c_file = "{base_name}.c"
+ write_body_to_file(mmodule, "{compdir}/{c_file}", ["<stdlib.h>", "<stdio.h>", "\"{h_file}\""])
+
+ files.add( "{compdir}/{c_file}" )
+ end
+
+ # Write the header part to `file` including all `includes` using the `guard`
+ fun write_header_to_file(mmodule: MModule, file: String, includes: Array[String], guard: String)
+ do
+ var stream = new FileWriter.open( file )
+
+ # header comments
+ var module_info = "/*\n\tExtern implementation of Nit module {mmodule.name}\n*/\n"
+
+ stream.write( module_info )
+
+ stream.write( "#ifndef {guard}\n" )
+ stream.write( "#define {guard}\n\n" )
+
+ for incl in includes do stream.write( "#include {incl}\n" )
+
+ compile_header_core( stream )
+
+ # header file guard close
+ stream.write( "#endif\n" )
+ stream.close
+ end
+
+ # Write the body part to `file` including all `includes`
+ fun write_body_to_file(mmodule: MModule, file: String, includes: Array[String])
+ do
+ var stream = new FileWriter.open(file)
+
+ var module_info = "/*\n\tExtern implementation of Nit module {mmodule.name}\n*/\n"
+
+ stream.write( module_info )
+ for incl in includes do stream.write( "#include {incl}\n" )
+
+ compile_body_core( stream )
+
+ stream.close
+ end
+end
+
+# Foreign equivalent types of extern classes
+class ForeignType
+ # C type of `self`, by default it is `void*`
+ fun ctype: String do return "void*"
+end
if e isa AAnnotation then return
super
end
+
+ # Adds a String to the list of strings of the module
+ #
+ # The string needs to be pre-formatted to C standards (escape_to_c)
+ fun add_string(s: String, loc: Location) do
+ var locstr = "{amodule.mmodule.mgroup.name}::{amodule.mmodule.name} {loc.line_start}--{loc.column_start}:{loc.column_end}"
+ if not strings.has_key(s) then
+ var po = new PObject([locstr], s, "")
+ strings[s] = po
+ else
+ strings[s].locations.push locstr
+ end
+ end
end
redef class ANode
redef fun accept_string_finder(v) do
var str = value.as(not null).escape_to_c
var parse = v.toolcontext.parse_expr("\"{str}\".get_translation(\"{v.domain}\", \"{v.languages_location}\").unescape_nit")
- var loc = location
- var locstr = "{v.amodule.mmodule.mgroup.name}::{v.amodule.mmodule.name} {loc.line_start}--{loc.column_start}:{loc.column_end}"
- if not v.strings.has_key(str) then
- var po = new PObject([locstr], str, "")
- v.strings[str] = po
- else
- v.strings[str].locations.push locstr
- end
replace_with(parse)
+ v.add_string(str, location)
+ end
+end
+
+redef class ASuperstringExpr
+
+ redef fun accept_string_finder(v) do
+ var fmt = ""
+ var exprs = new Array[AExpr]
+ for i in n_exprs do
+ if i isa AStringFormExpr then
+ fmt += i.value.as(not null)
+ else
+ fmt += "%"
+ exprs.push i
+ fmt += exprs.length.to_s
+ end
+ end
+ fmt = fmt.escape_to_c
+ v.add_string(fmt, location)
+ var parse = v.toolcontext.parse_expr("\"{fmt}\".get_translation(\"{v.domain}\", \"{v.languages_location}\").unescape_nit.format()")
+ if not parse isa ACallExpr then
+ v.toolcontext.error(location, "Fatal error in i18n annotation, the parsed superstring could not be generated properly")
+ return
+ end
+ var parse_exprs = parse.n_args.n_exprs
+ parse_exprs.add_all exprs
+ replace_with parse
end
end
# Add a constructor to the automated nclassdef
fun generate_deserialization_init(nclassdef: AStdClassdef)
do
- # Do not generate constructors for abstract classes
- if nclassdef.n_classkind isa AAbstractClasskind then return
-
var npropdefs = nclassdef.n_propdefs
var code = new Array[String]
- code.add "init from_deserializer(v: Deserializer)"
+ code.add "redef init from_deserializer(v: Deserializer)"
code.add "do"
+ code.add " super"
code.add " v.notify_of_creation self"
for attribute in npropdefs do if attribute isa AAttrPropdef then
code.add ""
code.add "\tvar {name} = v.deserialize_attribute(\"{name}\")"
- code.add "\tassert {name} isa {type_name} else print \"Unsupported type for attribute '{name}', got '\{{name}.class_name\}' (ex {type_name})\""
+ code.add "\tassert {name} isa {type_name} else print \"Unsupported type for `\{class_name\}::{name}`, got '\{{name}.class_name\}'; expected {type_name}\""
code.add "\tself.{name} = {name}"
end
do
var v = new SimpleMiscVisitor(toolcontext)
v.enter_visit(self)
+
+ var t = location.file.first_token
+ while t != null do
+ t.accept_simple_misc_token(v)
+ t = t.next_token
+ end
end
end
private fun after_simple_misc(v: SimpleMiscVisitor) do end
end
+redef class Token
+ private fun accept_simple_misc_token(v: SimpleMiscVisitor)
+ do
+ end
+end
+
redef class ASignature
redef fun after_simple_misc(v)
do
v.once_count = v.once_count - 1
end
end
+
+redef class TSemi
+ redef fun accept_simple_misc_token(v)
+ do
+ var n = next_token
+ var p = prev_token
+ if
+ n == null or
+ n isa TEol or
+ n isa EOF or
+ n isa TComment or
+ p == null or
+ p isa TEol or
+ p isa EOF or
+ p isa TComment or
+ p isa TSemi
+ then
+ v.warning(self, "semi", "Warning: superfluous `;`.")
+ return
+ end
+ end
+end
# End of this location on `line_end`
var column_end: Int
+ # Builds a location instance from its string representation.
+ #
+ # Examples:
+ #
+ # ~~~
+ # var loc = new Location.from_string("location.nit:82,2--105,8")
+ # assert loc.to_s == "location.nit:82,2--105,8"
+ #
+ # loc = new Location.from_string("location.nit")
+ # assert loc.to_s == "location.nit"
+ #
+ # loc = new Location.from_string("location.nit:82,2")
+ # assert loc.to_s == "location.nit:82,2--0,0"
+ #
+ # loc = new Location.from_string("location.nit:82--105")
+ # assert loc.to_s == "location.nit:82,0--105,0"
+ #
+ # loc = new Location.from_string("location.nit:82,2--105")
+ # assert loc.to_s == "location.nit:82,2--105,0"
+ #
+ # loc = new Location.from_string("location.nit:82--105,8")
+ # assert loc.to_s == "location.nit:82,0--105,8"
+ # ~~~
+ init from_string(string: String) do
+ self.line_start = 0
+ self.line_end = 0
+ self.column_start = 0
+ self.column_end = 0
+ # parses the location string and init position vars
+ var parts = string.split_with(":")
+ var filename = parts.shift
+ self.file = new SourceFile(filename, new FileReader.open(filename))
+ # split position
+ if parts.is_empty then return
+ var pos = parts.first.split_with("--")
+ # split start position
+ if pos.first.has(",") then
+ var pos1 = pos.first.split_with(",")
+ self.line_start = pos1[0].to_i
+ if pos1.length > 1 then
+ self.column_start = pos1[1].to_i
+ end
+ else
+ self.line_start = pos.first.to_i
+ end
+ # split end position
+ if pos.length <= 1 then return
+ if pos[1].has(",") then
+ var pos2 = pos[1].split_with(",")
+ if pos2.length > 1 then
+ self.line_end = pos2[0].to_i
+ self.column_end = pos2[1].to_i
+ else
+ self.line_end = self.line_start
+ self.column_end = pos2[0].to_i
+ end
+ else
+ self.line_end = pos[1].to_i
+ end
+ end
+
# The index in the start character in the source
fun pstart: Int do return file.line_starts[line_start-1] + column_start-1
var initializers = new Array[MProperty]
for npropdef in nclassdef.n_propdefs do
if npropdef isa AMethPropdef then
- if npropdef.mpropdef == null then return # Skip broken attribute
+ if npropdef.mpropdef == null then return # Skip broken method
var at = npropdef.get_single_annotation("autoinit", self)
if at == null then continue # Skip non tagged init
npropdef.mpropdef.mproperty.is_autoinit = true
end
if npropdef isa AAttrPropdef then
- if npropdef.mpropdef == null then return # Skip broken attribute
+ var mreadpropdef = npropdef.mreadpropdef
+ if mreadpropdef == null or mreadpropdef.msignature == null then return # Skip broken attribute
if npropdef.noinit then continue # Skip noinit attribute
var atautoinit = npropdef.get_single_annotation("autoinit", self)
if atautoinit != null then
# For autoinit attributes, call the reader to force
# the lazy initialization of the attribute.
- initializers.add(npropdef.mreadpropdef.mproperty)
- npropdef.mreadpropdef.mproperty.is_autoinit = true
+ initializers.add(mreadpropdef.mproperty)
+ mreadpropdef.mproperty.is_autoinit = true
continue
end
if npropdef.has_value then continue
- var paramname = npropdef.mpropdef.mproperty.name.substring_from(1)
- var ret_type = npropdef.mpropdef.static_mtype
+ var paramname = mreadpropdef.mproperty.name
+ var ret_type = mreadpropdef.msignature.return_mtype
if ret_type == null then return
var mparameter = new MParameter(paramname, ret_type, false, ret_type isa MNullableType)
mparameters.add(mparameter)
var msetter = npropdef.mwritepropdef
if msetter == null then
- # No setter, it is a old-style attribute, so just add it
+ # No setter, it is a readonly attribute, so just add it
initializers.add(npropdef.mpropdef.mproperty)
npropdef.mpropdef.mproperty.is_autoinit = true
else
# Get a `Location` from its string representation.
private fun to_location(loc: String): Location do
- #TODO filepath
- var parts = loc.split_with(":")
- var file = new SourceFile.from_string(parts[0], "")
- if parts.length == 1 then
- return new Location(file, 0, 0, 0, 0)
- end
- var pos = parts[1].split_with("--")
- var pos1 = pos[0].split_with(",")
- var pos2 = pos[1].split_with(",")
- var line_s = pos1[0].to_i
- var line_e = pos2[0].to_i
- var column_s = pos1[1].to_i
- var column_e = 0
- if pos2.length == 2 then pos2[1].to_i
- return new Location(file, line_s, line_e, column_s, column_e)
+ return new Location.from_string(loc)
end
# Get a `MVisibility` from its string representation.
import rapid_type_analysis
import compiler::separate_erasure_compiler
+import compiler::compiler_ffi::light_only
+
redef class ToolContext
redef fun process_options(args)
do
assert ctype != null
return ctype
end
- return mangled_cname
+ return cname_normal_class
end
redef fun cname_blind do
return "struct nitni_instance *"
end
+ # Name of this type in C for normal classes (not extern and not primitive)
+ protected fun cname_normal_class: String do return mangled_cname
+
redef fun mangled_cname do return mclass.name
redef fun is_cprimitive do return mclass.kind == extern_kind or
end
end
-redef class TClassid
+redef class TSemi
redef fun parser_index: Int
do
return 95
end
end
-redef class TId
+redef class TClassid
redef fun parser_index: Int
do
return 96
end
end
-redef class TAttrid
+redef class TId
redef fun parser_index: Int
do
return 97
end
end
-redef class TNumber
+redef class TAttrid
redef fun parser_index: Int
do
return 98
end
end
-redef class THexNumber
+redef class TNumber
redef fun parser_index: Int
do
return 99
end
end
-redef class TFloat
+redef class THexNumber
redef fun parser_index: Int
do
return 100
end
end
-redef class TString
+redef class TFloat
redef fun parser_index: Int
do
return 101
end
end
-redef class TStartString
+redef class TString
redef fun parser_index: Int
do
return 102
end
end
-redef class TMidString
+redef class TStartString
redef fun parser_index: Int
do
return 103
end
end
-redef class TEndString
+redef class TMidString
redef fun parser_index: Int
do
return 104
end
end
-redef class TChar
+redef class TEndString
redef fun parser_index: Int
do
return 105
end
end
-redef class TBadString
+redef class TChar
redef fun parser_index: Int
do
return 106
end
end
-redef class TBadChar
+redef class TBadString
redef fun parser_index: Int
do
return 107
end
end
-redef class TExternCodeSegment
+redef class TBadChar
redef fun parser_index: Int
do
return 108
end
end
+redef class TExternCodeSegment
+ redef fun parser_index: Int
+ do
+ return 109
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
redef class EOF
redef fun parser_index: Int
do
- return 109
+ return 110
end
end
return new TAt.init_tk(location)
end
if accept_token == 96 then
- return new TClassid.init_tk(location)
+ return new TSemi.init_tk(location)
end
if accept_token == 97 then
- return new TId.init_tk(location)
+ return new TClassid.init_tk(location)
end
if accept_token == 98 then
- return new TAttrid.init_tk(location)
+ return new TId.init_tk(location)
end
if accept_token == 99 then
- return new TNumber.init_tk(location)
+ return new TAttrid.init_tk(location)
end
if accept_token == 100 then
- return new THexNumber.init_tk(location)
+ return new TNumber.init_tk(location)
end
if accept_token == 101 then
- return new TFloat.init_tk(location)
+ return new THexNumber.init_tk(location)
end
if accept_token == 102 then
- return new TString.init_tk(location)
+ return new TFloat.init_tk(location)
end
if accept_token == 103 then
- return new TStartString.init_tk(location)
+ return new TString.init_tk(location)
end
if accept_token == 104 then
- return new TMidString.init_tk(location)
+ return new TStartString.init_tk(location)
end
if accept_token == 105 then
- return new TEndString.init_tk(location)
+ return new TMidString.init_tk(location)
end
if accept_token == 106 then
- return new TChar.init_tk(location)
+ return new TEndString.init_tk(location)
end
if accept_token == 107 then
- return new TBadString.init_tk(location)
+ return new TChar.init_tk(location)
end
if accept_token == 108 then
- return new TBadChar.init_tk(location)
+ return new TBadString.init_tk(location)
end
if accept_token == 109 then
+ return new TBadChar.init_tk(location)
+ end
+ if accept_token == 110 then
return new TExternCodeSegment.init_tk(location)
end
abort # unknown token index `accept_token`
starship = '<=>';
bang='!';
at='@';
+semi=';';
classid = uppercase letter*;
id = lowercase letter*;
= moduledecl? [imports]:import* [extern_bodies]:extern_code_body* [classdefs]:topdef* implicit_main_class {-> New module(moduledecl, [imports.import], [extern_bodies.extern_code_block], [classdefs.classdef,implicit_main_class.classdef])};
moduledecl
- = [doc]:no redef visibility kwmodule no module_name annotation_withend [n2]:n1 {-> New moduledecl(doc.doc, redef.kwredef, visibility, kwmodule, module_name, annotation_withend.annotations)};
+ = [doc]:nd redef visibility kwmodule no module_name annotation_withend [n2]:n1 {-> New moduledecl(doc.doc, redef.kwredef, visibility, kwmodule, module_name, annotation_withend.annotations)};
import
- = {std} [doc]:no redef visibility kwimport no module_name annotation_withend [n2]:n1 {-> New import.std(visibility, kwimport, module_name, annotation_withend.annotations)}
- | {no} [doc]:no redef visibility kwimport no kwend [n2]:n1 {-> New import.no(visibility, kwimport, kwend)}
+ = {std} [doc]:nd redef visibility kwimport no module_name annotation_withend [n2]:n1 {-> New import.std(visibility, kwimport, module_name, annotation_withend.annotations)}
+ | {no} [doc]:nd redef visibility kwimport no kwend [n2]:n1 {-> New import.no(visibility, kwimport, kwend)}
;
topdef {-> classdef}
| {null} n? {-> Null}
;
implicit_main_meth {-> propdef}
- = [doc]:no stmts {-> New propdef.main_meth(Null, stmts.expr)}
- | {n} [doc]:no stmtsn {-> New propdef.main_meth(Null, stmtsn.expr)}
+ = [doc]:nd stmts {-> New propdef.main_meth(Null, stmts.expr)}
+ | {n} [doc]:nd stmtsn {-> New propdef.main_meth(Null, stmtsn.expr)}
;
/* CLASSES *******************************************************************/
classdef
- = [doc]:no redef visibility classkind no qclassid formaldefs extern_code_block? propdefs kwend {-> New classdef.std(doc.doc, redef.kwredef, visibility, classkind, qclassid.classid, [formaldefs.formaldef], extern_code_block, [propdefs.propdef], kwend)};
+ = [doc]:nd redef visibility classkind no qclassid extern_code_block? propdefs kwend {-> New classdef.std(doc.doc, redef.kwredef, visibility, classkind, qclassid.classid, Null, [], Null, extern_code_block, [propdefs.propdef], kwend)}
+ | {for} [doc]:nd redef visibility classkind no qclassid obra [n2]:no formaldefs cbra extern_code_block? propdefs kwend {-> New classdef.std(doc.doc, redef.kwredef, visibility, classkind, qclassid.classid, obra, [formaldefs.formaldef], cbra, extern_code_block, [propdefs.propdef], kwend)}
+ ;
+
redef {-> kwredef?}
= kwredef? {-> kwredef};
classkind
;
formaldefs {-> formaldef*}
- = obra no formaldef formaldefs_tail* [n2]:no cbra {-> [formaldef, formaldefs_tail.formaldef]}
- | {null} {-> []}
+ = formaldef formaldefs_tail* {-> [formaldef, formaldefs_tail.formaldef]}
+ | {empty} {->[]}
;
formaldefs_tail {-> formaldef}
= comma no formaldef {-> formaldef};
formaldef
- = classid annotations? typing_o {-> New formaldef(classid, typing_o.type, annotations)};
+ = classid annotations? typing_o no {-> New formaldef(classid, typing_o.type, annotations)};
superclass {-> propdef}
- = {super} [doc]:no redef visibility kwsuper [n2]:no type annotation_withend {-> New propdef.super(doc.doc, redef.kwredef, visibility, kwsuper, type, annotation_withend.annotations)}
+ = {super} [doc]:nd redef visibility kwsuper [n2]:no type annotation_withend {-> New propdef.super(doc.doc, redef.kwredef, visibility, kwsuper, type, annotation_withend.annotations)}
;
propdefs {-> propdef*}
= propdefn+ no {-> [propdefn.propdef]}
| {super} superclass {-> [superclass.propdef]}
- | {empty} no {-> []}
+ | {empty} nd {-> []}
;
propdefn {-> propdef}
= propdef n1 {-> propdef.propdef}
;
propdef~toplevel {-> propdef}
- = {meth} [doc]:no redef visibility kwmeth qmethid signature annotation_noend? kwdo stmtso kwend_o {-> New propdef.meth(doc.doc, redef.kwredef, visibility, kwmeth, Null, Null, qmethid.methid, signature, annotation_noend.annotations, Null, Null, stmtso.expr)}
- | {nobody} [doc]:no redef visibility kwmeth qmethid signature annotation_withend_nonull {-> New propdef.meth(doc.doc, redef.kwredef, visibility, kwmeth, Null, Null, qmethid.methid, signature.signature, annotation_withend_nonull.annotations, Null, Null, Null)}
-!toplevel| {intern_new} [doc]:no redef visibility kwnew qmethid? signature annotation_withend_nonull {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, Null, kwnew, qmethid.methid, signature, annotation_withend_nonull.annotations, Null, Null, Null)}
-!toplevel| {new} [doc]:no redef visibility kwnew qmethid? signature annotation_noend? kwdo stmtso kwend_o {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, Null, kwnew, qmethid.methid, signature, annotation_noend.annotations, Null, Null, stmtso.expr)}
- | {extern_implicit} [doc]:no redef visibility kwmeth qmethid signature annotation_noend? extern_calls extern_code_block {-> New propdef.meth(doc.doc, redef.kwredef, visibility, kwmeth, Null, Null, qmethid.methid, signature.signature, annotation_noend.annotations, extern_calls, extern_code_block, Null)}
-!toplevel| {var3} [doc]:no redef visibility kwvar id typing_o annotation_withend {-> New propdef.attr(doc.doc, redef.kwredef, visibility, kwvar, id, typing_o.type, Null, annotation_withend.annotations, Null)}
-!toplevel| {var4} [doc]:no redef visibility kwvar id typing_o assign [n2]:no expr annotation_withend {-> New propdef.attr(doc.doc, redef.kwredef, visibility, kwvar, id, typing_o.type, expr.expr, annotation_withend.annotations, Null)}
-!toplevel| {var5} [doc]:no redef visibility kwvar id typing_o annotation_noend? kwdo stmtso kwend? {-> New propdef.attr(doc.doc, redef.kwredef, visibility, kwvar, id, typing_o.type, Null, annotation_noend.annotations, stmtso.expr)}
-!toplevel| {init} [doc]:no redef visibility kwinit qmethid? signature annotation_noend? kwdo stmtso kwend_o {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, kwinit, Null, qmethid.methid, signature, annotation_noend.annotations, Null, Null, stmtso.expr)}
-!toplevel| {type} [doc]:no redef visibility kwtype classid typing annotation_withend {-> New propdef.type(doc.doc, redef.kwredef, visibility, kwtype, classid, typing.type, annotation_withend.annotations)}
-!toplevel| {extern_init_implicit} [doc]:no redef visibility kwnew qmethid? signature annotation_noend? extern_calls extern_code_block {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, Null, kwnew, qmethid.methid, signature, annotation_noend.annotations, extern_calls, extern_code_block, Null)}
+ = {meth} [doc]:nd redef visibility kwmeth qmethid signature annotation_noend? kwdo stmtso kwend_o {-> New propdef.meth(doc.doc, redef.kwredef, visibility, kwmeth, Null, Null, qmethid.methid, signature, annotation_noend.annotations, Null, Null, kwdo, stmtso.expr, kwend_o.kwend)}
+ | {nobody} [doc]:nd redef visibility kwmeth qmethid signature annotation_withend_nonull {-> New propdef.meth(doc.doc, redef.kwredef, visibility, kwmeth, Null, Null, qmethid.methid, signature.signature, annotation_withend_nonull.annotations, Null, Null, Null, Null, Null)}
+!toplevel| {intern_new} [doc]:nd redef visibility kwnew qmethid? signature annotation_withend_nonull {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, Null, kwnew, qmethid.methid, signature, annotation_withend_nonull.annotations, Null, Null, Null, Null, Null)}
+!toplevel| {new} [doc]:nd redef visibility kwnew qmethid? signature annotation_noend? kwdo stmtso kwend_o {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, Null, kwnew, qmethid.methid, signature, annotation_noend.annotations, Null, Null, kwdo, stmtso.expr, kwend_o.kwend)}
+ | {extern_implicit} [doc]:nd redef visibility kwmeth qmethid signature annotation_noend? extern_calls extern_code_block {-> New propdef.meth(doc.doc, redef.kwredef, visibility, kwmeth, Null, Null, qmethid.methid, signature.signature, annotation_noend.annotations, extern_calls, extern_code_block, Null, Null, Null)}
+!toplevel| {var3} [doc]:nd redef visibility kwvar id typing_o annotation_withend {-> New propdef.attr(doc.doc, redef.kwredef, visibility, kwvar, id, typing_o.type, Null, Null, annotation_withend.annotations, Null, Null, Null)}
+!toplevel| {var4} [doc]:nd redef visibility kwvar id typing_o assign [n2]:no expr annotation_withend {-> New propdef.attr(doc.doc, redef.kwredef, visibility, kwvar, id, typing_o.type, assign, expr.expr, annotation_withend.annotations, Null, Null, Null)}
+!toplevel| {var5} [doc]:nd redef visibility kwvar id typing_o annotation_noend? kwdo stmtso kwend? {-> New propdef.attr(doc.doc, redef.kwredef, visibility, kwvar, id, typing_o.type, Null, Null, annotation_noend.annotations, kwdo, stmtso.expr, kwend)}
+!toplevel| {init} [doc]:nd redef visibility kwinit qmethid? signature annotation_noend? kwdo stmtso kwend_o {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, kwinit, Null, qmethid.methid, signature, annotation_noend.annotations, Null, Null, kwdo, stmtso.expr, kwend_o.kwend)}
+!toplevel| {type} [doc]:nd redef visibility kwtype classid typing annotation_withend {-> New propdef.type(doc.doc, redef.kwredef, visibility, kwtype, classid, typing.type, annotation_withend.annotations)}
+!toplevel| {extern_init_implicit} [doc]:nd redef visibility kwnew qmethid? signature annotation_noend? extern_calls extern_code_block {-> New propdef.meth(doc.doc, redef.kwredef, visibility, Null, Null, kwnew, qmethid.methid, signature, annotation_noend.annotations, extern_calls, extern_code_block, Null, Null, Null)}
!toplevel| {annot} line_annotation_forclass {-> line_annotation_forclass.propdef}
!toplevel| {super} superclass {-> superclass.propdef}
;
annotation_withend~nonull {-> annotations?}
- = {oneliner} kwis many_annotations {-> many_annotations.annotations}
- | {more} kwis n1 line_annotations kwend {-> line_annotations.annotations}
+ = {oneliner} kwis annotation_list {-> New annotations(kwis, Null, Null, [annotation_list.annotation], Null, Null)}
+ | {more} kwis n1 line_annotation+ kwend {-> New annotations(kwis, Null, Null, [line_annotation.annotation], Null, kwend) }
!nonull | {null} {-> Null}
;
annotation_noend {-> annotations}
- = {oneliner} kwis many_annotations {-> many_annotations.annotations}
- | {more} kwis n1 line_annotations {-> line_annotations.annotations}
+ = {oneliner} kwis annotation_list {-> New annotations(kwis, Null, Null, [annotation_list.annotation], Null, Null)}
+ | {more} kwis n1 line_annotation+ {-> New annotations(kwis, Null, Null, [line_annotation.annotation], Null, Null) }
;
visibility
/* TYPES *********************************************************************/
type~nobra~nopar {-> type}
- = {simple} kwnullable? classid annotations_o~nopar {-> New type(kwnullable, classid, [], annotations_o~nopar.annotations)}
-!nobra | {generic} kwnullable? classid obra no types [n2]:no cbra annotations_o~nopar {-> New type(kwnullable, classid, [types.type], annotations_o~nopar.annotations)}
+ = {simple} kwnullable? classid annotations_o~nopar {-> New type(kwnullable, classid, Null, [], Null, annotations_o~nopar.annotations)}
+!nobra | {generic} kwnullable? classid obra no types [n2]:no cbra annotations_o~nopar {-> New type(kwnullable, classid, obra, [types.type], cbra, annotations_o~nopar.annotations)}
;
types {-> type*}
= type types_tail* {-> [type, types_tail.type]};
;
if~withelse {-> expr}
- = {onelineelse} kwif no expr [n2]:no kwthen stmt_withelse kwelse stmtso~withelse {-> New expr.if(kwif, expr, stmt_withelse.expr, stmtso~withelse.expr)}
-!withelse | {oneline} kwif no expr [n2]:no kwthen stmt {-> New expr.if(kwif, expr, stmt.expr, Null)}
-!withelse | {block} kwif no expr [n2]:no kwthen [n3]:n stmtsn elsepartblock {-> New expr.if(kwif, expr, stmtsn.expr, elsepartblock.expr)}
-!withelse | {emptyblock} kwif no expr [n2]:no kwthen [n3]:n? elsepartblock {-> New expr.if(kwif, expr, Null, elsepartblock.expr)}
+ = {onelineelse} kwif no expr [n2]:no kwthen stmt_withelse kwelse stmtso~withelse {-> New expr.if(kwif, expr, kwthen, stmt_withelse.expr, kwelse, stmtso~withelse.expr)}
+!withelse | {oneline} kwif no expr [n2]:no kwthen stmt {-> New expr.if(kwif, expr, kwthen, stmt.expr, Null, Null)}
+!withelse | {block} kwif no expr [n2]:no kwthen [n3]:n stmtsn kwelse stmtso {-> New expr.if(kwif, expr, kwthen, stmtsn.expr, kwelse, stmtso.expr)}
+!withelse | {emptyblock} kwif no expr [n2]:no kwthen [n3]:n? kwelse stmtso {-> New expr.if(kwif, expr, kwthen, Null, kwelse, stmtso.expr)}
+!withelse | {blocknoelse} kwif no expr [n2]:no kwthen [n3]:n stmtsn endblock {-> New expr.if(kwif, expr, kwthen, stmtsn.expr, Null, endblock.expr)}
+!withelse | {emptyblocknoelse} kwif no expr [n2]:no kwthen [n3]:n? endblock {-> New expr.if(kwif, expr, kwthen, Null, Null, endblock.expr)}
;
-elsepartblock {-> expr?}
- = {else} kwelse stmtso {-> stmtso.expr}
- | {empty} kwend {-> New expr.block([], kwend)}
+endblock {-> expr}
+ = {empty} kwend {-> New expr.block([], kwend)}
;
loop~withelse {-> expr}
;
for~withelse {-> expr}
- = kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo stmtso_withend label {-> New expr.for(kwfor, [ids.id], expr, kwdo, stmtso_withend.expr, label)}
- | {nolabel} kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo stmtso~withelse {-> New expr.for(kwfor, [ids.id], expr, kwdo, stmtso~withelse.expr, Null)}
+ = kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo stmtso_withend label {-> New expr.for(kwfor, [ids.id], kwin, expr, kwdo, stmtso_withend.expr, label)}
+ | {nolabel} kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo stmtso~withelse {-> New expr.for(kwfor, [ids.id], kwin, expr, kwdo, stmtso~withelse.expr, Null)}
;
with~withelse {-> expr}
;
assert~withelse {-> expr}
- = {else} kwassert assertid? expr kwelse stmtso~withelse {-> New expr.assert(kwassert, assertid.id, expr, stmtso~withelse.expr)}
-!withelse| {noelse} kwassert assertid? expr {-> New expr.assert(kwassert, assertid.id, expr, Null)}
+ = {else} kwassert assertid? expr kwelse stmtso~withelse {-> New expr.assert(kwassert, assertid.id, expr, kwelse, stmtso~withelse.expr)}
+!withelse| {noelse} kwassert assertid? expr {-> New expr.assert(kwassert, assertid.id, expr, Null, Null)}
;
assertid {-> id}
= id column {-> id};
| {superstring} superstring {-> superstring.expr}
!nopar | {par} expr_par {-> expr_par.expr}
// !nopar to unambiguise 'foo[5].bar' between '(foo[5]).bar' and 'foo([5].bar),
-!nobra!nopar | {range} obra no expr [n2]:no dotdot [n3]:no [expr2]:expr_nobra [n4]:no cbra annotations_o {-> New expr.crange(obra, expr, expr2.expr, cbra, annotations_o.annotations)}
-!nobra!nopar | {orange} obra no expr [n2]:no dotdot [n3]:no [expr2]:expr_nobra [n4]:no [cbra]:obra annotations_o {-> New expr.orange(obra, expr, expr2.expr, cbra, annotations_o.annotations)}
+!nobra!nopar | {range} obra no expr [n2]:no dotdot [n3]:no [expr2]:expr_nobra [n4]:no cbra annotations_o {-> New expr.crange(obra, expr, dotdot, expr2.expr, cbra, annotations_o.annotations)}
+!nobra!nopar | {orange} obra no expr [n2]:no dotdot [n3]:no [expr2]:expr_nobra [n4]:no [cbra]:obra annotations_o {-> New expr.orange(obra, expr, dotdot, expr2.expr, cbra, annotations_o.annotations)}
!nobra!nopar | {array} obra no array_items typing_o cbra annotations_o {-> New expr.array(obra, [array_items.expr], typing_o.type, cbra, annotations_o.annotations)}
;
;
array_item {-> expr}
= expr no {-> expr}
- | {for} kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo [block]:array_item {-> New expr.for(kwfor, [ids.id], expr, kwdo, block.expr, Null)}
- | {if} kwif [n1]:no expr [n2]:no kwthen [n3]:no [then]:array_item {-> New expr.if(kwif, expr, then.expr, Null)}
+ | {for} kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo [block]:array_item {-> New expr.for(kwfor, [ids.id], kwin, expr, kwdo, block.expr, Null)}
+ | {if} kwif [n1]:no expr [n2]:no kwthen [n3]:no [then]:array_item {-> New expr.if(kwif, expr, kwthen, then.expr, Null, Null)}
;
superstring {-> expr}
/* ANNOTATIONS *******************************************************************/
annotations~nopar {-> annotations}
- = {one} at one_annotation~nopar {-> New annotations(at, Null, [one_annotation~nopar.annotation], Null)}
- | {many} at opar no annotation_list [n2]:no cpar {-> New annotations(at, opar, [annotation_list.annotation], cpar)}
+ = {one} at one_annotation~nopar {-> New annotations(Null, at, Null, [one_annotation~nopar.annotation], Null, Null)}
+ | {many} at opar no annotation_list [n2]:no cpar {-> New annotations(Null, at, opar, [annotation_list.annotation], cpar, Null)}
;
annotations_o~nopar {-> annotations?}
= annotations~nopar {-> annotations~nopar.annotations}
!nopar | {args} redef visibility atid opar no at_args [n2]:no cpar annotations_o~nopar {-> New annotation(Null, redef.kwredef, visibility, atid, opar, [at_args.expr], cpar, annotations_o~nopar.annotations)}
;
-many_annotations {-> annotations}
- = {many} annotation_list {-> New annotations(Null, Null, [annotation_list.annotation], Null)}
- ;
-
annotation_list {-> annotation*}
= {many} one_annotation_list annotations_tail* {-> [one_annotation_list.annotation, annotations_tail.annotation] }
;
= comma no one_annotation_list {-> one_annotation_list.annotation}
;
-line_annotations {-> annotations}
- = line_annotation+ {-> New annotations(Null, Null, [line_annotation.annotation], Null) }
- ;
line_annotation {-> annotation}
- = [doc]:no redef visibility atid annotations? n1 {-> New annotation(doc.doc, redef.kwredef, visibility, atid.atid, Null, [], Null, annotations)}
- | {args} [doc]:no redef visibility atid opar no at_args cpar annotations? n1 {-> New annotation(doc.doc, redef.kwredef, visibility, atid.atid, opar, [at_args.expr], cpar, annotations)}
- | {nopar} [doc]:no redef visibility atid at_args_nopar n1 {-> New annotation(doc.doc, redef.kwredef, visibility, atid.atid, Null, [at_args_nopar.expr], Null, Null)}
+ = [doc]:nd redef visibility atid annotations? n1 {-> New annotation(doc.doc, redef.kwredef, visibility, atid.atid, Null, [], Null, annotations)}
+ | {args} [doc]:nd redef visibility atid opar no at_args cpar annotations? n1 {-> New annotation(doc.doc, redef.kwredef, visibility, atid.atid, opar, [at_args.expr], cpar, annotations)}
+ | {nopar} [doc]:nd redef visibility atid at_args_nopar n1 {-> New annotation(doc.doc, redef.kwredef, visibility, atid.atid, Null, [at_args_nopar.expr], Null, Null)}
;
line_annotation_forclass {-> propdef}
- = [doc]:no atid_forclass annotations? {-> New propdef.annot(doc.doc, Null, Null, atid_forclass.atid, Null, [], Null, annotations)}
- | {args} [doc]:no atid_forclass opar no at_args cpar annotations? {-> New propdef.annot(doc.doc, Null, Null, atid_forclass.atid, opar, [at_args.expr], cpar, annotations)}
- | {nopar} [doc]:no atid_forclass at_args_nopar {-> New propdef.annot(doc.doc, Null, Null, atid_forclass.atid, Null, [at_args_nopar.expr], Null, Null)}
+ = [doc]:nd atid_forclass annotations? {-> New propdef.annot(doc.doc, Null, Null, atid_forclass.atid, Null, [], Null, annotations)}
+ | {args} [doc]:nd atid_forclass opar no at_args cpar annotations? {-> New propdef.annot(doc.doc, Null, Null, atid_forclass.atid, opar, [at_args.expr], cpar, annotations)}
+ | {nopar} [doc]:nd atid_forclass at_args_nopar {-> New propdef.annot(doc.doc, Null, Null, atid_forclass.atid, Null, [at_args_nopar.expr], Null, Null)}
;
at_args~nopar {-> expr* }
= kwend? {-> kwend}
;
-n1 = {a} comment | {b} eol;
-n {-> doc?}
- = {a} n2? comment+ {-> New doc([comment])}
- | {b} n2 {-> Null}
+/* A single hard break */
+n1 = {a} comment | {b} eol | {c} semi;
+
+/* A mandatory hard break, returns the last comment */
+n~nosemi {-> doc?}
+ = {a} n2* comment+ {-> New doc([comment])}
+ | {b} n2+ {-> Null}
+!nosemi | {c} n2* comment* semi n? {-> n.doc }
;
-no {-> doc?}
+
+/* An optional hard break, returns the last comment.
+ * Used mainly to introduce optional documentation */
+nd {-> doc?}
= {empty} {-> Null}
| n {-> n.doc}
;
+/* An optional soft break.
+ * Used when a unambiguous line break or comment could be inserted/ */
+no
+ = {empty}
+ | n_nosemi
+ ;
+
n2
- = {a} n2? comment+ eol+
- | {b} eol+
+ = {a} comment* eol
;
/*****************************************************************************/
| {intrude} kwintrude
;
-classdef= {std} doc? kwredef? visibility classkind [id]:classid? [formaldefs]:formaldef* extern_code_block? [propdefs]:propdef* kwend
+classdef= {std} doc? kwredef? visibility classkind [id]:classid? obra? [formaldefs]:formaldef* cbra? extern_code_block? [propdefs]:propdef* kwend
| {top} [propdefs]:propdef*
| {main} [propdefs]:propdef*
;
formaldef = [id]:classid type? annotations?;
-propdef = {attr} doc? kwredef? visibility kwvar [id2]:id type? expr? annotations? [block]:expr?
+propdef = {attr} doc? kwredef? visibility kwvar [id2]:id type? assign? expr? annotations? kwdo? [block]:expr? kwend?
| {main_meth} kwredef? [block]:expr?
| {type} doc? kwredef? visibility kwtype [id]:classid type annotations?
- | {meth} doc? kwredef? visibility kwmeth? kwinit? kwnew? methid? signature annotations? extern_calls? extern_code_block? [block]:expr?
+ | {meth} doc? kwredef? visibility kwmeth? kwinit? kwnew? methid? signature annotations? extern_calls? extern_code_block? kwdo? [block]:expr? kwend?
| {super} doc? kwredef? visibility kwsuper type annotations?
| {annot} doc? kwredef? visibility? atid opar? [args]:expr* cpar? annotations?
;
param = id type? dotdotdot? annotations?
;
-type = kwnullable? [id]:classid [types]:type* annotations?;
+type = kwnullable? [id]:classid obra? [types]:type* cbra? annotations?;
label = kwlabel id?;
| {abort} kwabort
| {continue} kwcontinue? label?
| {do} kwdo [block]:expr? label?
- | {if} kwif expr [then]:expr? [else]:expr?
+ | {if} kwif expr kwthen [then]:expr? kwelse? [else]:expr?
| {ifexpr} kwif expr kwthen [then]:expr kwelse [else]:expr
| {while} kwwhile expr kwdo [block]:expr? label?
| {loop} kwloop [block]:expr? label?
- | {for} kwfor [ids]:id* expr kwdo [block]:expr? label?
+ | {for} kwfor [ids]:id* kwin expr kwdo [block]:expr? label?
| {with} kwwith expr kwdo [block]:expr? label?
- | {assert} kwassert id? expr [else]:expr?
+ | {assert} kwassert id? expr kwelse? [else]:expr?
| {once} kwonce expr
| {send} expr
| {binop} expr [expr2]:expr
| {var_assign} id assign [value]:expr
| {var_reassign} id assign_op [value]:expr
| {range} expr [expr2]:expr annotations?
- | {crange} obra expr [expr2]:expr cbra annotations?
- | {orange} obra expr [expr2]:expr [cbra]:obra annotations?
+ | {crange} obra expr dotdot [expr2]:expr cbra annotations?
+ | {orange} obra expr dotdot [expr2]:expr [cbra]:obra annotations?
| {array} obra [exprs]:expr* type? cbra annotations?
| {self} kwself annotations?
| {implicit_self}
doc = comment+;
-annotations = at? opar? [items]:annotation* cpar?;
+annotations = kwis? at? opar? [items]:annotation* cpar? kwend?;
annotation = doc? kwredef? visibility? atid opar? [args]:expr* cpar? annotations?;
new ReduceAction24(5),
new ReduceAction26(6),
new ReduceAction27(6),
+ new ReduceAction28(6),
+ new ReduceAction29(6),
new ReduceAction22(7),
- new ReduceAction29(7),
- new ReduceAction30(8),
- new ReduceAction31(8),
+ new ReduceAction31(7),
new ReduceAction32(8),
new ReduceAction33(8),
new ReduceAction34(8),
- new ReduceAction35(9),
- new ReduceAction36(9),
+ new ReduceAction35(8),
+ new ReduceAction36(8),
new ReduceAction37(9),
- new ReduceAction38(10),
- new ReduceAction39(11),
- new ReduceAction40(11),
- new ReduceAction41(12),
- new ReduceAction42(13),
- new ReduceAction43(13),
+ new ReduceAction38(9),
+ new ReduceAction39(9),
+ new ReduceAction40(10),
+ new ReduceAction41(11),
+ new ReduceAction42(11),
+ new ReduceAction43(12),
new ReduceAction44(13),
- new ReduceAction45(14),
- new ReduceAction46(15),
- new ReduceAction47(15),
+ new ReduceAction45(13),
+ new ReduceAction46(13),
+ new ReduceAction47(14),
new ReduceAction48(15),
new ReduceAction49(15),
new ReduceAction50(15),
new ReduceAction70(15),
new ReduceAction71(15),
new ReduceAction72(15),
- new ReduceAction72(15),
- new ReduceAction74(16),
- new ReduceAction75(16),
+ new ReduceAction73(15),
+ new ReduceAction74(15),
+ new ReduceAction74(15),
+ new ReduceAction76(16),
+ new ReduceAction77(16),
new ReduceAction22(16),
- new ReduceAction74(17),
- new ReduceAction78(17),
- new ReduceAction79(18),
- new ReduceAction80(18),
+ new ReduceAction76(17),
+ new ReduceAction80(17),
new ReduceAction81(18),
new ReduceAction82(18),
new ReduceAction83(18),
- new ReduceAction84(19),
- new ReduceAction85(19),
+ new ReduceAction84(18),
+ new ReduceAction85(18),
new ReduceAction86(19),
new ReduceAction87(19),
new ReduceAction88(19),
new ReduceAction104(19),
new ReduceAction105(19),
new ReduceAction106(19),
- new ReduceAction107(20),
- new ReduceAction108(20),
+ new ReduceAction107(19),
+ new ReduceAction108(19),
new ReduceAction109(20),
new ReduceAction110(20),
- new ReduceAction111(21),
- new ReduceAction112(21),
- new ReduceAction37(21),
- new ReduceAction114(22),
- new ReduceAction115(23),
- new ReduceAction116(23),
+ new ReduceAction111(20),
+ new ReduceAction112(20),
+ new ReduceAction113(21),
+ new ReduceAction114(21),
+ new ReduceAction39(21),
+ new ReduceAction116(22),
new ReduceAction117(23),
new ReduceAction118(23),
new ReduceAction119(23),
- new ReduceAction120(24),
- new ReduceAction121(24),
+ new ReduceAction120(23),
+ new ReduceAction121(23),
+ new ReduceAction122(24),
+ new ReduceAction123(24),
new ReduceAction22(24),
- new ReduceAction123(25),
- new ReduceAction124(26),
- new ReduceAction124(26),
+ new ReduceAction125(25),
+ new ReduceAction126(26),
new ReduceAction126(26),
- new ReduceAction127(27),
- new ReduceAction128(27),
+ new ReduceAction128(26),
new ReduceAction129(27),
- new ReduceAction130(28),
- new ReduceAction131(28),
+ new ReduceAction130(27),
+ new ReduceAction131(27),
new ReduceAction132(28),
new ReduceAction133(28),
new ReduceAction134(28),
new ReduceAction135(28),
+ new ReduceAction136(28),
+ new ReduceAction137(28),
new ReduceAction22(29),
- new ReduceAction137(29),
- new ReduceAction138(30),
- new ReduceAction139(31),
- new ReduceAction140(31),
- new ReduceAction141(32),
+ new ReduceAction139(29),
+ new ReduceAction140(30),
+ new ReduceAction141(31),
+ new ReduceAction142(31),
+ new ReduceAction143(32),
new ReduceAction22(32),
- new ReduceAction143(33),
- new ReduceAction144(34),
- new ReduceAction145(34),
+ new ReduceAction145(33),
new ReduceAction146(34),
new ReduceAction147(34),
- new ReduceAction148(35),
- new ReduceAction149(35),
- new ReduceAction150(36),
- new ReduceAction150(37),
- new ReduceAction150(38),
+ new ReduceAction148(34),
+ new ReduceAction149(34),
+ new ReduceAction150(35),
+ new ReduceAction151(35),
+ new ReduceAction152(36),
+ new ReduceAction152(37),
+ new ReduceAction152(38),
new ReduceAction22(38),
- new ReduceAction154(39),
- new ReduceAction155(39),
new ReduceAction156(39),
new ReduceAction157(39),
- new ReduceAction158(40),
- new ReduceAction159(40),
- new ReduceAction160(41),
- new ReduceAction161(41),
- new ReduceAction162(42),
- new ReduceAction163(42),
- new ReduceAction154(43),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction167(44),
- new ReduceAction168(44),
+ new ReduceAction158(39),
+ new ReduceAction159(39),
+ new ReduceAction160(40),
+ new ReduceAction161(40),
+ new ReduceAction162(41),
+ new ReduceAction163(41),
+ new ReduceAction164(42),
+ new ReduceAction165(42),
+ new ReduceAction156(43),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
new ReduceAction169(44),
new ReduceAction170(44),
new ReduceAction171(44),
new ReduceAction172(44),
new ReduceAction173(44),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction157(44),
- new ReduceAction181(44),
- new ReduceAction182(44),
+ new ReduceAction174(44),
+ new ReduceAction175(44),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
+ new ReduceAction159(44),
new ReduceAction183(44),
- new ReduceAction182(44),
+ new ReduceAction184(44),
new ReduceAction185(44),
- new ReduceAction186(44),
+ new ReduceAction184(44),
new ReduceAction187(44),
- new ReduceAction186(44),
+ new ReduceAction188(44),
new ReduceAction189(44),
- new ReduceAction190(44),
+ new ReduceAction188(44),
new ReduceAction191(44),
new ReduceAction192(44),
new ReduceAction193(44),
- new ReduceAction192(44),
- new ReduceAction195(44),
- new ReduceAction196(44),
+ new ReduceAction194(44),
new ReduceAction195(44),
+ new ReduceAction194(44),
+ new ReduceAction197(44),
new ReduceAction198(44),
- new ReduceAction199(45),
- new ReduceAction200(45),
- new ReduceAction201(46),
- new ReduceAction202(46),
+ new ReduceAction197(44),
+ new ReduceAction200(44),
+ new ReduceAction201(45),
+ new ReduceAction202(45),
new ReduceAction203(46),
new ReduceAction204(46),
- new ReduceAction205(47),
- new ReduceAction206(47),
+ new ReduceAction205(46),
+ new ReduceAction206(46),
new ReduceAction207(47),
new ReduceAction208(47),
new ReduceAction209(47),
new ReduceAction210(47),
new ReduceAction211(47),
new ReduceAction212(47),
- new ReduceAction209(47),
- new ReduceAction210(47),
- new ReduceAction215(47),
- new ReduceAction216(47),
+ new ReduceAction213(47),
+ new ReduceAction214(47),
+ new ReduceAction211(47),
+ new ReduceAction212(47),
new ReduceAction217(47),
new ReduceAction218(47),
new ReduceAction219(47),
new ReduceAction220(47),
- new ReduceAction217(47),
- new ReduceAction218(47),
- new ReduceAction223(47),
- new ReduceAction224(47),
+ new ReduceAction221(47),
+ new ReduceAction222(47),
+ new ReduceAction219(47),
+ new ReduceAction220(47),
new ReduceAction225(47),
new ReduceAction226(47),
new ReduceAction227(47),
new ReduceAction229(47),
new ReduceAction230(47),
new ReduceAction231(47),
- new ReduceAction228(47),
- new ReduceAction229(47),
- new ReduceAction234(47),
- new ReduceAction235(47),
+ new ReduceAction232(47),
+ new ReduceAction233(47),
+ new ReduceAction230(47),
+ new ReduceAction231(47),
new ReduceAction236(47),
new ReduceAction237(47),
new ReduceAction238(47),
new ReduceAction239(47),
- new ReduceAction236(47),
- new ReduceAction237(47),
- new ReduceAction242(47),
- new ReduceAction243(48),
- new ReduceAction244(48),
+ new ReduceAction240(47),
+ new ReduceAction241(47),
+ new ReduceAction238(47),
+ new ReduceAction239(47),
+ new ReduceAction244(47),
new ReduceAction245(48),
new ReduceAction246(48),
new ReduceAction247(48),
new ReduceAction251(48),
new ReduceAction252(48),
new ReduceAction253(48),
- new ReduceAction254(49),
- new ReduceAction255(49),
- new ReduceAction256(50),
- new ReduceAction257(50),
+ new ReduceAction254(48),
+ new ReduceAction255(48),
+ new ReduceAction256(49),
+ new ReduceAction257(49),
new ReduceAction258(50),
new ReduceAction259(50),
new ReduceAction260(50),
- new ReduceAction154(51),
- new ReduceAction156(51),
- new ReduceAction263(52),
- new ReduceAction264(52),
- new ReduceAction265(53),
- new ReduceAction266(53),
- new ReduceAction267(54),
- new ReduceAction268(54),
- new ReduceAction269(55),
- new ReduceAction270(55),
- new ReduceAction271(56),
- new ReduceAction272(56),
- new ReduceAction157(56),
- new ReduceAction274(57),
- new ReduceAction275(57),
- new ReduceAction276(57),
- new ReduceAction277(57),
- new ReduceAction278(58),
- new ReduceAction157(59),
- new ReduceAction280(59),
- new ReduceAction157(60),
- new ReduceAction282(60),
- new ReduceAction283(60),
- new ReduceAction284(60),
- new ReduceAction285(60),
- new ReduceAction157(61),
- new ReduceAction287(61),
- new ReduceAction157(62),
- new ReduceAction289(62),
- new ReduceAction290(62),
- new ReduceAction291(62),
- new ReduceAction292(62),
+ new ReduceAction261(50),
+ new ReduceAction262(50),
+ new ReduceAction263(50),
+ new ReduceAction264(50),
+ new ReduceAction265(50),
+ new ReduceAction158(51),
+ new ReduceAction267(52),
+ new ReduceAction268(52),
+ new ReduceAction269(53),
+ new ReduceAction270(53),
+ new ReduceAction271(54),
+ new ReduceAction272(54),
+ new ReduceAction273(55),
+ new ReduceAction274(55),
+ new ReduceAction275(56),
+ new ReduceAction276(56),
+ new ReduceAction159(56),
+ new ReduceAction278(57),
+ new ReduceAction279(57),
+ new ReduceAction280(57),
+ new ReduceAction281(57),
+ new ReduceAction282(58),
+ new ReduceAction159(59),
+ new ReduceAction284(59),
+ new ReduceAction159(60),
+ new ReduceAction286(60),
+ new ReduceAction287(60),
+ new ReduceAction288(60),
+ new ReduceAction289(60),
+ new ReduceAction159(61),
+ new ReduceAction291(61),
+ new ReduceAction159(62),
new ReduceAction293(62),
new ReduceAction294(62),
new ReduceAction295(62),
new ReduceAction296(62),
- new ReduceAction157(63),
- new ReduceAction298(63),
- new ReduceAction157(64),
- new ReduceAction300(64),
- new ReduceAction157(65),
- new ReduceAction302(65),
- new ReduceAction157(66),
- new ReduceAction304(66),
- new ReduceAction305(66),
- new ReduceAction157(67),
- new ReduceAction307(67),
- new ReduceAction308(67),
- new ReduceAction157(68),
- new ReduceAction310(68),
- new ReduceAction311(68),
- new ReduceAction312(68),
- new ReduceAction157(69),
- new ReduceAction314(69),
- new ReduceAction157(70),
- new ReduceAction316(70),
- new ReduceAction317(70),
- new ReduceAction318(70),
- new ReduceAction319(70),
- new ReduceAction157(71),
- new ReduceAction321(71),
- new ReduceAction322(71),
- new ReduceAction323(71),
- new ReduceAction324(71),
- new ReduceAction157(72),
- new ReduceAction326(72),
- new ReduceAction327(72),
- new ReduceAction181(72),
- new ReduceAction329(72),
- new ReduceAction182(72),
+ new ReduceAction297(62),
+ new ReduceAction298(62),
+ new ReduceAction299(62),
+ new ReduceAction300(62),
+ new ReduceAction159(63),
+ new ReduceAction302(63),
+ new ReduceAction159(64),
+ new ReduceAction304(64),
+ new ReduceAction159(65),
+ new ReduceAction306(65),
+ new ReduceAction159(66),
+ new ReduceAction308(66),
+ new ReduceAction309(66),
+ new ReduceAction159(67),
+ new ReduceAction311(67),
+ new ReduceAction312(67),
+ new ReduceAction159(68),
+ new ReduceAction314(68),
+ new ReduceAction315(68),
+ new ReduceAction316(68),
+ new ReduceAction159(69),
+ new ReduceAction318(69),
+ new ReduceAction159(70),
+ new ReduceAction320(70),
+ new ReduceAction321(70),
+ new ReduceAction322(70),
+ new ReduceAction323(70),
+ new ReduceAction159(71),
+ new ReduceAction325(71),
+ new ReduceAction326(71),
+ new ReduceAction327(71),
+ new ReduceAction328(71),
+ new ReduceAction159(72),
+ new ReduceAction330(72),
new ReduceAction331(72),
new ReduceAction183(72),
new ReduceAction333(72),
- new ReduceAction182(72),
- new ReduceAction331(72),
+ new ReduceAction184(72),
+ new ReduceAction335(72),
new ReduceAction185(72),
new ReduceAction337(72),
- new ReduceAction186(72),
- new ReduceAction339(72),
+ new ReduceAction184(72),
+ new ReduceAction335(72),
new ReduceAction187(72),
new ReduceAction341(72),
- new ReduceAction186(72),
- new ReduceAction339(72),
+ new ReduceAction188(72),
+ new ReduceAction343(72),
new ReduceAction189(72),
new ReduceAction345(72),
- new ReduceAction190(72),
- new ReduceAction347(72),
+ new ReduceAction188(72),
+ new ReduceAction343(72),
new ReduceAction191(72),
new ReduceAction349(72),
- new ReduceAction350(72),
+ new ReduceAction192(72),
new ReduceAction351(72),
- new ReduceAction352(72),
+ new ReduceAction193(72),
new ReduceAction353(72),
new ReduceAction354(72),
new ReduceAction355(72),
new ReduceAction356(72),
- new ReduceAction353(72),
- new ReduceAction354(72),
+ new ReduceAction357(72),
+ new ReduceAction358(72),
new ReduceAction359(72),
new ReduceAction360(72),
- new ReduceAction361(72),
- new ReduceAction157(73),
- new ReduceAction363(73),
- new ReduceAction364(73),
- new ReduceAction365(74),
- new ReduceAction366(74),
- new ReduceAction367(74),
- new ReduceAction368(74),
+ new ReduceAction357(72),
+ new ReduceAction358(72),
+ new ReduceAction363(72),
+ new ReduceAction364(72),
+ new ReduceAction365(72),
+ new ReduceAction159(73),
+ new ReduceAction367(73),
+ new ReduceAction368(73),
new ReduceAction369(74),
new ReduceAction370(74),
new ReduceAction371(74),
new ReduceAction372(74),
new ReduceAction373(74),
- new ReduceAction157(74),
- new ReduceAction157(74),
+ new ReduceAction374(74),
+ new ReduceAction375(74),
new ReduceAction376(74),
new ReduceAction377(74),
- new ReduceAction378(74),
- new ReduceAction379(75),
- new ReduceAction379(75),
- new ReduceAction381(76),
- new ReduceAction382(77),
- new ReduceAction383(78),
- new ReduceAction384(78),
- new ReduceAction382(79),
- new ReduceAction386(80),
- new ReduceAction268(80),
- new ReduceAction388(80),
- new ReduceAction389(81),
- new ReduceAction390(81),
- new ReduceAction391(82),
- new ReduceAction392(82),
- new ReduceAction393(83),
- new ReduceAction391(84),
- new ReduceAction392(84),
- new ReduceAction396(85),
- new ReduceAction397(86),
- new ReduceAction398(87),
- new ReduceAction399(87),
- new ReduceAction400(88),
+ new ReduceAction159(74),
+ new ReduceAction159(74),
+ new ReduceAction380(74),
+ new ReduceAction381(74),
+ new ReduceAction382(74),
+ new ReduceAction383(75),
+ new ReduceAction383(75),
+ new ReduceAction385(76),
+ new ReduceAction386(77),
+ new ReduceAction387(78),
+ new ReduceAction388(78),
+ new ReduceAction386(79),
+ new ReduceAction390(80),
+ new ReduceAction272(80),
+ new ReduceAction392(80),
+ new ReduceAction393(81),
+ new ReduceAction394(81),
+ new ReduceAction395(82),
+ new ReduceAction396(82),
+ new ReduceAction397(83),
+ new ReduceAction395(84),
+ new ReduceAction396(84),
+ new ReduceAction400(85),
+ new ReduceAction401(86),
+ new ReduceAction402(87),
+ new ReduceAction403(87),
+ new ReduceAction404(88),
new ReduceAction22(88),
- new ReduceAction402(89),
- new ReduceAction403(89),
- new ReduceAction404(90),
- new ReduceAction405(91),
+ new ReduceAction406(89),
+ new ReduceAction407(89),
+ new ReduceAction408(90),
+ new ReduceAction409(90),
new ReduceAction406(91),
- new ReduceAction402(92),
- new ReduceAction403(92),
- new ReduceAction409(92),
- new ReduceAction157(93),
- new ReduceAction411(94),
- new ReduceAction404(95),
- new ReduceAction413(96),
- new ReduceAction414(96),
- new ReduceAction415(96),
- new ReduceAction416(96),
- new ReduceAction417(96),
- new ReduceAction418(97),
- new ReduceAction419(97),
- new ReduceAction420(97),
- new ReduceAction421(97),
- new ReduceAction422(97),
- new ReduceAction383(98),
- new ReduceAction384(98),
- new ReduceAction382(99),
- new ReduceAction426(100),
- new ReduceAction157(100),
- new ReduceAction157(100),
- new ReduceAction429(100),
- new ReduceAction430(100),
- new ReduceAction431(100),
- new ReduceAction432(101),
- new ReduceAction433(101),
- new ReduceAction434(101),
- new ReduceAction435(102),
- new ReduceAction436(102),
- new ReduceAction435(103),
- new ReduceAction438(103),
- new ReduceAction436(103),
- new ReduceAction440(103),
- new ReduceAction441(104),
- new ReduceAction392(105),
- new ReduceAction443(105),
- new ReduceAction444(106),
- new ReduceAction445(107),
- new ReduceAction446(107),
- new ReduceAction447(108),
- new ReduceAction448(108),
- new ReduceAction449(109),
- new ReduceAction450(109),
- new ReduceAction451(109),
- new ReduceAction452(109),
- new ReduceAction453(110),
- new ReduceAction454(110),
- new ReduceAction455(110),
- new ReduceAction22(110),
- new ReduceAction457(111),
- new ReduceAction458(111),
- new ReduceAction459(111),
- new ReduceAction458(111),
- new ReduceAction461(112),
- new ReduceAction462(112),
- new ReduceAction463(112),
- new ReduceAction462(112),
- new ReduceAction465(113),
- new ReduceAction466(114),
- new ReduceAction22(115),
- new ReduceAction468(115),
- new ReduceAction469(116),
- new ReduceAction469(116),
+ new ReduceAction407(91),
+ new ReduceAction412(91),
+ new ReduceAction159(92),
+ new ReduceAction414(93),
+ new ReduceAction415(94),
+ new ReduceAction416(94),
+ new ReduceAction417(94),
+ new ReduceAction418(94),
+ new ReduceAction419(94),
+ new ReduceAction420(95),
+ new ReduceAction421(95),
+ new ReduceAction422(95),
+ new ReduceAction423(95),
+ new ReduceAction424(95),
+ new ReduceAction387(96),
+ new ReduceAction388(96),
+ new ReduceAction386(97),
+ new ReduceAction428(98),
+ new ReduceAction159(98),
+ new ReduceAction159(98),
+ new ReduceAction431(98),
+ new ReduceAction432(98),
+ new ReduceAction433(98),
+ new ReduceAction434(99),
+ new ReduceAction435(99),
+ new ReduceAction436(99),
+ new ReduceAction437(100),
+ new ReduceAction438(100),
+ new ReduceAction437(101),
+ new ReduceAction440(101),
+ new ReduceAction438(101),
+ new ReduceAction442(101),
+ new ReduceAction443(102),
+ new ReduceAction396(103),
+ new ReduceAction445(103),
+ new ReduceAction446(104),
+ new ReduceAction447(105),
+ new ReduceAction448(105),
+ new ReduceAction449(106),
+ new ReduceAction450(106),
+ new ReduceAction451(107),
+ new ReduceAction452(107),
+ new ReduceAction453(107),
+ new ReduceAction454(107),
+ new ReduceAction455(108),
+ new ReduceAction456(108),
+ new ReduceAction457(108),
+ new ReduceAction22(108),
+ new ReduceAction459(109),
+ new ReduceAction460(109),
+ new ReduceAction461(109),
+ new ReduceAction460(109),
+ new ReduceAction463(110),
+ new ReduceAction464(110),
+ new ReduceAction465(110),
+ new ReduceAction464(110),
+ new ReduceAction467(111),
+ new ReduceAction468(112),
+ new ReduceAction22(113),
+ new ReduceAction470(113),
+ new ReduceAction471(114),
+ new ReduceAction471(114),
+ new ReduceAction471(114),
+ new ReduceAction474(115),
+ new ReduceAction475(115),
+ new ReduceAction23(115),
+ new ReduceAction23(115),
+ new ReduceAction478(115),
+ new ReduceAction478(115),
+ new ReduceAction480(115),
+ new ReduceAction481(115),
+ new ReduceAction482(115),
+ new ReduceAction482(115),
+ new ReduceAction484(115),
+ new ReduceAction22(116),
+ new ReduceAction486(116),
+ new ReduceAction487(117),
new ReduceAction471(117),
- new ReduceAction472(117),
- new ReduceAction23(117),
- new ReduceAction22(118),
- new ReduceAction475(118),
- new ReduceAction476(119),
- new ReduceAction477(119),
- new ReduceAction469(119),
- new ReduceAction46(120),
- new ReduceAction47(120),
- new ReduceAction48(120),
- new ReduceAction55(120),
- new ReduceAction56(120),
- new ReduceAction74(121),
- new ReduceAction75(121),
- new ReduceAction84(122),
- new ReduceAction85(122),
- new ReduceAction86(122),
- new ReduceAction87(122),
- new ReduceAction88(122),
- new ReduceAction89(122),
- new ReduceAction90(122),
- new ReduceAction91(122),
- new ReduceAction92(122),
- new ReduceAction93(122),
- new ReduceAction94(122),
- new ReduceAction95(122),
- new ReduceAction96(122),
- new ReduceAction97(122),
- new ReduceAction98(122),
- new ReduceAction99(122),
- new ReduceAction100(122),
- new ReduceAction101(122),
- new ReduceAction102(122),
- new ReduceAction103(122),
- new ReduceAction104(122),
- new ReduceAction105(122),
- new ReduceAction461(123),
- new ReduceAction462(123),
- new ReduceAction463(123),
- new ReduceAction462(123),
- new ReduceAction144(124),
- new ReduceAction145(124),
- new ReduceAction157(125),
- new ReduceAction280(125),
- new ReduceAction157(126),
- new ReduceAction282(126),
- new ReduceAction283(126),
- new ReduceAction284(126),
- new ReduceAction285(126),
- new ReduceAction157(127),
- new ReduceAction287(127),
- new ReduceAction157(128),
- new ReduceAction289(128),
- new ReduceAction290(128),
- new ReduceAction291(128),
- new ReduceAction292(128),
- new ReduceAction293(128),
- new ReduceAction294(128),
- new ReduceAction295(128),
- new ReduceAction296(128),
- new ReduceAction157(129),
- new ReduceAction298(129),
- new ReduceAction157(130),
- new ReduceAction300(130),
- new ReduceAction157(131),
- new ReduceAction302(131),
- new ReduceAction157(132),
- new ReduceAction304(132),
- new ReduceAction305(132),
- new ReduceAction157(133),
- new ReduceAction307(133),
- new ReduceAction308(133),
- new ReduceAction157(134),
- new ReduceAction310(134),
- new ReduceAction311(134),
- new ReduceAction312(134),
- new ReduceAction157(135),
- new ReduceAction314(135),
- new ReduceAction157(136),
- new ReduceAction316(136),
- new ReduceAction317(136),
- new ReduceAction318(136),
- new ReduceAction319(136),
- new ReduceAction157(137),
- new ReduceAction321(137),
- new ReduceAction322(137),
- new ReduceAction323(137),
- new ReduceAction324(137),
- new ReduceAction157(138),
- new ReduceAction326(138),
- new ReduceAction327(138),
- new ReduceAction181(138),
- new ReduceAction185(138),
- new ReduceAction329(138),
- new ReduceAction337(138),
- new ReduceAction182(138),
- new ReduceAction186(138),
- new ReduceAction331(138),
- new ReduceAction339(138),
- new ReduceAction183(138),
- new ReduceAction187(138),
- new ReduceAction333(138),
- new ReduceAction341(138),
- new ReduceAction182(138),
- new ReduceAction186(138),
- new ReduceAction331(138),
- new ReduceAction339(138),
- new ReduceAction189(138),
- new ReduceAction345(138),
- new ReduceAction190(138),
- new ReduceAction191(138),
- new ReduceAction347(138),
- new ReduceAction349(138),
- new ReduceAction351(138),
- new ReduceAction352(138),
- new ReduceAction353(138),
- new ReduceAction354(138),
- new ReduceAction355(138),
- new ReduceAction356(138),
- new ReduceAction353(138),
- new ReduceAction354(138),
- new ReduceAction359(138),
- new ReduceAction360(138),
- new ReduceAction361(138),
- new ReduceAction157(139),
- new ReduceAction363(139),
- new ReduceAction364(139),
- new ReduceAction365(140),
- new ReduceAction366(140),
- new ReduceAction367(140),
- new ReduceAction368(140),
- new ReduceAction369(140),
- new ReduceAction370(140),
- new ReduceAction371(140),
- new ReduceAction372(140),
- new ReduceAction373(140),
- new ReduceAction157(140),
- new ReduceAction157(140),
- new ReduceAction144(141),
- new ReduceAction145(141),
- new ReduceAction146(141),
- new ReduceAction147(141),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction167(142),
- new ReduceAction168(142),
- new ReduceAction169(142),
- new ReduceAction170(142),
- new ReduceAction171(142),
- new ReduceAction172(142),
- new ReduceAction173(142),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction157(142),
- new ReduceAction181(142),
- new ReduceAction182(142),
- new ReduceAction183(142),
- new ReduceAction182(142),
- new ReduceAction185(142),
- new ReduceAction186(142),
- new ReduceAction187(142),
- new ReduceAction186(142),
- new ReduceAction189(142),
- new ReduceAction190(142),
- new ReduceAction191(142),
- new ReduceAction192(142),
- new ReduceAction193(142),
- new ReduceAction192(142),
- new ReduceAction195(142),
- new ReduceAction196(142),
- new ReduceAction195(142),
- new ReduceAction198(142),
- new ReduceAction205(143),
- new ReduceAction206(143),
- new ReduceAction207(143),
- new ReduceAction208(143),
- new ReduceAction209(143),
- new ReduceAction210(143),
- new ReduceAction211(143),
- new ReduceAction212(143),
- new ReduceAction209(143),
- new ReduceAction210(143),
- new ReduceAction215(143),
- new ReduceAction216(143),
- new ReduceAction217(143),
- new ReduceAction218(143),
- new ReduceAction219(143),
- new ReduceAction220(143),
- new ReduceAction217(143),
- new ReduceAction218(143),
- new ReduceAction223(143),
- new ReduceAction224(143),
- new ReduceAction225(143),
- new ReduceAction226(143),
- new ReduceAction227(143),
- new ReduceAction228(143),
- new ReduceAction229(143),
- new ReduceAction230(143),
- new ReduceAction231(143),
- new ReduceAction228(143),
- new ReduceAction229(143),
- new ReduceAction234(143),
- new ReduceAction235(143),
- new ReduceAction236(143),
- new ReduceAction237(143),
- new ReduceAction238(143),
- new ReduceAction239(143),
- new ReduceAction236(143),
- new ReduceAction237(143),
- new ReduceAction242(143),
- new ReduceAction157(144),
- new ReduceAction280(144),
- new ReduceAction157(145),
- new ReduceAction282(145),
- new ReduceAction283(145),
- new ReduceAction284(145),
- new ReduceAction285(145),
- new ReduceAction157(146),
- new ReduceAction287(146),
- new ReduceAction157(147),
- new ReduceAction289(147),
- new ReduceAction290(147),
- new ReduceAction291(147),
- new ReduceAction292(147),
- new ReduceAction293(147),
- new ReduceAction294(147),
- new ReduceAction295(147),
- new ReduceAction296(147),
- new ReduceAction157(148),
- new ReduceAction298(148),
- new ReduceAction157(149),
- new ReduceAction300(149),
- new ReduceAction157(150),
- new ReduceAction302(150),
- new ReduceAction157(151),
- new ReduceAction304(151),
- new ReduceAction305(151),
- new ReduceAction157(152),
- new ReduceAction307(152),
- new ReduceAction308(152),
- new ReduceAction157(153),
- new ReduceAction310(153),
- new ReduceAction311(153),
- new ReduceAction312(153),
- new ReduceAction157(154),
- new ReduceAction314(154),
- new ReduceAction157(155),
- new ReduceAction316(155),
- new ReduceAction317(155),
- new ReduceAction318(155),
- new ReduceAction319(155),
- new ReduceAction157(156),
- new ReduceAction321(156),
- new ReduceAction322(156),
- new ReduceAction323(156),
- new ReduceAction324(156),
- new ReduceAction157(157),
- new ReduceAction326(157),
- new ReduceAction327(157),
- new ReduceAction181(157),
- new ReduceAction329(157),
- new ReduceAction182(157),
- new ReduceAction331(157),
- new ReduceAction183(157),
- new ReduceAction333(157),
- new ReduceAction182(157),
- new ReduceAction331(157),
- new ReduceAction185(157),
- new ReduceAction337(157),
- new ReduceAction186(157),
- new ReduceAction339(157),
- new ReduceAction187(157),
- new ReduceAction341(157),
- new ReduceAction186(157),
- new ReduceAction339(157),
- new ReduceAction189(157),
- new ReduceAction345(157),
- new ReduceAction190(157),
- new ReduceAction347(157),
- new ReduceAction191(157),
- new ReduceAction349(157),
- new ReduceAction350(157),
- new ReduceAction351(157),
- new ReduceAction352(157),
- new ReduceAction353(157),
- new ReduceAction354(157),
- new ReduceAction355(157),
- new ReduceAction356(157),
- new ReduceAction353(157),
- new ReduceAction354(157),
- new ReduceAction359(157),
- new ReduceAction360(157),
- new ReduceAction361(157),
- new ReduceAction157(158),
- new ReduceAction363(158),
- new ReduceAction364(158),
- new ReduceAction365(159),
- new ReduceAction366(159),
- new ReduceAction367(159),
- new ReduceAction368(159),
- new ReduceAction369(159),
- new ReduceAction370(159),
- new ReduceAction371(159),
- new ReduceAction372(159),
- new ReduceAction373(159),
- new ReduceAction157(159),
- new ReduceAction398(160),
- new ReduceAction399(160),
- new ReduceAction400(161),
- new ReduceAction22(161),
- new ReduceAction402(162),
- new ReduceAction402(163),
- new ReduceAction383(164),
- new ReduceAction384(164),
- new ReduceAction426(165),
- new ReduceAction157(165),
- new ReduceAction157(165),
- new ReduceAction429(165),
- new ReduceAction430(165),
- new ReduceAction144(166),
- new ReduceAction145(166),
- new ReduceAction157(167),
- new ReduceAction280(167),
- new ReduceAction157(168),
- new ReduceAction282(168),
- new ReduceAction283(168),
- new ReduceAction284(168),
- new ReduceAction285(168),
- new ReduceAction157(169),
- new ReduceAction287(169),
- new ReduceAction157(170),
- new ReduceAction289(170),
- new ReduceAction290(170),
- new ReduceAction291(170),
- new ReduceAction292(170),
- new ReduceAction293(170),
- new ReduceAction294(170),
- new ReduceAction295(170),
- new ReduceAction296(170),
- new ReduceAction157(171),
- new ReduceAction298(171),
- new ReduceAction157(172),
- new ReduceAction300(172),
- new ReduceAction157(173),
- new ReduceAction302(173),
- new ReduceAction157(174),
- new ReduceAction304(174),
- new ReduceAction305(174),
- new ReduceAction157(175),
- new ReduceAction307(175),
- new ReduceAction308(175),
- new ReduceAction157(176),
- new ReduceAction310(176),
- new ReduceAction311(176),
- new ReduceAction312(176),
- new ReduceAction157(177),
- new ReduceAction314(177),
- new ReduceAction157(178),
- new ReduceAction316(178),
- new ReduceAction317(178),
- new ReduceAction318(178),
- new ReduceAction319(178),
- new ReduceAction157(179),
- new ReduceAction321(179),
- new ReduceAction322(179),
- new ReduceAction841(179),
- new ReduceAction157(180),
- new ReduceAction843(180),
- new ReduceAction844(180),
- new ReduceAction845(180),
- new ReduceAction846(180),
- new ReduceAction847(180),
- new ReduceAction181(180),
- new ReduceAction329(180),
- new ReduceAction846(180),
- new ReduceAction847(180),
- new ReduceAction189(180),
- new ReduceAction345(180),
- new ReduceAction854(180),
- new ReduceAction855(180),
- new ReduceAction351(180),
- new ReduceAction352(180),
- new ReduceAction353(180),
- new ReduceAction354(180),
- new ReduceAction355(180),
- new ReduceAction356(180),
- new ReduceAction353(180),
- new ReduceAction354(180),
- new ReduceAction359(180),
- new ReduceAction360(180),
- new ReduceAction361(180),
- new ReduceAction157(181),
- new ReduceAction363(181),
- new ReduceAction364(181),
- new ReduceAction365(182),
- new ReduceAction366(182),
- new ReduceAction367(182),
- new ReduceAction368(182),
- new ReduceAction369(182),
- new ReduceAction370(182),
- new ReduceAction371(182),
- new ReduceAction372(182),
- new ReduceAction373(182),
- new ReduceAction157(182),
- new ReduceAction880(183),
- new ReduceAction881(183),
- new ReduceAction154(184),
- new ReduceAction155(184),
- new ReduceAction156(184),
- new ReduceAction157(184),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction167(185),
- new ReduceAction168(185),
- new ReduceAction169(185),
- new ReduceAction170(185),
- new ReduceAction171(185),
- new ReduceAction172(185),
- new ReduceAction173(185),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction157(185),
- new ReduceAction181(185),
- new ReduceAction182(185),
- new ReduceAction183(185),
- new ReduceAction182(185),
- new ReduceAction185(185),
- new ReduceAction186(185),
- new ReduceAction187(185),
- new ReduceAction186(185),
- new ReduceAction189(185),
- new ReduceAction190(185),
- new ReduceAction191(185),
- new ReduceAction192(185),
- new ReduceAction193(185),
- new ReduceAction192(185),
- new ReduceAction195(185),
- new ReduceAction196(185),
- new ReduceAction195(185),
- new ReduceAction198(185),
- new ReduceAction254(186),
- new ReduceAction255(186),
- new ReduceAction256(187),
- new ReduceAction263(188),
- new ReduceAction264(188),
- new ReduceAction265(189),
- new ReduceAction266(189),
- new ReduceAction267(190),
- new ReduceAction268(190),
- new ReduceAction269(191),
- new ReduceAction270(191),
- new ReduceAction274(192),
- new ReduceAction275(192),
- new ReduceAction157(193),
+ new ReduceAction471(118),
+ new ReduceAction490(118),
+ new ReduceAction48(119),
+ new ReduceAction49(119),
+ new ReduceAction50(119),
+ new ReduceAction57(119),
+ new ReduceAction58(119),
+ new ReduceAction76(120),
+ new ReduceAction77(120),
+ new ReduceAction86(121),
+ new ReduceAction87(121),
+ new ReduceAction88(121),
+ new ReduceAction89(121),
+ new ReduceAction90(121),
+ new ReduceAction91(121),
+ new ReduceAction92(121),
+ new ReduceAction93(121),
+ new ReduceAction94(121),
+ new ReduceAction95(121),
+ new ReduceAction96(121),
+ new ReduceAction97(121),
+ new ReduceAction98(121),
+ new ReduceAction99(121),
+ new ReduceAction100(121),
+ new ReduceAction101(121),
+ new ReduceAction102(121),
+ new ReduceAction103(121),
+ new ReduceAction104(121),
+ new ReduceAction105(121),
+ new ReduceAction106(121),
+ new ReduceAction107(121),
+ new ReduceAction463(122),
+ new ReduceAction464(122),
+ new ReduceAction465(122),
+ new ReduceAction464(122),
+ new ReduceAction146(123),
+ new ReduceAction147(123),
+ new ReduceAction159(124),
+ new ReduceAction284(124),
+ new ReduceAction159(125),
+ new ReduceAction286(125),
+ new ReduceAction287(125),
+ new ReduceAction288(125),
+ new ReduceAction289(125),
+ new ReduceAction159(126),
+ new ReduceAction291(126),
+ new ReduceAction159(127),
+ new ReduceAction293(127),
+ new ReduceAction294(127),
+ new ReduceAction295(127),
+ new ReduceAction296(127),
+ new ReduceAction297(127),
+ new ReduceAction298(127),
+ new ReduceAction299(127),
+ new ReduceAction300(127),
+ new ReduceAction159(128),
+ new ReduceAction302(128),
+ new ReduceAction159(129),
+ new ReduceAction304(129),
+ new ReduceAction159(130),
+ new ReduceAction306(130),
+ new ReduceAction159(131),
+ new ReduceAction308(131),
+ new ReduceAction309(131),
+ new ReduceAction159(132),
+ new ReduceAction311(132),
+ new ReduceAction312(132),
+ new ReduceAction159(133),
+ new ReduceAction314(133),
+ new ReduceAction315(133),
+ new ReduceAction316(133),
+ new ReduceAction159(134),
+ new ReduceAction318(134),
+ new ReduceAction159(135),
+ new ReduceAction320(135),
+ new ReduceAction321(135),
+ new ReduceAction322(135),
+ new ReduceAction323(135),
+ new ReduceAction159(136),
+ new ReduceAction325(136),
+ new ReduceAction326(136),
+ new ReduceAction327(136),
+ new ReduceAction328(136),
+ new ReduceAction159(137),
+ new ReduceAction330(137),
+ new ReduceAction331(137),
+ new ReduceAction183(137),
+ new ReduceAction187(137),
+ new ReduceAction333(137),
+ new ReduceAction341(137),
+ new ReduceAction184(137),
+ new ReduceAction188(137),
+ new ReduceAction335(137),
+ new ReduceAction343(137),
+ new ReduceAction185(137),
+ new ReduceAction189(137),
+ new ReduceAction337(137),
+ new ReduceAction345(137),
+ new ReduceAction184(137),
+ new ReduceAction188(137),
+ new ReduceAction335(137),
+ new ReduceAction343(137),
+ new ReduceAction191(137),
+ new ReduceAction349(137),
+ new ReduceAction192(137),
+ new ReduceAction193(137),
+ new ReduceAction351(137),
+ new ReduceAction353(137),
+ new ReduceAction355(137),
+ new ReduceAction356(137),
+ new ReduceAction357(137),
+ new ReduceAction358(137),
+ new ReduceAction359(137),
+ new ReduceAction360(137),
+ new ReduceAction357(137),
+ new ReduceAction358(137),
+ new ReduceAction363(137),
+ new ReduceAction364(137),
+ new ReduceAction365(137),
+ new ReduceAction159(138),
+ new ReduceAction367(138),
+ new ReduceAction368(138),
+ new ReduceAction369(139),
+ new ReduceAction370(139),
+ new ReduceAction371(139),
+ new ReduceAction372(139),
+ new ReduceAction373(139),
+ new ReduceAction374(139),
+ new ReduceAction375(139),
+ new ReduceAction376(139),
+ new ReduceAction377(139),
+ new ReduceAction159(139),
+ new ReduceAction159(139),
+ new ReduceAction146(140),
+ new ReduceAction147(140),
+ new ReduceAction148(140),
+ new ReduceAction149(140),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction169(141),
+ new ReduceAction170(141),
+ new ReduceAction171(141),
+ new ReduceAction172(141),
+ new ReduceAction173(141),
+ new ReduceAction174(141),
+ new ReduceAction175(141),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction159(141),
+ new ReduceAction183(141),
+ new ReduceAction184(141),
+ new ReduceAction185(141),
+ new ReduceAction184(141),
+ new ReduceAction187(141),
+ new ReduceAction188(141),
+ new ReduceAction189(141),
+ new ReduceAction188(141),
+ new ReduceAction191(141),
+ new ReduceAction192(141),
+ new ReduceAction193(141),
+ new ReduceAction194(141),
+ new ReduceAction195(141),
+ new ReduceAction194(141),
+ new ReduceAction197(141),
+ new ReduceAction198(141),
+ new ReduceAction197(141),
+ new ReduceAction200(141),
+ new ReduceAction207(142),
+ new ReduceAction208(142),
+ new ReduceAction209(142),
+ new ReduceAction210(142),
+ new ReduceAction211(142),
+ new ReduceAction212(142),
+ new ReduceAction213(142),
+ new ReduceAction214(142),
+ new ReduceAction211(142),
+ new ReduceAction212(142),
+ new ReduceAction217(142),
+ new ReduceAction218(142),
+ new ReduceAction219(142),
+ new ReduceAction220(142),
+ new ReduceAction221(142),
+ new ReduceAction222(142),
+ new ReduceAction219(142),
+ new ReduceAction220(142),
+ new ReduceAction225(142),
+ new ReduceAction226(142),
+ new ReduceAction227(142),
+ new ReduceAction228(142),
+ new ReduceAction229(142),
+ new ReduceAction230(142),
+ new ReduceAction231(142),
+ new ReduceAction232(142),
+ new ReduceAction233(142),
+ new ReduceAction230(142),
+ new ReduceAction231(142),
+ new ReduceAction236(142),
+ new ReduceAction237(142),
+ new ReduceAction238(142),
+ new ReduceAction239(142),
+ new ReduceAction240(142),
+ new ReduceAction241(142),
+ new ReduceAction238(142),
+ new ReduceAction239(142),
+ new ReduceAction244(142),
+ new ReduceAction159(143),
+ new ReduceAction284(143),
+ new ReduceAction159(144),
+ new ReduceAction286(144),
+ new ReduceAction287(144),
+ new ReduceAction288(144),
+ new ReduceAction289(144),
+ new ReduceAction159(145),
+ new ReduceAction291(145),
+ new ReduceAction159(146),
+ new ReduceAction293(146),
+ new ReduceAction294(146),
+ new ReduceAction295(146),
+ new ReduceAction296(146),
+ new ReduceAction297(146),
+ new ReduceAction298(146),
+ new ReduceAction299(146),
+ new ReduceAction300(146),
+ new ReduceAction159(147),
+ new ReduceAction302(147),
+ new ReduceAction159(148),
+ new ReduceAction304(148),
+ new ReduceAction159(149),
+ new ReduceAction306(149),
+ new ReduceAction159(150),
+ new ReduceAction308(150),
+ new ReduceAction309(150),
+ new ReduceAction159(151),
+ new ReduceAction311(151),
+ new ReduceAction312(151),
+ new ReduceAction159(152),
+ new ReduceAction314(152),
+ new ReduceAction315(152),
+ new ReduceAction316(152),
+ new ReduceAction159(153),
+ new ReduceAction318(153),
+ new ReduceAction159(154),
+ new ReduceAction320(154),
+ new ReduceAction321(154),
+ new ReduceAction322(154),
+ new ReduceAction323(154),
+ new ReduceAction159(155),
+ new ReduceAction325(155),
+ new ReduceAction326(155),
+ new ReduceAction327(155),
+ new ReduceAction328(155),
+ new ReduceAction159(156),
+ new ReduceAction330(156),
+ new ReduceAction331(156),
+ new ReduceAction183(156),
+ new ReduceAction333(156),
+ new ReduceAction184(156),
+ new ReduceAction335(156),
+ new ReduceAction185(156),
+ new ReduceAction337(156),
+ new ReduceAction184(156),
+ new ReduceAction335(156),
+ new ReduceAction187(156),
+ new ReduceAction341(156),
+ new ReduceAction188(156),
+ new ReduceAction343(156),
+ new ReduceAction189(156),
+ new ReduceAction345(156),
+ new ReduceAction188(156),
+ new ReduceAction343(156),
+ new ReduceAction191(156),
+ new ReduceAction349(156),
+ new ReduceAction192(156),
+ new ReduceAction351(156),
+ new ReduceAction193(156),
+ new ReduceAction353(156),
+ new ReduceAction354(156),
+ new ReduceAction355(156),
+ new ReduceAction356(156),
+ new ReduceAction357(156),
+ new ReduceAction358(156),
+ new ReduceAction359(156),
+ new ReduceAction360(156),
+ new ReduceAction357(156),
+ new ReduceAction358(156),
+ new ReduceAction363(156),
+ new ReduceAction364(156),
+ new ReduceAction365(156),
+ new ReduceAction159(157),
+ new ReduceAction367(157),
+ new ReduceAction368(157),
+ new ReduceAction369(158),
+ new ReduceAction370(158),
+ new ReduceAction371(158),
+ new ReduceAction372(158),
+ new ReduceAction373(158),
+ new ReduceAction374(158),
+ new ReduceAction375(158),
+ new ReduceAction376(158),
+ new ReduceAction377(158),
+ new ReduceAction159(158),
+ new ReduceAction402(159),
+ new ReduceAction403(159),
+ new ReduceAction404(160),
+ new ReduceAction22(160),
+ new ReduceAction406(161),
+ new ReduceAction406(162),
+ new ReduceAction387(163),
+ new ReduceAction388(163),
+ new ReduceAction428(164),
+ new ReduceAction159(164),
+ new ReduceAction159(164),
+ new ReduceAction431(164),
+ new ReduceAction432(164),
+ new ReduceAction146(165),
+ new ReduceAction147(165),
+ new ReduceAction159(166),
+ new ReduceAction284(166),
+ new ReduceAction159(167),
+ new ReduceAction286(167),
+ new ReduceAction287(167),
+ new ReduceAction288(167),
+ new ReduceAction289(167),
+ new ReduceAction159(168),
+ new ReduceAction291(168),
+ new ReduceAction159(169),
+ new ReduceAction293(169),
+ new ReduceAction294(169),
+ new ReduceAction295(169),
+ new ReduceAction296(169),
+ new ReduceAction297(169),
+ new ReduceAction298(169),
+ new ReduceAction299(169),
+ new ReduceAction300(169),
+ new ReduceAction159(170),
+ new ReduceAction302(170),
+ new ReduceAction159(171),
+ new ReduceAction304(171),
+ new ReduceAction159(172),
+ new ReduceAction306(172),
+ new ReduceAction159(173),
+ new ReduceAction308(173),
+ new ReduceAction309(173),
+ new ReduceAction159(174),
+ new ReduceAction311(174),
+ new ReduceAction312(174),
+ new ReduceAction159(175),
+ new ReduceAction314(175),
+ new ReduceAction315(175),
+ new ReduceAction316(175),
+ new ReduceAction159(176),
+ new ReduceAction318(176),
+ new ReduceAction159(177),
+ new ReduceAction320(177),
+ new ReduceAction321(177),
+ new ReduceAction322(177),
+ new ReduceAction323(177),
+ new ReduceAction159(178),
+ new ReduceAction325(178),
+ new ReduceAction326(178),
+ new ReduceAction853(178),
+ new ReduceAction159(179),
+ new ReduceAction855(179),
+ new ReduceAction856(179),
+ new ReduceAction857(179),
+ new ReduceAction858(179),
+ new ReduceAction859(179),
+ new ReduceAction183(179),
+ new ReduceAction333(179),
+ new ReduceAction858(179),
+ new ReduceAction859(179),
+ new ReduceAction191(179),
+ new ReduceAction349(179),
+ new ReduceAction866(179),
+ new ReduceAction867(179),
+ new ReduceAction355(179),
+ new ReduceAction356(179),
+ new ReduceAction357(179),
+ new ReduceAction358(179),
+ new ReduceAction359(179),
+ new ReduceAction360(179),
+ new ReduceAction357(179),
+ new ReduceAction358(179),
+ new ReduceAction363(179),
+ new ReduceAction364(179),
+ new ReduceAction365(179),
+ new ReduceAction159(180),
+ new ReduceAction367(180),
+ new ReduceAction368(180),
+ new ReduceAction369(181),
+ new ReduceAction370(181),
+ new ReduceAction371(181),
+ new ReduceAction372(181),
+ new ReduceAction373(181),
+ new ReduceAction374(181),
+ new ReduceAction375(181),
+ new ReduceAction376(181),
+ new ReduceAction377(181),
+ new ReduceAction159(181),
+ new ReduceAction892(182),
+ new ReduceAction893(182),
+ new ReduceAction156(183),
+ new ReduceAction157(183),
+ new ReduceAction158(183),
+ new ReduceAction159(183),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction169(184),
+ new ReduceAction170(184),
+ new ReduceAction171(184),
+ new ReduceAction172(184),
+ new ReduceAction173(184),
+ new ReduceAction174(184),
+ new ReduceAction175(184),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction159(184),
+ new ReduceAction183(184),
+ new ReduceAction184(184),
+ new ReduceAction185(184),
+ new ReduceAction184(184),
+ new ReduceAction187(184),
+ new ReduceAction188(184),
+ new ReduceAction189(184),
+ new ReduceAction188(184),
+ new ReduceAction191(184),
+ new ReduceAction192(184),
+ new ReduceAction193(184),
+ new ReduceAction194(184),
+ new ReduceAction195(184),
+ new ReduceAction194(184),
+ new ReduceAction197(184),
+ new ReduceAction198(184),
+ new ReduceAction197(184),
+ new ReduceAction200(184),
+ new ReduceAction256(185),
+ new ReduceAction257(185),
+ new ReduceAction258(186),
+ new ReduceAction267(187),
+ new ReduceAction268(187),
+ new ReduceAction269(188),
+ new ReduceAction270(188),
+ new ReduceAction271(189),
+ new ReduceAction272(189),
+ new ReduceAction273(190),
+ new ReduceAction274(190),
+ new ReduceAction278(191),
+ new ReduceAction279(191),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction169(192),
+ new ReduceAction170(192),
+ new ReduceAction171(192),
+ new ReduceAction172(192),
+ new ReduceAction173(192),
+ new ReduceAction174(192),
+ new ReduceAction175(192),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction159(192),
+ new ReduceAction183(192),
+ new ReduceAction184(192),
+ new ReduceAction185(192),
+ new ReduceAction184(192),
+ new ReduceAction187(192),
+ new ReduceAction188(192),
+ new ReduceAction189(192),
+ new ReduceAction188(192),
+ new ReduceAction191(192),
+ new ReduceAction192(192),
+ new ReduceAction193(192),
+ new ReduceAction194(192),
+ new ReduceAction195(192),
+ new ReduceAction194(192),
+ new ReduceAction197(192),
+ new ReduceAction198(192),
+ new ReduceAction197(192),
+ new ReduceAction200(192),
+ new ReduceAction156(193),
new ReduceAction157(193),
- new ReduceAction167(193),
- new ReduceAction168(193),
- new ReduceAction169(193),
- new ReduceAction170(193),
- new ReduceAction171(193),
- new ReduceAction172(193),
- new ReduceAction173(193),
- new ReduceAction157(193),
- new ReduceAction157(193),
- new ReduceAction157(193),
- new ReduceAction157(193),
- new ReduceAction157(193),
- new ReduceAction157(193),
- new ReduceAction157(193),
- new ReduceAction181(193),
- new ReduceAction182(193),
- new ReduceAction183(193),
- new ReduceAction182(193),
- new ReduceAction185(193),
- new ReduceAction186(193),
- new ReduceAction187(193),
- new ReduceAction186(193),
- new ReduceAction189(193),
- new ReduceAction190(193),
- new ReduceAction191(193),
- new ReduceAction192(193),
- new ReduceAction193(193),
- new ReduceAction192(193),
- new ReduceAction195(193),
- new ReduceAction196(193),
- new ReduceAction195(193),
- new ReduceAction198(193),
- new ReduceAction154(194),
- new ReduceAction155(194),
+ new ReduceAction158(193),
new ReduceAction156(194),
- new ReduceAction154(195),
- new ReduceAction155(195),
- new ReduceAction156(195),
- new ReduceAction157(196),
- new ReduceAction157(196),
- new ReduceAction167(196),
- new ReduceAction168(196),
+ new ReduceAction157(194),
+ new ReduceAction158(194),
+ new ReduceAction159(195),
+ new ReduceAction159(195),
+ new ReduceAction169(195),
+ new ReduceAction170(195),
+ new ReduceAction171(195),
+ new ReduceAction172(195),
+ new ReduceAction173(195),
+ new ReduceAction174(195),
+ new ReduceAction175(195),
+ new ReduceAction159(195),
+ new ReduceAction159(195),
+ new ReduceAction159(195),
+ new ReduceAction159(195),
+ new ReduceAction159(195),
+ new ReduceAction159(195),
+ new ReduceAction200(195),
+ new ReduceAction159(196),
+ new ReduceAction159(196),
new ReduceAction169(196),
new ReduceAction170(196),
new ReduceAction171(196),
new ReduceAction172(196),
new ReduceAction173(196),
- new ReduceAction157(196),
- new ReduceAction157(196),
- new ReduceAction157(196),
- new ReduceAction157(196),
- new ReduceAction157(196),
- new ReduceAction157(196),
- new ReduceAction198(196),
- new ReduceAction157(197),
- new ReduceAction157(197),
- new ReduceAction167(197),
- new ReduceAction168(197),
+ new ReduceAction174(196),
+ new ReduceAction175(196),
+ new ReduceAction159(196),
+ new ReduceAction159(196),
+ new ReduceAction159(196),
+ new ReduceAction159(196),
+ new ReduceAction159(196),
+ new ReduceAction159(196),
+ new ReduceAction200(196),
+ new ReduceAction159(197),
+ new ReduceAction159(197),
new ReduceAction169(197),
new ReduceAction170(197),
new ReduceAction171(197),
new ReduceAction172(197),
new ReduceAction173(197),
- new ReduceAction157(197),
- new ReduceAction157(197),
- new ReduceAction157(197),
- new ReduceAction157(197),
- new ReduceAction157(197),
- new ReduceAction157(197),
- new ReduceAction198(197),
- new ReduceAction157(198),
- new ReduceAction157(198),
- new ReduceAction167(198),
- new ReduceAction168(198),
+ new ReduceAction174(197),
+ new ReduceAction175(197),
+ new ReduceAction159(197),
+ new ReduceAction159(197),
+ new ReduceAction159(197),
+ new ReduceAction159(197),
+ new ReduceAction159(197),
+ new ReduceAction159(197),
+ new ReduceAction200(197),
+ new ReduceAction159(198),
+ new ReduceAction159(198),
new ReduceAction169(198),
new ReduceAction170(198),
new ReduceAction171(198),
new ReduceAction172(198),
new ReduceAction173(198),
- new ReduceAction157(198),
- new ReduceAction157(198),
- new ReduceAction157(198),
- new ReduceAction157(198),
- new ReduceAction157(198),
- new ReduceAction157(198),
- new ReduceAction198(198),
- new ReduceAction157(199),
- new ReduceAction157(199),
- new ReduceAction167(199),
- new ReduceAction168(199),
- new ReduceAction169(199),
- new ReduceAction170(199),
- new ReduceAction171(199),
- new ReduceAction172(199),
- new ReduceAction173(199),
- new ReduceAction157(199),
- new ReduceAction157(199),
- new ReduceAction157(199),
- new ReduceAction157(199),
- new ReduceAction157(199),
- new ReduceAction157(199),
- new ReduceAction198(199),
- new ReduceAction432(200),
- new ReduceAction434(200),
- new ReduceAction1039(201),
- new ReduceAction1040(201),
- new ReduceAction1041(202),
- new ReduceAction1042(202),
- new ReduceAction1043(203),
- new ReduceAction1044(203),
- new ReduceAction1045(204),
- new ReduceAction1046(204),
- new ReduceAction43(205),
- new ReduceAction1048(205),
- new ReduceAction1049(206),
- new ReduceAction1050(206),
- new ReduceAction1051(207),
- new ReduceAction1052(207),
- new ReduceAction148(208),
- new ReduceAction1054(208),
- new ReduceAction383(209),
- new ReduceAction1056(209),
- new ReduceAction383(210),
- new ReduceAction1056(210),
- new ReduceAction383(211),
- new ReduceAction1056(211),
- new ReduceAction446(212),
- new ReduceAction1062(212),
- new ReduceAction405(213),
- new ReduceAction1064(213),
- new ReduceAction405(214),
- new ReduceAction1064(214),
- new ReduceAction383(215),
- new ReduceAction1056(215),
- new ReduceAction383(216),
- new ReduceAction1056(216),
- new ReduceAction447(217),
- new ReduceAction1072(217),
- new ReduceAction1073(218),
- new ReduceAction1074(218),
- new ReduceAction1075(219),
- new ReduceAction1076(219)
+ new ReduceAction174(198),
+ new ReduceAction175(198),
+ new ReduceAction159(198),
+ new ReduceAction159(198),
+ new ReduceAction159(198),
+ new ReduceAction159(198),
+ new ReduceAction159(198),
+ new ReduceAction159(198),
+ new ReduceAction200(198),
+ new ReduceAction434(199),
+ new ReduceAction436(199),
+ new ReduceAction474(200),
+ new ReduceAction475(200),
+ new ReduceAction23(200),
+ new ReduceAction1054(201),
+ new ReduceAction1055(201),
+ new ReduceAction1056(202),
+ new ReduceAction1057(202),
+ new ReduceAction1058(203),
+ new ReduceAction1059(203),
+ new ReduceAction37(204),
+ new ReduceAction1061(204),
+ new ReduceAction45(205),
+ new ReduceAction1063(205),
+ new ReduceAction408(206),
+ new ReduceAction1065(206),
+ new ReduceAction1066(207),
+ new ReduceAction1067(207),
+ new ReduceAction1068(208),
+ new ReduceAction1069(208),
+ new ReduceAction150(209),
+ new ReduceAction1071(209),
+ new ReduceAction387(210),
+ new ReduceAction1073(210),
+ new ReduceAction387(211),
+ new ReduceAction1073(211),
+ new ReduceAction387(212),
+ new ReduceAction1073(212),
+ new ReduceAction448(213),
+ new ReduceAction1079(213),
+ new ReduceAction408(214),
+ new ReduceAction1065(214),
+ new ReduceAction387(215),
+ new ReduceAction1073(215),
+ new ReduceAction387(216),
+ new ReduceAction1073(216),
+ new ReduceAction449(217),
+ new ReduceAction1087(217),
+ new ReduceAction1088(218),
+ new ReduceAction1089(218),
+ new ReduceAction471(219),
+ new ReduceAction490(219)
)
end
end
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist9 = p.pop
var nodearraylist8 = p.pop
var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var listnode8 = new Array[Object]
- var listnode11 = new Array[Object]
+ var listnode12 = new Array[Object]
var pdocnode2 = nodearraylist1
assert pdocnode2 isa nullable ADoc
var tkwredefnode3 = nodearraylist2
assert pclasskindnode5 isa nullable AClasskind
var tclassidnode6 = nodearraylist6
assert tclassidnode6 isa nullable TClassid
- var listnode7 = nodearraylist7
- assert listnode7 isa Array[Object]
- listnode8 = concat(listnode8, listnode7)
- var listnode10 = nodearraylist8
- assert listnode10 isa Array[Object]
- listnode11 = concat(listnode11, listnode10)
- var tkwendnode12 = nodearraylist9
- assert tkwendnode12 isa nullable TKwend
+ var listnode11 = nodearraylist7
+ assert listnode11 isa Array[Object]
+ listnode12 = concat(listnode12, listnode11)
+ var tkwendnode13 = nodearraylist8
+ assert tkwendnode13 isa nullable TKwend
var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
pdocnode2,
tkwredefnode3,
pvisibilitynode4,
pclasskindnode5,
tclassidnode6,
+ null,
listnode8,
null,
- listnode11,
- tkwendnode12
+ null,
+ listnode12,
+ tkwendnode13
)
node_list = pclassdefnode1
p.push(p.go_to(_goto), node_list)
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist10 = p.pop
var nodearraylist9 = p.pop
var nodearraylist8 = p.pop
var nodearraylist7 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var listnode8 = new Array[Object]
- var listnode11 = new Array[Object]
+ var listnode12 = new Array[Object]
var pdocnode2 = nodearraylist1
assert pdocnode2 isa nullable ADoc
var tkwredefnode3 = nodearraylist2
assert pclasskindnode5 isa nullable AClasskind
var tclassidnode6 = nodearraylist6
assert tclassidnode6 isa nullable TClassid
- var listnode7 = nodearraylist7
- assert listnode7 isa Array[Object]
- listnode8 = concat(listnode8, listnode7)
- var pexterncodeblocknode9 = nodearraylist8
- assert pexterncodeblocknode9 isa nullable AExternCodeBlock
- var listnode10 = nodearraylist9
- assert listnode10 isa Array[Object]
- listnode11 = concat(listnode11, listnode10)
- var tkwendnode12 = nodearraylist10
- assert tkwendnode12 isa nullable TKwend
+ var pexterncodeblocknode10 = nodearraylist7
+ assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+ var listnode11 = nodearraylist8
+ assert listnode11 isa Array[Object]
+ listnode12 = concat(listnode12, listnode11)
+ var tkwendnode13 = nodearraylist9
+ assert tkwendnode13 isa nullable TKwend
var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
pdocnode2,
tkwredefnode3,
pvisibilitynode4,
pclasskindnode5,
tclassidnode6,
+ null,
listnode8,
- pexterncodeblocknode9,
- listnode11,
- tkwendnode12
+ null,
+ pexterncodeblocknode10,
+ listnode12,
+ tkwendnode13
+ )
+ node_list = pclassdefnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction28
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist12 = p.pop
+ var nodearraylist11 = p.pop
+ var nodearraylist10 = p.pop
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var listnode9 = new Array[Object]
+ var listnode13 = new Array[Object]
+ var pdocnode2 = nodearraylist1
+ assert pdocnode2 isa nullable ADoc
+ var tkwredefnode3 = nodearraylist2
+ assert tkwredefnode3 isa nullable TKwredef
+ var pvisibilitynode4 = nodearraylist3
+ assert pvisibilitynode4 isa nullable AVisibility
+ var pclasskindnode5 = nodearraylist4
+ assert pclasskindnode5 isa nullable AClasskind
+ var tclassidnode6 = nodearraylist6
+ assert tclassidnode6 isa nullable TClassid
+ var tobranode7 = nodearraylist7
+ assert tobranode7 isa nullable TObra
+ var listnode8 = nodearraylist9
+ assert listnode8 isa Array[Object]
+ listnode9 = concat(listnode9, listnode8)
+ var tcbranode10 = nodearraylist10
+ assert tcbranode10 isa nullable TCbra
+ var listnode12 = nodearraylist11
+ assert listnode12 isa Array[Object]
+ listnode13 = concat(listnode13, listnode12)
+ var tkwendnode14 = nodearraylist12
+ assert tkwendnode14 isa nullable TKwend
+ var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+ pdocnode2,
+ tkwredefnode3,
+ pvisibilitynode4,
+ pclasskindnode5,
+ tclassidnode6,
+ tobranode7,
+ listnode9,
+ tcbranode10,
+ null,
+ listnode13,
+ tkwendnode14
)
node_list = pclassdefnode1
p.push(p.go_to(_goto), node_list)
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist13 = p.pop
+ var nodearraylist12 = p.pop
+ var nodearraylist11 = p.pop
+ var nodearraylist10 = p.pop
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var listnode9 = new Array[Object]
+ var listnode13 = new Array[Object]
+ var pdocnode2 = nodearraylist1
+ assert pdocnode2 isa nullable ADoc
+ var tkwredefnode3 = nodearraylist2
+ assert tkwredefnode3 isa nullable TKwredef
+ var pvisibilitynode4 = nodearraylist3
+ assert pvisibilitynode4 isa nullable AVisibility
+ var pclasskindnode5 = nodearraylist4
+ assert pclasskindnode5 isa nullable AClasskind
+ var tclassidnode6 = nodearraylist6
+ assert tclassidnode6 isa nullable TClassid
+ var tobranode7 = nodearraylist7
+ assert tobranode7 isa nullable TObra
+ var listnode8 = nodearraylist9
+ assert listnode8 isa Array[Object]
+ listnode9 = concat(listnode9, listnode8)
+ var tcbranode10 = nodearraylist10
+ assert tcbranode10 isa nullable TCbra
+ var pexterncodeblocknode11 = nodearraylist11
+ assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+ var listnode12 = nodearraylist12
+ assert listnode12 isa Array[Object]
+ listnode13 = concat(listnode13, listnode12)
+ var tkwendnode14 = nodearraylist13
+ assert tkwendnode14 isa nullable TKwend
+ var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+ pdocnode2,
+ tkwredefnode3,
+ pvisibilitynode4,
+ pclasskindnode5,
+ tclassidnode6,
+ tobranode7,
+ listnode9,
+ tcbranode10,
+ pexterncodeblocknode11,
+ listnode13,
+ tkwendnode14
+ )
+ node_list = pclassdefnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction31
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
var nodearraylist1 = p.pop
var tkwredefnode1 = nodearraylist1
node_list = tkwredefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction30
+private class ReduceAction32
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction31
+private class ReduceAction33
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction32
+private class ReduceAction34
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction33
+private class ReduceAction35
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction34
+private class ReduceAction36
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction35
+private class ReduceAction37
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist5 = p.pop
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var listnode2 = new Array[Object]
- var pformaldefnode1 = nodearraylist3
+ var pformaldefnode1 = nodearraylist1
if pformaldefnode1 != null then
listnode2.add(pformaldefnode1)
end
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction36
+private class ReduceAction38
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var listnode3 = new Array[Object]
- var pformaldefnode1 = nodearraylist3
- var listnode2 = nodearraylist4
+ var pformaldefnode1 = nodearraylist1
+ var listnode2 = nodearraylist2
assert listnode2 isa Array[Object]
if pformaldefnode1 != null then
listnode3.add(pformaldefnode1)
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction37
+private class ReduceAction39
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction38
+private class ReduceAction40
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction39
+private class ReduceAction41
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var tclassidnode2 = nodearraylist1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction40
+private class ReduceAction42
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction41
+private class ReduceAction43
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction42
+private class ReduceAction44
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction43
+private class ReduceAction45
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction44
+private class ReduceAction46
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction45
+private class ReduceAction47
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction46
+private class ReduceAction48
super ReduceAction
redef fun action(p: Parser)
do
assert pmethidnode8 isa nullable AMethid
var psignaturenode9 = nodearraylist6
assert psignaturenode9 isa nullable ASignature
- var pexprnode13 = nodearraylist8
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist7
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist9
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
null,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction47
+private class ReduceAction49
super ReduceAction
redef fun action(p: Parser)
do
assert psignaturenode9 isa nullable ASignature
var pannotationsnode10 = nodearraylist7
assert pannotationsnode10 isa nullable AAnnotations
- var pexprnode13 = nodearraylist9
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist8
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist9
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist10
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
pannotationsnode10,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction48
+private class ReduceAction50
super ReduceAction
redef fun action(p: Parser)
do
pannotationsnode10,
null,
null,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction49
+private class ReduceAction51
super ReduceAction
redef fun action(p: Parser)
do
pannotationsnode10,
null,
null,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction50
+private class ReduceAction52
super ReduceAction
redef fun action(p: Parser)
do
pannotationsnode10,
null,
null,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction51
+private class ReduceAction53
super ReduceAction
redef fun action(p: Parser)
do
assert tkwnewnode7 isa nullable TKwnew
var psignaturenode9 = nodearraylist5
assert psignaturenode9 isa nullable ASignature
- var pexprnode13 = nodearraylist7
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist6
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist7
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist8
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
null,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction52
+private class ReduceAction54
super ReduceAction
redef fun action(p: Parser)
do
assert pmethidnode8 isa nullable AMethid
var psignaturenode9 = nodearraylist6
assert psignaturenode9 isa nullable ASignature
- var pexprnode13 = nodearraylist8
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist7
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist9
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
null,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction53
+private class ReduceAction55
super ReduceAction
redef fun action(p: Parser)
do
assert psignaturenode9 isa nullable ASignature
var pannotationsnode10 = nodearraylist6
assert pannotationsnode10 isa nullable AAnnotations
- var pexprnode13 = nodearraylist8
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist7
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist9
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
pannotationsnode10,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction54
+private class ReduceAction56
super ReduceAction
redef fun action(p: Parser)
do
assert psignaturenode9 isa nullable ASignature
var pannotationsnode10 = nodearraylist7
assert pannotationsnode10 isa nullable AAnnotations
- var pexprnode13 = nodearraylist9
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist8
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist9
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist10
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
pannotationsnode10,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction55
+private class ReduceAction57
super ReduceAction
redef fun action(p: Parser)
do
null,
pexterncallsnode11,
pexterncodeblocknode12,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction56
+private class ReduceAction58
super ReduceAction
redef fun action(p: Parser)
do
pannotationsnode10,
pexterncallsnode11,
pexterncodeblocknode12,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction57
+private class ReduceAction59
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode6 isa nullable TId
var ptypenode7 = nodearraylist6
assert ptypenode7 isa nullable AType
- var pannotationsnode9 = nodearraylist7
- assert pannotationsnode9 isa nullable AAnnotations
+ var pannotationsnode10 = nodearraylist7
+ assert pannotationsnode10 isa nullable AAnnotations
var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
pdocnode2,
tkwredefnode3,
tidnode6,
ptypenode7,
null,
- pannotationsnode9,
+ null,
+ pannotationsnode10,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction58
+private class ReduceAction60
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode6 isa nullable TId
var ptypenode7 = nodearraylist6
assert ptypenode7 isa nullable AType
- var pexprnode8 = nodearraylist9
- assert pexprnode8 isa nullable AExpr
- var pannotationsnode9 = nodearraylist10
- assert pannotationsnode9 isa nullable AAnnotations
+ var tassignnode8 = nodearraylist7
+ assert tassignnode8 isa nullable TAssign
+ var pexprnode9 = nodearraylist9
+ assert pexprnode9 isa nullable AExpr
+ var pannotationsnode10 = nodearraylist10
+ assert pannotationsnode10 isa nullable AAnnotations
var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
pdocnode2,
tkwredefnode3,
tkwvarnode5,
tidnode6,
ptypenode7,
- pexprnode8,
- pannotationsnode9,
+ tassignnode8,
+ pexprnode9,
+ pannotationsnode10,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction59
+private class ReduceAction61
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode6 isa nullable TId
var ptypenode7 = nodearraylist6
assert ptypenode7 isa nullable AType
- var pexprnode10 = nodearraylist8
- assert pexprnode10 isa nullable AExpr
+ var tkwdonode11 = nodearraylist7
+ assert tkwdonode11 isa nullable TKwdo
+ var pexprnode12 = nodearraylist8
+ assert pexprnode12 isa nullable AExpr
var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
pdocnode2,
tkwredefnode3,
ptypenode7,
null,
null,
- pexprnode10
+ null,
+ tkwdonode11,
+ pexprnode12,
+ null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction60
+private class ReduceAction62
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode6 isa nullable TId
var ptypenode7 = nodearraylist6
assert ptypenode7 isa nullable AType
- var pannotationsnode9 = nodearraylist7
- assert pannotationsnode9 isa nullable AAnnotations
- var pexprnode10 = nodearraylist9
- assert pexprnode10 isa nullable AExpr
+ var pannotationsnode10 = nodearraylist7
+ assert pannotationsnode10 isa nullable AAnnotations
+ var tkwdonode11 = nodearraylist8
+ assert tkwdonode11 isa nullable TKwdo
+ var pexprnode12 = nodearraylist9
+ assert pexprnode12 isa nullable AExpr
var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
pdocnode2,
tkwredefnode3,
tidnode6,
ptypenode7,
null,
- pannotationsnode9,
- pexprnode10
+ null,
+ pannotationsnode10,
+ tkwdonode11,
+ pexprnode12,
+ null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction61
+private class ReduceAction63
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode6 isa nullable TId
var ptypenode7 = nodearraylist6
assert ptypenode7 isa nullable AType
- var pexprnode10 = nodearraylist8
- assert pexprnode10 isa nullable AExpr
+ var tkwdonode11 = nodearraylist7
+ assert tkwdonode11 isa nullable TKwdo
+ var pexprnode12 = nodearraylist8
+ assert pexprnode12 isa nullable AExpr
+ var tkwendnode13 = nodearraylist9
+ assert tkwendnode13 isa nullable TKwend
var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
pdocnode2,
tkwredefnode3,
ptypenode7,
null,
null,
- pexprnode10
+ null,
+ tkwdonode11,
+ pexprnode12,
+ tkwendnode13
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction62
+private class ReduceAction64
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode6 isa nullable TId
var ptypenode7 = nodearraylist6
assert ptypenode7 isa nullable AType
- var pannotationsnode9 = nodearraylist7
- assert pannotationsnode9 isa nullable AAnnotations
- var pexprnode10 = nodearraylist9
- assert pexprnode10 isa nullable AExpr
+ var pannotationsnode10 = nodearraylist7
+ assert pannotationsnode10 isa nullable AAnnotations
+ var tkwdonode11 = nodearraylist8
+ assert tkwdonode11 isa nullable TKwdo
+ var pexprnode12 = nodearraylist9
+ assert pexprnode12 isa nullable AExpr
+ var tkwendnode13 = nodearraylist10
+ assert tkwendnode13 isa nullable TKwend
var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
pdocnode2,
tkwredefnode3,
tidnode6,
ptypenode7,
null,
- pannotationsnode9,
- pexprnode10
+ null,
+ pannotationsnode10,
+ tkwdonode11,
+ pexprnode12,
+ tkwendnode13
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction63
+private class ReduceAction65
super ReduceAction
redef fun action(p: Parser)
do
assert tkwinitnode6 isa nullable TKwinit
var psignaturenode9 = nodearraylist5
assert psignaturenode9 isa nullable ASignature
- var pexprnode13 = nodearraylist7
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist6
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist7
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist8
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
null,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction64
+private class ReduceAction66
super ReduceAction
redef fun action(p: Parser)
do
assert pmethidnode8 isa nullable AMethid
var psignaturenode9 = nodearraylist6
assert psignaturenode9 isa nullable ASignature
- var pexprnode13 = nodearraylist8
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist7
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist9
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
null,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction65
+private class ReduceAction67
super ReduceAction
redef fun action(p: Parser)
do
assert psignaturenode9 isa nullable ASignature
var pannotationsnode10 = nodearraylist6
assert pannotationsnode10 isa nullable AAnnotations
- var pexprnode13 = nodearraylist8
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist7
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist9
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
pannotationsnode10,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction66
+private class ReduceAction68
super ReduceAction
redef fun action(p: Parser)
do
assert psignaturenode9 isa nullable ASignature
var pannotationsnode10 = nodearraylist7
assert pannotationsnode10 isa nullable AAnnotations
- var pexprnode13 = nodearraylist9
- assert pexprnode13 isa nullable AExpr
+ var tkwdonode13 = nodearraylist8
+ assert tkwdonode13 isa nullable TKwdo
+ var pexprnode14 = nodearraylist9
+ assert pexprnode14 isa nullable AExpr
+ var tkwendnode15 = nodearraylist10
+ assert tkwendnode15 isa nullable TKwend
var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
pdocnode2,
tkwredefnode3,
pannotationsnode10,
null,
null,
- pexprnode13
+ tkwdonode13,
+ pexprnode14,
+ tkwendnode15
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction67
+private class ReduceAction69
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction68
+private class ReduceAction70
super ReduceAction
redef fun action(p: Parser)
do
null,
pexterncallsnode11,
pexterncodeblocknode12,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction69
+private class ReduceAction71
super ReduceAction
redef fun action(p: Parser)
do
null,
pexterncallsnode11,
pexterncodeblocknode12,
- null
+ null,
+ null,
+ null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction70
+private class ReduceAction72
super ReduceAction
redef fun action(p: Parser)
do
pannotationsnode10,
pexterncallsnode11,
pexterncodeblocknode12,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction71
+private class ReduceAction73
super ReduceAction
redef fun action(p: Parser)
do
pannotationsnode10,
pexterncallsnode11,
pexterncodeblocknode12,
+ null,
+ null,
null
)
node_list = ppropdefnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction72
+private class ReduceAction74
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction74
+private class ReduceAction76
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pannotationsnode1 = nodearraylist2
+ var listnode6 = new Array[Object]
+ var tkwisnode2 = nodearraylist1
+ assert tkwisnode2 isa nullable TKwis
+ var listnode5 = nodearraylist2
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+ tkwisnode2,
+ null,
+ null,
+ listnode6,
+ null,
+ null
+ )
node_list = pannotationsnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction75
+private class ReduceAction77
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pannotationsnode1 = nodearraylist3
+ var listnode6 = new Array[Object]
+ var tkwisnode2 = nodearraylist1
+ assert tkwisnode2 isa nullable TKwis
+ var listnode5 = nodearraylist3
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var tkwendnode8 = nodearraylist4
+ assert tkwendnode8 isa nullable TKwend
+ var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+ tkwisnode2,
+ null,
+ null,
+ listnode6,
+ null,
+ tkwendnode8
+ )
node_list = pannotationsnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction78
+private class ReduceAction80
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pannotationsnode1 = nodearraylist3
+ var listnode6 = new Array[Object]
+ var tkwisnode2 = nodearraylist1
+ assert tkwisnode2 isa nullable TKwis
+ var listnode5 = nodearraylist3
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+ tkwisnode2,
+ null,
+ null,
+ listnode6,
+ null,
+ null
+ )
node_list = pannotationsnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction79
+private class ReduceAction81
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction80
+private class ReduceAction82
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction81
+private class ReduceAction83
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction82
+private class ReduceAction84
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction83
+private class ReduceAction85
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction84
+private class ReduceAction86
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction85
+private class ReduceAction87
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction86
+private class ReduceAction88
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction87
+private class ReduceAction89
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction88
+private class ReduceAction90
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction89
+private class ReduceAction91
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction90
+private class ReduceAction92
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction91
+private class ReduceAction93
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction92
+private class ReduceAction94
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction93
+private class ReduceAction95
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction94
+private class ReduceAction96
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction95
+private class ReduceAction97
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction96
+private class ReduceAction98
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction97
+private class ReduceAction99
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction98
+private class ReduceAction100
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction99
+private class ReduceAction101
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction100
+private class ReduceAction102
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction101
+private class ReduceAction103
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction102
+private class ReduceAction104
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction103
+private class ReduceAction105
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction104
+private class ReduceAction106
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction105
+private class ReduceAction107
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction106
+private class ReduceAction108
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction107
+private class ReduceAction109
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction108
+private class ReduceAction110
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction109
+private class ReduceAction111
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction110
+private class ReduceAction112
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction111
+private class ReduceAction113
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction112
+private class ReduceAction114
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction114
+private class ReduceAction116
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction115
+private class ReduceAction117
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction116
+private class ReduceAction118
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction117
+private class ReduceAction119
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction118
+private class ReduceAction120
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction119
+private class ReduceAction121
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction120
+private class ReduceAction122
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction121
+private class ReduceAction123
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction123
+private class ReduceAction125
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction124
+private class ReduceAction126
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction126
+private class ReduceAction128
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction127
+private class ReduceAction129
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction128
+private class ReduceAction130
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction129
+private class ReduceAction131
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction130
+private class ReduceAction132
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction131
+private class ReduceAction133
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction132
+private class ReduceAction134
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction133
+private class ReduceAction135
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction134
+private class ReduceAction136
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction135
+private class ReduceAction137
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction137
+private class ReduceAction139
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction138
+private class ReduceAction140
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction139
+private class ReduceAction141
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction140
+private class ReduceAction142
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction141
+private class ReduceAction143
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction143
+private class ReduceAction145
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction144
+private class ReduceAction146
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode4 = new Array[Object]
+ var listnode5 = new Array[Object]
var tclassidnode3 = nodearraylist1
assert tclassidnode3 isa nullable TClassid
- var pannotationsnode5 = nodearraylist2
- assert pannotationsnode5 isa nullable AAnnotations
+ var pannotationsnode7 = nodearraylist2
+ assert pannotationsnode7 isa nullable AAnnotations
var ptypenode1: nullable AType = new AType.init_atype(
null,
tclassidnode3,
- listnode4,
- pannotationsnode5
+ null,
+ listnode5,
+ null,
+ pannotationsnode7
)
node_list = ptypenode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction145
+private class ReduceAction147
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode4 = new Array[Object]
+ var listnode5 = new Array[Object]
var tkwnullablenode2 = nodearraylist1
assert tkwnullablenode2 isa nullable TKwnullable
var tclassidnode3 = nodearraylist2
assert tclassidnode3 isa nullable TClassid
- var pannotationsnode5 = nodearraylist3
- assert pannotationsnode5 isa nullable AAnnotations
+ var pannotationsnode7 = nodearraylist3
+ assert pannotationsnode7 isa nullable AAnnotations
var ptypenode1: nullable AType = new AType.init_atype(
tkwnullablenode2,
tclassidnode3,
- listnode4,
- pannotationsnode5
+ null,
+ listnode5,
+ null,
+ pannotationsnode7
)
node_list = ptypenode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction146
+private class ReduceAction148
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode5 = new Array[Object]
+ var listnode6 = new Array[Object]
var tclassidnode3 = nodearraylist1
assert tclassidnode3 isa nullable TClassid
- var listnode4 = nodearraylist4
- assert listnode4 isa Array[Object]
- listnode5 = concat(listnode5, listnode4)
- var pannotationsnode6 = nodearraylist7
- assert pannotationsnode6 isa nullable AAnnotations
+ var tobranode4 = nodearraylist2
+ assert tobranode4 isa nullable TObra
+ var listnode5 = nodearraylist4
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var tcbranode7 = nodearraylist6
+ assert tcbranode7 isa nullable TCbra
+ var pannotationsnode8 = nodearraylist7
+ assert pannotationsnode8 isa nullable AAnnotations
var ptypenode1: nullable AType = new AType.init_atype(
null,
tclassidnode3,
- listnode5,
- pannotationsnode6
+ tobranode4,
+ listnode6,
+ tcbranode7,
+ pannotationsnode8
)
node_list = ptypenode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction147
+private class ReduceAction149
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode5 = new Array[Object]
+ var listnode6 = new Array[Object]
var tkwnullablenode2 = nodearraylist1
assert tkwnullablenode2 isa nullable TKwnullable
var tclassidnode3 = nodearraylist2
assert tclassidnode3 isa nullable TClassid
- var listnode4 = nodearraylist5
- assert listnode4 isa Array[Object]
- listnode5 = concat(listnode5, listnode4)
- var pannotationsnode6 = nodearraylist8
- assert pannotationsnode6 isa nullable AAnnotations
+ var tobranode4 = nodearraylist3
+ assert tobranode4 isa nullable TObra
+ var listnode5 = nodearraylist5
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var tcbranode7 = nodearraylist7
+ assert tcbranode7 isa nullable TCbra
+ var pannotationsnode8 = nodearraylist8
+ assert pannotationsnode8 isa nullable AAnnotations
var ptypenode1: nullable AType = new AType.init_atype(
tkwnullablenode2,
tclassidnode3,
- listnode5,
- pannotationsnode6
+ tobranode4,
+ listnode6,
+ tcbranode7,
+ pannotationsnode8
)
node_list = ptypenode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction148
+private class ReduceAction150
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction149
+private class ReduceAction151
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction150
+private class ReduceAction152
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction154
+private class ReduceAction156
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction155
+private class ReduceAction157
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction156
+private class ReduceAction158
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction157
+private class ReduceAction159
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction158
+private class ReduceAction160
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction159
+private class ReduceAction161
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction160
+private class ReduceAction162
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction161
+private class ReduceAction163
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction162
+private class ReduceAction164
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction163
+private class ReduceAction165
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction167
+private class ReduceAction169
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction168
+private class ReduceAction170
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction169
+private class ReduceAction171
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction170
+private class ReduceAction172
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction171
+private class ReduceAction173
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction172
+private class ReduceAction174
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction173
+private class ReduceAction175
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction181
+private class ReduceAction183
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction182
+private class ReduceAction184
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction183
+private class ReduceAction185
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction185
+private class ReduceAction187
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction186
+private class ReduceAction188
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction187
+private class ReduceAction189
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction189
+private class ReduceAction191
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction190
+private class ReduceAction192
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction191
+private class ReduceAction193
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction192
+private class ReduceAction194
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction193
+private class ReduceAction195
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction195
+private class ReduceAction197
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction196
+private class ReduceAction198
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction198
+private class ReduceAction200
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction199
+private class ReduceAction201
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction200
+private class ReduceAction202
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction201
+private class ReduceAction203
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction202
+private class ReduceAction204
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction203
+private class ReduceAction205
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction204
+private class ReduceAction206
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction205
+private class ReduceAction207
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction206
+private class ReduceAction208
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction207
+private class ReduceAction209
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction208
+private class ReduceAction210
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction209
+private class ReduceAction211
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction210
+private class ReduceAction212
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction211
+private class ReduceAction213
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction212
+private class ReduceAction214
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction215
+private class ReduceAction217
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction216
+private class ReduceAction218
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction217
+private class ReduceAction219
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction218
+private class ReduceAction220
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction219
+private class ReduceAction221
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction220
+private class ReduceAction222
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction223
+private class ReduceAction225
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction224
+private class ReduceAction226
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction225
+private class ReduceAction227
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction226
+private class ReduceAction228
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction227
+private class ReduceAction229
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction228
+private class ReduceAction230
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction229
+private class ReduceAction231
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction230
+private class ReduceAction232
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction231
+private class ReduceAction233
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction234
+private class ReduceAction236
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction235
+private class ReduceAction237
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction236
+private class ReduceAction238
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction237
+private class ReduceAction239
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction238
+private class ReduceAction240
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction239
+private class ReduceAction241
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction242
+private class ReduceAction244
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction243
+private class ReduceAction245
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction244
+private class ReduceAction246
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction245
+private class ReduceAction247
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction246
+private class ReduceAction248
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction247
+private class ReduceAction249
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction248
+private class ReduceAction250
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction249
+private class ReduceAction251
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction250
+private class ReduceAction252
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction251
+private class ReduceAction253
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction252
+private class ReduceAction254
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction253
+private class ReduceAction255
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction254
+private class ReduceAction256
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction255
+private class ReduceAction257
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction256
+private class ReduceAction258
super ReduceAction
redef fun action(p: Parser)
do
assert tkwifnode2 isa nullable TKwif
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode4 = nodearraylist6
- assert pexprnode4 isa nullable AExpr
- var pexprnode5 = nodearraylist8
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist6
assert pexprnode5 isa nullable AExpr
+ var tkwelsenode6 = nodearraylist7
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
tkwifnode2,
pexprnode3,
- pexprnode4,
- pexprnode5
+ tkwthennode4,
+ pexprnode5,
+ tkwelsenode6,
+ pexprnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction257
+private class ReduceAction259
super ReduceAction
redef fun action(p: Parser)
do
assert tkwifnode2 isa nullable TKwif
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode4 = nodearraylist6
- assert pexprnode4 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
tkwifnode2,
pexprnode3,
- pexprnode4,
+ tkwthennode4,
+ pexprnode5,
+ null,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction258
+private class ReduceAction260
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
var nodearraylist8 = p.pop
var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
assert tkwifnode2 isa nullable TKwif
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode4 = nodearraylist7
- assert pexprnode4 isa nullable AExpr
- var pexprnode5 = nodearraylist8
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist7
assert pexprnode5 isa nullable AExpr
+ var tkwelsenode6 = nodearraylist8
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist9
+ assert pexprnode7 isa nullable AExpr
var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
tkwifnode2,
pexprnode3,
- pexprnode4,
- pexprnode5
+ tkwthennode4,
+ pexprnode5,
+ tkwelsenode6,
+ pexprnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction259
+private class ReduceAction261
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
assert tkwifnode2 isa nullable TKwif
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var tkwelsenode6 = nodearraylist6
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist7
+ assert pexprnode7 isa nullable AExpr
var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
tkwifnode2,
pexprnode3,
+ tkwthennode4,
null,
- pexprnode5
+ tkwelsenode6,
+ pexprnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction260
+private class ReduceAction262
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var tkwelsenode6 = nodearraylist7
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ tkwelsenode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction263
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
assert tkwifnode2 isa nullable TKwif
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
var pexprnode5 = nodearraylist7
assert pexprnode5 isa nullable AExpr
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
tkwifnode2,
pexprnode3,
+ tkwthennode4,
+ pexprnode5,
null,
- pexprnode5
+ pexprnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction263
+private class ReduceAction264
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode7 = nodearraylist6
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ null,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction265
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode7 = nodearraylist7
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ null,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction267
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction264
+private class ReduceAction268
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction265
+private class ReduceAction269
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction266
+private class ReduceAction270
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction267
+private class ReduceAction271
super ReduceAction
redef fun action(p: Parser)
do
var listnode3 = nodearraylist3
assert listnode3 isa Array[Object]
listnode4 = concat(listnode4, listnode3)
- var pexprnode5 = nodearraylist7
- assert pexprnode5 isa nullable AExpr
- var tkwdonode6 = nodearraylist9
- assert tkwdonode6 isa nullable TKwdo
- var pexprnode7 = nodearraylist10
- assert pexprnode7 isa nullable AExpr
- var plabelnode8 = nodearraylist11
- assert plabelnode8 isa nullable ALabel
+ var tkwinnode5 = nodearraylist5
+ assert tkwinnode5 isa nullable TKwin
+ var pexprnode6 = nodearraylist7
+ assert pexprnode6 isa nullable AExpr
+ var tkwdonode7 = nodearraylist9
+ assert tkwdonode7 isa nullable TKwdo
+ var pexprnode8 = nodearraylist10
+ assert pexprnode8 isa nullable AExpr
+ var plabelnode9 = nodearraylist11
+ assert plabelnode9 isa nullable ALabel
var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
tkwfornode2,
listnode4,
- pexprnode5,
- tkwdonode6,
- pexprnode7,
- plabelnode8
+ tkwinnode5,
+ pexprnode6,
+ tkwdonode7,
+ pexprnode8,
+ plabelnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction268
+private class ReduceAction272
super ReduceAction
redef fun action(p: Parser)
do
var listnode3 = nodearraylist3
assert listnode3 isa Array[Object]
listnode4 = concat(listnode4, listnode3)
- var pexprnode5 = nodearraylist7
- assert pexprnode5 isa nullable AExpr
- var tkwdonode6 = nodearraylist9
- assert tkwdonode6 isa nullable TKwdo
- var pexprnode7 = nodearraylist10
- assert pexprnode7 isa nullable AExpr
+ var tkwinnode5 = nodearraylist5
+ assert tkwinnode5 isa nullable TKwin
+ var pexprnode6 = nodearraylist7
+ assert pexprnode6 isa nullable AExpr
+ var tkwdonode7 = nodearraylist9
+ assert tkwdonode7 isa nullable TKwdo
+ var pexprnode8 = nodearraylist10
+ assert pexprnode8 isa nullable AExpr
var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
tkwfornode2,
listnode4,
- pexprnode5,
- tkwdonode6,
- pexprnode7,
+ tkwinnode5,
+ pexprnode6,
+ tkwdonode7,
+ pexprnode8,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction269
+private class ReduceAction273
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction270
+private class ReduceAction274
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction271
+private class ReduceAction275
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction272
+private class ReduceAction276
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction274
+private class ReduceAction278
super ReduceAction
redef fun action(p: Parser)
do
assert tkwassertnode2 isa nullable TKwassert
var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode5 = nodearraylist4
- assert pexprnode5 isa nullable AExpr
+ var tkwelsenode5 = nodearraylist3
+ assert tkwelsenode5 isa nullable TKwelse
+ var pexprnode6 = nodearraylist4
+ assert pexprnode6 isa nullable AExpr
var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
tkwassertnode2,
null,
pexprnode4,
- pexprnode5
+ tkwelsenode5,
+ pexprnode6
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction275
+private class ReduceAction279
super ReduceAction
redef fun action(p: Parser)
do
assert tidnode3 isa nullable TId
var pexprnode4 = nodearraylist3
assert pexprnode4 isa nullable AExpr
- var pexprnode5 = nodearraylist5
- assert pexprnode5 isa nullable AExpr
+ var tkwelsenode5 = nodearraylist4
+ assert tkwelsenode5 isa nullable TKwelse
+ var pexprnode6 = nodearraylist5
+ assert pexprnode6 isa nullable AExpr
var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
tkwassertnode2,
tidnode3,
pexprnode4,
- pexprnode5
+ tkwelsenode5,
+ pexprnode6
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction276
+private class ReduceAction280
super ReduceAction
redef fun action(p: Parser)
do
tkwassertnode2,
null,
pexprnode4,
+ null,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction277
+private class ReduceAction281
super ReduceAction
redef fun action(p: Parser)
do
tkwassertnode2,
tidnode3,
pexprnode4,
+ null,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction278
+private class ReduceAction282
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction280
+private class ReduceAction284
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction282
+private class ReduceAction286
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction283
+private class ReduceAction287
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction284
+private class ReduceAction288
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction285
+private class ReduceAction289
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction287
+private class ReduceAction291
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction289
+private class ReduceAction293
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction290
+private class ReduceAction294
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction291
+private class ReduceAction295
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction292
+private class ReduceAction296
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction293
+private class ReduceAction297
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction294
+private class ReduceAction298
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction295
+private class ReduceAction299
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction296
+private class ReduceAction300
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction298
+private class ReduceAction302
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction300
+private class ReduceAction304
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction302
+private class ReduceAction306
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction304
+private class ReduceAction308
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction305
+private class ReduceAction309
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction307
+private class ReduceAction311
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction308
+private class ReduceAction312
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction310
+private class ReduceAction314
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction311
+private class ReduceAction315
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction312
+private class ReduceAction316
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction314
+private class ReduceAction318
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction316
+private class ReduceAction320
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction317
+private class ReduceAction321
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction318
+private class ReduceAction322
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction319
+private class ReduceAction323
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction321
+private class ReduceAction325
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction322
+private class ReduceAction326
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction323
+private class ReduceAction327
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction324
+private class ReduceAction328
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction326
+private class ReduceAction330
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction327
+private class ReduceAction331
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction329
+private class ReduceAction333
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction331
+private class ReduceAction335
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction333
+private class ReduceAction337
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction337
+private class ReduceAction341
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction339
+private class ReduceAction343
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction341
+private class ReduceAction345
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction345
+private class ReduceAction349
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction347
+private class ReduceAction351
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction349
+private class ReduceAction353
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction350
+private class ReduceAction354
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction351
+private class ReduceAction355
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction352
+private class ReduceAction356
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction353
+private class ReduceAction357
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction354
+private class ReduceAction358
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction355
+private class ReduceAction359
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction356
+private class ReduceAction360
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction359
+private class ReduceAction363
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction360
+private class ReduceAction364
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction361
+private class ReduceAction365
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction363
+private class ReduceAction367
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction364
+private class ReduceAction368
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction365
+private class ReduceAction369
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction366
+private class ReduceAction370
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction367
+private class ReduceAction371
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction368
+private class ReduceAction372
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction369
+private class ReduceAction373
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction370
+private class ReduceAction374
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction371
+private class ReduceAction375
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction372
+private class ReduceAction376
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction373
+private class ReduceAction377
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction376
+private class ReduceAction380
super ReduceAction
redef fun action(p: Parser)
do
assert tobranode2 isa nullable TObra
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode4 = nodearraylist7
- assert pexprnode4 isa nullable AExpr
- var tcbranode5 = nodearraylist9
- assert tcbranode5 isa nullable TCbra
- var pannotationsnode6 = nodearraylist10
- assert pannotationsnode6 isa nullable AAnnotations
+ var tdotdotnode4 = nodearraylist5
+ assert tdotdotnode4 isa nullable TDotdot
+ var pexprnode5 = nodearraylist7
+ assert pexprnode5 isa nullable AExpr
+ var tcbranode6 = nodearraylist9
+ assert tcbranode6 isa nullable TCbra
+ var pannotationsnode7 = nodearraylist10
+ assert pannotationsnode7 isa nullable AAnnotations
var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
tobranode2,
pexprnode3,
- pexprnode4,
- tcbranode5,
- pannotationsnode6
+ tdotdotnode4,
+ pexprnode5,
+ tcbranode6,
+ pannotationsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction377
+private class ReduceAction381
super ReduceAction
redef fun action(p: Parser)
do
assert tobranode2 isa nullable TObra
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode4 = nodearraylist7
- assert pexprnode4 isa nullable AExpr
- var tobranode5 = nodearraylist9
- assert tobranode5 isa nullable TObra
- var pannotationsnode6 = nodearraylist10
- assert pannotationsnode6 isa nullable AAnnotations
+ var tdotdotnode4 = nodearraylist5
+ assert tdotdotnode4 isa nullable TDotdot
+ var pexprnode5 = nodearraylist7
+ assert pexprnode5 isa nullable AExpr
+ var tobranode6 = nodearraylist9
+ assert tobranode6 isa nullable TObra
+ var pannotationsnode7 = nodearraylist10
+ assert pannotationsnode7 isa nullable AAnnotations
var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
tobranode2,
pexprnode3,
- pexprnode4,
- tobranode5,
- pannotationsnode6
+ tdotdotnode4,
+ pexprnode5,
+ tobranode6,
+ pannotationsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction378
+private class ReduceAction382
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction379
+private class ReduceAction383
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction381
+private class ReduceAction385
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction382
+private class ReduceAction386
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction383
+private class ReduceAction387
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction384
+private class ReduceAction388
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction386
+private class ReduceAction390
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction388
+private class ReduceAction392
super ReduceAction
redef fun action(p: Parser)
do
assert tkwifnode2 isa nullable TKwif
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode4 = nodearraylist7
- assert pexprnode4 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist7
+ assert pexprnode5 isa nullable AExpr
var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
tkwifnode2,
pexprnode3,
- pexprnode4,
+ tkwthennode4,
+ pexprnode5,
+ null,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction389
+private class ReduceAction393
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction390
+private class ReduceAction394
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction391
+private class ReduceAction395
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction392
+private class ReduceAction396
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction393
+private class ReduceAction397
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction396
+private class ReduceAction400
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction397
+private class ReduceAction401
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction398
+private class ReduceAction402
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode5 = new Array[Object]
- var tatnode2 = nodearraylist1
- assert tatnode2 isa nullable TAt
- var pannotationnode4 = nodearraylist2
- assert pannotationnode4 isa nullable AAnnotation
- if pannotationnode4 != null then
- listnode5.add(pannotationnode4)
+ var listnode6 = new Array[Object]
+ var tatnode3 = nodearraylist1
+ assert tatnode3 isa nullable TAt
+ var pannotationnode5 = nodearraylist2
+ assert pannotationnode5 isa nullable AAnnotation
+ if pannotationnode5 != null then
+ listnode6.add(pannotationnode5)
end
var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
- tatnode2,
null,
- listnode5,
+ tatnode3,
+ null,
+ listnode6,
+ null,
null
)
node_list = pannotationsnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction399
+private class ReduceAction403
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode5 = new Array[Object]
- var tatnode2 = nodearraylist1
- assert tatnode2 isa nullable TAt
- var toparnode3 = nodearraylist2
- assert toparnode3 isa nullable TOpar
- var listnode4 = nodearraylist4
- assert listnode4 isa Array[Object]
- listnode5 = concat(listnode5, listnode4)
- var tcparnode6 = nodearraylist6
- assert tcparnode6 isa nullable TCpar
+ var listnode6 = new Array[Object]
+ var tatnode3 = nodearraylist1
+ assert tatnode3 isa nullable TAt
+ var toparnode4 = nodearraylist2
+ assert toparnode4 isa nullable TOpar
+ var listnode5 = nodearraylist4
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var tcparnode7 = nodearraylist6
+ assert tcparnode7 isa nullable TCpar
var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
- tatnode2,
- toparnode3,
- listnode5,
- tcparnode6
+ null,
+ tatnode3,
+ toparnode4,
+ listnode6,
+ tcparnode7,
+ null
)
node_list = pannotationsnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction400
+private class ReduceAction404
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction402
+private class ReduceAction406
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction403
+private class ReduceAction407
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction404
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist1 = p.pop
- var listnode5 = new Array[Object]
- var listnode4 = nodearraylist1
- assert listnode4 isa Array[Object]
- listnode5 = concat(listnode5, listnode4)
- var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
- null,
- null,
- listnode5,
- null
- )
- node_list = pannotationsnode1
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction405
+private class ReduceAction408
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction406
+private class ReduceAction409
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction409
+private class ReduceAction412
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction411
+private class ReduceAction414
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction413
+private class ReduceAction415
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction414
+private class ReduceAction416
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction415
+private class ReduceAction417
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction416
+private class ReduceAction418
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction417
+private class ReduceAction419
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction418
+private class ReduceAction420
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction419
+private class ReduceAction421
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction420
+private class ReduceAction422
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction421
+private class ReduceAction423
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction422
+private class ReduceAction424
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction426
+private class ReduceAction428
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction429
+private class ReduceAction431
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction430
+private class ReduceAction432
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction431
+private class ReduceAction433
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction432
+private class ReduceAction434
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction433
+private class ReduceAction435
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction434
+private class ReduceAction436
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction435
+private class ReduceAction437
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction436
+private class ReduceAction438
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction438
+private class ReduceAction440
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction440
+private class ReduceAction442
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction441
+private class ReduceAction443
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction443
+private class ReduceAction445
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction444
+private class ReduceAction446
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction445
+private class ReduceAction447
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction446
+private class ReduceAction448
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction447
+private class ReduceAction449
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction448
+private class ReduceAction450
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction449
+private class ReduceAction451
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction450
+private class ReduceAction452
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction451
+private class ReduceAction453
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction452
+private class ReduceAction454
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction453
+private class ReduceAction455
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction454
+private class ReduceAction456
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction455
+private class ReduceAction457
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction457
+private class ReduceAction459
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction458
+private class ReduceAction460
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction459
+private class ReduceAction461
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction461
+private class ReduceAction463
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction462
+private class ReduceAction464
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction463
+private class ReduceAction465
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction465
+private class ReduceAction467
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction466
+private class ReduceAction468
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction468
+private class ReduceAction470
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction469
+private class ReduceAction471
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction471
+private class ReduceAction474
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction472
+private class ReduceAction475
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction475
+private class ReduceAction478
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pdocnode1 = nodearraylist1
+ node_list = null
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction480
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ node_list = null
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction481
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist2
node_list = pdocnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction476
+private class ReduceAction482
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist3
+ node_list = pdocnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction477
+private class ReduceAction484
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist4
+ node_list = pdocnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction486
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist1
+ node_list = pdocnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction487
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction490
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction841
+private class ReduceAction853
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction843
+private class ReduceAction855
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction844
+private class ReduceAction856
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction845
+private class ReduceAction857
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction846
+private class ReduceAction858
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction847
+private class ReduceAction859
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction854
+private class ReduceAction866
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction855
+private class ReduceAction867
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction880
+private class ReduceAction892
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction881
+private class ReduceAction893
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1039
+private class ReduceAction1054
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1040
+private class ReduceAction1055
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1041
+private class ReduceAction1056
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1042
+private class ReduceAction1057
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1043
+private class ReduceAction1058
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1044
+private class ReduceAction1059
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1045
+private class ReduceAction1061
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode2 = new Array[Object]
- var pformaldefnode1 = nodearraylist1
- if pformaldefnode1 != null then
- listnode2.add(pformaldefnode1)
+ var listnode3 = new Array[Object]
+ var listnode1 = nodearraylist1
+ assert listnode1 isa Array[Object]
+ var pformaldefnode2 = nodearraylist2
+ listnode3 = concat(listnode3, listnode1)
+ if pformaldefnode2 != null then
+ listnode3.add(pformaldefnode2)
end
- node_list = listnode2
+ node_list = listnode3
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1046
+private class ReduceAction1063
super ReduceAction
redef fun action(p: Parser)
do
var listnode3 = new Array[Object]
var listnode1 = nodearraylist1
assert listnode1 isa Array[Object]
- var pformaldefnode2 = nodearraylist2
+ var ppropdefnode2 = nodearraylist2
listnode3 = concat(listnode3, listnode1)
- if pformaldefnode2 != null then
- listnode3.add(pformaldefnode2)
+ if ppropdefnode2 != null then
+ listnode3.add(ppropdefnode2)
end
node_list = listnode3
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1048
+private class ReduceAction1065
super ReduceAction
redef fun action(p: Parser)
do
var listnode3 = new Array[Object]
var listnode1 = nodearraylist1
assert listnode1 isa Array[Object]
- var ppropdefnode2 = nodearraylist2
+ var pannotationnode2 = nodearraylist2
listnode3 = concat(listnode3, listnode1)
- if ppropdefnode2 != null then
- listnode3.add(ppropdefnode2)
+ if pannotationnode2 != null then
+ listnode3.add(pannotationnode2)
end
node_list = listnode3
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1049
+private class ReduceAction1066
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1050
+private class ReduceAction1067
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1051
+private class ReduceAction1068
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1052
+private class ReduceAction1069
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1054
+private class ReduceAction1071
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1056
+private class ReduceAction1073
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1062
+private class ReduceAction1079
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1064
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var listnode3 = new Array[Object]
- var listnode1 = nodearraylist1
- assert listnode1 isa Array[Object]
- var pannotationnode2 = nodearraylist2
- listnode3 = concat(listnode3, listnode1)
- if pannotationnode2 != null then
- listnode3.add(pannotationnode2)
- end
- node_list = listnode3
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction1072
+private class ReduceAction1087
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1073
+private class ReduceAction1088
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1074
+private class ReduceAction1089
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1075
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist1 = p.pop
- var listnode2 = new Array[Object]
- var teolnode1 = nodearraylist1
- if teolnode1 != null then
- listnode2.add(teolnode1)
- end
- node_list = listnode2
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction1076
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var listnode3 = new Array[Object]
- var listnode1 = nodearraylist1
- assert listnode1 isa Array[Object]
- var teolnode2 = nodearraylist2
- listnode3 = concat(listnode3, listnode1)
- if teolnode2 != null then
- listnode3.add(teolnode2)
- end
- node_list = listnode3
- p.push(p.go_to(_goto), node_list)
- end
-end
class TAt
super Token
end
+class TSemi
+ super Token
+end
class TClassid
super Token
end
var n_visibility: AVisibility is writable, noinit
var n_classkind: AClasskind is writable, noinit
var n_id: nullable TClassid = null is writable
+ var n_obra: nullable TObra = null is writable
var n_formaldefs: List[AFormaldef] = new List[AFormaldef]
+ var n_cbra: nullable TCbra = null is writable
var n_extern_code_block: nullable AExternCodeBlock = null is writable
var n_propdefs: List[APropdef] = new List[APropdef]
var n_kwend: TKwend is writable, noinit
var n_kwvar: TKwvar is writable, noinit
var n_id2: TId is writable, noinit
var n_type: nullable AType = null is writable
+ var n_assign: nullable TAssign = null is writable
var n_expr: nullable AExpr = null is writable
var n_annotations: nullable AAnnotations = null is writable
+ var n_kwdo: nullable TKwdo = null is writable
var n_block: nullable AExpr = null is writable
+ var n_kwend: nullable TKwend = null is writable
end
class AMainMethPropdef
super APropdef
var n_annotations: nullable AAnnotations = null is writable
var n_extern_calls: nullable AExternCalls = null is writable
var n_extern_code_block: nullable AExternCodeBlock = null is writable
+ var n_kwdo: nullable TKwdo = null is writable
var n_block: nullable AExpr = null is writable
+ var n_kwend: nullable TKwend = null is writable
end
class ASuperPropdef
super APropdef
super AType
var n_kwnullable: nullable TKwnullable = null is writable
var n_id: TClassid is writable, noinit
+ var n_obra: nullable TObra = null is writable
var n_types: List[AType] = new List[AType]
+ var n_cbra: nullable TCbra = null is writable
var n_annotations: nullable AAnnotations = null is writable
end
class ALabel
super AExpr
var n_kwif: TKwif is writable, noinit
var n_expr: AExpr is writable, noinit
+ var n_kwthen: TKwthen is writable, noinit
var n_then: nullable AExpr = null is writable
+ var n_kwelse: nullable TKwelse = null is writable
var n_else: nullable AExpr = null is writable
end
class AIfexprExpr
super AExpr
var n_kwfor: TKwfor is writable, noinit
var n_ids: List[TId] = new List[TId]
+ var n_kwin: TKwin is writable, noinit
var n_expr: AExpr is writable, noinit
var n_kwdo: TKwdo is writable, noinit
var n_block: nullable AExpr = null is writable
var n_kwassert: TKwassert is writable, noinit
var n_id: nullable TId = null is writable
var n_expr: AExpr is writable, noinit
+ var n_kwelse: nullable TKwelse = null is writable
var n_else: nullable AExpr = null is writable
end
class AOnceExpr
super AExpr
var n_obra: TObra is writable, noinit
var n_expr: AExpr is writable, noinit
+ var n_dotdot: TDotdot is writable, noinit
var n_expr2: AExpr is writable, noinit
var n_cbra: TCbra is writable, noinit
var n_annotations: nullable AAnnotations = null is writable
super AExpr
var n_obra: TObra is writable, noinit
var n_expr: AExpr is writable, noinit
+ var n_dotdot: TDotdot is writable, noinit
var n_expr2: AExpr is writable, noinit
var n_cbra: TObra is writable, noinit
var n_annotations: nullable AAnnotations = null is writable
end
class AAnnotations
super AAnnotations
+ var n_kwis: nullable TKwis = null is writable
var n_at: nullable TAt = null is writable
var n_opar: nullable TOpar = null is writable
var n_items: List[AAnnotation] = new List[AAnnotation]
var n_cpar: nullable TCpar = null is writable
+ var n_kwend: nullable TKwend = null is writable
end
class AAnnotation
super AAnnotation
super Token
end
+# The symbol `;`
+class TSemi
+ super Token
+end
+
# A class (or formal type) identifier. They start with an uppercase.
class TClassid
super Token
# The name of the class
var n_id: nullable TClassid = null is writable
+ # The `[` symbol
+ var n_obra: nullable TObra = null is writable
+
# The list of formal parameter types
var n_formaldefs = new ANodes[AFormaldef](self)
+ # The `]` symbol
+ var n_cbra: nullable TCbra = null is writable
+
# The extern block code
var n_extern_code_block: nullable AExternCodeBlock = null is writable
class AAttrPropdef
super APropdef
- # The identifier for a old-style attribute (null if new-style)
+ # The `var` keyword
var n_kwvar: TKwvar is writable, noinit
- # The identifier for a new-style attribute (null if old-style)
+ # The identifier for a new-style attribute
var n_id2: TId is writable, noinit
# The declared type of the attribute
var n_type: nullable AType = null is writable
+ # The `=` symbol
+ var n_assign: nullable TAssign = null is writable
+
# The initial value, if any (set with `=`)
var n_expr: nullable AExpr = null is writable
+ # The `do` keyword
+ var n_kwdo: nullable TKwdo = null is writable
+
# The initial value, if any (set with `do return`)
var n_block: nullable AExpr = null is writable
+ # The `end` keyword
+ var n_kwend: nullable TKwend = null is writable
+
redef fun hot_location
do
return n_id2.location
# The signature of the method, if any
var n_signature: nullable ASignature = null is writable
+ # The `do` keyword
+ var n_kwdo: nullable TKwdo = null is writable
+
# The body (in Nit) of the method, if any
var n_block: nullable AExpr = null is writable
+ # The `end` keyword
+ var n_kwend: nullable TKwend = null is writable
+
# The list of declared callbacks (for extern methods)
var n_extern_calls: nullable AExternCalls = null is writable
# The name of the class or of the formal type
var n_id: TClassid is writable, noinit
+ # The opening bracket
+ var n_obra: nullable TObra = null is writable
+
# Type arguments for a generic type
var n_types = new ANodes[AType](self)
+
+ # The closing bracket
+ var n_cbra: nullable TCbra = null is writable
end
# A label at the end of a block or in a break/continue statement. eg `label x`
# The expression used as the condition of the `if`
var n_expr: AExpr is writable, noinit
+ # The `then` keyword
+ var n_kwthen: TKwthen is writable, noinit
+
# The body of the `then` part
var n_then: nullable AExpr = null is writable
+ # The `else` keyword
+ var n_kwelse: nullable TKwelse = null is writable
+
# The body of the `else` part
var n_else: nullable AExpr = null is writable
end
# The list of name of the automatic variables
var n_ids = new ANodes[TId](self)
+ # The `in` keyword
+ var n_kwin: TKwin is writable, noinit
+
# The expression used as the collection to iterate on
var n_expr: AExpr is writable, noinit
# The expression used as the condition of the `assert`
var n_expr: AExpr is writable, noinit
+ # The `else` keyword
+ var n_kwelse: nullable TKwelse = null is writable
+
# The body to execute when the assert fails
var n_else: nullable AExpr = null is writable
end
# The left (lower) element of the range
var n_expr: AExpr is writable, noinit
- # The right (uppr) element of the range
+ # The `..`
+ var n_dotdot: TDotdot is writable, noinit
+
+ # The right (upper) element of the range
var n_expr2: AExpr is writable, noinit
end
class AAnnotations
super Prod
+ # The `is` keyword, for *is* annotations
+ var n_kwis: nullable TKwis = null is writable
+
# The `@` symbol, for *at* annotations
var n_at: nullable TAt = null is writable
# The closing parenthesis in *at* annotations
var n_cpar: nullable TCpar = null is writable
+
+ # The `end` keyword, for *is* annotations
+ var n_kwend: nullable TKwend = null is writable
end
# A single annotation
n_visibility: nullable AVisibility,
n_classkind: nullable AClasskind,
n_id: nullable TClassid,
+ n_obra: nullable TObra,
n_formaldefs: Collection[Object], # Should be Collection[AFormaldef]
+ n_cbra: nullable TCbra,
n_extern_code_block: nullable AExternCodeBlock,
n_propdefs: Collection[Object], # Should be Collection[APropdef]
n_kwend: nullable TKwend
n_classkind.parent = self
_n_id = n_id
if n_id != null then n_id.parent = self
+ _n_obra = n_obra
+ if n_obra != null then n_obra.parent = self
self.n_formaldefs.unsafe_add_all(n_formaldefs)
+ _n_cbra = n_cbra
+ if n_cbra != null then n_cbra.parent = self
_n_extern_code_block = n_extern_code_block
if n_extern_code_block != null then n_extern_code_block.parent = self
self.n_propdefs.unsafe_add_all(n_propdefs)
n_id = new_child.as(nullable TClassid)
return
end
+ if _n_obra == old_child then
+ n_obra = new_child.as(nullable TObra)
+ return
+ end
if n_formaldefs.replace_child(old_child, new_child) then return
+ if _n_cbra == old_child then
+ n_cbra = new_child.as(nullable TCbra)
+ return
+ end
if _n_extern_code_block == old_child then
n_extern_code_block = new_child.as(nullable AExternCodeBlock)
return
_n_id = node
if node != null then node.parent = self
end
+ redef fun n_obra=(node)
+ do
+ _n_obra = node
+ if node != null then node.parent = self
+ end
+ redef fun n_cbra=(node)
+ do
+ _n_cbra = node
+ if node != null then node.parent = self
+ end
redef fun n_extern_code_block=(node)
do
_n_extern_code_block = node
v.enter_visit(_n_visibility)
v.enter_visit(_n_classkind)
v.enter_visit(_n_id)
+ v.enter_visit(_n_obra)
n_formaldefs.visit_all(v)
+ v.enter_visit(_n_cbra)
v.enter_visit(_n_extern_code_block)
n_propdefs.visit_all(v)
v.enter_visit(_n_kwend)
n_kwvar: nullable TKwvar,
n_id2: nullable TId,
n_type: nullable AType,
+ n_assign: nullable TAssign,
n_expr: nullable AExpr,
n_annotations: nullable AAnnotations,
- n_block: nullable AExpr
+ n_kwdo: nullable TKwdo,
+ n_block: nullable AExpr,
+ n_kwend: nullable TKwend
)
do
_n_doc = n_doc
n_id2.parent = self
_n_type = n_type
if n_type != null then n_type.parent = self
+ _n_assign = n_assign
+ if n_assign != null then n_assign.parent = self
_n_expr = n_expr
if n_expr != null then n_expr.parent = self
_n_annotations = n_annotations
if n_annotations != null then n_annotations.parent = self
+ _n_kwdo = n_kwdo
+ if n_kwdo != null then n_kwdo.parent = self
_n_block = n_block
if n_block != null then n_block.parent = self
+ _n_kwend = n_kwend
+ if n_kwend != null then n_kwend.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
n_type = new_child.as(nullable AType)
return
end
+ if _n_assign == old_child then
+ n_assign = new_child.as(nullable TAssign)
+ return
+ end
if _n_expr == old_child then
n_expr = new_child.as(nullable AExpr)
return
n_annotations = new_child.as(nullable AAnnotations)
return
end
+ if _n_kwdo == old_child then
+ n_kwdo = new_child.as(nullable TKwdo)
+ return
+ end
if _n_block == old_child then
n_block = new_child.as(nullable AExpr)
return
end
+ if _n_kwend == old_child then
+ n_kwend = new_child.as(nullable TKwend)
+ return
+ end
end
redef fun n_doc=(node)
_n_type = node
if node != null then node.parent = self
end
+ redef fun n_assign=(node)
+ do
+ _n_assign = node
+ if node != null then node.parent = self
+ end
redef fun n_expr=(node)
do
_n_expr = node
_n_annotations = node
if node != null then node.parent = self
end
+ redef fun n_kwdo=(node)
+ do
+ _n_kwdo = node
+ if node != null then node.parent = self
+ end
redef fun n_block=(node)
do
_n_block = node
if node != null then node.parent = self
end
+ redef fun n_kwend=(node)
+ do
+ _n_kwend = node
+ if node != null then node.parent = self
+ end
redef fun visit_all(v: Visitor)
v.enter_visit(_n_kwvar)
v.enter_visit(_n_id2)
v.enter_visit(_n_type)
+ v.enter_visit(_n_assign)
v.enter_visit(_n_expr)
v.enter_visit(_n_annotations)
+ v.enter_visit(_n_kwdo)
v.enter_visit(_n_block)
+ v.enter_visit(_n_kwend)
end
end
redef class AMainMethPropdef
n_annotations: nullable AAnnotations,
n_extern_calls: nullable AExternCalls,
n_extern_code_block: nullable AExternCodeBlock,
- n_block: nullable AExpr
+ n_kwdo: nullable TKwdo,
+ n_block: nullable AExpr,
+ n_kwend: nullable TKwend
)
do
_n_doc = n_doc
if n_extern_calls != null then n_extern_calls.parent = self
_n_extern_code_block = n_extern_code_block
if n_extern_code_block != null then n_extern_code_block.parent = self
+ _n_kwdo = n_kwdo
+ if n_kwdo != null then n_kwdo.parent = self
_n_block = n_block
if n_block != null then n_block.parent = self
+ _n_kwend = n_kwend
+ if n_kwend != null then n_kwend.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
n_extern_code_block = new_child.as(nullable AExternCodeBlock)
return
end
+ if _n_kwdo == old_child then
+ n_kwdo = new_child.as(nullable TKwdo)
+ return
+ end
if _n_block == old_child then
n_block = new_child.as(nullable AExpr)
return
end
+ if _n_kwend == old_child then
+ n_kwend = new_child.as(nullable TKwend)
+ return
+ end
end
redef fun n_doc=(node)
_n_extern_code_block = node
if node != null then node.parent = self
end
+ redef fun n_kwdo=(node)
+ do
+ _n_kwdo = node
+ if node != null then node.parent = self
+ end
redef fun n_block=(node)
do
_n_block = node
if node != null then node.parent = self
end
+ redef fun n_kwend=(node)
+ do
+ _n_kwend = node
+ if node != null then node.parent = self
+ end
redef fun visit_all(v: Visitor)
v.enter_visit(_n_annotations)
v.enter_visit(_n_extern_calls)
v.enter_visit(_n_extern_code_block)
+ v.enter_visit(_n_kwdo)
v.enter_visit(_n_block)
+ v.enter_visit(_n_kwend)
end
end
redef class ASuperPropdef
init init_atype (
n_kwnullable: nullable TKwnullable,
n_id: nullable TClassid,
+ n_obra: nullable TObra,
n_types: Collection[Object], # Should be Collection[AType]
+ n_cbra: nullable TCbra,
n_annotations: nullable AAnnotations
)
do
if n_kwnullable != null then n_kwnullable.parent = self
_n_id = n_id.as(not null)
n_id.parent = self
+ _n_obra = n_obra
+ if n_obra != null then n_obra.parent = self
self.n_types.unsafe_add_all(n_types)
+ _n_cbra = n_cbra
+ if n_cbra != null then n_cbra.parent = self
_n_annotations = n_annotations
if n_annotations != null then n_annotations.parent = self
end
n_id = new_child.as(TClassid)
return
end
+ if _n_obra == old_child then
+ n_obra = new_child.as(nullable TObra)
+ return
+ end
if n_types.replace_child(old_child, new_child) then return
+ if _n_cbra == old_child then
+ n_cbra = new_child.as(nullable TCbra)
+ return
+ end
if _n_annotations == old_child then
n_annotations = new_child.as(nullable AAnnotations)
return
_n_id = node
node.parent = self
end
+ redef fun n_obra=(node)
+ do
+ _n_obra = node
+ if node != null then node.parent = self
+ end
+ redef fun n_cbra=(node)
+ do
+ _n_cbra = node
+ if node != null then node.parent = self
+ end
redef fun n_annotations=(node)
do
_n_annotations = node
do
v.enter_visit(_n_kwnullable)
v.enter_visit(_n_id)
+ v.enter_visit(_n_obra)
n_types.visit_all(v)
+ v.enter_visit(_n_cbra)
v.enter_visit(_n_annotations)
end
end
init init_aifexpr (
n_kwif: nullable TKwif,
n_expr: nullable AExpr,
+ n_kwthen: nullable TKwthen,
n_then: nullable AExpr,
+ n_kwelse: nullable TKwelse,
n_else: nullable AExpr
)
do
n_kwif.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_kwthen = n_kwthen.as(not null)
+ n_kwthen.parent = self
_n_then = n_then
if n_then != null then n_then.parent = self
+ _n_kwelse = n_kwelse
+ if n_kwelse != null then n_kwelse.parent = self
_n_else = n_else
if n_else != null then n_else.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_kwthen == old_child then
+ n_kwthen = new_child.as(TKwthen)
+ return
+ end
if _n_then == old_child then
n_then = new_child.as(nullable AExpr)
return
end
+ if _n_kwelse == old_child then
+ n_kwelse = new_child.as(nullable TKwelse)
+ return
+ end
if _n_else == old_child then
n_else = new_child.as(nullable AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_kwthen=(node)
+ do
+ _n_kwthen = node
+ node.parent = self
+ end
redef fun n_then=(node)
do
_n_then = node
if node != null then node.parent = self
end
+ redef fun n_kwelse=(node)
+ do
+ _n_kwelse = node
+ if node != null then node.parent = self
+ end
redef fun n_else=(node)
do
_n_else = node
do
v.enter_visit(_n_kwif)
v.enter_visit(_n_expr)
+ v.enter_visit(_n_kwthen)
v.enter_visit(_n_then)
+ v.enter_visit(_n_kwelse)
v.enter_visit(_n_else)
end
end
init init_aforexpr (
n_kwfor: nullable TKwfor,
n_ids: Collection[Object], # Should be Collection[TId]
+ n_kwin: nullable TKwin,
n_expr: nullable AExpr,
n_kwdo: nullable TKwdo,
n_block: nullable AExpr,
_n_kwfor = n_kwfor.as(not null)
n_kwfor.parent = self
self.n_ids.unsafe_add_all(n_ids)
+ _n_kwin = n_kwin.as(not null)
+ n_kwin.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
_n_kwdo = n_kwdo.as(not null)
return
end
if n_ids.replace_child(old_child, new_child) then return
+ if _n_kwin == old_child then
+ n_kwin = new_child.as(TKwin)
+ return
+ end
if _n_expr == old_child then
n_expr = new_child.as(AExpr)
return
_n_kwfor = node
node.parent = self
end
+ redef fun n_kwin=(node)
+ do
+ _n_kwin = node
+ node.parent = self
+ end
redef fun n_expr=(node)
do
_n_expr = node
do
v.enter_visit(_n_kwfor)
n_ids.visit_all(v)
+ v.enter_visit(_n_kwin)
v.enter_visit(_n_expr)
v.enter_visit(_n_kwdo)
v.enter_visit(_n_block)
n_kwassert: nullable TKwassert,
n_id: nullable TId,
n_expr: nullable AExpr,
+ n_kwelse: nullable TKwelse,
n_else: nullable AExpr
)
do
if n_id != null then n_id.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_kwelse = n_kwelse
+ if n_kwelse != null then n_kwelse.parent = self
_n_else = n_else
if n_else != null then n_else.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_kwelse == old_child then
+ n_kwelse = new_child.as(nullable TKwelse)
+ return
+ end
if _n_else == old_child then
n_else = new_child.as(nullable AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_kwelse=(node)
+ do
+ _n_kwelse = node
+ if node != null then node.parent = self
+ end
redef fun n_else=(node)
do
_n_else = node
v.enter_visit(_n_kwassert)
v.enter_visit(_n_id)
v.enter_visit(_n_expr)
+ v.enter_visit(_n_kwelse)
v.enter_visit(_n_else)
end
end
init init_acrangeexpr (
n_obra: nullable TObra,
n_expr: nullable AExpr,
+ n_dotdot: nullable TDotdot,
n_expr2: nullable AExpr,
n_cbra: nullable TCbra,
n_annotations: nullable AAnnotations
n_obra.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_dotdot = n_dotdot.as(not null)
+ n_dotdot.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
_n_cbra = n_cbra.as(not null)
n_expr = new_child.as(AExpr)
return
end
+ if _n_dotdot == old_child then
+ n_dotdot = new_child.as(TDotdot)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_dotdot=(node)
+ do
+ _n_dotdot = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
do
v.enter_visit(_n_obra)
v.enter_visit(_n_expr)
+ v.enter_visit(_n_dotdot)
v.enter_visit(_n_expr2)
v.enter_visit(_n_cbra)
v.enter_visit(_n_annotations)
init init_aorangeexpr (
n_obra: nullable TObra,
n_expr: nullable AExpr,
+ n_dotdot: nullable TDotdot,
n_expr2: nullable AExpr,
n_cbra: nullable TObra,
n_annotations: nullable AAnnotations
n_obra.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_dotdot = n_dotdot.as(not null)
+ n_dotdot.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
_n_cbra = n_cbra.as(not null)
n_expr = new_child.as(AExpr)
return
end
+ if _n_dotdot == old_child then
+ n_dotdot = new_child.as(TDotdot)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_dotdot=(node)
+ do
+ _n_dotdot = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
do
v.enter_visit(_n_obra)
v.enter_visit(_n_expr)
+ v.enter_visit(_n_dotdot)
v.enter_visit(_n_expr2)
v.enter_visit(_n_cbra)
v.enter_visit(_n_annotations)
end
redef class AAnnotations
init init_aannotations (
+ n_kwis: nullable TKwis,
n_at: nullable TAt,
n_opar: nullable TOpar,
n_items: Collection[Object], # Should be Collection[AAnnotation]
- n_cpar: nullable TCpar
+ n_cpar: nullable TCpar,
+ n_kwend: nullable TKwend
)
do
+ _n_kwis = n_kwis
+ if n_kwis != null then n_kwis.parent = self
_n_at = n_at
if n_at != null then n_at.parent = self
_n_opar = n_opar
self.n_items.unsafe_add_all(n_items)
_n_cpar = n_cpar
if n_cpar != null then n_cpar.parent = self
+ _n_kwend = n_kwend
+ if n_kwend != null then n_kwend.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
+ if _n_kwis == old_child then
+ n_kwis = new_child.as(nullable TKwis)
+ return
+ end
if _n_at == old_child then
n_at = new_child.as(nullable TAt)
return
n_cpar = new_child.as(nullable TCpar)
return
end
+ if _n_kwend == old_child then
+ n_kwend = new_child.as(nullable TKwend)
+ return
+ end
end
+ redef fun n_kwis=(node)
+ do
+ _n_kwis = node
+ if node != null then node.parent = self
+ end
redef fun n_at=(node)
do
_n_at = node
_n_cpar = node
if node != null then node.parent = self
end
+ redef fun n_kwend=(node)
+ do
+ _n_kwend = node
+ if node != null then node.parent = self
+ end
redef fun visit_all(v: Visitor)
do
+ v.enter_visit(_n_kwis)
v.enter_visit(_n_at)
v.enter_visit(_n_opar)
n_items.visit_all(v)
v.enter_visit(_n_cpar)
+ v.enter_visit(_n_kwend)
end
end
redef class AAnnotation
#include "tables_nit.h"
static const int lexer_goto_row1[] = {
- 56,
+ 57,
9, 9, 1,
10, 10, 2,
13, 13, 3,
48, 48, 19,
49, 57, 20,
58, 58, 21,
- 60, 60, 22,
- 61, 61, 23,
- 62, 62, 24,
- 64, 64, 25,
- 65, 90, 26,
- 91, 91, 27,
- 93, 93, 28,
- 94, 94, 29,
- 95, 95, 30,
- 96, 96, 31,
- 97, 97, 32,
- 98, 98, 33,
- 99, 99, 34,
- 100, 100, 35,
- 101, 101, 36,
- 102, 102, 37,
- 103, 104, 38,
- 105, 105, 39,
- 106, 107, 38,
- 108, 108, 40,
- 109, 109, 41,
- 110, 110, 42,
- 111, 111, 43,
- 112, 112, 44,
- 113, 113, 38,
- 114, 114, 45,
- 115, 115, 46,
- 116, 116, 47,
- 117, 117, 48,
- 118, 118, 49,
- 119, 119, 50,
- 120, 122, 38,
- 124, 124, 51,
- 125, 125, 52,
- 126, 126, 53
+ 59, 59, 22,
+ 60, 60, 23,
+ 61, 61, 24,
+ 62, 62, 25,
+ 64, 64, 26,
+ 65, 90, 27,
+ 91, 91, 28,
+ 93, 93, 29,
+ 94, 94, 30,
+ 95, 95, 31,
+ 96, 96, 32,
+ 97, 97, 33,
+ 98, 98, 34,
+ 99, 99, 35,
+ 100, 100, 36,
+ 101, 101, 37,
+ 102, 102, 38,
+ 103, 104, 39,
+ 105, 105, 40,
+ 106, 107, 39,
+ 108, 108, 41,
+ 109, 109, 42,
+ 110, 110, 43,
+ 111, 111, 44,
+ 112, 112, 45,
+ 113, 113, 39,
+ 114, 114, 46,
+ 115, 115, 47,
+ 116, 116, 48,
+ 117, 117, 49,
+ 118, 118, 50,
+ 119, 119, 51,
+ 120, 122, 39,
+ 124, 124, 52,
+ 125, 125, 53,
+ 126, 126, 54
};
static const int lexer_goto_row2[] = {
2,
};
static const int lexer_goto_row4[] = {
1,
- 10, 10, 54
+ 10, 10, 55
};
static const int lexer_goto_row5[] = {
1,
};
static const int lexer_goto_row6[] = {
1,
- 61, 61, 55
+ 61, 61, 56
};
static const int lexer_goto_row7[] = {
9,
- 0, 9, 56,
- 11, 12, 56,
- 14, 33, 56,
- 34, 34, 57,
- 35, 91, 56,
- 92, 92, 58,
- 93, 122, 56,
- 123, 123, 59,
- 124, 255, 56
+ 0, 9, 57,
+ 11, 12, 57,
+ 14, 33, 57,
+ 34, 34, 58,
+ 35, 91, 57,
+ 92, 92, 59,
+ 93, 122, 57,
+ 123, 123, 60,
+ 124, 255, 57
};
static const int lexer_goto_row8[] = {
5,
- 0, 9, 60,
- 10, 10, 61,
- 11, 12, 60,
- 13, 13, 62,
- 14, 255, 60
+ 0, 9, 61,
+ 10, 10, 62,
+ 11, 12, 61,
+ 13, 13, 63,
+ 14, 255, 61
};
static const int lexer_goto_row9[] = {
1,
- 61, 61, 63
+ 61, 61, 64
};
static const int lexer_goto_row10[] = {
1,
- 61, 61, 64
+ 61, 61, 65
};
static const int lexer_goto_row11[] = {
7,
- 0, 9, 65,
- 11, 12, 65,
- 14, 38, 65,
- 39, 39, 66,
- 40, 91, 65,
- 92, 92, 67,
- 93, 255, 65
+ 0, 9, 66,
+ 11, 12, 66,
+ 14, 38, 66,
+ 39, 39, 67,
+ 40, 91, 66,
+ 92, 92, 68,
+ 93, 255, 66
};
static const int lexer_goto_row14[] = {
2,
- 42, 42, 68,
- 61, 61, 69
+ 42, 42, 69,
+ 61, 61, 70
};
static const int lexer_goto_row15[] = {
1,
- 61, 61, 70
+ 61, 61, 71
};
static const int lexer_goto_row17[] = {
1,
- 61, 61, 71
+ 61, 61, 72
};
static const int lexer_goto_row18[] = {
2,
- 46, 46, 72,
- 48, 57, 73
+ 46, 46, 73,
+ 48, 57, 74
};
static const int lexer_goto_row19[] = {
1,
- 61, 61, 74
+ 61, 61, 75
};
static const int lexer_goto_row20[] = {
4,
- 46, 46, 75,
+ 46, 46, 76,
48, 57, 20,
- 88, 88, 76,
- 120, 120, 77
+ 88, 88, 77,
+ 120, 120, 78
};
static const int lexer_goto_row21[] = {
1,
};
static const int lexer_goto_row22[] = {
1,
- 58, 58, 78
-};
-static const int lexer_goto_row23[] = {
- 2,
- 60, 60, 79,
- 61, 61, 80
+ 58, 58, 79
};
static const int lexer_goto_row24[] = {
- 1,
+ 2,
+ 60, 60, 80,
61, 61, 81
};
static const int lexer_goto_row25[] = {
+ 1,
+ 61, 61, 82
+};
+static const int lexer_goto_row26[] = {
2,
- 61, 61, 82,
- 62, 62, 83
+ 61, 61, 83,
+ 62, 62, 84
};
-static const int lexer_goto_row27[] = {
+static const int lexer_goto_row28[] = {
4,
- 48, 57, 84,
- 65, 90, 85,
- 95, 95, 86,
- 97, 122, 87
-};
-static const int lexer_goto_row30[] = {
- 1,
- 61, 61, 88
+ 48, 57, 85,
+ 65, 90, 86,
+ 95, 95, 87,
+ 97, 122, 88
};
static const int lexer_goto_row31[] = {
- 2,
- 95, 95, 89,
- 97, 122, 90
+ 1,
+ 61, 61, 89
};
static const int lexer_goto_row32[] = {
- 1,
- 123, 123, 91
+ 2,
+ 95, 95, 90,
+ 97, 122, 91
};
static const int lexer_goto_row33[] = {
- 10,
- 48, 57, 92,
- 65, 90, 93,
- 95, 95, 94,
- 97, 97, 95,
- 98, 98, 96,
- 99, 109, 95,
- 110, 110, 97,
- 111, 114, 95,
- 115, 115, 98,
- 116, 122, 95
+ 1,
+ 123, 123, 92
};
static const int lexer_goto_row34[] = {
- 4,
- 48, 95, -34,
- 97, 113, 95,
- 114, 114, 99,
- 115, 122, 95
+ 10,
+ 48, 57, 93,
+ 65, 90, 94,
+ 95, 95, 95,
+ 97, 97, 96,
+ 98, 98, 97,
+ 99, 109, 96,
+ 110, 110, 98,
+ 111, 114, 96,
+ 115, 115, 99,
+ 116, 122, 96
};
static const int lexer_goto_row35[] = {
- 6,
- 48, 95, -34,
- 97, 107, 95,
- 108, 108, 100,
- 109, 110, 95,
- 111, 111, 101,
- 112, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 113, 96,
+ 114, 114, 100,
+ 115, 122, 96
};
static const int lexer_goto_row36[] = {
- 4,
- 48, 95, -34,
- 97, 110, 95,
+ 6,
+ 48, 95, -35,
+ 97, 107, 96,
+ 108, 108, 101,
+ 109, 110, 96,
111, 111, 102,
- 112, 122, 95
+ 112, 122, 96
};
static const int lexer_goto_row37[] = {
- 7,
- 48, 107, -36,
- 108, 108, 103,
- 109, 109, 95,
- 110, 110, 104,
- 111, 119, 95,
- 120, 120, 105,
- 121, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 110, 96,
+ 111, 111, 103,
+ 112, 122, 96
};
static const int lexer_goto_row38[] = {
7,
- 48, 95, -34,
- 97, 97, 106,
- 98, 110, 95,
- 111, 111, 107,
- 112, 116, 95,
- 117, 117, 108,
- 118, 122, 95
+ 48, 107, -37,
+ 108, 108, 104,
+ 109, 109, 96,
+ 110, 110, 105,
+ 111, 119, 96,
+ 120, 120, 106,
+ 121, 122, 96
};
static const int lexer_goto_row39[] = {
- 2,
- 48, 95, -34,
- 97, 122, 95
+ 7,
+ 48, 95, -35,
+ 97, 97, 107,
+ 98, 110, 96,
+ 111, 111, 108,
+ 112, 116, 96,
+ 117, 117, 109,
+ 118, 122, 96
};
static const int lexer_goto_row40[] = {
- 9,
- 48, 95, -34,
- 97, 101, 95,
- 102, 102, 109,
- 103, 108, 95,
- 109, 109, 110,
- 110, 110, 111,
- 111, 114, 95,
- 115, 115, 112,
- 116, 122, 95
+ 2,
+ 48, 95, -35,
+ 97, 122, 96
};
static const int lexer_goto_row41[] = {
- 5,
- 48, 95, -34,
- 97, 97, 113,
- 98, 110, 95,
- 111, 111, 114,
- 112, 122, 95
+ 9,
+ 48, 95, -35,
+ 97, 101, 96,
+ 102, 102, 110,
+ 103, 108, 96,
+ 109, 109, 111,
+ 110, 110, 112,
+ 111, 114, 96,
+ 115, 115, 113,
+ 116, 122, 96
};
static const int lexer_goto_row42[] = {
- 3,
- 48, 110, -37,
+ 5,
+ 48, 95, -35,
+ 97, 97, 114,
+ 98, 110, 96,
111, 111, 115,
- 112, 122, 95
+ 112, 122, 96
};
static const int lexer_goto_row43[] = {
- 8,
- 48, 95, -34,
- 97, 100, 95,
- 101, 101, 116,
- 102, 110, 95,
- 111, 111, 117,
- 112, 116, 95,
- 117, 117, 118,
- 118, 122, 95
+ 3,
+ 48, 110, -38,
+ 111, 111, 116,
+ 112, 122, 96
};
static const int lexer_goto_row44[] = {
- 6,
- 48, 95, -34,
- 97, 109, 95,
- 110, 110, 119,
- 111, 113, 95,
- 114, 114, 120,
- 115, 122, 95
+ 8,
+ 48, 95, -35,
+ 97, 100, 96,
+ 101, 101, 117,
+ 102, 110, 96,
+ 111, 111, 118,
+ 112, 116, 96,
+ 117, 117, 119,
+ 118, 122, 96
};
static const int lexer_goto_row45[] = {
- 7,
- 48, 95, -34,
- 97, 97, 121,
- 98, 113, 95,
- 114, 114, 122,
- 115, 116, 95,
- 117, 117, 123,
- 118, 122, 95
+ 6,
+ 48, 95, -35,
+ 97, 109, 96,
+ 110, 110, 120,
+ 111, 113, 96,
+ 114, 114, 121,
+ 115, 122, 96
};
static const int lexer_goto_row46[] = {
- 3,
- 48, 100, -44,
- 101, 101, 124,
- 102, 122, 95
+ 7,
+ 48, 95, -35,
+ 97, 97, 122,
+ 98, 113, 96,
+ 114, 114, 123,
+ 115, 116, 96,
+ 117, 117, 124,
+ 118, 122, 96
};
static const int lexer_goto_row47[] = {
- 5,
- 48, 100, -44,
+ 3,
+ 48, 100, -45,
101, 101, 125,
- 102, 116, 95,
- 117, 117, 126,
- 118, 122, 95
+ 102, 122, 96
};
static const int lexer_goto_row48[] = {
- 8,
- 48, 95, -34,
- 97, 103, 95,
- 104, 104, 127,
- 105, 113, 95,
- 114, 114, 128,
- 115, 120, 95,
- 121, 121, 129,
- 122, 122, 95
+ 5,
+ 48, 100, -45,
+ 101, 101, 126,
+ 102, 116, 96,
+ 117, 117, 127,
+ 118, 122, 96
};
static const int lexer_goto_row49[] = {
- 3,
- 48, 109, -45,
- 110, 110, 130,
- 111, 122, 95
+ 8,
+ 48, 95, -35,
+ 97, 103, 96,
+ 104, 104, 128,
+ 105, 113, 96,
+ 114, 114, 129,
+ 115, 120, 96,
+ 121, 121, 130,
+ 122, 122, 96
};
static const int lexer_goto_row50[] = {
3,
- 48, 95, -34,
- 97, 97, 131,
- 98, 122, 95
+ 48, 109, -46,
+ 110, 110, 131,
+ 111, 122, 96
};
static const int lexer_goto_row51[] = {
- 4,
- 48, 103, -49,
- 104, 104, 132,
- 105, 105, 133,
- 106, 122, 95
+ 3,
+ 48, 95, -35,
+ 97, 97, 132,
+ 98, 122, 96
};
static const int lexer_goto_row52[] = {
- 1,
- 61, 61, 134
+ 4,
+ 48, 103, -50,
+ 104, 104, 133,
+ 105, 105, 134,
+ 106, 122, 96
};
static const int lexer_goto_row53[] = {
+ 1,
+ 61, 61, 135
+};
+static const int lexer_goto_row54[] = {
11,
- 0, 9, 135,
- 11, 12, 135,
- 14, 33, 135,
- 34, 34, 136,
- 35, 91, 135,
- 92, 92, 137,
- 93, 122, 135,
- 123, 123, 138,
- 124, 124, 135,
- 125, 125, 139,
- 126, 255, 135
-};
-static const int lexer_goto_row57[] = {
+ 0, 9, 136,
+ 11, 12, 136,
+ 14, 33, 136,
+ 34, 34, 137,
+ 35, 91, 136,
+ 92, 92, 138,
+ 93, 122, 136,
+ 123, 123, 139,
+ 124, 124, 136,
+ 125, 125, 140,
+ 126, 255, 136
+};
+static const int lexer_goto_row58[] = {
3,
0, 33, -8,
- 34, 34, 140,
+ 34, 34, 141,
35, 255, -8
};
-static const int lexer_goto_row58[] = {
+static const int lexer_goto_row59[] = {
1,
- 34, 34, 141
+ 34, 34, 142
};
-static const int lexer_goto_row59[] = {
+static const int lexer_goto_row60[] = {
3,
- 0, 9, 142,
- 11, 12, 142,
- 14, 255, 142
+ 0, 9, 143,
+ 11, 12, 143,
+ 14, 255, 143
};
-static const int lexer_goto_row61[] = {
+static const int lexer_goto_row62[] = {
1,
0, 255, -9
};
-static const int lexer_goto_row63[] = {
- 1,
- 10, 10, 143
-};
-static const int lexer_goto_row66[] = {
+static const int lexer_goto_row64[] = {
1,
- 39, 39, 144
+ 10, 10, 144
};
static const int lexer_goto_row67[] = {
1,
39, 39, 145
};
static const int lexer_goto_row68[] = {
- 3,
- 0, 9, 146,
- 11, 12, 146,
- 14, 255, 146
+ 1,
+ 39, 39, 146
};
static const int lexer_goto_row69[] = {
- 1,
- 61, 61, 147
+ 3,
+ 0, 9, 147,
+ 11, 12, 147,
+ 14, 255, 147
};
-static const int lexer_goto_row73[] = {
+static const int lexer_goto_row70[] = {
1,
- 46, 46, 148
+ 61, 61, 148
};
static const int lexer_goto_row74[] = {
1,
- 48, 57, 73
+ 46, 46, 149
};
-static const int lexer_goto_row76[] = {
+static const int lexer_goto_row75[] = {
1,
- 48, 57, 73
+ 48, 57, 74
};
static const int lexer_goto_row77[] = {
- 3,
- 48, 57, 149,
- 65, 70, 150,
- 97, 102, 151
+ 1,
+ 48, 57, 74
};
static const int lexer_goto_row78[] = {
- 1,
- 48, 102, -78
+ 3,
+ 48, 57, 150,
+ 65, 70, 151,
+ 97, 102, 152
};
-static const int lexer_goto_row80[] = {
+static const int lexer_goto_row79[] = {
1,
- 61, 61, 152
+ 48, 102, -79
};
static const int lexer_goto_row81[] = {
1,
- 62, 62, 153
+ 61, 61, 153
};
-static const int lexer_goto_row84[] = {
+static const int lexer_goto_row82[] = {
1,
- 61, 61, 154
+ 62, 62, 154
};
static const int lexer_goto_row85[] = {
1,
- 48, 122, -28
+ 61, 61, 155
};
static const int lexer_goto_row86[] = {
1,
- 48, 122, -28
+ 48, 122, -29
};
static const int lexer_goto_row87[] = {
1,
- 48, 122, -28
+ 48, 122, -29
};
static const int lexer_goto_row88[] = {
1,
- 48, 122, -28
+ 48, 122, -29
};
-static const int lexer_goto_row90[] = {
+static const int lexer_goto_row89[] = {
1,
- 100, 100, 155
+ 48, 122, -29
};
static const int lexer_goto_row91[] = {
- 4,
- 48, 57, 156,
- 65, 90, 157,
- 95, 95, 158,
- 97, 122, 159
+ 1,
+ 100, 100, 156
};
static const int lexer_goto_row92[] = {
- 5,
- 0, 91, 160,
- 92, 92, 161,
- 93, 95, 160,
- 96, 96, 162,
- 97, 255, 160
+ 4,
+ 48, 57, 157,
+ 65, 90, 158,
+ 95, 95, 159,
+ 97, 122, 160
};
static const int lexer_goto_row93[] = {
- 1,
- 48, 122, -40
+ 5,
+ 0, 91, 161,
+ 92, 92, 162,
+ 93, 95, 161,
+ 96, 96, 163,
+ 97, 255, 161
};
static const int lexer_goto_row94[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row95[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row96[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row97[] = {
- 5,
- 48, 110, -37,
- 111, 111, 163,
- 112, 114, 95,
- 115, 115, 164,
- 116, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row98[] = {
- 4,
- 48, 95, -34,
- 97, 99, 95,
- 100, 100, 165,
- 101, 122, 95
+ 5,
+ 48, 110, -38,
+ 111, 111, 164,
+ 112, 114, 96,
+ 115, 115, 165,
+ 116, 122, 96
};
static const int lexer_goto_row99[] = {
4,
- 48, 95, -34,
- 97, 114, 95,
- 115, 115, 166,
- 116, 122, 95
+ 48, 95, -35,
+ 97, 99, 96,
+ 100, 100, 166,
+ 101, 122, 96
};
static const int lexer_goto_row100[] = {
- 3,
- 48, 100, -44,
- 101, 101, 167,
- 102, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 114, 96,
+ 115, 115, 167,
+ 116, 122, 96
};
static const int lexer_goto_row101[] = {
3,
- 48, 95, -34,
- 97, 97, 168,
- 98, 122, 95
+ 48, 100, -45,
+ 101, 101, 168,
+ 102, 122, 96
};
static const int lexer_goto_row102[] = {
3,
- 48, 109, -45,
- 110, 110, 169,
- 111, 122, 95
+ 48, 95, -35,
+ 97, 97, 169,
+ 98, 122, 96
};
static const int lexer_goto_row103[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 109, -46,
+ 110, 110, 170,
+ 111, 122, 96
};
static const int lexer_goto_row104[] = {
- 3,
- 48, 114, -100,
- 115, 115, 170,
- 116, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row105[] = {
- 5,
- 48, 99, -99,
- 100, 100, 171,
- 101, 116, 95,
- 117, 117, 172,
- 118, 122, 95
+ 3,
+ 48, 114, -101,
+ 115, 115, 171,
+ 116, 122, 96
};
static const int lexer_goto_row106[] = {
- 4,
- 48, 95, -34,
- 97, 115, 95,
- 116, 116, 173,
- 117, 122, 95
+ 5,
+ 48, 99, -100,
+ 100, 100, 172,
+ 101, 116, 96,
+ 117, 117, 173,
+ 118, 122, 96
};
static const int lexer_goto_row107[] = {
- 3,
- 48, 107, -36,
- 108, 108, 174,
- 109, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 115, 96,
+ 116, 116, 174,
+ 117, 122, 96
};
static const int lexer_goto_row108[] = {
3,
- 48, 113, -35,
- 114, 114, 175,
- 115, 122, 95
+ 48, 107, -37,
+ 108, 108, 175,
+ 109, 122, 96
};
static const int lexer_goto_row109[] = {
3,
- 48, 109, -45,
- 110, 110, 176,
- 111, 122, 95
+ 48, 113, -36,
+ 114, 114, 176,
+ 115, 122, 96
};
static const int lexer_goto_row110[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 109, -46,
+ 110, 110, 177,
+ 111, 122, 96
};
static const int lexer_goto_row111[] = {
- 4,
- 48, 95, -34,
- 97, 111, 95,
- 112, 112, 177,
- 113, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row112[] = {
- 6,
- 48, 95, -34,
- 97, 104, 95,
- 105, 105, 178,
- 106, 115, 95,
- 116, 116, 179,
- 117, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 111, 96,
+ 112, 112, 178,
+ 113, 122, 96
};
static const int lexer_goto_row113[] = {
- 5,
- 48, 95, -34,
- 97, 97, 180,
- 98, 114, 95,
- 115, 115, 181,
- 116, 122, 95
+ 6,
+ 48, 95, -35,
+ 97, 104, 96,
+ 105, 105, 179,
+ 106, 115, 96,
+ 116, 116, 180,
+ 117, 122, 96
};
static const int lexer_goto_row114[] = {
- 3,
- 48, 97, -34,
- 98, 98, 182,
- 99, 122, 95
+ 5,
+ 48, 95, -35,
+ 97, 97, 181,
+ 98, 114, 96,
+ 115, 115, 182,
+ 116, 122, 96
};
static const int lexer_goto_row115[] = {
3,
- 48, 110, -37,
- 111, 111, 183,
- 112, 122, 95
+ 48, 97, -35,
+ 98, 98, 183,
+ 99, 122, 96
};
static const int lexer_goto_row116[] = {
3,
- 48, 99, -99,
- 100, 100, 184,
- 101, 122, 95
+ 48, 110, -38,
+ 111, 111, 184,
+ 112, 122, 96
};
static const int lexer_goto_row117[] = {
- 4,
- 48, 95, -34,
- 97, 118, 95,
- 119, 119, 185,
- 120, 122, 95
+ 3,
+ 48, 99, -100,
+ 100, 100, 185,
+ 101, 122, 96
};
static const int lexer_goto_row118[] = {
- 3,
- 48, 115, -107,
- 116, 116, 186,
- 117, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 118, 96,
+ 119, 119, 186,
+ 120, 122, 96
};
static const int lexer_goto_row119[] = {
3,
- 48, 107, -36,
- 108, 108, 187,
- 109, 122, 95
+ 48, 115, -108,
+ 116, 116, 187,
+ 117, 122, 96
};
static const int lexer_goto_row120[] = {
- 4,
- 48, 95, -34,
- 97, 98, 95,
- 99, 99, 188,
- 100, 122, 95
+ 3,
+ 48, 107, -37,
+ 108, 108, 188,
+ 109, 122, 96
};
static const int lexer_goto_row121[] = {
- 1,
- 48, 122, -40
+ 4,
+ 48, 95, -35,
+ 97, 98, 96,
+ 99, 99, 189,
+ 100, 122, 96
};
static const int lexer_goto_row122[] = {
- 3,
- 48, 98, -121,
- 99, 99, 189,
- 100, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row123[] = {
- 5,
- 48, 104, -113,
- 105, 105, 190,
- 106, 110, 95,
- 111, 111, 191,
- 112, 122, 95
+ 3,
+ 48, 98, -122,
+ 99, 99, 190,
+ 100, 122, 96
};
static const int lexer_goto_row124[] = {
- 3,
- 48, 97, -34,
- 98, 98, 192,
- 99, 122, 95
+ 5,
+ 48, 104, -114,
+ 105, 105, 191,
+ 106, 110, 96,
+ 111, 111, 192,
+ 112, 122, 96
};
static const int lexer_goto_row125[] = {
- 5,
- 48, 99, -99,
- 100, 100, 193,
- 101, 115, 95,
- 116, 116, 194,
- 117, 122, 95
+ 3,
+ 48, 97, -35,
+ 98, 98, 193,
+ 99, 122, 96
};
static const int lexer_goto_row126[] = {
- 3,
- 48, 107, -36,
- 108, 108, 195,
- 109, 122, 95
+ 5,
+ 48, 99, -100,
+ 100, 100, 194,
+ 101, 115, 96,
+ 116, 116, 195,
+ 117, 122, 96
};
static const int lexer_goto_row127[] = {
3,
- 48, 111, -112,
- 112, 112, 196,
- 113, 122, 95
+ 48, 107, -37,
+ 108, 108, 196,
+ 109, 122, 96
};
static const int lexer_goto_row128[] = {
3,
- 48, 100, -44,
- 101, 101, 197,
- 102, 122, 95
+ 48, 111, -113,
+ 112, 112, 197,
+ 113, 122, 96
};
static const int lexer_goto_row129[] = {
- 4,
- 48, 95, -34,
- 97, 116, 95,
- 117, 117, 198,
- 118, 122, 95
+ 3,
+ 48, 100, -45,
+ 101, 101, 198,
+ 102, 122, 96
};
static const int lexer_goto_row130[] = {
- 3,
- 48, 111, -112,
- 112, 112, 199,
- 113, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 116, 96,
+ 117, 117, 199,
+ 118, 122, 96
};
static const int lexer_goto_row131[] = {
3,
- 48, 104, -113,
- 105, 105, 200,
- 106, 122, 95
+ 48, 111, -113,
+ 112, 112, 200,
+ 113, 122, 96
};
static const int lexer_goto_row132[] = {
3,
- 48, 113, -35,
- 114, 114, 201,
- 115, 122, 95
+ 48, 104, -114,
+ 105, 105, 201,
+ 106, 122, 96
};
static const int lexer_goto_row133[] = {
3,
- 48, 104, -113,
- 105, 105, 202,
- 106, 122, 95
+ 48, 113, -36,
+ 114, 114, 202,
+ 115, 122, 96
};
static const int lexer_goto_row134[] = {
3,
- 48, 115, -107,
- 116, 116, 203,
- 117, 122, 95
+ 48, 104, -114,
+ 105, 105, 203,
+ 106, 122, 96
};
-static const int lexer_goto_row136[] = {
+static const int lexer_goto_row135[] = {
+ 3,
+ 48, 115, -108,
+ 116, 116, 204,
+ 117, 122, 96
+};
+static const int lexer_goto_row137[] = {
2,
- 0, 123, -54,
- 124, 255, 135
+ 0, 123, -55,
+ 124, 255, 136
};
-static const int lexer_goto_row138[] = {
+static const int lexer_goto_row139[] = {
3,
- 0, 9, 204,
- 11, 12, 204,
- 14, 255, 204
+ 0, 9, 205,
+ 11, 12, 205,
+ 14, 255, 205
};
-static const int lexer_goto_row140[] = {
+static const int lexer_goto_row141[] = {
3,
- 0, 124, -54,
- 125, 125, 205,
- 126, 255, 135
-};
-static const int lexer_goto_row142[] = {
- 11,
- 0, 9, 206,
- 10, 10, 207,
- 11, 12, 206,
- 13, 13, 208,
- 14, 33, 206,
- 34, 34, 209,
- 35, 91, 206,
- 92, 92, 210,
- 93, 122, 206,
- 123, 123, 211,
- 124, 255, 206
+ 0, 124, -55,
+ 125, 125, 206,
+ 126, 255, 136
};
static const int lexer_goto_row143[] = {
- 1,
- 0, 255, -58
-};
-static const int lexer_goto_row146[] = {
- 9,
- 0, 9, 212,
- 10, 10, 213,
- 11, 12, 212,
- 13, 13, 214,
- 14, 38, 212,
- 39, 39, 215,
- 40, 91, 212,
- 92, 92, 216,
- 93, 255, 212
+ 11,
+ 0, 9, 207,
+ 10, 10, 208,
+ 11, 12, 207,
+ 13, 13, 209,
+ 14, 33, 207,
+ 34, 34, 210,
+ 35, 91, 207,
+ 92, 92, 211,
+ 93, 122, 207,
+ 123, 123, 212,
+ 124, 255, 207
+};
+static const int lexer_goto_row144[] = {
+ 1,
+ 0, 255, -59
};
static const int lexer_goto_row147[] = {
- 1,
- 39, 39, 217
+ 9,
+ 0, 9, 213,
+ 10, 10, 214,
+ 11, 12, 213,
+ 13, 13, 215,
+ 14, 38, 213,
+ 39, 39, 216,
+ 40, 91, 213,
+ 92, 92, 217,
+ 93, 255, 213
};
-static const int lexer_goto_row150[] = {
+static const int lexer_goto_row148[] = {
1,
- 48, 102, -78
+ 39, 39, 218
};
static const int lexer_goto_row151[] = {
1,
- 48, 102, -78
+ 48, 102, -79
};
static const int lexer_goto_row152[] = {
1,
- 48, 102, -78
+ 48, 102, -79
};
-static const int lexer_goto_row156[] = {
+static const int lexer_goto_row153[] = {
1,
- 101, 101, 218
+ 48, 102, -79
};
static const int lexer_goto_row157[] = {
1,
- 48, 122, -92
+ 101, 101, 219
};
static const int lexer_goto_row158[] = {
1,
- 48, 122, -92
+ 48, 122, -93
};
static const int lexer_goto_row159[] = {
1,
- 48, 122, -92
+ 48, 122, -93
};
static const int lexer_goto_row160[] = {
1,
- 48, 122, -92
+ 48, 122, -93
};
static const int lexer_goto_row161[] = {
1,
- 0, 255, -93
+ 48, 122, -93
};
static const int lexer_goto_row162[] = {
1,
- 0, 255, 219
+ 0, 255, -94
};
static const int lexer_goto_row163[] = {
- 3,
- 0, 124, 220,
- 125, 125, 221,
- 126, 255, 220
+ 1,
+ 0, 255, 220
};
static const int lexer_goto_row164[] = {
3,
- 48, 113, -35,
- 114, 114, 222,
- 115, 122, 95
+ 0, 124, 221,
+ 125, 125, 222,
+ 126, 255, 221
};
static const int lexer_goto_row165[] = {
3,
- 48, 115, -107,
- 116, 116, 223,
- 117, 122, 95
+ 48, 113, -36,
+ 114, 114, 223,
+ 115, 122, 96
};
static const int lexer_goto_row166[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 115, -108,
+ 116, 116, 224,
+ 117, 122, 96
};
static const int lexer_goto_row167[] = {
- 3,
- 48, 100, -44,
- 101, 101, 224,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row168[] = {
3,
- 48, 95, -34,
- 97, 97, 225,
- 98, 122, 95
+ 48, 100, -45,
+ 101, 101, 225,
+ 102, 122, 96
};
static const int lexer_goto_row169[] = {
3,
- 48, 114, -100,
- 115, 115, 226,
- 116, 122, 95
+ 48, 95, -35,
+ 97, 97, 226,
+ 98, 122, 96
};
static const int lexer_goto_row170[] = {
3,
- 48, 115, -107,
- 116, 116, 227,
- 117, 122, 95
+ 48, 114, -101,
+ 115, 115, 227,
+ 116, 122, 96
};
static const int lexer_goto_row171[] = {
3,
- 48, 100, -44,
- 101, 101, 228,
- 102, 122, 95
+ 48, 115, -108,
+ 116, 116, 228,
+ 117, 122, 96
};
static const int lexer_goto_row172[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 100, -45,
+ 101, 101, 229,
+ 102, 122, 96
};
static const int lexer_goto_row173[] = {
- 4,
- 48, 95, -34,
- 97, 108, 95,
- 109, 109, 229,
- 110, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row174[] = {
- 3,
- 48, 100, -44,
- 101, 101, 230,
- 102, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 108, 96,
+ 109, 109, 230,
+ 110, 122, 96
};
static const int lexer_goto_row175[] = {
3,
- 48, 114, -100,
- 115, 115, 231,
- 116, 122, 95
+ 48, 100, -45,
+ 101, 101, 231,
+ 102, 122, 96
};
static const int lexer_goto_row176[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 114, -101,
+ 115, 115, 232,
+ 116, 122, 96
};
static const int lexer_goto_row177[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row178[] = {
- 5,
- 48, 107, -36,
- 108, 108, 232,
- 109, 110, 95,
- 111, 111, 233,
- 112, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row179[] = {
- 3,
- 48, 115, -107,
- 116, 116, 234,
- 117, 122, 95
+ 5,
+ 48, 107, -37,
+ 108, 108, 233,
+ 109, 110, 96,
+ 111, 111, 234,
+ 112, 122, 96
};
static const int lexer_goto_row180[] = {
- 5,
- 48, 100, -44,
- 101, 101, 235,
- 102, 113, 95,
- 114, 114, 236,
- 115, 122, 95
+ 3,
+ 48, 115, -108,
+ 116, 116, 235,
+ 117, 122, 96
};
static const int lexer_goto_row181[] = {
- 1,
- 48, 122, -40
+ 5,
+ 48, 100, -45,
+ 101, 101, 236,
+ 102, 113, 96,
+ 114, 114, 237,
+ 115, 122, 96
};
static const int lexer_goto_row182[] = {
- 3,
- 48, 100, -44,
- 101, 101, 237,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row183[] = {
3,
- 48, 100, -44,
+ 48, 100, -45,
101, 101, 238,
- 102, 122, 95
+ 102, 122, 96
};
static const int lexer_goto_row184[] = {
3,
- 48, 111, -112,
- 112, 112, 239,
- 113, 122, 95
+ 48, 100, -45,
+ 101, 101, 239,
+ 102, 122, 96
};
static const int lexer_goto_row185[] = {
3,
- 48, 116, -130,
- 117, 117, 240,
- 118, 122, 95
+ 48, 111, -113,
+ 112, 112, 240,
+ 113, 122, 96
};
static const int lexer_goto_row186[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 116, -131,
+ 117, 117, 241,
+ 118, 122, 96
};
static const int lexer_goto_row187[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row188[] = {
- 3,
- 48, 107, -36,
- 108, 108, 241,
- 109, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row189[] = {
3,
- 48, 100, -44,
- 101, 101, 242,
- 102, 122, 95
+ 48, 107, -37,
+ 108, 108, 242,
+ 109, 122, 96
};
static const int lexer_goto_row190[] = {
- 4,
- 48, 95, -34,
- 97, 106, 95,
- 107, 107, 243,
- 108, 122, 95
+ 3,
+ 48, 100, -45,
+ 101, 101, 243,
+ 102, 122, 96
};
static const int lexer_goto_row191[] = {
4,
- 48, 95, -34,
- 97, 117, 95,
- 118, 118, 244,
- 119, 122, 95
+ 48, 95, -35,
+ 97, 106, 96,
+ 107, 107, 244,
+ 108, 122, 96
};
static const int lexer_goto_row192[] = {
- 3,
- 48, 115, -107,
- 116, 116, 245,
- 117, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 117, 96,
+ 118, 118, 245,
+ 119, 122, 96
};
static const int lexer_goto_row193[] = {
3,
- 48, 107, -36,
- 108, 108, 246,
- 109, 122, 95
+ 48, 115, -108,
+ 116, 116, 246,
+ 117, 122, 96
};
static const int lexer_goto_row194[] = {
3,
- 48, 100, -44,
- 101, 101, 247,
- 102, 122, 95
+ 48, 107, -37,
+ 108, 108, 247,
+ 109, 122, 96
};
static const int lexer_goto_row195[] = {
3,
- 48, 116, -130,
- 117, 117, 248,
- 118, 122, 95
+ 48, 100, -45,
+ 101, 101, 248,
+ 102, 122, 96
};
static const int lexer_goto_row196[] = {
3,
- 48, 101, -41,
- 102, 102, 249,
- 103, 122, 95
+ 48, 116, -131,
+ 117, 117, 249,
+ 118, 122, 96
};
static const int lexer_goto_row197[] = {
3,
- 48, 100, -44,
- 101, 101, 250,
- 102, 122, 95
+ 48, 101, -42,
+ 102, 102, 250,
+ 103, 122, 96
};
static const int lexer_goto_row198[] = {
3,
- 48, 109, -45,
- 110, 110, 251,
- 111, 122, 95
+ 48, 100, -45,
+ 101, 101, 251,
+ 102, 122, 96
};
static const int lexer_goto_row199[] = {
3,
- 48, 100, -44,
- 101, 101, 252,
- 102, 122, 95
+ 48, 109, -46,
+ 110, 110, 252,
+ 111, 122, 96
};
static const int lexer_goto_row200[] = {
3,
- 48, 100, -44,
+ 48, 100, -45,
101, 101, 253,
- 102, 122, 95
+ 102, 122, 96
};
static const int lexer_goto_row201[] = {
3,
- 48, 117, -192,
- 118, 118, 254,
- 119, 122, 95
+ 48, 100, -45,
+ 101, 101, 254,
+ 102, 122, 96
};
static const int lexer_goto_row202[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 117, -193,
+ 118, 118, 255,
+ 119, 122, 96
};
static const int lexer_goto_row203[] = {
- 3,
- 48, 107, -36,
- 108, 108, 255,
- 109, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row204[] = {
3,
- 48, 103, -49,
- 104, 104, 256,
- 105, 122, 95
+ 48, 107, -37,
+ 108, 108, 256,
+ 109, 122, 96
};
static const int lexer_goto_row205[] = {
- 1,
- 0, 255, -137
+ 3,
+ 48, 103, -50,
+ 104, 104, 257,
+ 105, 122, 96
};
static const int lexer_goto_row206[] = {
- 11,
- 0, 9, 257,
- 10, 10, 258,
- 11, 12, 257,
- 13, 13, 259,
- 14, 33, 257,
- 34, 34, 260,
- 35, 91, 257,
- 92, 92, 261,
- 93, 122, 257,
- 123, 123, 262,
- 124, 255, 257
+ 1,
+ 0, 255, -138
};
static const int lexer_goto_row207[] = {
- 1,
- 0, 255, -143
+ 11,
+ 0, 9, 258,
+ 10, 10, 259,
+ 11, 12, 258,
+ 13, 13, 260,
+ 14, 33, 258,
+ 34, 34, 261,
+ 35, 91, 258,
+ 92, 92, 262,
+ 93, 122, 258,
+ 123, 123, 263,
+ 124, 255, 258
};
static const int lexer_goto_row208[] = {
1,
- 0, 255, -143
+ 0, 255, -144
};
static const int lexer_goto_row209[] = {
1,
- 0, 255, -143
+ 0, 255, -144
};
static const int lexer_goto_row210[] = {
- 5,
- 0, 33, -143,
- 34, 34, 263,
- 35, 122, -143,
- 123, 123, 264,
- 124, 255, 206
+ 1,
+ 0, 255, -144
};
static const int lexer_goto_row211[] = {
- 3,
- 0, 9, 265,
- 11, 12, 265,
- 14, 255, 265
+ 5,
+ 0, 33, -144,
+ 34, 34, 264,
+ 35, 122, -144,
+ 123, 123, 265,
+ 124, 255, 207
};
static const int lexer_goto_row212[] = {
- 5,
- 0, 33, -143,
- 34, 34, 266,
- 35, 122, -143,
- 123, 123, 267,
- 124, 255, 206
+ 3,
+ 0, 9, 266,
+ 11, 12, 266,
+ 14, 255, 266
};
static const int lexer_goto_row213[] = {
- 1,
- 0, 255, -147
+ 5,
+ 0, 33, -144,
+ 34, 34, 267,
+ 35, 122, -144,
+ 123, 123, 268,
+ 124, 255, 207
};
static const int lexer_goto_row214[] = {
1,
- 0, 255, -147
+ 0, 255, -148
};
static const int lexer_goto_row215[] = {
1,
- 0, 255, -147
+ 0, 255, -148
};
static const int lexer_goto_row216[] = {
- 9,
- 0, 9, 268,
- 10, 10, 269,
- 11, 12, 268,
- 13, 13, 270,
- 14, 38, 268,
- 39, 39, 271,
- 40, 91, 268,
- 92, 92, 272,
- 93, 255, 268
+ 1,
+ 0, 255, -148
};
static const int lexer_goto_row217[] = {
- 3,
- 0, 9, 273,
- 11, 12, 273,
- 14, 255, 273
-};
-static const int lexer_goto_row219[] = {
- 1,
- 98, 98, 274
+ 9,
+ 0, 9, 269,
+ 10, 10, 270,
+ 11, 12, 269,
+ 13, 13, 271,
+ 14, 38, 269,
+ 39, 39, 272,
+ 40, 91, 269,
+ 92, 92, 273,
+ 93, 255, 269
+};
+static const int lexer_goto_row218[] = {
+ 3,
+ 0, 9, 274,
+ 11, 12, 274,
+ 14, 255, 274
};
static const int lexer_goto_row220[] = {
1,
- 0, 255, -93
+ 98, 98, 275
};
static const int lexer_goto_row221[] = {
1,
- 0, 255, -93
+ 0, 255, -94
};
-static const int lexer_goto_row223[] = {
- 3,
- 48, 115, -107,
- 116, 116, 275,
- 117, 122, 95
+static const int lexer_goto_row222[] = {
+ 1,
+ 0, 255, -94
};
static const int lexer_goto_row224[] = {
3,
- 48, 113, -35,
- 114, 114, 276,
- 115, 122, 95
+ 48, 115, -108,
+ 116, 116, 276,
+ 117, 122, 96
};
static const int lexer_goto_row225[] = {
3,
- 48, 113, -35,
+ 48, 113, -36,
114, 114, 277,
- 115, 122, 95
+ 115, 122, 96
};
static const int lexer_goto_row226[] = {
3,
- 48, 106, -191,
- 107, 107, 278,
- 108, 122, 95
+ 48, 113, -36,
+ 114, 114, 278,
+ 115, 122, 96
};
static const int lexer_goto_row227[] = {
3,
- 48, 114, -100,
- 115, 115, 279,
- 116, 122, 95
+ 48, 106, -192,
+ 107, 107, 279,
+ 108, 122, 96
};
static const int lexer_goto_row228[] = {
3,
- 48, 104, -113,
- 105, 105, 280,
- 106, 122, 95
+ 48, 114, -101,
+ 115, 115, 280,
+ 116, 122, 96
};
static const int lexer_goto_row229[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 104, -114,
+ 105, 105, 281,
+ 106, 122, 96
};
static const int lexer_goto_row230[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row231[] = {
- 3,
- 48, 113, -35,
- 114, 114, 281,
- 115, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row232[] = {
3,
- 48, 100, -44,
- 101, 101, 282,
- 102, 122, 95
+ 48, 113, -36,
+ 114, 114, 282,
+ 115, 122, 96
};
static const int lexer_goto_row233[] = {
3,
- 48, 104, -113,
- 105, 105, 283,
- 106, 122, 95
+ 48, 100, -45,
+ 101, 101, 283,
+ 102, 122, 96
};
static const int lexer_goto_row234[] = {
3,
- 48, 113, -35,
- 114, 114, 284,
- 115, 122, 95
+ 48, 104, -114,
+ 105, 105, 284,
+ 106, 122, 96
};
static const int lexer_goto_row235[] = {
- 1,
- 48, 122, -40
-};
-static const int lexer_goto_row236[] = {
3,
- 48, 113, -35,
+ 48, 113, -36,
114, 114, 285,
- 115, 122, 95
+ 115, 122, 96
+};
+static const int lexer_goto_row236[] = {
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row237[] = {
3,
- 48, 116, -130,
- 117, 117, 286,
- 118, 122, 95
+ 48, 113, -36,
+ 114, 114, 286,
+ 115, 122, 96
};
static const int lexer_goto_row238[] = {
3,
- 48, 115, -107,
- 116, 116, 287,
- 117, 122, 95
+ 48, 116, -131,
+ 117, 117, 287,
+ 118, 122, 96
};
static const int lexer_goto_row239[] = {
3,
- 48, 107, -36,
- 108, 108, 288,
- 109, 122, 95
+ 48, 115, -108,
+ 116, 116, 288,
+ 117, 122, 96
};
static const int lexer_goto_row240[] = {
- 1,
- 48, 122, -40
-};
-static const int lexer_goto_row241[] = {
3,
- 48, 107, -36,
+ 48, 107, -37,
108, 108, 289,
- 109, 122, 95
+ 109, 122, 96
+};
+static const int lexer_goto_row241[] = {
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row242[] = {
3,
- 48, 95, -34,
- 97, 97, 290,
- 98, 122, 95
+ 48, 107, -37,
+ 108, 108, 290,
+ 109, 122, 96
};
static const int lexer_goto_row243[] = {
- 1,
- 48, 122, -40
-};
-static const int lexer_goto_row244[] = {
3,
- 48, 95, -34,
+ 48, 95, -35,
97, 97, 291,
- 98, 122, 95
+ 98, 122, 96
+};
+static const int lexer_goto_row244[] = {
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row245[] = {
3,
- 48, 95, -34,
+ 48, 95, -35,
97, 97, 292,
- 98, 122, 95
+ 98, 122, 96
};
static const int lexer_goto_row246[] = {
3,
- 48, 100, -44,
- 101, 101, 293,
- 102, 122, 95
+ 48, 95, -35,
+ 97, 97, 293,
+ 98, 122, 96
};
static const int lexer_goto_row247[] = {
3,
- 48, 104, -113,
- 105, 105, 294,
- 106, 122, 95
+ 48, 100, -45,
+ 101, 101, 294,
+ 102, 122, 96
};
static const int lexer_goto_row248[] = {
3,
- 48, 101, -41,
- 102, 102, 295,
- 103, 122, 95
+ 48, 104, -114,
+ 105, 105, 295,
+ 106, 122, 96
};
static const int lexer_goto_row249[] = {
3,
- 48, 113, -35,
- 114, 114, 296,
- 115, 122, 95
+ 48, 101, -42,
+ 102, 102, 296,
+ 103, 122, 96
};
static const int lexer_goto_row250[] = {
- 1,
- 48, 122, -40
-};
-static const int lexer_goto_row251[] = {
3,
- 48, 113, -35,
+ 48, 113, -36,
114, 114, 297,
- 115, 122, 95
+ 115, 122, 96
};
-static const int lexer_goto_row252[] = {
+static const int lexer_goto_row251[] = {
1,
- 48, 122, -40
+ 48, 122, -41
+};
+static const int lexer_goto_row252[] = {
+ 3,
+ 48, 113, -36,
+ 114, 114, 298,
+ 115, 122, 96
};
static const int lexer_goto_row253[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row254[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row255[] = {
- 3,
- 48, 100, -44,
- 101, 101, 298,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row256[] = {
3,
- 48, 100, -44,
+ 48, 100, -45,
101, 101, 299,
- 102, 122, 95
+ 102, 122, 96
};
static const int lexer_goto_row257[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 100, -45,
+ 101, 101, 300,
+ 102, 122, 96
};
static const int lexer_goto_row258[] = {
1,
- 0, 255, -207
+ 48, 122, -41
};
static const int lexer_goto_row259[] = {
- 11,
- 0, 9, 300,
- 10, 10, 258,
- 11, 12, 300,
- 13, 13, 259,
- 14, 33, 300,
- 34, 34, 301,
- 35, 91, 300,
- 92, 92, 302,
- 93, 122, 300,
- 123, 123, 303,
- 124, 255, 300
+ 1,
+ 0, 255, -208
};
static const int lexer_goto_row260[] = {
- 1,
- 0, 255, -260
+ 11,
+ 0, 9, 301,
+ 10, 10, 259,
+ 11, 12, 301,
+ 13, 13, 260,
+ 14, 33, 301,
+ 34, 34, 302,
+ 35, 91, 301,
+ 92, 92, 303,
+ 93, 122, 301,
+ 123, 123, 304,
+ 124, 255, 301
};
static const int lexer_goto_row261[] = {
- 5,
- 0, 33, -260,
- 34, 34, 304,
- 35, 122, -260,
- 123, 123, 305,
- 124, 255, 300
+ 1,
+ 0, 255, -261
};
static const int lexer_goto_row262[] = {
- 3,
- 0, 9, 306,
- 11, 12, 306,
- 14, 255, 306
+ 5,
+ 0, 33, -261,
+ 34, 34, 305,
+ 35, 122, -261,
+ 123, 123, 306,
+ 124, 255, 301
};
static const int lexer_goto_row263[] = {
- 5,
- 0, 33, -260,
- 34, 34, 307,
- 35, 122, -260,
- 123, 123, 308,
- 124, 255, 300
+ 3,
+ 0, 9, 307,
+ 11, 12, 307,
+ 14, 255, 307
};
static const int lexer_goto_row264[] = {
- 3,
- 0, 33, -143,
- 34, 34, 309,
- 35, 255, -211
+ 5,
+ 0, 33, -261,
+ 34, 34, 308,
+ 35, 122, -261,
+ 123, 123, 309,
+ 124, 255, 301
};
static const int lexer_goto_row265[] = {
3,
- 0, 122, -213,
- 123, 123, 310,
- 124, 255, 206
+ 0, 33, -144,
+ 34, 34, 310,
+ 35, 255, -212
};
static const int lexer_goto_row266[] = {
- 1,
- 0, 255, -143
+ 3,
+ 0, 122, -214,
+ 123, 123, 311,
+ 124, 255, 207
};
static const int lexer_goto_row267[] = {
- 3,
- 0, 33, -143,
- 34, 34, 311,
- 35, 255, -211
+ 1,
+ 0, 255, -144
};
static const int lexer_goto_row268[] = {
3,
- 0, 122, -213,
- 123, 123, 312,
- 124, 255, 206
+ 0, 33, -144,
+ 34, 34, 312,
+ 35, 255, -212
};
static const int lexer_goto_row269[] = {
- 1,
- 0, 255, -147
+ 3,
+ 0, 122, -214,
+ 123, 123, 313,
+ 124, 255, 207
};
static const int lexer_goto_row270[] = {
1,
- 0, 255, -147
+ 0, 255, -148
};
static const int lexer_goto_row271[] = {
1,
- 0, 255, -147
+ 0, 255, -148
};
static const int lexer_goto_row272[] = {
- 9,
- 0, 9, 313,
- 10, 10, 314,
- 11, 12, 313,
- 13, 13, 315,
- 14, 38, 313,
- 39, 39, 316,
- 40, 91, 313,
- 92, 92, 317,
- 93, 255, 313
+ 1,
+ 0, 255, -148
};
static const int lexer_goto_row273[] = {
- 3,
- 0, 9, 318,
- 11, 12, 318,
- 14, 255, 318
+ 9,
+ 0, 9, 314,
+ 10, 10, 315,
+ 11, 12, 314,
+ 13, 13, 316,
+ 14, 38, 314,
+ 39, 39, 317,
+ 40, 91, 314,
+ 92, 92, 318,
+ 93, 255, 314
};
static const int lexer_goto_row274[] = {
- 1,
- 0, 255, -147
+ 3,
+ 0, 9, 319,
+ 11, 12, 319,
+ 14, 255, 319
};
static const int lexer_goto_row275[] = {
1,
- 117, 117, 319
+ 0, 255, -148
};
static const int lexer_goto_row276[] = {
1,
- 48, 122, -40
+ 117, 117, 320
};
static const int lexer_goto_row277[] = {
- 3,
- 48, 95, -34,
- 97, 97, 320,
- 98, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row278[] = {
3,
- 48, 115, -107,
- 116, 116, 321,
- 117, 122, 95
+ 48, 95, -35,
+ 97, 97, 321,
+ 98, 122, 96
};
static const int lexer_goto_row279[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 115, -108,
+ 116, 116, 322,
+ 117, 122, 96
};
static const int lexer_goto_row280[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row281[] = {
- 3,
- 48, 109, -45,
- 110, 110, 322,
- 111, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row282[] = {
3,
- 48, 109, -45,
+ 48, 109, -46,
110, 110, 323,
- 111, 122, 95
+ 111, 122, 96
};
static const int lexer_goto_row283[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 109, -46,
+ 110, 110, 324,
+ 111, 122, 96
};
static const int lexer_goto_row284[] = {
- 3,
- 48, 100, -44,
- 101, 101, 324,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row285[] = {
3,
- 48, 115, -107,
- 116, 116, 325,
- 117, 122, 95
+ 48, 100, -45,
+ 101, 101, 325,
+ 102, 122, 96
};
static const int lexer_goto_row286[] = {
3,
- 48, 101, -41,
- 102, 102, 326,
- 103, 122, 95
+ 48, 115, -108,
+ 116, 116, 326,
+ 117, 122, 96
};
static const int lexer_goto_row287[] = {
3,
- 48, 99, -99,
- 100, 100, 327,
- 101, 122, 95
+ 48, 101, -42,
+ 102, 102, 327,
+ 103, 122, 96
};
static const int lexer_goto_row288[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 99, -100,
+ 100, 100, 328,
+ 101, 122, 96
};
static const int lexer_goto_row289[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row290[] = {
- 3,
- 48, 100, -44,
- 101, 101, 328,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row291[] = {
3,
- 48, 97, -34,
- 98, 98, 329,
- 99, 122, 95
+ 48, 100, -45,
+ 101, 101, 329,
+ 102, 122, 96
};
static const int lexer_goto_row292[] = {
- 4,
- 48, 95, -34,
- 97, 102, 95,
- 103, 103, 330,
- 104, 122, 95
+ 3,
+ 48, 97, -35,
+ 98, 98, 330,
+ 99, 122, 96
};
static const int lexer_goto_row293[] = {
- 3,
- 48, 115, -107,
- 116, 116, 331,
- 117, 122, 95
+ 4,
+ 48, 95, -35,
+ 97, 102, 96,
+ 103, 103, 331,
+ 104, 122, 96
};
static const int lexer_goto_row294[] = {
3,
- 48, 98, -121,
- 99, 99, 332,
- 100, 122, 95
+ 48, 115, -108,
+ 116, 116, 332,
+ 117, 122, 96
};
static const int lexer_goto_row295[] = {
3,
- 48, 98, -121,
+ 48, 98, -122,
99, 99, 333,
- 100, 122, 95
+ 100, 122, 96
};
static const int lexer_goto_row296[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 98, -122,
+ 99, 99, 334,
+ 100, 122, 96
};
static const int lexer_goto_row297[] = {
- 3,
- 48, 109, -45,
- 110, 110, 334,
- 111, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row298[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 109, -46,
+ 110, 110, 335,
+ 111, 122, 96
};
static const int lexer_goto_row299[] = {
- 3,
- 48, 113, -35,
- 114, 114, 335,
- 115, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row300[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 113, -36,
+ 114, 114, 336,
+ 115, 122, 96
};
static const int lexer_goto_row301[] = {
1,
- 0, 255, -260
+ 48, 122, -41
};
static const int lexer_goto_row302[] = {
1,
- 0, 255, -262
+ 0, 255, -261
};
static const int lexer_goto_row303[] = {
- 3,
- 0, 9, 336,
- 11, 12, 336,
- 14, 255, 336
+ 1,
+ 0, 255, -263
};
static const int lexer_goto_row304[] = {
- 1,
- 0, 255, -264
+ 3,
+ 0, 9, 337,
+ 11, 12, 337,
+ 14, 255, 337
};
static const int lexer_goto_row305[] = {
- 3,
- 0, 33, -260,
- 34, 34, 337,
- 35, 255, -262
+ 1,
+ 0, 255, -265
};
static const int lexer_goto_row306[] = {
3,
- 0, 122, -264,
- 123, 123, 338,
- 124, 255, 300
+ 0, 33, -261,
+ 34, 34, 338,
+ 35, 255, -263
};
static const int lexer_goto_row307[] = {
- 1,
- 0, 255, -207
+ 3,
+ 0, 122, -265,
+ 123, 123, 339,
+ 124, 255, 301
};
static const int lexer_goto_row308[] = {
- 3,
- 0, 33, -260,
- 34, 34, 339,
- 35, 255, -262
+ 1,
+ 0, 255, -208
};
static const int lexer_goto_row309[] = {
3,
- 0, 122, -264,
- 123, 123, 340,
- 124, 255, 300
+ 0, 33, -261,
+ 34, 34, 340,
+ 35, 255, -263
};
static const int lexer_goto_row310[] = {
- 1,
- 34, 34, 341
+ 3,
+ 0, 122, -265,
+ 123, 123, 341,
+ 124, 255, 301
};
static const int lexer_goto_row311[] = {
1,
- 0, 255, -269
+ 34, 34, 342
};
static const int lexer_goto_row312[] = {
1,
- 0, 255, -265
+ 0, 255, -270
};
static const int lexer_goto_row313[] = {
1,
- 123, 123, 342
+ 0, 255, -266
};
static const int lexer_goto_row314[] = {
1,
- 0, 255, -147
+ 123, 123, 343
};
static const int lexer_goto_row315[] = {
1,
- 0, 255, -147
+ 0, 255, -148
};
static const int lexer_goto_row316[] = {
1,
- 0, 255, -147
+ 0, 255, -148
};
-static const int lexer_goto_row318[] = {
- 3,
- 0, 9, 343,
- 11, 12, 343,
- 14, 255, 343
+static const int lexer_goto_row317[] = {
+ 1,
+ 0, 255, -148
};
static const int lexer_goto_row319[] = {
- 1,
- 0, 255, -147
+ 3,
+ 0, 9, 344,
+ 11, 12, 344,
+ 14, 255, 344
};
static const int lexer_goto_row320[] = {
1,
- 103, 103, 344
+ 0, 255, -148
};
static const int lexer_goto_row321[] = {
- 3,
- 48, 98, -121,
- 99, 99, 345,
- 100, 122, 95
+ 1,
+ 103, 103, 345
};
static const int lexer_goto_row322[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 98, -122,
+ 99, 99, 346,
+ 100, 122, 96
};
static const int lexer_goto_row323[] = {
- 3,
- 48, 116, -130,
- 117, 117, 346,
- 118, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row324[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 116, -131,
+ 117, 117, 347,
+ 118, 122, 96
};
static const int lexer_goto_row325[] = {
- 3,
- 48, 114, -100,
- 115, 115, 347,
- 116, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row326[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 114, -101,
+ 115, 115, 348,
+ 116, 122, 96
};
static const int lexer_goto_row327[] = {
- 3,
- 48, 95, -34,
- 97, 97, 348,
- 98, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row328[] = {
3,
- 48, 100, -44,
- 101, 101, 349,
- 102, 122, 95
+ 48, 95, -35,
+ 97, 97, 349,
+ 98, 122, 96
};
static const int lexer_goto_row329[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 100, -45,
+ 101, 101, 350,
+ 102, 122, 96
};
static const int lexer_goto_row330[] = {
- 3,
- 48, 107, -36,
- 108, 108, 350,
- 109, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row331[] = {
3,
- 48, 100, -44,
- 101, 101, 351,
- 102, 122, 95
+ 48, 107, -37,
+ 108, 108, 351,
+ 109, 122, 96
};
static const int lexer_goto_row332[] = {
3,
- 48, 100, -44,
+ 48, 100, -45,
101, 101, 352,
- 102, 122, 95
+ 102, 122, 96
};
static const int lexer_goto_row333[] = {
3,
- 48, 115, -107,
- 116, 116, 353,
- 117, 122, 95
+ 48, 100, -45,
+ 101, 101, 353,
+ 102, 122, 96
};
static const int lexer_goto_row334[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 115, -108,
+ 116, 116, 354,
+ 117, 122, 96
};
static const int lexer_goto_row335[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row336[] = {
- 3,
- 48, 114, -100,
- 115, 115, 354,
- 116, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row337[] = {
- 1,
- 0, 255, -260
+ 3,
+ 48, 114, -101,
+ 115, 115, 355,
+ 116, 122, 96
};
static const int lexer_goto_row338[] = {
1,
- 34, 34, 355
+ 0, 255, -261
};
static const int lexer_goto_row339[] = {
1,
- 0, 255, -310
+ 34, 34, 356
};
static const int lexer_goto_row340[] = {
1,
- 0, 255, -306
+ 0, 255, -311
};
static const int lexer_goto_row341[] = {
1,
- 123, 123, 356
+ 0, 255, -307
};
static const int lexer_goto_row342[] = {
1,
- 34, 34, 341
+ 123, 123, 357
};
static const int lexer_goto_row343[] = {
1,
- 123, 123, 342
+ 34, 34, 342
};
static const int lexer_goto_row344[] = {
1,
- 0, 255, -147
+ 123, 123, 343
};
static const int lexer_goto_row345[] = {
1,
- 95, 95, 357
+ 0, 255, -148
};
static const int lexer_goto_row346[] = {
- 3,
- 48, 115, -107,
- 116, 116, 358,
- 117, 122, 95
+ 1,
+ 95, 95, 358
};
static const int lexer_goto_row347[] = {
3,
- 48, 100, -44,
- 101, 101, 359,
- 102, 122, 95
+ 48, 115, -108,
+ 116, 116, 359,
+ 117, 122, 96
};
static const int lexer_goto_row348[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 100, -45,
+ 101, 101, 360,
+ 102, 122, 96
};
static const int lexer_goto_row349[] = {
- 3,
- 48, 98, -121,
- 99, 99, 360,
- 100, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row350[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 98, -122,
+ 99, 99, 361,
+ 100, 122, 96
};
static const int lexer_goto_row351[] = {
- 3,
- 48, 100, -44,
- 101, 101, 361,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row352[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 100, -45,
+ 101, 101, 362,
+ 102, 122, 96
};
static const int lexer_goto_row353[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row354[] = {
- 3,
- 48, 100, -44,
- 101, 101, 362,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row355[] = {
3,
- 48, 95, -34,
- 97, 97, 363,
- 98, 122, 95
+ 48, 100, -45,
+ 101, 101, 363,
+ 102, 122, 96
};
static const int lexer_goto_row356[] = {
- 1,
- 34, 34, 355
+ 3,
+ 48, 95, -35,
+ 97, 97, 364,
+ 98, 122, 96
};
static const int lexer_goto_row357[] = {
1,
- 123, 123, 356
+ 34, 34, 356
};
static const int lexer_goto_row358[] = {
1,
- 95, 95, 364
+ 123, 123, 357
};
static const int lexer_goto_row359[] = {
1,
- 48, 122, -40
+ 95, 95, 365
};
static const int lexer_goto_row360[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row361[] = {
- 3,
- 48, 100, -44,
- 101, 101, 365,
- 102, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row362[] = {
- 1,
- 48, 122, -40
+ 3,
+ 48, 100, -45,
+ 101, 101, 366,
+ 102, 122, 96
};
static const int lexer_goto_row363[] = {
- 3,
- 48, 99, -99,
- 100, 100, 366,
- 101, 122, 95
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row364[] = {
3,
- 48, 107, -36,
- 108, 108, 367,
- 109, 122, 95
+ 48, 99, -100,
+ 100, 100, 367,
+ 101, 122, 96
};
-static const int lexer_goto_row366[] = {
- 1,
- 48, 122, -40
+static const int lexer_goto_row365[] = {
+ 3,
+ 48, 107, -37,
+ 108, 108, 368,
+ 109, 122, 96
};
static const int lexer_goto_row367[] = {
1,
- 48, 122, -40
+ 48, 122, -41
};
static const int lexer_goto_row368[] = {
1,
- 48, 122, -40
+ 48, 122, -41
+};
+static const int lexer_goto_row369[] = {
+ 1,
+ 48, 122, -41
};
static const int lexer_goto_row_null[] = {0};
const int* const lexer_goto_table[] = {
lexer_goto_row20,
lexer_goto_row21,
lexer_goto_row22,
- lexer_goto_row23,
+ lexer_goto_row_null,
lexer_goto_row24,
lexer_goto_row25,
+ lexer_goto_row26,
lexer_goto_row_null,
- lexer_goto_row27,
+ lexer_goto_row28,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row30,
lexer_goto_row31,
lexer_goto_row32,
lexer_goto_row33,
lexer_goto_row51,
lexer_goto_row52,
lexer_goto_row53,
+ lexer_goto_row54,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row57,
lexer_goto_row58,
lexer_goto_row59,
+ lexer_goto_row60,
lexer_goto_row_null,
- lexer_goto_row61,
+ lexer_goto_row62,
lexer_goto_row_null,
- lexer_goto_row63,
+ lexer_goto_row64,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row66,
lexer_goto_row67,
lexer_goto_row68,
lexer_goto_row69,
+ lexer_goto_row70,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row73,
lexer_goto_row74,
+ lexer_goto_row75,
lexer_goto_row_null,
- lexer_goto_row76,
lexer_goto_row77,
lexer_goto_row78,
+ lexer_goto_row79,
lexer_goto_row_null,
- lexer_goto_row80,
lexer_goto_row81,
+ lexer_goto_row82,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row84,
lexer_goto_row85,
lexer_goto_row86,
lexer_goto_row87,
lexer_goto_row88,
+ lexer_goto_row89,
lexer_goto_row_null,
- lexer_goto_row90,
lexer_goto_row91,
lexer_goto_row92,
lexer_goto_row93,
lexer_goto_row132,
lexer_goto_row133,
lexer_goto_row134,
+ lexer_goto_row135,
lexer_goto_row_null,
- lexer_goto_row136,
+ lexer_goto_row137,
lexer_goto_row_null,
- lexer_goto_row138,
+ lexer_goto_row139,
lexer_goto_row_null,
- lexer_goto_row140,
+ lexer_goto_row141,
lexer_goto_row_null,
- lexer_goto_row142,
lexer_goto_row143,
+ lexer_goto_row144,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row146,
lexer_goto_row147,
+ lexer_goto_row148,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row150,
lexer_goto_row151,
lexer_goto_row152,
+ lexer_goto_row153,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row156,
lexer_goto_row157,
lexer_goto_row158,
lexer_goto_row159,
lexer_goto_row215,
lexer_goto_row216,
lexer_goto_row217,
+ lexer_goto_row218,
lexer_goto_row_null,
- lexer_goto_row219,
lexer_goto_row220,
lexer_goto_row221,
+ lexer_goto_row222,
lexer_goto_row_null,
- lexer_goto_row223,
lexer_goto_row224,
lexer_goto_row225,
lexer_goto_row226,
lexer_goto_row314,
lexer_goto_row315,
lexer_goto_row316,
+ lexer_goto_row317,
lexer_goto_row_null,
- lexer_goto_row318,
lexer_goto_row319,
lexer_goto_row320,
lexer_goto_row321,
lexer_goto_row362,
lexer_goto_row363,
lexer_goto_row364,
+ lexer_goto_row365,
lexer_goto_row_null,
- lexer_goto_row366,
lexer_goto_row367,
- lexer_goto_row368
+ lexer_goto_row368,
+ lexer_goto_row369
};
const int lexer_accept_table[] = {
- -1,0,1,1,0,94,107,2,80,83,-1,53,54,77,75,57,76,74,79,99,99,58,87,60,90,95,96,55,56,82,-1,-1,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,81,107,84,1,86,107,102,-1,103,2,2,2,65,69,108,108,108,78,63,61,62,73,101,64,-1,-1,-1,59,89,88,85,91,92,96,96,96,96,68,-1,98,-1,97,97,97,97,97,97,47,97,97,97,16,97,97,97,97,97,97,23,97,29,15,97,97,97,97,97,97,97,31,97,97,97,97,97,97,97,97,97,97,97,97,97,67,107,105,-1,104,107,102,107,107,2,106,107,108,66,72,100,100,100,70,93,71,-1,98,98,98,98,-1,-1,-1,97,97,30,97,97,97,97,97,10,97,97,97,28,11,97,97,97,40,97,97,97,97,39,32,97,97,97,97,97,97,97,97,97,97,97,97,97,97,17,97,97,107,107,107,107,107,-1,-1,-1,107,107,107,-1,-1,106,-1,-1,-1,109,97,97,97,97,97,97,25,9,97,97,97,97,13,97,97,97,97,27,97,46,41,97,97,97,97,97,97,43,97,24,44,12,97,97,51,107,-1,-1,105,-1,104,-1,-1,107,-1,-1,107,107,107,-1,-1,107,-1,37,97,97,36,6,97,97,45,97,97,97,97,49,50,97,97,97,97,97,97,14,97,42,97,26,-1,-1,-1,-1,-1,-1,107,-1,-1,102,-1,-1,103,107,107,107,102,-1,107,-1,97,38,97,18,97,5,97,97,4,97,97,97,97,19,34,97,-1,105,-1,-1,104,102,103,107,-1,97,97,33,97,22,97,3,21,97,97,105,104,-1,7,35,97,48,97,97,52,8,20,9
+ -1,0,1,1,0,94,108,2,80,83,-1,53,54,77,75,57,76,74,79,100,100,58,96,87,60,90,95,97,55,56,82,-1,-1,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,81,108,84,1,86,108,103,-1,104,2,2,2,65,69,109,109,109,78,63,61,62,73,102,64,-1,-1,-1,59,89,88,85,91,92,97,97,97,97,68,-1,99,-1,98,98,98,98,98,98,47,98,98,98,16,98,98,98,98,98,98,23,98,29,15,98,98,98,98,98,98,98,31,98,98,98,98,98,98,98,98,98,98,98,98,98,67,108,106,-1,105,108,103,108,108,2,107,108,109,66,72,101,101,101,70,93,71,-1,99,99,99,99,-1,-1,-1,98,98,30,98,98,98,98,98,10,98,98,98,28,11,98,98,98,40,98,98,98,98,39,32,98,98,98,98,98,98,98,98,98,98,98,98,98,98,17,98,98,108,108,108,108,108,-1,-1,-1,108,108,108,-1,-1,107,-1,-1,-1,110,98,98,98,98,98,98,25,9,98,98,98,98,13,98,98,98,98,27,98,46,41,98,98,98,98,98,98,43,98,24,44,12,98,98,51,108,-1,-1,106,-1,105,-1,-1,108,-1,-1,108,108,108,-1,-1,108,-1,37,98,98,36,6,98,98,45,98,98,98,98,49,50,98,98,98,98,98,98,14,98,42,98,26,-1,-1,-1,-1,-1,-1,108,-1,-1,103,-1,-1,104,108,108,108,103,-1,108,-1,98,38,98,18,98,5,98,98,4,98,98,98,98,19,34,98,-1,106,-1,-1,105,103,104,108,-1,98,98,33,98,22,98,3,21,98,98,106,105,-1,7,35,98,48,98,98,52,8,20,9
};
static int parser_action_row1[] = {
- 4,
- -1, 1, 474,
+ 7,
+ -1, 1, 485,
0, 0, 1,
1, 0, 2,
- 109, 1, 22
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row2[] = {
1,
- -1, 1, 1075
+ -1, 1, 489
};
static int parser_action_row3[] = {
1,
- -1, 1, 1073
+ -1, 1, 1088
};
static int parser_action_row4[] = {
- 2,
- -1, 3, 3,
- 109, 2, -1
-};
-static int parser_action_row5[] = {
4,
- -1, 1, 474,
+ -1, 1, 477,
0, 0, 1,
1, 0, 2,
- 109, 1, 22
+ 95, 0, 3
+};
+static int parser_action_row5[] = {
+ 2,
+ -1, 3, 4,
+ 110, 2, -1
};
static int parser_action_row6[] = {
- 1,
- -1, 1, 1039
+ 7,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row7[] = {
1,
- -1, 1, 1043
+ -1, 1, 1054
};
static int parser_action_row8[] = {
1,
- -1, 1, 0
+ -1, 1, 1058
};
static int parser_action_row9[] = {
1,
- -1, 1, 21
+ -1, 1, 0
};
static int parser_action_row10[] = {
1,
- -1, 1, 19
+ -1, 1, 21
};
static int parser_action_row11[] = {
1,
- -1, 1, 1041
+ -1, 1, 19
};
static int parser_action_row12[] = {
- 2,
- -1, 1, 475,
- 109, 1, 23
+ 1,
+ -1, 1, 1056
};
static int parser_action_row13[] = {
- 35,
- -1, 1, 28,
- 12, 0, 25,
- 13, 0, 26,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 28, 0, 33,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55,
- 108, 0, 56
+ 2,
+ -1, 1, 486,
+ 110, 1, 23
};
static int parser_action_row14[] = {
- 2,
- -1, 1, 473,
- 1, 0, 2
+ 33,
+ -1, 1, 30,
+ 12, 0, 31,
+ 13, 0, 32,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row15[] = {
3,
-1, 3, 14,
- 0, 0, 83,
- 1, 0, 84
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row16[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 1090
};
static int parser_action_row17[] = {
4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ -1, 3, 16,
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row18[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 488
};
static int parser_action_row19[] = {
- 3,
- -1, 1, 471,
+ 7,
+ -1, 1, 485,
0, 0, 1,
- 1, 0, 97
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row20[] = {
- 2,
- -1, 1, 478,
- 0, 0, 99
+ 7,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row21[] = {
- 1,
- -1, 1, 1
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row22[] = {
- 35,
- -1, 1, 28,
- 12, 0, 25,
- 13, 0, 26,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 28, 0, 33,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55,
- 108, 0, 56
+ 7,
+ -1, 1, 474,
+ 0, 0, 102,
+ 1, 0, 103,
+ 9, 1, 1051,
+ 28, 1, 1051,
+ 95, 0, 104,
+ 109, 1, 1051
};
static int parser_action_row23[] = {
- 4,
- -1, 1, 474,
+ 7,
+ -1, 1, 476,
0, 0, 1,
1, 0, 2,
- 109, 1, 22
+ 9, 1, 1053,
+ 28, 1, 1053,
+ 95, 0, 105,
+ 109, 1, 1053
};
static int parser_action_row24[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 481
};
static int parser_action_row25[] = {
4,
-1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 0, 0, 102,
+ 1, 0, 103,
+ 95, 0, 104
};
static int parser_action_row26[] = {
- 27,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 349,
- 73, 1, 349,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 4,
+ -1, 1, 476,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 105
};
static int parser_action_row27[] = {
1,
- -1, 1, 29
+ -1, 1, 1
};
static int parser_action_row28[] = {
33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 148,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 30,
+ 12, 0, 31,
+ 13, 0, 32,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row29[] = {
- 2,
- -1, 3, 28,
- 96, 0, 153
+ 7,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row30[] = {
- 3,
- -1, 1, 474,
+ 7,
+ -1, 1, 485,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row31[] = {
- 3,
- -1, 1, 474,
+ 5,
+ -1, 1, 485,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row32[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 148,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 27,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 353,
+ 73, 1, 353,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row33[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 31
};
static int parser_action_row34[] = {
- 3,
- -1, 1, 474,
+ 34,
+ -1, 1, 458,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 9, 0, 157,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row35[] = {
- 26,
- -1, 1, 167,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 34,
+ 97, 0, 162
};
static int parser_action_row36[] = {
- 2,
- -1, 1, 172,
- 49, 0, 188
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row37[] = {
- 2,
- -1, 1, 169,
- 49, 0, 188
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row38[] = {
- 1,
- -1, 1, 171
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 157,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row39[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 191,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
-};
-static int parser_action_row40[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row40[] = {
+ 26,
+ -1, 1, 169,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
+};
static int parser_action_row41[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 174,
+ 49, 0, 197
};
static int parser_action_row42[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 171,
+ 49, 0, 197
};
static int parser_action_row43[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 173
};
static int parser_action_row44[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 200,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row45[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row46[] = {
2,
- -1, 3, 45,
- 11, 0, 202
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row47[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row48[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row49[] = {
2,
- -1, 3, 48,
- 58, 0, 205
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row50[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 337,
- 58, 0, 206,
- 59, 0, 207,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 337,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row51[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 50,
+ 11, 0, 211
};
static int parser_action_row52[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row53[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row54[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 53,
+ 58, 0, 214
};
static int parser_action_row55[] = {
- 1,
- -1, 1, 393
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 341,
+ 58, 0, 215,
+ 59, 0, 216,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 341,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row56[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row57[] = {
- 1,
- -1, 1, 139
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row58[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row59[] = {
2,
- -1, 3, 58,
- 108, 0, 232
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row60[] = {
1,
- -1, 1, 143
+ -1, 1, 397
};
static int parser_action_row61[] = {
- 1,
- -1, 1, 24
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row62[] = {
- 1,
- -1, 1, 25
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row63[] = {
- 3,
- -1, 1, 158,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 24
};
static int parser_action_row64[] = {
1,
- -1, 1, 165
+ -1, 1, 25
};
static int parser_action_row65[] = {
- 1,
- -1, 1, 166
+ 4,
+ -1, 1, 160,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row66[] = {
1,
- -1, 1, 174
+ -1, 1, 167
};
static int parser_action_row67[] = {
1,
- -1, 1, 175
+ -1, 1, 168
};
static int parser_action_row68[] = {
1,
- -1, 1, 177
+ -1, 1, 176
};
static int parser_action_row69[] = {
1,
- -1, 1, 176
+ -1, 1, 177
};
static int parser_action_row70[] = {
1,
- -1, 1, 178
+ -1, 1, 179
};
static int parser_action_row71[] = {
1,
- -1, 1, 179
+ -1, 1, 178
};
static int parser_action_row72[] = {
1,
-1, 1, 180
};
static int parser_action_row73[] = {
- 3,
- -1, 3, 72,
- 54, 0, 236,
- 73, 0, 237
+ 1,
+ -1, 1, 181
};
static int parser_action_row74[] = {
1,
- -1, 1, 325
+ -1, 1, 182
};
static int parser_action_row75[] = {
- 1,
- -1, 1, 375
+ 3,
+ -1, 3, 74,
+ 54, 0, 244,
+ 73, 0, 245
};
static int parser_action_row76[] = {
1,
- -1, 1, 374
+ -1, 1, 329
};
static int parser_action_row77[] = {
- 3,
- -1, 3, 76,
- 103, 0, 239,
- 104, 0, 240
+ 1,
+ -1, 1, 379
};
static int parser_action_row78[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 378
};
static int parser_action_row79[] = {
3,
-1, 3, 78,
- 41, 0, 246,
- 97, 0, 247
+ 104, 0, 247,
+ 105, 0, 248
};
static int parser_action_row80[] = {
- 1,
- -1, 1, 1071
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row81[] = {
3,
- -1, 1, 453,
- 12, 0, 248,
- 96, 0, 249
+ -1, 3, 80,
+ 41, 0, 254,
+ 98, 0, 255
};
static int parser_action_row82[] = {
- 4,
- -1, 1, 455,
- 12, 0, 250,
- 95, 0, 48,
- 96, 0, 251
+ 1,
+ -1, 1, 1086
};
static int parser_action_row83[] = {
3,
- -1, 1, 472,
- 0, 0, 1,
- 1, 0, 97
+ -1, 1, 455,
+ 12, 0, 256,
+ 97, 0, 257
};
static int parser_action_row84[] = {
- 1,
- -1, 1, 470
+ 4,
+ -1, 1, 457,
+ 12, 0, 258,
+ 96, 0, 53,
+ 97, 0, 259
};
static int parser_action_row85[] = {
- 1,
- -1, 1, 469
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row86[] = {
1,
- -1, 1, 20
+ -1, 1, 141
};
static int parser_action_row87[] = {
- 1,
- -1, 1, 1040
+ 2,
+ -1, 3, 86,
+ 109, 0, 263
};
static int parser_action_row88[] = {
1,
- -1, 1, 2
+ -1, 1, 145
};
static int parser_action_row89[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 472
};
static int parser_action_row90[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 471
};
static int parser_action_row91[] = {
1,
- -1, 1, 4
+ -1, 1, 473
};
static int parser_action_row92[] = {
1,
- -1, 1, 1042
+ -1, 1, 20
};
static int parser_action_row93[] = {
- 35,
- -1, 1, 28,
- 12, 0, 25,
- 13, 0, 26,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 28, 0, 33,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55,
- 108, 0, 56
+ 1,
+ -1, 1, 1055
};
static int parser_action_row94[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 2
};
static int parser_action_row95[] = {
- 1,
- -1, 1, 1044
+ 7,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row96[] = {
- 1,
- -1, 1, 8
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row97[] = {
- 33,
- -1, 1, 28,
- 12, 0, 25,
- 13, 0, 26,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 4
};
static int parser_action_row98[] = {
1,
- -1, 1, 1074
+ -1, 1, 1057
};
static int parser_action_row99[] = {
- 2,
- -1, 1, 476,
- 0, 0, 99
+ 33,
+ -1, 1, 30,
+ 12, 0, 31,
+ 13, 0, 32,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row100[] = {
- 1,
- -1, 1, 1076
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row101[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 1,
+ -1, 1, 1059
};
static int parser_action_row102[] = {
1,
- -1, 1, 3
+ -1, 1, 8
};
static int parser_action_row103[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 1,
+ -1, 1, 490
};
static int parser_action_row104[] = {
+ 1,
+ -1, 1, 1089
+};
+static int parser_action_row105[] = {
4,
- -1, 1, 474,
+ -1, 1, 479,
0, 0, 1,
1, 0, 2,
- 109, 1, 22
-};
-static int parser_action_row105[] = {
- 1,
- -1, 1, 5
+ 95, 0, 3
};
static int parser_action_row106[] = {
4,
- -1, 1, 474,
+ -1, 1, 478,
0, 0, 1,
1, 0, 2,
- 109, 1, 22
+ 95, 0, 3
};
static int parser_action_row107[] = {
1,
- -1, 1, 9
+ -1, 1, 1091
};
static int parser_action_row108[] = {
- 2,
- -1, 1, 756,
- 52, 0, 265
+ 7,
+ -1, 1, 475,
+ 0, 0, 102,
+ 1, 0, 103,
+ 9, 1, 1052,
+ 28, 1, 1052,
+ 95, 0, 271,
+ 109, 1, 1052
};
static int parser_action_row109[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 4,
+ -1, 1, 475,
+ 0, 0, 102,
+ 1, 0, 103,
+ 95, 0, 271
};
static int parser_action_row110[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row111[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 3
};
static int parser_action_row112[] = {
- 3,
- -1, 1, 474,
+ 7,
+ -1, 1, 485,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 28, 1, 487,
+ 95, 0, 3,
+ 109, 1, 487,
+ 110, 1, 22
};
static int parser_action_row113[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row114[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 5
};
static int parser_action_row115[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row116[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 9
};
static int parser_action_row117[] = {
- 15,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 275,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 768,
+ 52, 0, 277
};
static int parser_action_row118[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row119[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row120[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row121[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row122[] = {
- 3,
- -1, 1, 744,
- 52, 0, 265,
- 58, 0, 206
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row123[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row124[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row125[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row126[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 15,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 287,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row127[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row128[] = {
- 1,
- -1, 1, 781
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row129[] = {
- 1,
- -1, 1, 348
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row130[] = {
- 1,
- -1, 1, 191
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row131[] = {
3,
- -1, 3, 130,
- 41, 0, 288,
- 97, 0, 289
+ -1, 1, 756,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row132[] = {
2,
- -1, 1, 453,
- 96, 0, 290
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row133[] = {
- 1,
- -1, 1, 438
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row134[] = {
- 4,
- -1, 1, 686,
- 29, 0, 291,
- 30, 0, 292,
- 32, 0, 293
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row135[] = {
- 1,
- -1, 1, 688
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row136[] = {
- 1,
- -1, 1, 693
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row137[] = {
- 10,
- -1, 1, 695,
- 39, 0, 294,
- 80, 0, 295,
- 84, 0, 296,
- 85, 0, 297,
- 86, 0, 298,
- 87, 0, 299,
- 89, 0, 300,
- 90, 0, 301,
- 92, 0, 302
+ 1,
+ -1, 1, 793
};
static int parser_action_row138[] = {
- 2,
- -1, 1, 704,
- 81, 0, 303
+ 1,
+ -1, 1, 352
};
static int parser_action_row139[] = {
- 2,
- -1, 1, 706,
- 82, 0, 304
+ 1,
+ -1, 1, 193
};
static int parser_action_row140[] = {
3,
- -1, 1, 708,
- 88, 0, 305,
- 91, 0, 306
+ -1, 3, 139,
+ 41, 0, 300,
+ 98, 0, 301
};
static int parser_action_row141[] = {
- 3,
- -1, 1, 710,
- 74, 0, 307,
- 75, 0, 308
+ 2,
+ -1, 1, 455,
+ 97, 0, 302
};
static int parser_action_row142[] = {
- 4,
- -1, 1, 713,
- 76, 0, 309,
- 78, 0, 310,
- 79, 0, 311
+ 1,
+ -1, 1, 440
};
static int parser_action_row143[] = {
- 1,
- -1, 1, 716
+ 4,
+ -1, 1, 698,
+ 29, 0, 303,
+ 30, 0, 304,
+ 32, 0, 305
};
static int parser_action_row144[] = {
- 2,
- -1, 1, 720,
- 77, 0, 312
+ 1,
+ -1, 1, 700
};
static int parser_action_row145[] = {
1,
- -1, 1, 722
+ -1, 1, 705
};
static int parser_action_row146[] = {
- 3,
- -1, 1, 727,
- 54, 0, 236,
- 73, 0, 313
+ 10,
+ -1, 1, 707,
+ 39, 0, 306,
+ 80, 0, 307,
+ 84, 0, 308,
+ 85, 0, 309,
+ 86, 0, 310,
+ 87, 0, 311,
+ 89, 0, 312,
+ 90, 0, 313,
+ 92, 0, 314
};
static int parser_action_row147[] = {
- 1,
- -1, 1, 732
+ 2,
+ -1, 1, 716,
+ 81, 0, 315
};
static int parser_action_row148[] = {
- 3,
- -1, 1, 455,
- 95, 0, 48,
- 96, 0, 315
+ 2,
+ -1, 1, 718,
+ 82, 0, 316
};
static int parser_action_row149[] = {
- 2,
- -1, 1, 156,
- 49, 1, 969
+ 3,
+ -1, 1, 720,
+ 88, 0, 317,
+ 91, 0, 318
};
static int parser_action_row150[] = {
- 1,
- -1, 1, 255
+ 3,
+ -1, 1, 722,
+ 74, 0, 319,
+ 75, 0, 320
};
static int parser_action_row151[] = {
- 1,
- -1, 1, 157
+ 4,
+ -1, 1, 725,
+ 76, 0, 321,
+ 78, 0, 322,
+ 79, 0, 323
};
static int parser_action_row152[] = {
- 31,
- -1, 1, 456,
- 9, 0, 317,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 728
};
static int parser_action_row153[] = {
2,
- -1, 3, 152,
- 49, 0, 188
+ -1, 1, 732,
+ 77, 0, 324
};
static int parser_action_row154[] = {
- 3,
- -1, 1, 153,
- 57, 0, 321,
- 94, 0, 195
+ 1,
+ -1, 1, 734
};
static int parser_action_row155[] = {
- 1,
- -1, 1, 475
+ 3,
+ -1, 1, 739,
+ 54, 0, 244,
+ 73, 0, 325
};
static int parser_action_row156[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 744
};
static int parser_action_row157[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 457,
+ 96, 0, 53,
+ 97, 0, 327
};
static int parser_action_row158[] = {
- 1,
- -1, 1, 264
+ 2,
+ -1, 1, 158,
+ 49, 1, 981
};
static int parser_action_row159[] = {
- 2,
- -1, 3, 158,
- 49, 0, 188
+ 1,
+ -1, 1, 257
};
static int parser_action_row160[] = {
- 3,
- -1, 3, 159,
- 52, 0, 327,
- 96, 0, 328
+ 1,
+ -1, 1, 159
};
static int parser_action_row161[] = {
- 2,
- -1, 3, 160,
- 101, 0, 331
+ 31,
+ -1, 1, 458,
+ 9, 0, 329,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row162[] = {
2,
- -1, 1, 349,
- 52, 0, 265
+ -1, 3, 161,
+ 49, 0, 197
};
static int parser_action_row163[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 155,
+ 57, 0, 333,
+ 94, 0, 204
};
static int parser_action_row164[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row165[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 1051,
+ 0, 0, 102,
+ 1, 0, 103
};
static int parser_action_row166[] = {
3,
- -1, 1, 474,
+ -1, 1, 1053,
0, 0, 1,
1, 0, 2
};
static int parser_action_row167[] = {
- 17,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row168[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 268
};
static int parser_action_row169[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 168,
+ 49, 0, 197
};
static int parser_action_row170[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 169,
+ 52, 0, 340,
+ 97, 0, 341
};
static int parser_action_row171[] = {
- 3,
- -1, 1, 337,
- 52, 0, 265,
- 58, 0, 206
+ 2,
+ -1, 1, 353,
+ 52, 0, 277
};
static int parser_action_row172[] = {
- 1,
- -1, 1, 168
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row173[] = {
- 4,
- -1, 1, 279,
- 29, 0, 342,
- 30, 0, 343,
- 32, 0, 344
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row174[] = {
- 1,
- -1, 1, 281
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row175[] = {
- 1,
- -1, 1, 286
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row176[] = {
- 10,
- -1, 1, 288,
- 39, 0, 345,
- 80, 0, 346,
- 84, 0, 347,
- 85, 0, 348,
- 86, 0, 349,
- 87, 0, 350,
- 89, 0, 351,
- 90, 0, 352,
- 92, 0, 353
+ 17,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row177[] = {
- 2,
- -1, 1, 297,
- 81, 0, 354
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row178[] = {
- 2,
- -1, 1, 299,
- 82, 0, 355
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row179[] = {
- 3,
- -1, 1, 301,
- 88, 0, 356,
- 91, 0, 357
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row180[] = {
3,
- -1, 1, 303,
- 74, 0, 358,
- 75, 0, 359
+ -1, 1, 341,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row181[] = {
- 4,
- -1, 1, 306,
- 76, 0, 360,
- 78, 0, 361,
- 79, 0, 362
+ 1,
+ -1, 1, 170
};
static int parser_action_row182[] = {
- 1,
- -1, 1, 309
+ 4,
+ -1, 1, 283,
+ 29, 0, 354,
+ 30, 0, 355,
+ 32, 0, 356
};
static int parser_action_row183[] = {
- 2,
- -1, 1, 313,
- 77, 0, 363
+ 1,
+ -1, 1, 285
};
static int parser_action_row184[] = {
1,
- -1, 1, 315
+ -1, 1, 290
};
static int parser_action_row185[] = {
- 3,
- -1, 1, 320,
- 54, 0, 236,
- 73, 0, 364
+ 10,
+ -1, 1, 292,
+ 39, 0, 357,
+ 80, 0, 358,
+ 84, 0, 359,
+ 85, 0, 360,
+ 86, 0, 361,
+ 87, 0, 362,
+ 89, 0, 363,
+ 90, 0, 364,
+ 92, 0, 365
};
static int parser_action_row186[] = {
- 3,
- -1, 3, 185,
- 41, 0, 366,
- 97, 0, 367
+ 2,
+ -1, 1, 301,
+ 81, 0, 366
};
static int parser_action_row187[] = {
2,
- -1, 1, 453,
- 96, 0, 368
+ -1, 1, 303,
+ 82, 0, 367
};
static int parser_action_row188[] = {
3,
- -1, 1, 455,
- 95, 0, 48,
- 96, 0, 369
+ -1, 1, 305,
+ 88, 0, 368,
+ 91, 0, 369
};
static int parser_action_row189[] = {
- 2,
- -1, 1, 199,
- 96, 0, 371
+ 3,
+ -1, 1, 307,
+ 74, 0, 370,
+ 75, 0, 371
};
static int parser_action_row190[] = {
- 1,
- -1, 1, 173
+ 4,
+ -1, 1, 310,
+ 76, 0, 372,
+ 78, 0, 373,
+ 79, 0, 374
};
static int parser_action_row191[] = {
1,
- -1, 1, 170
+ -1, 1, 313
};
static int parser_action_row192[] = {
- 4,
- -1, 1, 337,
- 52, 0, 265,
- 57, 0, 372,
- 58, 0, 206
+ 2,
+ -1, 1, 317,
+ 77, 0, 375
};
static int parser_action_row193[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 319
};
static int parser_action_row194[] = {
- 2,
- -1, 1, 276,
- 24, 0, 374
+ 3,
+ -1, 1, 324,
+ 54, 0, 244,
+ 73, 0, 376
};
static int parser_action_row195[] = {
3,
-1, 3, 194,
- 47, 0, 375,
- 95, 0, 376
+ 41, 0, 378,
+ 98, 0, 379
};
static int parser_action_row196[] = {
- 3,
- -1, 1, 28,
- 13, 0, 26,
- 52, 0, 378
+ 2,
+ -1, 1, 455,
+ 97, 0, 380
};
static int parser_action_row197[] = {
- 1,
- -1, 1, 400
+ 3,
+ -1, 1, 457,
+ 96, 0, 53,
+ 97, 0, 381
};
static int parser_action_row198[] = {
- 1,
- -1, 1, 365
+ 2,
+ -1, 1, 201,
+ 97, 0, 383
};
static int parser_action_row199[] = {
1,
- -1, 1, 366
+ -1, 1, 175
};
static int parser_action_row200[] = {
1,
- -1, 1, 367
+ -1, 1, 172
};
static int parser_action_row201[] = {
- 1,
- -1, 1, 368
+ 4,
+ -1, 1, 341,
+ 52, 0, 277,
+ 57, 0, 384,
+ 58, 0, 215
};
static int parser_action_row202[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 381,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row203[] = {
- 3,
- -1, 3, 202,
- 47, 0, 384,
- 95, 0, 385
+ 2,
+ -1, 1, 280,
+ 24, 0, 386
};
static int parser_action_row204[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 203,
+ 47, 0, 387,
+ 96, 0, 388
};
static int parser_action_row205[] = {
- 25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 434,
- 27, 0, 435,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 30,
+ 13, 0, 32,
+ 52, 0, 390
};
static int parser_action_row206[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 404
};
static int parser_action_row207[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 369
};
static int parser_action_row208[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 370
};
static int parser_action_row209[] = {
1,
- -1, 1, 243
+ -1, 1, 371
};
static int parser_action_row210[] = {
1,
- -1, 1, 244
+ -1, 1, 372
};
static int parser_action_row211[] = {
- 1,
- -1, 1, 245
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 393,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row212[] = {
- 1,
- -1, 1, 246
+ 3,
+ -1, 3, 211,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row213[] = {
- 1,
- -1, 1, 247
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row214[] = {
- 1,
- -1, 1, 248
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 446,
+ 27, 0, 447,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row215[] = {
- 1,
- -1, 1, 249
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row216[] = {
- 1,
- -1, 1, 250
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row217[] = {
- 1,
- -1, 1, 251
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row218[] = {
1,
- -1, 1, 252
+ -1, 1, 245
};
static int parser_action_row219[] = {
1,
- -1, 1, 253
+ -1, 1, 246
};
static int parser_action_row220[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 247
};
static int parser_action_row221[] = {
- 13,
- -1, 1, 336,
- 59, 0, 443,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 248
};
static int parser_action_row222[] = {
1,
- -1, 1, 185
+ -1, 1, 249
};
static int parser_action_row223[] = {
1,
- -1, 1, 369
+ -1, 1, 250
};
static int parser_action_row224[] = {
1,
- -1, 1, 370
+ -1, 1, 251
};
static int parser_action_row225[] = {
1,
- -1, 1, 371
+ -1, 1, 252
};
static int parser_action_row226[] = {
1,
- -1, 1, 373
+ -1, 1, 253
};
static int parser_action_row227[] = {
1,
- -1, 1, 372
+ -1, 1, 254
};
static int parser_action_row228[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 255
};
static int parser_action_row229[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row230[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 13,
+ -1, 1, 340,
+ 59, 0, 455,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row231[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 187
};
static int parser_action_row232[] = {
- 9,
- -1, 3, 231,
- 3, 0, 449,
- 4, 0, 450,
- 5, 0, 451,
- 6, 0, 452,
- 7, 0, 453,
- 8, 0, 454,
- 10, 0, 455,
- 17, 0, 456
+ 1,
+ -1, 1, 373
};
static int parser_action_row233[] = {
1,
- -1, 1, 140
+ -1, 1, 374
};
static int parser_action_row234[] = {
1,
- -1, 1, 1055
+ -1, 1, 375
};
static int parser_action_row235[] = {
- 32,
- -1, 1, 160,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 377
};
static int parser_action_row236[] = {
- 3,
- -1, 1, 159,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 376
};
static int parser_action_row237[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row238[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row239[] = {
- 13,
- -1, 1, 350,
- 59, 0, 463,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row240[] = {
- 1,
- -1, 1, 396
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row241[] = {
- 1,
- -1, 1, 397
+ 9,
+ -1, 3, 240,
+ 3, 0, 461,
+ 4, 0, 462,
+ 5, 0, 463,
+ 6, 0, 464,
+ 7, 0, 465,
+ 8, 0, 466,
+ 10, 0, 467,
+ 17, 0, 468
};
static int parser_action_row242[] = {
1,
- -1, 1, 1061
+ -1, 1, 1072
};
static int parser_action_row243[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 32,
+ -1, 1, 162,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row244[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 4,
+ -1, 1, 161,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row245[] = {
3,
- -1, 3, 244,
- 103, 0, 239,
- 104, 0, 240
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row246[] = {
- 26,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 103, 1, 392,
- 104, 1, 392,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row247[] = {
- 27,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 345,
- 73, 1, 345,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 13,
+ -1, 1, 354,
+ 59, 0, 475,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row248[] = {
- 13,
- -1, 1, 327,
- 59, 0, 472,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 400
};
static int parser_action_row249[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 401
};
static int parser_action_row250[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 339,
- 59, 0, 476,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 339,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 1078
};
static int parser_action_row251[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row252[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 343,
- 58, 0, 206,
- 59, 0, 481,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 343,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row253[] = {
- 1,
- -1, 1, 1072
+ 3,
+ -1, 3, 252,
+ 104, 0, 247,
+ 105, 0, 248
};
static int parser_action_row254[] = {
- 3,
- -1, 1, 454,
- 12, 0, 485,
- 96, 0, 486
+ 26,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 104, 1, 396,
+ 105, 1, 396,
+ 106, 0, 60
};
static int parser_action_row255[] = {
- 2,
- -1, 1, 477,
- 0, 0, 99
+ 27,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 349,
+ 73, 1, 349,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row256[] = {
- 1,
- -1, 1, 6
+ 13,
+ -1, 1, 331,
+ 59, 0, 484,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row257[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row258[] = {
- 1,
- -1, 1, 10
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 343,
+ 59, 0, 488,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 343,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row259[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row260[] = {
- 1,
- -1, 1, 12
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 347,
+ 58, 0, 215,
+ 59, 0, 493,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 347,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row261[] = {
- 8,
- -1, 3, 260,
- 4, 0, 450,
- 5, 0, 451,
- 6, 0, 452,
- 7, 0, 453,
- 8, 0, 454,
- 10, 0, 455,
- 17, 0, 456
+ 1,
+ -1, 1, 1087
};
static int parser_action_row262[] = {
- 1,
- -1, 1, 7
+ 3,
+ -1, 1, 456,
+ 12, 0, 497,
+ 97, 0, 498
};
static int parser_action_row263[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 109, 1, 22
+ 2,
+ -1, 3, 262,
+ 102, 0, 499
};
static int parser_action_row264[] = {
1,
- -1, 1, 11
+ -1, 1, 142
};
static int parser_action_row265[] = {
1,
- -1, 1, 13
+ -1, 1, 6
};
static int parser_action_row266[] = {
- 3,
- -1, 1, 474,
+ 5,
+ -1, 1, 485,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row267[] = {
1,
- -1, 1, 755
+ -1, 1, 10
};
static int parser_action_row268[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row269[] = {
- 21,
- -1, 1, 456,
- 12, 0, 107,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 12
};
static int parser_action_row270[] = {
- 3,
- -1, 3, 269,
- 47, 0, 375,
- 95, 0, 376
+ 1,
+ -1, 1, 483
};
static int parser_action_row271[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 482
};
static int parser_action_row272[] = {
- 1,
- -1, 1, 772
+ 4,
+ -1, 1, 480,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row273[] = {
- 1,
- -1, 1, 773
+ 8,
+ -1, 3, 272,
+ 4, 0, 462,
+ 5, 0, 463,
+ 6, 0, 464,
+ 7, 0, 465,
+ 8, 0, 466,
+ 10, 0, 467,
+ 17, 0, 468
};
static int parser_action_row274[] = {
1,
- -1, 1, 774
+ -1, 1, 7
};
static int parser_action_row275[] = {
- 1,
- -1, 1, 775
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3,
+ 110, 1, 22
};
static int parser_action_row276[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 11
};
static int parser_action_row277[] = {
- 3,
- -1, 3, 276,
- 41, 0, 288,
- 97, 0, 496
+ 1,
+ -1, 1, 13
};
static int parser_action_row278[] = {
3,
- -1, 3, 277,
- 54, 0, 236,
- 73, 0, 497
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row279[] = {
- 25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 53, 0, 498,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 499,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 767
};
static int parser_action_row280[] = {
- 1,
- -1, 1, 724
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row281[] = {
- 1,
- -1, 1, 723
+ 21,
+ -1, 1, 458,
+ 12, 0, 116,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row282[] = {
- 1,
- -1, 1, 725
+ 3,
+ -1, 3, 281,
+ 47, 0, 387,
+ 96, 0, 388
};
static int parser_action_row283[] = {
- 1,
- -1, 1, 743
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row284[] = {
1,
- -1, 1, 776
+ -1, 1, 784
};
static int parser_action_row285[] = {
1,
- -1, 1, 777
+ -1, 1, 785
};
static int parser_action_row286[] = {
1,
- -1, 1, 778
+ -1, 1, 786
};
static int parser_action_row287[] = {
1,
- -1, 1, 780
+ -1, 1, 787
};
static int parser_action_row288[] = {
- 1,
- -1, 1, 779
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row289[] = {
- 2,
- -1, 1, 752,
- 52, 0, 265
+ 3,
+ -1, 3, 288,
+ 41, 0, 300,
+ 98, 0, 510
};
static int parser_action_row290[] = {
- 1,
- -1, 1, 734
+ 3,
+ -1, 3, 289,
+ 54, 0, 244,
+ 73, 0, 511
};
static int parser_action_row291[] = {
- 2,
- -1, 1, 746,
- 52, 0, 265
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 53, 0, 512,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 513,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row292[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 736
};
static int parser_action_row293[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 24, 0, 506
+ 1,
+ -1, 1, 735
};
static int parser_action_row294[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 737
};
static int parser_action_row295[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 755
};
static int parser_action_row296[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 788
};
static int parser_action_row297[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 789
};
static int parser_action_row298[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 790
};
static int parser_action_row299[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 792
};
static int parser_action_row300[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 791
};
static int parser_action_row301[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 764,
+ 52, 0, 277
};
static int parser_action_row302[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 746
};
static int parser_action_row303[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 758,
+ 52, 0, 277
};
static int parser_action_row304[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row305[] = {
- 3,
- -1, 1, 474,
+ 4,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 24, 0, 520
};
static int parser_action_row306[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row307[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row308[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row309[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row310[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row311[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row312[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row313[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row314[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row315[] = {
- 1,
- -1, 1, 757
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row316[] = {
3,
- -1, 1, 750,
- 52, 0, 265,
- 58, 0, 206
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row317[] = {
- 2,
- -1, 1, 454,
- 96, 0, 530
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row318[] = {
- 2,
- -1, 1, 155,
- 49, 1, 968
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row319[] = {
- 2,
- -1, 1, 154,
- 49, 1, 967
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row320[] = {
3,
- -1, 3, 319,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row321[] = {
- 1,
- -1, 1, 254
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row322[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row323[] = {
- 2,
- -1, 1, 201,
- 59, 0, 534
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row324[] = {
- 2,
- -1, 1, 153,
- 57, 0, 321
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row325[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row326[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row327[] = {
1,
- -1, 1, 263
+ -1, 1, 769
};
static int parser_action_row328[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 762,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row329[] = {
- 1,
- -1, 1, 447
+ 2,
+ -1, 1, 456,
+ 97, 0, 544
};
static int parser_action_row330[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 157,
+ 49, 1, 980
};
static int parser_action_row331[] = {
2,
- -1, 1, 446,
- 56, 0, 540
+ -1, 1, 156,
+ 49, 1, 979
};
static int parser_action_row332[] = {
- 3,
- -1, 1, 474,
+ 4,
+ -1, 3, 331,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row333[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 256
};
static int parser_action_row334[] = {
- 23,
- -1, 1, 456,
- 12, 0, 161,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row335[] = {
- 3,
- -1, 3, 334,
- 47, 0, 375,
- 95, 0, 376
+ 2,
+ -1, 1, 203,
+ 59, 0, 548
};
static int parser_action_row336[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 155,
+ 57, 0, 333
};
static int parser_action_row337[] = {
3,
- -1, 3, 336,
- 54, 0, 236,
- 73, 0, 546
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row338[] = {
3,
- -1, 3, 337,
- 41, 0, 366,
- 97, 0, 547
+ -1, 1, 1052,
+ 0, 0, 102,
+ 1, 0, 103
};
static int parser_action_row339[] = {
- 1,
- -1, 1, 317
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row340[] = {
1,
- -1, 1, 316
+ -1, 1, 267
};
static int parser_action_row341[] = {
- 1,
- -1, 1, 318
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row342[] = {
1,
- -1, 1, 336
+ -1, 1, 449
};
static int parser_action_row343[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row344[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 24, 0, 549
+ 2,
+ -1, 1, 448,
+ 56, 0, 554
};
static int parser_action_row345[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row346[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 23,
+ -1, 1, 458,
+ 12, 0, 170,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row347[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 346,
+ 47, 0, 387,
+ 96, 0, 388
};
static int parser_action_row348[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row349[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 348,
+ 54, 0, 244,
+ 73, 0, 559
};
static int parser_action_row350[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 349,
+ 41, 0, 378,
+ 98, 0, 560
};
static int parser_action_row351[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 321
};
static int parser_action_row352[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 320
};
static int parser_action_row353[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 322
};
static int parser_action_row354[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 340
};
static int parser_action_row355[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row356[] = {
- 3,
- -1, 1, 474,
+ 4,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 24, 0, 562
};
static int parser_action_row357[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row358[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row359[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row360[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row361[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row362[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row363[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row364[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row365[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row366[] = {
- 1,
- -1, 1, 350
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row367[] = {
- 2,
- -1, 1, 345,
- 52, 0, 265
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row368[] = {
- 1,
- -1, 1, 327
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row369[] = {
- 2,
- -1, 1, 339,
- 52, 0, 265
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row370[] = {
3,
- -1, 1, 343,
- 52, 0, 265,
- 58, 0, 206
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row371[] = {
- 2,
- -1, 1, 454,
- 96, 0, 574
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row372[] = {
- 1,
- -1, 1, 200
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row373[] = {
- 1,
- -1, 1, 278
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row374[] = {
- 2,
- -1, 1, 277,
- 24, 0, 575
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row375[] = {
- 33,
- -1, 1, 456,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1, 0, 2
};
static int parser_action_row376[] = {
- 2,
- -1, 3, 375,
- 95, 0, 579
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row377[] = {
3,
- -1, 1, 785,
- 54, 0, 580,
- 94, 0, 581
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row378[] = {
- 2,
- -1, 3, 377,
- 73, 0, 584
+ 1,
+ -1, 1, 354
};
static int parser_action_row379[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 349,
+ 52, 0, 277
};
static int parser_action_row380[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 1,
+ -1, 1, 331
};
static int parser_action_row381[] = {
- 1,
- -1, 1, 398
+ 2,
+ -1, 1, 343,
+ 52, 0, 277
};
static int parser_action_row382[] = {
- 6,
- -1, 1, 337,
- 52, 0, 265,
- 57, 0, 321,
- 58, 0, 206,
- 59, 1, 153,
- 94, 0, 195
+ 3,
+ -1, 1, 347,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row383[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 456,
+ 97, 0, 587
};
static int parser_action_row384[] = {
1,
- -1, 1, 273
+ -1, 1, 202
};
static int parser_action_row385[] = {
- 2,
- -1, 3, 384,
- 95, 0, 590
+ 1,
+ -1, 1, 282
};
static int parser_action_row386[] = {
- 3,
- -1, 1, 401,
- 54, 0, 591,
- 94, 0, 195
+ 2,
+ -1, 1, 281,
+ 24, 0, 588
};
static int parser_action_row387[] = {
- 2,
- -1, 3, 386,
- 57, 0, 593
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row388[] = {
- 26,
- -1, 1, 975,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 387,
+ 96, 0, 592
};
static int parser_action_row389[] = {
- 2,
- -1, 1, 980,
- 49, 0, 188
+ 3,
+ -1, 1, 797,
+ 54, 0, 593,
+ 94, 0, 594
};
static int parser_action_row390[] = {
2,
- -1, 1, 977,
- 49, 0, 188
+ -1, 3, 389,
+ 73, 0, 597
};
static int parser_action_row391[] = {
- 1,
- -1, 1, 979
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row392[] = {
- 2,
- -1, 3, 391,
- 11, 0, 597
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row393[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 55, 0, 598
+ 1,
+ -1, 1, 402
};
static int parser_action_row394[] = {
- 24,
- -1, 1, 486,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 6,
+ -1, 1, 341,
+ 52, 0, 277,
+ 57, 0, 333,
+ 58, 0, 215,
+ 59, 1, 155,
+ 94, 0, 204
};
static int parser_action_row395[] = {
- 24,
+ 3,
-1, 1, 487,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row396[] = {
1,
- -1, 1, 488
+ -1, 1, 277
};
static int parser_action_row397[] = {
- 1,
- -1, 1, 489
+ 2,
+ -1, 3, 396,
+ 96, 0, 603
};
static int parser_action_row398[] = {
- 1,
- -1, 1, 490
+ 3,
+ -1, 1, 405,
+ 54, 0, 604,
+ 94, 0, 204
};
static int parser_action_row399[] = {
- 1,
- -1, 1, 491
+ 2,
+ -1, 3, 398,
+ 57, 0, 606
};
static int parser_action_row400[] = {
- 1,
- -1, 1, 492
+ 26,
+ -1, 1, 987,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row401[] = {
- 1,
- -1, 1, 493
+ 2,
+ -1, 1, 992,
+ 49, 0, 197
};
static int parser_action_row402[] = {
- 1,
- -1, 1, 494
+ 2,
+ -1, 1, 989,
+ 49, 0, 197
};
static int parser_action_row403[] = {
- 24,
- -1, 1, 495,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 991
};
static int parser_action_row404[] = {
- 1,
- -1, 1, 496
+ 2,
+ -1, 3, 403,
+ 11, 0, 610
};
static int parser_action_row405[] = {
- 1,
- -1, 1, 497
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 55, 0, 611
};
static int parser_action_row406[] = {
- 1,
- -1, 1, 500
+ 24,
+ -1, 1, 498,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row407[] = {
- 1,
- -1, 1, 498
+ 24,
+ -1, 1, 499,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row408[] = {
1,
- -1, 1, 502
+ -1, 1, 500
};
static int parser_action_row409[] = {
1,
};
static int parser_action_row410[] = {
1,
- -1, 1, 499
+ -1, 1, 502
};
static int parser_action_row411[] = {
1,
};
static int parser_action_row412[] = {
1,
- -1, 1, 505
+ -1, 1, 504
};
static int parser_action_row413[] = {
- 4,
- -1, 1, 401,
- 54, 0, 591,
- 58, 0, 205,
- 94, 0, 195
+ 1,
+ -1, 1, 505
};
static int parser_action_row414[] = {
- 15,
- -1, 1, 337,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 599,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 506
};
static int parser_action_row415[] = {
- 1,
- -1, 1, 426
+ 24,
+ -1, 1, 507,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row416[] = {
1,
- -1, 1, 973
+ -1, 1, 508
};
static int parser_action_row417[] = {
1,
- -1, 1, 974
+ -1, 1, 509
};
static int parser_action_row418[] = {
1,
- -1, 1, 982
+ -1, 1, 512
};
static int parser_action_row419[] = {
1,
- -1, 1, 984
+ -1, 1, 510
};
static int parser_action_row420[] = {
1,
- -1, 1, 983
+ -1, 1, 514
};
static int parser_action_row421[] = {
1,
- -1, 1, 985
+ -1, 1, 513
};
static int parser_action_row422[] = {
1,
- -1, 1, 986
+ -1, 1, 511
};
static int parser_action_row423[] = {
1,
- -1, 1, 987
+ -1, 1, 515
};
static int parser_action_row424[] = {
1,
- -1, 1, 427
+ -1, 1, 517
};
static int parser_action_row425[] = {
- 3,
- -1, 1, 320,
- 54, 0, 236,
- 73, 0, 600
+ 4,
+ -1, 1, 405,
+ 54, 0, 604,
+ 58, 0, 214,
+ 94, 0, 204
};
static int parser_action_row426[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 15,
+ -1, 1, 341,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 612,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row427[] = {
1,
- -1, 1, 431
+ -1, 1, 428
};
static int parser_action_row428[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 56, 0, 602
+ 1,
+ -1, 1, 985
};
static int parser_action_row429[] = {
- 3,
- -1, 3, 428,
- 41, 0, 366,
- 97, 0, 247
+ 1,
+ -1, 1, 986
};
static int parser_action_row430[] = {
- 22,
- -1, 1, 453,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 610
+ 1,
+ -1, 1, 994
};
static int parser_action_row431[] = {
1,
- -1, 1, 508
+ -1, 1, 996
};
static int parser_action_row432[] = {
1,
- -1, 1, 430
+ -1, 1, 995
};
static int parser_action_row433[] = {
1,
- -1, 1, 428
+ -1, 1, 997
};
static int parser_action_row434[] = {
- 23,
- -1, 1, 455,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 95, 0, 48,
- 96, 0, 612
-};
+ 1,
+ -1, 1, 998
+};
static int parser_action_row435[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 999
};
static int parser_action_row436[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 429
};
static int parser_action_row437[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 324,
+ 54, 0, 244,
+ 73, 0, 613
};
static int parser_action_row438[] = {
- 2,
- -1, 1, 153,
- 57, 0, 321
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row439[] = {
- 2,
- -1, 1, 383,
- 56, 0, 619
+ 1,
+ -1, 1, 433
};
static int parser_action_row440[] = {
- 1,
- -1, 1, 466
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 56, 0, 615
};
static int parser_action_row441[] = {
- 1,
- -1, 1, 465
+ 3,
+ -1, 3, 440,
+ 41, 0, 378,
+ 98, 0, 255
};
static int parser_action_row442[] = {
- 1,
- -1, 1, 216
+ 22,
+ -1, 1, 455,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 623
};
static int parser_action_row443[] = {
1,
- -1, 1, 235
+ -1, 1, 520
};
static int parser_action_row444[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 432
};
static int parser_action_row445[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 430
};
static int parser_action_row446[] = {
- 1,
- -1, 1, 80
+ 23,
+ -1, 1, 457,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 96, 0, 53,
+ 97, 0, 625
};
static int parser_action_row447[] = {
- 1,
- -1, 1, 82
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row448[] = {
- 1,
- -1, 1, 81
-};
-static int parser_action_row449[] = {
- 1,
- -1, 1, 83
-};
-static int parser_action_row450[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row451[] = {
+static int parser_action_row449[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row450[] = {
+ 2,
+ -1, 1, 155,
+ 57, 0, 333
+};
+static int parser_action_row451[] = {
+ 2,
+ -1, 1, 387,
+ 56, 0, 632
+};
static int parser_action_row452[] = {
1,
- -1, 1, 30
+ -1, 1, 468
};
static int parser_action_row453[] = {
- 2,
- -1, 3, 452,
- 5, 0, 626
+ 1,
+ -1, 1, 467
};
static int parser_action_row454[] = {
1,
- -1, 1, 32
+ -1, 1, 218
};
static int parser_action_row455[] = {
1,
- -1, 1, 33
+ -1, 1, 237
};
static int parser_action_row456[] = {
- 23,
- -1, 3, 455,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 48,
- 96, 0, 647
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row457[] = {
- 2,
- -1, 3, 456,
- 5, 0, 652
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row458[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 82
};
static int parser_action_row459[] = {
1,
- -1, 1, 164
+ -1, 1, 84
};
static int parser_action_row460[] = {
1,
- -1, 1, 1056
+ -1, 1, 83
};
static int parser_action_row461[] = {
- 32,
- -1, 1, 161,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 85
};
static int parser_action_row462[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 499,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row463[] = {
- 5,
- -1, 1, 456,
- 12, 0, 655,
- 46, 0, 656,
- 95, 0, 48,
- 96, 0, 657
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row464[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 32
};
static int parser_action_row465[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 464,
+ 5, 0, 639
};
static int parser_action_row466[] = {
- 26,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 103, 1, 395,
- 104, 1, 395,
- 105, 0, 55
+ 1,
+ -1, 1, 34
};
static int parser_action_row467[] = {
1,
- -1, 1, 389
+ -1, 1, 35
};
static int parser_action_row468[] = {
- 1,
- -1, 1, 1062
+ 23,
+ -1, 3, 467,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 53,
+ 97, 0, 660
};
static int parser_action_row469[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 468,
+ 5, 0, 665
};
static int parser_action_row470[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row471[] = {
1,
- -1, 1, 344
+ -1, 1, 166
};
static int parser_action_row472[] = {
1,
- -1, 1, 189
+ -1, 1, 1073
};
static int parser_action_row473[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 32,
+ -1, 1, 163,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row474[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 513,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row475[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 5,
+ -1, 1, 458,
+ 12, 0, 668,
+ 46, 0, 669,
+ 96, 0, 53,
+ 97, 0, 670
};
static int parser_action_row476[] = {
- 1,
- -1, 1, 195
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row477[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row478[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 26,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 104, 1, 399,
+ 105, 1, 399,
+ 106, 0, 60
};
static int parser_action_row479[] = {
- 13,
- -1, 1, 338,
- 59, 0, 671,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 393
};
static int parser_action_row480[] = {
1,
- -1, 1, 186
+ -1, 1, 1079
};
static int parser_action_row481[] = {
- 1,
- -1, 1, 197
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row482[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row483[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 348
};
static int parser_action_row484[] = {
- 13,
- -1, 1, 342,
- 59, 0, 675,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 191
};
static int parser_action_row485[] = {
- 1,
- -1, 1, 188
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row486[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row487[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 341,
- 59, 0, 678,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 341,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row488[] = {
1,
- -1, 1, 14
+ -1, 1, 197
};
static int parser_action_row489[] = {
- 7,
- -1, 3, 488,
- 5, 0, 451,
- 6, 0, 452,
- 7, 0, 453,
- 8, 0, 454,
- 10, 0, 455,
- 17, 0, 456
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row490[] = {
- 1,
- -1, 1, 15
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row491[] = {
- 25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 53, 0, 682,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 499,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 13,
+ -1, 1, 342,
+ 59, 0, 684,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row492[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 188
};
static int parser_action_row493[] = {
1,
- -1, 1, 694
+ -1, 1, 199
};
static int parser_action_row494[] = {
- 3,
- -1, 1, 729,
- 52, 0, 265,
- 73, 0, 685
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row495[] = {
- 1,
- -1, 1, 726
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row496[] = {
- 3,
- -1, 3, 495,
- 47, 0, 375,
- 95, 0, 376
+ 13,
+ -1, 1, 346,
+ 59, 0, 688,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row497[] = {
- 3,
- -1, 1, 731,
- 54, 1, 734,
- 73, 1, 734
+ 1,
+ -1, 1, 190
};
static int parser_action_row498[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row499[] = {
- 8,
- -1, 1, 436,
- 0, 1, 439,
- 1, 1, 439,
- 9, 1, 439,
- 24, 1, 439,
- 53, 1, 439,
- 56, 1, 439,
- 109, 1, 439
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 345,
+ 59, 0, 691,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 345,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row500[] = {
- 4,
- -1, 1, 337,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 689
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row501[] = {
- 2,
- -1, 1, 362,
- 71, 0, 690
+ 1,
+ -1, 1, 14
};
static int parser_action_row502[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 7,
+ -1, 3, 501,
+ 5, 0, 463,
+ 6, 0, 464,
+ 7, 0, 465,
+ 8, 0, 466,
+ 10, 0, 467,
+ 17, 0, 468
};
static int parser_action_row503[] = {
- 2,
- -1, 3, 502,
- 53, 0, 692
+ 1,
+ -1, 1, 484
};
static int parser_action_row504[] = {
1,
- -1, 1, 751
+ -1, 1, 15
};
static int parser_action_row505[] = {
- 1,
- -1, 1, 745
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 53, 0, 696,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 513,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row506[] = {
- 21,
- -1, 1, 456,
- 12, 0, 107,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
-};
-static int parser_action_row507[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row507[] = {
+ 1,
+ -1, 1, 706
+};
static int parser_action_row508[] = {
- 21,
- -1, 1, 456,
- 12, 0, 107,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 741,
+ 52, 0, 277,
+ 73, 0, 699
};
static int parser_action_row509[] = {
- 21,
- -1, 1, 456,
- 12, 0, 107,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 738
};
static int parser_action_row510[] = {
3,
-1, 3, 509,
- 47, 0, 384,
- 95, 0, 385
+ 47, 0, 387,
+ 96, 0, 388
};
static int parser_action_row511[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 743,
+ 54, 1, 746,
+ 73, 1, 746
};
static int parser_action_row512[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row513[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 9,
+ -1, 1, 438,
+ 0, 1, 441,
+ 1, 1, 441,
+ 9, 1, 441,
+ 24, 1, 441,
+ 53, 1, 441,
+ 56, 1, 441,
+ 95, 1, 441,
+ 110, 1, 441
};
static int parser_action_row514[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 4,
+ -1, 1, 341,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 703
};
static int parser_action_row515[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 366,
+ 71, 0, 704
};
static int parser_action_row516[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row517[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 516,
+ 53, 0, 706
};
static int parser_action_row518[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 763
};
static int parser_action_row519[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 757
};
static int parser_action_row520[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 21,
+ -1, 1, 458,
+ 12, 0, 116,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row521[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row522[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 21,
+ -1, 1, 458,
+ 12, 0, 116,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row523[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 21,
+ -1, 1, 458,
+ 12, 0, 116,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row524[] = {
- 20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 3, 523,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row525[] = {
20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row526[] = {
20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row527[] = {
20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row528[] = {
20,
- -1, 1, 456,
- 12, 0, 107,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row529[] = {
- 5,
- -1, 1, 456,
- 12, 0, 716,
- 46, 0, 717,
- 95, 0, 48,
- 96, 0, 718
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row530[] = {
- 1,
- -1, 1, 749
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row531[] = {
- 2,
- -1, 1, 748,
- 52, 0, 265
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row532[] = {
- 31,
- -1, 1, 456,
- 9, 0, 723,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row533[] = {
- 3,
- -1, 3, 532,
- 0, 0, 1,
- 1, 0, 2
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row534[] = {
- 3,
- -1, 3, 533,
- 47, 0, 384,
- 95, 0, 385
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row535[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row536[] = {
- 2,
- -1, 1, 202,
- 59, 0, 727
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row537[] = {
- 2,
- -1, 3, 536,
- 23, 0, 728
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row538[] = {
- 2,
- -1, 3, 537,
- 15, 0, 729
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row539[] = {
- 2,
- -1, 3, 538,
- 96, 0, 328
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row540[] = {
- 2,
- -1, 3, 539,
- 28, 0, 731
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row541[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row542[] = {
- 1,
- -1, 1, 138
+ 20,
+ -1, 1, 458,
+ 12, 0, 116,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row543[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 5,
+ -1, 1, 458,
+ 12, 0, 730,
+ 46, 0, 731,
+ 96, 0, 53,
+ 97, 0, 732
};
static int parser_action_row544[] = {
1,
- -1, 1, 287
+ -1, 1, 761
};
static int parser_action_row545[] = {
- 3,
- -1, 1, 322,
- 52, 0, 265,
- 73, 0, 584
+ 2,
+ -1, 1, 760,
+ 52, 0, 277
};
static int parser_action_row546[] = {
- 1,
- -1, 1, 319
+ 31,
+ -1, 1, 458,
+ 9, 0, 737,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row547[] = {
- 3,
- -1, 1, 474,
+ 4,
+ -1, 3, 546,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row548[] = {
3,
- -1, 1, 324,
- 54, 1, 327,
- 73, 1, 327
+ -1, 3, 547,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row549[] = {
- 23,
- -1, 1, 456,
- 12, 0, 161,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
-};
-static int parser_action_row550[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row550[] = {
+ 2,
+ -1, 1, 204,
+ 59, 0, 741
+};
static int parser_action_row551[] = {
- 23,
- -1, 1, 456,
- 12, 0, 161,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 550,
+ 23, 0, 742
};
static int parser_action_row552[] = {
- 23,
- -1, 1, 456,
- 12, 0, 161,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 551,
+ 15, 0, 743
};
static int parser_action_row553[] = {
- 3,
+ 2,
-1, 3, 552,
- 47, 0, 384,
- 95, 0, 385
+ 97, 0, 341
};
static int parser_action_row554[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 553,
+ 28, 0, 745
};
static int parser_action_row555[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row556[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row557[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 291
};
static int parser_action_row558[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 326,
+ 52, 0, 277,
+ 73, 0, 597
};
static int parser_action_row559[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 323
};
static int parser_action_row560[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row561[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 328,
+ 54, 1, 331,
+ 73, 1, 331
};
static int parser_action_row562[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 23,
+ -1, 1, 458,
+ 12, 0, 170,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row563[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row564[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 23,
+ -1, 1, 458,
+ 12, 0, 170,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row565[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 23,
+ -1, 1, 458,
+ 12, 0, 170,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row566[] = {
- 22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 565,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row567[] = {
22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row568[] = {
22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row569[] = {
22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row570[] = {
22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row571[] = {
22,
- -1, 1, 456,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row572[] = {
- 5,
- -1, 1, 456,
- 12, 0, 759,
- 46, 0, 656,
- 95, 0, 48,
- 96, 0, 760
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row573[] = {
- 1,
- -1, 1, 338
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row574[] = {
- 1,
- -1, 1, 342
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row575[] = {
- 2,
- -1, 1, 341,
- 52, 0, 265
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row576[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row577[] = {
- 1,
- -1, 1, 156
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row578[] = {
- 1,
- -1, 1, 274
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row579[] = {
- 31,
- -1, 1, 456,
- 9, 0, 766,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row580[] = {
- 3,
- -1, 1, 785,
- 54, 0, 768,
- 94, 0, 581
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row581[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row582[] = {
- 3,
- -1, 1, 28,
- 13, 0, 26,
- 52, 0, 771
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row583[] = {
- 1,
- -1, 1, 784
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row584[] = {
- 1,
- -1, 1, 610
+ 22,
+ -1, 1, 458,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row585[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 5,
+ -1, 1, 458,
+ 12, 0, 773,
+ 46, 0, 669,
+ 96, 0, 53,
+ 97, 0, 774
};
static int parser_action_row586[] = {
- 2,
- -1, 1, 28,
- 13, 0, 26
+ 1,
+ -1, 1, 342
};
static int parser_action_row587[] = {
- 4,
- -1, 3, 586,
- 6, 0, 778,
- 17, 0, 779,
- 96, 0, 780
-};
+ 1,
+ -1, 1, 346
+};
static int parser_action_row588[] = {
2,
- -1, 3, 587,
- 59, 0, 782
+ -1, 1, 345,
+ 52, 0, 277
};
static int parser_action_row589[] = {
- 2,
- -1, 1, 153,
- 57, 0, 321
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row590[] = {
- 2,
- -1, 3, 589,
- 15, 0, 784
+ 1,
+ -1, 1, 158
};
static int parser_action_row591[] = {
- 3,
- -1, 1, 401,
- 54, 0, 785,
- 94, 0, 195
+ 1,
+ -1, 1, 278
};
static int parser_action_row592[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 31,
+ -1, 1, 458,
+ 9, 0, 780,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row593[] = {
- 1,
- -1, 1, 144
+ 3,
+ -1, 1, 797,
+ 54, 0, 782,
+ 94, 0, 594
};
static int parser_action_row594[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row595[] = {
- 1,
- -1, 1, 976
+ 3,
+ -1, 1, 30,
+ 13, 0, 32,
+ 52, 0, 785
};
static int parser_action_row596[] = {
1,
- -1, 1, 981
+ -1, 1, 796
};
static int parser_action_row597[] = {
1,
- -1, 1, 978
+ -1, 1, 622
};
static int parser_action_row598[] = {
3,
- -1, 3, 597,
- 47, 0, 384,
- 95, 0, 385
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row599[] = {
2,
- -1, 1, 504,
- 59, 0, 790
+ -1, 1, 30,
+ 13, 0, 32
};
static int parser_action_row600[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 4,
+ -1, 3, 599,
+ 6, 0, 792,
+ 17, 0, 793,
+ 97, 0, 794
};
static int parser_action_row601[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 600,
+ 59, 0, 796
};
static int parser_action_row602[] = {
2,
- -1, 3, 601,
- 53, 0, 792
+ -1, 1, 155,
+ 57, 0, 333
};
static int parser_action_row603[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 602,
+ 15, 0, 798
};
static int parser_action_row604[] = {
- 1,
- -1, 1, 1057
+ 3,
+ -1, 1, 405,
+ 54, 0, 799,
+ 94, 0, 204
};
static int parser_action_row605[] = {
- 2,
- -1, 3, 604,
- 53, 0, 794
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row606[] = {
- 2,
- -1, 1, 381,
- 56, 0, 602
+ 1,
+ -1, 1, 146
};
static int parser_action_row607[] = {
- 2,
- -1, 3, 606,
- 55, 0, 598
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row608[] = {
1,
- -1, 1, 486
+ -1, 1, 988
};
static int parser_action_row609[] = {
1,
- -1, 1, 487
+ -1, 1, 993
};
static int parser_action_row610[] = {
1,
- -1, 1, 495
+ -1, 1, 990
};
static int parser_action_row611[] = {
- 14,
- -1, 1, 339,
- 52, 0, 265,
- 59, 0, 796,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 3,
+ -1, 3, 610,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row612[] = {
- 1,
- -1, 1, 509
+ 2,
+ -1, 1, 516,
+ 59, 0, 804
};
static int parser_action_row613[] = {
- 15,
- -1, 1, 343,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 797,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row614[] = {
- 22,
- -1, 1, 454,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 798
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row615[] = {
- 1,
- -1, 1, 511
+ 2,
+ -1, 3, 614,
+ 53, 0, 806
};
static int parser_action_row616[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row617[] = {
- 3,
- -1, 3, 616,
- 52, 0, 327,
- 96, 0, 328
+ 1,
+ -1, 1, 1074
};
static int parser_action_row618[] = {
2,
- -1, 1, 386,
- 72, 0, 802
+ -1, 3, 617,
+ 53, 0, 808
};
static int parser_action_row619[] = {
2,
- -1, 3, 618,
- 55, 0, 803
+ -1, 1, 385,
+ 56, 0, 615
};
static int parser_action_row620[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 619,
+ 55, 0, 611
};
static int parser_action_row621[] = {
1,
- -1, 1, 1059
+ -1, 1, 498
};
static int parser_action_row622[] = {
- 2,
- -1, 1, 384,
- 56, 0, 619
+ 1,
+ -1, 1, 499
};
static int parser_action_row623[] = {
1,
- -1, 1, 215
+ -1, 1, 507
};
static int parser_action_row624[] = {
- 1,
- -1, 1, 234
+ 14,
+ -1, 1, 343,
+ 52, 0, 277,
+ 59, 0, 810,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row625[] = {
- 3,
- -1, 3, 624,
- 58, 0, 806,
- 96, 0, 807
+ 1,
+ -1, 1, 521
};
static int parser_action_row626[] = {
- 4,
- -1, 3, 625,
- 9, 0, 810,
- 58, 0, 806,
- 96, 0, 807
+ 15,
+ -1, 1, 347,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 811,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row627[] = {
- 1,
- -1, 1, 31
+ 22,
+ -1, 1, 456,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 812
};
static int parser_action_row628[] = {
- 2,
- -1, 3, 627,
- 55, 0, 812
+ 1,
+ -1, 1, 523
};
static int parser_action_row629[] = {
- 1,
- -1, 1, 84
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row630[] = {
- 1,
- -1, 1, 85
+ 3,
+ -1, 3, 629,
+ 52, 0, 340,
+ 97, 0, 341
};
static int parser_action_row631[] = {
- 1,
- -1, 1, 86
+ 2,
+ -1, 1, 390,
+ 72, 0, 816
};
static int parser_action_row632[] = {
- 1,
- -1, 1, 87
+ 2,
+ -1, 3, 631,
+ 55, 0, 817
};
static int parser_action_row633[] = {
- 1,
- -1, 1, 88
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row634[] = {
1,
- -1, 1, 89
+ -1, 1, 1076
};
static int parser_action_row635[] = {
- 1,
- -1, 1, 90
+ 2,
+ -1, 1, 388,
+ 56, 0, 632
};
static int parser_action_row636[] = {
1,
- -1, 1, 91
+ -1, 1, 217
};
static int parser_action_row637[] = {
1,
- -1, 1, 92
+ -1, 1, 236
};
static int parser_action_row638[] = {
- 1,
- -1, 1, 93
+ 3,
+ -1, 3, 637,
+ 58, 0, 820,
+ 97, 0, 821
};
static int parser_action_row639[] = {
- 1,
- -1, 1, 94
+ 4,
+ -1, 3, 638,
+ 9, 0, 824,
+ 58, 0, 820,
+ 97, 0, 821
};
static int parser_action_row640[] = {
1,
- -1, 1, 95
+ -1, 1, 33
};
static int parser_action_row641[] = {
- 1,
- -1, 1, 98
+ 2,
+ -1, 3, 640,
+ 55, 0, 826
};
static int parser_action_row642[] = {
1,
- -1, 1, 96
+ -1, 1, 86
};
static int parser_action_row643[] = {
1,
- -1, 1, 100
+ -1, 1, 87
};
static int parser_action_row644[] = {
1,
- -1, 1, 99
+ -1, 1, 88
};
static int parser_action_row645[] = {
1,
- -1, 1, 97
+ -1, 1, 89
};
static int parser_action_row646[] = {
1,
- -1, 1, 101
+ -1, 1, 90
};
static int parser_action_row647[] = {
1,
- -1, 1, 103
+ -1, 1, 91
};
static int parser_action_row648[] = {
- 3,
- -1, 1, 106,
- 58, 0, 206,
- 59, 0, 813
+ 1,
+ -1, 1, 92
};
static int parser_action_row649[] = {
1,
- -1, 1, 461
+ -1, 1, 93
};
static int parser_action_row650[] = {
- 5,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 52, 0, 814,
- 57, 0, 815
+ 1,
+ -1, 1, 94
};
static int parser_action_row651[] = {
- 22,
- -1, 3, 650,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 96, 0, 819
+ 1,
+ -1, 1, 95
};
static int parser_action_row652[] = {
- 23,
- -1, 3, 651,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 48,
- 96, 0, 647
+ 1,
+ -1, 1, 96
};
static int parser_action_row653[] = {
1,
- -1, 1, 34
+ -1, 1, 97
};
static int parser_action_row654[] = {
- 3,
- -1, 3, 653,
- 95, 0, 823,
- 96, 0, 824
+ 1,
+ -1, 1, 100
};
static int parser_action_row655[] = {
- 2,
- -1, 3, 654,
- 55, 0, 828
+ 1,
+ -1, 1, 98
};
static int parser_action_row656[] = {
- 27,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 347,
- 73, 1, 347,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 102
};
static int parser_action_row657[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 101
};
static int parser_action_row658[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 329,
- 58, 0, 206,
- 59, 0, 832,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 329,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 99
};
static int parser_action_row659[] = {
- 2,
- -1, 3, 658,
- 97, 0, 836
+ 1,
+ -1, 1, 103
};
static int parser_action_row660[] = {
- 3,
- -1, 1, 453,
- 12, 0, 837,
- 96, 0, 838
+ 1,
+ -1, 1, 105
};
static int parser_action_row661[] = {
- 4,
- -1, 1, 455,
- 12, 0, 839,
- 95, 0, 48,
- 96, 0, 840
+ 3,
+ -1, 1, 108,
+ 58, 0, 215,
+ 59, 0, 827
};
static int parser_action_row662[] = {
1,
- -1, 1, 223
+ -1, 1, 463
};
static int parser_action_row663[] = {
- 1,
- -1, 1, 242
+ 5,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 52, 0, 828,
+ 57, 0, 829
};
static int parser_action_row664[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 22,
+ -1, 3, 663,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 97, 0, 833
};
static int parser_action_row665[] = {
- 1,
- -1, 1, 390
+ 23,
+ -1, 3, 664,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 53,
+ 97, 0, 660
};
static int parser_action_row666[] = {
1,
- -1, 1, 391
+ -1, 1, 36
};
static int parser_action_row667[] = {
- 1,
- -1, 1, 206
+ 3,
+ -1, 3, 666,
+ 96, 0, 837,
+ 97, 0, 838
};
static int parser_action_row668[] = {
- 1,
- -1, 1, 225
+ 2,
+ -1, 3, 667,
+ 55, 0, 842
};
static int parser_action_row669[] = {
- 25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 53, 0, 843,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 499,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 27,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 351,
+ 73, 1, 351,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row670[] = {
- 1,
- -1, 1, 218
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row671[] = {
- 1,
- -1, 1, 237
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 333,
+ 58, 0, 215,
+ 59, 0, 846,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 333,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row672[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 671,
+ 98, 0, 850
};
static int parser_action_row673[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 455,
+ 12, 0, 851,
+ 97, 0, 852
};
static int parser_action_row674[] = {
- 1,
- -1, 1, 222
+ 4,
+ -1, 1, 457,
+ 12, 0, 853,
+ 96, 0, 53,
+ 97, 0, 854
};
static int parser_action_row675[] = {
1,
- -1, 1, 241
+ -1, 1, 225
};
static int parser_action_row676[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 244
};
static int parser_action_row677[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row678[] = {
1,
- -1, 1, 196
+ -1, 1, 394
};
static int parser_action_row679[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 395
};
static int parser_action_row680[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 208
};
static int parser_action_row681[] = {
- 13,
- -1, 1, 340,
- 59, 0, 851,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 227
};
static int parser_action_row682[] = {
- 1,
- -1, 1, 187
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 53, 0, 857,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 513,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row683[] = {
1,
- -1, 1, 436
+ -1, 1, 220
};
static int parser_action_row684[] = {
- 2,
- -1, 3, 683,
- 53, 0, 853
+ 1,
+ -1, 1, 239
};
static int parser_action_row685[] = {
- 2,
- -1, 3, 684,
- 23, 0, 854
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row686[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row687[] = {
1,
- -1, 1, 728
+ -1, 1, 224
};
static int parser_action_row688[] = {
- 2,
- -1, 3, 687,
- 73, 0, 685
+ 1,
+ -1, 1, 243
};
static int parser_action_row689[] = {
- 5,
- -1, 1, 456,
- 12, 0, 716,
- 46, 0, 717,
- 95, 0, 48,
- 96, 0, 718
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row690[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row691[] = {
1,
- -1, 1, 363
+ -1, 1, 198
};
static int parser_action_row692[] = {
- 2,
- -1, 1, 442,
- 56, 0, 858
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row693[] = {
- 8,
- -1, 1, 435,
- 0, 1, 437,
- 1, 1, 437,
- 9, 1, 437,
- 24, 1, 437,
- 53, 1, 437,
- 56, 1, 437,
- 109, 1, 437
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row694[] = {
- 1,
- -1, 1, 690
+ 13,
+ -1, 1, 344,
+ 59, 0, 865,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row695[] = {
- 21,
- -1, 1, 456,
- 12, 0, 107,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 189
};
static int parser_action_row696[] = {
1,
- -1, 1, 689
+ -1, 1, 140
};
static int parser_action_row697[] = {
1,
- -1, 1, 692
+ -1, 1, 438
};
static int parser_action_row698[] = {
- 1,
- -1, 1, 703
+ 2,
+ -1, 3, 697,
+ 53, 0, 867
};
static int parser_action_row699[] = {
2,
- -1, 1, 705,
- 81, 0, 303
+ -1, 3, 698,
+ 23, 0, 868
};
static int parser_action_row700[] = {
- 2,
- -1, 1, 696,
- 80, 0, 295
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row701[] = {
- 2,
- -1, 1, 697,
- 80, 0, 295
+ 1,
+ -1, 1, 740
};
static int parser_action_row702[] = {
2,
- -1, 1, 698,
- 80, 0, 295
+ -1, 3, 701,
+ 73, 0, 699
};
static int parser_action_row703[] = {
- 2,
- -1, 1, 699,
- 80, 0, 295
+ 5,
+ -1, 1, 458,
+ 12, 0, 730,
+ 46, 0, 731,
+ 96, 0, 53,
+ 97, 0, 732
};
static int parser_action_row704[] = {
- 2,
- -1, 1, 700,
- 80, 0, 295
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row705[] = {
- 2,
- -1, 1, 701,
- 80, 0, 295
+ 1,
+ -1, 1, 367
};
static int parser_action_row706[] = {
2,
- -1, 1, 702,
- 80, 0, 295
+ -1, 1, 444,
+ 56, 0, 872
};
static int parser_action_row707[] = {
- 2,
- -1, 1, 707,
- 82, 0, 304
+ 9,
+ -1, 1, 437,
+ 0, 1, 439,
+ 1, 1, 439,
+ 9, 1, 439,
+ 24, 1, 439,
+ 53, 1, 439,
+ 56, 1, 439,
+ 95, 1, 439,
+ 110, 1, 439
};
static int parser_action_row708[] = {
- 3,
- -1, 1, 709,
- 88, 0, 305,
- 91, 0, 306
+ 1,
+ -1, 1, 702
};
static int parser_action_row709[] = {
- 3,
- -1, 1, 711,
- 74, 0, 307,
- 75, 0, 308
+ 21,
+ -1, 1, 458,
+ 12, 0, 116,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row710[] = {
- 3,
- -1, 1, 712,
- 74, 0, 307,
- 75, 0, 308
+ 1,
+ -1, 1, 701
};
static int parser_action_row711[] = {
- 4,
- -1, 1, 714,
- 76, 0, 309,
- 78, 0, 310,
- 79, 0, 311
+ 1,
+ -1, 1, 704
};
static int parser_action_row712[] = {
- 4,
- -1, 1, 715,
- 76, 0, 309,
- 78, 0, 310,
- 79, 0, 311
+ 1,
+ -1, 1, 715
};
static int parser_action_row713[] = {
- 1,
- -1, 1, 717
+ 2,
+ -1, 1, 717,
+ 81, 0, 315
};
static int parser_action_row714[] = {
- 1,
- -1, 1, 718
+ 2,
+ -1, 1, 708,
+ 80, 0, 307
};
static int parser_action_row715[] = {
- 1,
- -1, 1, 719
+ 2,
+ -1, 1, 709,
+ 80, 0, 307
};
static int parser_action_row716[] = {
- 1,
- -1, 1, 721
+ 2,
+ -1, 1, 710,
+ 80, 0, 307
};
static int parser_action_row717[] = {
2,
- -1, 1, 754,
- 52, 0, 265
+ -1, 1, 711,
+ 80, 0, 307
};
static int parser_action_row718[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 712,
+ 80, 0, 307
};
static int parser_action_row719[] = {
- 3,
- -1, 1, 736,
- 52, 0, 265,
- 58, 0, 206
+ 2,
+ -1, 1, 713,
+ 80, 0, 307
};
static int parser_action_row720[] = {
2,
- -1, 3, 719,
- 97, 0, 865
+ -1, 1, 714,
+ 80, 0, 307
};
static int parser_action_row721[] = {
2,
- -1, 1, 453,
- 96, 0, 866
+ -1, 1, 719,
+ 82, 0, 316
};
static int parser_action_row722[] = {
3,
- -1, 1, 455,
- 95, 0, 48,
- 96, 0, 867
+ -1, 1, 721,
+ 88, 0, 317,
+ 91, 0, 318
};
static int parser_action_row723[] = {
- 1,
- -1, 1, 747
+ 3,
+ -1, 1, 723,
+ 74, 0, 319,
+ 75, 0, 320
};
static int parser_action_row724[] = {
- 1,
- -1, 1, 162
+ 3,
+ -1, 1, 724,
+ 74, 0, 319,
+ 75, 0, 320
};
static int parser_action_row725[] = {
- 31,
- -1, 1, 456,
- 9, 0, 869,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 4,
+ -1, 1, 726,
+ 76, 0, 321,
+ 78, 0, 322,
+ 79, 0, 323
};
static int parser_action_row726[] = {
- 1,
- -1, 1, 152
+ 4,
+ -1, 1, 727,
+ 76, 0, 321,
+ 78, 0, 322,
+ 79, 0, 323
};
static int parser_action_row727[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 729
};
static int parser_action_row728[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 730
};
static int parser_action_row729[] = {
- 34,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 872,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 24, 0, 876,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 731
};
static int parser_action_row730[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 148,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 733
};
static int parser_action_row731[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 56, 0, 540
+ 2,
+ -1, 1, 766,
+ 52, 0, 277
};
static int parser_action_row732[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row733[] = {
- 2,
- -1, 3, 732,
- 96, 0, 909
+ 3,
+ -1, 1, 748,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row734[] = {
2,
-1, 3, 733,
- 23, 0, 910
+ 98, 0, 879
};
static int parser_action_row735[] = {
- 1,
- -1, 1, 321
+ 2,
+ -1, 1, 455,
+ 97, 0, 880
};
static int parser_action_row736[] = {
- 5,
- -1, 1, 456,
- 12, 0, 759,
- 46, 0, 656,
- 95, 0, 48,
- 96, 0, 760
+ 3,
+ -1, 1, 457,
+ 96, 0, 53,
+ 97, 0, 881
};
static int parser_action_row737[] = {
1,
- -1, 1, 283
+ -1, 1, 759
};
static int parser_action_row738[] = {
- 23,
- -1, 1, 456,
- 12, 0, 161,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 164
};
static int parser_action_row739[] = {
- 1,
- -1, 1, 282
+ 31,
+ -1, 1, 458,
+ 9, 0, 883,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row740[] = {
1,
- -1, 1, 285
+ -1, 1, 154
};
static int parser_action_row741[] = {
- 1,
- -1, 1, 296
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row742[] = {
- 2,
- -1, 1, 298,
- 81, 0, 354
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row743[] = {
- 2,
- -1, 1, 289,
- 80, 0, 346
+ 35,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 886,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 24, 0, 890,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row744[] = {
- 2,
- -1, 1, 290,
- 80, 0, 346
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 157,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row745[] = {
- 2,
- -1, 1, 291,
- 80, 0, 346
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 56, 0, 554
};
static int parser_action_row746[] = {
- 2,
- -1, 1, 292,
- 80, 0, 346
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row747[] = {
2,
- -1, 1, 293,
- 80, 0, 346
+ -1, 3, 746,
+ 97, 0, 923
};
static int parser_action_row748[] = {
2,
- -1, 1, 294,
- 80, 0, 346
+ -1, 3, 747,
+ 23, 0, 924
};
static int parser_action_row749[] = {
- 2,
- -1, 1, 295,
- 80, 0, 346
+ 1,
+ -1, 1, 325
};
static int parser_action_row750[] = {
- 2,
- -1, 1, 300,
- 82, 0, 355
+ 5,
+ -1, 1, 458,
+ 12, 0, 773,
+ 46, 0, 669,
+ 96, 0, 53,
+ 97, 0, 774
};
static int parser_action_row751[] = {
- 3,
- -1, 1, 302,
- 88, 0, 356,
- 91, 0, 357
+ 1,
+ -1, 1, 287
};
static int parser_action_row752[] = {
- 3,
- -1, 1, 304,
- 74, 0, 358,
- 75, 0, 359
+ 23,
+ -1, 1, 458,
+ 12, 0, 170,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row753[] = {
- 3,
- -1, 1, 305,
- 74, 0, 358,
- 75, 0, 359
+ 1,
+ -1, 1, 286
};
static int parser_action_row754[] = {
- 4,
- -1, 1, 307,
- 76, 0, 360,
- 78, 0, 361,
- 79, 0, 362
+ 1,
+ -1, 1, 289
};
static int parser_action_row755[] = {
- 4,
- -1, 1, 308,
- 76, 0, 360,
- 78, 0, 361,
- 79, 0, 362
-};
-static int parser_action_row756[] = {
1,
- -1, 1, 310
+ -1, 1, 300
};
-static int parser_action_row757[] = {
- 1,
- -1, 1, 311
+static int parser_action_row756[] = {
+ 2,
+ -1, 1, 302,
+ 81, 0, 366
+};
+static int parser_action_row757[] = {
+ 2,
+ -1, 1, 293,
+ 80, 0, 358
};
static int parser_action_row758[] = {
- 1,
- -1, 1, 312
+ 2,
+ -1, 1, 294,
+ 80, 0, 358
};
static int parser_action_row759[] = {
- 1,
- -1, 1, 314
+ 2,
+ -1, 1, 295,
+ 80, 0, 358
};
static int parser_action_row760[] = {
2,
- -1, 1, 347,
- 52, 0, 265
+ -1, 1, 296,
+ 80, 0, 358
};
static int parser_action_row761[] = {
- 3,
- -1, 1, 329,
- 52, 0, 265,
- 58, 0, 206
+ 2,
+ -1, 1, 297,
+ 80, 0, 358
};
static int parser_action_row762[] = {
2,
- -1, 3, 761,
- 97, 0, 914
+ -1, 1, 298,
+ 80, 0, 358
};
static int parser_action_row763[] = {
2,
- -1, 1, 453,
- 96, 0, 915
+ -1, 1, 299,
+ 80, 0, 358
};
static int parser_action_row764[] = {
- 3,
- -1, 1, 455,
- 95, 0, 48,
- 96, 0, 916
+ 2,
+ -1, 1, 304,
+ 82, 0, 367
};
static int parser_action_row765[] = {
- 1,
- -1, 1, 340
+ 3,
+ -1, 1, 306,
+ 88, 0, 368,
+ 91, 0, 369
};
static int parser_action_row766[] = {
- 1,
- -1, 1, 275
+ 3,
+ -1, 1, 308,
+ 74, 0, 370,
+ 75, 0, 371
};
static int parser_action_row767[] = {
- 1,
- -1, 1, 155
+ 3,
+ -1, 1, 309,
+ 74, 0, 370,
+ 75, 0, 371
};
static int parser_action_row768[] = {
- 1,
- -1, 1, 154
+ 4,
+ -1, 1, 311,
+ 76, 0, 372,
+ 78, 0, 373,
+ 79, 0, 374
};
static int parser_action_row769[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 4,
+ -1, 1, 312,
+ 76, 0, 372,
+ 78, 0, 373,
+ 79, 0, 374
};
static int parser_action_row770[] = {
1,
- -1, 1, 611
+ -1, 1, 314
};
static int parser_action_row771[] = {
- 3,
- -1, 3, 770,
- 47, 0, 384,
- 95, 0, 385
+ 1,
+ -1, 1, 315
};
static int parser_action_row772[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 316
};
static int parser_action_row773[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 1,
+ -1, 1, 318
};
static int parser_action_row774[] = {
- 1,
- -1, 1, 782
+ 2,
+ -1, 1, 351,
+ 52, 0, 277
};
static int parser_action_row775[] = {
3,
- -1, 3, 774,
- 95, 0, 48,
- 96, 0, 923
+ -1, 1, 333,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row776[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 2,
+ -1, 3, 775,
+ 98, 0, 928
};
static int parser_action_row777[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 455,
+ 97, 0, 929
};
static int parser_action_row778[] = {
- 2,
- -1, 1, 405,
- 56, 0, 928
+ 3,
+ -1, 1, 457,
+ 96, 0, 53,
+ 97, 0, 930
};
static int parser_action_row779[] = {
1,
- -1, 1, 434
+ -1, 1, 344
};
static int parser_action_row780[] = {
1,
- -1, 1, 433
+ -1, 1, 279
};
static int parser_action_row781[] = {
1,
- -1, 1, 432
+ -1, 1, 157
};
static int parser_action_row782[] = {
- 3,
- -1, 1, 401,
- 52, 0, 931,
- 94, 0, 195
+ 1,
+ -1, 1, 156
};
static int parser_action_row783[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row784[] = {
- 2,
- -1, 3, 783,
- 59, 0, 934
+ 1,
+ -1, 1, 623
};
static int parser_action_row785[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 148,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 784,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row786[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row787[] = {
- 1,
- -1, 1, 145
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row788[] = {
- 3,
- -1, 3, 787,
- 47, 0, 384,
- 95, 0, 385
+ 1,
+ -1, 1, 794
};
static int parser_action_row789[] = {
- 1,
- -1, 1, 198
+ 3,
+ -1, 3, 788,
+ 96, 0, 53,
+ 97, 0, 937
};
static int parser_action_row790[] = {
- 2,
- -1, 3, 789,
- 57, 0, 939
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row791[] = {
- 1,
- -1, 1, 507
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row792[] = {
- 25,
- -1, 1, 456,
- 12, 0, 759,
- 46, 0, 656,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 95, 0, 48,
- 96, 0, 940
+ 2,
+ -1, 1, 408,
+ 56, 0, 942
};
static int parser_action_row793[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 436
};
static int parser_action_row794[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 435
};
static int parser_action_row795[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 434
};
static int parser_action_row796[] = {
- 1,
- -1, 1, 1058
+ 3,
+ -1, 1, 405,
+ 52, 0, 945,
+ 94, 0, 204
};
static int parser_action_row797[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row798[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 797,
+ 59, 0, 948
};
static int parser_action_row799[] = {
- 14,
- -1, 1, 341,
- 52, 0, 265,
- 59, 0, 947,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 157,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row800[] = {
- 1,
- -1, 1, 510
-};
-static int parser_action_row801[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row801[] = {
+ 1,
+ -1, 1, 147
+};
static int parser_action_row802[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 801,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row803[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 200
};
static int parser_action_row804[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 803,
+ 57, 0, 953
};
static int parser_action_row805[] = {
- 25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 434,
- 27, 0, 435,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 519
};
static int parser_action_row806[] = {
- 1,
- -1, 1, 1060
+ 25,
+ -1, 1, 458,
+ 12, 0, 773,
+ 46, 0, 669,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 96, 0, 53,
+ 97, 0, 954
};
static int parser_action_row807[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row808[] = {
- 2,
- -1, 1, 449,
- 58, 0, 206
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row809[] = {
2,
- -1, 1, 76,
- 14, 0, 955
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row810[] = {
- 2,
- -1, 3, 809,
- 96, 0, 957
+ 1,
+ -1, 1, 1075
};
static int parser_action_row811[] = {
- 3,
- -1, 3, 810,
- 0, 0, 83,
- 1, 0, 84
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row812[] = {
- 2,
- -1, 1, 76,
- 14, 0, 955
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row813[] = {
- 2,
- -1, 1, 102,
- 59, 0, 960
+ 14,
+ -1, 1, 345,
+ 52, 0, 277,
+ 59, 0, 961,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row814[] = {
1,
- -1, 1, 104
+ -1, 1, 522
};
static int parser_action_row815[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row816[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row817[] = {
- 4,
- -1, 1, 122,
- 4, 0, 963,
- 14, 0, 964,
- 15, 0, 965
-};
-static int parser_action_row818[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row818[] = {
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
+};
static int parser_action_row819[] = {
- 1,
- -1, 1, 110
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 446,
+ 27, 0, 447,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row820[] = {
- 2,
- -1, 1, 106,
- 59, 0, 813
+ 1,
+ -1, 1, 1077
};
static int parser_action_row821[] = {
- 1,
- -1, 1, 462
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row822[] = {
- 1,
- -1, 1, 464
+ 2,
+ -1, 1, 451,
+ 58, 0, 215
};
static int parser_action_row823[] = {
- 22,
- -1, 3, 822,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 96, 0, 819
+ 2,
+ -1, 1, 78,
+ 14, 0, 969
};
static int parser_action_row824[] = {
2,
- -1, 1, 457,
- 58, 0, 205
+ -1, 3, 823,
+ 97, 0, 971
};
static int parser_action_row825[] = {
- 2,
+ 4,
-1, 3, 824,
- 58, 0, 206
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row826[] = {
2,
- -1, 1, 37,
- 54, 0, 971
+ -1, 1, 78,
+ 14, 0, 969
};
static int parser_action_row827[] = {
2,
- -1, 3, 826,
- 95, 0, 973
+ -1, 1, 104,
+ 59, 0, 974
};
static int parser_action_row828[] = {
- 3,
- -1, 3, 827,
- 95, 0, 974,
- 96, 0, 824
+ 1,
+ -1, 1, 106
};
static int parser_action_row829[] = {
- 1,
- -1, 1, 441
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row830[] = {
- 1,
- -1, 1, 346
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row831[] = {
- 1,
- -1, 1, 190
+ 4,
+ -1, 1, 124,
+ 4, 0, 977,
+ 14, 0, 978,
+ 15, 0, 979
};
static int parser_action_row832[] = {
3,
- -1, 3, 831,
- 31, 0, 976,
- 52, 0, 977
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row833[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 112
};
static int parser_action_row834[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 108,
+ 59, 0, 827
};
static int parser_action_row835[] = {
- 13,
- -1, 1, 328,
- 59, 0, 980,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 464
};
static int parser_action_row836[] = {
1,
- -1, 1, 181
+ -1, 1, 466
};
static int parser_action_row837[] = {
- 13,
- -1, 1, 326,
- 59, 0, 982,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 22,
+ -1, 3, 836,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 97, 0, 833
};
static int parser_action_row838[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 459,
+ 58, 0, 214
};
static int parser_action_row839[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 331,
- 59, 0, 985,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 331,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 838,
+ 58, 0, 215
};
static int parser_action_row840[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 7,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 28, 0, 84,
+ 54, 0, 985,
+ 95, 0, 3,
+ 109, 0, 85
};
static int parser_action_row841[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 335,
- 58, 0, 206,
- 59, 0, 990,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 335,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 840,
+ 96, 0, 995
};
static int parser_action_row842[] = {
3,
- -1, 1, 454,
- 12, 0, 994,
- 96, 0, 995
+ -1, 3, 841,
+ 96, 0, 996,
+ 97, 0, 838
};
static int parser_action_row843[] = {
1,
- -1, 1, 394
+ -1, 1, 443
};
static int parser_action_row844[] = {
1,
- -1, 1, 439
+ -1, 1, 350
};
static int parser_action_row845[] = {
- 2,
- -1, 3, 844,
- 53, 0, 996
+ 1,
+ -1, 1, 192
};
static int parser_action_row846[] = {
- 1,
- -1, 1, 217
+ 3,
+ -1, 3, 845,
+ 31, 0, 998,
+ 52, 0, 999
};
static int parser_action_row847[] = {
- 1,
- -1, 1, 236
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row848[] = {
- 1,
- -1, 1, 221
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row849[] = {
- 1,
- -1, 1, 240
+ 13,
+ -1, 1, 332,
+ 59, 0, 1002,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row850[] = {
1,
- -1, 1, 220
+ -1, 1, 183
};
static int parser_action_row851[] = {
- 1,
- -1, 1, 239
+ 13,
+ -1, 1, 330,
+ 59, 0, 1004,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row852[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row853[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 335,
+ 59, 0, 1007,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 335,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row854[] = {
- 1,
- -1, 1, 435
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row855[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 339,
+ 58, 0, 215,
+ 59, 0, 1012,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 339,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row856[] = {
3,
- -1, 3, 855,
- 95, 0, 48,
- 96, 0, 1000
+ -1, 1, 456,
+ 12, 0, 1016,
+ 97, 0, 1017
};
static int parser_action_row857[] = {
- 2,
- -1, 3, 856,
- 97, 0, 1003
+ 1,
+ -1, 1, 398
};
static int parser_action_row858[] = {
1,
- -1, 1, 364
+ -1, 1, 441
};
static int parser_action_row859[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 858,
+ 53, 0, 1018
};
static int parser_action_row860[] = {
1,
- -1, 1, 1069
+ -1, 1, 219
};
static int parser_action_row861[] = {
- 2,
- -1, 1, 443,
- 56, 0, 858
+ 1,
+ -1, 1, 238
};
static int parser_action_row862[] = {
1,
- -1, 1, 691
+ -1, 1, 223
};
static int parser_action_row863[] = {
1,
- -1, 1, 753
+ -1, 1, 242
};
static int parser_action_row864[] = {
- 3,
- -1, 3, 863,
- 31, 0, 1006,
- 52, 0, 1007
+ 1,
+ -1, 1, 222
};
static int parser_action_row865[] = {
1,
- -1, 1, 735
+ -1, 1, 241
};
static int parser_action_row866[] = {
- 1,
- -1, 1, 733
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row867[] = {
- 2,
- -1, 1, 738,
- 52, 0, 265
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row868[] = {
- 3,
- -1, 1, 742,
- 52, 0, 265,
- 58, 0, 206
+ 1,
+ -1, 1, 437
};
static int parser_action_row869[] = {
- 2,
- -1, 1, 454,
- 96, 0, 1010
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row870[] = {
- 1,
- -1, 1, 163
+ 3,
+ -1, 3, 869,
+ 96, 0, 53,
+ 97, 0, 1022
};
static int parser_action_row871[] = {
- 1,
- -1, 1, 203
+ 2,
+ -1, 3, 870,
+ 98, 0, 1025
};
static int parser_action_row872[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 368
};
static int parser_action_row873[] = {
- 1,
- -1, 1, 262
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row874[] = {
- 27,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 349,
- 73, 1, 349,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 1084
};
static int parser_action_row875[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1013,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 445,
+ 56, 0, 872
};
static int parser_action_row876[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 703
};
static int parser_action_row877[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 765
};
static int parser_action_row878[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 877,
+ 31, 0, 1028,
+ 52, 0, 1029
};
static int parser_action_row879[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1013,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 747
};
static int parser_action_row880[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 745
};
static int parser_action_row881[] = {
- 27,
- -1, 1, 167,
- 12, 0, 161,
- 22, 0, 162,
- 24, 1, 888,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 750,
+ 52, 0, 277
};
static int parser_action_row882[] = {
3,
- -1, 1, 172,
- 24, 1, 893,
- 49, 0, 188
+ -1, 1, 754,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row883[] = {
- 3,
- -1, 1, 169,
- 24, 1, 890,
- 49, 0, 188
+ 2,
+ -1, 1, 456,
+ 97, 0, 1032
};
static int parser_action_row884[] = {
- 2,
- -1, 1, 171,
- 24, 1, 892
+ 1,
+ -1, 1, 165
};
static int parser_action_row885[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 191,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 205
};
static int parser_action_row886[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row887[] = {
- 2,
- -1, 3, 886,
- 11, 0, 1030
+ 1,
+ -1, 1, 266
};
static int parser_action_row888[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 337,
- 58, 0, 206,
- 59, 0, 207,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 337,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 27,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 353,
+ 73, 1, 353,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row889[] = {
- 1,
- -1, 1, 257
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1035,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row890[] = {
- 2,
- -1, 1, 165,
- 24, 1, 886
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row891[] = {
- 2,
- -1, 1, 166,
- 24, 1, 887
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row892[] = {
- 1,
- -1, 1, 259
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row893[] = {
- 3,
- -1, 3, 892,
- 54, 0, 236,
- 73, 0, 1032
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1035,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row894[] = {
3,
- -1, 3, 893,
- 41, 0, 1033,
- 97, 0, 247
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row895[] = {
- 3,
- -1, 1, 453,
- 12, 0, 1034,
- 96, 0, 1035
+ 27,
+ -1, 1, 169,
+ 12, 0, 170,
+ 22, 0, 171,
+ 24, 1, 900,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row896[] = {
- 32,
- -1, 1, 456,
- 9, 0, 872,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 24, 0, 876,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 174,
+ 24, 1, 905,
+ 49, 0, 197
};
static int parser_action_row897[] = {
- 2,
- -1, 3, 896,
- 24, 0, 1039
+ 3,
+ -1, 1, 171,
+ 24, 1, 902,
+ 49, 0, 197
};
static int parser_action_row898[] = {
- 1,
- -1, 1, 895
+ 2,
+ -1, 1, 173,
+ 24, 1, 904
};
static int parser_action_row899[] = {
- 1,
- -1, 1, 896
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 200,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row900[] = {
- 1,
- -1, 1, 898
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row901[] = {
- 1,
- -1, 1, 897
+ 2,
+ -1, 3, 900,
+ 11, 0, 1052
};
static int parser_action_row902[] = {
- 1,
- -1, 1, 899
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 341,
+ 58, 0, 215,
+ 59, 0, 216,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 341,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row903[] = {
1,
- -1, 1, 900
+ -1, 1, 259
};
static int parser_action_row904[] = {
- 1,
- -1, 1, 901
+ 2,
+ -1, 1, 167,
+ 24, 1, 898
};
static int parser_action_row905[] = {
- 4,
- -1, 1, 455,
- 12, 0, 1040,
- 95, 0, 48,
- 96, 0, 1041
+ 2,
+ -1, 1, 168,
+ 24, 1, 899
};
static int parser_action_row906[] = {
1,
- -1, 1, 266
+ -1, 1, 264
};
static int parser_action_row907[] = {
- 2,
+ 3,
-1, 3, 906,
- 49, 0, 188
+ 54, 0, 244,
+ 73, 0, 1054
};
static int parser_action_row908[] = {
- 2,
+ 3,
-1, 3, 907,
- 53, 0, 1044
+ 41, 0, 1055,
+ 98, 0, 255
};
static int parser_action_row909[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 455,
+ 12, 0, 1056,
+ 97, 0, 1057
};
static int parser_action_row910[] = {
- 1,
- -1, 1, 448
+ 32,
+ -1, 1, 458,
+ 9, 0, 886,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 24, 0, 1058,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row911[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 910,
+ 24, 0, 1062
};
static int parser_action_row912[] = {
- 2,
- -1, 3, 911,
- 97, 0, 1047
+ 1,
+ -1, 1, 907
};
static int parser_action_row913[] = {
1,
- -1, 1, 284
+ -1, 1, 908
};
static int parser_action_row914[] = {
1,
- -1, 1, 328
+ -1, 1, 910
};
static int parser_action_row915[] = {
1,
- -1, 1, 326
+ -1, 1, 909
};
static int parser_action_row916[] = {
- 2,
- -1, 1, 331,
- 52, 0, 265
+ 1,
+ -1, 1, 911
};
static int parser_action_row917[] = {
- 3,
- -1, 1, 335,
- 52, 0, 265,
- 58, 0, 206
+ 1,
+ -1, 1, 912
};
static int parser_action_row918[] = {
- 2,
- -1, 1, 454,
- 96, 0, 1050
+ 1,
+ -1, 1, 913
};
static int parser_action_row919[] = {
- 3,
- -1, 3, 918,
- 47, 0, 384,
- 95, 0, 385
+ 4,
+ -1, 1, 457,
+ 12, 0, 1063,
+ 96, 0, 53,
+ 97, 0, 1064
};
static int parser_action_row920[] = {
- 2,
- -1, 1, 148,
- 56, 0, 1052
+ 1,
+ -1, 1, 270
};
static int parser_action_row921[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 920,
+ 49, 0, 197
};
static int parser_action_row922[] = {
2,
- -1, 1, 28,
- 13, 0, 26
+ -1, 3, 921,
+ 53, 0, 1067
};
static int parser_action_row923[] = {
- 4,
- -1, 3, 922,
- 6, 0, 778,
- 17, 0, 779,
- 96, 0, 780
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row924[] = {
- 3,
- -1, 1, 352,
- 52, 0, 265,
- 58, 0, 206
+ 1,
+ -1, 1, 450
};
static int parser_action_row925[] = {
- 2,
- -1, 3, 924,
- 96, 0, 1059
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row926[] = {
- 3,
+ 2,
-1, 3, 925,
- 95, 0, 48,
- 96, 0, 1060
+ 98, 0, 1070
};
static int parser_action_row927[] = {
- 4,
- -1, 3, 926,
- 6, 0, 778,
- 17, 0, 779,
- 96, 0, 780
+ 1,
+ -1, 1, 288
};
static int parser_action_row928[] = {
- 2,
- -1, 3, 927,
- 53, 0, 1063
+ 1,
+ -1, 1, 332
};
static int parser_action_row929[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 330
};
static int parser_action_row930[] = {
- 1,
- -1, 1, 1063
+ 2,
+ -1, 1, 335,
+ 52, 0, 277
};
static int parser_action_row931[] = {
- 2,
- -1, 1, 406,
- 56, 0, 928
+ 3,
+ -1, 1, 339,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row932[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 456,
+ 97, 0, 1073
};
static int parser_action_row933[] = {
- 1,
- -1, 1, 402
+ 3,
+ -1, 3, 932,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row934[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 150,
+ 56, 0, 1075
};
static int parser_action_row935[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row936[] = {
- 1,
- -1, 1, 270
+ 2,
+ -1, 1, 30,
+ 13, 0, 32
};
static int parser_action_row937[] = {
- 2,
+ 4,
-1, 3, 936,
- 49, 0, 188
+ 6, 0, 792,
+ 17, 0, 793,
+ 97, 0, 794
};
static int parser_action_row938[] = {
3,
- -1, 3, 937,
- 47, 0, 384,
- 95, 0, 385
+ -1, 1, 356,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row939[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 938,
+ 97, 0, 1082
};
static int parser_action_row940[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 939,
+ 96, 0, 53,
+ 97, 0, 1083
};
static int parser_action_row941[] = {
- 15,
- -1, 1, 329,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 1073,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 4,
+ -1, 3, 940,
+ 6, 0, 792,
+ 17, 0, 793,
+ 97, 0, 794
};
static int parser_action_row942[] = {
- 22,
- -1, 1, 453,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 1074
+ 2,
+ -1, 3, 941,
+ 53, 0, 1086
};
static int parser_action_row943[] = {
- 1,
- -1, 1, 429
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row944[] = {
- 23,
- -1, 1, 455,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 95, 0, 48,
- 96, 0, 1075
+ 1,
+ -1, 1, 1080
};
static int parser_action_row945[] = {
- 1,
- -1, 1, 380
+ 2,
+ -1, 1, 409,
+ 56, 0, 942
};
static int parser_action_row946[] = {
- 1,
- -1, 1, 382
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row947[] = {
1,
- -1, 1, 379
+ -1, 1, 406
};
static int parser_action_row948[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row949[] = {
- 2,
- -1, 3, 948,
- 23, 0, 1077
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row950[] = {
- 2,
- -1, 3, 949,
- 28, 0, 1078
+ 1,
+ -1, 1, 274
};
static int parser_action_row951[] = {
- 23,
- -1, 1, 456,
- 12, 0, 1079,
- 22, 0, 1080,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 3, 950,
+ 49, 0, 197
};
static int parser_action_row952[] = {
- 1,
- -1, 1, 378
+ 3,
+ -1, 3, 951,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row953[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row954[] = {
- 1,
- -1, 1, 385
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row955[] = {
- 2,
- -1, 3, 954,
- 96, 0, 1119
+ 15,
+ -1, 1, 333,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 1096,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row956[] = {
- 4,
- -1, 1, 28,
- 0, 0, 83,
- 1, 0, 84,
- 13, 0, 26
+ 22,
+ -1, 1, 455,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 1097
};
static int parser_action_row957[] = {
- 3,
- -1, 3, 956,
- 0, 0, 83,
- 1, 0, 84
+ 1,
+ -1, 1, 431
};
static int parser_action_row958[] = {
- 2,
- -1, 1, 450,
- 58, 0, 206
+ 23,
+ -1, 1, 457,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 96, 0, 53,
+ 97, 0, 1098
};
static int parser_action_row959[] = {
1,
- -1, 1, 18
+ -1, 1, 384
};
static int parser_action_row960[] = {
- 3,
- -1, 3, 959,
- 0, 0, 83,
- 1, 0, 84
+ 1,
+ -1, 1, 386
};
static int parser_action_row961[] = {
1,
- -1, 1, 105
+ -1, 1, 383
};
static int parser_action_row962[] = {
- 2,
- -1, 1, 113,
- 96, 0, 1126
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row963[] = {
- 3,
+ 2,
-1, 3, 962,
- 47, 0, 384,
- 95, 0, 385
+ 23, 0, 1100
};
static int parser_action_row964[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 963,
+ 28, 0, 1101
};
static int parser_action_row965[] = {
- 4,
- -1, 1, 28,
- 0, 0, 83,
- 1, 0, 84,
- 13, 0, 26
+ 23,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 22, 0, 1103,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row966[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 382
};
static int parser_action_row967[] = {
3,
- -1, 1, 122,
- 4, 0, 963,
- 15, 0, 1134
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row968[] = {
- 3,
- -1, 3, 967,
- 28, 0, 33,
- 108, 0, 56
+ 1,
+ -1, 1, 389
};
static int parser_action_row969[] = {
- 1,
- -1, 1, 481
+ 2,
+ -1, 3, 968,
+ 97, 0, 1142
};
static int parser_action_row970[] = {
- 1,
- -1, 1, 109
+ 5,
+ -1, 1, 30,
+ 0, 0, 88,
+ 1, 0, 89,
+ 13, 0, 32,
+ 95, 0, 90
};
static int parser_action_row971[] = {
- 1,
- -1, 1, 463
+ 4,
+ -1, 3, 970,
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row972[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 452,
+ 58, 0, 215
};
static int parser_action_row973[] = {
- 5,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 28, 0, 33,
- 108, 0, 56
+ 1,
+ -1, 1, 18
};
static int parser_action_row974[] = {
- 1,
- -1, 1, 458
+ 4,
+ -1, 3, 973,
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row975[] = {
- 2,
- -1, 1, 460,
- 58, 0, 205
+ 1,
+ -1, 1, 107
};
static int parser_action_row976[] = {
2,
- -1, 3, 975,
- 95, 0, 1146
+ -1, 1, 115,
+ 97, 0, 1148
};
static int parser_action_row977[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 976,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row978[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row979[] = {
- 1,
- -1, 1, 208
+ 5,
+ -1, 1, 30,
+ 0, 0, 88,
+ 1, 0, 89,
+ 13, 0, 32,
+ 95, 0, 90
};
static int parser_action_row980[] = {
- 1,
- -1, 1, 227
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row981[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 124,
+ 4, 0, 977,
+ 15, 0, 1156
};
static int parser_action_row982[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 981,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row983[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 493
};
static int parser_action_row984[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 111
};
static int parser_action_row985[] = {
1,
- -1, 1, 192
+ -1, 1, 465
};
static int parser_action_row986[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row987[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 75,
+ 9, 1, 45
};
static int parser_action_row988[] = {
- 13,
- -1, 1, 330,
- 59, 0, 1155,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 2,
+ -1, 3, 987,
+ 9, 0, 1160
};
static int parser_action_row989[] = {
1,
- -1, 1, 182
+ -1, 1, 1062
};
static int parser_action_row990[] = {
- 1,
- -1, 1, 194
+ 4,
+ -1, 3, 989,
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row991[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 4,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row992[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 74
};
static int parser_action_row993[] = {
- 13,
- -1, 1, 334,
- 59, 0, 1159,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 486
};
static int parser_action_row994[] = {
- 1,
- -1, 1, 184
+ 5,
+ -1, 1, 30,
+ 6, 0, 1163,
+ 9, 1, 46,
+ 13, 0, 32,
+ 97, 0, 1164
};
static int parser_action_row995[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 1, 487,
+ 95, 0, 3
};
static int parser_action_row996[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 333,
- 59, 0, 1162,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 333,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 460
};
static int parser_action_row997[] = {
- 1,
- -1, 1, 437
+ 2,
+ -1, 1, 462,
+ 58, 0, 214
};
static int parser_action_row998[] = {
- 1,
- -1, 1, 219
+ 2,
+ -1, 3, 997,
+ 96, 0, 1171
};
static int parser_action_row999[] = {
- 1,
- -1, 1, 238
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1000[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1001[] = {
- 3,
- -1, 1, 759,
- 52, 0, 265,
- 58, 0, 206
+ 1,
+ -1, 1, 210
};
static int parser_action_row1002[] = {
- 2,
- -1, 3, 1001,
- 96, 0, 1168
+ 1,
+ -1, 1, 229
};
static int parser_action_row1003[] = {
- 3,
- -1, 3, 1002,
- 95, 0, 48,
- 96, 0, 1169
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1004[] = {
- 3,
- -1, 1, 730,
- 54, 1, 733,
- 73, 1, 733
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1005[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 499,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1006[] = {
- 1,
- -1, 1, 1070
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1007[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 194
};
static int parser_action_row1008[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1009[] = {
- 1,
- -1, 1, 737
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1010[] = {
- 1,
- -1, 1, 741
+ 13,
+ -1, 1, 334,
+ 59, 0, 1180,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1011[] = {
- 2,
- -1, 1, 740,
- 52, 0, 265
+ 1,
+ -1, 1, 184
};
static int parser_action_row1012[] = {
1,
- -1, 1, 204
+ -1, 1, 196
};
static int parser_action_row1013[] = {
- 2,
- -1, 1, 191,
- 24, 1, 912
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1014[] = {
- 3,
- -1, 1, 156,
- 24, 1, 884,
- 49, 1, 969
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1015[] = {
- 31,
- -1, 1, 456,
- 9, 0, 1175,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 13,
+ -1, 1, 338,
+ 59, 0, 1184,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1016[] = {
1,
- -1, 1, 921
+ -1, 1, 186
};
static int parser_action_row1017[] = {
- 1,
- -1, 1, 885
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1018[] = {
- 2,
- -1, 3, 1017,
- 49, 0, 188
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 337,
+ 59, 0, 1187,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 337,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1019[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 439
};
static int parser_action_row1020[] = {
1,
- -1, 1, 261
+ -1, 1, 221
};
static int parser_action_row1021[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 240
};
static int parser_action_row1022[] = {
- 1,
- -1, 1, 924
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1023[] = {
- 2,
- -1, 3, 1022,
- 49, 0, 188
+ 3,
+ -1, 1, 771,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1024[] = {
- 3,
+ 2,
-1, 3, 1023,
- 52, 0, 327,
- 96, 0, 328
+ 97, 0, 1193
};
static int parser_action_row1025[] = {
- 2,
- -1, 1, 168,
- 24, 1, 889
+ 3,
+ -1, 3, 1024,
+ 96, 0, 53,
+ 97, 0, 1194
};
static int parser_action_row1026[] = {
- 2,
- -1, 1, 173,
- 24, 1, 894
+ 3,
+ -1, 1, 742,
+ 54, 1, 745,
+ 73, 1, 745
};
static int parser_action_row1027[] = {
- 2,
- -1, 1, 170,
- 24, 1, 891
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 513,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1028[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1085
};
static int parser_action_row1029[] = {
- 2,
- -1, 1, 276,
- 24, 0, 1183
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1030[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 381,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1031[] = {
- 3,
- -1, 3, 1030,
- 47, 0, 384,
- 95, 0, 385
+ 1,
+ -1, 1, 749
};
static int parser_action_row1032[] = {
- 2,
- -1, 1, 185,
- 24, 1, 906
+ 1,
+ -1, 1, 753
};
static int parser_action_row1033[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 752,
+ 52, 0, 277
};
static int parser_action_row1034[] = {
- 27,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 345,
- 73, 1, 345,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 206
};
static int parser_action_row1035[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 193,
+ 24, 1, 924
};
static int parser_action_row1036[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 339,
- 59, 0, 476,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 339,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 158,
+ 24, 1, 896,
+ 49, 1, 981
};
static int parser_action_row1037[] = {
- 3,
- -1, 3, 1036,
- 9, 0, 872,
- 24, 0, 876
+ 31,
+ -1, 1, 458,
+ 9, 0, 1200,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1038[] = {
- 3,
- -1, 3, 1037,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 933
};
static int parser_action_row1039[] = {
1,
- -1, 1, 260
+ -1, 1, 897
};
static int parser_action_row1040[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1039,
+ 49, 0, 197
};
static int parser_action_row1041[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1042[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 343,
- 58, 0, 206,
- 59, 0, 481,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 343,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 261
};
static int parser_action_row1043[] = {
- 3,
- -1, 1, 454,
- 12, 0, 1195,
- 96, 0, 1196
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1044[] = {
1,
- -1, 1, 265
+ -1, 1, 936
};
static int parser_action_row1045[] = {
- 1,
- -1, 1, 445
+ 2,
+ -1, 3, 1044,
+ 49, 0, 197
};
static int parser_action_row1046[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1045,
+ 52, 0, 340,
+ 97, 0, 341
};
static int parser_action_row1047[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 170,
+ 24, 1, 901
};
static int parser_action_row1048[] = {
- 3,
- -1, 1, 323,
- 54, 1, 326,
- 73, 1, 326
+ 2,
+ -1, 1, 175,
+ 24, 1, 906
};
static int parser_action_row1049[] = {
- 1,
- -1, 1, 330
+ 2,
+ -1, 1, 172,
+ 24, 1, 903
};
static int parser_action_row1050[] = {
- 1,
- -1, 1, 334
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1051[] = {
2,
- -1, 1, 333,
- 52, 0, 265
+ -1, 1, 280,
+ 24, 0, 1208
};
static int parser_action_row1052[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 393,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1053[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1052,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1054[] = {
- 1,
- -1, 1, 1053
+ 2,
+ -1, 1, 187,
+ 24, 1, 918
};
static int parser_action_row1055[] = {
- 2,
- -1, 1, 149,
- 56, 0, 1052
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1056[] = {
- 2,
- -1, 3, 1055,
- 55, 0, 1203
+ 27,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 349,
+ 73, 1, 349,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1057[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1058[] = {
- 2,
- -1, 1, 785,
- 94, 0, 581
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 343,
+ 59, 0, 488,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 343,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1059[] = {
- 1,
- -1, 1, 351
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1060[] = {
- 2,
- -1, 1, 354,
- 52, 0, 265
+ 3,
+ -1, 3, 1059,
+ 9, 0, 886,
+ 24, 0, 1216
};
static int parser_action_row1061[] = {
- 3,
- -1, 1, 358,
- 52, 0, 265,
- 58, 0, 206
+ 4,
+ -1, 3, 1060,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1062[] = {
- 2,
- -1, 3, 1061,
- 96, 0, 1208
+ 1,
+ -1, 1, 265
};
static int parser_action_row1063[] = {
- 13,
- -1, 1, 401,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 52, 0, 1209,
- 94, 0, 195,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1064[] = {
- 1,
- -1, 1, 399
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1065[] = {
- 2,
- -1, 1, 28,
- 13, 0, 26
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 347,
+ 58, 0, 215,
+ 59, 0, 493,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 347,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1066[] = {
- 1,
- -1, 1, 1064
+ 3,
+ -1, 1, 456,
+ 12, 0, 1222,
+ 97, 0, 1223
};
static int parser_action_row1067[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 269
};
static int parser_action_row1068[] = {
1,
- -1, 1, 271
+ -1, 1, 447
};
static int parser_action_row1069[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1070[] = {
- 1,
- -1, 1, 269
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1071[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 327,
+ 54, 1, 330,
+ 73, 1, 330
};
static int parser_action_row1072[] = {
- 2,
- -1, 3, 1071,
- 55, 0, 1218
+ 1,
+ -1, 1, 334
};
static int parser_action_row1073[] = {
1,
- -1, 1, 988
+ -1, 1, 338
};
static int parser_action_row1074[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 337,
+ 52, 0, 277
};
static int parser_action_row1075[] = {
- 14,
- -1, 1, 331,
- 52, 0, 265,
- 59, 0, 1219,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
-};
-static int parser_action_row1076[] = {
- 15,
- -1, 1, 335,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 1220,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
-};
-static int parser_action_row1077[] = {
- 22,
- -1, 1, 454,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 1221
-};
-static int parser_action_row1078[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1079[] = {
+static int parser_action_row1076[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1080[] = {
+static int parser_action_row1077[] = {
+ 1,
+ -1, 1, 1070
+};
+static int parser_action_row1078[] = {
2,
- -1, 1, 584,
- 52, 0, 265
+ -1, 1, 151,
+ 56, 0, 1075
};
-static int parser_action_row1081[] = {
+static int parser_action_row1079[] = {
+ 2,
+ -1, 3, 1078,
+ 55, 0, 1230
+};
+static int parser_action_row1080[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row1081[] = {
+ 2,
+ -1, 1, 797,
+ 94, 0, 594
+};
static int parser_action_row1082[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 355
};
static int parser_action_row1083[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 358,
+ 52, 0, 277
};
static int parser_action_row1084[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 362,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1085[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 1084,
+ 97, 0, 1235
};
static int parser_action_row1086[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 13,
+ -1, 1, 405,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 52, 0, 1236,
+ 94, 0, 204,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1087[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 403
};
static int parser_action_row1088[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 1, 30,
+ 13, 0, 32
};
static int parser_action_row1089[] = {
- 16,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1233,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 52, 0, 46,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 1081
};
static int parser_action_row1090[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1091[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 275
};
static int parser_action_row1092[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1093[] = {
- 3,
- -1, 1, 566,
- 52, 0, 265,
- 58, 0, 206
+ 1,
+ -1, 1, 273
};
static int parser_action_row1094[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1095[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 1094,
+ 55, 0, 1245
};
static int parser_action_row1096[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 1000
};
static int parser_action_row1097[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1098[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 14,
+ -1, 1, 335,
+ 52, 0, 277,
+ 59, 0, 1246,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1099[] = {
- 1,
- -1, 1, 609
+ 15,
+ -1, 1, 339,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 1247,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1100[] = {
- 1,
- -1, 1, 608
+ 22,
+ -1, 1, 456,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 1248
};
static int parser_action_row1101[] = {
3,
- -1, 3, 1100,
- 41, 0, 1245,
- 97, 0, 1246
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1102[] = {
- 2,
- -1, 1, 453,
- 96, 0, 1247
-};
-static int parser_action_row1103[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row1103[] = {
+ 2,
+ -1, 1, 596,
+ 52, 0, 277
+};
static int parser_action_row1104[] = {
- 4,
- -1, 1, 514,
- 29, 0, 1249,
- 30, 0, 1250,
- 32, 0, 1251
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1105[] = {
- 1,
- -1, 1, 516
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1106[] = {
- 1,
- -1, 1, 521
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1107[] = {
- 10,
- -1, 1, 523,
- 39, 0, 1252,
- 80, 0, 1253,
- 84, 0, 1254,
- 85, 0, 1255,
- 86, 0, 1256,
- 87, 0, 1257,
- 89, 0, 1258,
- 90, 0, 1259,
- 92, 0, 1260
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1108[] = {
2,
- -1, 1, 532,
- 81, 0, 1261
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1109[] = {
2,
- -1, 1, 534,
- 82, 0, 1262
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1110[] = {
- 3,
- -1, 1, 536,
- 88, 0, 1263,
- 91, 0, 1264
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1111[] = {
- 3,
- -1, 1, 538,
- 74, 0, 1265,
- 75, 0, 1266
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1112[] = {
- 4,
- -1, 1, 541,
- 76, 0, 1267,
- 78, 0, 1268,
- 79, 0, 1269
+ 16,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1260,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 52, 0, 51,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1113[] = {
- 1,
- -1, 1, 544
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1114[] = {
- 2,
- -1, 1, 548,
- 77, 0, 1270
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1115[] = {
- 1,
- -1, 1, 550
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1116[] = {
- 2,
- -1, 1, 555,
- 73, 0, 1271
+ 3,
+ -1, 1, 578,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1117[] = {
- 1,
- -1, 1, 560
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1118[] = {
- 3,
- -1, 1, 455,
- 95, 0, 48,
- 96, 0, 1272
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1119[] = {
- 1,
- -1, 1, 386
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1120[] = {
2,
- -1, 1, 451,
- 58, 0, 206
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1121[] = {
2,
- -1, 3, 1120,
- 96, 0, 1274
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1122[] = {
1,
- -1, 1, 74
+ -1, 1, 621
};
static int parser_action_row1123[] = {
1,
- -1, 1, 404
+ -1, 1, 620
};
static int parser_action_row1124[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1123,
+ 41, 0, 1272,
+ 98, 0, 1273
};
static int parser_action_row1125[] = {
- 1,
- -1, 1, 16
+ 2,
+ -1, 1, 455,
+ 97, 0, 1274
};
static int parser_action_row1126[] = {
- 1,
- -1, 1, 17
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1127[] = {
- 3,
- -1, 1, 401,
- 57, 0, 815,
- 94, 0, 195
+ 4,
+ -1, 1, 526,
+ 29, 0, 1276,
+ 30, 0, 1277,
+ 32, 0, 1278
};
static int parser_action_row1128[] = {
- 2,
- -1, 3, 1127,
- 53, 0, 1282
+ 1,
+ -1, 1, 528
};
static int parser_action_row1129[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 56, 0, 1283
+ 1,
+ -1, 1, 533
};
static int parser_action_row1130[] = {
- 1,
- -1, 1, 151
+ 10,
+ -1, 1, 535,
+ 39, 0, 1279,
+ 80, 0, 1280,
+ 84, 0, 1281,
+ 85, 0, 1282,
+ 86, 0, 1283,
+ 87, 0, 1284,
+ 89, 0, 1285,
+ 90, 0, 1286,
+ 92, 0, 1287
};
static int parser_action_row1131[] = {
- 25,
- -1, 3, 1130,
- 41, 0, 1287,
- 47, 0, 384,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 412,
- 96, 0, 647
+ 2,
+ -1, 1, 544,
+ 81, 0, 1288
};
static int parser_action_row1132[] = {
- 3,
- -1, 1, 77,
- 0, 1, 484,
- 1, 1, 484
+ 2,
+ -1, 1, 546,
+ 82, 0, 1289
};
static int parser_action_row1133[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 548,
+ 88, 0, 1290,
+ 91, 0, 1291
};
static int parser_action_row1134[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 3,
+ -1, 1, 550,
+ 74, 0, 1292,
+ 75, 0, 1293
};
static int parser_action_row1135[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 4,
+ -1, 1, 553,
+ 76, 0, 1294,
+ 78, 0, 1295,
+ 79, 0, 1296
};
static int parser_action_row1136[] = {
- 3,
- -1, 3, 1135,
- 28, 0, 33,
- 108, 0, 56
+ 1,
+ -1, 1, 556
};
static int parser_action_row1137[] = {
- 1,
- -1, 1, 482
+ 2,
+ -1, 1, 560,
+ 77, 0, 1297
};
static int parser_action_row1138[] = {
- 2,
- -1, 3, 1137,
- 95, 0, 1298
+ 1,
+ -1, 1, 562
};
static int parser_action_row1139[] = {
2,
- -1, 1, 73,
- 9, 1, 43
+ -1, 1, 567,
+ 73, 0, 1298
};
static int parser_action_row1140[] = {
- 2,
- -1, 3, 1139,
- 9, 0, 1300
-};
-static int parser_action_row1141[] = {
1,
- -1, 1, 1047
+ -1, 1, 572
};
-static int parser_action_row1142[] = {
+static int parser_action_row1141[] = {
3,
- -1, 3, 1141,
- 0, 0, 83,
- 1, 0, 84
+ -1, 1, 457,
+ 96, 0, 53,
+ 97, 0, 1299
+};
+static int parser_action_row1142[] = {
+ 1,
+ -1, 1, 390
};
static int parser_action_row1143[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 453,
+ 58, 0, 215
};
static int parser_action_row1144[] = {
- 1,
- -1, 1, 72
+ 2,
+ -1, 3, 1143,
+ 97, 0, 1301
};
static int parser_action_row1145[] = {
- 5,
- -1, 1, 28,
- 6, 0, 1303,
- 9, 1, 44,
- 13, 0, 26,
- 96, 0, 1304
+ 1,
+ -1, 1, 76
};
static int parser_action_row1146[] = {
- 3,
- -1, 1, 474,
+ 4,
+ -1, 1, 485,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1147[] = {
1,
- -1, 1, 459
+ -1, 1, 16
};
static int parser_action_row1148[] = {
- 2,
- -1, 3, 1147,
- 45, 0, 1310
+ 1,
+ -1, 1, 17
};
static int parser_action_row1149[] = {
- 4,
- -1, 3, 1148,
- 31, 0, 1311,
- 47, 0, 384,
- 95, 0, 385
+ 3,
+ -1, 1, 405,
+ 57, 0, 829,
+ 94, 0, 204
};
static int parser_action_row1150[] = {
- 1,
- -1, 1, 207
+ 2,
+ -1, 3, 1149,
+ 53, 0, 1308
};
static int parser_action_row1151[] = {
- 1,
- -1, 1, 226
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 56, 0, 1309
};
static int parser_action_row1152[] = {
1,
- -1, 1, 205
+ -1, 1, 153
};
static int parser_action_row1153[] = {
- 1,
- -1, 1, 224
+ 25,
+ -1, 3, 1152,
+ 41, 0, 1313,
+ 47, 0, 396,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 424,
+ 97, 0, 660
};
static int parser_action_row1154[] = {
- 1,
- -1, 1, 210
+ 4,
+ -1, 1, 79,
+ 0, 1, 496,
+ 1, 1, 496,
+ 95, 1, 496
};
static int parser_action_row1155[] = {
- 1,
- -1, 1, 229
+ 4,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1156[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1157[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1158[] = {
- 1,
- -1, 1, 214
+ 3,
+ -1, 3, 1157,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1159[] = {
1,
- -1, 1, 233
+ -1, 1, 494
};
static int parser_action_row1160[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 39,
+ 96, 0, 1324
};
static int parser_action_row1161[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 26
};
static int parser_action_row1162[] = {
1,
- -1, 1, 193
+ -1, 1, 47
};
static int parser_action_row1163[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1162,
+ 9, 0, 1327
};
static int parser_action_row1164[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1050
};
static int parser_action_row1165[] = {
- 13,
- -1, 1, 332,
- 59, 0, 1319,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 1049
};
static int parser_action_row1166[] = {
- 1,
- -1, 1, 183
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row1167[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 56,
+ -1, 1, 420,
+ 12, 0, 116,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 117,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 118,
+ 33, 0, 1329,
+ 34, 0, 1330,
+ 35, 0, 1331,
+ 36, 0, 1332,
+ 37, 0, 43,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 47, 0, 396,
+ 48, 0, 125,
+ 50, 0, 49,
+ 51, 0, 1333,
+ 52, 0, 1334,
+ 54, 0, 619,
+ 74, 0, 1335,
+ 75, 0, 1336,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 1337,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 1338,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1168[] = {
1,
- -1, 1, 758
+ -1, 1, 75
};
static int parser_action_row1169[] = {
- 2,
- -1, 1, 761,
- 52, 0, 265
+ 1,
+ -1, 1, 1063
};
static int parser_action_row1170[] = {
- 3,
- -1, 1, 765,
- 52, 0, 265,
- 58, 0, 206
+ 4,
+ -1, 1, 30,
+ 6, 0, 1163,
+ 13, 0, 32,
+ 97, 0, 1164
};
static int parser_action_row1171[] = {
- 2,
- -1, 3, 1170,
- 96, 0, 1324
+ 1,
+ -1, 1, 44
};
static int parser_action_row1172[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 461
};
static int parser_action_row1173[] = {
2,
-1, 3, 1172,
- 45, 0, 1326
+ 45, 0, 1358
};
static int parser_action_row1174[] = {
4,
-1, 3, 1173,
- 31, 0, 1327,
- 47, 0, 384,
- 95, 0, 385
+ 31, 0, 1359,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1175[] = {
1,
- -1, 1, 739
+ -1, 1, 209
};
static int parser_action_row1176[] = {
- 3,
- -1, 1, 155,
- 24, 1, 883,
- 49, 1, 968
+ 1,
+ -1, 1, 228
};
static int parser_action_row1177[] = {
- 3,
- -1, 1, 154,
- 24, 1, 882,
- 49, 1, 967
+ 1,
+ -1, 1, 207
};
static int parser_action_row1178[] = {
- 2,
- -1, 1, 254,
- 24, 1, 920
+ 1,
+ -1, 1, 226
};
static int parser_action_row1179[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 212
};
static int parser_action_row1180[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 231
};
static int parser_action_row1181[] = {
- 2,
- -1, 1, 263,
- 24, 1, 923
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1182[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1183[] = {
- 2,
- -1, 1, 277,
- 24, 0, 1332
+ 1,
+ -1, 1, 216
};
static int parser_action_row1184[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1333,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 235
};
static int parser_action_row1185[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1186[] = {
- 2,
- -1, 3, 1185,
- 57, 0, 1337
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1187[] = {
- 5,
- -1, 1, 456,
- 12, 0, 1338,
- 46, 0, 656,
- 95, 0, 48,
- 96, 0, 1339
+ 1,
+ -1, 1, 195
};
static int parser_action_row1188[] = {
- 2,
- -1, 1, 189,
- 24, 1, 910
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1189[] = {
- 2,
- -1, 1, 195,
- 24, 1, 916
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1190[] = {
- 2,
- -1, 1, 186,
- 24, 1, 907
+ 13,
+ -1, 1, 336,
+ 59, 0, 1367,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1191[] = {
1,
- -1, 1, 258
+ -1, 1, 185
};
static int parser_action_row1192[] = {
3,
- -1, 3, 1191,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1193[] = {
1,
- -1, 1, 256
+ -1, 1, 770
};
static int parser_action_row1194[] = {
2,
- -1, 1, 197,
- 24, 1, 918
+ -1, 1, 773,
+ 52, 0, 277
};
static int parser_action_row1195[] = {
- 2,
- -1, 1, 188,
- 24, 1, 909
+ 3,
+ -1, 1, 777,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1196[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 1195,
+ 97, 0, 1372
};
static int parser_action_row1197[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 341,
- 59, 0, 678,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 341,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1198[] = {
2,
-1, 3, 1197,
- 15, 0, 1344
+ 45, 0, 1374
};
static int parser_action_row1199[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 4,
+ -1, 3, 1198,
+ 31, 0, 1375,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1200[] = {
1,
- -1, 1, 332
+ -1, 1, 751
};
static int parser_action_row1201[] = {
- 2,
- -1, 3, 1200,
- 55, 0, 1346
+ 3,
+ -1, 1, 157,
+ 24, 1, 895,
+ 49, 1, 980
};
static int parser_action_row1202[] = {
3,
- -1, 3, 1201,
- 47, 0, 384,
- 95, 0, 385
+ -1, 1, 156,
+ 24, 1, 894,
+ 49, 1, 979
};
static int parser_action_row1203[] = {
- 1,
- -1, 1, 1054
+ 2,
+ -1, 1, 256,
+ 24, 1, 932
};
static int parser_action_row1204[] = {
- 2,
- -1, 1, 785,
- 94, 0, 581
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1205[] = {
- 2,
- -1, 3, 1204,
- 53, 0, 1349
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1206[] = {
- 1,
- -1, 1, 786
+ 2,
+ -1, 1, 267,
+ 24, 1, 935
};
static int parser_action_row1207[] = {
- 1,
- -1, 1, 353
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1208[] = {
- 1,
- -1, 1, 357
+ 2,
+ -1, 1, 281,
+ 24, 0, 1380
};
static int parser_action_row1209[] = {
- 2,
- -1, 1, 356,
- 52, 0, 265
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1381,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1210[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1211[] = {
- 1,
- -1, 1, 407
+ 2,
+ -1, 3, 1210,
+ 57, 0, 1385
};
static int parser_action_row1212[] = {
- 1,
- -1, 1, 409
+ 5,
+ -1, 1, 458,
+ 12, 0, 1386,
+ 46, 0, 669,
+ 96, 0, 53,
+ 97, 0, 1387
};
static int parser_action_row1213[] = {
- 1,
- -1, 1, 410
+ 2,
+ -1, 1, 191,
+ 24, 1, 922
};
static int parser_action_row1214[] = {
- 1,
- -1, 1, 411
+ 2,
+ -1, 1, 197,
+ 24, 1, 928
};
static int parser_action_row1215[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1216[] = {
2,
- -1, 1, 423,
- 56, 0, 1353
+ -1, 1, 188,
+ 24, 1, 919
};
-static int parser_action_row1217[] = {
+static int parser_action_row1216[] = {
1,
- -1, 1, 272
+ -1, 1, 262
+};
+static int parser_action_row1217[] = {
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1218[] = {
- 2,
- -1, 3, 1217,
- 55, 0, 1356
+ 1,
+ -1, 1, 263
};
static int parser_action_row1219[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 4,
+ -1, 3, 1218,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1220[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 258
};
static int parser_action_row1221[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 199,
+ 24, 1, 930
};
static int parser_action_row1222[] = {
- 14,
- -1, 1, 333,
- 52, 0, 265,
- 59, 0, 1358,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 2,
+ -1, 1, 190,
+ 24, 1, 921
};
static int parser_action_row1223[] = {
25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 434,
- 27, 0, 435,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1224[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 345,
+ 59, 0, 691,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 345,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1225[] = {
- 1,
- -1, 1, 582
+ 2,
+ -1, 3, 1224,
+ 15, 0, 1393
};
static int parser_action_row1226[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1227[] = {
- 22,
- -1, 1, 456,
- 12, 0, 1079,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 336
};
static int parser_action_row1228[] = {
- 3,
+ 2,
-1, 3, 1227,
- 47, 0, 1364,
- 95, 0, 1365
+ 55, 0, 1395
};
static int parser_action_row1229[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 3,
+ -1, 3, 1228,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1230[] = {
1,
- -1, 1, 599
+ -1, 1, 1071
};
static int parser_action_row1231[] = {
- 1,
- -1, 1, 600
+ 2,
+ -1, 1, 797,
+ 94, 0, 594
};
static int parser_action_row1232[] = {
- 1,
- -1, 1, 601
+ 2,
+ -1, 3, 1231,
+ 53, 0, 1398
};
static int parser_action_row1233[] = {
1,
- -1, 1, 602
+ -1, 1, 798
};
static int parser_action_row1234[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 357
};
static int parser_action_row1235[] = {
- 3,
- -1, 3, 1234,
- 41, 0, 1245,
- 97, 0, 1369
+ 1,
+ -1, 1, 361
};
static int parser_action_row1236[] = {
2,
- -1, 3, 1235,
- 73, 0, 1370
+ -1, 1, 360,
+ 52, 0, 277
};
static int parser_action_row1237[] = {
- 1,
- -1, 1, 552
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1238[] = {
1,
- -1, 1, 551
+ -1, 1, 410
};
static int parser_action_row1239[] = {
1,
- -1, 1, 553
+ -1, 1, 412
};
static int parser_action_row1240[] = {
1,
- -1, 1, 564
+ -1, 1, 413
};
static int parser_action_row1241[] = {
1,
- -1, 1, 603
+ -1, 1, 414
};
static int parser_action_row1242[] = {
- 1,
- -1, 1, 604
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1243[] = {
- 1,
- -1, 1, 605
+ 2,
+ -1, 1, 425,
+ 56, 0, 1402
};
static int parser_action_row1244[] = {
1,
- -1, 1, 607
+ -1, 1, 276
};
static int parser_action_row1245[] = {
- 1,
- -1, 1, 606
+ 2,
+ -1, 3, 1244,
+ 55, 0, 1405
};
static int parser_action_row1246[] = {
2,
- -1, 1, 580,
- 52, 0, 265
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1247[] = {
- 1,
- -1, 1, 562
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1248[] = {
- 2,
- -1, 1, 570,
- 52, 0, 265
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1249[] = {
- 3,
- -1, 3, 1248,
- 54, 0, 1373,
- 55, 0, 1374
+ 14,
+ -1, 1, 337,
+ 52, 0, 277,
+ 59, 0, 1407,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1250[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 446,
+ 27, 0, 447,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1251[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 24, 0, 1376
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1252[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 594
};
static int parser_action_row1253[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1254[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 22,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1255[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1254,
+ 47, 0, 1413,
+ 96, 0, 1414
};
static int parser_action_row1256[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1257[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 611
};
static int parser_action_row1258[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 612
};
static int parser_action_row1259[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 613
};
static int parser_action_row1260[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 614
};
static int parser_action_row1261[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1262[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1261,
+ 41, 0, 1272,
+ 98, 0, 1418
};
static int parser_action_row1263[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 1262,
+ 73, 0, 1419
};
static int parser_action_row1264[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 564
};
static int parser_action_row1265[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 563
};
static int parser_action_row1266[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 565
};
static int parser_action_row1267[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 576
};
static int parser_action_row1268[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 615
};
static int parser_action_row1269[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 616
};
static int parser_action_row1270[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 617
};
static int parser_action_row1271[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 619
};
static int parser_action_row1272[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 618
};
static int parser_action_row1273[] = {
- 3,
- -1, 1, 578,
- 52, 0, 265,
- 58, 0, 206
+ 2,
+ -1, 1, 592,
+ 52, 0, 277
};
static int parser_action_row1274[] = {
- 2,
- -1, 1, 454,
- 96, 0, 1400
+ 1,
+ -1, 1, 574
};
static int parser_action_row1275[] = {
2,
- -1, 1, 452,
- 58, 0, 206
+ -1, 1, 582,
+ 52, 0, 277
};
static int parser_action_row1276[] = {
- 2,
+ 3,
-1, 3, 1275,
- 9, 0, 1401
+ 54, 0, 1422,
+ 55, 0, 1423
};
static int parser_action_row1277[] = {
- 1,
- -1, 1, 1065
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1278[] = {
- 2,
- -1, 1, 28,
- 13, 0, 26
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 24, 0, 1425
};
static int parser_action_row1279[] = {
- 8,
- -1, 1, 474,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 4, 1, 412,
- 9, 1, 412,
- 15, 1, 412,
- 28, 1, 412,
- 108, 1, 412
+ 1, 0, 2
};
static int parser_action_row1280[] = {
- 2,
- -1, 1, 116,
- 71, 0, 1404
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1281[] = {
- 2,
- -1, 1, 400,
- 57, 0, 815
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1282[] = {
- 1,
- -1, 1, 115
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1283[] = {
- 4,
- -1, 1, 474,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 57, 0, 815
+ 1, 0, 2
};
static int parser_action_row1284[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1285[] = {
- 1,
- -1, 1, 1049
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1286[] = {
- 1,
- -1, 1, 111
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1287[] = {
- 4,
- -1, 1, 474,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 56, 0, 1283
+ 1, 0, 2
};
static int parser_action_row1288[] = {
- 1,
- -1, 1, 126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1289[] = {
- 2,
- -1, 1, 120,
- 56, 0, 1411
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1290[] = {
- 1,
- -1, 1, 124
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1291[] = {
- 1,
- -1, 1, 125
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1292[] = {
- 2,
- -1, 1, 129,
- 73, 0, 1414
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1293[] = {
- 1,
- -1, 1, 127
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1294[] = {
- 2,
- -1, 1, 78,
- 9, 0, 1415
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1295[] = {
- 1,
- -1, 1, 468
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1296[] = {
- 1,
- -1, 1, 479
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1297[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1298[] = {
- 1,
- -1, 1, 483
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1299[] = {
3,
- -1, 1, 153,
- 57, 0, 321,
- 94, 0, 195
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1300[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 56, 0, 1419
+ 3,
+ -1, 1, 590,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1301[] = {
- 1,
- -1, 1, 26
+ 2,
+ -1, 1, 456,
+ 97, 0, 1449
};
static int parser_action_row1302[] = {
- 1,
- -1, 1, 45
+ 2,
+ -1, 1, 454,
+ 58, 0, 215
};
static int parser_action_row1303[] = {
- 2,
- -1, 3, 1302,
- 9, 0, 1423
+ 1,
+ -1, 1, 1064
};
static int parser_action_row1304[] = {
- 1,
- -1, 1, 1038
+ 2,
+ -1, 1, 30,
+ 13, 0, 32
};
static int parser_action_row1305[] = {
- 1,
- -1, 1, 1037
+ 5,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1451,
+ 95, 0, 3
};
static int parser_action_row1306[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 2,
+ -1, 1, 118,
+ 71, 0, 1453
};
static int parser_action_row1307[] = {
- 56,
- -1, 1, 418,
- 12, 0, 107,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 108,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 109,
- 33, 0, 1425,
- 34, 0, 1426,
- 35, 0, 1427,
- 36, 0, 1428,
- 37, 0, 38,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 47, 0, 384,
- 48, 0, 116,
- 50, 0, 44,
- 51, 0, 1429,
- 52, 0, 1430,
- 54, 0, 606,
- 74, 0, 1431,
- 75, 0, 1432,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 1433,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 1434,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 404,
+ 57, 0, 829
};
static int parser_action_row1308[] = {
1,
- -1, 1, 73
+ -1, 1, 117
};
static int parser_action_row1309[] = {
- 1,
- -1, 1, 1048
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 57, 0, 829
};
static int parser_action_row1310[] = {
- 5,
- -1, 1, 28,
- 6, 0, 1303,
- 9, 1, 42,
- 13, 0, 26,
- 96, 0, 1304
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1311[] = {
1,
- -1, 1, 361
+ -1, 1, 1066
};
static int parser_action_row1312[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 113
};
static int parser_action_row1313[] = {
- 3,
- -1, 1, 474,
+ 4,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 56, 0, 1309
};
static int parser_action_row1314[] = {
1,
- -1, 1, 209
+ -1, 1, 128
};
static int parser_action_row1315[] = {
- 1,
- -1, 1, 228
+ 2,
+ -1, 1, 122,
+ 56, 0, 1460
};
static int parser_action_row1316[] = {
1,
- -1, 1, 213
+ -1, 1, 126
};
static int parser_action_row1317[] = {
1,
- -1, 1, 232
+ -1, 1, 127
};
static int parser_action_row1318[] = {
- 1,
- -1, 1, 212
+ 2,
+ -1, 1, 131,
+ 73, 0, 1463
};
static int parser_action_row1319[] = {
1,
- -1, 1, 231
+ -1, 1, 129
};
static int parser_action_row1320[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 9,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 4, 1, 80,
+ 9, 0, 1464,
+ 15, 1, 80,
+ 28, 1, 80,
+ 95, 0, 3,
+ 109, 1, 80
};
static int parser_action_row1321[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 470
};
static int parser_action_row1322[] = {
- 2,
- -1, 3, 1321,
- 24, 0, 1458
+ 1,
+ -1, 1, 491
};
static int parser_action_row1323[] = {
- 1,
- -1, 1, 760
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1324[] = {
1,
- -1, 1, 764
+ -1, 1, 495
};
static int parser_action_row1325[] = {
- 2,
- -1, 1, 763,
- 52, 0, 265
+ 3,
+ -1, 1, 155,
+ 57, 0, 333,
+ 94, 0, 204
};
static int parser_action_row1326[] = {
- 1,
- -1, 1, 444
+ 2,
+ -1, 3, 1325,
+ 55, 0, 1468
};
static int parser_action_row1327[] = {
- 1,
- -1, 1, 768
+ 2,
+ -1, 1, 37,
+ 56, 0, 1469
};
static int parser_action_row1328[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 27
};
static int parser_action_row1329[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 7,
+ -1, 3, 1328,
+ 10, 0, 1472,
+ 11, 0, 1473,
+ 12, 0, 1474,
+ 16, 0, 1475,
+ 38, 0, 1476,
+ 41, 0, 1477
};
static int parser_action_row1330[] = {
- 2,
- -1, 3, 1329,
- 23, 0, 1462
+ 26,
+ -1, 1, 1003,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1331[] = {
2,
- -1, 3, 1330,
- 15, 0, 1463
+ -1, 1, 1008,
+ 49, 0, 197
};
static int parser_action_row1332[] = {
2,
- -1, 3, 1331,
- 28, 0, 1464
+ -1, 1, 1005,
+ 49, 0, 197
};
static int parser_action_row1333[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1333,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1007
};
static int parser_action_row1334[] = {
2,
- -1, 1, 156,
- 24, 1, 884
+ -1, 3, 1333,
+ 11, 0, 1481
};
static int parser_action_row1335[] = {
- 31,
- -1, 1, 456,
- 9, 0, 1466,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1336[] = {
- 1,
- -1, 1, 931
+ 24,
+ -1, 1, 498,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1337[] = {
- 2,
- -1, 3, 1336,
- 15, 0, 1468
+ 24,
+ -1, 1, 499,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1338[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 507,
+ 12, 0, 170,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1339[] = {
- 27,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 347,
- 73, 1, 347,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 15,
+ -1, 1, 756,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 1483,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1340[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 329,
- 58, 0, 206,
- 59, 0, 832,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 329,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 1,
+ -1, 1, 802
};
static int parser_action_row1341[] = {
- 3,
- -1, 1, 453,
- 12, 0, 1472,
- 96, 0, 1473
+ 1,
+ -1, 1, 1001
};
static int parser_action_row1342[] = {
- 4,
- -1, 1, 455,
- 12, 0, 1474,
- 95, 0, 48,
- 96, 0, 1475
+ 1,
+ -1, 1, 1010
};
static int parser_action_row1343[] = {
- 2,
- -1, 1, 196,
- 24, 1, 917
+ 1,
+ -1, 1, 1012
};
static int parser_action_row1344[] = {
- 2,
- -1, 1, 187,
- 24, 1, 908
+ 1,
+ -1, 1, 1011
};
static int parser_action_row1345[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 148,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1013
};
static int parser_action_row1346[] = {
- 2,
- -1, 3, 1345,
- 24, 0, 1479
+ 1,
+ -1, 1, 1014
};
static int parser_action_row1347[] = {
- 2,
- -1, 1, 785,
- 94, 0, 581
+ 1,
+ -1, 1, 1015
};
static int parser_action_row1348[] = {
1,
- -1, 1, 150
+ -1, 1, 421
};
static int parser_action_row1349[] = {
- 1,
- -1, 1, 612
+ 3,
+ -1, 3, 1348,
+ 41, 0, 300,
+ 98, 0, 1486
};
static int parser_action_row1350[] = {
- 1,
- -1, 1, 783
+ 22,
+ -1, 1, 455,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 1487
};
static int parser_action_row1351[] = {
1,
- -1, 1, 355
+ -1, 1, 806
};
static int parser_action_row1352[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1002
};
static int parser_action_row1353[] = {
- 2,
- -1, 3, 1352,
- 53, 0, 1482
+ 1,
+ -1, 1, 803
};
static int parser_action_row1354[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 739,
+ 54, 0, 244,
+ 73, 0, 1488
};
static int parser_action_row1355[] = {
1,
- -1, 1, 1067
+ -1, 1, 424
};
static int parser_action_row1356[] = {
2,
- -1, 1, 424,
- 56, 0, 1353
+ -1, 1, 800,
+ 56, 0, 1402
};
static int parser_action_row1357[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 804
};
static int parser_action_row1358[] = {
- 1,
- -1, 1, 146
+ 23,
+ -1, 1, 457,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 96, 0, 53,
+ 97, 0, 1491
};
static int parser_action_row1359[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 365
};
static int parser_action_row1360[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1361[] = {
- 1,
- -1, 1, 388
-};
-static int parser_action_row1362[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row1362[] = {
+ 1,
+ -1, 1, 211
+};
static int parser_action_row1363[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 230
};
static int parser_action_row1364[] = {
1,
- -1, 1, 522
+ -1, 1, 215
};
static int parser_action_row1365[] = {
- 2,
- -1, 3, 1364,
- 95, 0, 1489
+ 1,
+ -1, 1, 234
};
static int parser_action_row1366[] = {
- 2,
- -1, 1, 785,
- 94, 0, 581
+ 1,
+ -1, 1, 214
};
static int parser_action_row1367[] = {
- 3,
- -1, 1, 557,
- 52, 0, 265,
- 73, 0, 1491
+ 1,
+ -1, 1, 233
};
static int parser_action_row1368[] = {
- 1,
- -1, 1, 554
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1369[] = {
- 3,
- -1, 3, 1368,
- 47, 0, 1364,
- 95, 0, 1365
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1370[] = {
2,
- -1, 1, 559,
- 73, 1, 562
+ -1, 3, 1369,
+ 24, 0, 1497
};
static int parser_action_row1371[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 772
};
static int parser_action_row1372[] = {
1,
- -1, 1, 579
+ -1, 1, 776
};
static int parser_action_row1373[] = {
- 1,
- -1, 1, 568
+ 2,
+ -1, 1, 775,
+ 52, 0, 277
};
static int parser_action_row1374[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 446
};
static int parser_action_row1375[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 780
};
static int parser_action_row1376[] = {
- 22,
- -1, 1, 456,
- 12, 0, 1079,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1377[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1378[] = {
- 22,
- -1, 1, 456,
- 12, 0, 1079,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 3, 1377,
+ 23, 0, 1501
};
static int parser_action_row1379[] = {
- 22,
- -1, 1, 456,
- 12, 0, 1079,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 3, 1378,
+ 15, 0, 1502
};
static int parser_action_row1380[] = {
- 3,
+ 2,
-1, 3, 1379,
- 47, 0, 1501,
- 95, 0, 1502
+ 28, 0, 1503
};
static int parser_action_row1381[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1381,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1382[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 1, 158,
+ 24, 1, 896
};
static int parser_action_row1383[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 31,
+ -1, 1, 458,
+ 9, 0, 1505,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1384[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 943
};
static int parser_action_row1385[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 3, 1384,
+ 15, 0, 1507
};
static int parser_action_row1386[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1387[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 27,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 351,
+ 73, 1, 351,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1388[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 333,
+ 58, 0, 215,
+ 59, 0, 846,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 333,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1389[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 3,
+ -1, 1, 455,
+ 12, 0, 1511,
+ 97, 0, 1512
};
static int parser_action_row1390[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 4,
+ -1, 1, 457,
+ 12, 0, 1513,
+ 96, 0, 53,
+ 97, 0, 1514
};
static int parser_action_row1391[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 260
};
static int parser_action_row1392[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 1, 198,
+ 24, 1, 929
};
static int parser_action_row1393[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 1, 189,
+ 24, 1, 920
};
static int parser_action_row1394[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 157,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1395[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 3, 1394,
+ 24, 0, 1518
};
static int parser_action_row1396[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 2,
+ -1, 1, 797,
+ 94, 0, 594
};
static int parser_action_row1397[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 152
};
static int parser_action_row1398[] = {
- 21,
- -1, 1, 456,
- 12, 0, 1079,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 624
};
static int parser_action_row1399[] = {
- 5,
- -1, 1, 456,
- 12, 0, 1522,
- 46, 0, 1523,
- 95, 0, 48,
- 96, 0, 1524
+ 1,
+ -1, 1, 795
};
static int parser_action_row1400[] = {
1,
- -1, 1, 576
+ -1, 1, 359
};
static int parser_action_row1401[] = {
- 2,
- -1, 1, 574,
- 52, 0, 265
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1402[] = {
- 1,
- -1, 1, 75
+ 2,
+ -1, 3, 1401,
+ 53, 0, 1521
};
static int parser_action_row1403[] = {
- 5,
- -1, 1, 79,
- 18, 0, 227,
- 19, 0, 228,
- 20, 0, 229,
- 21, 0, 230
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1404[] = {
1,
- -1, 1, 1066
+ -1, 1, 1082
};
static int parser_action_row1405[] = {
- 1,
- -1, 1, 118
+ 2,
+ -1, 1, 426,
+ 56, 0, 1402
};
static int parser_action_row1406[] = {
2,
- -1, 1, 117,
- 71, 0, 1530
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1407[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 148
};
static int parser_action_row1408[] = {
- 1,
- -1, 1, 108
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1409[] = {
- 2,
- -1, 3, 1408,
- 96, 0, 1126
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1410[] = {
1,
- -1, 1, 1050
+ -1, 1, 392
};
static int parser_action_row1411[] = {
- 1,
- -1, 1, 112
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1412[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1413[] = {
1,
- -1, 1, 1051
+ -1, 1, 534
};
static int parser_action_row1414[] = {
2,
- -1, 1, 121,
- 56, 0, 1411
+ -1, 3, 1413,
+ 96, 0, 1528
};
static int parser_action_row1415[] = {
- 24,
- -1, 3, 1414,
- 46, 0, 1535,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 48,
- 96, 0, 647
+ 2,
+ -1, 1, 797,
+ 94, 0, 594
};
static int parser_action_row1416[] = {
- 1,
- -1, 1, 485
+ 3,
+ -1, 1, 569,
+ 52, 0, 277,
+ 73, 0, 1530
};
static int parser_action_row1417[] = {
1,
- -1, 1, 480
+ -1, 1, 566
};
static int parser_action_row1418[] = {
- 1,
- -1, 1, 39
+ 3,
+ -1, 3, 1417,
+ 47, 0, 1413,
+ 96, 0, 1414
};
static int parser_action_row1419[] = {
2,
- -1, 1, 153,
- 57, 0, 321
+ -1, 1, 571,
+ 73, 1, 574
};
static int parser_action_row1420[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
static int parser_action_row1421[] = {
1,
- -1, 1, 1045
+ -1, 1, 591
};
static int parser_action_row1422[] = {
- 2,
- -1, 3, 1421,
- 55, 0, 1539
+ 1,
+ -1, 1, 580
};
static int parser_action_row1423[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 56, 0, 1419
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1424[] = {
- 1,
- -1, 1, 27
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1425[] = {
- 7,
- -1, 3, 1424,
- 10, 0, 1542,
- 11, 0, 1543,
- 12, 0, 1544,
- 16, 0, 1545,
- 38, 0, 1546,
- 41, 0, 1547
+ 22,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1426[] = {
- 26,
- -1, 1, 991,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1427[] = {
- 2,
- -1, 1, 996,
- 49, 0, 188
+ 22,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1428[] = {
- 2,
- -1, 1, 993,
- 49, 0, 188
+ 22,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1429[] = {
- 1,
- -1, 1, 995
+ 3,
+ -1, 3, 1428,
+ 47, 0, 1540,
+ 96, 0, 1541
};
static int parser_action_row1430[] = {
- 2,
- -1, 3, 1429,
- 11, 0, 1551
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1431[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1432[] = {
- 24,
- -1, 1, 486,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1433[] = {
- 24,
- -1, 1, 487,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1434[] = {
- 24,
- -1, 1, 495,
- 12, 0, 161,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1435[] = {
- 15,
- -1, 1, 744,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 1553,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1436[] = {
- 1,
- -1, 1, 790
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1437[] = {
- 1,
- -1, 1, 989
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1438[] = {
- 1,
- -1, 1, 998
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1439[] = {
- 1,
- -1, 1, 1000
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1440[] = {
- 1,
- -1, 1, 999
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1441[] = {
- 1,
- -1, 1, 1001
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1442[] = {
- 1,
- -1, 1, 1002
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1443[] = {
- 1,
- -1, 1, 1003
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1444[] = {
- 1,
- -1, 1, 419
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1445[] = {
- 3,
- -1, 3, 1444,
- 41, 0, 288,
- 97, 0, 1556
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1446[] = {
- 22,
- -1, 1, 453,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 1557
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1447[] = {
- 1,
- -1, 1, 794
+ 21,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1448[] = {
- 1,
- -1, 1, 990
+ 5,
+ -1, 1, 458,
+ 12, 0, 1561,
+ 46, 0, 1562,
+ 96, 0, 53,
+ 97, 0, 1563
};
static int parser_action_row1449[] = {
1,
- -1, 1, 791
+ -1, 1, 588
};
static int parser_action_row1450[] = {
- 3,
- -1, 1, 727,
- 54, 0, 236,
- 73, 0, 1558
+ 2,
+ -1, 1, 586,
+ 52, 0, 277
};
static int parser_action_row1451[] = {
- 1,
- -1, 1, 422
+ 5,
+ -1, 1, 81,
+ 18, 0, 236,
+ 19, 0, 237,
+ 20, 0, 238,
+ 21, 0, 239
};
static int parser_action_row1452[] = {
- 2,
- -1, 1, 788,
- 56, 0, 1353
+ 1,
+ -1, 1, 77
};
static int parser_action_row1453[] = {
1,
- -1, 1, 792
+ -1, 1, 1065
};
static int parser_action_row1454[] = {
- 23,
- -1, 1, 455,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 95, 0, 48,
- 96, 0, 1561
+ 1,
+ -1, 1, 120
};
static int parser_action_row1455[] = {
2,
- -1, 3, 1454,
- 45, 0, 1563
+ -1, 1, 119,
+ 71, 0, 1569
};
static int parser_action_row1456[] = {
- 2,
- -1, 3, 1455,
- 53, 0, 1564
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1457[] = {
1,
- -1, 1, 211
+ -1, 1, 110
};
static int parser_action_row1458[] = {
- 1,
- -1, 1, 230
+ 2,
+ -1, 3, 1457,
+ 97, 0, 1148
};
static int parser_action_row1459[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 1067
};
static int parser_action_row1460[] = {
1,
- -1, 1, 762
+ -1, 1, 114
};
static int parser_action_row1461[] = {
- 2,
- -1, 3, 1460,
- 45, 0, 1566
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1462[] = {
- 2,
- -1, 3, 1461,
- 53, 0, 1567
+ 1,
+ -1, 1, 1068
};
static int parser_action_row1463[] = {
- 34,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 872,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 24, 0, 876,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 123,
+ 56, 0, 1460
};
static int parser_action_row1464[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1013,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 24,
+ -1, 3, 1463,
+ 46, 0, 1574,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 53,
+ 97, 0, 660
};
static int parser_action_row1465[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 497
};
static int parser_action_row1466[] = {
1,
- -1, 1, 932
+ -1, 1, 492
};
static int parser_action_row1467[] = {
- 2,
- -1, 1, 155,
- 24, 1, 883
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1468[] = {
2,
- -1, 1, 154,
- 24, 1, 882
+ -1, 1, 155,
+ 57, 0, 333
};
static int parser_action_row1469[] = {
- 33,
- -1, 1, 456,
+ 6,
+ -1, 1, 485,
0, 0, 1,
1, 0, 2,
- 9, 0, 1013,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 28, 0, 84,
+ 95, 0, 3,
+ 109, 0, 85
};
static int parser_action_row1470[] = {
- 2,
- -1, 1, 198,
- 24, 1, 919
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1471[] = {
- 2,
- -1, 1, 190,
- 24, 1, 911
+ 1,
+ -1, 1, 1060
};
static int parser_action_row1472[] = {
2,
- -1, 1, 181,
- 24, 1, 902
+ -1, 1, 38,
+ 56, 0, 1469
};
static int parser_action_row1473[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 23,
+ -1, 3, 1472,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 53,
+ 97, 0, 660
};
static int parser_action_row1474[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 331,
- 59, 0, 985,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 331,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 1473,
+ 96, 0, 1583
};
static int parser_action_row1475[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 27,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 52, 0, 828,
+ 54, 0, 640,
+ 57, 0, 829,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 53,
+ 97, 0, 660
};
static int parser_action_row1476[] = {
- 40,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 335,
- 58, 0, 206,
- 59, 0, 990,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 335,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 1475,
+ 97, 0, 1586
};
static int parser_action_row1477[] = {
- 3,
- -1, 1, 454,
- 12, 0, 1578,
- 96, 0, 1579
+ 27,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 52, 0, 828,
+ 54, 0, 640,
+ 57, 0, 829,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 53,
+ 97, 0, 660
};
static int parser_action_row1478[] = {
- 1,
- -1, 1, 268
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1479[] = {
- 2,
- -1, 3, 1478,
- 49, 0, 188
+ 1,
+ -1, 1, 1004
};
static int parser_action_row1480[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 1009
};
static int parser_action_row1481[] = {
1,
- -1, 1, 613
+ -1, 1, 1006
};
static int parser_action_row1482[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1481,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1483[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1484[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1485[] = {
- 1,
- -1, 1, 1068
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1486[] = {
- 1,
- -1, 1, 147
+ 13,
+ -1, 1, 755,
+ 59, 0, 1594,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1487[] = {
- 2,
- -1, 1, 386,
- 24, 0, 1479
+ 13,
+ -1, 1, 746,
+ 59, 0, 1596,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1488[] = {
- 2,
- -1, 3, 1487,
- 15, 0, 1585
+ 14,
+ -1, 1, 758,
+ 52, 0, 277,
+ 59, 0, 1598,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1489[] = {
- 2,
- -1, 3, 1488,
- 23, 0, 1586
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1490[] = {
- 2,
- -1, 1, 785,
- 94, 0, 581
+ 13,
+ -1, 1, 769,
+ 59, 0, 1602,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1491[] = {
- 1,
- -1, 1, 795
+ 2,
+ -1, 1, 801,
+ 56, 0, 1402
};
static int parser_action_row1492[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 15,
+ -1, 1, 762,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 1604,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1493[] = {
- 1,
- -1, 1, 556
+ 22,
+ -1, 1, 456,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 1607
};
static int parser_action_row1494[] = {
2,
-1, 3, 1493,
- 73, 0, 1491
+ 45, 0, 1608
};
static int parser_action_row1495[] = {
- 5,
- -1, 1, 456,
- 12, 0, 1522,
- 46, 0, 1523,
- 95, 0, 48,
- 96, 0, 1524
+ 2,
+ -1, 3, 1494,
+ 53, 0, 1609
};
static int parser_action_row1496[] = {
1,
- -1, 1, 377
+ -1, 1, 213
};
static int parser_action_row1497[] = {
1,
- -1, 1, 376
+ -1, 1, 232
};
static int parser_action_row1498[] = {
- 1,
- -1, 1, 518
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1499[] = {
- 22,
- -1, 1, 456,
- 12, 0, 1079,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 774
};
static int parser_action_row1500[] = {
- 1,
- -1, 1, 517
+ 2,
+ -1, 3, 1499,
+ 45, 0, 1611
};
static int parser_action_row1501[] = {
- 1,
- -1, 1, 520
+ 2,
+ -1, 3, 1500,
+ 53, 0, 1612
};
static int parser_action_row1502[] = {
- 2,
- -1, 3, 1501,
- 95, 0, 1591
+ 35,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 886,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 24, 0, 890,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1503[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1035,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1504[] = {
- 1,
- -1, 1, 531
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1505[] = {
- 2,
- -1, 1, 533,
- 81, 0, 1261
+ 1,
+ -1, 1, 944
};
static int parser_action_row1506[] = {
2,
- -1, 1, 524,
- 80, 0, 1253
+ -1, 1, 157,
+ 24, 1, 895
};
static int parser_action_row1507[] = {
2,
- -1, 1, 525,
- 80, 0, 1253
+ -1, 1, 156,
+ 24, 1, 894
};
static int parser_action_row1508[] = {
- 2,
- -1, 1, 526,
- 80, 0, 1253
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1035,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1509[] = {
2,
- -1, 1, 527,
- 80, 0, 1253
+ -1, 1, 200,
+ 24, 1, 931
};
static int parser_action_row1510[] = {
2,
- -1, 1, 528,
- 80, 0, 1253
+ -1, 1, 192,
+ 24, 1, 923
};
static int parser_action_row1511[] = {
2,
- -1, 1, 529,
- 80, 0, 1253
+ -1, 1, 183,
+ 24, 1, 914
};
static int parser_action_row1512[] = {
- 2,
- -1, 1, 530,
- 80, 0, 1253
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1513[] = {
- 2,
- -1, 1, 535,
- 82, 0, 1262
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 335,
+ 59, 0, 1007,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 335,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1514[] = {
- 3,
- -1, 1, 537,
- 88, 0, 1263,
- 91, 0, 1264
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1515[] = {
- 3,
- -1, 1, 539,
- 74, 0, 1265,
- 75, 0, 1266
+ 40,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 339,
+ 58, 0, 215,
+ 59, 0, 1012,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 339,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1516[] = {
3,
- -1, 1, 540,
- 74, 0, 1265,
- 75, 0, 1266
+ -1, 1, 456,
+ 12, 0, 1623,
+ 97, 0, 1624
};
static int parser_action_row1517[] = {
- 4,
- -1, 1, 542,
- 76, 0, 1267,
- 78, 0, 1268,
- 79, 0, 1269
+ 1,
+ -1, 1, 272
};
static int parser_action_row1518[] = {
- 4,
- -1, 1, 543,
- 76, 0, 1267,
- 78, 0, 1268,
- 79, 0, 1269
+ 2,
+ -1, 3, 1517,
+ 49, 0, 197
};
static int parser_action_row1519[] = {
- 1,
- -1, 1, 545
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1520[] = {
1,
- -1, 1, 546
+ -1, 1, 625
};
static int parser_action_row1521[] = {
- 1,
- -1, 1, 547
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1522[] = {
- 1,
- -1, 1, 549
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1523[] = {
- 2,
- -1, 1, 583,
- 52, 0, 265
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1524[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 1083
};
static int parser_action_row1525[] = {
- 3,
- -1, 1, 565,
- 52, 0, 265,
- 58, 0, 206
+ 1,
+ -1, 1, 149
};
static int parser_action_row1526[] = {
2,
- -1, 3, 1525,
- 97, 0, 1596
+ -1, 1, 390,
+ 24, 0, 1518
};
static int parser_action_row1527[] = {
2,
- -1, 1, 453,
- 96, 0, 1597
+ -1, 3, 1526,
+ 15, 0, 1630
};
static int parser_action_row1528[] = {
- 3,
- -1, 1, 455,
- 95, 0, 48,
- 96, 0, 1598
+ 2,
+ -1, 3, 1527,
+ 23, 0, 1631
};
static int parser_action_row1529[] = {
- 1,
- -1, 1, 572
+ 2,
+ -1, 1, 797,
+ 94, 0, 594
};
static int parser_action_row1530[] = {
- 4,
- -1, 3, 1529,
- 6, 0, 778,
- 17, 0, 779,
- 96, 0, 780
+ 1,
+ -1, 1, 807
};
static int parser_action_row1531[] = {
- 1,
- -1, 1, 119
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1532[] = {
1,
- -1, 1, 107
+ -1, 1, 568
};
static int parser_action_row1533[] = {
- 1,
- -1, 1, 114
+ 2,
+ -1, 3, 1532,
+ 73, 0, 1530
};
static int parser_action_row1534[] = {
- 25,
- -1, 3, 1533,
- 41, 0, 1287,
- 47, 0, 384,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 412,
- 96, 0, 647
+ 5,
+ -1, 1, 458,
+ 12, 0, 1561,
+ 46, 0, 1562,
+ 96, 0, 53,
+ 97, 0, 1563
};
static int parser_action_row1535[] = {
1,
- -1, 1, 1052
+ -1, 1, 381
};
static int parser_action_row1536[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 380
};
static int parser_action_row1537[] = {
1,
- -1, 1, 128
+ -1, 1, 530
};
static int parser_action_row1538[] = {
- 1,
- -1, 1, 40
+ 22,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
};
static int parser_action_row1539[] = {
- 2,
- -1, 3, 1538,
- 95, 0, 1298
+ 1,
+ -1, 1, 529
};
static int parser_action_row1540[] = {
1,
- -1, 1, 35
+ -1, 1, 532
};
static int parser_action_row1541[] = {
- 1,
- -1, 1, 1046
+ 2,
+ -1, 3, 1540,
+ 96, 0, 1636
};
static int parser_action_row1542[] = {
2,
- -1, 3, 1541,
- 55, 0, 1604
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1543[] = {
- 23,
- -1, 3, 1542,
- 54, 0, 627,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 48,
- 96, 0, 647
+ 1,
+ -1, 1, 543
};
static int parser_action_row1544[] = {
2,
- -1, 3, 1543,
- 95, 0, 1606
+ -1, 1, 545,
+ 81, 0, 1288
};
static int parser_action_row1545[] = {
- 27,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 52, 0, 814,
- 54, 0, 627,
- 57, 0, 815,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 48,
- 96, 0, 647
+ 2,
+ -1, 1, 536,
+ 80, 0, 1280
};
static int parser_action_row1546[] = {
2,
- -1, 3, 1545,
- 96, 0, 1609
+ -1, 1, 537,
+ 80, 0, 1280
};
static int parser_action_row1547[] = {
- 27,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 52, 0, 814,
- 54, 0, 627,
- 57, 0, 815,
- 74, 0, 628,
- 75, 0, 629,
- 76, 0, 630,
- 77, 0, 631,
- 78, 0, 632,
- 79, 0, 633,
- 80, 0, 634,
- 81, 0, 635,
- 82, 0, 636,
- 83, 0, 637,
- 84, 0, 638,
- 85, 0, 639,
- 86, 0, 640,
- 87, 0, 641,
- 88, 0, 642,
- 89, 0, 643,
- 90, 0, 644,
- 91, 0, 645,
- 92, 0, 646,
- 95, 0, 48,
- 96, 0, 647
+ 2,
+ -1, 1, 538,
+ 80, 0, 1280
};
static int parser_action_row1548[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 539,
+ 80, 0, 1280
};
static int parser_action_row1549[] = {
- 1,
- -1, 1, 992
+ 2,
+ -1, 1, 540,
+ 80, 0, 1280
};
static int parser_action_row1550[] = {
- 1,
- -1, 1, 997
+ 2,
+ -1, 1, 541,
+ 80, 0, 1280
};
static int parser_action_row1551[] = {
- 1,
- -1, 1, 994
+ 2,
+ -1, 1, 542,
+ 80, 0, 1280
};
static int parser_action_row1552[] = {
- 3,
- -1, 3, 1551,
- 47, 0, 384,
- 95, 0, 385
+ 2,
+ -1, 1, 547,
+ 82, 0, 1289
};
static int parser_action_row1553[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 549,
+ 88, 0, 1290,
+ 91, 0, 1291
};
static int parser_action_row1554[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 551,
+ 74, 0, 1292,
+ 75, 0, 1293
};
static int parser_action_row1555[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 552,
+ 74, 0, 1292,
+ 75, 0, 1293
};
static int parser_action_row1556[] = {
- 13,
- -1, 1, 743,
- 59, 0, 1617,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 4,
+ -1, 1, 554,
+ 76, 0, 1294,
+ 78, 0, 1295,
+ 79, 0, 1296
};
static int parser_action_row1557[] = {
- 13,
- -1, 1, 734,
- 59, 0, 1619,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 4,
+ -1, 1, 555,
+ 76, 0, 1294,
+ 78, 0, 1295,
+ 79, 0, 1296
};
static int parser_action_row1558[] = {
- 14,
- -1, 1, 746,
- 52, 0, 265,
- 59, 0, 1621,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 557
};
static int parser_action_row1559[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 558
};
static int parser_action_row1560[] = {
- 13,
- -1, 1, 757,
- 59, 0, 1625,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 559
};
static int parser_action_row1561[] = {
- 2,
- -1, 1, 789,
- 56, 0, 1353
+ 1,
+ -1, 1, 561
};
static int parser_action_row1562[] = {
- 15,
- -1, 1, 750,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 1627,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 2,
+ -1, 1, 595,
+ 52, 0, 277
};
static int parser_action_row1563[] = {
- 22,
- -1, 1, 454,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 1630
-};
-static int parser_action_row1564[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row1564[] = {
+ 3,
+ -1, 1, 577,
+ 52, 0, 277,
+ 58, 0, 215
+};
static int parser_action_row1565[] = {
- 1,
- -1, 1, 359
+ 2,
+ -1, 3, 1564,
+ 98, 0, 1641
};
static int parser_action_row1566[] = {
- 22,
- -1, 1, 456,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 1, 455,
+ 97, 0, 1642
};
static int parser_action_row1567[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 457,
+ 96, 0, 53,
+ 97, 0, 1643
};
static int parser_action_row1568[] = {
1,
- -1, 1, 766
+ -1, 1, 584
};
static int parser_action_row1569[] = {
- 2,
+ 4,
-1, 3, 1568,
- 24, 0, 1634
+ 6, 0, 792,
+ 17, 0, 793,
+ 97, 0, 794
};
static int parser_action_row1570[] = {
1,
- -1, 1, 926
+ -1, 1, 121
};
static int parser_action_row1571[] = {
- 2,
- -1, 3, 1570,
- 49, 0, 188
+ 1,
+ -1, 1, 109
};
static int parser_action_row1572[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 116
};
static int parser_action_row1573[] = {
- 1,
- -1, 1, 930
+ 25,
+ -1, 3, 1572,
+ 41, 0, 1313,
+ 47, 0, 396,
+ 54, 0, 640,
+ 74, 0, 641,
+ 75, 0, 642,
+ 76, 0, 643,
+ 77, 0, 644,
+ 78, 0, 645,
+ 79, 0, 646,
+ 80, 0, 647,
+ 81, 0, 648,
+ 82, 0, 649,
+ 83, 0, 650,
+ 84, 0, 651,
+ 85, 0, 652,
+ 86, 0, 653,
+ 87, 0, 654,
+ 88, 0, 655,
+ 89, 0, 656,
+ 90, 0, 657,
+ 91, 0, 658,
+ 92, 0, 659,
+ 96, 0, 424,
+ 97, 0, 660
};
static int parser_action_row1574[] = {
- 2,
- -1, 3, 1573,
- 49, 0, 188
+ 1,
+ -1, 1, 1069
};
static int parser_action_row1575[] = {
- 2,
- -1, 1, 192,
- 24, 1, 913
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
-static int parser_action_row1576[] = {
- 2,
- -1, 1, 182,
- 24, 1, 903
+static int parser_action_row1576[] = {
+ 1,
+ -1, 1, 130
};
static int parser_action_row1577[] = {
- 2,
- -1, 1, 194,
- 24, 1, 915
+ 1,
+ -1, 1, 41
};
static int parser_action_row1578[] = {
- 2,
- -1, 1, 184,
- 24, 1, 905
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1579[] = {
- 25,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 474,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 2,
+ -1, 3, 1578,
+ 9, 0, 1649
};
static int parser_action_row1580[] = {
- 39,
- -1, 1, 440,
- 12, 0, 107,
- 22, 0, 108,
- 31, 0, 109,
- 38, 0, 110,
- 40, 0, 111,
- 41, 1, 456,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 48, 0, 116,
- 52, 0, 117,
- 54, 1, 333,
- 59, 0, 1162,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218,
- 73, 1, 333,
- 74, 0, 118,
- 75, 0, 119,
- 83, 0, 120,
- 95, 0, 48,
- 96, 0, 121,
- 97, 1, 456,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 4,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1581[] = {
- 1,
- -1, 1, 267
+ 2,
+ -1, 3, 1580,
+ 96, 0, 1324
};
static int parser_action_row1582[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1061
};
static int parser_action_row1583[] = {
- 2,
- -1, 3, 1582,
- 53, 0, 1641
+ 5,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 52, 0, 828,
+ 57, 0, 829
};
static int parser_action_row1584[] = {
- 1,
- -1, 1, 403
+ 2,
+ -1, 3, 1583,
+ 57, 0, 829
};
static int parser_action_row1585[] = {
- 1,
- -1, 1, 425
+ 3,
+ -1, 3, 1584,
+ 14, 0, 1654,
+ 15, 0, 1655
};
static int parser_action_row1586[] = {
- 25,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 434,
- 27, 0, 435,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 5,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 52, 0, 828,
+ 57, 0, 829
};
static int parser_action_row1587[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 155,
+ 57, 0, 333
};
static int parser_action_row1588[] = {
- 1,
- -1, 1, 796
+ 4,
+ -1, 1, 124,
+ 4, 0, 977,
+ 14, 0, 978,
+ 15, 0, 1659
};
static int parser_action_row1589[] = {
- 3,
- -1, 3, 1588,
- 95, 0, 48,
- 96, 0, 1644
+ 5,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 52, 0, 828,
+ 57, 0, 829
};
static int parser_action_row1590[] = {
- 2,
+ 3,
-1, 3, 1589,
- 97, 0, 1647
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1591[] = {
- 1,
- -1, 1, 519
+ 2,
+ -1, 3, 1590,
+ 57, 0, 1665
};
static int parser_action_row1592[] = {
2,
- -1, 1, 401,
- 94, 0, 195
+ -1, 3, 1591,
+ 53, 0, 1666
};
static int parser_action_row1593[] = {
1,
- -1, 1, 512
+ -1, 1, 671
};
static int parser_action_row1594[] = {
1,
- -1, 1, 581
+ -1, 1, 690
};
static int parser_action_row1595[] = {
- 3,
- -1, 3, 1594,
- 31, 0, 1649,
- 52, 0, 1650
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1596[] = {
- 1,
- -1, 1, 563
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1597[] = {
- 1,
- -1, 1, 561
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1598[] = {
- 2,
- -1, 1, 569,
- 52, 0, 265
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1599[] = {
- 3,
- -1, 1, 577,
- 52, 0, 265,
- 58, 0, 206
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1600[] = {
- 2,
- -1, 1, 454,
- 96, 0, 1653
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1601[] = {
- 56,
- -1, 1, 456,
- 0, 0, 83,
- 1, 0, 84,
- 12, 0, 107,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 108,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 109,
- 33, 0, 1425,
- 34, 0, 1426,
- 35, 0, 1427,
- 36, 0, 1428,
- 37, 0, 38,
- 38, 0, 110,
- 40, 0, 111,
- 42, 0, 112,
- 43, 0, 113,
- 44, 0, 114,
- 45, 0, 115,
- 47, 0, 384,
- 48, 0, 116,
- 50, 0, 44,
- 51, 0, 1429,
- 52, 0, 1654,
- 54, 0, 606,
- 74, 0, 1431,
- 75, 0, 1432,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 1433,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 1434,
- 98, 0, 122,
- 99, 0, 123,
- 100, 0, 124,
- 101, 0, 125,
- 102, 0, 54,
- 105, 0, 126
+ 13,
+ -1, 1, 757,
+ 59, 0, 1673,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1602[] = {
- 1,
- -1, 1, 123
+ 25,
+ -1, 1, 458,
+ 12, 0, 730,
+ 46, 0, 731,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 96, 0, 53,
+ 97, 0, 1675
};
static int parser_action_row1603[] = {
- 5,
- -1, 3, 1602,
- 31, 0, 1658,
- 47, 0, 1659,
- 52, 0, 1660,
- 95, 0, 385
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1604[] = {
- 1,
- -1, 1, 38
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1605[] = {
- 1,
- -1, 1, 36
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1606[] = {
- 5,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 52, 0, 814,
- 57, 0, 815
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1607[] = {
- 2,
- -1, 3, 1606,
- 57, 0, 815
+ 13,
+ -1, 1, 761,
+ 59, 0, 1684,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1608[] = {
- 3,
- -1, 3, 1607,
- 14, 0, 1664,
- 15, 0, 1665
+ 14,
+ -1, 1, 760,
+ 52, 0, 277,
+ 59, 0, 1686,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1609[] = {
- 5,
- -1, 1, 474,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 52, 0, 814,
- 57, 0, 815
+ 1, 0, 2
};
static int parser_action_row1610[] = {
- 2,
- -1, 1, 153,
- 57, 0, 321
+ 1,
+ -1, 1, 363
};
static int parser_action_row1611[] = {
- 4,
- -1, 1, 122,
- 4, 0, 963,
- 14, 0, 964,
- 15, 0, 1669
+ 22,
+ -1, 1, 458,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1612[] = {
- 5,
- -1, 1, 474,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 52, 0, 814,
- 57, 0, 815
+ 1, 0, 2
};
static int parser_action_row1613[] = {
- 3,
- -1, 3, 1612,
- 47, 0, 384,
- 95, 0, 385
+ 1,
+ -1, 1, 778
};
static int parser_action_row1614[] = {
2,
-1, 3, 1613,
- 57, 0, 1675
+ 24, 0, 1692
};
static int parser_action_row1615[] = {
- 2,
- -1, 3, 1614,
- 53, 0, 1676
+ 1,
+ -1, 1, 938
};
static int parser_action_row1616[] = {
- 1,
- -1, 1, 659
+ 2,
+ -1, 3, 1615,
+ 49, 0, 197
};
static int parser_action_row1617[] = {
- 1,
- -1, 1, 678
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1618[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 942
};
static int parser_action_row1619[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1618,
+ 49, 0, 197
};
static int parser_action_row1620[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 194,
+ 24, 1, 925
};
static int parser_action_row1621[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 184,
+ 24, 1, 915
};
static int parser_action_row1622[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 196,
+ 24, 1, 927
};
static int parser_action_row1623[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 186,
+ 24, 1, 917
};
static int parser_action_row1624[] = {
- 13,
- -1, 1, 745,
- 59, 0, 1683,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 25,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 486,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1625[] = {
- 25,
- -1, 1, 456,
- 12, 0, 716,
- 46, 0, 717,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 95, 0, 48,
- 96, 0, 1685
+ 39,
+ -1, 1, 442,
+ 12, 0, 116,
+ 22, 0, 117,
+ 31, 0, 118,
+ 38, 0, 119,
+ 40, 0, 120,
+ 41, 1, 458,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 48, 0, 125,
+ 52, 0, 126,
+ 54, 1, 337,
+ 59, 0, 1187,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 73, 1, 337,
+ 74, 0, 127,
+ 75, 0, 128,
+ 83, 0, 129,
+ 96, 0, 53,
+ 97, 0, 130,
+ 98, 1, 458,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1626[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 271
};
static int parser_action_row1627[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1628[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1627,
+ 53, 0, 1699
};
static int parser_action_row1629[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 407
};
static int parser_action_row1630[] = {
- 13,
- -1, 1, 749,
- 59, 0, 1694,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 427
};
static int parser_action_row1631[] = {
- 14,
- -1, 1, 748,
- 52, 0, 265,
- 59, 0, 1696,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 25,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 446,
+ 27, 0, 447,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1632[] = {
- 2,
- -1, 3, 1631,
- 53, 0, 1699
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1633[] = {
1,
- -1, 1, 687
+ -1, 1, 808
};
static int parser_action_row1634[] = {
- 2,
+ 3,
-1, 3, 1633,
- 53, 0, 1700
+ 96, 0, 53,
+ 97, 0, 1702
};
static int parser_action_row1635[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1333,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1634,
+ 98, 0, 1705
};
static int parser_action_row1636[] = {
- 2,
- -1, 1, 265,
- 24, 1, 925
+ 1,
+ -1, 1, 531
};
static int parser_action_row1637[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1638[] = {
- 2,
- -1, 1, 269,
- 24, 1, 929
+ 1,
+ -1, 1, 524
};
static int parser_action_row1639[] = {
- 2,
- -1, 1, 193,
- 24, 1, 914
+ 1,
+ -1, 1, 593
};
static int parser_action_row1640[] = {
- 2,
- -1, 1, 183,
- 24, 1, 904
+ 3,
+ -1, 3, 1639,
+ 31, 0, 1707,
+ 52, 0, 1708
};
static int parser_action_row1641[] = {
1,
- -1, 1, 280
+ -1, 1, 575
};
static int parser_action_row1642[] = {
- 2,
- -1, 1, 401,
- 94, 0, 195
+ 1,
+ -1, 1, 573
};
static int parser_action_row1643[] = {
- 1,
- -1, 1, 387
+ 2,
+ -1, 1, 581,
+ 52, 0, 277
};
static int parser_action_row1644[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 589,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1645[] = {
- 3,
- -1, 1, 586,
- 52, 0, 265,
- 58, 0, 206
+ 2,
+ -1, 1, 456,
+ 97, 0, 1711
};
static int parser_action_row1646[] = {
- 2,
- -1, 3, 1645,
- 96, 0, 1706
+ 57,
+ -1, 1, 458,
+ 0, 0, 88,
+ 1, 0, 89,
+ 12, 0, 116,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 117,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 118,
+ 33, 0, 1329,
+ 34, 0, 1330,
+ 35, 0, 1331,
+ 36, 0, 1332,
+ 37, 0, 43,
+ 38, 0, 119,
+ 40, 0, 120,
+ 42, 0, 121,
+ 43, 0, 122,
+ 44, 0, 123,
+ 45, 0, 124,
+ 47, 0, 396,
+ 48, 0, 125,
+ 50, 0, 49,
+ 51, 0, 1333,
+ 52, 0, 1712,
+ 54, 0, 619,
+ 74, 0, 1335,
+ 75, 0, 1336,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 1337,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 95, 0, 90,
+ 96, 0, 424,
+ 97, 0, 1338,
+ 99, 0, 131,
+ 100, 0, 132,
+ 101, 0, 133,
+ 102, 0, 134,
+ 103, 0, 59,
+ 106, 0, 135
};
static int parser_action_row1647[] = {
- 3,
- -1, 3, 1646,
- 95, 0, 48,
- 96, 0, 1707
+ 1,
+ -1, 1, 125
};
static int parser_action_row1648[] = {
- 2,
- -1, 1, 558,
- 73, 1, 561
+ 5,
+ -1, 3, 1647,
+ 31, 0, 1716,
+ 47, 0, 1717,
+ 52, 0, 1718,
+ 96, 0, 397
};
static int parser_action_row1649[] = {
1,
- -1, 1, 513
+ -1, 1, 42
};
static int parser_action_row1650[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 28
};
static int parser_action_row1651[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 3, 1650,
+ 9, 0, 1720
};
static int parser_action_row1652[] = {
1,
- -1, 1, 567
+ -1, 1, 40
};
static int parser_action_row1653[] = {
- 1,
- -1, 1, 575
+ 4,
+ -1, 1, 124,
+ 4, 0, 977,
+ 14, 0, 978,
+ 15, 0, 1721
};
static int parser_action_row1654[] = {
2,
- -1, 1, 573,
- 52, 0, 265
+ -1, 1, 78,
+ 14, 0, 969
};
static int parser_action_row1655[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 5,
+ -1, 1, 30,
+ 0, 0, 88,
+ 1, 0, 89,
+ 13, 0, 32,
+ 95, 0, 90
};
static int parser_action_row1656[] = {
- 3,
- -1, 3, 1655,
- 0, 0, 83,
- 1, 0, 84
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1657[] = {
- 1,
- -1, 1, 413
+ 2,
+ -1, 3, 1656,
+ 15, 0, 1729
};
static int parser_action_row1658[] = {
3,
-1, 3, 1657,
- 0, 0, 83,
- 1, 0, 84
+ 14, 0, 1654,
+ 15, 0, 1730
};
static int parser_action_row1659[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 4,
+ -1, 1, 78,
+ 14, 0, 1732,
+ 15, 0, 1733,
+ 59, 0, 1734
};
static int parser_action_row1660[] = {
- 2,
- -1, 1, 133,
- 95, 0, 590
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1661[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 124,
+ 4, 0, 977,
+ 15, 0, 1738
};
static int parser_action_row1662[] = {
- 1,
- -1, 1, 131
+ 3,
+ -1, 3, 1661,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1663[] = {
- 4,
- -1, 1, 122,
- 4, 0, 963,
- 14, 0, 964,
- 15, 0, 1717
+ 1,
+ -1, 1, 51
};
static int parser_action_row1664[] = {
- 2,
- -1, 1, 76,
- 14, 0, 955
+ 4,
+ -1, 1, 124,
+ 4, 0, 977,
+ 14, 0, 978,
+ 15, 0, 1741
};
static int parser_action_row1665[] = {
- 4,
- -1, 1, 28,
- 0, 0, 83,
- 1, 0, 84,
- 13, 0, 26
+ 2,
+ -1, 1, 78,
+ 14, 0, 969
};
static int parser_action_row1666[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1667[] = {
2,
- -1, 3, 1666,
- 15, 0, 1725
+ -1, 1, 422,
+ 94, 0, 204
};
static int parser_action_row1668[] = {
- 3,
- -1, 3, 1667,
- 14, 0, 1664,
- 15, 0, 1726
+ 1,
+ -1, 1, 670
};
static int parser_action_row1669[] = {
- 4,
- -1, 1, 76,
- 14, 0, 1728,
- 15, 0, 1729,
- 59, 0, 1730
+ 1,
+ -1, 1, 689
};
static int parser_action_row1670[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 661
};
static int parser_action_row1671[] = {
- 3,
- -1, 1, 122,
- 4, 0, 963,
- 15, 0, 1734
+ 1,
+ -1, 1, 680
};
static int parser_action_row1672[] = {
- 3,
- -1, 3, 1671,
- 28, 0, 33,
- 108, 0, 56
+ 1,
+ -1, 1, 673
};
static int parser_action_row1673[] = {
1,
- -1, 1, 49
+ -1, 1, 692
};
static int parser_action_row1674[] = {
- 4,
- -1, 1, 122,
- 4, 0, 963,
- 14, 0, 964,
- 15, 0, 1737
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1675[] = {
- 2,
- -1, 1, 76,
- 14, 0, 955
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1676[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 15,
+ -1, 1, 748,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 1750,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1677[] = {
2,
- -1, 1, 420,
- 94, 0, 195
+ -1, 3, 1676,
+ 98, 0, 1753
};
static int parser_action_row1678[] = {
- 1,
- -1, 1, 658
+ 22,
+ -1, 1, 455,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 1754
};
static int parser_action_row1679[] = {
1,
- -1, 1, 677
+ -1, 1, 805
};
static int parser_action_row1680[] = {
- 1,
- -1, 1, 649
+ 23,
+ -1, 1, 457,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 96, 0, 53,
+ 97, 0, 1755
};
static int parser_action_row1681[] = {
1,
- -1, 1, 668
+ -1, 1, 678
};
static int parser_action_row1682[] = {
1,
- -1, 1, 661
+ -1, 1, 697
};
static int parser_action_row1683[] = {
1,
- -1, 1, 680
+ -1, 1, 677
};
static int parser_action_row1684[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 696
};
static int parser_action_row1685[] = {
24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1686[] = {
- 15,
- -1, 1, 736,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 1746,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1687[] = {
- 2,
- -1, 3, 1686,
- 97, 0, 1749
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1688[] = {
- 22,
- -1, 1, 453,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 1750
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1689[] = {
- 1,
- -1, 1, 793
+ 13,
+ -1, 1, 759,
+ 59, 0, 1761,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1690[] = {
- 23,
- -1, 1, 455,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 95, 0, 48,
- 96, 0, 1751
+ 2,
+ -1, 3, 1689,
+ 53, 0, 1763
};
static int parser_action_row1691[] = {
1,
- -1, 1, 666
+ -1, 1, 699
};
static int parser_action_row1692[] = {
- 1,
- -1, 1, 685
+ 2,
+ -1, 3, 1691,
+ 53, 0, 1764
};
static int parser_action_row1693[] = {
- 1,
- -1, 1, 665
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1381,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1694[] = {
- 1,
- -1, 1, 684
+ 2,
+ -1, 1, 269,
+ 24, 1, 937
};
static int parser_action_row1695[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1696[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 273,
+ 24, 1, 941
};
static int parser_action_row1697[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 195,
+ 24, 1, 926
};
static int parser_action_row1698[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 185,
+ 24, 1, 916
};
static int parser_action_row1699[] = {
- 13,
- -1, 1, 747,
- 59, 0, 1757,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 284
};
static int parser_action_row1700[] = {
- 1,
- -1, 1, 360
+ 2,
+ -1, 1, 405,
+ 94, 0, 204
};
static int parser_action_row1701[] = {
1,
- -1, 1, 767
+ -1, 1, 391
};
static int parser_action_row1702[] = {
- 1,
- -1, 1, 922
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1703[] = {
- 2,
- -1, 3, 1702,
- 15, 0, 1759
+ 3,
+ -1, 1, 598,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1704[] = {
- 1,
- -1, 1, 408
+ 2,
+ -1, 3, 1703,
+ 97, 0, 1770
};
static int parser_action_row1705[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1704,
+ 96, 0, 53,
+ 97, 0, 1771
};
static int parser_action_row1706[] = {
- 1,
- -1, 1, 585
+ 2,
+ -1, 1, 570,
+ 73, 1, 573
};
static int parser_action_row1707[] = {
- 2,
- -1, 1, 588,
- 52, 0, 265
+ 1,
+ -1, 1, 525
};
static int parser_action_row1708[] = {
3,
- -1, 1, 592,
- 52, 0, 265,
- 58, 0, 206
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1709[] = {
- 2,
- -1, 3, 1708,
- 96, 0, 1763
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1710[] = {
- 2,
- -1, 3, 1709,
- 45, 0, 1764
+ 1,
+ -1, 1, 579
};
static int parser_action_row1711[] = {
- 4,
- -1, 3, 1710,
- 31, 0, 1765,
- 47, 0, 384,
- 95, 0, 385
+ 1,
+ -1, 1, 587
};
static int parser_action_row1712[] = {
- 1,
- -1, 1, 571
+ 2,
+ -1, 1, 585,
+ 52, 0, 277
};
static int parser_action_row1713[] = {
- 54,
- -1, 1, 456,
- 12, 0, 161,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 162,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 31, 0, 163,
- 33, 0, 387,
- 34, 0, 388,
- 35, 0, 389,
- 36, 0, 390,
- 37, 0, 38,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 47, 0, 384,
- 48, 0, 166,
- 50, 0, 44,
- 51, 0, 391,
- 52, 0, 46,
- 54, 0, 392,
- 74, 0, 393,
- 75, 0, 394,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 402,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 94, 0, 195,
- 95, 0, 412,
- 96, 0, 413,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1714[] = {
- 1,
- -1, 1, 414
+ 4,
+ -1, 3, 1713,
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row1715[] = {
1,
- -1, 1, 417
+ -1, 1, 415
};
static int parser_action_row1716[] = {
- 2,
+ 4,
-1, 3, 1715,
- 47, 0, 1768
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
};
static int parser_action_row1717[] = {
- 4,
- -1, 3, 1716,
- 31, 0, 1769,
- 47, 0, 1770,
- 95, 0, 385
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1718[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 135,
+ 96, 0, 603
};
static int parser_action_row1719[] = {
3,
- -1, 1, 122,
- 4, 0, 963,
- 15, 0, 1773
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1720[] = {
- 3,
- -1, 3, 1719,
- 28, 0, 33,
- 108, 0, 56
+ 1,
+ -1, 1, 133
};
static int parser_action_row1721[] = {
1,
- -1, 1, 48
+ -1, 1, 29
};
static int parser_action_row1722[] = {
- 1,
- -1, 1, 67
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1723[] = {
- 1,
- -1, 1, 77
+ 3,
+ -1, 1, 124,
+ 4, 0, 977,
+ 15, 0, 1782
};
static int parser_action_row1724[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 3, 1723,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1725[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 1,
+ -1, 1, 50
};
static int parser_action_row1726[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 69
};
static int parser_action_row1727[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 79
};
static int parser_action_row1728[] = {
- 2,
- -1, 3, 1727,
- 15, 0, 1780
+ 4,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1729[] = {
- 4,
- -1, 1, 28,
- 0, 0, 83,
- 1, 0, 84,
- 13, 0, 26
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1730[] = {
- 33,
- -1, 1, 456,
+ 34,
+ -1, 1, 458,
0, 0, 1,
1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1731[] = {
- 3,
- -1, 1, 474,
+ 34,
+ -1, 1, 458,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1732[] = {
- 1,
- -1, 1, 57
+ 2,
+ -1, 3, 1731,
+ 15, 0, 1789
};
static int parser_action_row1733[] = {
- 2,
- -1, 3, 1732,
- 15, 0, 1785
+ 5,
+ -1, 1, 30,
+ 0, 0, 88,
+ 1, 0, 89,
+ 13, 0, 32,
+ 95, 0, 90
};
static int parser_action_row1734[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1735[] = {
- 33,
- -1, 1, 456,
+ 3,
+ -1, 1, 487,
0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1, 0, 2
};
static int parser_action_row1736[] = {
- 3,
- -1, 3, 1735,
- 28, 0, 33,
- 108, 0, 56
+ 1,
+ -1, 1, 59
};
static int parser_action_row1737[] = {
- 1,
- -1, 1, 68
+ 2,
+ -1, 3, 1736,
+ 15, 0, 1794
};
static int parser_action_row1738[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1739[] = {
- 3,
- -1, 1, 122,
- 4, 0, 963,
- 15, 0, 1790
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1740[] = {
3,
-1, 3, 1739,
- 28, 0, 33,
- 108, 0, 56
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1741[] = {
1,
- -1, 1, 50
+ -1, 1, 70
};
static int parser_action_row1742[] = {
- 1,
- -1, 1, 41
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1743[] = {
- 1,
- -1, 1, 1004
+ 3,
+ -1, 1, 124,
+ 4, 0, 977,
+ 15, 0, 1799
};
static int parser_action_row1744[] = {
- 1,
- -1, 1, 421
+ 3,
+ -1, 3, 1743,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1745[] = {
1,
- -1, 1, 660
+ -1, 1, 52
};
static int parser_action_row1746[] = {
1,
- -1, 1, 679
+ -1, 1, 43
};
static int parser_action_row1747[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 1016
};
static int parser_action_row1748[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 423
};
static int parser_action_row1749[] = {
- 13,
- -1, 1, 735,
- 59, 0, 1795,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 672
};
static int parser_action_row1750[] = {
- 13,
- -1, 1, 733,
- 59, 0, 1797,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 691
};
static int parser_action_row1751[] = {
- 14,
- -1, 1, 738,
- 52, 0, 265,
- 59, 0, 1799,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1752[] = {
- 15,
- -1, 1, 742,
- 52, 0, 265,
- 58, 0, 206,
- 59, 0, 1802,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1753[] = {
- 22,
- -1, 1, 454,
- 54, 0, 606,
- 74, 0, 607,
- 75, 0, 608,
- 76, 0, 395,
- 77, 0, 396,
- 78, 0, 397,
- 79, 0, 398,
- 80, 0, 399,
- 81, 0, 400,
- 82, 0, 401,
- 83, 0, 609,
- 84, 0, 403,
- 85, 0, 404,
- 86, 0, 405,
- 87, 0, 406,
- 88, 0, 407,
- 89, 0, 408,
- 90, 0, 409,
- 91, 0, 410,
- 92, 0, 411,
- 96, 0, 1805
+ 13,
+ -1, 1, 747,
+ 59, 0, 1804,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1754[] = {
- 1,
- -1, 1, 664
+ 13,
+ -1, 1, 745,
+ 59, 0, 1806,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1755[] = {
- 1,
- -1, 1, 683
+ 14,
+ -1, 1, 750,
+ 52, 0, 277,
+ 59, 0, 1808,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1756[] = {
- 1,
- -1, 1, 663
+ 15,
+ -1, 1, 754,
+ 52, 0, 277,
+ 58, 0, 215,
+ 59, 0, 1811,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1757[] = {
- 1,
- -1, 1, 682
+ 22,
+ -1, 1, 456,
+ 54, 0, 619,
+ 74, 0, 620,
+ 75, 0, 621,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 622,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 97, 0, 1814
};
static int parser_action_row1758[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 676
};
static int parser_action_row1759[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 695
};
static int parser_action_row1760[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 1013,
- 12, 0, 873,
- 15, 0, 874,
- 16, 0, 28,
- 22, 0, 875,
- 25, 0, 877,
- 26, 0, 878,
- 27, 0, 879,
- 33, 0, 880,
- 34, 0, 881,
- 35, 0, 882,
- 36, 0, 883,
- 37, 0, 884,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 885,
- 51, 0, 886,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 887,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 675
};
static int parser_action_row1761[] = {
- 2,
- -1, 3, 1760,
- 24, 0, 1810
+ 1,
+ -1, 1, 694
};
static int parser_action_row1762[] = {
- 1,
- -1, 1, 587
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1763[] = {
- 1,
- -1, 1, 591
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1764[] = {
- 2,
- -1, 1, 590,
- 52, 0, 265
+ 1,
+ -1, 1, 364
};
static int parser_action_row1765[] = {
1,
- -1, 1, 595
+ -1, 1, 779
};
static int parser_action_row1766[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 934
};
static int parser_action_row1767[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1768[] = {
2,
- -1, 3, 1767,
- 53, 0, 1814
+ -1, 3, 1766,
+ 15, 0, 1817
};
-static int parser_action_row1769[] = {
+static int parser_action_row1768[] = {
1,
- -1, 1, 135
+ -1, 1, 411
};
-static int parser_action_row1770[] = {
+static int parser_action_row1769[] = {
3,
- -1, 1, 474,
+ -1, 1, 487,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row1770[] = {
+ 1,
+ -1, 1, 597
+};
static int parser_action_row1771[] = {
- 4,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2,
- 95, 0, 590
+ 2,
+ -1, 1, 600,
+ 52, 0, 277
};
static int parser_action_row1772[] = {
3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 604,
+ 52, 0, 277,
+ 58, 0, 215
};
static int parser_action_row1773[] = {
2,
- -1, 1, 467,
- 9, 0, 1294
+ -1, 3, 1772,
+ 97, 0, 1821
};
static int parser_action_row1774[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1773,
+ 45, 0, 1822
};
static int parser_action_row1775[] = {
- 3,
+ 4,
-1, 3, 1774,
- 28, 0, 33,
- 108, 0, 56
+ 31, 0, 1823,
+ 47, 0, 396,
+ 96, 0, 397
};
static int parser_action_row1776[] = {
1,
- -1, 1, 55
+ -1, 1, 583
};
static int parser_action_row1777[] = {
- 1,
- -1, 1, 78
+ 54,
+ -1, 1, 458,
+ 12, 0, 170,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 171,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 31, 0, 172,
+ 33, 0, 399,
+ 34, 0, 400,
+ 35, 0, 401,
+ 36, 0, 402,
+ 37, 0, 43,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 47, 0, 396,
+ 48, 0, 175,
+ 50, 0, 49,
+ 51, 0, 403,
+ 52, 0, 51,
+ 54, 0, 404,
+ 74, 0, 405,
+ 75, 0, 406,
+ 76, 0, 407,
+ 77, 0, 408,
+ 78, 0, 409,
+ 79, 0, 410,
+ 80, 0, 411,
+ 81, 0, 412,
+ 82, 0, 413,
+ 83, 0, 414,
+ 84, 0, 415,
+ 85, 0, 416,
+ 86, 0, 417,
+ 87, 0, 418,
+ 88, 0, 419,
+ 89, 0, 420,
+ 90, 0, 421,
+ 91, 0, 422,
+ 92, 0, 423,
+ 94, 0, 204,
+ 96, 0, 424,
+ 97, 0, 425,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1778[] = {
1,
- -1, 1, 63
+ -1, 1, 416
};
static int parser_action_row1779[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 1,
+ -1, 1, 419
};
static int parser_action_row1780[] = {
2,
- -1, 1, 467,
- 9, 0, 1294
+ -1, 3, 1779,
+ 47, 0, 1826
};
static int parser_action_row1781[] = {
- 33,
- -1, 1, 456,
- 0, 0, 1,
- 1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 4,
+ -1, 3, 1780,
+ 31, 0, 1827,
+ 47, 0, 1828,
+ 96, 0, 397
};
static int parser_action_row1782[] = {
2,
- -1, 1, 74,
- 15, 1, 77
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1783[] = {
- 3,
- -1, 1, 474,
+ 34,
+ -1, 1, 458,
0, 0, 1,
- 1, 0, 2
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1784[] = {
- 2,
- -1, 1, 59,
- 9, 0, 1825
+ 3,
+ -1, 3, 1783,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1785[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 57
};
static int parser_action_row1786[] = {
- 33,
- -1, 1, 456,
+ 5,
+ -1, 1, 485,
0, 0, 1,
1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 15, 1, 80,
+ 95, 0, 3
};
static int parser_action_row1787[] = {
1,
- -1, 1, 51
+ -1, 1, 65
};
static int parser_action_row1788[] = {
2,
- -1, 1, 467,
- 9, 0, 1294
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1789[] = {
- 1,
- -1, 1, 70
-};
-static int parser_action_row1790[] = {
2,
- -1, 1, 467,
- 9, 0, 1294
+ -1, 1, 469,
+ 9, 0, 1320
};
-static int parser_action_row1791[] = {
- 33,
- -1, 1, 456,
+static int parser_action_row1790[] = {
+ 34,
+ -1, 1, 458,
0, 0, 1,
1, 0, 2,
- 9, 0, 576,
- 12, 0, 25,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 29,
- 25, 0, 30,
- 26, 0, 31,
- 27, 0, 32,
- 33, 0, 34,
- 34, 0, 35,
- 35, 0, 36,
- 36, 0, 37,
- 37, 0, 38,
- 38, 0, 39,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 50, 0, 44,
- 51, 0, 45,
- 52, 0, 46,
- 54, 0, 47,
- 95, 0, 48,
- 96, 0, 49,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
+};
+static int parser_action_row1791[] = {
+ 2,
+ -1, 1, 76,
+ 15, 1, 79
};
static int parser_action_row1792[] = {
- 3,
- -1, 3, 1791,
- 28, 0, 33,
- 108, 0, 56
+ 4,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 95, 0, 3
};
static int parser_action_row1793[] = {
- 1,
- -1, 1, 69
+ 2,
+ -1, 1, 61,
+ 9, 0, 1837
};
static int parser_action_row1794[] = {
- 1,
- -1, 1, 651
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1795[] = {
- 1,
- -1, 1, 670
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1796[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 53
};
static int parser_action_row1797[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1798[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 72
};
static int parser_action_row1799[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1800[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 589,
+ 12, 0, 31,
+ 15, 0, 33,
+ 16, 0, 34,
+ 22, 0, 35,
+ 25, 0, 36,
+ 26, 0, 37,
+ 27, 0, 38,
+ 33, 0, 39,
+ 34, 0, 40,
+ 35, 0, 41,
+ 36, 0, 42,
+ 37, 0, 43,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 49,
+ 51, 0, 50,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 54,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1801[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 3,
+ -1, 3, 1800,
+ 28, 0, 84,
+ 109, 0, 85
};
static int parser_action_row1802[] = {
- 13,
- -1, 1, 737,
- 59, 0, 1838,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 71
};
static int parser_action_row1803[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 663
};
static int parser_action_row1804[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 682
};
static int parser_action_row1805[] = {
- 13,
- -1, 1, 741,
- 59, 0, 1842,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1806[] = {
- 14,
- -1, 1, 740,
- 52, 0, 265,
- 59, 0, 1844,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1807[] = {
- 1,
- -1, 1, 662
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1808[] = {
- 1,
- -1, 1, 681
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1809[] = {
- 1,
- -1, 1, 928
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1810[] = {
- 2,
- -1, 3, 1809,
- 49, 0, 188
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1811[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 13,
+ -1, 1, 749,
+ 59, 0, 1850,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1812[] = {
- 1,
- -1, 1, 589
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1813[] = {
- 2,
- -1, 3, 1812,
- 45, 0, 1849
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1814[] = {
- 2,
- -1, 3, 1813,
- 53, 0, 1850
+ 13,
+ -1, 1, 753,
+ 59, 0, 1854,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1815[] = {
- 4,
- -1, 3, 1814,
- 0, 0, 83,
- 1, 0, 84,
- 94, 0, 195
+ 14,
+ -1, 1, 752,
+ 52, 0, 277,
+ 59, 0, 1856,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1816[] = {
- 2,
- -1, 3, 1815,
- 47, 0, 1853
+ 1,
+ -1, 1, 674
};
static int parser_action_row1817[] = {
- 2,
- -1, 3, 1816,
- 53, 0, 1854
+ 1,
+ -1, 1, 693
};
static int parser_action_row1818[] = {
- 2,
- -1, 3, 1817,
- 53, 0, 1855
+ 34,
+ -1, 1, 458,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1035,
+ 12, 0, 887,
+ 15, 0, 888,
+ 16, 0, 34,
+ 22, 0, 889,
+ 25, 0, 891,
+ 26, 0, 892,
+ 27, 0, 893,
+ 33, 0, 894,
+ 34, 0, 895,
+ 35, 0, 896,
+ 36, 0, 897,
+ 37, 0, 898,
+ 38, 0, 44,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 50, 0, 899,
+ 51, 0, 900,
+ 52, 0, 51,
+ 54, 0, 52,
+ 95, 0, 3,
+ 96, 0, 53,
+ 97, 0, 901,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1819[] = {
- 1,
- -1, 1, 46
+ 2,
+ -1, 3, 1818,
+ 24, 0, 1861
};
static int parser_action_row1820[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 1,
+ -1, 1, 599
};
static int parser_action_row1821[] = {
1,
- -1, 1, 56
+ -1, 1, 603
};
static int parser_action_row1822[] = {
- 1,
- -1, 1, 65
+ 2,
+ -1, 1, 602,
+ 52, 0, 277
};
static int parser_action_row1823[] = {
1,
- -1, 1, 64
+ -1, 1, 607
};
static int parser_action_row1824[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1825[] = {
- 2,
- -1, 1, 78,
- 9, 0, 1401
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1826[] = {
- 1,
- -1, 1, 61
+ 2,
+ -1, 3, 1825,
+ 53, 0, 1865
};
static int parser_action_row1827[] = {
- 2,
- -1, 1, 76,
- 14, 0, 955
+ 1,
+ -1, 1, 137
};
static int parser_action_row1828[] = {
- 2,
- -1, 1, 60,
- 9, 0, 1859
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1829[] = {
- 1,
- -1, 1, 53
+ 4,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2,
+ 96, 0, 603
};
static int parser_action_row1830[] = {
- 1,
- -1, 1, 52
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1831[] = {
- 2,
- -1, 1, 467,
- 9, 0, 1294
+ 1,
+ -1, 1, 48
};
static int parser_action_row1832[] = {
- 1,
- -1, 1, 71
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1833[] = {
1,
- -1, 1, 650
+ -1, 1, 58
};
static int parser_action_row1834[] = {
1,
- -1, 1, 669
+ -1, 1, 67
};
static int parser_action_row1835[] = {
1,
- -1, 1, 648
+ -1, 1, 66
};
static int parser_action_row1836[] = {
- 1,
- -1, 1, 667
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1837[] = {
- 1,
- -1, 1, 653
+ 6,
+ -1, 1, 485,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1451,
+ 15, 1, 80,
+ 95, 0, 3
};
static int parser_action_row1838[] = {
1,
- -1, 1, 672
+ -1, 1, 63
};
static int parser_action_row1839[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 78,
+ 14, 0, 969
};
static int parser_action_row1840[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 62,
+ 9, 0, 1872
};
static int parser_action_row1841[] = {
1,
- -1, 1, 657
+ -1, 1, 55
};
static int parser_action_row1842[] = {
1,
- -1, 1, 676
+ -1, 1, 54
};
static int parser_action_row1843[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 1, 469,
+ 9, 0, 1320
};
static int parser_action_row1844[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 73
};
static int parser_action_row1845[] = {
- 26,
- -1, 1, 506,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 41, 1, 456,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 97, 1, 456,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 662
};
static int parser_action_row1846[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 1,
+ -1, 1, 681
};
static int parser_action_row1847[] = {
- 13,
- -1, 1, 739,
- 59, 0, 1867,
- 60, 0, 208,
- 61, 0, 209,
- 62, 0, 210,
- 63, 0, 211,
- 64, 0, 212,
- 65, 0, 213,
- 66, 0, 214,
- 67, 0, 215,
- 68, 0, 216,
- 69, 0, 217,
- 70, 0, 218
+ 1,
+ -1, 1, 660
};
static int parser_action_row1848[] = {
- 2,
- -1, 1, 267,
- 24, 1, 927
+ 1,
+ -1, 1, 679
};
static int parser_action_row1849[] = {
- 23,
- -1, 1, 456,
- 12, 0, 1079,
- 22, 0, 1080,
- 31, 0, 1081,
- 38, 0, 1082,
- 40, 0, 1083,
- 42, 0, 1084,
- 43, 0, 1085,
- 44, 0, 1086,
- 45, 0, 1087,
- 48, 0, 1088,
- 52, 0, 46,
- 74, 0, 1089,
- 75, 0, 1090,
- 83, 0, 1091,
- 95, 0, 48,
- 96, 0, 1092,
- 98, 0, 1093,
- 99, 0, 1094,
- 100, 0, 1095,
- 101, 0, 1096,
- 102, 0, 54,
- 105, 0, 1097
+ 1,
+ -1, 1, 665
};
static int parser_action_row1850[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 684
};
static int parser_action_row1851[] = {
- 1,
- -1, 1, 593
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1852[] = {
- 3,
- -1, 3, 1851,
- 0, 0, 83,
- 1, 0, 84
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1853[] = {
1,
- -1, 1, 415
+ -1, 1, 669
};
static int parser_action_row1854[] = {
- 3,
- -1, 1, 474,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 688
};
static int parser_action_row1855[] = {
- 1,
- -1, 1, 132
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1856[] = {
- 1,
- -1, 1, 130
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1857[] = {
- 1,
- -1, 1, 47
+ 26,
+ -1, 1, 518,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 41, 1, 458,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 98, 1, 458,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1858[] = {
- 1,
- -1, 1, 66
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
};
static int parser_action_row1859[] = {
- 1,
- -1, 1, 58
+ 13,
+ -1, 1, 751,
+ 59, 0, 1880,
+ 60, 0, 217,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227
};
static int parser_action_row1860[] = {
1,
- -1, 1, 62
+ -1, 1, 940
};
static int parser_action_row1861[] = {
- 1,
- -1, 1, 54
+ 2,
+ -1, 3, 1860,
+ 49, 0, 197
};
static int parser_action_row1862[] = {
- 1,
- -1, 1, 652
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row1863[] = {
1,
- -1, 1, 671
+ -1, 1, 601
};
static int parser_action_row1864[] = {
- 1,
- -1, 1, 656
+ 2,
+ -1, 3, 1863,
+ 45, 0, 1884
};
static int parser_action_row1865[] = {
- 1,
- -1, 1, 675
+ 2,
+ -1, 3, 1864,
+ 53, 0, 1885
};
static int parser_action_row1866[] = {
- 1,
- -1, 1, 655
+ 5,
+ -1, 3, 1865,
+ 0, 0, 88,
+ 1, 0, 89,
+ 94, 0, 204,
+ 95, 0, 90
};
static int parser_action_row1867[] = {
- 1,
- -1, 1, 674
+ 2,
+ -1, 3, 1866,
+ 47, 0, 1888
};
static int parser_action_row1868[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1867,
+ 53, 0, 1889
};
static int parser_action_row1869[] = {
- 24,
- -1, 1, 456,
- 12, 0, 161,
- 22, 0, 162,
- 31, 0, 163,
- 38, 0, 164,
- 40, 0, 165,
- 42, 0, 40,
- 43, 0, 41,
- 44, 0, 42,
- 45, 0, 43,
- 48, 0, 166,
- 52, 0, 46,
- 54, 0, 47,
- 74, 0, 167,
- 75, 0, 168,
- 83, 0, 169,
- 95, 0, 48,
- 96, 0, 170,
- 98, 0, 50,
- 99, 0, 51,
- 100, 0, 52,
- 101, 0, 53,
- 102, 0, 54,
- 105, 0, 55
+ 2,
+ -1, 3, 1868,
+ 53, 0, 1890
};
static int parser_action_row1870[] = {
1,
- -1, 1, 515
+ -1, 1, 49
};
static int parser_action_row1871[] = {
- 2,
- -1, 3, 1870,
- 53, 0, 1875
+ 1,
+ -1, 1, 68
};
static int parser_action_row1872[] = {
1,
- -1, 1, 416
+ -1, 1, 60
};
static int parser_action_row1873[] = {
- 2,
- -1, 3, 1872,
- 53, 0, 1876
+ 1,
+ -1, 1, 64
};
static int parser_action_row1874[] = {
1,
- -1, 1, 654
+ -1, 1, 56
};
static int parser_action_row1875[] = {
1,
- -1, 1, 673
+ -1, 1, 664
};
static int parser_action_row1876[] = {
1,
- -1, 1, 594
+ -1, 1, 683
};
static int parser_action_row1877[] = {
1,
+ -1, 1, 668
+};
+static int parser_action_row1878[] = {
+ 1,
+ -1, 1, 687
+};
+static int parser_action_row1879[] = {
+ 1,
+ -1, 1, 667
+};
+static int parser_action_row1880[] = {
+ 1,
+ -1, 1, 686
+};
+static int parser_action_row1881[] = {
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
+};
+static int parser_action_row1882[] = {
+ 24,
+ -1, 1, 458,
+ 12, 0, 170,
+ 22, 0, 171,
+ 31, 0, 172,
+ 38, 0, 173,
+ 40, 0, 174,
+ 42, 0, 45,
+ 43, 0, 46,
+ 44, 0, 47,
+ 45, 0, 48,
+ 48, 0, 175,
+ 52, 0, 51,
+ 54, 0, 52,
+ 74, 0, 176,
+ 75, 0, 177,
+ 83, 0, 178,
+ 96, 0, 53,
+ 97, 0, 179,
+ 99, 0, 55,
+ 100, 0, 56,
+ 101, 0, 57,
+ 102, 0, 58,
+ 103, 0, 59,
+ 106, 0, 60
+};
+static int parser_action_row1883[] = {
+ 2,
+ -1, 1, 271,
+ 24, 1, 939
+};
+static int parser_action_row1884[] = {
+ 23,
+ -1, 1, 458,
+ 12, 0, 1102,
+ 22, 0, 1103,
+ 31, 0, 1104,
+ 38, 0, 1105,
+ 40, 0, 1106,
+ 42, 0, 1107,
+ 43, 0, 1108,
+ 44, 0, 1109,
+ 45, 0, 1110,
+ 48, 0, 1111,
+ 52, 0, 51,
+ 74, 0, 1112,
+ 75, 0, 1113,
+ 83, 0, 1114,
+ 96, 0, 53,
+ 97, 0, 1115,
+ 99, 0, 1116,
+ 100, 0, 1117,
+ 101, 0, 1118,
+ 102, 0, 1119,
+ 103, 0, 59,
+ 106, 0, 1120
+};
+static int parser_action_row1885[] = {
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1886[] = {
+ 1,
+ -1, 1, 605
+};
+static int parser_action_row1887[] = {
+ 4,
+ -1, 3, 1886,
+ 0, 0, 88,
+ 1, 0, 89,
+ 95, 0, 90
+};
+static int parser_action_row1888[] = {
+ 1,
+ -1, 1, 417
+};
+static int parser_action_row1889[] = {
+ 3,
+ -1, 1, 487,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1890[] = {
+ 1,
-1, 1, 134
};
+static int parser_action_row1891[] = {
+ 1,
+ -1, 1, 132
+};
+static int parser_action_row1892[] = {
+ 1,
+ -1, 1, 666
+};
+static int parser_action_row1893[] = {
+ 1,
+ -1, 1, 685
+};
+static int parser_action_row1894[] = {
+ 1,
+ -1, 1, 527
+};
+static int parser_action_row1895[] = {
+ 2,
+ -1, 3, 1894,
+ 53, 0, 1897
+};
+static int parser_action_row1896[] = {
+ 1,
+ -1, 1, 418
+};
+static int parser_action_row1897[] = {
+ 2,
+ -1, 3, 1896,
+ 53, 0, 1898
+};
+static int parser_action_row1898[] = {
+ 1,
+ -1, 1, 606
+};
+static int parser_action_row1899[] = {
+ 1,
+ -1, 1, 136
+};
const int* const parser_action_table[] = {
parser_action_row1,
parser_action_row1874,
parser_action_row1875,
parser_action_row1876,
- parser_action_row1877
+ parser_action_row1877,
+ parser_action_row1878,
+ parser_action_row1879,
+ parser_action_row1880,
+ parser_action_row1881,
+ parser_action_row1882,
+ parser_action_row1883,
+ parser_action_row1884,
+ parser_action_row1885,
+ parser_action_row1886,
+ parser_action_row1887,
+ parser_action_row1888,
+ parser_action_row1889,
+ parser_action_row1890,
+ parser_action_row1891,
+ parser_action_row1892,
+ parser_action_row1893,
+ parser_action_row1894,
+ parser_action_row1895,
+ parser_action_row1896,
+ parser_action_row1897,
+ parser_action_row1898,
+ parser_action_row1899
};
static int parser_goto_row1[] = {
1,
- -1, 3
+ -1, 4
};
static int parser_goto_row2[] = {
1,
- -1, 4
+ -1, 5
};
static int parser_goto_row3[] = {
3,
- -1, 5,
- 15, 86,
- 22, 86
+ -1, 6,
+ 18, 92,
+ 28, 92
};
static int parser_goto_row4[] = {
9,
- -1, 6,
- 17, 94,
- 24, 94,
- 89, 94,
- 93, 94,
- 103, 94,
- 105, 94,
- 256, 94,
- 262, 94
+ -1, 7,
+ 20, 100,
+ 30, 100,
+ 95, 100,
+ 99, 100,
+ 112, 100,
+ 114, 100,
+ 265, 100,
+ 274, 100
};
static int parser_goto_row5[] = {
16,
- -1, 7,
- 4, 20,
- 15, 87,
- 16, 90,
- 17, 95,
- 22, 101,
- 23, 104,
- 24, 106,
- 88, 255,
- 89, 257,
- 93, 259,
- 102, 261,
- 103, 263,
- 105, 264,
- 256, 487,
- 262, 489
+ -1, 8,
+ 5, 26,
+ 18, 93,
+ 19, 96,
+ 20, 101,
+ 28, 110,
+ 29, 113,
+ 30, 115,
+ 94, 264,
+ 95, 266,
+ 99, 268,
+ 111, 273,
+ 112, 275,
+ 114, 276,
+ 265, 500,
+ 274, 503
};
static int parser_goto_row6[] = {
1,
- -1, 8
+ -1, 9
};
static int parser_goto_row7[] = {
1,
- -1, 9
+ -1, 10
};
static int parser_goto_row8[] = {
- 10,
- -1, 775,
- 12, 57,
- 21, 100,
- 92, 258,
- 96, 258,
- 195, 379,
- 581, 772,
- 1144, 1305,
- 1277, 1402,
- 1309, 1305
+ 9,
+ -1, 789,
+ 13, 61,
+ 27, 109,
+ 98, 267,
+ 204, 391,
+ 594, 786,
+ 993, 1165,
+ 1169, 1165,
+ 1303, 1450
};
static int parser_goto_row9[] = {
1,
- -1, 457
+ -1, 469
};
static int parser_goto_row10[] = {
1,
- -1, 972
+ -1, 1325
};
static int parser_goto_row11[] = {
2,
- -1, 1420,
- 1422, 1540
+ -1, 1470,
+ 1471, 1581
};
static int parser_goto_row12[] = {
2,
- -1, 1299,
- 1538, 1603
+ -1, 1326,
+ 1580, 1651
};
static int parser_goto_row13[] = {
2,
- -1, 1138,
- 1145, 1307
+ -1, 986,
+ 994, 1167
};
static int parser_goto_row14[] = {
- 2,
- -1, 1139,
- 1142, 1302
+ 4,
+ -1, 987,
+ 990, 1162,
+ 1468, 1578,
+ 1579, 1650
};
static int parser_goto_row15[] = {
2,
- -1, 1140,
- 1145, 1308
+ -1, 988,
+ 994, 1168
};
static int parser_goto_row16[] = {
1,
- -1, 1141
+ -1, 989
};
static int parser_goto_row17[] = {
6,
- -1, 956,
- 811, 959,
- 1663, 1721,
- 1668, 1731,
- 1674, 1741,
- 1826, 1858
+ -1, 970,
+ 825, 973,
+ 1653, 1725,
+ 1658, 1735,
+ 1664, 1745,
+ 1838, 1871
};
static int parser_goto_row18[] = {
7,
- -1, 966,
- 1607, 1666,
- 1610, 1670,
- 1662, 1718,
- 1667, 1727,
- 1668, 1732,
- 1673, 1738
+ -1, 980,
+ 1584, 1656,
+ 1587, 1660,
+ 1652, 1722,
+ 1657, 1731,
+ 1658, 1736,
+ 1663, 1742
};
static int parser_goto_row19[] = {
8,
- -1, 231,
- 100, 260,
- 258, 488,
- 379, 586,
- 772, 922,
- 775, 926,
- 1305, 1424,
- 1402, 1529
+ -1, 240,
+ 109, 272,
+ 267, 501,
+ 391, 599,
+ 786, 936,
+ 789, 940,
+ 1165, 1328,
+ 1450, 1568
};
static int parser_goto_row20[] = {
4,
- -1, 648,
- 650, 820,
- 651, 821,
- 822, 970
+ -1, 661,
+ 663, 834,
+ 664, 835,
+ 836, 984
};
static int parser_goto_row21[] = {
6,
- -1, 816,
- 1544, 1607,
- 1546, 1610,
- 1605, 1662,
- 1608, 1667,
- 1611, 1673
+ -1, 830,
+ 1474, 1584,
+ 1476, 1587,
+ 1582, 1652,
+ 1585, 1657,
+ 1588, 1663
};
static int parser_goto_row22[] = {
1,
- -1, 1127
+ -1, 1149
};
static int parser_goto_row23[] = {
2,
- -1, 1284,
- 1286, 1409
+ -1, 1310,
+ 1312, 1458
};
static int parser_goto_row24[] = {
2,
- -1, 1128,
- 1408, 1532
+ -1, 1150,
+ 1457, 1571
};
static int parser_goto_row25[] = {
8,
- -1, 967,
- 966, 1135,
- 1610, 1671,
- 1662, 1719,
- 1670, 1735,
- 1673, 1739,
- 1718, 1774,
- 1738, 1791
+ -1, 981,
+ 980, 1157,
+ 1587, 1661,
+ 1652, 1723,
+ 1660, 1739,
+ 1663, 1743,
+ 1722, 1783,
+ 1742, 1800
};
static int parser_goto_row26[] = {
2,
- -1, 1412,
- 1413, 1534
+ -1, 1461,
+ 1462, 1573
};
static int parser_goto_row27[] = {
2,
- -1, 1288,
- 1533, 1601
+ -1, 1314,
+ 1572, 1646
};
static int parser_goto_row28[] = {
1,
- -1, 1289
+ -1, 1315
};
static int parser_goto_row29[] = {
1,
- -1, 1290
+ -1, 1316
};
static int parser_goto_row30[] = {
1,
};
static int parser_goto_row31[] = {
1,
- -1, 58
+ -1, 86
};
static int parser_goto_row32[] = {
- 10,
- -1, 59,
- 967, 1136,
- 972, 1142,
- 1135, 1297,
- 1671, 1736,
- 1719, 1775,
- 1735, 1788,
- 1739, 1792,
- 1774, 1820,
- 1791, 1831
+ 11,
+ -1, 87,
+ 839, 990,
+ 981, 1158,
+ 1157, 1323,
+ 1468, 1579,
+ 1661, 1740,
+ 1723, 1784,
+ 1739, 1797,
+ 1743, 1801,
+ 1783, 1832,
+ 1800, 1843
};
static int parser_goto_row33[] = {
1,
};
static int parser_goto_row34[] = {
5,
- -1, 10,
- 16, 91,
- 23, 91,
- 88, 91,
- 102, 91
+ -1, 11,
+ 19, 97,
+ 29, 97,
+ 94, 97,
+ 111, 97
};
static int parser_goto_row35[] = {
24,
- -1, 414,
- 202, 386,
- 509, 697,
- 533, 725,
- 552, 740,
- 597, 789,
- 770, 919,
- 787, 919,
- 918, 919,
- 937, 919,
- 962, 1129,
- 1030, 1185,
- 1130, 1291,
- 1148, 1312,
- 1173, 1328,
- 1201, 1347,
- 1306, 1435,
- 1533, 1291,
- 1551, 1613,
- 1600, 1435,
- 1602, 1661,
- 1612, 1674,
- 1710, 1766,
- 1716, 1771
+ -1, 426,
+ 211, 398,
+ 523, 711,
+ 547, 739,
+ 565, 754,
+ 610, 803,
+ 784, 933,
+ 801, 933,
+ 932, 933,
+ 951, 933,
+ 976, 1151,
+ 1052, 1210,
+ 1152, 1317,
+ 1166, 1339,
+ 1173, 1360,
+ 1198, 1376,
+ 1228, 1396,
+ 1481, 1590,
+ 1572, 1317,
+ 1589, 1664,
+ 1645, 1339,
+ 1647, 1719,
+ 1774, 1824,
+ 1780, 1829
};
static int parser_goto_row36[] = {
4,
- -1, 920,
- 787, 938,
- 918, 1051,
- 937, 1070
+ -1, 934,
+ 801, 952,
+ 932, 1074,
+ 951, 1093
};
static int parser_goto_row37[] = {
2,
- -1, 1053,
- 1054, 1202
+ -1, 1076,
+ 1077, 1229
};
static int parser_goto_row38[] = {
5,
- -1, 817,
- 1126, 1279,
- 1280, 1405,
- 1282, 1406,
- 1606, 1663
+ -1, 831,
+ 1148, 1305,
+ 1306, 1454,
+ 1308, 1455,
+ 1583, 1653
};
static int parser_goto_row39[] = {
8,
- -1, 322,
- 323, 535,
- 381, 587,
- 437, 618,
- 588, 783,
- 1298, 1417,
- 1418, 1537,
- 1609, 1668
+ -1, 334,
+ 335, 549,
+ 393, 600,
+ 449, 631,
+ 601, 797,
+ 1324, 1466,
+ 1467, 1577,
+ 1586, 1658
};
static int parser_goto_row40[] = {
- 30,
- -1, 149,
- 31, 157,
- 374, 577,
- 575, 765,
- 729, 905,
- 784, 935,
- 876, 1019,
- 878, 157,
- 965, 1133,
- 1039, 1192,
- 1134, 1296,
- 1183, 577,
- 1332, 765,
- 1344, 1477,
- 1463, 905,
- 1468, 935,
- 1634, 1192,
- 1665, 1724,
- 1669, 1733,
- 1717, 1772,
- 1725, 1778,
- 1726, 1779,
- 1729, 1783,
- 1734, 1787,
- 1737, 1789,
- 1759, 1477,
- 1773, 1819,
- 1780, 1823,
- 1785, 1827,
- 1790, 1830
+ 32,
+ -1, 158,
+ 37, 167,
+ 386, 590,
+ 588, 779,
+ 743, 919,
+ 798, 949,
+ 890, 1041,
+ 892, 167,
+ 979, 1155,
+ 1058, 1215,
+ 1062, 1219,
+ 1156, 1322,
+ 1208, 590,
+ 1216, 1390,
+ 1380, 779,
+ 1393, 1516,
+ 1502, 919,
+ 1507, 949,
+ 1655, 1728,
+ 1659, 1737,
+ 1692, 1219,
+ 1721, 1781,
+ 1729, 1787,
+ 1730, 1788,
+ 1733, 1792,
+ 1738, 1796,
+ 1741, 1798,
+ 1782, 1831,
+ 1789, 1835,
+ 1794, 1839,
+ 1799, 1842,
+ 1817, 1516
};
static int parser_goto_row41[] = {
1,
- -1, 60
+ -1, 62
};
static int parser_goto_row42[] = {
2,
- -1, 61,
- 895, 1036
+ -1, 63,
+ 909, 1059
};
static int parser_goto_row43[] = {
4,
- -1, 318,
- 578, 767,
- 1014, 1176,
- 1334, 1467
+ -1, 330,
+ 591, 781,
+ 1036, 1201,
+ 1382, 1506
};
static int parser_goto_row44[] = {
4,
- -1, 233,
- 235, 459,
- 532, 459,
- 1191, 459
+ -1, 241,
+ 243, 471,
+ 546, 471,
+ 1218, 471
};
static int parser_goto_row45[] = {
- 16,
- -1, 150,
- 12, 62,
- 21, 62,
- 92, 62,
- 96, 62,
- 151, 319,
- 234, 458,
- 460, 458,
- 531, 458,
- 578, 319,
- 724, 458,
- 728, 888,
- 895, 1037,
- 1014, 319,
- 1334, 319,
- 1462, 888
+ 15,
+ -1, 159,
+ 13, 64,
+ 27, 64,
+ 98, 64,
+ 160, 331,
+ 242, 470,
+ 472, 470,
+ 545, 470,
+ 591, 331,
+ 738, 470,
+ 742, 902,
+ 909, 1060,
+ 1036, 331,
+ 1382, 331,
+ 1501, 902
};
static int parser_goto_row46[] = {
18,
- -1, 189,
- 36, 190,
- 152, 320,
- 158, 326,
- 388, 595,
- 389, 596,
- 881, 1025,
- 882, 1026,
- 906, 1043,
- 936, 1069,
- 1017, 1177,
- 1022, 1180,
- 1426, 1549,
- 1427, 1550,
- 1478, 1580,
- 1570, 1635,
- 1573, 1637,
- 1809, 1847
+ -1, 198,
+ 41, 199,
+ 161, 332,
+ 168, 339,
+ 400, 608,
+ 401, 609,
+ 895, 1047,
+ 896, 1048,
+ 920, 1066,
+ 950, 1092,
+ 1039, 1202,
+ 1044, 1205,
+ 1330, 1479,
+ 1331, 1480,
+ 1517, 1625,
+ 1615, 1693,
+ 1618, 1695,
+ 1860, 1882
};
static int parser_goto_row47[] = {
20,
- -1, 63,
- 203, 415,
- 728, 889,
- 793, 415,
- 874, 889,
- 878, 889,
- 1066, 415,
- 1183, 889,
- 1306, 1436,
- 1332, 889,
- 1351, 415,
- 1462, 889,
- 1463, 889,
- 1468, 889,
- 1483, 415,
- 1552, 415,
- 1600, 1436,
- 1634, 889,
- 1712, 415,
- 1759, 889
+ -1, 65,
+ 212, 427,
+ 742, 903,
+ 807, 427,
+ 888, 903,
+ 892, 903,
+ 1089, 427,
+ 1166, 1340,
+ 1208, 903,
+ 1380, 903,
+ 1400, 427,
+ 1482, 427,
+ 1501, 903,
+ 1502, 903,
+ 1507, 903,
+ 1522, 427,
+ 1645, 1340,
+ 1692, 903,
+ 1776, 427,
+ 1817, 903
};
static int parser_goto_row48[] = {
18,
- -1, 64,
- 203, 416,
- 728, 890,
- 793, 416,
- 874, 890,
- 878, 890,
- 1066, 416,
- 1183, 890,
- 1332, 890,
- 1351, 416,
- 1462, 890,
- 1463, 890,
- 1468, 890,
- 1483, 416,
- 1552, 416,
- 1634, 890,
- 1712, 416,
- 1759, 890
+ -1, 66,
+ 212, 428,
+ 742, 904,
+ 807, 428,
+ 888, 904,
+ 892, 904,
+ 1089, 428,
+ 1208, 904,
+ 1380, 904,
+ 1400, 428,
+ 1482, 428,
+ 1501, 904,
+ 1502, 904,
+ 1507, 904,
+ 1522, 428,
+ 1692, 904,
+ 1776, 428,
+ 1817, 904
};
static int parser_goto_row49[] = {
52,
- -1, 219,
- 220, 444,
- 238, 464,
- 247, 473,
- 249, 477,
- 251, 482,
- 478, 672,
- 483, 676,
- 486, 679,
- 610, 477,
- 612, 482,
- 657, 833,
- 680, 852,
- 798, 679,
- 834, 981,
- 836, 983,
- 838, 986,
- 840, 991,
- 940, 833,
- 987, 1156,
- 992, 1160,
- 995, 1163,
- 1035, 477,
- 1041, 482,
- 1074, 986,
- 1075, 991,
- 1164, 1320,
- 1196, 679,
- 1221, 1163,
- 1339, 833,
- 1434, 1554,
- 1473, 986,
- 1475, 991,
- 1555, 1618,
- 1556, 1620,
- 1557, 1622,
- 1559, 1626,
- 1561, 1628,
- 1579, 1163,
- 1623, 1684,
- 1629, 1695,
- 1630, 1697,
- 1685, 1747,
- 1698, 1758,
- 1748, 1796,
- 1749, 1798,
- 1750, 1800,
- 1751, 1803,
- 1801, 1839,
- 1804, 1843,
- 1805, 1845,
- 1846, 1868
+ -1, 228,
+ 229, 456,
+ 246, 476,
+ 255, 485,
+ 257, 489,
+ 259, 494,
+ 490, 685,
+ 495, 689,
+ 498, 692,
+ 623, 489,
+ 625, 494,
+ 670, 847,
+ 693, 866,
+ 812, 692,
+ 848, 1003,
+ 850, 1005,
+ 852, 1008,
+ 854, 1013,
+ 954, 847,
+ 1009, 1181,
+ 1014, 1185,
+ 1017, 1188,
+ 1057, 489,
+ 1064, 494,
+ 1097, 1008,
+ 1098, 1013,
+ 1189, 1368,
+ 1223, 692,
+ 1248, 1188,
+ 1338, 1484,
+ 1387, 847,
+ 1485, 1595,
+ 1486, 1597,
+ 1487, 1599,
+ 1489, 1603,
+ 1491, 1605,
+ 1512, 1008,
+ 1514, 1013,
+ 1600, 1674,
+ 1606, 1685,
+ 1607, 1687,
+ 1624, 1188,
+ 1675, 1751,
+ 1688, 1762,
+ 1752, 1805,
+ 1753, 1807,
+ 1754, 1809,
+ 1755, 1812,
+ 1810, 1851,
+ 1813, 1855,
+ 1814, 1857,
+ 1858, 1881
};
static int parser_goto_row50[] = {
10,
- -1, 65,
- 203, 417,
- 793, 417,
- 1066, 417,
- 1306, 1437,
- 1351, 417,
- 1483, 417,
- 1552, 417,
- 1600, 1437,
- 1712, 417
+ -1, 67,
+ 212, 429,
+ 807, 429,
+ 1089, 429,
+ 1166, 1341,
+ 1400, 429,
+ 1482, 429,
+ 1522, 429,
+ 1645, 1341,
+ 1776, 429
};
static int parser_goto_row51[] = {
1,
- -1, 66
+ -1, 68
};
static int parser_goto_row52[] = {
3,
- -1, 891,
- 895, 1038,
- 1036, 1190
+ -1, 905,
+ 909, 1061,
+ 1059, 1217
};
static int parser_goto_row53[] = {
10,
- -1, 67,
- 203, 418,
- 793, 418,
- 1066, 418,
- 1306, 1438,
- 1351, 418,
- 1483, 418,
- 1552, 418,
- 1600, 1438,
- 1712, 418
+ -1, 69,
+ 212, 430,
+ 807, 430,
+ 1089, 430,
+ 1166, 1342,
+ 1400, 430,
+ 1482, 430,
+ 1522, 430,
+ 1645, 1342,
+ 1776, 430
};
static int parser_goto_row54[] = {
10,
- -1, 68,
- 203, 419,
- 793, 419,
- 1066, 419,
- 1306, 1439,
- 1351, 419,
- 1483, 419,
- 1552, 419,
- 1600, 1439,
- 1712, 419
+ -1, 70,
+ 212, 431,
+ 807, 431,
+ 1089, 431,
+ 1166, 1343,
+ 1400, 431,
+ 1482, 431,
+ 1522, 431,
+ 1645, 1343,
+ 1776, 431
};
static int parser_goto_row55[] = {
10,
- -1, 69,
- 203, 420,
- 793, 420,
- 1066, 420,
- 1306, 1440,
- 1351, 420,
- 1483, 420,
- 1552, 420,
- 1600, 1440,
- 1712, 420
+ -1, 71,
+ 212, 432,
+ 807, 432,
+ 1089, 432,
+ 1166, 1344,
+ 1400, 432,
+ 1482, 432,
+ 1522, 432,
+ 1645, 1344,
+ 1776, 432
};
static int parser_goto_row56[] = {
10,
- -1, 70,
- 203, 421,
- 793, 421,
- 1066, 421,
- 1306, 1441,
- 1351, 421,
- 1483, 421,
- 1552, 421,
- 1600, 1441,
- 1712, 421
+ -1, 72,
+ 212, 433,
+ 807, 433,
+ 1089, 433,
+ 1166, 1345,
+ 1400, 433,
+ 1482, 433,
+ 1522, 433,
+ 1645, 1345,
+ 1776, 433
};
static int parser_goto_row57[] = {
2,
- -1, 382,
- 1029, 1184
+ -1, 394,
+ 1051, 1209
};
static int parser_goto_row58[] = {
10,
- -1, 71,
- 203, 422,
- 793, 422,
- 1066, 422,
- 1306, 1442,
- 1351, 422,
- 1483, 422,
- 1552, 422,
- 1600, 1442,
- 1712, 422
+ -1, 73,
+ 212, 434,
+ 807, 434,
+ 1089, 434,
+ 1166, 1346,
+ 1400, 434,
+ 1482, 434,
+ 1522, 434,
+ 1645, 1346,
+ 1776, 434
};
static int parser_goto_row59[] = {
2,
- -1, 192,
- 884, 1027
+ -1, 201,
+ 898, 1049
};
static int parser_goto_row60[] = {
131,
- -1, 423,
- 34, 171,
- 38, 193,
- 155, 324,
- 156, 325,
- 192, 373,
- 201, 383,
- 204, 436,
- 207, 441,
- 219, 442,
- 245, 469,
- 267, 491,
- 278, 500,
- 332, 542,
- 387, 594,
- 443, 622,
- 444, 623,
- 461, 500,
- 463, 661,
- 464, 662,
- 465, 663,
- 472, 666,
- 473, 667,
- 476, 669,
- 477, 670,
- 481, 673,
- 482, 674,
- 490, 500,
- 593, 788,
- 599, 441,
- 615, 800,
- 668, 500,
- 671, 845,
- 672, 846,
- 675, 847,
- 676, 848,
- 678, 849,
- 679, 850,
- 689, 857,
- 726, 870,
- 796, 669,
- 797, 673,
- 804, 952,
- 832, 978,
- 833, 979,
- 851, 997,
- 852, 998,
- 871, 1011,
- 880, 1024,
- 884, 1028,
- 908, 1045,
- 933, 1067,
- 939, 1072,
- 947, 849,
- 980, 1149,
- 981, 1150,
- 982, 1151,
- 983, 1152,
- 985, 1153,
- 986, 1154,
- 990, 1157,
- 991, 1158,
- 999, 1166,
- 1004, 500,
- 1018, 1178,
- 1020, 1179,
- 1027, 1182,
- 1029, 383,
- 1046, 1198,
- 1068, 1216,
- 1073, 978,
- 1155, 1313,
- 1156, 1314,
- 1159, 1315,
- 1160, 1316,
- 1162, 1317,
- 1163, 1318,
- 1219, 1153,
- 1220, 1157,
- 1222, 1359,
- 1223, 1361,
- 1225, 1362,
- 1319, 1456,
- 1320, 1457,
- 1337, 1469,
- 1358, 1317,
- 1425, 1548,
- 1553, 1615,
- 1554, 1616,
- 1571, 1636,
- 1581, 1640,
- 1585, 952,
- 1617, 1677,
- 1618, 1678,
- 1619, 1679,
- 1620, 1680,
- 1621, 1681,
- 1622, 1682,
- 1625, 1690,
- 1626, 1691,
- 1627, 1692,
- 1628, 1693,
- 1643, 1704,
- 1675, 1742,
- 1683, 1744,
- 1684, 1745,
- 1694, 1753,
- 1695, 1754,
- 1696, 1755,
- 1697, 1756,
- 1746, 1793,
- 1747, 1794,
- 1757, 1806,
- 1758, 1807,
- 1784, 1826,
- 1795, 1832,
- 1796, 1833,
- 1797, 1834,
- 1798, 1835,
- 1799, 1836,
- 1800, 1837,
- 1802, 1840,
- 1803, 1841,
- 1838, 1861,
- 1839, 1862,
- 1842, 1863,
- 1843, 1864,
- 1844, 1865,
- 1845, 1866,
- 1867, 1873,
- 1868, 1874
+ -1, 435,
+ 39, 180,
+ 43, 202,
+ 163, 336,
+ 166, 338,
+ 201, 385,
+ 210, 395,
+ 213, 448,
+ 216, 453,
+ 228, 454,
+ 253, 481,
+ 279, 505,
+ 290, 514,
+ 344, 555,
+ 399, 607,
+ 455, 635,
+ 456, 636,
+ 473, 514,
+ 475, 674,
+ 476, 675,
+ 477, 676,
+ 484, 679,
+ 485, 680,
+ 488, 682,
+ 489, 683,
+ 493, 686,
+ 494, 687,
+ 504, 514,
+ 606, 802,
+ 612, 453,
+ 628, 814,
+ 681, 514,
+ 684, 859,
+ 685, 860,
+ 688, 861,
+ 689, 862,
+ 691, 863,
+ 692, 864,
+ 703, 871,
+ 740, 884,
+ 810, 682,
+ 811, 686,
+ 818, 966,
+ 846, 1000,
+ 847, 1001,
+ 865, 1019,
+ 866, 1020,
+ 885, 1033,
+ 894, 1046,
+ 898, 1050,
+ 922, 1068,
+ 947, 1090,
+ 953, 1095,
+ 961, 863,
+ 1002, 1174,
+ 1003, 1175,
+ 1004, 1176,
+ 1005, 1177,
+ 1007, 1178,
+ 1008, 1179,
+ 1012, 1182,
+ 1013, 1183,
+ 1021, 1191,
+ 1026, 514,
+ 1040, 1203,
+ 1042, 1204,
+ 1049, 1207,
+ 1051, 395,
+ 1069, 1225,
+ 1091, 1243,
+ 1096, 1000,
+ 1180, 1361,
+ 1181, 1362,
+ 1184, 1363,
+ 1185, 1364,
+ 1187, 1365,
+ 1188, 1366,
+ 1246, 1178,
+ 1247, 1182,
+ 1249, 1408,
+ 1250, 1410,
+ 1252, 1411,
+ 1329, 1478,
+ 1367, 1495,
+ 1368, 1496,
+ 1385, 1508,
+ 1407, 1365,
+ 1483, 1592,
+ 1484, 1593,
+ 1594, 1667,
+ 1595, 1668,
+ 1596, 1669,
+ 1597, 1670,
+ 1598, 1671,
+ 1599, 1672,
+ 1602, 1680,
+ 1603, 1681,
+ 1604, 1682,
+ 1605, 1683,
+ 1616, 1694,
+ 1626, 1698,
+ 1630, 966,
+ 1665, 1746,
+ 1673, 1748,
+ 1674, 1749,
+ 1684, 1757,
+ 1685, 1758,
+ 1686, 1759,
+ 1687, 1760,
+ 1701, 1768,
+ 1750, 1802,
+ 1751, 1803,
+ 1761, 1815,
+ 1762, 1816,
+ 1793, 1838,
+ 1804, 1844,
+ 1805, 1845,
+ 1806, 1846,
+ 1807, 1847,
+ 1808, 1848,
+ 1809, 1849,
+ 1811, 1852,
+ 1812, 1853,
+ 1850, 1874,
+ 1851, 1875,
+ 1854, 1876,
+ 1855, 1877,
+ 1856, 1878,
+ 1857, 1879,
+ 1880, 1891,
+ 1881, 1892
};
static int parser_goto_row61[] = {
1,
- -1, 172
+ -1, 181
};
static int parser_goto_row62[] = {
6,
- -1, 173,
- 333, 543,
- 548, 736,
- 550, 738,
- 551, 739,
- 737, 912
+ -1, 182,
+ 345, 556,
+ 561, 750,
+ 563, 752,
+ 564, 753,
+ 751, 926
};
static int parser_goto_row63[] = {
1,
- -1, 174
+ -1, 183
};
static int parser_goto_row64[] = {
8,
- -1, 175,
- 554, 742,
- 555, 743,
- 556, 744,
- 557, 745,
- 558, 746,
- 559, 747,
- 560, 748
+ -1, 184,
+ 567, 756,
+ 568, 757,
+ 569, 758,
+ 570, 759,
+ 571, 760,
+ 572, 761,
+ 573, 762
};
static int parser_goto_row65[] = {
2,
- -1, 176,
- 553, 741
+ -1, 185,
+ 566, 755
};
static int parser_goto_row66[] = {
2,
- -1, 177,
- 561, 749
+ -1, 186,
+ 574, 763
};
static int parser_goto_row67[] = {
2,
- -1, 178,
- 562, 750
+ -1, 187,
+ 575, 764
};
static int parser_goto_row68[] = {
3,
- -1, 179,
- 563, 751,
- 564, 752
+ -1, 188,
+ 576, 765,
+ 577, 766
};
static int parser_goto_row69[] = {
3,
- -1, 180,
- 565, 753,
- 566, 754
+ -1, 189,
+ 578, 767,
+ 579, 768
};
static int parser_goto_row70[] = {
5,
- -1, 181,
- 567, 755,
- 568, 756,
- 569, 757,
- 570, 758
+ -1, 190,
+ 580, 769,
+ 581, 770,
+ 582, 771,
+ 583, 772
};
static int parser_goto_row71[] = {
15,
- -1, 182,
- 118, 279,
- 119, 280,
- 120, 281,
- 167, 338,
- 168, 339,
- 169, 340,
- 270, 494,
- 335, 545,
- 393, 338,
- 394, 339,
- 402, 340,
- 1431, 279,
- 1432, 280,
- 1433, 281
+ -1, 191,
+ 127, 291,
+ 128, 292,
+ 129, 293,
+ 176, 350,
+ 177, 351,
+ 178, 352,
+ 282, 508,
+ 347, 558,
+ 405, 350,
+ 406, 351,
+ 414, 352,
+ 1335, 291,
+ 1336, 292,
+ 1337, 293
};
static int parser_goto_row72[] = {
1,
- -1, 183
+ -1, 192
};
static int parser_goto_row73[] = {
- 55,
- -1, 184,
- 12, 72,
- 21, 72,
- 27, 72,
- 31, 72,
- 92, 72,
- 96, 72,
- 151, 72,
- 166, 336,
- 203, 424,
- 234, 72,
- 374, 72,
- 460, 72,
- 531, 72,
- 575, 72,
- 578, 72,
- 724, 72,
- 728, 892,
- 729, 72,
- 784, 72,
- 793, 424,
- 874, 892,
- 876, 72,
- 878, 892,
- 895, 72,
- 965, 72,
- 1014, 72,
- 1039, 72,
- 1066, 424,
- 1134, 72,
- 1183, 892,
- 1332, 892,
- 1334, 72,
- 1344, 72,
- 1351, 424,
- 1462, 892,
- 1463, 892,
- 1468, 892,
- 1483, 424,
- 1552, 424,
- 1634, 892,
- 1665, 72,
- 1669, 72,
- 1712, 424,
- 1717, 72,
- 1725, 72,
- 1726, 72,
- 1729, 72,
- 1734, 72,
- 1737, 72,
- 1759, 892,
- 1773, 72,
- 1780, 72,
- 1785, 72,
- 1790, 72
+ 56,
+ -1, 193,
+ 13, 74,
+ 27, 74,
+ 33, 74,
+ 37, 74,
+ 98, 74,
+ 160, 74,
+ 175, 348,
+ 212, 436,
+ 242, 74,
+ 386, 74,
+ 472, 74,
+ 545, 74,
+ 588, 74,
+ 591, 74,
+ 738, 74,
+ 742, 906,
+ 743, 74,
+ 798, 74,
+ 807, 436,
+ 888, 906,
+ 890, 74,
+ 892, 906,
+ 909, 74,
+ 979, 74,
+ 1036, 74,
+ 1058, 74,
+ 1062, 74,
+ 1089, 436,
+ 1156, 74,
+ 1208, 906,
+ 1216, 74,
+ 1380, 906,
+ 1382, 74,
+ 1393, 74,
+ 1400, 436,
+ 1482, 436,
+ 1501, 906,
+ 1502, 906,
+ 1507, 906,
+ 1522, 436,
+ 1655, 74,
+ 1659, 74,
+ 1692, 906,
+ 1721, 74,
+ 1729, 74,
+ 1730, 74,
+ 1733, 74,
+ 1738, 74,
+ 1741, 74,
+ 1776, 436,
+ 1782, 74,
+ 1789, 74,
+ 1794, 74,
+ 1799, 74,
+ 1817, 906
};
static int parser_goto_row74[] = {
2,
- -1, 501,
- 1004, 1171
+ -1, 515,
+ 1026, 1196
};
static int parser_goto_row75[] = {
1,
- -1, 73
+ -1, 75
};
static int parser_goto_row76[] = {
31,
- -1, 74,
- 950, 1098,
- 1088, 1098,
- 1089, 1098,
- 1090, 1098,
- 1091, 1098,
- 1226, 1098,
- 1228, 1098,
- 1375, 1098,
- 1377, 1098,
- 1378, 1098,
- 1380, 1098,
- 1381, 1098,
- 1382, 1098,
- 1383, 1098,
- 1384, 1098,
- 1385, 1098,
- 1386, 1098,
- 1387, 1098,
- 1388, 1098,
- 1389, 1098,
- 1390, 1098,
- 1391, 1098,
- 1392, 1098,
- 1393, 1098,
- 1394, 1098,
- 1395, 1098,
- 1396, 1098,
- 1397, 1098,
- 1498, 1098,
- 1848, 1098
+ -1, 76,
+ 964, 1121,
+ 1111, 1121,
+ 1112, 1121,
+ 1113, 1121,
+ 1114, 1121,
+ 1253, 1121,
+ 1255, 1121,
+ 1424, 1121,
+ 1426, 1121,
+ 1427, 1121,
+ 1429, 1121,
+ 1430, 1121,
+ 1431, 1121,
+ 1432, 1121,
+ 1433, 1121,
+ 1434, 1121,
+ 1435, 1121,
+ 1436, 1121,
+ 1437, 1121,
+ 1438, 1121,
+ 1439, 1121,
+ 1440, 1121,
+ 1441, 1121,
+ 1442, 1121,
+ 1443, 1121,
+ 1444, 1121,
+ 1445, 1121,
+ 1446, 1121,
+ 1537, 1121,
+ 1883, 1121
};
static int parser_goto_row77[] = {
1,
- -1, 425
+ -1, 437
};
static int parser_goto_row78[] = {
2,
- -1, 603,
- 605, 795
+ -1, 616,
+ 618, 809
};
static int parser_goto_row79[] = {
1,
- -1, 437
+ -1, 449
};
static int parser_goto_row80[] = {
2,
- -1, 620,
- 621, 805
+ -1, 633,
+ 634, 819
};
static int parser_goto_row81[] = {
4,
- -1, 438,
- 804, 953,
- 1222, 1360,
- 1585, 1642
+ -1, 450,
+ 818, 967,
+ 1249, 1409,
+ 1630, 1700
};
static int parser_goto_row82[] = {
93,
- -1, 75,
- 25, 127,
- 49, 127,
- 116, 127,
- 246, 127,
- 248, 127,
- 249, 127,
- 250, 127,
- 251, 127,
- 268, 127,
- 485, 127,
- 486, 127,
- 505, 127,
- 507, 127,
- 508, 127,
- 510, 127,
- 511, 127,
- 512, 127,
- 513, 127,
- 514, 127,
- 515, 127,
- 516, 127,
- 517, 127,
- 518, 127,
- 519, 127,
- 520, 127,
- 521, 127,
- 522, 127,
- 523, 127,
- 524, 127,
- 525, 127,
- 526, 127,
- 527, 127,
- 655, 127,
- 657, 127,
- 694, 127,
- 837, 127,
- 838, 127,
- 839, 127,
- 840, 127,
- 873, 127,
- 887, 127,
- 950, 1099,
- 994, 127,
- 995, 127,
- 1033, 127,
- 1034, 127,
- 1035, 127,
- 1040, 127,
- 1041, 127,
- 1062, 127,
- 1088, 1099,
- 1089, 1099,
- 1090, 1099,
- 1091, 1099,
- 1195, 127,
- 1196, 127,
- 1226, 1099,
- 1228, 1099,
- 1306, 127,
- 1338, 127,
- 1339, 127,
- 1375, 1099,
- 1377, 1099,
- 1378, 1099,
- 1380, 1099,
- 1381, 1099,
- 1382, 1099,
- 1383, 1099,
- 1384, 1099,
- 1385, 1099,
- 1386, 1099,
- 1387, 1099,
- 1388, 1099,
- 1389, 1099,
- 1390, 1099,
- 1391, 1099,
- 1392, 1099,
- 1393, 1099,
- 1394, 1099,
- 1395, 1099,
- 1396, 1099,
- 1397, 1099,
- 1472, 127,
- 1473, 127,
- 1474, 127,
- 1475, 127,
- 1498, 1099,
- 1565, 127,
- 1578, 127,
- 1579, 127,
- 1600, 127,
- 1848, 1099
+ -1, 77,
+ 31, 136,
+ 54, 136,
+ 125, 136,
+ 254, 136,
+ 256, 136,
+ 257, 136,
+ 258, 136,
+ 259, 136,
+ 280, 136,
+ 497, 136,
+ 498, 136,
+ 519, 136,
+ 521, 136,
+ 522, 136,
+ 524, 136,
+ 525, 136,
+ 526, 136,
+ 527, 136,
+ 528, 136,
+ 529, 136,
+ 530, 136,
+ 531, 136,
+ 532, 136,
+ 533, 136,
+ 534, 136,
+ 535, 136,
+ 536, 136,
+ 537, 136,
+ 538, 136,
+ 539, 136,
+ 540, 136,
+ 541, 136,
+ 668, 136,
+ 670, 136,
+ 708, 136,
+ 851, 136,
+ 852, 136,
+ 853, 136,
+ 854, 136,
+ 887, 136,
+ 901, 136,
+ 964, 1122,
+ 1016, 136,
+ 1017, 136,
+ 1055, 136,
+ 1056, 136,
+ 1057, 136,
+ 1063, 136,
+ 1064, 136,
+ 1085, 136,
+ 1111, 1122,
+ 1112, 1122,
+ 1113, 1122,
+ 1114, 1122,
+ 1166, 136,
+ 1222, 136,
+ 1223, 136,
+ 1253, 1122,
+ 1255, 1122,
+ 1386, 136,
+ 1387, 136,
+ 1424, 1122,
+ 1426, 1122,
+ 1427, 1122,
+ 1429, 1122,
+ 1430, 1122,
+ 1431, 1122,
+ 1432, 1122,
+ 1433, 1122,
+ 1434, 1122,
+ 1435, 1122,
+ 1436, 1122,
+ 1437, 1122,
+ 1438, 1122,
+ 1439, 1122,
+ 1440, 1122,
+ 1441, 1122,
+ 1442, 1122,
+ 1443, 1122,
+ 1444, 1122,
+ 1445, 1122,
+ 1446, 1122,
+ 1511, 136,
+ 1512, 136,
+ 1513, 136,
+ 1514, 136,
+ 1537, 1122,
+ 1610, 136,
+ 1623, 136,
+ 1624, 136,
+ 1645, 136,
+ 1883, 1122
};
static int parser_goto_row83[] = {
1,
- -1, 76
+ -1, 78
};
static int parser_goto_row84[] = {
1,
- -1, 77
+ -1, 79
};
static int parser_goto_row85[] = {
2,
- -1, 241,
- 244, 467
+ -1, 249,
+ 252, 479
};
static int parser_goto_row86[] = {
1,
- -1, 242
+ -1, 250
};
static int parser_goto_row87[] = {
2,
- -1, 243,
- 244, 468
+ -1, 251,
+ 252, 480
};
static int parser_goto_row88[] = {
16,
- -1, 196,
- 153, 323,
- 203, 426,
- 381, 588,
- 793, 426,
- 1066, 426,
- 1126, 1280,
- 1298, 1418,
- 1306, 1443,
- 1351, 426,
- 1483, 426,
- 1552, 426,
- 1600, 1655,
- 1676, 1743,
- 1712, 426,
- 1814, 1851
+ -1, 205,
+ 162, 335,
+ 212, 438,
+ 393, 601,
+ 807, 438,
+ 1089, 438,
+ 1148, 1306,
+ 1166, 1347,
+ 1324, 1467,
+ 1400, 438,
+ 1482, 438,
+ 1522, 438,
+ 1645, 1713,
+ 1666, 1747,
+ 1776, 438,
+ 1865, 1886
};
static int parser_goto_row89[] = {
45,
- -1, 592,
- 40, 197,
- 41, 198,
- 42, 199,
- 43, 200,
- 50, 222,
- 51, 223,
- 52, 224,
- 53, 225,
- 55, 226,
- 112, 271,
- 113, 272,
- 114, 273,
- 115, 274,
- 122, 283,
- 123, 284,
- 124, 285,
- 125, 286,
- 126, 287,
- 243, 466,
- 468, 664,
- 590, 786,
- 781, 932,
- 792, 944,
- 794, 946,
- 803, 951,
- 1062, 1210,
- 1084, 1229,
- 1085, 1230,
- 1086, 1231,
- 1087, 1232,
- 1093, 1240,
- 1094, 1241,
- 1095, 1242,
- 1096, 1243,
- 1097, 1244,
- 1126, 1281,
- 1218, 1357,
- 1356, 1485,
- 1373, 1495,
- 1374, 1496,
- 1482, 1583,
- 1502, 1592,
- 1591, 1648,
- 1641, 1703
+ -1, 605,
+ 45, 206,
+ 46, 207,
+ 47, 208,
+ 48, 209,
+ 55, 231,
+ 56, 232,
+ 57, 233,
+ 58, 234,
+ 60, 235,
+ 121, 283,
+ 122, 284,
+ 123, 285,
+ 124, 286,
+ 131, 295,
+ 132, 296,
+ 133, 297,
+ 134, 298,
+ 135, 299,
+ 251, 478,
+ 480, 677,
+ 603, 800,
+ 795, 946,
+ 806, 958,
+ 808, 960,
+ 817, 965,
+ 1085, 1237,
+ 1107, 1256,
+ 1108, 1257,
+ 1109, 1258,
+ 1110, 1259,
+ 1116, 1267,
+ 1117, 1268,
+ 1118, 1269,
+ 1119, 1270,
+ 1120, 1271,
+ 1148, 1307,
+ 1245, 1406,
+ 1405, 1524,
+ 1422, 1534,
+ 1423, 1535,
+ 1521, 1628,
+ 1541, 1637,
+ 1636, 1706,
+ 1699, 1767
};
static int parser_goto_row90[] = {
1,
- -1, 380
+ -1, 392
};
static int parser_goto_row91[] = {
- 4,
- -1, 1121,
- 964, 1131,
- 1664, 1722,
- 1728, 1781
+ 6,
+ -1, 790,
+ 935, 1079,
+ 969, 1144,
+ 978, 1153,
+ 1654, 1726,
+ 1732, 1790
};
static int parser_goto_row92[] = {
- 3,
- -1, 1122,
- 585, 776,
- 921, 1056
+ 2,
+ -1, 791,
+ 1087, 1240
};
static int parser_goto_row93[] = {
- 2,
- -1, 777,
- 1064, 1213
+ 1,
+ -1, 1238
};
static int parser_goto_row94[] = {
- 1,
- -1, 1211
+ 2,
+ -1, 943,
+ 944, 1088
};
static int parser_goto_row95[] = {
- 2,
- -1, 929,
- 930, 1065
+ 5,
+ -1, 1302,
+ 1304, 1452,
+ 1319, 1452,
+ 1785, 1452,
+ 1836, 1452
};
static int parser_goto_row96[] = {
- 4,
- -1, 1275,
- 1132, 1293,
- 1723, 1776,
- 1782, 1824
+ 1,
+ -1, 991
};
static int parser_goto_row97[] = {
- 2,
- -1, 1276,
- 1278, 1403
+ 4,
+ -1, 1241,
+ 1400, 1520,
+ 1482, 1591,
+ 1776, 1825
};
static int parser_goto_row98[] = {
- 1,
- -1, 1143
+ 3,
+ -1, 1403,
+ 1404, 1523,
+ 1490, 1523
};
static int parser_goto_row99[] = {
4,
- -1, 1214,
- 1351, 1481,
- 1552, 1614,
- 1712, 1767
+ -1, 1242,
+ 212, 439,
+ 807, 959,
+ 1522, 1629
};
static int parser_goto_row100[] = {
- 3,
- -1, 1354,
- 1355, 1484,
- 1560, 1484
+ 4,
+ -1, 795,
+ 936, 1080,
+ 940, 1085,
+ 1568, 1645
};
static int parser_goto_row101[] = {
- 4,
- -1, 1215,
- 203, 427,
- 793, 945,
- 1483, 1584
+ 86,
+ -1, 353,
+ 31, 137,
+ 54, 229,
+ 116, 278,
+ 130, 294,
+ 170, 137,
+ 254, 482,
+ 257, 490,
+ 259, 495,
+ 300, 517,
+ 302, 518,
+ 327, 543,
+ 378, 482,
+ 380, 585,
+ 381, 586,
+ 425, 229,
+ 498, 693,
+ 507, 700,
+ 544, 736,
+ 557, 748,
+ 587, 778,
+ 623, 490,
+ 625, 495,
+ 668, 843,
+ 670, 848,
+ 730, 876,
+ 732, 878,
+ 773, 843,
+ 774, 927,
+ 812, 693,
+ 852, 1009,
+ 854, 1014,
+ 880, 1030,
+ 881, 1031,
+ 887, 137,
+ 901, 229,
+ 929, 1071,
+ 930, 1072,
+ 937, 1081,
+ 954, 848,
+ 1017, 1189,
+ 1022, 1192,
+ 1032, 1199,
+ 1055, 482,
+ 1057, 490,
+ 1064, 495,
+ 1073, 1226,
+ 1082, 1233,
+ 1083, 1234,
+ 1097, 1009,
+ 1098, 1014,
+ 1102, 1251,
+ 1115, 1266,
+ 1193, 1370,
+ 1194, 1371,
+ 1223, 693,
+ 1235, 1399,
+ 1248, 1189,
+ 1272, 1420,
+ 1274, 1421,
+ 1299, 1448,
+ 1338, 1485,
+ 1372, 1498,
+ 1386, 843,
+ 1387, 848,
+ 1415, 1531,
+ 1449, 1567,
+ 1487, 1600,
+ 1491, 1606,
+ 1512, 1009,
+ 1514, 1014,
+ 1561, 1638,
+ 1563, 1640,
+ 1607, 1688,
+ 1624, 1189,
+ 1642, 1709,
+ 1643, 1710,
+ 1675, 1752,
+ 1702, 1769,
+ 1711, 1775,
+ 1754, 1810,
+ 1755, 1813,
+ 1770, 1819,
+ 1771, 1820,
+ 1814, 1858,
+ 1821, 1862
};
static int parser_goto_row102[] = {
- 4,
- -1, 781,
- 922, 1057,
- 926, 1062,
- 1529, 1600
+ 34,
+ -1, 138,
+ 54, 230,
+ 254, 483,
+ 256, 487,
+ 257, 491,
+ 258, 492,
+ 259, 496,
+ 497, 690,
+ 498, 694,
+ 668, 844,
+ 670, 849,
+ 851, 1006,
+ 852, 1010,
+ 853, 1011,
+ 854, 1015,
+ 887, 1034,
+ 901, 1053,
+ 1016, 1186,
+ 1017, 1190,
+ 1055, 1212,
+ 1056, 1213,
+ 1057, 1214,
+ 1063, 1220,
+ 1064, 1221,
+ 1222, 1391,
+ 1223, 1392,
+ 1386, 1509,
+ 1387, 1510,
+ 1511, 1619,
+ 1512, 1620,
+ 1513, 1621,
+ 1514, 1622,
+ 1623, 1696,
+ 1624, 1697
};
static int parser_goto_row103[] = {
- 86,
- -1, 341,
- 25, 128,
- 49, 220,
- 107, 266,
- 121, 282,
- 161, 128,
- 246, 470,
- 249, 478,
- 251, 483,
- 288, 503,
- 290, 504,
- 315, 529,
- 366, 470,
- 368, 572,
- 369, 573,
- 413, 220,
- 486, 680,
- 493, 686,
- 530, 722,
- 544, 734,
- 574, 764,
- 610, 478,
- 612, 483,
- 655, 829,
- 657, 834,
- 716, 862,
- 718, 864,
- 759, 829,
- 760, 913,
- 798, 680,
- 838, 987,
- 840, 992,
- 866, 1008,
- 867, 1009,
- 873, 128,
- 887, 220,
- 915, 1048,
- 916, 1049,
- 923, 1058,
- 940, 834,
- 995, 1164,
- 1000, 1167,
- 1010, 1174,
- 1033, 470,
- 1035, 478,
- 1041, 483,
- 1050, 1199,
- 1059, 1206,
- 1060, 1207,
- 1074, 987,
- 1075, 992,
- 1079, 1224,
- 1092, 1239,
- 1168, 1322,
- 1169, 1323,
- 1196, 680,
- 1208, 1350,
- 1221, 1164,
- 1245, 1371,
- 1247, 1372,
- 1272, 1399,
- 1324, 1459,
- 1338, 829,
- 1339, 834,
- 1366, 1492,
- 1400, 1528,
- 1434, 1555,
- 1473, 987,
- 1475, 992,
- 1522, 1593,
- 1524, 1595,
- 1557, 1623,
- 1561, 1629,
- 1579, 1164,
- 1597, 1651,
- 1598, 1652,
- 1630, 1698,
- 1644, 1705,
- 1653, 1711,
- 1685, 1748,
- 1706, 1761,
- 1707, 1762,
- 1750, 1801,
- 1751, 1804,
- 1763, 1811,
- 1805, 1846
+ 6,
+ -1, 246,
+ 154, 326,
+ 193, 377,
+ 289, 326,
+ 348, 377,
+ 1353, 1489
};
static int parser_goto_row104[] = {
- 34,
- -1, 129,
- 49, 221,
- 246, 471,
- 248, 475,
- 249, 479,
- 250, 480,
- 251, 484,
- 485, 677,
- 486, 681,
- 655, 830,
- 657, 835,
- 837, 984,
- 838, 988,
- 839, 989,
- 840, 993,
- 873, 1012,
- 887, 1031,
- 994, 1161,
- 995, 1165,
- 1033, 1187,
- 1034, 1188,
- 1035, 1189,
- 1040, 1193,
- 1041, 1194,
- 1195, 1342,
- 1196, 1343,
- 1338, 1470,
- 1339, 1471,
- 1472, 1574,
- 1473, 1575,
- 1474, 1576,
- 1475, 1577,
- 1578, 1638,
- 1579, 1639
+ 4,
+ -1, 516,
+ 473, 667,
+ 504, 697,
+ 681, 858
};
static int parser_goto_row105[] = {
- 6,
- -1, 238,
- 145, 314,
- 184, 365,
- 277, 314,
- 336, 365,
- 1449, 1559
+ 2,
+ -1, 873,
+ 874, 1027
};
static int parser_goto_row106[] = {
- 4,
- -1, 502,
- 461, 654,
- 490, 683,
- 668, 844
+ 3,
+ -1, 342,
+ 629, 815,
+ 1045, 1206
};
static int parser_goto_row107[] = {
2,
- -1, 859,
- 860, 1005
+ -1, 343,
+ 552, 744
};
static int parser_goto_row108[] = {
- 3,
- -1, 329,
- 616, 801,
- 1023, 1181
+ 2,
+ -1, 822,
+ 638, 825
};
static int parser_goto_row109[] = {
- 2,
- -1, 330,
- 538, 730
+ 157,
+ -1, 194,
+ 13, 80,
+ 27, 80,
+ 31, 139,
+ 33, 80,
+ 37, 80,
+ 54, 139,
+ 98, 80,
+ 125, 288,
+ 160, 80,
+ 175, 349,
+ 212, 440,
+ 242, 80,
+ 254, 139,
+ 256, 139,
+ 257, 139,
+ 258, 139,
+ 259, 139,
+ 280, 139,
+ 386, 80,
+ 472, 80,
+ 474, 671,
+ 497, 139,
+ 498, 139,
+ 519, 139,
+ 521, 139,
+ 522, 139,
+ 524, 139,
+ 525, 139,
+ 526, 139,
+ 527, 139,
+ 528, 139,
+ 529, 139,
+ 530, 139,
+ 531, 139,
+ 532, 139,
+ 533, 139,
+ 534, 139,
+ 535, 139,
+ 536, 139,
+ 537, 139,
+ 538, 139,
+ 539, 139,
+ 540, 139,
+ 541, 139,
+ 542, 733,
+ 545, 80,
+ 584, 775,
+ 588, 80,
+ 591, 80,
+ 668, 139,
+ 670, 139,
+ 702, 870,
+ 708, 139,
+ 738, 80,
+ 742, 907,
+ 743, 80,
+ 749, 925,
+ 798, 80,
+ 805, 671,
+ 807, 440,
+ 851, 139,
+ 852, 139,
+ 853, 139,
+ 854, 139,
+ 887, 139,
+ 888, 907,
+ 890, 80,
+ 892, 907,
+ 901, 139,
+ 909, 80,
+ 964, 1123,
+ 979, 80,
+ 1016, 139,
+ 1017, 139,
+ 1036, 80,
+ 1055, 139,
+ 1056, 139,
+ 1057, 139,
+ 1058, 80,
+ 1062, 80,
+ 1063, 139,
+ 1064, 139,
+ 1089, 440,
+ 1111, 1261,
+ 1112, 1123,
+ 1113, 1123,
+ 1114, 1123,
+ 1156, 80,
+ 1166, 1348,
+ 1208, 907,
+ 1211, 671,
+ 1216, 80,
+ 1222, 139,
+ 1223, 139,
+ 1253, 1123,
+ 1255, 1123,
+ 1380, 907,
+ 1382, 80,
+ 1386, 139,
+ 1387, 139,
+ 1393, 80,
+ 1400, 440,
+ 1424, 1123,
+ 1426, 1123,
+ 1427, 1123,
+ 1429, 1123,
+ 1430, 1123,
+ 1431, 1123,
+ 1432, 1123,
+ 1433, 1123,
+ 1434, 1123,
+ 1435, 1123,
+ 1436, 1123,
+ 1437, 1123,
+ 1438, 1123,
+ 1439, 1123,
+ 1440, 1123,
+ 1441, 1123,
+ 1442, 1123,
+ 1443, 1123,
+ 1444, 1123,
+ 1445, 1123,
+ 1446, 1123,
+ 1447, 1564,
+ 1482, 440,
+ 1501, 907,
+ 1502, 907,
+ 1507, 907,
+ 1511, 139,
+ 1512, 139,
+ 1513, 139,
+ 1514, 139,
+ 1522, 440,
+ 1533, 1634,
+ 1537, 1123,
+ 1601, 1676,
+ 1610, 139,
+ 1623, 139,
+ 1624, 139,
+ 1645, 1348,
+ 1655, 80,
+ 1659, 80,
+ 1692, 907,
+ 1721, 80,
+ 1729, 80,
+ 1730, 80,
+ 1733, 80,
+ 1738, 80,
+ 1741, 80,
+ 1776, 440,
+ 1782, 80,
+ 1789, 80,
+ 1794, 80,
+ 1799, 80,
+ 1817, 907,
+ 1883, 1123
};
static int parser_goto_row110[] = {
- 2,
- -1, 808,
- 625, 811
+ 1,
+ -1, 839
};
static int parser_goto_row111[] = {
- 156,
- -1, 185,
- 12, 78,
- 21, 78,
- 25, 130,
- 27, 78,
- 31, 78,
- 49, 130,
- 92, 78,
- 96, 78,
- 116, 276,
- 151, 78,
- 166, 337,
- 203, 428,
- 234, 78,
- 246, 130,
- 248, 130,
- 249, 130,
- 250, 130,
- 251, 130,
- 268, 130,
- 374, 78,
- 460, 78,
- 462, 658,
- 485, 130,
- 486, 130,
- 505, 130,
- 507, 130,
- 508, 130,
- 510, 130,
- 511, 130,
- 512, 130,
- 513, 130,
- 514, 130,
- 515, 130,
- 516, 130,
- 517, 130,
- 518, 130,
- 519, 130,
- 520, 130,
- 521, 130,
- 522, 130,
- 523, 130,
- 524, 130,
- 525, 130,
- 526, 130,
- 527, 130,
- 528, 719,
- 531, 78,
- 571, 761,
- 575, 78,
- 578, 78,
- 655, 130,
- 657, 130,
- 688, 856,
- 694, 130,
- 724, 78,
- 728, 893,
- 729, 78,
- 735, 911,
- 784, 78,
- 791, 658,
- 793, 428,
- 837, 130,
- 838, 130,
- 839, 130,
- 840, 130,
- 873, 130,
- 874, 893,
- 876, 78,
- 878, 893,
- 887, 130,
- 895, 78,
- 950, 1100,
- 965, 78,
- 994, 130,
- 995, 130,
- 1014, 78,
- 1033, 130,
- 1034, 130,
- 1035, 130,
- 1039, 78,
- 1040, 130,
- 1041, 130,
- 1066, 428,
- 1088, 1234,
- 1089, 1100,
- 1090, 1100,
- 1091, 1100,
- 1134, 78,
- 1183, 893,
- 1186, 658,
- 1195, 130,
- 1196, 130,
- 1226, 1100,
- 1228, 1100,
- 1306, 1444,
- 1332, 893,
- 1334, 78,
- 1338, 130,
- 1339, 130,
- 1344, 78,
- 1351, 428,
- 1375, 1100,
- 1377, 1100,
- 1378, 1100,
- 1380, 1100,
- 1381, 1100,
- 1382, 1100,
- 1383, 1100,
- 1384, 1100,
- 1385, 1100,
- 1386, 1100,
- 1387, 1100,
- 1388, 1100,
- 1389, 1100,
- 1390, 1100,
- 1391, 1100,
- 1392, 1100,
- 1393, 1100,
- 1394, 1100,
- 1395, 1100,
- 1396, 1100,
- 1397, 1100,
- 1398, 1525,
- 1462, 893,
- 1463, 893,
- 1468, 893,
- 1472, 130,
- 1473, 130,
- 1474, 130,
- 1475, 130,
- 1483, 428,
- 1494, 1589,
- 1498, 1100,
- 1552, 428,
- 1565, 130,
- 1578, 130,
- 1579, 130,
- 1600, 1444,
- 1624, 1686,
- 1634, 893,
- 1665, 78,
- 1669, 78,
- 1712, 428,
- 1717, 78,
- 1725, 78,
- 1726, 78,
- 1729, 78,
- 1734, 78,
- 1737, 78,
- 1759, 893,
- 1773, 78,
- 1780, 78,
- 1785, 78,
- 1790, 78,
- 1848, 1100
+ 6,
+ -1, 1318,
+ 467, 662,
+ 1463, 1575,
+ 1472, 1582,
+ 1474, 1585,
+ 1476, 1588
};
static int parser_goto_row112[] = {
- 1,
- -1, 825
+ 22,
+ -1, 81,
+ 83, 260,
+ 156, 260,
+ 196, 260,
+ 445, 260,
+ 664, 260,
+ 673, 260,
+ 735, 260,
+ 777, 260,
+ 823, 260,
+ 841, 260,
+ 918, 260,
+ 939, 260,
+ 957, 260,
+ 1024, 260,
+ 1140, 260,
+ 1143, 260,
+ 1357, 260,
+ 1389, 260,
+ 1566, 260,
+ 1679, 260,
+ 1704, 260
};
static int parser_goto_row113[] = {
- 6,
- -1, 1292,
- 455, 649,
- 1414, 1536,
- 1542, 1605,
- 1544, 1608,
- 1546, 1611
+ 186,
+ -1, 195,
+ 13, 82,
+ 27, 82,
+ 31, 140,
+ 33, 82,
+ 37, 82,
+ 54, 140,
+ 83, 261,
+ 98, 82,
+ 125, 140,
+ 156, 328,
+ 160, 82,
+ 196, 382,
+ 212, 441,
+ 242, 82,
+ 254, 140,
+ 256, 140,
+ 257, 140,
+ 258, 140,
+ 259, 140,
+ 280, 140,
+ 386, 82,
+ 445, 626,
+ 467, 663,
+ 472, 82,
+ 474, 672,
+ 497, 140,
+ 498, 140,
+ 519, 140,
+ 521, 140,
+ 522, 140,
+ 524, 140,
+ 525, 140,
+ 526, 140,
+ 527, 140,
+ 528, 140,
+ 529, 140,
+ 530, 140,
+ 531, 140,
+ 532, 140,
+ 533, 140,
+ 534, 140,
+ 535, 140,
+ 536, 140,
+ 537, 140,
+ 538, 140,
+ 539, 140,
+ 540, 140,
+ 541, 140,
+ 542, 734,
+ 545, 82,
+ 584, 776,
+ 588, 82,
+ 591, 82,
+ 664, 836,
+ 666, 840,
+ 668, 140,
+ 670, 140,
+ 673, 855,
+ 702, 734,
+ 708, 140,
+ 735, 882,
+ 738, 82,
+ 742, 908,
+ 743, 82,
+ 749, 776,
+ 777, 931,
+ 788, 938,
+ 798, 82,
+ 805, 955,
+ 807, 441,
+ 841, 997,
+ 851, 140,
+ 852, 140,
+ 853, 140,
+ 854, 140,
+ 869, 1023,
+ 887, 140,
+ 888, 908,
+ 890, 82,
+ 892, 908,
+ 901, 140,
+ 909, 82,
+ 918, 1065,
+ 939, 1084,
+ 957, 1099,
+ 964, 1124,
+ 979, 82,
+ 1016, 140,
+ 1017, 140,
+ 1024, 1195,
+ 1036, 82,
+ 1055, 140,
+ 1056, 140,
+ 1057, 140,
+ 1058, 82,
+ 1062, 82,
+ 1063, 140,
+ 1064, 140,
+ 1089, 441,
+ 1111, 1124,
+ 1112, 1124,
+ 1113, 1124,
+ 1114, 1124,
+ 1140, 1300,
+ 1152, 663,
+ 1156, 82,
+ 1166, 1349,
+ 1208, 908,
+ 1211, 1388,
+ 1216, 82,
+ 1222, 140,
+ 1223, 140,
+ 1253, 1124,
+ 1255, 1124,
+ 1357, 1492,
+ 1380, 908,
+ 1382, 82,
+ 1386, 140,
+ 1387, 140,
+ 1389, 1515,
+ 1393, 82,
+ 1400, 441,
+ 1424, 1124,
+ 1426, 1124,
+ 1427, 1124,
+ 1429, 1124,
+ 1430, 1124,
+ 1431, 1124,
+ 1432, 1124,
+ 1433, 1124,
+ 1434, 1124,
+ 1435, 1124,
+ 1436, 1124,
+ 1437, 1124,
+ 1438, 1124,
+ 1439, 1124,
+ 1440, 1124,
+ 1441, 1124,
+ 1442, 1124,
+ 1443, 1124,
+ 1444, 1124,
+ 1445, 1124,
+ 1446, 1124,
+ 1447, 1565,
+ 1463, 663,
+ 1472, 663,
+ 1474, 663,
+ 1476, 663,
+ 1482, 441,
+ 1501, 908,
+ 1502, 908,
+ 1507, 908,
+ 1511, 140,
+ 1512, 140,
+ 1513, 140,
+ 1514, 140,
+ 1522, 441,
+ 1533, 1565,
+ 1537, 1124,
+ 1566, 1644,
+ 1572, 663,
+ 1601, 1677,
+ 1610, 140,
+ 1623, 140,
+ 1624, 140,
+ 1633, 1703,
+ 1645, 1349,
+ 1655, 82,
+ 1659, 82,
+ 1679, 1756,
+ 1692, 908,
+ 1704, 1772,
+ 1721, 82,
+ 1729, 82,
+ 1730, 82,
+ 1733, 82,
+ 1738, 82,
+ 1741, 82,
+ 1776, 441,
+ 1782, 82,
+ 1789, 82,
+ 1794, 82,
+ 1799, 82,
+ 1817, 908,
+ 1883, 1124
};
static int parser_goto_row114[] = {
- 22,
- -1, 79,
- 81, 252,
- 147, 252,
- 187, 252,
- 433, 252,
- 651, 252,
- 660, 252,
- 721, 252,
- 763, 252,
- 809, 252,
- 827, 252,
- 904, 252,
- 925, 252,
- 943, 252,
- 1002, 252,
- 1117, 252,
- 1120, 252,
- 1341, 252,
- 1453, 252,
- 1527, 252,
- 1646, 252,
- 1689, 252
+ 12,
+ -1, 1321,
+ 1322, 1465,
+ 1728, 1786,
+ 1737, 1795,
+ 1781, 1830,
+ 1787, 1833,
+ 1788, 1834,
+ 1796, 1840,
+ 1798, 1841,
+ 1831, 1869,
+ 1835, 1870,
+ 1842, 1873
};
static int parser_goto_row115[] = {
- 185,
- -1, 186,
- 12, 80,
- 21, 80,
- 25, 131,
- 27, 80,
- 31, 80,
- 49, 131,
- 81, 253,
- 92, 80,
- 96, 80,
- 116, 131,
- 147, 316,
- 151, 80,
- 187, 370,
- 203, 429,
- 234, 80,
- 246, 131,
- 248, 131,
- 249, 131,
- 250, 131,
- 251, 131,
- 268, 131,
- 374, 80,
- 433, 613,
- 455, 650,
- 460, 80,
- 462, 659,
- 485, 131,
- 486, 131,
- 505, 131,
- 507, 131,
- 508, 131,
- 510, 131,
- 511, 131,
- 512, 131,
- 513, 131,
- 514, 131,
- 515, 131,
- 516, 131,
- 517, 131,
- 518, 131,
- 519, 131,
- 520, 131,
- 521, 131,
- 522, 131,
- 523, 131,
- 524, 131,
- 525, 131,
- 526, 131,
- 527, 131,
- 528, 720,
- 531, 80,
- 571, 762,
- 575, 80,
- 578, 80,
- 651, 822,
- 653, 826,
- 655, 131,
- 657, 131,
- 660, 841,
- 688, 720,
- 694, 131,
- 721, 868,
- 724, 80,
- 728, 894,
- 729, 80,
- 735, 762,
- 763, 917,
- 774, 924,
- 784, 80,
- 791, 941,
- 793, 429,
- 827, 975,
- 837, 131,
- 838, 131,
- 839, 131,
- 840, 131,
- 855, 1001,
- 873, 131,
- 874, 894,
- 876, 80,
- 878, 894,
- 887, 131,
- 895, 80,
- 904, 1042,
- 925, 1061,
- 943, 1076,
- 950, 1101,
- 965, 80,
- 994, 131,
- 995, 131,
- 1002, 1170,
- 1014, 80,
- 1033, 131,
- 1034, 131,
- 1035, 131,
- 1039, 80,
- 1040, 131,
- 1041, 131,
- 1066, 429,
- 1088, 1101,
- 1089, 1101,
- 1090, 1101,
- 1091, 1101,
- 1117, 1273,
- 1130, 650,
- 1134, 80,
- 1183, 894,
- 1186, 1340,
- 1195, 131,
- 1196, 131,
- 1226, 1101,
- 1228, 1101,
- 1306, 1445,
- 1332, 894,
- 1334, 80,
- 1338, 131,
- 1339, 131,
- 1341, 1476,
- 1344, 80,
- 1351, 429,
- 1375, 1101,
- 1377, 1101,
- 1378, 1101,
- 1380, 1101,
- 1381, 1101,
- 1382, 1101,
- 1383, 1101,
- 1384, 1101,
- 1385, 1101,
- 1386, 1101,
- 1387, 1101,
- 1388, 1101,
- 1389, 1101,
- 1390, 1101,
- 1391, 1101,
- 1392, 1101,
- 1393, 1101,
- 1394, 1101,
- 1395, 1101,
- 1396, 1101,
- 1397, 1101,
- 1398, 1526,
- 1414, 650,
- 1453, 1562,
- 1462, 894,
- 1463, 894,
- 1468, 894,
- 1472, 131,
- 1473, 131,
- 1474, 131,
- 1475, 131,
- 1483, 429,
- 1494, 1526,
- 1498, 1101,
- 1527, 1599,
- 1533, 650,
- 1542, 650,
- 1544, 650,
- 1546, 650,
- 1552, 429,
- 1565, 131,
- 1578, 131,
- 1579, 131,
- 1588, 1645,
- 1600, 1445,
- 1624, 1687,
- 1634, 894,
- 1646, 1708,
- 1665, 80,
- 1669, 80,
- 1689, 1752,
- 1712, 429,
- 1717, 80,
- 1725, 80,
- 1726, 80,
- 1729, 80,
- 1734, 80,
- 1737, 80,
- 1759, 894,
- 1773, 80,
- 1780, 80,
- 1785, 80,
- 1790, 80,
- 1848, 1101
+ 14,
+ -1, 91,
+ 824, 972,
+ 969, 1145,
+ 970, 1146,
+ 973, 1147,
+ 978, 1154,
+ 989, 1161,
+ 1645, 1714,
+ 1654, 1727,
+ 1713, 1777,
+ 1715, 1778,
+ 1732, 1791,
+ 1865, 1887,
+ 1886, 1895
};
static int parser_goto_row116[] = {
- 12,
- -1, 1295,
- 1296, 1416,
- 1724, 1777,
- 1733, 1786,
- 1772, 1818,
- 1778, 1821,
- 1779, 1822,
- 1787, 1828,
- 1789, 1829,
- 1819, 1856,
- 1823, 1857,
- 1830, 1860
+ 55,
+ -1, 591,
+ 0, 12,
+ 3, 23,
+ 5, 12,
+ 18, 12,
+ 19, 12,
+ 20, 12,
+ 28, 12,
+ 29, 12,
+ 30, 12,
+ 33, 160,
+ 37, 160,
+ 64, 242,
+ 94, 12,
+ 95, 12,
+ 99, 12,
+ 104, 269,
+ 105, 270,
+ 111, 12,
+ 112, 12,
+ 114, 12,
+ 243, 472,
+ 265, 12,
+ 271, 502,
+ 274, 12,
+ 331, 545,
+ 546, 738,
+ 742, 909,
+ 743, 160,
+ 798, 160,
+ 839, 992,
+ 888, 1036,
+ 892, 1036,
+ 990, 992,
+ 994, 992,
+ 1060, 242,
+ 1145, 992,
+ 1154, 992,
+ 1208, 1382,
+ 1218, 472,
+ 1304, 992,
+ 1319, 992,
+ 1380, 1382,
+ 1393, 160,
+ 1468, 992,
+ 1501, 909,
+ 1502, 1036,
+ 1507, 1036,
+ 1579, 992,
+ 1692, 1382,
+ 1727, 992,
+ 1785, 992,
+ 1791, 992,
+ 1817, 1036,
+ 1836, 992
};
static int parser_goto_row117[] = {
- 14,
- -1, 85,
- 810, 958,
- 955, 1123,
- 956, 1124,
- 959, 1125,
- 964, 1132,
- 1141, 1301,
- 1600, 1656,
- 1655, 1713,
- 1657, 1714,
- 1664, 1723,
- 1728, 1782,
- 1814, 1852,
- 1851, 1871
+ 18,
+ -1, 98,
+ 0, 13,
+ 5, 27,
+ 18, 27,
+ 28, 27,
+ 839, 993,
+ 990, 993,
+ 994, 1169,
+ 1145, 1303,
+ 1154, 1303,
+ 1304, 1303,
+ 1319, 1303,
+ 1468, 993,
+ 1579, 993,
+ 1727, 1303,
+ 1785, 1303,
+ 1791, 1303,
+ 1836, 1303
};
static int parser_goto_row118[] = {
- 56,
- -1, 154,
- 0, 11,
- 4, 11,
- 15, 11,
- 16, 11,
- 17, 11,
- 22, 11,
- 23, 11,
- 24, 11,
- 27, 151,
- 31, 151,
- 62, 234,
- 88, 11,
- 89, 11,
- 93, 11,
- 102, 11,
- 103, 11,
- 105, 11,
- 235, 460,
- 256, 11,
- 262, 11,
- 319, 531,
- 374, 578,
- 532, 724,
- 575, 578,
- 728, 895,
- 729, 151,
- 784, 151,
- 874, 1014,
- 876, 578,
- 878, 1014,
- 965, 578,
- 1037, 234,
- 1039, 578,
- 1134, 578,
- 1183, 1334,
- 1191, 460,
- 1332, 1334,
- 1344, 151,
- 1462, 895,
- 1463, 1014,
- 1468, 1014,
- 1634, 1334,
- 1665, 578,
- 1669, 578,
- 1717, 578,
- 1725, 578,
- 1726, 578,
- 1729, 578,
- 1734, 578,
- 1737, 578,
- 1759, 1014,
- 1773, 578,
- 1780, 578,
- 1785, 578,
- 1790, 578
+ 249,
+ -1, 14,
+ 35, 163,
+ 36, 166,
+ 38, 169,
+ 44, 203,
+ 49, 210,
+ 51, 212,
+ 52, 213,
+ 79, 253,
+ 84, 262,
+ 117, 279,
+ 118, 280,
+ 119, 281,
+ 120, 282,
+ 126, 290,
+ 171, 344,
+ 172, 345,
+ 173, 346,
+ 174, 347,
+ 214, 451,
+ 215, 452,
+ 236, 457,
+ 237, 458,
+ 238, 459,
+ 239, 460,
+ 244, 473,
+ 245, 474,
+ 250, 477,
+ 277, 504,
+ 287, 509,
+ 303, 519,
+ 304, 521,
+ 305, 522,
+ 306, 523,
+ 307, 524,
+ 308, 525,
+ 309, 526,
+ 310, 527,
+ 311, 528,
+ 312, 529,
+ 313, 530,
+ 314, 531,
+ 315, 532,
+ 316, 533,
+ 317, 534,
+ 318, 535,
+ 319, 536,
+ 320, 537,
+ 321, 538,
+ 322, 539,
+ 323, 540,
+ 324, 541,
+ 325, 542,
+ 333, 547,
+ 336, 550,
+ 338, 551,
+ 340, 552,
+ 342, 553,
+ 354, 561,
+ 355, 563,
+ 356, 564,
+ 357, 565,
+ 358, 566,
+ 359, 567,
+ 360, 568,
+ 361, 569,
+ 362, 570,
+ 363, 571,
+ 364, 572,
+ 365, 573,
+ 366, 574,
+ 367, 575,
+ 368, 576,
+ 369, 577,
+ 370, 578,
+ 371, 579,
+ 372, 580,
+ 373, 581,
+ 374, 582,
+ 375, 583,
+ 376, 584,
+ 390, 598,
+ 394, 602,
+ 404, 213,
+ 437, 614,
+ 439, 617,
+ 446, 628,
+ 447, 629,
+ 448, 630,
+ 461, 637,
+ 462, 638,
+ 469, 666,
+ 481, 678,
+ 486, 681,
+ 499, 695,
+ 505, 698,
+ 511, 702,
+ 515, 705,
+ 520, 708,
+ 548, 740,
+ 554, 746,
+ 555, 747,
+ 559, 749,
+ 562, 751,
+ 593, 784,
+ 597, 788,
+ 604, 801,
+ 613, 805,
+ 615, 807,
+ 632, 818,
+ 662, 832,
+ 669, 845,
+ 676, 856,
+ 699, 869,
+ 731, 877,
+ 741, 885,
+ 744, 921,
+ 745, 922,
+ 782, 932,
+ 785, 935,
+ 790, 941,
+ 796, 947,
+ 799, 951,
+ 814, 962,
+ 815, 963,
+ 816, 964,
+ 820, 968,
+ 828, 975,
+ 829, 976,
+ 831, 983,
+ 868, 1021,
+ 872, 1026,
+ 889, 1040,
+ 891, 1042,
+ 893, 1045,
+ 899, 1051,
+ 924, 1069,
+ 934, 1078,
+ 942, 1087,
+ 945, 1089,
+ 948, 1091,
+ 952, 1094,
+ 966, 1141,
+ 977, 1152,
+ 985, 1159,
+ 994, 1170,
+ 998, 1172,
+ 999, 1173,
+ 1028, 1197,
+ 1029, 1198,
+ 1054, 1211,
+ 1068, 1224,
+ 1074, 1227,
+ 1075, 1228,
+ 1079, 1231,
+ 1093, 1244,
+ 1100, 1249,
+ 1101, 1250,
+ 1103, 1252,
+ 1104, 1253,
+ 1105, 1254,
+ 1106, 1255,
+ 1125, 1275,
+ 1150, 1311,
+ 1191, 1369,
+ 1196, 1373,
+ 1203, 1377,
+ 1204, 1378,
+ 1206, 1379,
+ 1209, 1384,
+ 1225, 1394,
+ 1236, 1400,
+ 1241, 1401,
+ 1260, 1417,
+ 1276, 1424,
+ 1277, 1426,
+ 1278, 1427,
+ 1279, 1428,
+ 1280, 1429,
+ 1281, 1430,
+ 1282, 1431,
+ 1283, 1432,
+ 1284, 1433,
+ 1285, 1434,
+ 1286, 1435,
+ 1287, 1436,
+ 1288, 1437,
+ 1289, 1438,
+ 1290, 1439,
+ 1291, 1440,
+ 1292, 1441,
+ 1293, 1442,
+ 1294, 1443,
+ 1295, 1444,
+ 1296, 1445,
+ 1297, 1446,
+ 1298, 1447,
+ 1308, 1456,
+ 1309, 1457,
+ 1312, 1459,
+ 1334, 1482,
+ 1359, 1493,
+ 1360, 1494,
+ 1375, 1499,
+ 1376, 1500,
+ 1402, 1522,
+ 1408, 1525,
+ 1410, 1526,
+ 1411, 1527,
+ 1419, 1533,
+ 1425, 1537,
+ 1455, 1570,
+ 1460, 1572,
+ 1466, 1576,
+ 1469, 1580,
+ 1474, 832,
+ 1476, 832,
+ 1477, 1589,
+ 1488, 1601,
+ 1497, 1610,
+ 1503, 1616,
+ 1518, 1626,
+ 1520, 1627,
+ 1530, 1633,
+ 1562, 1639,
+ 1574, 1647,
+ 1577, 1648,
+ 1582, 832,
+ 1585, 832,
+ 1588, 832,
+ 1608, 1689,
+ 1611, 1691,
+ 1631, 1701,
+ 1694, 1766,
+ 1707, 1773,
+ 1708, 1774,
+ 1712, 1776,
+ 1716, 1779,
+ 1718, 1780,
+ 1734, 1793,
+ 1768, 1818,
+ 1823, 1863,
+ 1824, 1864,
+ 1827, 1866,
+ 1828, 1867,
+ 1829, 1868,
+ 1861, 1883,
+ 1884, 1894,
+ 1888, 1896
};
static int parser_goto_row119[] = {
- 264,
- -1, 96,
- 0, 12,
- 4, 21,
- 15, 21,
- 16, 92,
- 22, 21,
- 23, 92,
- 29, 155,
- 30, 156,
- 32, 159,
- 33, 160,
- 39, 194,
- 44, 201,
- 46, 203,
- 47, 204,
- 77, 245,
- 88, 92,
- 102, 92,
- 108, 267,
- 109, 268,
- 110, 269,
- 111, 270,
- 117, 278,
- 162, 332,
- 163, 333,
- 164, 334,
- 165, 335,
- 205, 439,
- 206, 440,
- 227, 445,
- 228, 446,
- 229, 447,
- 230, 448,
- 236, 461,
- 237, 462,
- 242, 465,
- 265, 490,
- 275, 495,
- 291, 505,
- 292, 507,
- 293, 508,
- 294, 509,
- 295, 510,
- 296, 511,
- 297, 512,
- 298, 513,
- 299, 514,
- 300, 515,
- 301, 516,
- 302, 517,
- 303, 518,
- 304, 519,
- 305, 520,
- 306, 521,
- 307, 522,
- 308, 523,
- 309, 524,
- 310, 525,
- 311, 526,
- 312, 527,
- 313, 528,
- 321, 533,
- 324, 536,
- 325, 537,
- 327, 538,
- 329, 539,
- 331, 541,
- 342, 548,
- 343, 550,
- 344, 551,
- 345, 552,
- 346, 553,
- 347, 554,
- 348, 555,
- 349, 556,
- 350, 557,
- 351, 558,
- 352, 559,
- 353, 560,
- 354, 561,
- 355, 562,
- 356, 563,
- 357, 564,
- 358, 565,
- 359, 566,
- 360, 567,
- 361, 568,
- 362, 569,
- 363, 570,
- 364, 571,
- 378, 585,
- 382, 589,
- 392, 204,
- 425, 601,
- 427, 604,
- 434, 615,
- 435, 616,
- 436, 617,
- 449, 624,
- 450, 625,
- 457, 653,
- 469, 665,
- 474, 668,
- 491, 684,
- 497, 688,
- 501, 691,
- 506, 694,
- 534, 726,
- 540, 732,
- 542, 733,
- 546, 735,
- 549, 737,
- 580, 770,
- 584, 774,
- 591, 787,
- 600, 791,
- 602, 793,
- 619, 804,
- 649, 818,
- 656, 831,
- 663, 842,
- 685, 855,
- 717, 863,
- 727, 871,
- 730, 907,
- 731, 908,
- 768, 918,
- 771, 921,
- 776, 927,
- 782, 933,
- 785, 937,
- 800, 948,
- 801, 949,
- 802, 950,
- 806, 954,
- 814, 961,
- 815, 962,
- 817, 969,
- 854, 999,
- 858, 1004,
- 875, 1018,
- 877, 1020,
- 879, 1023,
- 885, 1029,
- 910, 1046,
- 920, 1055,
- 928, 1064,
- 931, 1066,
- 934, 1068,
- 938, 1071,
- 952, 1118,
- 963, 1130,
- 971, 1137,
- 972, 1144,
- 976, 1147,
- 977, 1148,
- 1006, 1172,
- 1007, 1173,
- 1032, 1186,
- 1045, 1197,
- 1051, 1200,
- 1052, 1201,
- 1056, 1204,
- 1070, 1217,
- 1077, 1222,
- 1078, 1223,
- 1080, 1225,
- 1081, 1226,
- 1082, 1227,
- 1083, 1228,
- 1102, 1248,
- 1123, 1277,
- 1128, 1285,
- 1132, 1277,
- 1142, 1144,
- 1145, 1309,
- 1166, 1321,
- 1171, 1325,
- 1178, 1329,
- 1179, 1330,
- 1181, 1331,
- 1184, 1336,
- 1198, 1345,
- 1209, 1351,
- 1214, 1352,
- 1233, 1368,
- 1249, 1375,
- 1250, 1377,
- 1251, 1378,
- 1252, 1379,
- 1253, 1380,
- 1254, 1381,
- 1255, 1382,
- 1256, 1383,
- 1257, 1384,
- 1258, 1385,
- 1259, 1386,
- 1260, 1387,
- 1261, 1388,
- 1262, 1389,
- 1263, 1390,
- 1264, 1391,
- 1265, 1392,
- 1266, 1393,
- 1267, 1394,
- 1268, 1395,
- 1269, 1396,
- 1270, 1397,
- 1271, 1398,
- 1278, 1277,
- 1282, 1407,
- 1283, 1408,
- 1286, 1410,
- 1299, 1421,
- 1311, 1454,
- 1312, 1455,
- 1327, 1460,
- 1328, 1461,
- 1353, 1483,
- 1359, 1486,
- 1361, 1487,
- 1362, 1488,
- 1370, 1494,
- 1376, 1498,
- 1406, 1531,
- 1411, 1533,
- 1419, 1538,
- 1422, 1541,
- 1430, 1552,
- 1458, 1565,
- 1464, 1571,
- 1479, 1581,
- 1481, 1582,
- 1491, 1588,
- 1523, 1594,
- 1535, 1602,
- 1544, 818,
- 1546, 818,
- 1547, 1612,
- 1558, 1624,
- 1563, 1631,
- 1566, 1633,
- 1586, 1643,
- 1605, 818,
- 1608, 818,
- 1611, 818,
- 1636, 1702,
- 1649, 1709,
- 1650, 1710,
- 1654, 1712,
- 1658, 1715,
- 1660, 1716,
- 1704, 1760,
- 1723, 1277,
- 1730, 1784,
- 1765, 1812,
- 1766, 1813,
- 1769, 1815,
- 1770, 1816,
- 1771, 1817,
- 1782, 1277,
- 1810, 1848,
- 1849, 1870,
- 1853, 1872
+ 4,
+ -1, 15,
+ 22, 106,
+ 25, 106,
+ 165, 106
};
static int parser_goto_row120[] = {
1,
- -1, 13
+ -1, 16
};
static int parser_goto_row121[] = {
- 1,
- -1, 14
+ 4,
+ -1, 982,
+ 1587, 1662,
+ 1652, 1724,
+ 1663, 1744
};
static int parser_goto_row122[] = {
- 4,
- -1, 968,
- 1610, 1672,
- 1662, 1720,
- 1673, 1740
+ 13,
+ -1, 442,
+ 441, 624,
+ 445, 627,
+ 626, 813,
+ 955, 624,
+ 957, 627,
+ 1099, 813,
+ 1349, 624,
+ 1357, 627,
+ 1492, 813,
+ 1677, 624,
+ 1679, 627,
+ 1756, 813
};
static int parser_goto_row123[] = {
- 13,
- -1, 430,
- 429, 611,
- 433, 614,
- 613, 799,
- 941, 611,
- 943, 614,
- 1076, 799,
- 1445, 611,
- 1453, 614,
- 1562, 799,
- 1687, 611,
- 1689, 614,
- 1752, 799
+ 5,
+ -1, 443,
+ 805, 956,
+ 1166, 1350,
+ 1601, 1678,
+ 1645, 1350
};
static int parser_goto_row124[] = {
- 5,
- -1, 431,
- 791, 942,
- 1306, 1446,
- 1600, 1446,
- 1624, 1688
+ 1,
+ -1, 1542
};
static int parser_goto_row125[] = {
- 1,
- -1, 1503
+ 2,
+ -1, 1125,
+ 1883, 1893
};
static int parser_goto_row126[] = {
- 2,
- -1, 1102,
- 1848, 1869
+ 1,
+ -1, 1126
};
static int parser_goto_row127[] = {
- 1,
- -1, 1103
+ 6,
+ -1, 1127,
+ 1253, 1412,
+ 1424, 1536,
+ 1426, 1538,
+ 1427, 1539,
+ 1537, 1635
};
static int parser_goto_row128[] = {
- 6,
- -1, 1104,
- 1226, 1363,
- 1375, 1497,
- 1377, 1499,
- 1378, 1500,
- 1498, 1590
+ 1,
+ -1, 1128
};
static int parser_goto_row129[] = {
- 1,
- -1, 1105
+ 8,
+ -1, 1129,
+ 1430, 1544,
+ 1431, 1545,
+ 1432, 1546,
+ 1433, 1547,
+ 1434, 1548,
+ 1435, 1549,
+ 1436, 1550
};
static int parser_goto_row130[] = {
- 8,
- -1, 1106,
- 1381, 1505,
- 1382, 1506,
- 1383, 1507,
- 1384, 1508,
- 1385, 1509,
- 1386, 1510,
- 1387, 1511
+ 2,
+ -1, 1130,
+ 1429, 1543
};
static int parser_goto_row131[] = {
2,
- -1, 1107,
- 1380, 1504
+ -1, 1131,
+ 1437, 1551
};
static int parser_goto_row132[] = {
2,
- -1, 1108,
- 1388, 1512
+ -1, 1132,
+ 1438, 1552
};
static int parser_goto_row133[] = {
- 2,
- -1, 1109,
- 1389, 1513
+ 3,
+ -1, 1133,
+ 1439, 1553,
+ 1440, 1554
};
static int parser_goto_row134[] = {
3,
- -1, 1110,
- 1390, 1514,
- 1391, 1515
+ -1, 1134,
+ 1441, 1555,
+ 1442, 1556
};
static int parser_goto_row135[] = {
- 3,
- -1, 1111,
- 1392, 1516,
- 1393, 1517
+ 5,
+ -1, 1135,
+ 1443, 1557,
+ 1444, 1558,
+ 1445, 1559,
+ 1446, 1560
};
static int parser_goto_row136[] = {
5,
- -1, 1112,
- 1394, 1518,
- 1395, 1519,
- 1396, 1520,
- 1397, 1521
+ -1, 1136,
+ 1112, 1263,
+ 1113, 1264,
+ 1114, 1265,
+ 1255, 1416
};
static int parser_goto_row137[] = {
- 5,
- -1, 1113,
- 1089, 1236,
- 1090, 1237,
- 1091, 1238,
- 1228, 1367
+ 1,
+ -1, 1137
};
static int parser_goto_row138[] = {
- 1,
- -1, 1114
+ 2,
+ -1, 1138,
+ 1111, 1262
};
static int parser_goto_row139[] = {
- 2,
- -1, 1115,
- 1088, 1235
+ 1,
+ -1, -1
};
static int parser_goto_row140[] = {
1,
- -1, -1
+ -1, 1139
};
static int parser_goto_row141[] = {
- 1,
- -1, 1116
+ 4,
+ -1, 389,
+ 281, 507,
+ 346, 557,
+ 509, 701
};
static int parser_goto_row142[] = {
- 4,
- -1, 377,
- 269, 493,
- 334, 544,
- 495, 687
+ 1,
+ -1, -1
};
static int parser_goto_row143[] = {
1,
- -1, -1
+ -1, 1351
};
static int parser_goto_row144[] = {
- 1,
- -1, 1447
+ 4,
+ -1, 141,
+ 1166, 1352,
+ 1610, 1690,
+ 1645, 1352
};
static int parser_goto_row145[] = {
- 4,
- -1, 132,
- 1306, 1448,
- 1565, 1632,
- 1600, 1448
+ 1,
+ -1, 142
};
static int parser_goto_row146[] = {
- 1,
- -1, 133
+ 6,
+ -1, 143,
+ 280, 506,
+ 519, 707,
+ 521, 709,
+ 522, 710,
+ 708, 875
};
static int parser_goto_row147[] = {
- 6,
- -1, 134,
- 268, 492,
- 505, 693,
- 507, 695,
- 508, 696,
- 694, 861
+ 1,
+ -1, 144
};
static int parser_goto_row148[] = {
- 1,
- -1, 135
+ 8,
+ -1, 145,
+ 525, 713,
+ 526, 714,
+ 527, 715,
+ 528, 716,
+ 529, 717,
+ 530, 718,
+ 531, 719
};
static int parser_goto_row149[] = {
- 8,
- -1, 136,
- 511, 699,
- 512, 700,
- 513, 701,
- 514, 702,
- 515, 703,
- 516, 704,
- 517, 705
+ 2,
+ -1, 146,
+ 524, 712
};
static int parser_goto_row150[] = {
2,
- -1, 137,
- 510, 698
+ -1, 147,
+ 532, 720
};
static int parser_goto_row151[] = {
2,
- -1, 138,
- 518, 706
+ -1, 148,
+ 533, 721
};
static int parser_goto_row152[] = {
- 2,
- -1, 139,
- 519, 707
+ 3,
+ -1, 149,
+ 534, 722,
+ 535, 723
};
static int parser_goto_row153[] = {
3,
- -1, 140,
- 520, 708,
- 521, 709
+ -1, 150,
+ 536, 724,
+ 537, 725
};
static int parser_goto_row154[] = {
- 3,
- -1, 141,
- 522, 710,
- 523, 711
+ 5,
+ -1, 151,
+ 538, 726,
+ 539, 727,
+ 540, 728,
+ 541, 729
};
static int parser_goto_row155[] = {
- 5,
- -1, 142,
- 524, 712,
- 525, 713,
- 526, 714,
- 527, 715
+ 1,
+ -1, 152
};
static int parser_goto_row156[] = {
1,
- -1, 143
+ -1, 153
};
static int parser_goto_row157[] = {
- 1,
- -1, 144
-};
-static int parser_goto_row158[] = {
4,
- -1, 145,
- 116, 277,
- 1306, 1449,
- 1600, 1449
+ -1, 154,
+ 125, 289,
+ 1166, 1353,
+ 1645, 1353
};
-static int parser_goto_row159[] = {
+static int parser_goto_row158[] = {
1,
-1, -1
};
-static int parser_goto_row160[] = {
+static int parser_goto_row159[] = {
2,
- -1, 146,
- 1062, 1212
+ -1, 155,
+ 1085, 1239
};
-static int parser_goto_row161[] = {
+static int parser_goto_row160[] = {
1,
- -1, 582
+ -1, 595
};
-static int parser_goto_row162[] = {
+static int parser_goto_row161[] = {
7,
- -1, 583,
- 579, 769,
- 1057, 1205,
- 1203, 1348,
- 1346, 1480,
- 1365, 1490,
- 1489, 1587
+ -1, 596,
+ 592, 783,
+ 1080, 1232,
+ 1230, 1397,
+ 1395, 1519,
+ 1414, 1529,
+ 1528, 1632
};
-static int parser_goto_row163[] = {
+static int parser_goto_row162[] = {
1,
- -1, 773
+ -1, 787
};
-static int parser_goto_row164[] = {
+static int parser_goto_row163[] = {
1,
-1, -1
};
-static int parser_goto_row165[] = {
+static int parser_goto_row164[] = {
2,
- -1, 1450,
- 1600, 1657
+ -1, 1354,
+ 1645, 1715
};
-static int parser_goto_row166[] = {
+static int parser_goto_row165[] = {
1,
- -1, 1451
+ -1, 1355
};
-static int parser_goto_row167[] = {
+static int parser_goto_row166[] = {
2,
- -1, 1366,
- 1368, 1493
+ -1, 1415,
+ 1417, 1532
+};
+static int parser_goto_row167[] = {
+ 1,
+ -1, -1
};
static int parser_goto_row168[] = {
1,
-1, -1
};
static int parser_goto_row184[] = {
- 1,
- -1, -1
+ 8,
+ -1, 1037,
+ 892, 1043,
+ 1208, 1383,
+ 1380, 1504,
+ 1502, 1614,
+ 1507, 1617,
+ 1692, 1765,
+ 1817, 1859
};
static int parser_goto_row185[] = {
- 8,
- -1, 1015,
- 878, 1021,
- 1183, 1335,
- 1332, 1465,
- 1463, 1569,
- 1468, 1572,
- 1634, 1701,
- 1759, 1808
+ 3,
+ -1, 1038,
+ 742, 910,
+ 1501, 1613
};
static int parser_goto_row186[] = {
- 3,
- -1, 1016,
- 728, 896,
- 1462, 1568
+ 1,
+ -1, 911
};
static int parser_goto_row187[] = {
1,
- -1, 897
+ -1, 912
};
static int parser_goto_row188[] = {
1,
- -1, 898
+ -1, 913
};
static int parser_goto_row189[] = {
1,
- -1, 899
+ -1, 914
};
static int parser_goto_row190[] = {
1,
- -1, 900
+ -1, 915
};
static int parser_goto_row191[] = {
1,
- -1, 901
+ -1, 916
};
static int parser_goto_row192[] = {
1,
- -1, 902
+ -1, 917
};
static int parser_goto_row193[] = {
1,
- -1, 903
+ -1, -1
};
static int parser_goto_row194[] = {
- 1,
- -1, -1
+ 10,
+ -1, 161,
+ 37, 168,
+ 743, 920,
+ 798, 950,
+ 888, 1039,
+ 892, 1044,
+ 1393, 1517,
+ 1502, 1615,
+ 1507, 1618,
+ 1817, 1860
};
static int parser_goto_row195[] = {
- 10,
- -1, 152,
- 31, 158,
- 729, 906,
- 784, 936,
- 874, 1017,
- 878, 1022,
- 1344, 1478,
- 1463, 1570,
- 1468, 1573,
- 1759, 1809
+ 1,
+ -1, -1
};
static int parser_goto_row196[] = {
1,
- -1, -1
+ -1, 444
};
static int parser_goto_row197[] = {
1,
- -1, 432
+ -1, 1356
};
static int parser_goto_row198[] = {
1,
- -1, 1452
+ -1, -1
};
static int parser_goto_row199[] = {
1,
};
static int parser_goto_row200[] = {
1,
- -1, -1
+ -1, 1166
};
static int parser_goto_row201[] = {
1,
- -1, 1306
+ -1, 17
};
static int parser_goto_row202[] = {
2,
- -1, 15,
- 4, 22
+ -1, 18,
+ 5, 28
};
static int parser_goto_row203[] = {
4,
- -1, 16,
- 4, 23,
- 15, 88,
- 22, 102
+ -1, 19,
+ 5, 29,
+ 18, 94,
+ 28, 111
};
static int parser_goto_row204[] = {
8,
- -1, 17,
- 4, 24,
- 15, 89,
- 16, 93,
- 22, 103,
- 23, 105,
- 88, 256,
- 102, 262
+ -1, 20,
+ 5, 30,
+ 18, 95,
+ 19, 99,
+ 28, 112,
+ 29, 114,
+ 94, 265,
+ 111, 274
};
static int parser_goto_row205[] = {
1,
- -1, 1422
+ -1, 1471
};
static int parser_goto_row206[] = {
1,
- -1, 1145
+ -1, 994
};
static int parser_goto_row207[] = {
- 1,
- -1, 1286
+ 4,
+ -1, 1304,
+ 1154, 1319,
+ 1727, 1785,
+ 1791, 1836
};
static int parser_goto_row208[] = {
1,
- -1, 1413
+ -1, 1312
};
static int parser_goto_row209[] = {
1,
- -1, 1054
+ -1, 1462
};
static int parser_goto_row210[] = {
- 3,
- -1, 235,
- 319, 532,
- 1037, 1191
+ 1,
+ -1, 1077
};
static int parser_goto_row211[] = {
- 1,
- -1, 605
+ 3,
+ -1, 243,
+ 331, 546,
+ 1060, 1218
};
static int parser_goto_row212[] = {
1,
- -1, 621
+ -1, 618
};
static int parser_goto_row213[] = {
1,
- -1, 244
+ -1, 634
};
static int parser_goto_row214[] = {
1,
- -1, 930
+ -1, 252
};
static int parser_goto_row215[] = {
1,
- -1, 1278
+ -1, 944
};
static int parser_goto_row216[] = {
2,
- -1, 1355,
- 1451, 1560
+ -1, 1404,
+ 1355, 1490
};
static int parser_goto_row217[] = {
1,
- -1, 860
+ -1, 874
};
static int parser_goto_row218[] = {
- 169,
- -1, 187,
- 12, 81,
- 21, 81,
- 25, 147,
- 27, 81,
- 31, 81,
- 49, 147,
- 92, 81,
- 96, 81,
- 116, 147,
- 151, 81,
- 203, 433,
- 234, 81,
- 246, 147,
- 248, 147,
- 249, 147,
- 250, 147,
- 251, 147,
- 268, 147,
- 374, 81,
- 455, 651,
- 460, 81,
- 462, 660,
- 485, 147,
- 486, 147,
- 505, 147,
- 507, 147,
- 508, 147,
- 510, 147,
- 511, 147,
- 512, 147,
- 513, 147,
- 514, 147,
- 515, 147,
- 516, 147,
- 517, 147,
- 518, 147,
- 519, 147,
- 520, 147,
- 521, 147,
- 522, 147,
- 523, 147,
- 524, 147,
- 525, 147,
- 526, 147,
- 527, 147,
- 528, 721,
- 531, 81,
- 571, 763,
- 575, 81,
- 578, 81,
- 624, 809,
- 625, 809,
- 653, 827,
- 655, 147,
- 657, 147,
- 688, 721,
- 694, 147,
- 724, 81,
- 728, 904,
- 729, 81,
- 735, 763,
- 774, 925,
- 784, 81,
- 791, 943,
- 793, 433,
- 837, 147,
- 838, 147,
- 839, 147,
- 840, 147,
- 855, 1002,
- 873, 147,
- 874, 904,
- 876, 81,
- 878, 904,
- 887, 147,
- 895, 81,
- 950, 1117,
- 954, 1120,
- 965, 81,
- 994, 147,
- 995, 147,
- 1014, 81,
- 1033, 147,
- 1034, 147,
- 1035, 147,
- 1039, 81,
- 1040, 147,
- 1041, 147,
- 1066, 433,
- 1088, 1117,
- 1089, 1117,
- 1090, 1117,
- 1091, 1117,
- 1130, 651,
- 1134, 81,
- 1183, 904,
- 1186, 1341,
- 1195, 147,
- 1196, 147,
- 1226, 1117,
- 1228, 1117,
- 1306, 1453,
- 1332, 904,
- 1334, 81,
- 1338, 147,
- 1339, 147,
- 1344, 81,
- 1351, 433,
- 1375, 1117,
- 1377, 1117,
- 1378, 1117,
- 1380, 1117,
- 1381, 1117,
- 1382, 1117,
- 1383, 1117,
- 1384, 1117,
- 1385, 1117,
- 1386, 1117,
- 1387, 1117,
- 1388, 1117,
- 1389, 1117,
- 1390, 1117,
- 1391, 1117,
- 1392, 1117,
- 1393, 1117,
- 1394, 1117,
- 1395, 1117,
- 1396, 1117,
- 1397, 1117,
- 1398, 1527,
- 1414, 651,
- 1462, 904,
- 1463, 904,
- 1468, 904,
- 1472, 147,
- 1473, 147,
- 1474, 147,
- 1475, 147,
- 1483, 433,
- 1494, 1527,
- 1498, 1117,
- 1533, 651,
- 1542, 651,
- 1544, 651,
- 1546, 651,
- 1552, 433,
- 1565, 147,
- 1578, 147,
- 1579, 147,
- 1588, 1646,
- 1600, 1453,
- 1624, 1689,
- 1634, 904,
- 1665, 81,
- 1669, 81,
- 1712, 433,
- 1717, 81,
- 1725, 81,
- 1726, 81,
- 1729, 81,
- 1734, 81,
- 1737, 81,
- 1759, 904,
- 1773, 81,
- 1780, 81,
- 1785, 81,
- 1790, 81,
- 1848, 1117
+ 170,
+ -1, 196,
+ 13, 83,
+ 27, 83,
+ 31, 156,
+ 33, 83,
+ 37, 83,
+ 54, 156,
+ 98, 83,
+ 125, 156,
+ 160, 83,
+ 212, 445,
+ 242, 83,
+ 254, 156,
+ 256, 156,
+ 257, 156,
+ 258, 156,
+ 259, 156,
+ 280, 156,
+ 386, 83,
+ 467, 664,
+ 472, 83,
+ 474, 673,
+ 497, 156,
+ 498, 156,
+ 519, 156,
+ 521, 156,
+ 522, 156,
+ 524, 156,
+ 525, 156,
+ 526, 156,
+ 527, 156,
+ 528, 156,
+ 529, 156,
+ 530, 156,
+ 531, 156,
+ 532, 156,
+ 533, 156,
+ 534, 156,
+ 535, 156,
+ 536, 156,
+ 537, 156,
+ 538, 156,
+ 539, 156,
+ 540, 156,
+ 541, 156,
+ 542, 735,
+ 545, 83,
+ 584, 777,
+ 588, 83,
+ 591, 83,
+ 637, 823,
+ 638, 823,
+ 666, 841,
+ 668, 156,
+ 670, 156,
+ 702, 735,
+ 708, 156,
+ 738, 83,
+ 742, 918,
+ 743, 83,
+ 749, 777,
+ 788, 939,
+ 798, 83,
+ 805, 957,
+ 807, 445,
+ 851, 156,
+ 852, 156,
+ 853, 156,
+ 854, 156,
+ 869, 1024,
+ 887, 156,
+ 888, 918,
+ 890, 83,
+ 892, 918,
+ 901, 156,
+ 909, 83,
+ 964, 1140,
+ 968, 1143,
+ 979, 83,
+ 1016, 156,
+ 1017, 156,
+ 1036, 83,
+ 1055, 156,
+ 1056, 156,
+ 1057, 156,
+ 1058, 83,
+ 1062, 83,
+ 1063, 156,
+ 1064, 156,
+ 1089, 445,
+ 1111, 1140,
+ 1112, 1140,
+ 1113, 1140,
+ 1114, 1140,
+ 1152, 664,
+ 1156, 83,
+ 1166, 1357,
+ 1208, 918,
+ 1211, 1389,
+ 1216, 83,
+ 1222, 156,
+ 1223, 156,
+ 1253, 1140,
+ 1255, 1140,
+ 1380, 918,
+ 1382, 83,
+ 1386, 156,
+ 1387, 156,
+ 1393, 83,
+ 1400, 445,
+ 1424, 1140,
+ 1426, 1140,
+ 1427, 1140,
+ 1429, 1140,
+ 1430, 1140,
+ 1431, 1140,
+ 1432, 1140,
+ 1433, 1140,
+ 1434, 1140,
+ 1435, 1140,
+ 1436, 1140,
+ 1437, 1140,
+ 1438, 1140,
+ 1439, 1140,
+ 1440, 1140,
+ 1441, 1140,
+ 1442, 1140,
+ 1443, 1140,
+ 1444, 1140,
+ 1445, 1140,
+ 1446, 1140,
+ 1447, 1566,
+ 1463, 664,
+ 1472, 664,
+ 1474, 664,
+ 1476, 664,
+ 1482, 445,
+ 1501, 918,
+ 1502, 918,
+ 1507, 918,
+ 1511, 156,
+ 1512, 156,
+ 1513, 156,
+ 1514, 156,
+ 1522, 445,
+ 1533, 1566,
+ 1537, 1140,
+ 1572, 664,
+ 1601, 1679,
+ 1610, 156,
+ 1623, 156,
+ 1624, 156,
+ 1633, 1704,
+ 1645, 1357,
+ 1655, 83,
+ 1659, 83,
+ 1692, 918,
+ 1721, 83,
+ 1729, 83,
+ 1730, 83,
+ 1733, 83,
+ 1738, 83,
+ 1741, 83,
+ 1776, 445,
+ 1782, 83,
+ 1789, 83,
+ 1794, 83,
+ 1799, 83,
+ 1817, 918,
+ 1883, 1140
};
static int parser_goto_row219[] = {
- 2,
- -1, 18,
- 13, 82
+ 78,
+ -1, 164,
+ 0, 21,
+ 3, 24,
+ 5, 21,
+ 18, 21,
+ 19, 21,
+ 20, 24,
+ 22, 107,
+ 25, 108,
+ 28, 21,
+ 29, 21,
+ 30, 24,
+ 33, 24,
+ 37, 24,
+ 64, 24,
+ 94, 21,
+ 95, 24,
+ 99, 24,
+ 104, 24,
+ 105, 24,
+ 111, 21,
+ 112, 24,
+ 114, 24,
+ 165, 337,
+ 243, 24,
+ 265, 24,
+ 271, 24,
+ 274, 24,
+ 331, 24,
+ 386, 24,
+ 546, 24,
+ 588, 24,
+ 742, 24,
+ 743, 24,
+ 798, 24,
+ 839, 24,
+ 888, 24,
+ 890, 24,
+ 892, 24,
+ 979, 24,
+ 990, 24,
+ 994, 21,
+ 1058, 24,
+ 1060, 24,
+ 1062, 24,
+ 1145, 24,
+ 1154, 24,
+ 1156, 24,
+ 1208, 24,
+ 1216, 24,
+ 1218, 24,
+ 1304, 24,
+ 1319, 24,
+ 1380, 24,
+ 1393, 24,
+ 1468, 24,
+ 1501, 24,
+ 1502, 24,
+ 1507, 24,
+ 1579, 24,
+ 1655, 24,
+ 1659, 24,
+ 1692, 24,
+ 1721, 24,
+ 1727, 24,
+ 1729, 24,
+ 1730, 24,
+ 1733, 24,
+ 1738, 24,
+ 1741, 24,
+ 1782, 24,
+ 1785, 24,
+ 1789, 24,
+ 1791, 24,
+ 1794, 24,
+ 1799, 24,
+ 1817, 24,
+ 1836, 24
};
static int parser_goto_row220[] = {
- 3,
- -1, 19,
- 18, 98,
- 82, 254
+ 75,
+ -1, 165,
+ 0, 22,
+ 3, 25,
+ 5, 22,
+ 18, 22,
+ 19, 22,
+ 20, 25,
+ 28, 22,
+ 29, 22,
+ 30, 25,
+ 33, 25,
+ 37, 25,
+ 64, 25,
+ 94, 22,
+ 95, 25,
+ 99, 25,
+ 104, 25,
+ 105, 25,
+ 111, 22,
+ 112, 25,
+ 114, 25,
+ 243, 25,
+ 265, 25,
+ 271, 25,
+ 274, 25,
+ 331, 25,
+ 386, 25,
+ 546, 25,
+ 588, 25,
+ 742, 25,
+ 743, 25,
+ 798, 25,
+ 839, 25,
+ 888, 25,
+ 890, 25,
+ 892, 25,
+ 979, 25,
+ 990, 25,
+ 994, 22,
+ 1058, 25,
+ 1060, 25,
+ 1062, 25,
+ 1145, 25,
+ 1154, 25,
+ 1156, 25,
+ 1208, 25,
+ 1216, 25,
+ 1218, 25,
+ 1304, 25,
+ 1319, 25,
+ 1380, 25,
+ 1393, 25,
+ 1468, 25,
+ 1501, 25,
+ 1502, 25,
+ 1507, 25,
+ 1579, 25,
+ 1655, 25,
+ 1659, 25,
+ 1692, 25,
+ 1721, 25,
+ 1727, 25,
+ 1729, 25,
+ 1730, 25,
+ 1733, 25,
+ 1738, 25,
+ 1741, 25,
+ 1782, 25,
+ 1785, 25,
+ 1789, 25,
+ 1791, 25,
+ 1794, 25,
+ 1799, 25,
+ 1817, 25,
+ 1836, 25
};
const int* const parser_goto_table[] = {
init
do
- var annots = modelbuilder.collect_annotations_on_modules("min_api_version", mainmodule)
+ var annots = modelbuilder.collect_annotations_on_modules("android_api_min", mainmodule)
if not annots.is_empty then
var i = annots.pop.arg_as_int(modelbuilder)
if i == null then i = 0
end
end
- annots = modelbuilder.collect_annotations_on_modules("max_api_version", mainmodule)
+ annots = modelbuilder.collect_annotations_on_modules("android_api_max", mainmodule)
if not annots.is_empty then
var i = annots.pop.arg_as_int(modelbuilder)
if i == null then i = 0
end
end
- var annot = modelbuilder.lookup_annotation_on_modules("target_api_version", mainmodule)
+ var annot = modelbuilder.lookup_annotation_on_modules("android_api_target", mainmodule)
if annot != null then target_api = annot.arg_as_int(modelbuilder) or else 0
annots = modelbuilder.collect_annotations_on_modules("android_manifest", mainmodule)
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+abstract class A
+ var x: Int
+ var y: Int is abstract
+end
+
+class B
+ super A
+ redef fun y=(v) do v.output
+end
+
+var b = new B(1,2)
+b.x.output
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+
+redef class Int
+ fun foo do self.output
+end
+
+fun bar(i: nullable Int) do i.foo
+
+redef class Float
+ fun foo do self.output
+end
+
+fun baz(i: nullable Float) do i.foo
+
+bar(1)
+baz(1.0)
+
+var a: nullable Object
+
+a = 1
+a.foo
+
+a = 1.0
+a.foo
var inw = false
while not stdin.eof do
var i = stdin.read_char
- if i >= 0 then
- var x = i.ascii
+ if i != null then
c = c + 1
- if x > ' ' then
+ if i > ' ' then
if not inw then
inw = true
w = w + 1
end
else
inw = false
- if x == '\n' then
+ if i == '\n' then
l = l + 1
end
end
converter
show_basedir
langannot
+loops_infinite
+read_entire_file
--- /dev/null
+][[]][ is not well-balanced
+[[]][] is well-balanced
+[]][][ is not well-balanced
+[[[]]] is well-balanced
+[][]][ is not well-balanced
+]][[][ is not well-balanced
+[]]][[ is not well-balanced
+[]][][ is not well-balanced
+[][][] is well-balanced
+][]][[ is not well-balanced
base_formal_subtype.nit:59,10--18: Warning: expression is already a `E` since it is a `VVE`.
base_formal_subtype.nit:60,10--23: Warning: expression is already a `Object` since it is a `VVE`.
base_formal_subtype.nit:62,10--20: Warning: expression is already a `VGE`.
-base_formal_subtype.nit:63,10--20: Warning: expression is already a `G[E]` since it is a `VGE`.
-base_formal_subtype.nit:64,10--25: Warning: expression is already a `G[Object]` since it is a `VGE`.
+base_formal_subtype.nit:63,10--21: Warning: expression is already a `G[E]` since it is a `VGE`.
+base_formal_subtype.nit:64,10--26: Warning: expression is already a `G[Object]` since it is a `VGE`.
base_formal_subtype.nit:65,10--23: Warning: expression is already a `Object` since it is a `VGE`.
base_formal_subtype.nit:67,10--22: Warning: expression is already a `VVGE`.
base_formal_subtype.nit:68,10--21: Warning: expression is already a `VGE` since it is a `VVGE`.
-base_formal_subtype.nit:69,10--21: Warning: expression is already a `G[E]` since it is a `VVGE`.
-base_formal_subtype.nit:70,10--26: Warning: expression is already a `G[Object]` since it is a `VVGE`.
+base_formal_subtype.nit:69,10--22: Warning: expression is already a `G[E]` since it is a `VVGE`.
+base_formal_subtype.nit:70,10--27: Warning: expression is already a `G[Object]` since it is a `VVGE`.
base_formal_subtype.nit:71,10--24: Warning: expression is already a `Object` since it is a `VVGE`.
base_formal_subtype.nit:73,10--22: Warning: expression is already a `VGVE`.
-base_formal_subtype.nit:74,10--22: Warning: expression is already a `G[VE]` since it is a `VGVE`.
-base_formal_subtype.nit:75,10--21: Warning: expression is already a `G[E]` since it is a `VGVE`.
-base_formal_subtype.nit:76,10--26: Warning: expression is already a `G[Object]` since it is a `VGVE`.
+base_formal_subtype.nit:74,10--23: Warning: expression is already a `G[VE]` since it is a `VGVE`.
+base_formal_subtype.nit:75,10--22: Warning: expression is already a `G[E]` since it is a `VGVE`.
+base_formal_subtype.nit:76,10--27: Warning: expression is already a `G[Object]` since it is a `VGVE`.
base_formal_subtype.nit:77,10--24: Warning: expression is already a `Object` since it is a `VGVE`.
base_formal_subtype.nit:79,10--24: Warning: expression is already a `VGVVE`.
-base_formal_subtype.nit:80,10--24: Warning: expression is already a `G[VVE]` since it is a `VGVVE`.
-base_formal_subtype.nit:81,10--23: Warning: expression is already a `G[VE]` since it is a `VGVVE`.
-base_formal_subtype.nit:82,10--22: Warning: expression is already a `G[E]` since it is a `VGVVE`.
-base_formal_subtype.nit:83,10--27: Warning: expression is already a `G[Object]` since it is a `VGVVE`.
+base_formal_subtype.nit:80,10--25: Warning: expression is already a `G[VVE]` since it is a `VGVVE`.
+base_formal_subtype.nit:81,10--24: Warning: expression is already a `G[VE]` since it is a `VGVVE`.
+base_formal_subtype.nit:82,10--23: Warning: expression is already a `G[E]` since it is a `VGVVE`.
+base_formal_subtype.nit:83,10--28: Warning: expression is already a `G[Object]` since it is a `VGVVE`.
base_formal_subtype.nit:84,10--25: Warning: expression is already a `Object` since it is a `VGVVE`.
-alt/base_gen2_alt1.nit:61,13--17: Type Error: `A` is not a generic class.
+alt/base_gen2_alt1.nit:61,13--18: Type Error: `A` is not a generic class.
-alt/base_gen2_alt3.nit:63,13--22: Type Error: expected 1 formal argument(s) for `B[E: nullable Object]`; got 2.
+alt/base_gen2_alt3.nit:63,13--23: Type Error: expected 1 formal argument(s) for `B[E: nullable Object]`; got 2.
-alt/base_gen2_alt5.nit:65,13--17: Type Error: expected 2 formal argument(s) for `C[F: nullable Object, G: nullable Object]`; got 1.
+alt/base_gen2_alt5.nit:65,13--18: Type Error: expected 2 formal argument(s) for `C[F: nullable Object, G: nullable Object]`; got 1.
base_isa_gen1.nit:62,8--14: Warning: expression is already a `A` since it is a `F`.
-base_isa_gen1.nit:65,8--29: Warning: expression is already a `D[Object, Object]` since it is a `G[Object]`.
-base_isa_gen1.nit:66,8--29: Warning: expression is already a `D[Object, Object]` since it is a `E[F]`.
+base_isa_gen1.nit:65,8--30: Warning: expression is already a `D[Object, Object]` since it is a `G[Object]`.
+base_isa_gen1.nit:66,8--30: Warning: expression is already a `D[Object, Object]` since it is a `E[F]`.
true
-base_isa_gen2.nit:39,8--21: Warning: expression is already a `A[Object]`.
-base_isa_gen2.nit:41,8--21: Warning: expression is already a `A[Object]` since it is a `B[Object]`.
-base_isa_gen2.nit:44,8--21: Warning: expression is already a `A[Object]` since it is a `C[Object]`.
-base_isa_gen2.nit:48,8--21: Warning: expression is already a `A[Object]` since it is a `D[Object, Object]`.
+base_isa_gen2.nit:39,8--22: Warning: expression is already a `A[Object]`.
+base_isa_gen2.nit:41,8--22: Warning: expression is already a `A[Object]` since it is a `B[Object]`.
+base_isa_gen2.nit:44,8--22: Warning: expression is already a `A[Object]` since it is a `C[Object]`.
+base_isa_gen2.nit:48,8--22: Warning: expression is already a `A[Object]` since it is a `D[Object, Object]`.
true
base_isa_gen4.nit:34,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
-base_isa_gen4.nit:36,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
-base_isa_gen4.nit:40,8--24: Warning: expression is already a `B[B[Canard]]`.
-base_isa_gen4.nit:42,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
+base_isa_gen4.nit:36,8--23: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen4.nit:40,8--26: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen4.nit:42,8--26: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
true
base_isa_gen5.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
-base_isa_gen5.nit:41,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
-base_isa_gen5.nit:46,8--24: Warning: expression is already a `B[B[Canard]]`.
-base_isa_gen5.nit:48,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
+base_isa_gen5.nit:41,8--23: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen5.nit:46,8--26: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen5.nit:48,8--26: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
true
-base_isa_gen8.nit:49,8--17: Warning: expression is already a `A[X]`.
-base_isa_gen8.nit:50,8--17: Warning: expression is already a `A[Y]`.
-base_isa_gen8.nit:51,8--17: Warning: expression is already a `A[Z]`.
-base_isa_gen8.nit:53,8--21: Warning: expression is already a `B[Object]` since it is a `B[X]`.
-base_isa_gen8.nit:55,8--21: Warning: expression is already a `C[X, X]`.
-base_isa_gen8.nit:56,8--21: Warning: expression is already a `C[X, Y]`.
-base_isa_gen8.nit:57,8--21: Warning: expression is already a `C[X, Z]`.
-base_isa_gen8.nit:59,8--22: Warning: expression is already a `D[X, Y, Z]`.
-base_isa_gen8.nit:60,8--28: Warning: expression is already a `E[X, Y, Z, Bool]`.
+base_isa_gen8.nit:49,8--18: Warning: expression is already a `A[X]`.
+base_isa_gen8.nit:50,8--18: Warning: expression is already a `A[Y]`.
+base_isa_gen8.nit:51,8--18: Warning: expression is already a `A[Z]`.
+base_isa_gen8.nit:53,8--22: Warning: expression is already a `B[Object]` since it is a `B[X]`.
+base_isa_gen8.nit:55,8--22: Warning: expression is already a `C[X, X]`.
+base_isa_gen8.nit:56,8--22: Warning: expression is already a `C[X, Y]`.
+base_isa_gen8.nit:57,8--22: Warning: expression is already a `C[X, Z]`.
+base_isa_gen8.nit:59,8--23: Warning: expression is already a `D[X, Y, Z]`.
+base_isa_gen8.nit:60,8--29: Warning: expression is already a `E[X, Y, Z, Bool]`.
true
base_isa_nullable1.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Integer]`.
-base_isa_nullable1.nit:41,8--24: Warning: expression is already a `B[Discrete]` since it is a `B[Integer]`.
-base_isa_nullable1.nit:46,8--25: Warning: expression is already a `B[B[Integer]]`.
-base_isa_nullable1.nit:48,8--26: Warning: expression is already a `B[B[Discrete]]` since it is a `B[B[Integer]]`.
-base_isa_nullable1.nit:50,8--33: Warning: expression is already a `B[nullable Discrete]` since it is a `B[Discrete]`.
+base_isa_nullable1.nit:41,8--25: Warning: expression is already a `B[Discrete]` since it is a `B[Integer]`.
+base_isa_nullable1.nit:46,8--27: Warning: expression is already a `B[B[Integer]]`.
+base_isa_nullable1.nit:48,8--28: Warning: expression is already a `B[B[Discrete]]` since it is a `B[B[Integer]]`.
+base_isa_nullable1.nit:50,8--34: Warning: expression is already a `B[nullable Discrete]` since it is a `B[Discrete]`.
true
base_isa_nullable2.nit:27,8--23: Warning: expression is already a `nullable A` since it is a `A`.
-base_isa_nullable2.nit:29,8--30: Warning: expression is already a `nullable B[Object]` since it is a `B[Object]`.
-base_isa_nullable2.nit:30,8--39: Warning: expression is already a `nullable B[nullable Object]` since it is a `nullable B[Object]`.
-base_isa_nullable2.nit:33,8--30: Warning: expression is already a `C[nullable Object]`.
+base_isa_nullable2.nit:29,8--31: Warning: expression is already a `nullable B[Object]` since it is a `B[Object]`.
+base_isa_nullable2.nit:30,8--40: Warning: expression is already a `nullable B[nullable Object]` since it is a `nullable B[Object]`.
+base_isa_nullable2.nit:33,8--31: Warning: expression is already a `C[nullable Object]`.
true
-base_isa_vt_gen1.nit:30,10--34: Warning: expression is already a `Triple[T, U, V]`.
-base_isa_vt_gen1.nit:54,8--52: Warning: expression is already a `Triple[String, Int, nullable Object]`.
-base_isa_vt_gen1.nit:57,8--46: Warning: expression is already a `Triple[String, String, String]`.
-base_isa_vt_gen1.nit:60,8--48: Warning: expression is already a `Triple[String, String, B[String]]`.
-base_isa_vt_gen1.nit:63,8--46: Warning: expression is already a `Triple[String, String, String]`.
+base_isa_vt_gen1.nit:30,10--35: Warning: expression is already a `Triple[T, U, V]`.
+base_isa_vt_gen1.nit:54,8--53: Warning: expression is already a `Triple[String, Int, nullable Object]`.
+base_isa_vt_gen1.nit:57,8--47: Warning: expression is already a `Triple[String, String, String]`.
+base_isa_vt_gen1.nit:60,8--50: Warning: expression is already a `Triple[String, String, B[String]]`.
+base_isa_vt_gen1.nit:63,8--47: Warning: expression is already a `Triple[String, String, String]`.
true
--- /dev/null
+1
+1.000000
+1
+1.000000
-error_formal.nit:18,9--13: Type Error: formal type `T` cannot have formal parameters.
+error_formal.nit:18,9--14: Type Error: formal type `T` cannot have formal parameters.
-alt/error_needed_method_alt2.nit:47,10--27: Type Error: cannot instantiate interface `Collection[Int]`.
+alt/error_needed_method_alt2.nit:47,10--28: Type Error: cannot instantiate interface `Collection[Int]`.
error_operators.nit:47,11: Syntax Error: binary operator `<=>` requires exactly one parameter; got 0.
error_operators.nit:48,10: Syntax Error: binary operator `<<` requires exactly one parameter; got 0.
error_operators.nit:49,10: Syntax Error: binary operator `>>` requires exactly one parameter; got 0.
-error_operators.nit:50,14: Syntax Error: `foo=` requires at least 1 parameter(s); got 0.
+error_operators.nit:50,11: Syntax Error: `foo=` requires at least 1 parameter(s); got 0.
error_operators.nit:51,10: Syntax Error: `[]` requires at least 1 parameter(s); got 0.
error_operators.nit:52,9--14: Syntax Error: `[]=` requires at least 2 parameter(s); got 1.
error_operators.nit:57,7--18: Syntax Error: binary operator `+` requires exactly one parameter; got 3.
-alt/error_redef_1alt2_alt1.nit:26,18: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt1::A::f1`.
+alt/error_redef_1alt2_alt1.nit:26,15: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt1::A::f1`.
-alt/error_redef_1alt2_alt4.nit:29,18: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt4::A::f1`.
+alt/error_redef_1alt2_alt4.nit:29,15: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt4::A::f1`.
-alt/error_redef_1alt4_alt1.nit:26,18: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt1::A::f1`.
+alt/error_redef_1alt4_alt1.nit:26,15: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt1::A::f1`.
-alt/error_redef_1alt4_alt4.nit:29,18: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt4::A::f1`.
+alt/error_redef_1alt4_alt4.nit:29,15: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt4::A::f1`.
alt/error_type_unk_alt2.nit:9,8--11: Error: class `Fail` not found in module `error_type_unk_alt2`.
-alt/error_type_unk_alt2.nit:11,8--13: Error: class `Fail` not found in module `error_type_unk_alt2`.
+alt/error_type_unk_alt2.nit:11,8--14: Error: class `Fail` not found in module `error_type_unk_alt2`.
-error_virtual_type2.nit:40,17--26: Redef Error: expected `G[T]` bound type; got `G[Discrete]`.
+error_virtual_type2.nit:40,17--27: Redef Error: expected `G[T]` bound type; got `G[Discrete]`.
-alt/error_virtual_type2_alt1.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> T <-> T.
+alt/error_virtual_type2_alt1.nit:22,2--24,14: Error: circularity of virtual type definition: GT -> T <-> T.
alt/error_virtual_type2_alt1.nit:25,2--10: Error: circularity of virtual type definition: T <-> T.
alt/error_virtual_type2_alt1.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt1.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt1.nit:40,17--27: Redef Error: expected `null` bound type; got `G[Discrete]`.
alt/error_virtual_type2_alt1.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt2.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> T <-> nullable T.
+alt/error_virtual_type2_alt2.nit:22,2--24,14: Error: circularity of virtual type definition: GT -> T <-> nullable T.
alt/error_virtual_type2_alt2.nit:25,2--26,19: Error: circularity of virtual type definition: T <-> nullable T.
alt/error_virtual_type2_alt2.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt2.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt2.nit:40,17--27: Redef Error: expected `null` bound type; got `G[Discrete]`.
alt/error_virtual_type2_alt2.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt3.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> G[T] <-> T.
-alt/error_virtual_type2_alt3.nit:25,2--27,12: Error: circularity of virtual type definition: T <-> G[T].
+alt/error_virtual_type2_alt3.nit:22,2--24,14: Error: circularity of virtual type definition: GT -> G[T] <-> T.
+alt/error_virtual_type2_alt3.nit:25,2--27,13: Error: circularity of virtual type definition: T <-> G[T].
alt/error_virtual_type2_alt3.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt3.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt3.nit:40,17--27: Redef Error: expected `null` bound type; got `G[Discrete]`.
alt/error_virtual_type2_alt3.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
alt/error_virtual_type2_alt4.nit:29,10--13: Error: class `FAIL` not found in module `error_virtual_type2_alt4`.
alt/error_virtual_type2_alt4.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt4.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt4.nit:40,17--27: Redef Error: expected `null` bound type; got `G[Discrete]`.
alt/error_virtual_type2_alt4.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt5.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> T <-> U.
+alt/error_virtual_type2_alt5.nit:22,2--24,14: Error: circularity of virtual type definition: GT -> T <-> U.
alt/error_virtual_type2_alt5.nit:25,2--30,10: Error: circularity of virtual type definition: T <-> U.
alt/error_virtual_type2_alt5.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt5.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt5.nit:40,17--27: Redef Error: expected `null` bound type; got `G[Discrete]`.
alt/error_virtual_type2_alt5.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
-alt/error_virtual_type2_alt6.nit:40,17--26: Redef Error: expected `G[T]` bound type; got `G[Discrete]`.
-alt/error_virtual_type2_alt6.nit:41,2--22: Error: a property `GT` is already defined in class `B` at line 39.
+alt/error_virtual_type2_alt6.nit:40,17--27: Redef Error: expected `G[T]` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt6.nit:41,2--23: Error: a property `GT` is already defined in class `B` at line 39.
alt/error_virtual_type_alt3.nit:25,12: Type Error: expected `Object`, got `T`.
-alt/error_virtual_type_alt3.nit:22,2--25,12: Error: circularity of virtual type definition: T <-> G[T].
+alt/error_virtual_type_alt3.nit:22,2--25,13: Error: circularity of virtual type definition: T <-> G[T].
--- /dev/null
+16
+7
+15
+15
+18
+3
+6
+15
+5
+11
+9
+12
+7
+10
+19
+18
+12
+14
+2
+12
+0
+4
+2
+16
+3
+8
+2
+2
+19
+4
+10
--- /dev/null
+1, 2, 3, 4, 5
+6, 7, 8, 9, 10
--- /dev/null
+1
+2
+3
+4
+5
+6
--- /dev/null
+10
+9
+8
+7
+6
+5
+4
+3
+2
+1
+0
--- /dev/null
+*
+**
+***
+****
+*****
--- /dev/null
+0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
--- /dev/null
+2014
+1007
+503
+251
+125
+62
+31
+15
+7
+3
+1
base_isa_gen1.nit:62,8--14: Warning: expression is already a `A` since it is a `F`.
-base_isa_gen1.nit:65,8--29: Warning: expression is already a `D[Object, Object]` since it is a `G[Object]`.
-base_isa_gen1.nit:66,8--29: Warning: expression is already a `D[Object, Object]` since it is a `E[F]`.
+base_isa_gen1.nit:65,8--30: Warning: expression is already a `D[Object, Object]` since it is a `G[Object]`.
+base_isa_gen1.nit:66,8--30: Warning: expression is already a `D[Object, Object]` since it is a `E[F]`.
Runtime error: Assert failed (base_isa_gen1.nit:68)
base_isa_gen4.nit:34,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
-base_isa_gen4.nit:36,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
-base_isa_gen4.nit:40,8--24: Warning: expression is already a `B[B[Canard]]`.
-base_isa_gen4.nit:42,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
+base_isa_gen4.nit:36,8--23: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen4.nit:40,8--26: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen4.nit:42,8--26: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
Runtime error: Assert failed (base_isa_gen4.nit:37)
base_isa_gen5.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
-base_isa_gen5.nit:41,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
-base_isa_gen5.nit:46,8--24: Warning: expression is already a `B[B[Canard]]`.
-base_isa_gen5.nit:48,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
+base_isa_gen5.nit:41,8--23: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen5.nit:46,8--26: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen5.nit:48,8--26: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
Runtime error: Assert failed (base_isa_gen5.nit:42)
base_isa_nullable1.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Integer]`.
-base_isa_nullable1.nit:41,8--24: Warning: expression is already a `B[Discrete]` since it is a `B[Integer]`.
-base_isa_nullable1.nit:46,8--25: Warning: expression is already a `B[B[Integer]]`.
-base_isa_nullable1.nit:48,8--26: Warning: expression is already a `B[B[Discrete]]` since it is a `B[B[Integer]]`.
-base_isa_nullable1.nit:50,8--33: Warning: expression is already a `B[nullable Discrete]` since it is a `B[Discrete]`.
+base_isa_nullable1.nit:41,8--25: Warning: expression is already a `B[Discrete]` since it is a `B[Integer]`.
+base_isa_nullable1.nit:46,8--27: Warning: expression is already a `B[B[Integer]]`.
+base_isa_nullable1.nit:48,8--28: Warning: expression is already a `B[B[Discrete]]` since it is a `B[B[Integer]]`.
+base_isa_nullable1.nit:50,8--34: Warning: expression is already a `B[nullable Discrete]` since it is a `B[Discrete]`.
Runtime error: Assert failed (base_isa_nullable1.nit:42)
base_isa_nullable2.nit:27,8--23: Warning: expression is already a `nullable A` since it is a `A`.
-base_isa_nullable2.nit:29,8--30: Warning: expression is already a `nullable B[Object]` since it is a `B[Object]`.
-base_isa_nullable2.nit:30,8--39: Warning: expression is already a `nullable B[nullable Object]` since it is a `nullable B[Object]`.
-base_isa_nullable2.nit:33,8--30: Warning: expression is already a `C[nullable Object]`.
+base_isa_nullable2.nit:29,8--31: Warning: expression is already a `nullable B[Object]` since it is a `B[Object]`.
+base_isa_nullable2.nit:30,8--40: Warning: expression is already a `nullable B[nullable Object]` since it is a `nullable B[Object]`.
+base_isa_nullable2.nit:33,8--31: Warning: expression is already a `C[nullable Object]`.
Runtime error: Assert failed (base_isa_nullable2.nit:32)
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<=8: sub-population=1 (14.28%); cumulated value=6 (100.00%)
--- AST Metrics ---
## All nodes of the AST
- population: 48
+ population: 50
minimum value: 1
maximum value: 40
- total value: 261
- average value: 5.43
+ total value: 270
+ average value: 5.40
distribution:
- <=1: sub-population=15 (31.25%); cumulated value=15 (5.74%)
- <=2: sub-population=5 (10.41%); cumulated value=10 (3.83%)
- <=4: sub-population=10 (20.83%); cumulated value=32 (12.26%)
- <=8: sub-population=10 (20.83%); cumulated value=64 (24.52%)
- <=16: sub-population=4 (8.33%); cumulated value=44 (16.85%)
- <=32: sub-population=3 (6.25%); cumulated value=56 (21.45%)
- <=64: sub-population=1 (2.08%); cumulated value=40 (15.32%)
+ <=1: sub-population=16 (32.00%); cumulated value=16 (5.92%)
+ <=2: sub-population=5 (10.00%); cumulated value=10 (3.70%)
+ <=4: sub-population=9 (18.00%); cumulated value=28 (10.37%)
+ <=8: sub-population=12 (24.00%); cumulated value=76 (28.14%)
+ <=16: sub-population=4 (8.00%); cumulated value=44 (16.29%)
+ <=32: sub-population=3 (6.00%); cumulated value=56 (20.74%)
+ <=64: sub-population=1 (2.00%); cumulated value=40 (14.81%)
list:
- TId: 40 (15.32%)
- APublicVisibility: 19 (7.27%)
- AListExprs: 19 (7.27%)
- ACallExpr: 18 (6.89%)
- TClassid: 15 (5.74%)
- TNumber: 10 (3.83%)
- ADecIntExpr: 10 (3.83%)
- AType: 9 (3.44%)
- TKwend: 8 (3.06%)
- ASignature: 8 (3.06%)
+ TId: 40 (14.81%)
+ APublicVisibility: 19 (7.03%)
+ AListExprs: 19 (7.03%)
+ ACallExpr: 18 (6.66%)
+ TClassid: 15 (5.55%)
+ TNumber: 10 (3.70%)
+ ADecIntExpr: 10 (3.70%)
+ AType: 9 (3.33%)
+ TKwend: 8 (2.96%)
+ ASignature: 8 (2.96%)
...
- ACallAssignExpr: 1 (0.38%)
- AAnnotations: 1 (0.38%)
- AReturnExpr: 1 (0.38%)
- TKwreturn: 1 (0.38%)
- AInterfaceClasskind: 1 (0.38%)
- TKwinterface: 1 (0.38%)
- ANoImport: 1 (0.38%)
- AMainMethPropdef: 1 (0.38%)
- AMainClassdef: 1 (0.38%)
- TKwimport: 1 (0.38%)
+ ASelfExpr: 1 (0.37%)
+ AAnnotations: 1 (0.37%)
+ ACallAssignExpr: 1 (0.37%)
+ TKwreturn: 1 (0.37%)
+ AInterfaceClasskind: 1 (0.37%)
+ TKwinterface: 1 (0.37%)
+ ANoImport: 1 (0.37%)
+ AMainMethPropdef: 1 (0.37%)
+ AMainClassdef: 1 (0.37%)
+ TKwimport: 1 (0.37%)
## All identifiers of the AST
population: 20
minimum value: 1
return errno;
`}
-fun errnoooooooooooooooooooooooooooooooooooooooooooooooooooooooooo: Int is extern `{
- return errno;
-`}
+fun errnoooooooooooooooooooooooooooooooooooooooooooooooooooooooooo: Int is
+ extern `{ return errno; `}
private class A
var my_attr = 1234
if name == "Array[nullable Object]" then return new Array[nullable Object].from_deserializer(self)
if name == "Array[Serializable]" then return new Array[Serializable].from_deserializer(self)
if name == "Array[String]" then return new Array[String].from_deserializer(self)
+ if name == "StrictHashMap[Serializable, Int]" then return new StrictHashMap[Serializable, Int].from_deserializer(self)
+ if name == "HashMap[Serializable, Array[Couple[Serializable, Int]]]" then return new HashMap[Serializable, Array[Couple[Serializable, Int]]].from_deserializer(self)
+ if name == "Array[Couple[Serializable, Int]]" then return new Array[Couple[Serializable, Int]].from_deserializer(self)
return super
end
end
-test_nitunit3/README.md: Error: there is a block of invalid Nit code, thus not considered a nitunit. To suppress this warning, enclose the block with a fence tagged `nitish` or `raw` (see `man nitdoc`). At 1,1: Syntax Error: unknown token `;`..
+test_nitunit3/README.md: Error: there is a block of invalid Nit code, thus not considered a nitunit. To suppress this warning, enclose the block with a fence tagged `nitish` or `raw` (see `man nitdoc`). At 1,2--4: Syntax Error: unexpected malformed character '\]..
test_nitunit3/README.md: ERROR: nitunit.test_nitunit3.<group> (in .nitunit/test_nitunit3-0.nit): Runtime error: Assert failed (.nitunit/test_nitunit3-0.nit:7)
DocUnits:
TestSuites:
No test cases found
Class suites: 0; Test Cases: 0; Failures: 0
-<testsuites><testsuite package="test_nitunit3"><testcase classname="nitunit.test_nitunit3" name="<group>"><failure message="test_nitunit3/README.md: Invalid block of code. At 1,1: Syntax Error: unknown token `;`.."></failure><system-err></system-err><system-out>assert false
+<testsuites><testsuite package="test_nitunit3"><testcase classname="nitunit.test_nitunit3" name="<group>"><failure message="test_nitunit3/README.md: Invalid block of code. At 1,2--4: Syntax Error: unexpected malformed character '\].."></failure><system-err></system-err><system-out>assert false
assert true
</system-out><error message="Runtime error: Assert failed (.nitunit/test_nitunit3-0.nit:7)
"></error></testcase></testsuite><testsuite package="test_nitunit3"><testcase classname="nitunit.test_nitunit3.<module>" name="<module>"><system-err></system-err><system-out>assert true
--- /dev/null
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
--- /dev/null
+syntax_semi2.nit:17,9: Warning: superfluous `;`.
+syntax_semi2.nit:18,10: Warning: superfluous `;`.
+syntax_semi2.nit:19,9: Warning: superfluous `;`.
+syntax_semi2.nit:21,1: Warning: superfluous `;`.
+syntax_semi2.nit:22,1: Warning: superfluous `;`.
+syntax_semi2.nit:22,2: Warning: superfluous `;`.
+syntax_semi2.nit:24,1: Warning: superfluous `;`.
+1
+2
+3
+4
+5
+6
--- /dev/null
+alt/syntax_semi2_alt1.nit:26,3: Syntax Error: unexpected ';'.
test_attr_easy.nit:19,43--53: Warning: expression is already a `Float`.
test_attr_easy.nit:20,5--16: Warning: expression is already a `String`.
test_attr_easy.nit:20,20--26: Warning: expression is already a `B`.
-test_attr_easy.nit:20,44--62: Warning: expression is already a `HashMap[Int, B]`.
+test_attr_easy.nit:20,44--63: Warning: expression is already a `HashMap[Int, B]`.
true false 12345 1.235 asdf true
an instance of B
true true true true
--- /dev/null
+no error
+hello
+77
+1.235
+1.235
+123456789
+no error
--- /dev/null
+no error
+hello
+77
+144545136640.0
+0.0
+1571011930645069824
+no error
--- /dev/null
+no error
+hello
+77
+144545136640.0
+0.0
+1571011930645069824
+no error
--- /dev/null
+no error
+hello
+77
+1.235
+1.235
+123456789
+no error
--- /dev/null
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+
+true
+hello
# Back in Nit:
<E: 33.33>
+# Nit:
+<G: hs: -1, 0; s: one, two; hm: one. 1, two. 2; am: three. 3, four. 4>
+
+# Json:
+{"__kind": "obj", "__id": 0, "__class": "G", "hs": {"__kind": "obj", "__id": 1, "__class": "HashSet[Int]", "__length": 2, "__items": [-1, 0]}, "s": {"__kind": "obj", "__id": 2, "__class": "ArraySet[String]", "__length": 2, "__items": ["one", "two"]}, "hm": {"__kind": "obj", "__id": 3, "__class": "HashMap[String, Int]", "__length": 2, "__keys": ["one", "two"], "__values": [1, 2]}, "am": {"__kind": "obj", "__id": 4, "__class": "ArrayMap[String, String]", "__length": 2, "__keys": ["three", "four"], "__values": ["3", "4"]}}
+
+# Back in Nit:
+<G: hs: -1, 0; s: one, two; hm: one. 1, two. 2; am: three. 3, four. 4>
+
TId "rank" ../src/test_parser.nit:27,14--17
AType ../src/test_parser.nit:27,20--22
TClassid "Int" ../src/test_parser.nit:27,20--22
+ TAssign "=" ../src/test_parser.nit:27,24
ADecIntExpr ../src/test_parser.nit:27,26
TNumber "0" ../src/test_parser.nit:27,26
AMethPropdef ../src/test_parser.nit:28,2--38,4
AParam ../src/test_parser.nit:28,18
TId "n" ../src/test_parser.nit:28,18
TCpar ")" ../src/test_parser.nit:28,19
+ TKwdo "do" ../src/test_parser.nit:29,2--3
ABlockExpr ../src/test_parser.nit:30,3--38,4
AIfExpr ../src/test_parser.nit:30,3--34,5
TKwif "if" ../src/test_parser.nit:30,3--4
TKwisa "isa" ../src/test_parser.nit:30,8--10
AType ../src/test_parser.nit:30,12--16
TClassid "Token" ../src/test_parser.nit:30,12--16
+ TKwthen "then" ../src/test_parser.nit:30,18--21
ABlockExpr ../src/test_parser.nit:31,4--88
ACallExpr ../src/test_parser.nit:31,4--88
AImplicitSelfExpr ../src/test_parser.nit:31,4
AStringExpr ../src/test_parser.nit:31,84--87
TString "\"\\n\"" ../src/test_parser.nit:31,84--87
TCpar ")" ../src/test_parser.nit:31,88
+ TKwelse "else" ../src/test_parser.nit:32,3--6
ABlockExpr ../src/test_parser.nit:33,4--34,5
ACallExpr ../src/test_parser.nit:33,4--59
AImplicitSelfExpr ../src/test_parser.nit:33,4
TEq "==" ../src/test_parser.nit:49,16--17
AStringExpr ../src/test_parser.nit:49,19--22
TString "\"-n\"" ../src/test_parser.nit:49,19--22
+ TKwthen "then" ../src/test_parser.nit:49,24--27
ABlockExpr ../src/test_parser.nit:50,3--17
ACallAssignExpr ../src/test_parser.nit:50,3--17
AImplicitSelfExpr ../src/test_parser.nit:50,3
TAssign "=" ../src/test_parser.nit:50,12
ATrueExpr ../src/test_parser.nit:50,14--17
TKwtrue "true" ../src/test_parser.nit:50,14--17
+ TKwelse "else" ../src/test_parser.nit:51,2--5
AIfExpr ../src/test_parser.nit:51,7--66,4
TKwif "if" ../src/test_parser.nit:51,7--8
AEqExpr ../src/test_parser.nit:51,10--27
TEq "==" ../src/test_parser.nit:51,21--22
AStringExpr ../src/test_parser.nit:51,24--27
TString "\"-l\"" ../src/test_parser.nit:51,24--27
+ TKwthen "then" ../src/test_parser.nit:51,29--32
ABlockExpr ../src/test_parser.nit:52,3--19
ACallAssignExpr ../src/test_parser.nit:52,3--19
AImplicitSelfExpr ../src/test_parser.nit:52,3
TAssign "=" ../src/test_parser.nit:52,14
ATrueExpr ../src/test_parser.nit:52,16--19
TKwtrue "true" ../src/test_parser.nit:52,16--19
+ TKwelse "else" ../src/test_parser.nit:53,2--5
AIfExpr ../src/test_parser.nit:53,7--66,4
TKwif "if" ../src/test_parser.nit:53,7--8
AEqExpr ../src/test_parser.nit:53,10--27
TEq "==" ../src/test_parser.nit:53,21--22
AStringExpr ../src/test_parser.nit:53,24--27
TString "\"-p\"" ../src/test_parser.nit:53,24--27
+ TKwthen "then" ../src/test_parser.nit:53,29--32
ABlockExpr ../src/test_parser.nit:54,3--20
ACallAssignExpr ../src/test_parser.nit:54,3--20
AImplicitSelfExpr ../src/test_parser.nit:54,3
TAssign "=" ../src/test_parser.nit:54,14
AFalseExpr ../src/test_parser.nit:54,16--20
TKwfalse "false" ../src/test_parser.nit:54,16--20
+ TKwelse "else" ../src/test_parser.nit:55,2--5
AIfExpr ../src/test_parser.nit:55,7--66,4
TKwif "if" ../src/test_parser.nit:55,7--8
AEqExpr ../src/test_parser.nit:55,10--27
TEq "==" ../src/test_parser.nit:55,21--22
AStringExpr ../src/test_parser.nit:55,24--27
TString "\"-x\"" ../src/test_parser.nit:55,24--27
+ TKwthen "then" ../src/test_parser.nit:55,29--32
ABlockExpr ../src/test_parser.nit:56,3--12
ACallAssignExpr ../src/test_parser.nit:56,3--12
AImplicitSelfExpr ../src/test_parser.nit:56,3
TAssign "=" ../src/test_parser.nit:56,7
ATrueExpr ../src/test_parser.nit:56,9--12
TKwtrue "true" ../src/test_parser.nit:56,9--12
+ TKwelse "else" ../src/test_parser.nit:57,2--5
AIfExpr ../src/test_parser.nit:57,7--66,4
TKwif "if" ../src/test_parser.nit:57,7--8
AEqExpr ../src/test_parser.nit:57,10--27
TEq "==" ../src/test_parser.nit:57,21--22
AStringExpr ../src/test_parser.nit:57,24--27
TString "\"-e\"" ../src/test_parser.nit:57,24--27
+ TKwthen "then" ../src/test_parser.nit:57,29--32
ABlockExpr ../src/test_parser.nit:58,3--16
ACallAssignExpr ../src/test_parser.nit:58,3--16
AImplicitSelfExpr ../src/test_parser.nit:58,3
TAssign "=" ../src/test_parser.nit:58,11
ATrueExpr ../src/test_parser.nit:58,13--16
TKwtrue "true" ../src/test_parser.nit:58,13--16
+ TKwelse "else" ../src/test_parser.nit:59,2--5
AIfExpr ../src/test_parser.nit:59,7--66,4
TKwif "if" ../src/test_parser.nit:59,7--8
AEqExpr ../src/test_parser.nit:59,10--27
TEq "==" ../src/test_parser.nit:59,21--22
AStringExpr ../src/test_parser.nit:59,24--27
TString "\"-i\"" ../src/test_parser.nit:59,24--27
+ TKwthen "then" ../src/test_parser.nit:59,29--32
ABlockExpr ../src/test_parser.nit:60,3--20
ACallAssignExpr ../src/test_parser.nit:60,3--20
AImplicitSelfExpr ../src/test_parser.nit:60,3
TAssign "=" ../src/test_parser.nit:60,15
ATrueExpr ../src/test_parser.nit:60,17--20
TKwtrue "true" ../src/test_parser.nit:60,17--20
+ TKwelse "else" ../src/test_parser.nit:61,2--5
AIfExpr ../src/test_parser.nit:61,7--66,4
TKwif "if" ../src/test_parser.nit:61,7--8
AOrExpr ../src/test_parser.nit:61,10--49
TEq "==" ../src/test_parser.nit:61,43--44
AStringExpr ../src/test_parser.nit:61,46--49
TString "\"-?\"" ../src/test_parser.nit:61,46--49
+ TKwthen "then" ../src/test_parser.nit:61,51--54
ABlockExpr ../src/test_parser.nit:62,3--18
ACallAssignExpr ../src/test_parser.nit:62,3--18
AImplicitSelfExpr ../src/test_parser.nit:62,3
TAssign "=" ../src/test_parser.nit:62,13
ATrueExpr ../src/test_parser.nit:62,15--18
TKwtrue "true" ../src/test_parser.nit:62,15--18
+ TKwelse "else" ../src/test_parser.nit:63,2--5
ABlockExpr ../src/test_parser.nit:64,3--66,4
ACallExpr ../src/test_parser.nit:64,3--48
ACallExpr ../src/test_parser.nit:64,3--8
AImplicitSelfExpr ../src/test_parser.nit:70,43
TId "need_help" ../src/test_parser.nit:70,43--51
AListExprs ../src/test_parser.nit:70,51
+ TKwthen "then" ../src/test_parser.nit:70,53--56
ABlockExpr ../src/test_parser.nit:71,2--82,30
ACallExpr ../src/test_parser.nit:71,2--16
AImplicitSelfExpr ../src/test_parser.nit:71,2
AStringExpr ../src/test_parser.nit:82,8--29
TString "\" -h\tprint this help\"" ../src/test_parser.nit:82,8--29
TCpar ")" ../src/test_parser.nit:82,30
+ TKwelse "else" ../src/test_parser.nit:83,1--4
AIfExpr ../src/test_parser.nit:83,6--155,3
TKwif "if" ../src/test_parser.nit:83,6--7
ACallExpr ../src/test_parser.nit:83,9--19
AImplicitSelfExpr ../src/test_parser.nit:83,9
TId "interactive" ../src/test_parser.nit:83,9--19
AListExprs ../src/test_parser.nit:83,19
+ TKwthen "then" ../src/test_parser.nit:83,21--24
ABlockExpr ../src/test_parser.nit:84,2--117,4
AIfExpr ../src/test_parser.nit:84,2--93,4
TKwif "if" ../src/test_parser.nit:84,2--3
AImplicitSelfExpr ../src/test_parser.nit:84,5
TId "only_lexer" ../src/test_parser.nit:84,5--14
AListExprs ../src/test_parser.nit:84,14
+ TKwthen "then" ../src/test_parser.nit:84,16--19
ABlockExpr ../src/test_parser.nit:85,3--86,8
ACallExpr ../src/test_parser.nit:85,3--43
AImplicitSelfExpr ../src/test_parser.nit:85,3
AListExprs ../src/test_parser.nit:86,8
ADecIntExpr ../src/test_parser.nit:86,8
TNumber "1" ../src/test_parser.nit:86,8
+ TKwelse "else" ../src/test_parser.nit:87,2--5
AIfExpr ../src/test_parser.nit:87,7--93,4
TKwif "if" ../src/test_parser.nit:87,7--8
ACallExpr ../src/test_parser.nit:87,10--16
AImplicitSelfExpr ../src/test_parser.nit:87,10
TId "no_file" ../src/test_parser.nit:87,10--16
AListExprs ../src/test_parser.nit:87,16
+ TKwthen "then" ../src/test_parser.nit:87,18--21
ABlockExpr ../src/test_parser.nit:88,3--89,8
ACallExpr ../src/test_parser.nit:88,3--43
AImplicitSelfExpr ../src/test_parser.nit:88,3
AListExprs ../src/test_parser.nit:89,8
ADecIntExpr ../src/test_parser.nit:89,8
TNumber "1" ../src/test_parser.nit:89,8
+ TKwelse "else" ../src/test_parser.nit:90,2--5
AIfExpr ../src/test_parser.nit:90,7--93,4
TKwif "if" ../src/test_parser.nit:90,7--8
ANotExpr ../src/test_parser.nit:90,10--26
AListExprs ../src/test_parser.nit:90,17
TId "is_empty" ../src/test_parser.nit:90,19--26
AListExprs ../src/test_parser.nit:90,26
+ TKwthen "then" ../src/test_parser.nit:90,28--31
ABlockExpr ../src/test_parser.nit:91,3--92,8
ACallExpr ../src/test_parser.nit:91,3--43
AImplicitSelfExpr ../src/test_parser.nit:91,3
TKwisa "isa" ../src/test_parser.nit:99,8--10
AType ../src/test_parser.nit:99,12--18
TClassid "TString" ../src/test_parser.nit:99,12--18
+ TKwthen "then" ../src/test_parser.nit:99,20--23
ABlockExpr ../src/test_parser.nit:100,4--106,11
AVardeclExpr ../src/test_parser.nit:100,4--17
TKwvar "var" ../src/test_parser.nit:100,4--6
TEq "==" ../src/test_parser.nit:101,9--10
AStringExpr ../src/test_parser.nit:101,12--15
TString "\":q\"" ../src/test_parser.nit:101,12--15
+ TKwthen "then" ../src/test_parser.nit:101,17--20
ABlockExpr ../src/test_parser.nit:102,5--9
ABreakExpr ../src/test_parser.nit:102,5--9
TKwbreak "break" ../src/test_parser.nit:102,5--9
+ TKwelse "else" ../src/test_parser.nit:103,4--7
ABlockExpr ../src/test_parser.nit:104,5--105,6
ACallExpr ../src/test_parser.nit:104,5--24
AImplicitSelfExpr ../src/test_parser.nit:104,5
TKwisa "isa" ../src/test_parser.nit:109,8--10
AType ../src/test_parser.nit:109,12--17
TClassid "AError" ../src/test_parser.nit:109,12--17
+ TKwthen "then" ../src/test_parser.nit:109,19--22
ABlockExpr ../src/test_parser.nit:110,4--111,11
ACallExpr ../src/test_parser.nit:110,4--57
AImplicitSelfExpr ../src/test_parser.nit:110,4
AImplicitSelfExpr ../src/test_parser.nit:114,10
TId "no_print" ../src/test_parser.nit:114,10--17
AListExprs ../src/test_parser.nit:114,17
+ TKwthen "then" ../src/test_parser.nit:114,19--22
ABlockExpr ../src/test_parser.nit:115,4--40
ACallExpr ../src/test_parser.nit:115,4--40
AParExpr ../src/test_parser.nit:115,4--25
ABlockExpr ../src/test_parser.nit:116,3--5
TKwend "end" ../src/test_parser.nit:116,3--5
TKwend "end" ../src/test_parser.nit:117,2--4
+ TKwelse "else" ../src/test_parser.nit:118,1--4
ABlockExpr ../src/test_parser.nit:119,2--155,3
AForExpr ../src/test_parser.nit:119,2--154,4
TKwfor "for" ../src/test_parser.nit:119,2--4
TId "a" ../src/test_parser.nit:119,6
+ TKwin "in" ../src/test_parser.nit:119,8--9
ACallExpr ../src/test_parser.nit:119,11--14
AImplicitSelfExpr ../src/test_parser.nit:119,11
TId "args" ../src/test_parser.nit:119,11--14
AImplicitSelfExpr ../src/test_parser.nit:121,6
TId "no_file" ../src/test_parser.nit:121,6--12
AListExprs ../src/test_parser.nit:121,12
+ TKwthen "then" ../src/test_parser.nit:121,14--17
ABlockExpr ../src/test_parser.nit:122,4--45
ACallAssignExpr ../src/test_parser.nit:122,4--45
AImplicitSelfExpr ../src/test_parser.nit:122,4
TId "a" ../src/test_parser.nit:122,44
AListExprs ../src/test_parser.nit:122,44
TCpar ")" ../src/test_parser.nit:122,45
+ TKwelse "else" ../src/test_parser.nit:123,3--6
ABlockExpr ../src/test_parser.nit:124,4--127,5
AVardeclExpr ../src/test_parser.nit:124,4--33
TKwvar "var" ../src/test_parser.nit:124,4--6
AImplicitSelfExpr ../src/test_parser.nit:129,6
TId "only_lexer" ../src/test_parser.nit:129,6--15
AListExprs ../src/test_parser.nit:129,15
+ TKwthen "then" ../src/test_parser.nit:129,17--20
ABlockExpr ../src/test_parser.nit:130,4--136,6
AVardeclExpr ../src/test_parser.nit:130,4--25
TKwvar "var" ../src/test_parser.nit:130,4--6
AImplicitSelfExpr ../src/test_parser.nit:132,12
TId "no_print" ../src/test_parser.nit:132,12--19
AListExprs ../src/test_parser.nit:132,19
+ TKwthen "then" ../src/test_parser.nit:132,21--24
ABlockExpr ../src/test_parser.nit:133,6--64
ACallExpr ../src/test_parser.nit:133,6--64
AImplicitSelfExpr ../src/test_parser.nit:133,6
TId "next" ../src/test_parser.nit:135,19--22
AListExprs ../src/test_parser.nit:135,22
TKwend "end" ../src/test_parser.nit:136,4--6
+ TKwelse "else" ../src/test_parser.nit:137,3--6
ABlockExpr ../src/test_parser.nit:138,4--153,5
AVardeclExpr ../src/test_parser.nit:138,4--33
TKwvar "var" ../src/test_parser.nit:138,4--6
TKwisa "isa" ../src/test_parser.nit:142,13--15
AType ../src/test_parser.nit:142,17--22
TClassid "AError" ../src/test_parser.nit:142,17--22
+ TKwthen "then" ../src/test_parser.nit:142,24--27
ABlockExpr ../src/test_parser.nit:143,5--144,10
ACallExpr ../src/test_parser.nit:143,5--58
AImplicitSelfExpr ../src/test_parser.nit:143,5
AImplicitSelfExpr ../src/test_parser.nit:147,7
TId "xml" ../src/test_parser.nit:147,7--9
AListExprs ../src/test_parser.nit:147,9
+ TKwthen "then" ../src/test_parser.nit:147,11--14
ABlockExpr ../src/test_parser.nit:148,5--149,32
ACallExpr ../src/test_parser.nit:148,5--25
ACallExpr ../src/test_parser.nit:148,5--8
TId "stdout" ../src/test_parser.nit:149,26--31
AListExprs ../src/test_parser.nit:149,31
TCpar ")" ../src/test_parser.nit:149,32
+ TKwelse "else" ../src/test_parser.nit:150,4--7
AIfExpr ../src/test_parser.nit:150,9--152,6
TKwif "if" ../src/test_parser.nit:150,9--10
ANotExpr ../src/test_parser.nit:150,12--23
AImplicitSelfExpr ../src/test_parser.nit:150,16
TId "no_print" ../src/test_parser.nit:150,16--23
AListExprs ../src/test_parser.nit:150,23
+ TKwthen "then" ../src/test_parser.nit:150,25--28
ABlockExpr ../src/test_parser.nit:151,5--44
ACallExpr ../src/test_parser.nit:151,5--44
AParExpr ../src/test_parser.nit:151,5--26
--> AForExpr 1,1--15
TKwfor "for" 1,1--3
TId "i" 1,5
+ TKwin "in" 1,7--8
ACallExpr 1,10
AImplicitSelfExpr 1,10
TId "x" 1,10
TKwmeth "fun" 1,1--3
AIdMethid 1,5--7
TId "foo" 1,5--7
- ASignature 1,12
+ ASignature 1,9
+ TKwdo "do" 1,9--10
ACallExpr 1,12
AImplicitSelfExpr 1,12
TId "z" 1,12
--> ... ... AForExpr 1,1--3,3
TKwfor "for" 1,1--3
TId "i" 1,5
+ TKwin "in" 1,7--8
ACallExpr 1,10
AImplicitSelfExpr 1,10
TId "x" 1,10
TKwmeth "fun" 1,1--3
AIdMethid 1,5--7
TId "foo" 1,5--7
- ASignature 2,1
+ ASignature 1,9
+ TKwdo "do" 1,9--10
ABlockExpr 2,1--5,3
AForExpr 2,1--4,3
TKwfor "for" 2,1--3
TId "i" 2,5
+ TKwin "in" 2,7--8
ACallExpr 2,10
AImplicitSelfExpr 2,10
TId "x" 2,10
--- /dev/null
+# Thi
+# Thi
+s file is pa
+s file is pa
+rt of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = new FileReader.open("test_peek.nit")
+
+print f.peek(5)
+print f.read(5)
+
+print f.peek(12)
+print f.read(12)
+
+print f.read_all
+
+print f.peek(2)
+
+f.close
+
+
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer"}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
<C: <A: true a 0.123 1234 asdf false> <B: <A: false b 123.123 2345 hjkl false> 1111 qwer>>
# Json:
-{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "ref", "__id": 2}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
+{"__kind": "obj", "__id": 0, "__class": "C", "a": {"__kind": "obj", "__id": 1, "__class": "A", "b": true, "c": {"__kind": "char", "__val": "a"}, "f": 0.123, "i": 1234, "s": "asdf", "n": null, "array": {"__kind": "obj", "__id": 2, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef"}, "b": {"__kind": "obj", "__id": 3, "__class": "B", "b": false, "c": {"__kind": "char", "__val": "b"}, "f": 123.123, "i": 2345, "s": "hjkl", "n": null, "array": {"__kind": "obj", "__id": 4, "__class": "Array[nullable Object]", "__length": 3, "__items": [88, "hello", null]}, "iii": 6789, "sss": "redef", "ii": 1111, "ss": "qwer", "ffff": 6.789, "bbbb": false}, "aa": {"__kind": "ref", "__id": 1}}
# Nit:
<D: <B: <A: false b 123.123 2345 new line ->
--- /dev/null
+preorder:
+1
+2
+4
+7
+5
+3
+6
+8
+9
+inorder:
+7
+4
+2
+5
+1
+8
+6
+9
+3
+postorder:
+7
+4
+5
+2
+8
+9
+6
+3
+1
+levelorder:
+1
+2
+3
+4
+5
+6
+7
+8
+9
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end;interface Object;end;enum Bool;end;enum Int;fun output is intern;end;class A;init do 5.output;fun run do 6.output;end;class B;var val: Int;init(v: Int) do;7.output;self.val = v;end;fun run do val.output;end;class C;var val1: Int;var val2: Int = 10;end;fun foo do 2.output;fun bar(i: Int) do i.output;fun baz: Int do return 4;1.output;foo;bar(3);baz.output;var a = new A;a.run;var b = new B(8);b.run;var c = new C(9);c.val1.output;c.val2.output
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+1.output;
+2.output;;
+3.output;#comment
+
+;4.output
+;;5.output
+#comment
+;6.output
+
+#alt1#7.;comment
--- /dev/null
+# This file is part of NIT (http://www.nitlanguage.org).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import binary
+
+var path = "/tmp/bin"
+var writer = new FileWriter.open(path)
+#alt1# writer.big_endian = false
+#alt3# writer.big_endian = false
+writer.write "hello"
+writer.write_byte 77
+writer.write_float 1.23456789
+writer.write_double 1.23456789
+writer.write_int64 123456789
+print writer.last_error or else "no error"
+writer.close
+
+var reader = new FileReader.open(path)
+#alt2# reader.big_endian = false
+#alt3# reader.big_endian = false
+print reader.read(5)
+print reader.read_byte or else "null"
+print reader.read_float
+print reader.read_double
+print reader.read_int64
+print reader.last_error or else "no error"
+reader.close
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var a = [1,2,3]
+var l = new List[Int].from(a)
+var l2 = new List[Object].from(a)
+
+print a == l
+print a == l2
+print l == a
+print l == l2
+print l2 == a
+print l2 == l
+print ""
+
+var aa = [a]
+print aa.has(a)
+print aa.has(l)
+print aa.has(l2)
+print ""
+
+var map = new Map[List[Int], String]
+map[l] = "hello"
+
+var mapr: MapRead[Object, String] = map
+print mapr.has_key(a)
+print mapr[l2]
redef fun to_s do return "<E: a: {a.join(", ")}; b: {b.join(", ")}>"
end
-# Class with generics
+# Parameterized class
class F[N: Numeric]
auto_serializable
redef fun to_s do return "<E: {n}>"
end
+# Other collections
+class G
+ auto_serializable
+
+ var hs = new HashSet[Int]
+ var s: Set[String] = new ArraySet[String]
+ var hm = new HashMap[String, Int]
+ var am = new ArrayMap[String, String]
+
+ init
+ do
+ hs.add -1
+ hs.add 0
+ s.add "one"
+ s.add "two"
+ hm["one"] = 1
+ hm["two"] = 2
+ am["three"] = 3.to_s
+ am["four"] = 4.to_s
+ end
+
+ redef fun to_s do return "<G: hs: {hs.join(", ")}; s: {s.join(", ")}; "+
+ "hm: {hm.join(", ", ". ")}; am: {am.join(", ", ". ")}>"
+end
+
var a = new A(true, 'a', 0.1234, 1234, "asdf", null)
var b = new B(false, 'b', 123.123, 2345, "hjkl", 12, 1111, "qwer")
var c = new C(a, b)
var e = new E
var fi = new F[Int](2222)
var ff = new F[Float](33.33)
+var g = new G
# Default works only with Nit serial
-var tests = new Array[Serializable].with_items(a, b, c, d, e, fi, ff)
+var tests = [a, b, c, d, e, fi, ff, g: Serializable]
# Alt1 should work without nitserial
#alt1# tests = new Array[Serializable].with_items(a, b, c, d)
redef class Deserializer
redef fun deserialize_class(name)
do
- if name == "Array[Object]" then return new Array[Object].from_deserializer(self)
- if name == "Array[nullable Serializable]" then return new Array[nullable Serializable].from_deserializer(self)
- if name == "F[Int]" then return new F[Int].from_deserializer(self)
- if name == "F[Float]" then return new F[Float].from_deserializer(self)
- if name == "Array[Serializable]" then return new Array[Serializable].from_deserializer(self)
- if name == "Array[String]" then return new Array[String].from_deserializer(self)
- if name == "Array[HashMap[String, nullable Object]]" then return new Array[HashMap[String, nullable Object]].from_deserializer(self)
- if name == "Array[Match]" then return new Array[Match].from_deserializer(self)
- if name == "Array[nullable Object]" then return new Array[nullable Object].from_deserializer(self)
- if name == "Array[FlatBuffer]" then return new Array[FlatBuffer].from_deserializer(self)
+ # Module: test_deserialization
+ if name == "Array[Object]" then return new Array[Object].from_deserializer(self)
+ if name == "Array[nullable Serializable]" then return new Array[nullable Serializable].from_deserializer(self)
+ if name == "F[Int]" then return new F[Int].from_deserializer(self)
+ if name == "F[Float]" then return new F[Float].from_deserializer(self)
+ if name == "HashSet[Int]" then return new HashSet[Int].from_deserializer(self)
+ if name == "ArraySet[String]" then return new ArraySet[String].from_deserializer(self)
+ if name == "HashMap[String, Int]" then return new HashMap[String, Int].from_deserializer(self)
+ if name == "ArrayMap[String, String]" then return new ArrayMap[String, String].from_deserializer(self)
+ if name == "Array[Serializable]" then return new Array[Serializable].from_deserializer(self)
+ if name == "Array[String]" then return new Array[String].from_deserializer(self)
+ if name == "HashMap[Serializable, Int]" then return new HashMap[Serializable, Int].from_deserializer(self)
+ if name == "Array[JsonObject]" then return new Array[JsonObject].from_deserializer(self)
+ if name == "HashMap[Int, Object]" then return new HashMap[Int, Object].from_deserializer(self)
+ if name == "Array[Node]" then return new Array[Node].from_deserializer(self)
+ if name == "Array[LRState]" then return new Array[LRState].from_deserializer(self)
+ if name == "Array[Couple[String, String]]" then return new Array[Couple[String, String]].from_deserializer(self)
+ if name == "Array[nullable Jsonable]" then return new Array[nullable Jsonable].from_deserializer(self)
return super
end
end
do
init_gtk
- win = new GtkWindow( 0 )
+ win = new GtkWindow(new GtkWindowType.toplevel)
+ win.connect_destroy_signal_to_quit
- container = new GtkGrid(2,1,true)
+ container = new GtkGrid
win.add( container )
lbl = new GtkLabel( "Hello world" )
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = new FileReader.open("test_peek.nit")
+
+print f.peek(5)
+print f.read(5)
+
+print f.peek(12)
+print f.read(12)
+
+print f.read_all
+
+print f.peek(2)
+
+f.close
export LANG=C
export LC_ALL=C
export NIT_TESTING=true
-export MNIT_SRAND=0
+export NIT_SRAND=0
unset NIT_DIR