Showing preview only (340K chars total). Download the full file or copy to clipboard to get everything.
Repository: nagaozen/markdown-it-toc-done-right
Branch: master
Commit: 0a9fe6d2a025
Files: 19
Total size: 326.2 KB
Directory structure:
gitextract_7ufm1b_1/
├── .eslintignore
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
├── __test__/
│ └── test.js
├── demo.html
├── dist/
│ ├── markdownItTocDoneRight.js
│ ├── markdownItTocDoneRight.mjs
│ ├── markdownItTocDoneRight.modern.js
│ └── markdownItTocDoneRight.umd.js
├── index.js
├── package.json
├── runkit.js
├── tdd.helper.html
├── types/
│ └── index.d.ts
└── uslug.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintignore
================================================
node_modules
coverage
dist
lib
================================================
FILE: .gitignore
================================================
node_modules
coverage
================================================
FILE: .travis.yml
================================================
language: node_js
node_js:
- "12"
- "14"
after_success: "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
cache:
directories:
- "node_modules"
================================================
FILE: CHANGELOG.md
================================================
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [4.2.0] - 2020-11-19
### Added
- implemented `uniqueSlugStartIndex`
## [4.1.0] - 2019-10-17
### Added
- accept options in the placeholder [#16](https://github.com/nagaozen/markdown-it-toc-done-right/issues/16)
- `callback` option [#18](https://github.com/nagaozen/markdown-it-toc-done-right/issues/18)
### Changed
- fixed [#20](https://github.com/nagaozen/markdown-it-toc-done-right/issues/20)
- fixed [#22](https://github.com/nagaozen/markdown-it-toc-done-right/issues/22)
- `test.js` to match the changes from `markdown-it-anchor`
- `headings2ast` removed options dependency (will generate a tree with all headings)
- `ast2html` modified to hold and apply almost all options, making `inlineOptions` possible
## [4.0.2] - 2019-07-11
### Changed
- fixed [#14](https://github.com/nagaozen/markdown-it-toc-done-right/issues/14)
- updated dependencies, especially microbundle. Fix [#12](https://github.com/nagaozen/markdown-it-toc-done-right/issues/12)?
- executed `npm audit fix --force` to fix dependencies vunerabilities
## [4.0.1] - 2019-06-03
### Changed
- executed `npm audit fix --force` to fix dependencies vunerabilities
## [4.0.0] - 2019-05-19
### Changed
- browser global changed from `markdownitTocDoneRight` to `markdownItTocDoneRight`
- filename changed from `markdown-it-toc-made-right.min.js` to `markdownItTocDoneRight.umd.js`
### Removed
- `babel`
- `babelify`
- `browserify`
- `eslint`
- `uglify`
### Added
- `microbundle`
- `standard`
## [3.0.0] - 2019-03-18
### Added
- `listClass`, `itemClass` and `linkClass` options.
### Changed
- placeholder as a regular expression pattern
## [2.1.0] - 2019-02-23
### Added
- `level` option. Default is 1
- test for using `level` option
### Changed
- update `demo.html` to test the new level option
## [2.0.3] - 2018-06-19
### Changed
- update to keep compat with `markdown-it-anchor` `v5.0.2`
## [2.0.2] - 2018-06-15
### Changed
- tests cover 100%
## [2.0.0] - 2018-06-14
### Changed
- dropped package `string` as dependency
## [1.0.5] - 2018-06-12
### Added
- `markdown-it` as `peerDependencies`
### Changed
- better `headings_ast(tokens)` with support for skipping heading ranks
## [1.0.4] - 2018-06-11
### Fixed
- tests
## [1.0.3] - 2018-06-08
### Changed
- **WAI-ARIA** `role='navigation'` isn't required
## [1.0.2] - 2018-06-04
### Added
- travis
## [1.0.1] - 2018-06-04
### Added
- linting
- testing
- runkit
- unicode support example
[Unreleased]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v4.1.0...HEAD
[4.1.0]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v4.0.2...v4.1.0
[4.0.2]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v4.0.1...v4.0.2
[4.0.1]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v4.0.0...v4.0.1
[4.0.0]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v3.0.0...v4.0.0
[3.0.0]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v2.1.0...v3.0.0
[2.1.0]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v2.0.3...v2.1.0
[2.0.3]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v2.0.2...v2.0.3
[2.0.2]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v2.0.0...v2.0.2
[2.0.0]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v1.0.5...v2.0.0
[1.0.5]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v1.0.4...v1.0.5
[1.0.4]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v1.0.3...v1.0.4
[1.0.3]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/nagaozen/markdown-it-toc-done-right/compare/v1.0.0...v1.0.1
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2018 Fabio Zendhi Nagao
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: Makefile
================================================
NPM_PACKAGE := $(shell node -e 'process.stdout.write(require("./package.json").name)')
NPM_VERSION := $(shell node -e 'process.stdout.write(require("./package.json").version)')
GITHUB_PROJ := https://github.com//nagaozen/${NPM_PACKAGE}
build:
rm -rf ./dist
mkdir dist
# Browserify
( printf "/*! ${NPM_PACKAGE} ${NPM_VERSION} ${GITHUB_PROJ} @license MIT */" ; \
npx browserify -s markdownitTocDoneRight -t babelify --presets [ "@babel/preset-env" ] . \
) > dist/markdown-it-toc-made-right.js
# Minify
npx uglifyjs dist/markdown-it-toc-made-right.js -c -m \
--preamble "/*! ${NPM_PACKAGE} ${NPM_VERSION} ${GITHUB_PROJ} @license MIT */" \
> dist/markdown-it-toc-made-right.min.js
upddemo:
rm -rf ./lib
mkdir lib
curl -o lib/markdown-it-anchor.js https://wzrd.in/standalone/markdown-it-anchor@latest
curl -o lib/uslug.js https://wzrd.in/standalone/uslug@latest
================================================
FILE: README.md
================================================
# markdown-it-toc-done-right
A table of contents (TOC) plugin for [Markdown-it](https://github.com/markdown-it/markdown-it) with focus on semantic and security. Made to work gracefully with [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor).
[](https://travis-ci.org/nagaozen/markdown-it-toc-done-right)
[](https://coveralls.io/github/nagaozen/markdown-it-toc-done-right?branch=master)
[](vhttps://www.npmjs.org/package/markdown-it-toc-done-right)
[](http://makeapullrequest.com)
[](https://npm.runkit.com/markdown-it-toc-done-right)
## tl;dr
If you are drowning in table of contents plugins options, just pick this one. It delivers an **accessible**, **semantic**, **SEO friendly** and **safe** TOC. Place one of: `${toc}`, `[[toc]]`, `[toc]`, `[[_toc_]]` in your markdown and, BOOM, the `<nav class="table-of-contents">` will be there. [Click here for additional information](#really-another-markdown-it-table-of-contents-plugin).
## Installation
```sh
$ npm i -S markdown-it-toc-done-right markdown-it-anchor
```
## Usage
```js
// node.js
var md = require("markdown-it")({
html: false,
xhtmlOut: true,
typographer: true
}).use( require("markdown-it-anchor"), { permalink: true, permalinkBefore: true, permalinkSymbol: '§' } )
.use( require("markdown-it-toc-done-right") );
var result = md.render("# markdown-it rulezz!\n\n${toc}\n## with markdown-it-toc-done-right rulezz even more!");
// browser without AMD, added to "window" on script load
// Note, there is no dash in "markdownit".
var md = window.markdownit({
html: false,
xhtmlOut: true,
typographer: true
}).use( window.markdownItAnchor, { permalink: true, permalinkBefore: true, permalinkSymbol: '§' } )
.use( window.markdownItTocDoneRight );
var result = md.render("# markdown-it rulezz!\n\n${toc}\n## with markdown-it-toc-done-right rulezz even more!");
```
## Options
You may specify options when using the plugin:
```js
md.use(require("markdown-it-toc-done-right"), options);
```
These options are available:
Name | Description | Default
-----------------------|------------------------------------------------------------------|-------------------------------------
`placeholder` | The pattern serving as the TOC placeholder in your markdown | "(\\$\\{toc\\}|\\[\\[?_?toc_?\\]?\\])"
`slugify` | A custom slugification function | See [`index.js`](index.js)
`uniqueSlugStartIndex` | Index to start with when making duplicate slugs unique. | 1
`containerClass` | The class for the container DIV | "table-of-contents"
`containerId` | The ID for the container DIV | `undefined`
`listClass` | The class for the `listType` HTMLElement | `undefined`
`itemClass` | The class for the LI | `undefined`
`linkClass` | The class for the A | `undefined`
`level` | Minimum level to apply anchors on or array of selected levels | 1
`listType` | Type of list (`ul` for unordered, `ol` for ordered) | `ol`
`format` | A function for formatting headings (see below) | `undefined`
`callback` | A function (html, ast) {} called after rendering. | `undefined`
`format` is an optional function for changing how the headings are displayed in the TOC _e.g._ Wrapping content in `<span>`:
```js
function format(x, htmlencode) {
return `<span>${htmlencode(x)}</span>`;
}
```
## User-Friendly URLs
Starting from `v2.0.0`, `markdown-it-toc-done-right` dropped package `string`
keeping it's core value of being an unopinionated and secure library. Yet,
users looking for backward compatibility may want the old slugify:
```sh
$ npm i -S string
```
```js
var string = require("string");
function legacySlugify(s) {
return string(s).slugify().toString();
}
var md = require("markdown-it")({
html: false,
xhtmlOut: true,
typographer: true
}).use( require("markdown-it-anchor"), { permalink: true, permalinkBefore: true, permalinkSymbol: '§', slugify: legacySlugify } )
.use( require("markdown-it-toc-done-right"), { slugify: legacySlugify } );
```
## Unicode support
Unicode is supported by default. Yet, if you are looking for a "prettier"
--opinionated-- link, _i.e_ without %xx, you may want to take a look at `uslug`:
```sh
$ npm i -S uslug
```
```js
var uslug = require("uslug");
function uslugify(s) {
return uslug(s);
}
var md = require("markdown-it")({
html: false,
xhtmlOut: true,
typographer: true
}).use( require("markdown-it-anchor"), { permalink: true, permalinkBefore: true, permalinkSymbol: '§', slugify: uslugify } )
.use( require("markdown-it-toc-done-right"), { slugify: uslugify } );
```
## Really? Another markdown-it table of contents plugin?
Unfortunately, I'm a little rigorous developer and most of the existing plugins (_exempli gratia_ `markdown-it-toc-and-anchor`, `markdown-it-table-of-contents`, `markdown-it-toc`, `markdown-it-toc-x3` _et cetera_) fail under, at least, one of these criteria: **correctness**, **semantic**, **security**.
Let me first define those:
- **correctness** `(C1)`, means the that the algorithm is correct with respect to a specification.
- **semantic** `(C2)`, means the that the algorithm delivers meaningful output (_id est_ more than presentation driven HTML).
- **security** `(C3)`, means the that the algorithm protects you, by default, against malicious users.
Whenever I need to work with markdown syntax, I leverage Markdown-it. It's GREAT, the developers care about [security](https://github.com/markdown-it/markdown-it/blob/master/docs/security.md), it's [built for flexibility](https://css-tricks.com/choosing-right-markdown-parser/#comment-1599728), have a [huge community extending it](https://www.npmjs.com/search?q=markdown-it-plugin) and outputs a semantic perfect (X)HTML. Somehow, not all plugin developers keep the same high standards for their extensions. Take for example the three most popular, at the time of writing this README, solutions for this problem: `markdown-it-toc-and-anchor`, `markdown-it-table-of-contents`, `markdown-it-toc`. They all implement their TOC as `inline` and, most obscure of all, after the `emphasis` rule. Does it make any sense? Could someone explain why it's like that? Two errors get derived from this single choice:
1. `(C1)` Invalidates your HTML at [Nu Html Checker](https://validator.w3.org/nu/). Using those plugins you will inject the "ERROR: No `p` element in scope but a `p` end tag seen." to your page.
1. `(C2)` Throw HTML5 semantics away. One of the reasons for the tag `<nav>` to exists is [exactly to be used as a container for table of contents](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines#Problems_solved_by_HTML5). Semantic is great for SEO and Accessibility. If you, like me, care about SEO and Accessibility you can't use those plugins.
Of course that neither of the above arguments degrades your presentation, but as a coach that trains people to be A-grade web developers to work with very sensitive data (_i.e._ money and credit card) it doesn't make sense for me to keep any one of these plugins. Another very common `(C1)` mistake that can be found in the wild is using an optional regular expression to match the placeholder in the source, but using a hard-coded `charCodeAt` value to reject a token. Finally, `(C3)` is also a concern since the prevalence of unescaped HTML is currently very high; opening your page to XSS and other HTML injection security vulnerabilities.
The only other plugin that addresses `(C2)` and `(C3)` found is `markdown-it-toc-x3`. It's made because the author also noted `(C2)` and addresses `(C3)` by always using `markdown-it token.attrSet(k,v)`, but I've technical `(D1)` and philosophical `(D2)` disagreements with the code:
1. `(D1)`, the approach is very obscure: `(i)` cloning the argument `md` into `md2`, using it to render `heading_open next token` into something that needs to be slugified, stripped and will generate more tokens to be concatenated with token.children; `(ii)` hard-coding `<svg>` into it?; `(iii)` building a string representation of the TOC to `md2` parse and get the tokens back? Really? I feel it's a bit hard to maintain code like that.
1. `(D2)` composability, do one thing and do it well. If a plugin could be broken in two plugins, it should be broken. `+1` for maintenance.
And those are the "why"s of `markdown-it-toc-done-right`. It protects you by HTML enconding critical points `(C3)` ✓, outputs a nice semantic tag `nav` which works the same as WAI-ARIA landmark `role="navigation"` saving you from [this kind of issue](https://github.com/w3c/aria/issues/534) `(C2)` ✓ and get the job done with an über simple approach `(C1)` ✓.
## How it works?
The idea behind the plugin is incredibly simple:
1. Filter the heading tokens
1. Use 'em to build an AST
1. Apply the HTML semantics in the AST.
Very straightforward, it's one of the smallest plugins you will find around. `+1` for maintenance.
## Cherry on top
Really? You reached here? You deserve a dessert! Try applying this CSS to your `markdown-it-toc-done-right` page.
```css
body { scroll-behavior: smooth; }
ol { counter-reset: list-item; }
li { display: block; counter-increment: list-item; }
li:before { content: counters(list-item,'.') ' '; }
```
Want to know more about scroll-behavior? Visit <https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior>.
Want to know more about nested counters? Visit <https://www.w3.org/TR/css-lists-3/>.
## Contributing
* ⇄ Pull requests and ★ Stars are always welcome.
* For bugs and feature requests, please create an issue.
* Pull requests must be accompanied by passing automated tests (`$ npm test`).
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github).
================================================
FILE: __test__/test.js
================================================
/* eslint-env jest */
/* eslint-disable no-template-curly-in-string */
const markdownIt = require('markdown-it')
const markdownItAnchor = require('markdown-it-anchor')
const markdownItTocDoneRight = require('../dist/markdownItTocDoneRight')
const uslug = require('uslug')
function getMarkdownIt () {
return markdownIt({
html: false,
xhtmlOut: true,
typographer: true
})
}
function uslugify (text) {
return uslug(text)
}
function customFormat (content, htmlEncoder) {
return `<span>${htmlEncoder(content)}</span>`
}
const commonMd = getMarkdownIt()
.use(markdownItAnchor, {
permalink: true,
permalinkBefore: true,
permalinkSymbol: '§'
})
.use(markdownItTocDoneRight)
test('empty set', () => {
const mdContent = '${toc}'
const htmlContent = '<nav class="table-of-contents"></nav>'
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('single element', () => {
const mdContent = '${toc}\n\n# Title'
const htmlContent = '<nav class="table-of-contents"><ol><li><a href="#title"> Title</a></li></ol></nav><h1 id="title"><a class="header-anchor" href="#title">§</a> Title</h1>\n'
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test("single element doesn't need to be h1", () => {
const mdContent = '${toc}\n\n## Section'
const htmlContent = '<nav class="table-of-contents"><ol><li><a href="#section"> Section</a></li></ol></nav><h2 id="section"><a class="header-anchor" href="#section">§</a> Section</h2>\n'
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('main heading usually comes first', () => {
const mdContent = '${toc}\n\n# Title\n\n## Section 1\n\n### Sub Section 1\n\n### Sub Section 2\n\n## Section 2'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#title"> Title</a><ol><li><a href="#section-1"> Section 1</a><ol><li><a href="#sub-section-1"> Sub Section 1</a></li><li><a href="#sub-section-2"> Sub Section 2</a></li></ol></li><li><a href="#section-2"> Section 2</a></li></ol></li></ol></nav><h1 id="title"><a class="header-anchor" href="#title">§</a> Title</h1>
<h2 id="section-1"><a class="header-anchor" href="#section-1">§</a> Section 1</h2>
<h3 id="sub-section-1"><a class="header-anchor" href="#sub-section-1">§</a> Sub Section 1</h3>
<h3 id="sub-section-2"><a class="header-anchor" href="#sub-section-2">§</a> Sub Section 2</h3>
<h2 id="section-2"><a class="header-anchor" href="#section-2">§</a> Section 2</h2>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('but sometimes it comes after navigation', () => {
const mdContent = '${toc}\n\n## Navigation Menu\n\n## Sidebar\n\n### More news\n\n### What our clients say\n\n### Ratings\n\n# Title\n\n## Section 1\n\n### Sub Section 1\n\n### Sub Section 2\n\n## Section 2'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#navigation-menu"> Navigation Menu</a></li><li><a href="#sidebar"> Sidebar</a><ol><li><a href="#more-news"> More news</a></li><li><a href="#what-our-clients-say"> What our clients say</a></li><li><a href="#ratings"> Ratings</a></li></ol></li><li><a href="#title"> Title</a><ol><li><a href="#section-1"> Section 1</a><ol><li><a href="#sub-section-1"> Sub Section 1</a></li><li><a href="#sub-section-2"> Sub Section 2</a></li></ol></li><li><a href="#section-2"> Section 2</a></li></ol></li></ol></nav><h2 id="navigation-menu"><a class="header-anchor" href="#navigation-menu">§</a> Navigation Menu</h2>
<h2 id="sidebar"><a class="header-anchor" href="#sidebar">§</a> Sidebar</h2>
<h3 id="more-news"><a class="header-anchor" href="#more-news">§</a> More news</h3>
<h3 id="what-our-clients-say"><a class="header-anchor" href="#what-our-clients-say">§</a> What our clients say</h3>
<h3 id="ratings"><a class="header-anchor" href="#ratings">§</a> Ratings</h3>
<h1 id="title"><a class="header-anchor" href="#title">§</a> Title</h1>
<h2 id="section-1"><a class="header-anchor" href="#section-1">§</a> Section 1</h2>
<h3 id="sub-section-1"><a class="header-anchor" href="#sub-section-1">§</a> Sub Section 1</h3>
<h3 id="sub-section-2"><a class="header-anchor" href="#sub-section-2">§</a> Sub Section 2</h3>
<h2 id="section-2"><a class="header-anchor" href="#section-2">§</a> Section 2</h2>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('markup inside the heading should be treated', () => {
const mdContent = '${toc}\n\n# A **heading** with *markup* `code` [link](https://github.com)'
const htmlContent = '<nav class="table-of-contents"><ol><li><a href="#a-heading-with-markup-code-link"> A heading with markup code link</a></li></ol></nav><h1 id="a-heading-with-markup-code-link"><a class="header-anchor" href="#a-heading-with-markup-code-link">§</a> A <strong>heading</strong> with <em>markup</em> <code>code</code> <a href="https://github.com">link</a></h1>\n'
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('especially < and >', () => {
const mdContent = '${toc}\n\n# > Title\n\n## < Section\n\n## > Another Section'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#%3E-title"> > Title</a><ol><li><a href="#%3C-section"> < Section</a></li><li><a href="#%3E-another-section"> > Another Section</a></li></ol></li></ol></nav><h1 id="%3E-title"><a class="header-anchor" href="#%3E-title">§</a> > Title</h1>
<h2 id="%3C-section"><a class="header-anchor" href="#%3C-section">§</a> < Section</h2>
<h2 id="%3E-another-section"><a class="header-anchor" href="#%3E-another-section">§</a> > Another Section</h2>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('skipping heading ranks should work', () => {
const mdContent = '${toc}\n\n## Foo\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus porta nulla id porttitor. Vivamus sagittis, leo eget gravida euismod, justo ex dignissim sem, in tempus turpis libero quis velit. Aliquam sit amet ultricies quam.\n\n#### Bar\nSuspendisse ornare pellentesque nibh non tristique. Suspendisse potenti. Nunc id dui non diam luctus imperdiet.\n\n## Grob\nQuisque fringilla urna sit amet elit ultrices tincidunt. Interdum et malesuada fames ac ante ipsum primis in faucibus. In posuere tellus suscipit sapien rhoncus euismod. Phasellus eu ligula mollis, finibus tortor ut, consectetur metus. Vestibulum eget leo felis.'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#foo"> Foo</a><ol><li><a href="#bar"> Bar</a></li></ol></li><li><a href="#grob"> Grob</a></li></ol></nav><h2 id="foo"><a class="header-anchor" href="#foo">§</a> Foo</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus porta nulla id porttitor. Vivamus sagittis, leo eget gravida euismod, justo ex dignissim sem, in tempus turpis libero quis velit. Aliquam sit amet ultricies quam.</p>
<h4 id="bar"><a class="header-anchor" href="#bar">§</a> Bar</h4>
<p>Suspendisse ornare pellentesque nibh non tristique. Suspendisse potenti. Nunc id dui non diam luctus imperdiet.</p>
<h2 id="grob"><a class="header-anchor" href="#grob">§</a> Grob</h2>
<p>Quisque fringilla urna sit amet elit ultrices tincidunt. Interdum et malesuada fames ac ante ipsum primis in faucibus. In posuere tellus suscipit sapien rhoncus euismod. Phasellus eu ligula mollis, finibus tortor ut, consectetur metus. Vestibulum eget leo felis.</p>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('code blocks should not be confused as headings', () => {
const mdContent = '[[_toc_]]\n\n## Foo\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus porta nulla id porttitor. Vivamus sagittis, leo eget gravida euismod, justo ex dignissim sem, in tempus turpis libero quis velit. Aliquam sit amet ultricies quam.\n\n#### Bar\nSuspendisse ornare pellentesque nibh non tristique. Suspendisse potenti. Nunc id dui non diam luctus imperdiet.\n\n ## Grob\n Quisque fringilla urna sit amet elit ultrices tincidunt. Interdum et malesuada fames ac ante ipsum primis in faucibus. In posuere tellus suscipit sapien rhoncus euismod. Phasellus eu ligula mollis, finibus tortor ut, consectetur metus. Vestibulum eget leo felis.'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#foo"> Foo</a><ol><li><a href="#bar"> Bar</a></li></ol></li></ol></nav><h2 id="foo"><a class="header-anchor" href="#foo">§</a> Foo</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus porta nulla id porttitor. Vivamus sagittis, leo eget gravida euismod, justo ex dignissim sem, in tempus turpis libero quis velit. Aliquam sit amet ultricies quam.</p>
<h4 id="bar"><a class="header-anchor" href="#bar">§</a> Bar</h4>
<p>Suspendisse ornare pellentesque nibh non tristique. Suspendisse potenti. Nunc id dui non diam luctus imperdiet.</p>
<pre><code>## Grob
Quisque fringilla urna sit amet elit ultrices tincidunt. Interdum et malesuada fames ac ante ipsum primis in faucibus. In posuere tellus suscipit sapien rhoncus euismod. Phasellus eu ligula mollis, finibus tortor ut, consectetur metus. Vestibulum eget leo felis.</code></pre>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('headers innerText may happen more than once', () => {
const mdContent = '[toc]\n\n# Title\n\n## Section 1\n\n### Subsection 1\n\n### Subsection 2\n\n## Section 2\n\n### Subsection 1\n\n### Subsection 2\n\n## Section 3\n\n### Subsection 1\n\n### Subsection 2'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#title"> Title</a><ol><li><a href="#section-1"> Section 1</a><ol><li><a href="#subsection-1"> Subsection 1</a></li><li><a href="#subsection-2"> Subsection 2</a></li></ol></li><li><a href="#section-2"> Section 2</a><ol><li><a href="#subsection-1-1"> Subsection 1</a></li><li><a href="#subsection-2-1"> Subsection 2</a></li></ol></li><li><a href="#section-3"> Section 3</a><ol><li><a href="#subsection-1-2"> Subsection 1</a></li><li><a href="#subsection-2-2"> Subsection 2</a></li></ol></li></ol></li></ol></nav><h1 id="title"><a class="header-anchor" href="#title">§</a> Title</h1>
<h2 id="section-1"><a class="header-anchor" href="#section-1">§</a> Section 1</h2>
<h3 id="subsection-1"><a class="header-anchor" href="#subsection-1">§</a> Subsection 1</h3>
<h3 id="subsection-2"><a class="header-anchor" href="#subsection-2">§</a> Subsection 2</h3>
<h2 id="section-2"><a class="header-anchor" href="#section-2">§</a> Section 2</h2>
<h3 id="subsection-1-1"><a class="header-anchor" href="#subsection-1-1">§</a> Subsection 1</h3>
<h3 id="subsection-2-1"><a class="header-anchor" href="#subsection-2-1">§</a> Subsection 2</h3>
<h2 id="section-3"><a class="header-anchor" href="#section-3">§</a> Section 3</h2>
<h3 id="subsection-1-2"><a class="header-anchor" href="#subsection-1-2">§</a> Subsection 1</h3>
<h3 id="subsection-2-2"><a class="header-anchor" href="#subsection-2-2">§</a> Subsection 2</h3>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('and sometimes slugify with suffix may generate another existing header', () => {
const mdContent = '[[toc]]\n\n# header\n\n## header\n\n## header 1'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#header"> header</a><ol><li><a href="#header-1"> header</a></li><li><a href="#header-1-1"> header 1</a></li></ol></li></ol></nav><h1 id="header"><a class="header-anchor" href="#header">§</a> header</h1>
<h2 id="header-1"><a class="header-anchor" href="#header-1">§</a> header</h2>
<h2 id="header-1-1"><a class="header-anchor" href="#header-1-1">§</a> header 1</h2>
`
expect(commonMd.render(mdContent)).toBe(htmlContent)
})
test('containerId is set correctly', () => {
const md = getMarkdownIt()
.use(markdownItTocDoneRight, {
containerId: 'toc'
})
const mdContent = '${toc}'
const htmlContent = '<nav id="toc" class="table-of-contents"></nav>'
expect(md.render(mdContent)).toBe(htmlContent)
})
test('level(Int Type) option should work as expected', () => {
const md = getMarkdownIt()
.use(markdownItAnchor, {
permalink: true,
permalinkBefore: true,
permalinkSymbol: '§',
level: 2
})
.use(markdownItTocDoneRight, { level: 2 })
const mdContent = '${toc}\n\n# header\n\n## header\n\n## header 2'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#header"> header</a></li><li><a href="#header-2"> header 2</a></li></ol></nav><h1>header</h1>
<h2 id="header"><a class="header-anchor" href="#header">§</a> header</h2>
<h2 id="header-2"><a class="header-anchor" href="#header-2">§</a> header 2</h2>
`
expect(md.render(mdContent)).toBe(htmlContent)
})
test('level(Array Type) option should work as expected', () => {
const md = getMarkdownIt()
.use(markdownItAnchor, {
permalink: true,
permalinkBefore: true,
permalinkSymbol: '§',
level: [1, 2]
})
.use(markdownItTocDoneRight, { level: [1, 2] })
const mdContent = '${toc}\n\n# header\n\n## header\n\n## header 1\n\n# header 4\n\n## header 5\n\n## header 1'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#header"> header</a><ol><li><a href="#header-1"> header</a></li><li><a href="#header-1-1"> header 1</a></li></ol></li><li><a href="#header-4"> header 4</a><ol><li><a href="#header-5"> header 5</a></li><li><a href="#header-1-2"> header 1</a></li></ol></li></ol></nav><h1 id="header"><a class="header-anchor" href="#header">§</a> header</h1>
<h2 id="header-1"><a class="header-anchor" href="#header-1">§</a> header</h2>
<h2 id="header-1-1"><a class="header-anchor" href="#header-1-1">§</a> header 1</h2>
<h1 id="header-4"><a class="header-anchor" href="#header-4">§</a> header 4</h1>
<h2 id="header-5"><a class="header-anchor" href="#header-5">§</a> header 5</h2>
<h2 id="header-1-2"><a class="header-anchor" href="#header-1-2">§</a> header 1</h2>
`
expect(md.render(mdContent)).toBe(htmlContent)
})
test('uniqueSlugStartIndex set to 0', () => {
const md = getMarkdownIt()
.use(markdownItAnchor, {
permalink: true,
permalinkBefore: true,
permalinkSymbol: '§',
level: [1, 2],
uniqueSlugStartIndex: 0
})
.use(markdownItTocDoneRight, { uniqueSlugStartIndex: 0 })
const mdContent = '[toc]\n\n# header\n\n## header'
const htmlContent = `<nav class="table-of-contents"><ol><li><a href="#header"> header</a><ol><li><a href="#header-0"> header</a></li></ol></li></ol></nav><h1 id="header"><a class="header-anchor" href="#header">§</a> header</h1>
<h2 id="header-0"><a class="header-anchor" href="#header-0">§</a> header</h2>
`
expect(md.render(mdContent)).toBe(htmlContent)
})
test('all other options should work as expected', () => {
const md = getMarkdownIt()
.use(markdownItAnchor, {
permalink: true,
permalinkBefore: true,
permalinkSymbol: '§',
slugify: uslugify
})
.use(markdownItTocDoneRight, {
placeholder: '\\@\\[\\[TOC\\]\\]',
slugify: uslugify,
containerClass: 'user-content-toc',
listClass: 'my-list',
itemClass: 'my-item',
linkClass: 'my-link',
listType: 'ul',
format: customFormat,
callback: function (html, ast) {
console.log(ast)
}
})
const mdContent = '@[[TOC]]\n\n# 日本語\n\n# 日本語\n\n # should be considered as code'
const htmlContent = '<nav class="user-content-toc"><ul class="my-list"><li class="my-item"><a class="my-link" href="#日本語"><span> 日本語</span></a></li><li class="my-item"><a class="my-link" href="#日本語-1"><span> 日本語</span></a></li></ul></nav><h1 id="日本語"><a class="header-anchor" href="#日本語">§</a> 日本語</h1>\n<h1 id="日本語-1"><a class="header-anchor" href="#日本語-1">§</a> 日本語</h1>\n<pre><code># should be considered as code</code></pre>\n'
expect(md.render(mdContent)).toBe(htmlContent)
})
================================================
FILE: demo.html
================================================
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>markdown-it-toc-done-right</title>
<style>
body { scroll-behavior: smooth; }
/* More about scroll-behavior @ <https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior> */
ol { counter-reset: list-item; }
li { display: block; counter-increment: list-item; }
li:before { content: counters(list-item,'.') ' '; }
/* More about nested counters @ <https://www.w3.org/TR/css-lists-3/> */
</style>
</head>
<body>
<script src="https://unpkg.com/markdown-it/dist/markdown-it.min.js"></script>
<script src="https://unpkg.com/markdown-it-anchor/dist/markdownItAnchor.umd.js"></script>
<script src="uslug.js"></script>
<script src="dist/markdownItTocDoneRight.umd.js"></script>
<!-- text/markdown isn't a standard, but has an informational rfc @ <https://tools.ietf.org/html/rfc7763> -->
<script id="md" type="text/markdown">
**Table of Contents**
${toc}
# Lorem ipsum dolorem σιτ αμετ
# Dolorem quae urimur illo nomina Lucinam et
## Non dextrum gerebat sequentia inpetus
Lorem markdownum detrahe sublimia vetat, se eicit decepit exstant pedum
tumidisque amore maius summas caeli, flagrans. Est quae iam proturbat culpavit
terram exemplum liquidum vertice hic. Danai etiam. Matrum te verae vult dumque
est natura tamen animos corpusque deduxit, vites preces ambobus cruentato.
Cribri promittere cruor, sine, hunc sedent Pico, fraudo Threicius exigua
finierat adversum.
open -= constantStation;
multimedia_software = dataFilePlug(parallel_boot_xslt, characterDrive -
nybble, mountain(computer(ppgaCpmPda)));
if (46) {
fddiBackside = cpm;
}
heapCertificateImpact.switch_character.null_domain(-2 - dll,
boot_memory_toslink(3, leaderboard_control, defaultRomVfat) *
ergonomics_sdsl_telecommunications.fullBugAscii(copyControllerBar,
443871), vramReadFavorites(chipset_hdtv.cluster_digital_veronica(
online, odbcUrlBackside)));
port_clipboard_zip.illegal(sslCircuit + page_box, 1, -5);
Linguas proiecerat tenus, est veluti in urbe sum aere, mille et ego petit, est
causa concipit. Secreta Emathion maxima terra perde quem, sit terga quid restare
corpora cum fecit patriae habent. Sed regia, *nec non veretur*, mundi spes
latus, ante saxum, quem glacies nam sonat?
## Cum hanc dixerat
Oro egi **commota** per terras *aurigam sustineam* congelat, ab vehebat saeve
discede illa praedam: puer hoc prior. Deseruere corpus longo, in per sub, plus
amatum tamen divitias formam. Fallunt incertam, paruit illum eque, hoc ea sol
inmurmurat edax: nympharum. Tenebrasque et tandem portis corpora Phoebus, nihil
tamen visum. Rescindere rubetis!
- Hamos relinquit fregit Peneos
- Cum lacrimis
- Et super
- Non vir rore petiit
Fletus copia, receperat Cinyreia, contermina sine. Renarrant Aegides hamos et
neque ignem desint Interea arcumque et tenent quondam inrequieta. Pyramus
creberrima iamque freta subigebat cum venit capillo, Noemonaque deum, ait. Vacet
Dianae; hunc contigit, tibi cum; lymphis tempora potuisse **illo** sparsas
Phryges vivacemque fixit, saepe gurgite. Vidit virginem inscribit sine: ludunt
longis.
Aquis *currus*; non caelesti dulcis; hostem ex, arentis trado. Successit est
veneni formidatis linguas sit: cinctaque *concipit Ammon non*, nondum Elis exeat
collem nam. Ausa manebit, fulmina Calaureae potuit magnis vitiantes ambos
poposcerit qui parte. Medio venitque delabor.
### Et rure ponto
Lorem markdownum vinco **dedit**, et valentior illam videt: suos agros placare
cum ignes toto tortilis! Vim leti differtis placuit sidera, in bifores senes
dictis inplumes cornu ut sibi? Ille caput cornua non ducat si in, *Parnaside
gentisque* permaneo nubibus erat vi mihi extemplo satis parum promittere
habebat. Praebentque rictu *Iuppiter gressu*; ubi tempus quo, et!
1. Non saxa
2. Pressam corpus omnibus profuit tempore sedant
3. Aera resolvit adunco subscribi maesta
Monstrare moratur loris, ira necem membris, tibi hamo sed in quae: nam fata te
noctis et consulit. Amisit lato matris aevi inultos, certus. Atque tutius.
### Illis Parin
Nati capacius certaque similisque iussos, Peleus latum quoniam Cytherea nam
litora huic medio pro. Potuit Clytumque quae feruntur, nam evehor audit condit,
et cornua quater ingeniis Hebrum se. Mille vel corpore crudelis certamine,
sudore pro tamen cum **mensis dicta Pelasgae** tenus!
1. Licet suadent sex eadem
2. Vanis potest dubio
3. Qui iuventus nulla ecquis nota frigida in
4. Deos potentibus repetitum tanges iaculantem est
# Tantae spretor totaque habet
## Conduntur iunxit
Lorem markdownum monte vestros praelata patrium pudorem, et quique si trementes
adloquitur mihi: clavam: et una. Dolendi filis offensamque regina gloria quod
lucis sine potentia dextera sospite velut mane parte auxilioque iamque.
Nulli substiterat Circaea noctes: natura! Movere arces; opus crura vincirem.
Deum ictu lecto inducere primus non saxa sacravere figere facundia indicio
[formosius Aesoniden medios](http://valuereraptaturque.io/) nobiliumque dextera
canum. Canor agrestis, pars illa mundi uterum trepidum tauro maneret pecudesque
riget, hanc sorores cape; temptat, ferebam. Evanida enutrivere carmen serasque
squamaque disiectisque passu inane iustis, clauduntur mortes innumeris **dolore
laevae**, mortisque patiere!
> Lacertis hortator furibunda oracula amnem superque epulasque pariter petiit,
> bitumen principium, et sono, crinibus, quo eo. Dicta certate laetabitur messes
> facta et Famem! [Amor](http://enim-viaque.net/) et vidi Hymenaeus, arcus
> moenia. Est generosior volucrem marmore Ophias, mutando silvis corpora teste,
> quae!
## Nec in favillae
Ferro murmure. Ire regales vina, vix callida meruere pocula est patria
*instanti*?
Illo ille quam talibus corpus victa vultus Ulixes ne inpatiens te oculi pinna
imago artis. Nunc non **novis** umor pontum fuisset in nam vertice penthea
[callida](http://vivere.org/durastisphoenica). Vacuo loco faucibus, liquidis
convicti caesoque validis vocato et adde intellecta gravem.
- Linguis illis
- Florem ea et tantum veloque
- Est saeva ademit Britannos praepetis me recumbis
- Dicere externis candida integer Eumenidum secuti ponite
Es aristas vitam fraternis cernis, et **quod flumina parente** Aetnam sicut; est
venisse tantis **inritaturque fronte**! Sperchionidenque pugnant derigere
laboris talia! A canis errasse optatis acumine populus, et Iove vincere adludit.
Posse locum deorum montibus rubor quoque, in pater timorem. Qua fortunatumque
simul qui quoque, habebant poteris mota iuvenem creatis nullum. Prodigiosa
dicere, Colchis, et morti deos Ascalaphus neque speciem.
# 日本語
等区ふいあョウコ、させせへ阿模派魔舳都ほ保氏魔、舳鵜阿都毛鵜瀬ち。個模日根列くコウセ目野ゅょきゆメマセほけ譜阿等阿。し留と。ん、御素個つもう毛模差舳野個ふあうむふゆ露舳えなん屋差。擢めッュク。
ひれ瀬個ふとらうらへうお無魔おいたはておた日くたてぬたんフミン目都ハソシレンチ等日っおすえ巣留ヤルミ「マソひきへ夜氏保雲」知露素留根知留もかほ巣尾夜区二ほ目舳夜根きねとてるにれ手知りぬゃそ。
留巣巣留屋えれセセヤエリモー。そほえ雲等雲れ毛ふは差課保御のなゆちは屋鵜ケソヘヨ保うこはお、キイモミメまへたおらうめや舳ュアオュヌコえほへにりひ魔模離魔手ろむ等津にいゆ区目擢瀬名個二派魔派せお夜。
# 한글
용기가 운다, 불어 불러 되려니와, 위하여 그들은 얼마나 소리다. 가진 끝까지 품고 만천하의 천지는 생생하며. 이상은 기관과 것이다. 천자만홍이 실현에 힘차게 쓸쓸한 아니한 청춘의 힘있다. 그들의 그들의 이것이다. 없으면 관현악이며.
있는가?없으면. 품고 꽃이 수 싹이 이상이 쓸쓸하랴? 가치를 가치를 황금시대를 꾸며 작고 웅대한 것이다. 예가 되는 봄바람이다, 힘있다, 위하여 석가는 이상 살 내려온 듣는다. 청춘 그러므로 앞이 그들은 뼈 봄바람을 군영과 놀이 있는가? 시들어 물방아 보이는 같이 용감하고 철환하였는가 사막이다. 위하여 내는 사는가 따뜻한 자신과 것이다. 가장 가치를 같은 용감하고 보이는 이것은 구하지 그들은 있는가? 우리의 고동을 찾아 갑 있다.
과실이 그러므로 피어나기 약동하다. 곧 크고 낙원을 온갖 봄바람이다, 몸이 품으며. 가치를 그림자는 그들의 이상을 풍부하게 할지라도 바이며. 속에서 있는 예가 때문이다. 듣기만 이상 할지니, 용감하고 얼마나 그들을 사라지지 있으며. 만물은 품었기 따뜻한 석가는 봄바람이다.
# 繁体
洸土嫉円謙線李際針雨集対花向除述。階出報査然沢提稿竹躍集万雨曲。以張嵐患病責川右写香芸訃住本売期。楽人変表組満都比前芸決公伝定令団追針任道。卒宗砂幾野住経監説航思経子町者除条鳥果画。在断動市鈴鮮高施能懲兆要際名向。当導合試捕投親常峰明構動棄見訴権山。斉美動帳際出考交岩禁談事元警思来真。何会席協陣得弱高水国魚政至与非。
採検原玉据以押自供米及断式数。円都唱督抱用速認組笑話天今泉路。倫組沢経成機無職内載碁券。修禁刻術知人添著者国復属更安項乗者。状見麦善制火速後改介員禁街東元。開住性代学続外需政医刊抜明愛体読馴情課。上必郵稿訓質氷狙紀士国新。割手聞程指暮送政画総読提若会台安湖。談残止読時駐席問負稿章約振確提。史換力銀肪今全連最声一加文初。
真就転際作重見二岐文情土。日備世演体横農別泉戒観提。詐発相注店新百比結請旋握失評身自土通舵職。惑史後邦質履大会談聞装止死士。真研大北校指自求加閉者破会模特持間子立。静国権長済熱報京緒低名場必板。菱廃報在減月断載野類写立資。広動美周文品大隠給迎京下益帯。覧止記利話点前石紙準京択。区中千教牧稿無闘更形法本引。
# A **heading** with *markup* `code` [link](https://github.com)
Imagine quamquam adpellatque medio passaque licet hunc vomit, ora et odio,
conveniens illis. Phoebus manet fata excussa lapsis? *Advertite* crocique. Nec
unus in finitque, non liquor, et tumet gelidos ambrosiae cumulusque perfectaque
iniustaque. Flexere rursus; patientia laboribus Naryciamque pervenit qui eris
Aegides cetera tecta, luce, quas verba Proserpina os.
> Hinc voluptas, milibus pete: bracchia Medusae gerit relinquit lebetes,
> dubitate additus tecta **coquiturque**. Sensit melliferarum suorum
> Orchomenosque omni tractoque sui male, sibi tempora habebit, sanguine, me.
</script>
<script>
var uslugify = function(s) {
return window.uslug(s);
}
var md = window.markdownit();
md.use(window.markdownItAnchor, { permalink: true, permalinkBefore: true, permalinkSymbol: '§', slugify: uslugify/*, level: 2*/ })
.use(window.markdownItTocDoneRight, { slugify: uslugify/*, level: 2*/ });
document.body.innerHTML = md.render( document.getElementById("md").innerHTML );
</script>
</body>
</html>
================================================
FILE: dist/markdownItTocDoneRight.js
================================================
function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\s+/g,"-"))}function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}module.exports=function(r,t){var l;t=Object.assign({},{placeholder:"(\\$\\{toc\\}|\\[\\[?_?toc_?\\]?\\]|\\$\\<toc(\\{[^}]*\\})\\>)",slugify:e,uniqueSlugStartIndex:1,containerClass:"table-of-contents",containerId:void 0,listClass:void 0,itemClass:void 0,linkClass:void 0,level:1,listType:"ol",format:void 0,callback:void 0},t);var i=new RegExp("^"+t.placeholder+"$","i");r.renderer.rules.tocOpen=function(e,r){var l=Object.assign({},t);return e&&r>=0&&(l=Object.assign(l,e[r].inlineOptions)),"<nav"+(l.containerId?' id="'+n(l.containerId)+'"':"")+' class="'+n(l.containerClass)+'">'},r.renderer.rules.tocClose=function(){return"</nav>"},r.renderer.rules.tocBody=function(e,r){var i=Object.assign({},t);e&&r>=0&&(i=Object.assign(i,e[r].inlineOptions));var s,a={},c=Array.isArray(i.level)?(s=i.level,function(e){return s.includes(e)}):function(e){return function(n){return n>=e}}(i.level);return function e(r){var l=i.listClass?' class="'+n(i.listClass)+'"':"",s=i.itemClass?' class="'+n(i.itemClass)+'"':"",o=i.linkClass?' class="'+n(i.linkClass)+'"':"";if(0===r.c.length)return"";var u="";return(0===r.l||c(r.l))&&(u+="<"+(n(i.listType)+l)+">"),r.c.forEach(function(r){c(r.l)?u+="<li"+s+"><a"+o+' href="#'+function(e){for(var n=e,r=i.uniqueSlugStartIndex;Object.prototype.hasOwnProperty.call(a,n);)n=e+"-"+r++;return a[n]=!0,n}(t.slugify(r.n))+'">'+("function"==typeof i.format?i.format(r.n,n):n(r.n))+"</a>"+e(r)+"</li>":u+=e(r)}),(0===r.l||c(r.l))&&(u+="</"+n(i.listType)+">"),u}(l)},r.core.ruler.push("generateTocAst",function(e){l=function(e){for(var n={l:0,n:"",c:[]},r=[n],t=0,l=e.length;t<l;t++){var i=e[t];if("heading_open"===i.type){var s=e[t+1].children.filter(function(e){return"text"===e.type||"code_inline"===e.type}).reduce(function(e,n){return e+n.content},""),a={l:parseInt(i.tag.substr(1),10),n:s,c:[]};if(a.l>r[0].l)r[0].c.push(a),r.unshift(a);else if(a.l===r[0].l)r[1].c.push(a),r[0]=a;else{for(;a.l<=r[0].l;)r.shift();r[0].c.push(a),r.unshift(a)}}}return n}(e.tokens),"function"==typeof t.callback&&t.callback(r.renderer.rules.tocOpen()+r.renderer.rules.tocBody()+r.renderer.rules.tocClose(),l)}),r.block.ruler.before("heading","toc",function(e,n,r,t){var l,s=e.src.slice(e.bMarks[n]+e.tShift[n],e.eMarks[n]).split(" ")[0];if(!i.test(s))return!1;if(t)return!0;var a=i.exec(s),c={};if(null!==a&&3===a.length)try{c=JSON.parse(a[2])}catch(e){}return e.line=n+1,(l=e.push("tocOpen","nav",1)).markup="",l.map=[n,e.line],l.inlineOptions=c,(l=e.push("tocBody","",0)).markup="",l.map=[n,e.line],l.inlineOptions=c,l.children=[],(l=e.push("tocClose","nav",-1)).markup="",!0},{alt:["paragraph","reference","blockquote"]})};
//# sourceMappingURL=markdownItTocDoneRight.js.map
================================================
FILE: dist/markdownItTocDoneRight.mjs
================================================
function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\s+/g,"-"))}function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}export default function(r,t){var l;t=Object.assign({},{placeholder:"(\\$\\{toc\\}|\\[\\[?_?toc_?\\]?\\]|\\$\\<toc(\\{[^}]*\\})\\>)",slugify:e,uniqueSlugStartIndex:1,containerClass:"table-of-contents",containerId:void 0,listClass:void 0,itemClass:void 0,linkClass:void 0,level:1,listType:"ol",format:void 0,callback:void 0},t);var i=new RegExp("^"+t.placeholder+"$","i");r.renderer.rules.tocOpen=function(e,r){var l=Object.assign({},t);return e&&r>=0&&(l=Object.assign(l,e[r].inlineOptions)),"<nav"+(l.containerId?' id="'+n(l.containerId)+'"':"")+' class="'+n(l.containerClass)+'">'},r.renderer.rules.tocClose=function(){return"</nav>"},r.renderer.rules.tocBody=function(e,r){var i=Object.assign({},t);e&&r>=0&&(i=Object.assign(i,e[r].inlineOptions));var s,a={},c=Array.isArray(i.level)?(s=i.level,function(e){return s.includes(e)}):function(e){return function(n){return n>=e}}(i.level);return function e(r){var l=i.listClass?' class="'+n(i.listClass)+'"':"",s=i.itemClass?' class="'+n(i.itemClass)+'"':"",o=i.linkClass?' class="'+n(i.linkClass)+'"':"";if(0===r.c.length)return"";var u="";return(0===r.l||c(r.l))&&(u+="<"+(n(i.listType)+l)+">"),r.c.forEach(function(r){c(r.l)?u+="<li"+s+"><a"+o+' href="#'+function(e){for(var n=e,r=i.uniqueSlugStartIndex;Object.prototype.hasOwnProperty.call(a,n);)n=e+"-"+r++;return a[n]=!0,n}(t.slugify(r.n))+'">'+("function"==typeof i.format?i.format(r.n,n):n(r.n))+"</a>"+e(r)+"</li>":u+=e(r)}),(0===r.l||c(r.l))&&(u+="</"+n(i.listType)+">"),u}(l)},r.core.ruler.push("generateTocAst",function(e){l=function(e){for(var n={l:0,n:"",c:[]},r=[n],t=0,l=e.length;t<l;t++){var i=e[t];if("heading_open"===i.type){var s=e[t+1].children.filter(function(e){return"text"===e.type||"code_inline"===e.type}).reduce(function(e,n){return e+n.content},""),a={l:parseInt(i.tag.substr(1),10),n:s,c:[]};if(a.l>r[0].l)r[0].c.push(a),r.unshift(a);else if(a.l===r[0].l)r[1].c.push(a),r[0]=a;else{for(;a.l<=r[0].l;)r.shift();r[0].c.push(a),r.unshift(a)}}}return n}(e.tokens),"function"==typeof t.callback&&t.callback(r.renderer.rules.tocOpen()+r.renderer.rules.tocBody()+r.renderer.rules.tocClose(),l)}),r.block.ruler.before("heading","toc",function(e,n,r,t){var l,s=e.src.slice(e.bMarks[n]+e.tShift[n],e.eMarks[n]).split(" ")[0];if(!i.test(s))return!1;if(t)return!0;var a=i.exec(s),c={};if(null!==a&&3===a.length)try{c=JSON.parse(a[2])}catch(e){}return e.line=n+1,(l=e.push("tocOpen","nav",1)).markup="",l.map=[n,e.line],l.inlineOptions=c,(l=e.push("tocBody","",0)).markup="",l.map=[n,e.line],l.inlineOptions=c,l.children=[],(l=e.push("tocClose","nav",-1)).markup="",!0},{alt:["paragraph","reference","blockquote"]})}
//# sourceMappingURL=markdownItTocDoneRight.mjs.map
================================================
FILE: dist/markdownItTocDoneRight.modern.js
================================================
function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\s+/g,"-"))}function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}export default function(t,l){let r;l=Object.assign({},{placeholder:"(\\$\\{toc\\}|\\[\\[?_?toc_?\\]?\\]|\\$\\<toc(\\{[^}]*\\})\\>)",slugify:e,uniqueSlugStartIndex:1,containerClass:"table-of-contents",containerId:void 0,listClass:void 0,itemClass:void 0,linkClass:void 0,level:1,listType:"ol",format:void 0,callback:void 0},l);const s=new RegExp("^"+l.placeholder+"$","i");t.renderer.rules.tocOpen=function(e,t){let r=Object.assign({},l);return e&&t>=0&&(r=Object.assign(r,e[t].inlineOptions)),`<nav${r.containerId?` id="${n(r.containerId)}"`:""} class="${n(r.containerClass)}">`},t.renderer.rules.tocClose=function(){return"</nav>"},t.renderer.rules.tocBody=function(e,t){let s=Object.assign({},l);e&&t>=0&&(s=Object.assign(s,e[t].inlineOptions));const c={},i=Array.isArray(s.level)?(o=s.level,e=>o.includes(e)):(e=>n=>n>=e)(s.level);var o;return function e(t){const r=s.listClass?` class="${n(s.listClass)}"`:"",o=s.itemClass?` class="${n(s.itemClass)}"`:"",a=s.linkClass?` class="${n(s.linkClass)}"`:"";if(0===t.c.length)return"";let u="";return(0===t.l||i(t.l))&&(u+=`<${n(s.listType)+r}>`),t.c.forEach(t=>{i(t.l)?u+=`<li${o}><a${a} href="#${function(e){let n=e,t=s.uniqueSlugStartIndex;for(;Object.prototype.hasOwnProperty.call(c,n);)n=`${e}-${t++}`;return c[n]=!0,n}(l.slugify(t.n))}">${"function"==typeof s.format?s.format(t.n,n):n(t.n)}</a>${e(t)}</li>`:u+=e(t)}),(0===t.l||i(t.l))&&(u+=`</${n(s.listType)}>`),u}(r)},t.core.ruler.push("generateTocAst",function(e){r=function(e){const n={l:0,n:"",c:[]},t=[n];for(let n=0,l=e.length;n<l;n++){const l=e[n];if("heading_open"===l.type){const r=e[n+1].children.filter(function(e){return"text"===e.type||"code_inline"===e.type}).reduce(function(e,n){return e+n.content},""),s={l:parseInt(l.tag.substr(1),10),n:r,c:[]};if(s.l>t[0].l)t[0].c.push(s),t.unshift(s);else if(s.l===t[0].l)t[1].c.push(s),t[0]=s;else{for(;s.l<=t[0].l;)t.shift();t[0].c.push(s),t.unshift(s)}}}return n}(e.tokens),"function"==typeof l.callback&&l.callback(t.renderer.rules.tocOpen()+t.renderer.rules.tocBody()+t.renderer.rules.tocClose(),r)}),t.block.ruler.before("heading","toc",function(e,n,t,l){let r;const c=e.src.slice(e.bMarks[n]+e.tShift[n],e.eMarks[n]).split(" ")[0];if(!s.test(c))return!1;if(l)return!0;const i=s.exec(c);let o={};if(null!==i&&3===i.length)try{o=JSON.parse(i[2])}catch(e){}return e.line=n+1,r=e.push("tocOpen","nav",1),r.markup="",r.map=[n,e.line],r.inlineOptions=o,r=e.push("tocBody","",0),r.markup="",r.map=[n,e.line],r.inlineOptions=o,r.children=[],r=e.push("tocClose","nav",-1),r.markup="",!0},{alt:["paragraph","reference","blockquote"]})}
//# sourceMappingURL=markdownItTocDoneRight.modern.js.map
================================================
FILE: dist/markdownItTocDoneRight.umd.js
================================================
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).markdownItTocDoneRight=n()}(this,function(){function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\s+/g,"-"))}function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}return function(t,r){var l;r=Object.assign({},{placeholder:"(\\$\\{toc\\}|\\[\\[?_?toc_?\\]?\\]|\\$\\<toc(\\{[^}]*\\})\\>)",slugify:e,uniqueSlugStartIndex:1,containerClass:"table-of-contents",containerId:void 0,listClass:void 0,itemClass:void 0,linkClass:void 0,level:1,listType:"ol",format:void 0,callback:void 0},r);var i=new RegExp("^"+r.placeholder+"$","i");t.renderer.rules.tocOpen=function(e,t){var l=Object.assign({},r);return e&&t>=0&&(l=Object.assign(l,e[t].inlineOptions)),"<nav"+(l.containerId?' id="'+n(l.containerId)+'"':"")+' class="'+n(l.containerClass)+'">'},t.renderer.rules.tocClose=function(){return"</nav>"},t.renderer.rules.tocBody=function(e,t){var i=Object.assign({},r);e&&t>=0&&(i=Object.assign(i,e[t].inlineOptions));var o,s={},c=Array.isArray(i.level)?(o=i.level,function(e){return o.includes(e)}):function(e){return function(n){return n>=e}}(i.level);return function e(t){var l=i.listClass?' class="'+n(i.listClass)+'"':"",o=i.itemClass?' class="'+n(i.itemClass)+'"':"",a=i.linkClass?' class="'+n(i.linkClass)+'"':"";if(0===t.c.length)return"";var u="";return(0===t.l||c(t.l))&&(u+="<"+(n(i.listType)+l)+">"),t.c.forEach(function(t){c(t.l)?u+="<li"+o+"><a"+a+' href="#'+function(e){for(var n=e,t=i.uniqueSlugStartIndex;Object.prototype.hasOwnProperty.call(s,n);)n=e+"-"+t++;return s[n]=!0,n}(r.slugify(t.n))+'">'+("function"==typeof i.format?i.format(t.n,n):n(t.n))+"</a>"+e(t)+"</li>":u+=e(t)}),(0===t.l||c(t.l))&&(u+="</"+n(i.listType)+">"),u}(l)},t.core.ruler.push("generateTocAst",function(e){l=function(e){for(var n={l:0,n:"",c:[]},t=[n],r=0,l=e.length;r<l;r++){var i=e[r];if("heading_open"===i.type){var o=e[r+1].children.filter(function(e){return"text"===e.type||"code_inline"===e.type}).reduce(function(e,n){return e+n.content},""),s={l:parseInt(i.tag.substr(1),10),n:o,c:[]};if(s.l>t[0].l)t[0].c.push(s),t.unshift(s);else if(s.l===t[0].l)t[1].c.push(s),t[0]=s;else{for(;s.l<=t[0].l;)t.shift();t[0].c.push(s),t.unshift(s)}}}return n}(e.tokens),"function"==typeof r.callback&&r.callback(t.renderer.rules.tocOpen()+t.renderer.rules.tocBody()+t.renderer.rules.tocClose(),l)}),t.block.ruler.before("heading","toc",function(e,n,t,r){var l,o=e.src.slice(e.bMarks[n]+e.tShift[n],e.eMarks[n]).split(" ")[0];if(!i.test(o))return!1;if(r)return!0;var s=i.exec(o),c={};if(null!==s&&3===s.length)try{c=JSON.parse(s[2])}catch(e){}return e.line=n+1,(l=e.push("tocOpen","nav",1)).markup="",l.map=[n,e.line],l.inlineOptions=c,(l=e.push("tocBody","",0)).markup="",l.map=[n,e.line],l.inlineOptions=c,l.children=[],(l=e.push("tocClose","nav",-1)).markup="",!0},{alt:["paragraph","reference","blockquote"]})}});
//# sourceMappingURL=markdownItTocDoneRight.umd.js.map
================================================
FILE: index.js
================================================
'use strict'
function slugify (x) {
return encodeURIComponent(String(x).trim().toLowerCase().replace(/\s+/g, '-'))
}
function htmlencode (x) {
/*
// safest, delegate task to native -- IMPORTANT: enabling this breaks both jest and runkit, but with browserify it's fine
if (document && document.createElement) {
const el = document.createElement("div")
el.innerText = x
return el.innerHTML
}
*/
return String(x)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>')
}
function tocPlugin (md, options) {
options = Object.assign({}, {
placeholder: '(\\$\\{toc\\}|\\[\\[?_?toc_?\\]?\\]|\\$\\<toc(\\{[^}]*\\})\\>)',
slugify: slugify,
uniqueSlugStartIndex: 1,
containerClass: 'table-of-contents',
containerId: undefined,
listClass: undefined,
itemClass: undefined,
linkClass: undefined,
level: 1,
listType: 'ol',
format: undefined,
callback: undefined/* function(html, ast) {} */
}, options)
let ast
const pattern = new RegExp('^' + options.placeholder + '$', 'i')
function toc (state, startLine, endLine, silent) {
let token
const pos = state.bMarks[startLine] + state.tShift[startLine]
const max = state.eMarks[startLine]
// use whitespace as a line tokenizer and extract the first token
// to test against the placeholder anchored pattern, rejecting if false
const lineFirstToken = state.src.slice(pos, max).split(' ')[0]
if (!pattern.test(lineFirstToken)) return false
if (silent) return true
const matches = pattern.exec(lineFirstToken)
let inlineOptions = {}
if (matches !== null && matches.length === 3) {
try {
inlineOptions = JSON.parse(matches[2])
} catch (ex) {
// silently ignore inline options
}
}
state.line = startLine + 1
token = state.push('tocOpen', 'nav', 1)
token.markup = ''
token.map = [startLine, state.line]
token.inlineOptions = inlineOptions
token = state.push('tocBody', '', 0)
token.markup = ''
token.map = [startLine, state.line]
token.inlineOptions = inlineOptions
token.children = []
token = state.push('tocClose', 'nav', -1)
token.markup = ''
return true
}
md.renderer.rules.tocOpen = function (tokens, idx/* , options, env, renderer */) {
let _options = Object.assign({}, options)
if (tokens && idx >= 0) {
const token = tokens[idx]
_options = Object.assign(_options, token.inlineOptions)
}
const id = _options.containerId ? ` id="${htmlencode(_options.containerId)}"` : ''
return `<nav${id} class="${htmlencode(_options.containerClass)}">`
}
md.renderer.rules.tocClose = function (/* tokens, idx, options, env, renderer */) {
return '</nav>'
}
md.renderer.rules.tocBody = function (tokens, idx/* , options, env, renderer */) {
let _options = Object.assign({}, options)
if (tokens && idx >= 0) {
const token = tokens[idx]
_options = Object.assign(_options, token.inlineOptions)
}
const uniques = {}
function unique (s) {
let u = s
let i = _options.uniqueSlugStartIndex
while (Object.prototype.hasOwnProperty.call(uniques, u)) u = `${s}-${i++}`
uniques[u] = true
return u
}
const isLevelSelectedNumber = selection => level => level >= selection
const isLevelSelectedArray = selection => level => selection.includes(level)
const isLevelSelected = Array.isArray(_options.level)
? isLevelSelectedArray(_options.level)
: isLevelSelectedNumber(_options.level)
function ast2html (tree) {
const listClass = _options.listClass ? ` class="${htmlencode(_options.listClass)}"` : ''
const itemClass = _options.itemClass ? ` class="${htmlencode(_options.itemClass)}"` : ''
const linkClass = _options.linkClass ? ` class="${htmlencode(_options.linkClass)}"` : ''
if (tree.c.length === 0) return ''
let buffer = ''
if (tree.l === 0 || isLevelSelected(tree.l)) {
buffer += (`<${htmlencode(_options.listType) + listClass}>`)
}
tree.c.forEach(node => {
if (isLevelSelected(node.l)) {
buffer += (`<li${itemClass}><a${linkClass} href="#${unique(options.slugify(node.n))}">${typeof _options.format === 'function' ? _options.format(node.n, htmlencode) : htmlencode(node.n)}</a>${ast2html(node)}</li>`)
} else {
buffer += ast2html(node)
}
})
if (tree.l === 0 || isLevelSelected(tree.l)) {
buffer += (`</${htmlencode(_options.listType)}>`)
}
return buffer
}
return ast2html(ast)
}
function headings2ast (tokens) {
const ast = { l: 0, n: '', c: [] }
const stack = [ast]
for (let i = 0, iK = tokens.length; i < iK; i++) {
const token = tokens[i]
if (token.type === 'heading_open') {
const key = (
tokens[i + 1]
.children
.filter(function (token) { return token.type === 'text' || token.type === 'code_inline' })
.reduce(function (s, t) { return s + t.content }, '')
)
const node = {
l: parseInt(token.tag.substr(1), 10),
n: key,
c: []
}
if (node.l > stack[0].l) {
stack[0].c.push(node)
stack.unshift(node)
} else if (node.l === stack[0].l) {
stack[1].c.push(node)
stack[0] = node
} else {
while (node.l <= stack[0].l) stack.shift()
stack[0].c.push(node)
stack.unshift(node)
}
}
}
return ast
}
md.core.ruler.push('generateTocAst', function (state) {
const tokens = state.tokens
ast = headings2ast(tokens)
if (typeof options.callback === 'function') {
options.callback(
md.renderer.rules.tocOpen() + md.renderer.rules.tocBody() + md.renderer.rules.tocClose(),
ast
)
}
})
md.block.ruler.before('heading', 'toc', toc, {
alt: ['paragraph', 'reference', 'blockquote']
})
}
export default tocPlugin
================================================
FILE: package.json
================================================
{
"name": "markdown-it-toc-done-right",
"version": "4.2.0",
"description": "Table of contents (TOC) for markdown-it markdown parser with focus on semantic and security.",
"source": "index.js",
"main": "dist/markdownItTocDoneRight.js",
"module": "dist/markdownItTocDoneRight.mjs",
"unpkg": "dist/markdownItTocDoneRight.umd.js",
"scripts": {
"build": "microbundle",
"dev": "microbundle watch",
"lint": "standard --verbose index.js __test__/test.js | snazzy",
"test": "jest --coverage"
},
"repository": {
"type": "git",
"url": "git+https://github.com/nagaozen/markdown-it-toc-done-right.git"
},
"keywords": [
"markdown-it-plugin",
"markdown-it",
"markdown",
"toc",
"table of contents"
],
"author": "Fabio Zendhi Nagao <https://github.com/nagaozen>",
"license": "MIT",
"files": [
"README.md",
"LICENSE",
"dist/*",
"runkit.js",
"types/*"
],
"types": "types/index.d.ts",
"bugs": {
"url": "https://github.com/nagaozen/markdown-it-toc-done-right/issues"
},
"homepage": "https://github.com/nagaozen/markdown-it-toc-done-right#readme",
"jest": {
"verbose": true
},
"runkitExampleFilename": "runkit.js",
"dependencies": {},
"devDependencies": {
"@types/markdown-it": "^10.0.0",
"coveralls": "^3.0.7",
"jest": "^26.6.3",
"markdown-it": "^10.0.0",
"markdown-it-anchor": "^6.0.0",
"microbundle": "^0.12.4",
"snazzy": "^8.0.0",
"standard": "^13.1.0",
"uslug": "^1.0.4"
}
}
================================================
FILE: runkit.js
================================================
const uslug = require('uslug')
function uslugify (x) {
return uslug(x)
}
const umd = require('markdown-it')({
html: false,
xhtmlOut: true,
typographer: true
}).use(require('markdown-it-anchor'), { permalink: true, permalinkBefore: true, permalinkSymbol: '§', slugify: uslugify })
.use(require('markdown-it-toc-done-right'), { slugify: uslugify })
console.log(umd.render('${toc}\n\n# こんにちは RunKit'))
================================================
FILE: tdd.helper.html
================================================
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>markdown-it-toc-done-right</title>
<style>
body { scroll-behavior: smooth; }
/* More about scroll-behavior @ <https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior> */
</style>
</head>
<body>
<script src="https://unpkg.com/markdown-it/dist/markdown-it.min.js"></script>
<script src="https://unpkg.com/markdown-it-anchor/dist/markdownItAnchor.umd.js"></script>
<script src="uslug.js"></script>
<script src="dist/markdownItTocDoneRight.umd.js"></script>
<!-- text/markdown isn't a standard, but has an informational rfc @ <https://tools.ietf.org/html/rfc7763> -->
<script id="md" type="text/markdown">
$<toc{"containerId":"header-toc"}>
# header
Lorem markdownum, flumen huic caelo emittere tu aevi onerataque. Terque
vocabitur fornacibus duros succedere exul habitatis finibus noctisque peteret.
> Communemque cortice es omne, necem viribus levis? Specie sed datis spirandi
> minus verum deducere spectans cernunt fiuntque de quoque muneris visibus,
> *tacuit digni*. Attulerat pompa, quod costis, et infelix ut reliquit reliquit
> cuius quamvis et forsitan.
Facies [tuo boves aequora](http://www.hunc-armata.net/dulichiusmole.html)
resumere gravibus; cum vulnere felix perdidimus arvis munera penna nec vaccae
visa carmina. Busta suam nata. Amathunta obnoxia Sol frondes. Hic tum pectora
datum saevis: Cerealia salutem gemitum Cephalus, unus nostroque metu: [dominam
Hylonome](http://temporis.io/suique). Pugnantemque cursus, robora sororis omnia.
## header
Statione curvata motus centauri, inque sedula, Ismenides fratris Laurenti hosti
es Argolicas! Centum proles **ensem infelix** molles pecudis ad iuvenum, Libye
non quoque mare?
1. Litora imae tibi Troiae recens
2. Cubile peto qui
3. Onus mihi
## header
Iaceret quibus apertos: alis [obruta](http://www.auronil.com/una.html),
Argolicas tua tanto, et. Lumina lecto, late plumis; de montano mille Erectheus
lecti; quam hosti metuunt, **duo sed** apertas.
- Lucifer monimenta resumere superare iugales coniunx et
- Sub caput ab infans haut iuventae signaque
- Et pars non
- Scintilla successore soceri
- Aurea Iuno rupit alios et sit
[Quid monte ad](http://esthaec.com/) longi videtur victoria roges cognitus
lucent manus humo cardine et res sacrorum potitus. Frondibus qui focos urbis
parsque sententia flore. Caelo sensit: in paludes qualis? Talibus Capherea
nostrum futura et petentem herbas simus, virum; laeva voce, dolor edidicitque
movere sorte.
Alumnae expositum habet natus Victoria quantum. Maduere nec fudit, minimae, cum
fretum inventa [si mihi](http://tantaequetempto.net/mea.html) imago Saturnia in
Byblida parens.
# header
Caluere adfectat hunc fibras consistere parte vulneribus devovitque sibi,
quaerebatque cumque? Tangere scilicet ex medio cui et lacrimaeque regna
innumeras parentes, examinat Cyclopis, terram vis omnia nec illo recondere.
## header
Adflatuque gelidum tempore et Oechalia Phoebo petentia merere: formae speque cum
modo, ad Longius spatium Aeneas! Vehit iam nec Themis ait osculaque nec minorem,
est, sunt anum nate antistite ortae scelerataque *memorant*. Pes advertite ille
vincta una coniciunt amplectitur tuo gessit sequuntur suis, hoc non
[concipe](http://restititresedit.com/undas.php) patriae et Thebae descendere
silvis. **Asopida** se cerebro flumina; vertitis inter parat altera, ubi *venias
armiferos*: exul pater si sciat.
> Ab maior; tacito erat, discedentem **rubebant**: litore tibi nec amplexu abest
> avidaeque! Exit puerum gravem opes dixit construit adcommodat iam, exi, est
> aequo tenuere errore. Quoque est sileam flexum armis secum facto pectore
> vulnus, profugi ex pater. Quem restat montis Aeacide habentem virorum labor
> ingenium nostri Sol plena!
Nec concidit agricolis ferre, praesignis mortis. Ut curis Alcides. Deus nec:
venturi somno fluidos tibi prius vi multa spectat liquidis.
Obsceno decrescunt, superest *nisi* vultumque fidemque tantaque libratum adice!
Exsiluit inmanibus quem. Salutem in ferro dicere amittere. Voti luce et
adamanteis motis ille quercus misit Dignane monimenta protervis.
Verba maternae, brevissima, sua per ore sua fecerat ante aliquid probat abdita
ferit inque scitis; tenet. Irae gladiis dolor plus et addit aera cornua ferrum
praebentem misit. Alta regno sine mutare tribuitque cum. Egeriae et per verborum
coeunt non est tendentem moenia nec onerosior ne graves possent sanguine
totaque.
# a
Lorem markdownum sunto date nexus, miremur. Salutent loquendi dulcedine manibus
vix dixit pariter, se non lacerta de quantum vacuae carmen o quondam.
- Setius at me eosdem moverat umectat reliquit
- Et voces e ego iactatis odit ferarum
- Gaudet aut
- Vite genitore sub
Est es videt sedes. Undas vulgus, *meus*. [Merito
quid](http://me-mea.io/animosest), iuvit, stipite, eiusdem herbis tempora nempe
voverat Parthaone. Obortae ardent. Illi quas!
# 0
Omni suaque deum, nostro precantem mihi sanguine dies Helles et onus in vellent
spectante. Phoebi moveo flagrans at fumant [nunc quod
moenia](http://est-quae.io/et) corpus hamatisque? Coniuge arbor orbe carens
nulla et adlevat, Antandro animasse.
if (-1) {
of.slashdot_client_card += website;
searchInterface -= propertyBar.bsod(word_font(82,
stationEncryptionImpression, active_ppp), printerInterface -
bandwidthAutoresponder, 42);
asp(atmIo * ultraModule, -5 / pci, tag_boot);
} else {
end_server_jumper.click_box_file = expression;
}
lcd.menu_mpeg_drive(wormMinicomputer(-1, opticalDvdIvr, file_null) +
gpu.stationXRegular(vistaIrqCopy, compression, 1),
retinaFlatCaptcha, sli_case);
switch_gnutella_hardening = boot_xml(lossy_association_pci.camera(
code_expansion, ocr_kilohertz_tablet + dragDefragment, dacBmp(
install)));
if (dvr(gif(data_bar, 5), sramAdslRegular, installLedIpv(drive_icmp_outbox,
rom)) >= 1 + cifs_up) {
workstation_basic = username - username_wins_sampling;
}
# 1
Calydon et eadem at date videre et cum **tuli sic culmine**, tormento inpiger.
Ignes acta sua sapienter canendo se habuit et tardata Phoebus. Nam factum busta
videres partim, his non abruptaque tortilis, cantu aquas cruores turbam vulnere
nec vultus est et. Pittheia feminea saevoque te siccis mota Thesea palmas.
1. Abdita nervos inmunis corpore
2. Viae Phoebo duc meri vulnere quam
3. Natura quae facto hastae lupi monstri
4. Quicquid quater virgas
5. Amor timore
# what
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
# what?
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
# what!
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
$<toc{"containerId":"footer-toc","listType":"ul","level":2}>
</script>
<script>
var uslugify = function(s) {
return window.uslug(s);
}
var md = window.markdownit();
md.use(window.markdownItAnchor, { permalink: true, permalinkBefore: true, permalinkSymbol: '§', slugify: uslugify/*, level: 2*/ })
.use(window.markdownItTocDoneRight, { slugify: uslugify/*, level: 2*/ });
document.body.innerHTML = md.render( document.getElementById("md").innerHTML );
</script>
</body>
</html>
================================================
FILE: types/index.d.ts
================================================
declare module 'markdown-it-toc-done-right' {
import { PluginWithOptions } from 'markdown-it';
export interface TocOptions {
placeholder: string
slugify: (s: string) => string
uniqueSlugStartIndex: number
containerClass: string
containerId: string
listClass: string
itemClass: string
linkClass: string
level: number | number[]
listType: 'ol' | 'ul'
format: (s: string) => string
callback: (tocCode: string, ast: TocAst) => void
}
export interface TocAst {
l: number
n: string
c: TocAst[]
}
const markdownItTocDoneRight: PluginWithOptions<Partial<TocOptions>>
export default markdownItTocDoneRight
}
================================================
FILE: uslug.js
================================================
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.uslug=t()}}(function(){var t;return function t(e,r,n){function i(u,s){if(!r[u]){if(!e[u]){var f="function"==typeof require&&require;if(!s&&f)return f(u,!0);if(o)return o(u,!0);var a=new Error("Cannot find module '"+u+"'");throw a.code="MODULE_NOT_FOUND",a}var h=r[u]={exports:{}};e[u][0].call(h.exports,function(t){var r=e[u][1][t];return i(r?r:t)},h,h.exports,t,e,r,n)}return r[u].exports}for(var o="function"==typeof require&&require,u=0;u<n.length;u++)i(n[u]);return i}({1:[function(t,e,r){e.exports=t("./lib/uslug")},{"./lib/uslug":6}],2:[function(t,e,r){r.L=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,170,181,186,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,710,711,712,713,714,715,716,717,718,719,720,721,736,737,738,739,740,748,750,880,881,882,883,884,886,887,890,891,892,893,895,902,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1e3,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1369,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1749,1765,1766,1774,1775,1786,1787,1788,1791,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2365,2384,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2437,2438,2439,2440,2441,2442,2443,2444,2447,2448,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2474,2475,2476,2477,2478,2479,2480,2482,2486,2487,2488,2489,2493,2510,2524,2525,2527,2528,2529,2544,2545,2565,2566,2567,2568,2569,2570,2575,2576,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2602,2603,2604,2605,2606,2607,2608,2610,2611,2613,2614,2616,2617,2649,2650,2651,2652,2654,2674,2675,2676,2693,2694,2695,2696,2697,2698,2699,2700,2701,2703,2704,2705,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2730,2731,2732,2733,2734,2735,2736,2738,2739,2741,2742,2743,2744,2745,2749,2768,2784,2785,2809,2821,2822,2823,2824,2825,2826,2827,2828,2831,2832,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2858,2859,2860,2861,2862,2863,2864,2866,2867,2869,2870,2871,2872,2873,2877,2908,2909,2911,2912,2913,2929,2947,2949,2950,2951,2952,2953,2954,2958,2959,2960,2962,2963,2964,2965,2969,2970,2972,2974,2975,2979,2980,2984,2985,2986,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3e3,3001,3024,3077,3078,3079,3080,3081,3082,3083,3084,3086,3087,3088,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3133,3160,3161,3162,3168,3169,3205,3206,3207,3208,3209,3210,3211,3212,3214,3215,3216,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3253,3254,3255,3256,3257,3261,3294,3296,3297,3313,3314,3333,3334,3335,3336,3337,3338,3339,3340,3342,3343,3344,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3389,3406,3423,3424,3425,3450,3451,3452,3453,3454,3455,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3507,3508,3509,3510,3511,3512,3513,3514,3515,3517,3520,3521,3522,3523,3524,3525,3526,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3634,3635,3648,3649,3650,3651,3652,3653,3654,3713,3714,3716,3719,3720,3722,3725,3732,3733,3734,3735,3737,3738,3739,3740,3741,3742,3743,3745,3746,3747,3749,3751,3754,3755,3757,3758,3759,3760,3762,3763,3773,3776,3777,3778,3779,3780,3782,3804,3805,3806,3807,3840,3904,3905,3906,3907,3908,3909,3910,3911,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3976,3977,3978,3979,3980,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4159,4176,4177,4178,4179,4180,4181,4186,4187,4188,4189,4193,4197,4198,4206,4207,4208,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4238,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4295,4301,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4682,4683,4684,4685,4688,4689,4690,4691,4692,4693,4694,4696,4698,4699,4700,4701,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4746,4747,4748,4749,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4786,4787,4788,4789,4792,4793,4794,4795,4796,4797,4798,4800,4802,4803,4804,4805,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4882,4883,4884,4885,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4992,4993,4994,4995,4996,4997,4998,4999,5e3,5001,5002,5003,5004,5005,5006,5007,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5112,5113,5114,5115,5116,5117,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,5150,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600,5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5743,5744,5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5792,5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5873,5874,5875,5876,5877,5878,5879,5880,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5902,5903,5904,5905,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5998,5999,6e3,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6103,6108,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,6300,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6314,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6480,6481,6482,6483,6484,6485,6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,6500,6501,6502,6503,6504,6505,6506,6507,6508,6509,6512,6513,6514,6515,6516,6528,6529,6530,6531,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,6600,6601,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6823,6917,6918,6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,6950,6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6981,6982,6983,6984,6985,6986,6987,7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7086,7087,7098,7099,7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,7200,7201,7202,7203,7245,7246,7247,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7401,7402,7403,7404,7406,7407,7408,7409,7413,7414,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503,7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,7550,7551,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7680,7681,7682,7683,7684,7685,7686,7687,7688,7689,7690,7691,7692,7693,7694,7695,7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706,7707,7708,7709,7710,7711,7712,7713,7714,7715,7716,7717,7718,7719,7720,7721,7722,7723,7724,7725,7726,7727,7728,7729,7730,7731,7732,7733,7734,7735,7736,7737,7738,7739,7740,7741,7742,7743,7744,7745,7746,7747,7748,7749,7750,7751,7752,7753,7754,7755,7756,7757,7758,7759,7760,7761,7762,7763,7764,7765,7766,7767,7768,7769,7770,7771,7772,7773,7774,7775,7776,7777,7778,7779,7780,7781,7782,7783,7784,7785,7786,7787,7788,7789,7790,7791,7792,7793,7794,7795,7796,7797,7798,7799,7800,7801,7802,7803,7804,7805,7806,7807,7808,7809,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824,7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840,7841,7842,7843,7844,7845,7846,7847,7848,7849,7850,7851,7852,7853,7854,7855,7856,7857,7858,7859,7860,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870,7871,7872,7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886,7887,7888,7889,7890,7891,7892,7893,7894,7895,7896,7897,7898,7899,7900,7901,7902,7903,7904,7905,7906,7907,7908,7909,7910,7911,7912,7913,7914,7915,7916,7917,7918,7919,7920,7921,7922,7923,7924,7925,7926,7927,7928,7929,7930,7931,7932,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943,7944,7945,7946,7947,7948,7949,7950,7951,7952,7953,7954,7955,7956,7957,7960,7961,7962,7963,7964,7965,7968,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7981,7982,7983,7984,7985,7986,7987,7988,7989,7990,7991,7992,7993,7994,7995,7996,7997,7998,7999,8e3,8001,8002,8003,8004,8005,8008,8009,8010,8011,8012,8013,8016,8017,8018,8019,8020,8021,8022,8023,8025,8027,8029,8031,8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047,8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8112,8113,8114,8115,8116,8118,8119,8120,8121,8122,8123,8124,8126,8130,8131,8132,8134,8135,8136,8137,8138,8139,8140,8144,8145,8146,8147,8150,8151,8152,8153,8154,8155,8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8170,8171,8172,8178,8179,8180,8182,8183,8184,8185,8186,8187,8188,8305,8319,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8450,8455,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8469,8473,8474,8475,8476,8477,8484,8486,8488,8490,8491,8492,8493,8495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8508,8509,8510,8511,8517,8518,8519,8520,8521,8526,8579,8580,11264,11265,11266,11267,11268,11269,11270,11271,11272,11273,11274,11275,11276,11277,11278,11279,11280,11281,11282,11283,11284,11285,11286,11287,11288,11289,11290,11291,11292,11293,11294,11295,11296,11297,11298,11299,11300,11301,11302,11303,11304,11305,11306,11307,11308,11309,11310,11312,11313,11314,11315,11316,11317,11318,11319,11320,11321,11322,11323,11324,11325,11326,11327,11328,11329,11330,11331,11332,11333,11334,11335,11336,11337,11338,11339,11340,11341,11342,11343,11344,11345,11346,11347,11348,11349,11350,11351,11352,11353,11354,11355,11356,11357,11358,11360,11361,11362,11363,11364,11365,11366,11367,11368,11369,11370,11371,11372,11373,11374,11375,11376,11377,11378,11379,11380,11381,11382,11383,11384,11385,11386,11387,11388,11389,11390,11391,11392,11393,11394,11395,11396,11397,11398,11399,11400,11401,11402,11403,11404,11405,11406,11407,11408,11409,11410,11411,11412,11413,11414,11415,11416,11417,11418,11419,11420,11421,11422,11423,11424,11425,11426,11427,11428,11429,11430,11431,11432,11433,11434,11435,11436,11437,11438,11439,11440,11441,11442,11443,11444,11445,11446,11447,11448,11449,11450,11451,11452,11453,11454,11455,11456,11457,11458,11459,11460,11461,11462,11463,11464,11465,11466,11467,11468,11469,11470,11471,11472,11473,11474,11475,11476,11477,11478,11479,11480,11481,11482,11483,11484,11485,11486,11487,11488,11489,11490,11491,11492,11499,11500,11501,11502,11506,11507,11520,11521,11522,11523,11524,11525,11526,11527,11528,11529,11530,11531,11532,11533,11534,11535,11536,11537,11538,11539,11540,11541,11542,11543,11544,11545,11546,11547,11548,11549,11550,11551,11552,11553,11554,11555,11556,11557,11559,11565,11568,11569,11570,11571,11572,11573,11574,11575,11576,11577,11578,11579,11580,11581,11582,11583,11584,11585,11586,11587,11588,11589,11590,11591,11592,11593,11594,11595,11596,11597,11598,11599,11600,11601,11602,11603,11604,11605,11606,11607,11608,11609,11610,11611,11612,11613,11614,11615,11616,11617,11618,11619,11620,11621,11622,11623,11631,11648,11649,11650,11651,11652,11653,11654,11655,11656,11657,11658,11659,11660,11661,11662,11663,11664,11665,11666,11667,11668,11669,11670,11680,11681,11682,11683,11684,11685,11686,11688,11689,11690,11691,11692,11693,11694,11696,11697,11698,11699,11700,11701,11702,11704,11705,11706,11707,11708,11709,11710,11712,11713,11714,11715,11716,11717,11718,11720,11721,11722,11723,11724,11725,11726,11728,11729,11730,11731,11732,11733,11734,11736,11737,11738,11739,11740,11741,11742,11823,12293,12294,12337,12338,12339,12340,12341,12347,12348,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,12436,12437,12438,12445,12446,12447,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,12535,12536,12537,12538,12540,12541,12542,12543,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,12586,12587,12588,12589,12593,12594,12595,12596,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12615,12616,12617,12618,12619,12620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12646,12647,12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12658,12659,12660,12661,12662,12663,12664,12665,12666,12667,12668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679,12680,12681,12682,12683,12684,12685,12686,12704,12705,12706,12707,12708,12709,12710,12711,12712,12713,12714,12715,12716,12717,12718,12719,12720,12721,12722,12723,12724,12725,12726,12727,12728,12729,12730,12784,12785,12786,12787,12788,12789,12790,12791,12792,12793,12794,12795,12796,12797,12798,12799,13312,19893,19968,40917,40960,40961,40962,40963,40964,40965,40966,40967,40968,40969,40970,40971,40972,40973,40974,40975,40976,40977,40978,40979,40980,40981,40982,40983,40984,40985,40986,40987,40988,40989,40990,40991,40992,40993,40994,40995,40996,40997,40998,40999,41e3,41001,41002,41003,41004,41005,41006,41007,41008,41009,41010,41011,41012,41013,41014,41015,41016,41017,41018,41019,41020,41021,41022,41023,41024,41025,41026,41027,41028,41029,41030,41031,41032,41033,41034,41035,41036,41037,41038,41039,41040,41041,41042,41043,41044,41045,41046,41047,41048,41049,41050,41051,41052,41053,41054,41055,41056,41057,41058,41059,41060,41061,41062,41063,41064,41065,41066,41067,41068,41069,41070,41071,41072,41073,41074,41075,41076,41077,41078,41079,41080,41081,41082,41083,41084,41085,41086,41087,41088,41089,41090,41091,41092,41093,41094,41095,41096,41097,41098,41099,41100,41101,41102,41103,41104,41105,41106,41107,41108,41109,41110,41111,41112,41113,41114,41115,41116,41117,41118,41119,41120,41121,41122,41123,41124,41125,41126,41127,41128,41129,41130,41131,41132,41133,41134,41135,41136,41137,41138,41139,41140,41141,41142,41143,41144,41145,41146,41147,41148,41149,41150,41151,41152,41153,41154,41155,41156,41157,41158,41159,41160,41161,41162,41163,41164,41165,41166,41167,41168,41169,41170,41171,41172,41173,41174,41175,41176,41177,41178,41179,41180,41181,41182,41183,41184,41185,41186,41187,41188,41189,41190,41191,41192,41193,41194,41195,41196,41197,41198,41199,41200,41201,41202,41203,41204,41205,41206,41207,41208,41209,41210,41211,41212,41213,41214,41215,41216,41217,41218,41219,41220,41221,41222,41223,41224,41225,41226,41227,41228,41229,41230,41231,41232,41233,41234,41235,41236,41237,41238,41239,41240,41241,41242,41243,41244,41245,41246,41247,41248,41249,41250,41251,41252,41253,41254,41255,41256,41257,41258,41259,41260,41261,41262,41263,41264,41265,41266,41267,41268,41269,41270,41271,41272,41273,41274,41275,41276,41277,41278,41279,41280,41281,41282,41283,41284,41285,41286,41287,41288,41289,41290,41291,41292,41293,41294,41295,41296,41297,41298,41299,41300,41301,41302,41303,41304,41305,41306,41307,41308,41309,41310,41311,41312,41313,41314,41315,41316,41317,41318,41319,41320,41321,41322,41323,41324,41325,41326,41327,41328,41329,41330,41331,41332,41333,41334,41335,41336,41337,41338,41339,41340,41341,41342,41343,41344,41345,41346,41347,41348,41349,41350,41351,41352,41353,41354,41355,41356,41357,41358,41359,41360,41361,41362,41363,41364,41365,41366,41367,41368,41369,41370,41371,41372,41373,41374,41375,41376,41377,41378,41379,41380,41381,41382,41383,41384,41385,41386,41387,41388,41389,41390,41391,41392,41393,41394,41395,41396,41397,41398,41399,41400,41401,41402,41403,41404,41405,41406,41407,41408,41409,41410,41411,41412,41413,41414,41415,41416,41417,41418,41419,41420,41421,41422,41423,41424,41425,41426,41427,41428,41429,41430,41431,41432,41433,41434,41435,41436,41437,41438,41439,41440,41441,41442,41443,41444,41445,41446,41447,41448,41449,41450,41451,41452,41453,41454,41455,41456,41457,41458,41459,41460,41461,41462,41463,41464,41465,41466,41467,41468,41469,41470,41471,41472,41473,41474,41475,41476,41477,41478,41479,41480,41481,41482,41483,41484,41485,41486,41487,41488,41489,41490,41491,41492,41493,41494,41495,41496,41497,41498,41499,41500,41501,41502,41503,41504,41505,41506,41507,41508,41509,41510,41511,41512,41513,41514,41515,41516,41517,41518,41519,41520,41521,41522,41523,41524,41525,41526,41527,41528,41529,41530,41531,41532,41533,41534,41535,41536,41537,41538,41539,41540,41541,41542,41543,41544,41545,41546,41547,41548,41549,41550,41551,41552,41553,41554,41555,41556,41557,41558,41559,41560,41561,41562,41563,41564,41565,41566,41567,41568,41569,41570,41571,41572,41573,41574,41575,41576,41577,41578,41579,41580,41581,41582,41583,41584,41585,41586,41587,41588,41589,41590,41591,41592,41593,41594,41595,41596,41597,41598,41599,41600,41601,41602,41603,41604,41605,41606,41607,41608,41609,41610,41611,41612,41613,41614,41615,41616,41617,41618,41619,41620,41621,41622,41623,41624,41625,41626,41627,41628,41629,41630,41631,41632,41633,41634,41635,41636,41637,41638,41639,41640,41641,41642,41643,41644,41645,41646,41647,41648,41649,41650,41651,41652,41653,41654,41655,41656,41657,41658,41659,41660,41661,41662,41663,41664,41665,41666,41667,41668,41669,41670,41671,41672,41673,41674,41675,41676,41677,41678,41679,41680,41681,41682,41683,41684,41685,41686,41687,41688,41689,41690,41691,41692,41693,41694,41695,41696,41697,41698,41699,41700,41701,41702,41703,41704,41705,41706,41707,41708,41709,41710,41711,41712,41713,41714,41715,41716,41717,41718,41719,41720,41721,41722,41723,41724,41725,41726,41727,41728,41729,41730,41731,41732,41733,41734,41735,41736,41737,41738,41739,41740,41741,41742,41743,41744,41745,41746,41747,41748,41749,41750,41751,41752,41753,41754,41755,41756,41757,41758,41759,41760,41761,41762,41763,41764,41765,41766,41767,41768,41769,41770,41771,41772,41773,41774,41775,41776,41777,41778,41779,41780,41781,41782,41783,41784,41785,41786,41787,41788,41789,41790,41791,41792,41793,41794,41795,41796,41797,41798,41799,41800,41801,41802,41803,41804,41805,41806,41807,41808,41809,41810,41811,41812,41813,41814,41815,41816,41817,41818,41819,41820,41821,41822,41823,41824,41825,41826,41827,41828,41829,41830,41831,41832,41833,41834,41835,41836,41837,41838,41839,41840,41841,41842,41843,41844,41845,41846,41847,41848,41849,41850,41851,41852,41853,41854,41855,41856,41857,41858,41859,41860,41861,41862,41863,41864,41865,41866,41867,41868,41869,41870,41871,41872,41873,41874,41875,41876,41877,41878,41879,41880,41881,41882,41883,41884,41885,41886,41887,41888,41889,41890,41891,41892,41893,41894,41895,41896,41897,41898,41899,41900,41901,41902,41903,41904,41905,41906,41907,41908,41909,41910,41911,41912,41913,41914,41915,41916,41917,41918,41919,41920,41921,41922,41923,41924,41925,41926,41927,41928,41929,41930,41931,41932,41933,41934,41935,41936,41937,41938,41939,41940,41941,41942,41943,41944,41945,41946,41947,41948,41949,41950,41951,41952,41953,41954,41955,41956,41957,41958,41959,41960,41961,41962,41963,41964,41965,41966,41967,41968,41969,41970,41971,41972,41973,41974,41975,41976,41977,41978,41979,41980,41981,41982,41983,41984,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,41997,41998,41999,42e3,42001,42002,42003,42004,42005,42006,42007,42008,42009,42010,42011,42012,42013,42014,42015,42016,42017,42018,42019,42020,42021,42022,42023,42024,42025,42026,42027,42028,42029,42030,42031,42032,42033,42034,42035,42036,42037,42038,42039,42040,42041,42042,42043,42044,42045,42046,42047,42048,42049,42050,42051,42052,42053,42054,42055,42056,42057,42058,42059,42060,42061,42062,42063,42064,42065,42066,42067,42068,42069,42070,42071,42072,42073,42074,42075,42076,42077,42078,42079,42080,42081,42082,42083,42084,42085,42086,42087,42088,42089,42090,42091,42092,42093,42094,42095,42096,42097,42098,42099,42100,42101,42102,42103,42104,42105,42106,42107,42108,42109,42110,42111,42112,42113,42114,42115,42116,42117,42118,42119,42120,42121,42122,42123,42124,42192,42193,42194,42195,42196,42197,42198,42199,42200,42201,42202,42203,42204,42205,42206,42207,42208,42209,42210,42211,42212,42213,42214,42215,42216,42217,42218,42219,42220,42221,42222,42223,42224,42225,42226,42227,42228,42229,42230,42231,42232,42233,42234,42235,42236,42237,42240,42241,42242,42243,42244,42245,42246,42247,42248,42249,42250,42251,42252,42253,42254,42255,42256,42257,42258,42259,42260,42261,42262,42263,42264,42265,42266,42267,42268,42269,42270,42271,42272,42273,42274,42275,42276,42277,42278,42279,42280,42281,42282,42283,42284,42285,42286,42287,42288,42289,42290,42291,42292,42293,42294,42295,42296,42297,42298,42299,42300,42301,42302,42303,42304,42305,42306,42307,42308,42309,42310,42311,42312,42313,42314,42315,42316,42317,42318,42319,42320,42321,42322,42323,42324,42325,42326,42327,42328,42329,42330,42331,42332,42333,42334,42335,42336,42337,42338,42339,42340,42341,42342,42343,42344,42345,42346,42347,42348,42349,42350,42351,42352,42353,42354,42355,42356,42357,42358,42359,42360,42361,42362,42363,42364,42365,42366,42367,42368,42369,42370,42371,42372,42373,42374,42375,42376,42377,42378,42379,42380,42381,42382,42383,42384,42385,42386,42387,42388,42389,42390,42391,42392,42393,42394,42395,42396,42397,42398,42399,42400,42401,42402,42403,42404,42405,42406,42407,42408,42409,42410,42411,42412,42413,42414,42415,42416,42417,42418,42419,42420,42421,42422,42423,42424,42425,42426,42427,42428,42429,42430,42431,42432,42433,42434,42435,42436,42437,42438,42439,42440,42441,42442,42443,42444,42445,42446,42447,42448,42449,42450,42451,42452,42453,42454,42455,42456,42457,42458,42459,42460,42461,42462,42463,42464,42465,42466,42467,42468,42469,42470,42471,42472,42473,42474,42475,42476,42477,42478,42479,42480,42481,42482,42483,42484,42485,42486,42487,42488,42489,42490,42491,42492,42493,42494,42495,42496,42497,42498,42499,42500,42501,42502,42503,42504,42505,42506,42507,42508,42512,42513,42514,42515,42516,42517,42518,42519,42520,42521,42522,42523,42524,42525,42526,42527,42538,42539,42560,42561,42562,42563,42564,42565,42566,42567,42568,42569,42570,42571,42572,42573,42574,42575,42576,42577,42578,42579,42580,42581,42582,42583,42584,42585,42586,42587,42588,42589,42590,42591,42592,42593,42594,42595,42596,42597,42598,42599,42600,42601,42602,42603,42604,42605,42606,42623,42624,42625,42626,42627,42628,42629,42630,42631,42632,42633,42634,42635,42636,42637,42638,42639,42640,42641,42642,42643,42644,42645,42646,42647,42648,42649,42650,42651,42652,42653,42656,42657,42658,42659,42660,42661,42662,42663,42664,42665,42666,42667,42668,42669,42670,42671,42672,42673,42674,42675,42676,42677,42678,42679,42680,42681,42682,42683,42684,42685,42686,42687,42688,42689,42690,42691,42692,42693,42694,42695,42696,42697,42698,42699,42700,42701,42702,42703,42704,42705,42706,42707,42708,42709,42710,42711,42712,42713,42714,42715,42716,42717,42718,42719,42720,42721,42722,42723,42724,42725,42775,42776,42777,42778,42779,42780,42781,42782,42783,42786,42787,42788,42789,42790,42791,42792,42793,42794,42795,42796,42797,42798,42799,42800,42801,42802,42803,42804,42805,42806,42807,42808,42809,42810,42811,42812,42813,42814,42815,42816,42817,42818,42819,42820,42821,42822,42823,42824,42825,42826,42827,42828,42829,42830,42831,42832,42833,42834,42835,42836,42837,42838,42839,42840,42841,42842,42843,42844,42845,42846,42847,42848,42849,42850,42851,42852,42853,42854,42855,42856,42857,42858,42859,42860,42861,42862,42863,42864,42865,42866,42867,42868,42869,42870,42871,42872,42873,42874,42875,42876,42877,42878,42879,42880,42881,42882,42883,42884,42885,42886,42887,42888,42891,42892,42893,42894,42895,42896,42897,42898,42899,42900,42901,42902,42903,42904,42905,42906,42907,42908,42909,42910,42911,42912,42913,42914,42915,42916,42917,42918,42919,42920,42921,42922,42923,42924,42925,42928,42929,42930,42931,42932,42933,42934,42935,42999,43e3,43001,43002,43003,43004,43005,43006,43007,43008,43009,43011,43012,43013,43015,43016,43017,43018,43020,43021,43022,43023,43024,43025,43026,43027,43028,43029,43030,43031,43032,43033,43034,43035,43036,43037,43038,43039,43040,43041,43042,43072,43073,43074,43075,43076,43077,43078,43079,43080,43081,43082,43083,43084,43085,43086,43087,43088,43089,43090,43091,43092,43093,43094,43095,43096,43097,43098,43099,43100,43101,43102,43103,43104,43105,43106,43107,43108,43109,43110,43111,43112,43113,43114,43115,43116,43117,43118,43119,43120,43121,43122,43123,43138,43139,43140,43141,43142,43143,43144,43145,43146,43147,43148,43149,43150,43151,43152,43153,43154,43155,43156,43157,43158,43159,43160,43161,43162,43163,43164,43165,43166,43167,43168,43169,43170,43171,43172,43173,43174,43175,43176,43177,43178,43179,43180,43181,43182,43183,43184,43185,43186,43187,43250,43251,43252,43253,43254,43255,43259,43261,43274,43275,43276,43277,43278,43279,43280,43281,43282,43283,43284,43285,43286,43287,43288,43289,43290,43291,43292,43293,43294,43295,43296,43297,43298,43299,43300,43301,43312,43313,43314,43315,43316,43317,43318,43319,43320,43321,43322,43323,43324,43325,43326,43327,43328,43329,43330,43331,43332,43333,43334,43360,43361,43362,43363,43364,43365,43366,43367,43368,43369,43370,43371,43372,43373,43374,43375,43376,43377,43378,43379,43380,43381,43382,43383,43384,43385,43386,43387,43388,43396,43397,43398,43399,43400,43401,43402,43403,43404,43405,43406,43407,43408,43409,43410,43411,43412,43413,43414,43415,43416,43417,43418,43419,43420,43421,43422,43423,43424,43425,43426,43427,43428,43429,43430,43431,43432,43433,43434,43435,43436,43437,43438,43439,43440,43441,43442,43471,43488,43489,43490,43491,43492,43494,43495,43496,43497,43498,43499,43500,43501,43502,43503,43514,43515,43516,43517,43518,43520,43521,43522,43523,43524,43525,43526,43527,43528,43529,43530,43531,43532,43533,43534,43535,43536,43537,43538,43539,43540,43541,43542,43543,43544,43545,43546,43547,43548,43549,43550,43551,43552,43553,43554,43555,43556,43557,43558,43559,43560,43584,43585,43586,43588,43589,43590,43591,43592,43593,43594,43595,43616,43617,43618,43619,43620,43621,43622,43623,43624,43625,43626,43627,43628,43629,43630,43631,43632,43633,43634,43635,43636,43637,43638,43642,43646,43647,43648,43649,43650,43651,43652,43653,43654,43655,43656,43657,43658,43659,43660,43661,43662,43663,43664,43665,43666,43667,43668,43669,43670,43671,43672,43673,43674,43675,43676,43677,43678,43679,43680,43681,43682,43683,43684,43685,43686,43687,43688,43689,43690,43691,43692,43693,43694,43695,43697,43701,43702,43705,43706,43707,43708,43709,43712,43714,43739,43740,43741,43744,43745,43746,43747,43748,43749,43750,43751,43752,43753,43754,43762,43763,43764,43777,43778,43779,43780,43781,43782,43785,43786,43787,43788,43789,43790,43793,43794,43795,43796,43797,43798,43808,43809,43810,43811,43812,43813,43814,43816,43817,43818,43819,43820,43821,43822,43824,43825,43826,43827,43828,43829,43830,43831,43832,43833,43834,43835,43836,43837,43838,43839,43840,43841,43842,43843,43844,43845,43846,43847,43848,43849,43850,43851,43852,43853,43854,43855,43856,43857,43858,43859,43860,43861,43862,43863,43864,43865,43866,43868,43869,43870,43871,43872,43873,43874,43875,43876,43877,43888,43889,43890,43891,43892,43893,43894,43895,43896,43897,43898,43899,43900,43901,43902,43903,43904,43905,43906,43907,43908,43909,43910,43911,43912,43913,43914,43915,43916,43917,43918,43919,43920,43921,43922,43923,43924,43925,43926,43927,43928,43929,43930,43931,43932,43933,43934,43935,43936,43937,43938,43939,43940,43941,43942,43943,43944,43945,43946,43947,43948,43949,43950,43951,43952,43953,43954,43955,43956,43957,43958,43959,43960,43961,43962,43963,43964,43965,43966,43967,43968,43969,43970,43971,43972,43973,43974,43975,43976,43977,43978,43979,43980,43981,43982,43983,43984,43985,43986,43987,43988,43989,43990,43991,43992,43993,43994,43995,43996,43997,43998,43999,44e3,44001,44002,44032,55203,55216,55217,55218,55219,55220,55221,55222,55223,55224,55225,55226,55227,55228,55229,55230,55231,55232,55233,55234,55235,55236,55237,55238,55243,55244,55245,55246,55247,55248,55249,55250,55251,55252,55253,55254,55255,55256,55257,55258,55259,55260,55261,55262,55263,55264,55265,55266,55267,55268,55269,55270,55271,55272,55273,55274,55275,55276,55277,55278,55279,55280,55281,55282,55283,55284,55285,55286,55287,55288,55289,55290,55291,63744,63745,63746,63747,63748,63749,63750,63751,63752,63753,63754,63755,63756,63757,63758,63759,63760,63761,63762,63763,63764,63765,63766,63767,63768,63769,63770,63771,63772,63773,63774,63775,63776,63777,63778,63779,63780,63781,63782,63783,63784,63785,63786,63787,63788,63789,63790,63791,63792,63793,63794,63795,63796,63797,63798,63799,63800,63801,63802,63803,63804,63805,63806,63807,63808,63809,63810,63811,63812,63813,63814,63815,63816,63817,63818,63819,63820,63821,63822,63823,63824,63825,63826,63827,63828,63829,63830,63831,63832,63833,63834,63835,63836,63837,63838,63839,63840,63841,63842,63843,63844,63845,63846,63847,63848,63849,63850,63851,63852,63853,63854,63855,63856,63857,63858,63859,63860,63861,63862,63863,63864,63865,63866,63867,63868,63869,63870,63871,63872,63873,63874,63875,63876,63877,63878,63879,63880,63881,63882,63883,63884,63885,63886,63887,63888,63889,63890,63891,63892,63893,63894,63895,63896,63897,63898,63899,63900,63901,63902,63903,63904,63905,63906,63907,63908,63909,63910,63911,63912,63913,63914,63915,63916,63917,63918,63919,63920,63921,63922,63923,63924,63925,63926,63927,63928,63929,63930,63931,63932,63933,63934,63935,63936,63937,63938,63939,63940,63941,63942,63943,63944,63945,63946,63947,63948,63949,63950,63951,63952,63953,63954,63955,63956,63957,63958,63959,63960,63961,63962,63963,63964,63965,63966,63967,63968,63969,63970,63971,63972,63973,63974,63975,63976,63977,63978,63979,63980,63981,63982,63983,63984,63985,63986,63987,63988,63989,63990,63991,63992,63993,63994,63995,63996,63997,63998,63999,64e3,64001,64002,64003,64004,64005,64006,64007,64008,64009,64010,64011,64012,64013,64014,64015,64016,64017,64018,64019,64020,64021,64022,64023,64024,64025,64026,64027,64028,64029,64030,64031,64032,64033,64034,64035,64036,64037,64038,64039,64040,64041,64042,64043,64044,64045,64046,64047,64048,64049,64050,64051,64052,64053,64054,64055,64056,64057,64058,64059,64060,64061,64062,64063,64064,64065,64066,64067,64068,64069,64070,64071,64072,64073,64074,64075,64076,64077,64078,64079,64080,64081,64082,64083,64084,64085,64086,64087,64088,64089,64090,64091,64092,64093,64094,64095,64096,64097,64098,64099,64100,64101,64102,64103,64104,64105,64106,64107,64108,64109,64112,64113,64114,64115,64116,64117,64118,64119,64120,64121,64122,64123,64124,64125,64126,64127,64128,64129,64130,64131,64132,64133,64134,64135,64136,64137,64138,64139,64140,64141,64142,64143,64144,64145,64146,64147,64148,64149,64150,64151,64152,64153,64154,64155,64156,64157,64158,64159,64160,64161,64162,64163,64164,64165,64166,64167,64168,64169,64170,64171,64172,64173,64174,64175,64176,64177,64178,64179,64180,64181,64182,64183,64184,64185,64186,64187,64188,64189,64190,64191,64192,64193,64194,64195,64196,64197,64198,64199,64200,64201,64202,64203,64204,64205,64206,64207,64208,64209,64210,64211,64212,64213,64214,64215,64216,64217,64256,64257,64258,64259,64260,64261,64262,64275,64276,64277,64278,64279,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65382,65383,65384,65385,65386,65387,65388,65389,65390,65391,65392,65393,65394,65395,65396,65397,65398,65399,65400,65401,65402,65403,65404,65405,65406,65407,65408,65409,65410,65411,65412,65413,65414,65415,65416,65417,65418,65419,65420,65421,65422,65423,65424,65425,65426,65427,65428,65429,65430,65431,65432,65433,65434,65435,65436,65437,65438,65439,65440,65441,65442,65443,65444,65445,65446,65447,65448,65449,65450,65451,65452,65453,65454,65455,65456,65457,65458,65459,65460,65461,65462,65463,65464,65465,65466,65467,65468,65469,65470,65474,65475,65476,65477,65478,65479,65482,65483,65484,65485,65486,65487,65490,65491,65492,65493,65494,65495,65498,65499,65500,65536,65537,65538,65539,65540,65541,65542,65543,65544,65545,65546,65547,65549,65550,65551,65552,65553,65554,65555,65556,65557,65558,65559,65560,65561,65562,65563,65564,65565,65566,65567,65568,65569,65570,65571,65572,65573,65574,65576,65577,65578,65579,65580,65581,65582,65583,65584,65585,65586,65587,65588,65589,65590,65591,65592,65593,65594,65596,65597,65599,65600,65601,65602,65603,65604,65605,65606,65607,65608,65609,65610,65611,65612,65613,65616,65617,65618,65619,65620,65621,65622,65623,65624,65625,65626,65627,65628,65629,65664,65665,65666,65667,65668,65669,65670,65671,65672,65673,65674,65675,65676,65677,65678,65679,65680,65681,65682,65683,65684,65685,65686,65687,65688,65689,65690,65691,65692,65693,65694,65695,65696,65697,65698,65699,65700,65701,65702,65703,65704,65705,65706,65707,65708,65709,65710,65711,65712,65713,65714,65715,65716,65717,65718,65719,65720,65721,65722,65723,65724,65725,65726,65727,65728,65729,65730,65731,65732,65733,65734,65735,65736,65737,65738,65739,65740,65741,65742,65743,65744,65745,65746,65747,65748,65749,65750,65751,65752,65753,65754,65755,65756,65757,65758,65759,65760,65761,65762,65763,65764,65765,65766,65767,65768,65769,65770,65771,65772,65773,65774,65775,65776,65777,65778,65779,65780,65781,65782,65783,65784,65785,65786,66176,66177,66178,66179,66180,66181,66182,66183,66184,66185,66186,66187,66188,66189,66190,66191,66192,66193,66194,66195,66196,66197,66198,66199,66200,66201,66202,66203,66204,66208,66209,66210,66211,66212,66213,66214,66215,66216,66217,66218,66219,66220,66221,66222,66223,66224,66225,66226,66227,66228,66229,66230,66231,66232,66233,66234,66235,66236,66237,66238,66239,66240,66241,66242,66243,66244,66245,66246,66247,66248,66249,66250,66251,66252,66253,66254,66255,66256,66304,66305,66306,66307,66308,66309,66310,66311,66312,66313,66314,66315,66316,66317,66318,66319,66320,66321,66322,66323,66324,66325,66326,66327,66328,66329,66330,66331,66332,66333,66334,66335,66352,66353,66354,66355,66356,66357,66358,66359,66360,66361,66362,66363,66364,66365,66366,66367,66368,66370,66371,66372,66373,66374,66375,66376,66377,66384,66385,66386,66387,66388,66389,66390,66391,66392,66393,66394,66395,66396,66397,66398,66399,66400,66401,66402,66403,66404,66405,66406,66407,66408,66409,66410,66411,66412,66413,66414,66415,66416,66417,66418,66419,66420,66421,66432,66433,66434,66435,66436,66437,66438,66439,66440,66441,66442,66443,66444,66445,66446,66447,66448,66449,66450,66451,66452,66453,66454,66455,66456,66457,66458,66459,66460,66461,66464,66465,66466,66467,66468,66469,66470,66471,66472,66473,66474,66475,66476,66477,66478,66479,66480,66481,66482,66483,66484,66485,66486,66487,66488,66489,66490,66491,66492,66493,66494,66495,66496,66497,66498,66499,66504,66505,66506,66507,66508,66509,66510,66511,66560,66561,66562,66563,66564,66565,66566,66567,66568,66569,66570,66571,66572,66573,66574,66575,66576,66577,66578,66579,66580,66581,66582,66583,66584,66585,66586,66587,66588,66589,66590,66591,66592,66593,66594,66595,66596,66597,66598,66599,66600,66601,66602,66603,66604,66605,66606,66607,66608,66609,66610,66611,66612,66613,66614,66615,66616,66617,66618,66619,66620,66621,66622,66623,66624,66625,66626,66627,66628,66629,66630,66631,66632,66633,66634,66635,66636,66637,66638,66639,66640,66641,66642,66643,66644,66645,66646,66647,66648,66649,66650,66651,66652,66653,66654,66655,66656,66657,66658,66659,66660,66661,66662,66663,66664,66665,66666,66667,66668,66669,66670,66671,66672,66673,66674,66675,66676,66677,66678,66679,66680,66681,66682,66683,66684,66685,66686,66687,66688,66689,66690,66691,66692,66693,66694,66695,66696,66697,66698,66699,66700,66701,66702,66703,66704,66705,66706,66707,66708,66709,66710,66711,66712,66713,66714,66715,66716,66717,66816,66817,66818,66819,66820,66821,66822,66823,66824,66825,66826,66827,66828,66829,66830,66831,66832,66833,66834,66835,66836,66837,66838,66839,66840,66841,66842,66843,66844,66845,66846,66847,66848,66849,66850,66851,66852,66853,66854,66855,66864,66865,66866,66867,66868,66869,66870,66871,66872,66873,66874,66875,66876,66877,66878,66879,66880,66881,66882,66883,66884,66885,66886,66887,66888,66889,66890,66891,66892,66893,66894,66895,66896,66897,66898,66899,66900,66901,66902,66903,66904,66905,66906,66907,66908,66909,66910,66911,66912,66913,66914,66915,67072,67073,67074,67075,67076,67077,67078,67079,67080,67081,67082,67083,67084,67085,67086,67087,67088,67089,67090,67091,67092,67093,67094,67095,67096,67097,67098,67099,67100,67101,67102,67103,67104,67105,67106,67107,67108,67109,67110,67111,67112,67113,67114,67115,67116,67117,67118,67119,67120,67121,67122,67123,67124,67125,67126,67127,67128,67129,67130,67131,67132,67133,67134,67135,67136,67137,67138,67139,67140,67141,67142,67143,67144,67145,67146,67147,67148,67149,67150,67151,67152,67153,67154,67155,67156,67157,67158,67159,67160,67161,67162,67163,67164,67165,67166,67167,67168,67169,67170,67171,67172,67173,67174,67175,67176,67177,67178,67179,67180,67181,67182,67183,67184,67185,67186,67187,67188,67189,67190,67191,67192,67193,67194,67195,67196,67197,67198,67199,67200,67201,67202,67203,67204,67205,67206,67207,67208,67209,67210,67211,67212,67213,67214,67215,67216,67217,67218,67219,67220,67221,67222,67223,67224,67225,67226,67227,67228,67229,67230,67231,67232,67233,67234,67235,67236,67237,67238,67239,67240,67241,67242,67243,67244,67245,67246,67247,67248,67249,67250,67251,67252,67253,67254,67255,67256,67257,67258,67259,67260,67261,67262,67263,67264,67265,67266,67267,67268,67269,67270,67271,67272,67273,67274,67275,67276,67277,67278,67279,67280,67281,67282,67283,67284,67285,67286,67287,67288,67289,67290,67291,67292,67293,67294,67295,67296,67297,67298,67299,67300,67301,67302,67303,67304,67305,67306,67307,67308,67309,67310,67311,67312,67313,67314,67315,67316,67317,67318,67319,67320,67321,67322,67323,67324,67325,67326,67327,67328,67329,67330,67331,67332,67333,67334,67335,67336,67337,67338,67339,67340,67341,67342,67343,67344,67345,67346,67347,67348,67349,67350,67351,67352,67353,67354,67355,67356,67357,67358,67359,67360,67361,67362,67363,67364,67365,67366,67367,67368,67369,67370,67371,67372,67373,67374,67375,67376,67377,67378,67379,67380,67381,67382,67392,67393,67394,67395,67396,67397,67398,67399,67400,67401,67402,67403,67404,67405,67406,67407,67408,67409,67410,67411,67412,67413,67424,67425,67426,67427,67428,67429,67430,67431,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67680,67681,67682,67683,67684,67685,67686,67687,67688,67689,67690,67691,67692,67693,67694,67695,67696,67697,67698,67699,67700,67701,67702,67712,67713,67714,67715,67716,67717,67718,67719,67720,67721,67722,67723,67724,67725,67726,67727,67728,67729,67730,67731,67732,67733,67734,67735,67736,67737,67738,67739,67740,67741,67742,67808,67809,67810,67811,67812,67813,67814,67815,67816,67817,67818,67819,67820,67821,67822,67823,67824,67825,67826,67828,67829,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68224,68225,68226,68227,68228,68229,68230,68231,68232,68233,68234,68235,68236,68237,68238,68239,68240,68241,68242,68243,68244,68245,68246,68247,68248,68249,68250,68251,68252,68288,68289,68290,68291,68292,68293,68294,68295,68297,68298,68299,68300,68301,68302,68303,68304,68305,68306,68307,68308,68309,68310,68311,68312,68313,68314,68315,68316,68317,68318,68319,68320,68321,68322,68323,68324,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68480,68481,68482,68483,68484,68485,68486,68487,68488,68489,68490,68491,68492,68493,68494,68495,68496,68497,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,68736,68737,68738,68739,68740,68741,68742,68743,68744,68745,68746,68747,68748,68749,68750,68751,68752,68753,68754,68755,68756,68757,68758,68759,68760,68761,68762,68763,68764,68765,68766,68767,68768,68769,68770,68771,68772,68773,68774,68775,68776,68777,68778,68779,68780,68781,68782,68783,68784,68785,68786,68800,68801,68802,68803,68804,68805,68806,68807,68808,68809,68810,68811,68812,68813,68814,68815,68816,68817,68818,68819,68820,68821,68822,68823,68824,68825,68826,68827,68828,68829,68830,68831,68832,68833,68834,68835,68836,68837,68838,68839,68840,68841,68842,68843,68844,68845,68846,68847,68848,68849,68850,69635,69636,69637,69638,69639,69640,69641,69642,69643,69644,69645,69646,69647,69648,69649,69650,69651,69652,69653,69654,69655,69656,69657,69658,69659,69660,69661,69662,69663,69664,69665,69666,69667,69668,69669,69670,69671,69672,69673,69674,69675,69676,69677,69678,69679,69680,69681,69682,69683,69684,69685,69686,69687,69763,69764,69765,69766,69767,69768,69769,69770,69771,69772,69773,69774,69775,69776,69777,69778,69779,69780,69781,69782,69783,69784,69785,69786,69787,69788,69789,69790,69791,69792,69793,69794,69795,69796,69797,69798,69799,69800,69801,69802,69803,69804,69805,69806,69807,69840,69841,69842,69843,69844,69845,69846,69847,69848,69849,69850,69851,69852,69853,69854,69855,69856,69857,69858,69859,69860,69861,69862,69863,69864,69891,69892,69893,69894,69895,69896,69897,69898,69899,69900,69901,69902,69903,69904,69905,69906,69907,69908,69909,69910,69911,69912,69913,69914,69915,69916,69917,69918,69919,69920,69921,69922,69923,69924,69925,69926,69968,69969,69970,69971,69972,69973,69974,69975,69976,69977,69978,69979,69980,69981,69982,69983,69984,69985,69986,69987,69988,69989,69990,69991,69992,69993,69994,69995,69996,69997,69998,69999,7e4,70001,70002,70006,70019,70020,70021,70022,70023,70024,70025,70026,70027,70028,70029,70030,70031,70032,70033,70034,70035,70036,70037,70038,70039,70040,70041,70042,70043,70044,70045,70046,70047,70048,70049,70050,70051,70052,70053,70054,70055,70056,70057,70058,70059,70060,70061,70062,70063,70064,70065,70066,70081,70082,70083,70084,70106,70108,70144,70145,70146,70147,70148,70149,70150,70151,70152,70153,70154,70155,70156,70157,70158,70159,70160,70161,70163,70164,70165,70166,70167,70168,70169,70170,70171,70172,70173,70174,70175,70176,70177,70178,70179,70180,70181,70182,70183,70184,70185,70186,70187,70272,70273,70274,70275,70276,70277,70278,70280,70282,70283,70284,70285,70287,70288,70289,70290,70291,70292,70293,70294,70295,70296,70297,70298,70299,70300,70301,70303,70304,70305,70306,70307,70308,70309,70310,70311,70312,70320,70321,70322,70323,70324,70325,70326,70327,70328,70329,70330,70331,70332,70333,70334,70335,70336,70337,70338,70339,70340,70341,70342,70343,70344,70345,70346,70347,70348,70349,70350,70351,70352,70353,70354,70355,70356,70357,70358,70359,70360,70361,70362,70363,70364,70365,70366,70405,70406,70407,70408,70409,70410,70411,70412,70415,70416,70419,70420,70421,70422,70423,70424,70425,70426,70427,70428,70429,70430,70431,70432,70433,70434,70435,70436,70437,70438,70439,70440,70442,70443,70444,70445,70446,70447,70448,70450,70451,70453,70454,70455,70456,70457,70461,70480,70493,70494,70495,70496,70497,70784,70785,70786,70787,70788,70789,70790,70791,70792,70793,70794,70795,70796,70797,70798,70799,70800,70801,70802,70803,70804,70805,70806,70807,70808,70809,70810,70811,70812,70813,70814,70815,70816,70817,70818,70819,70820,70821,70822,70823,70824,70825,70826,70827,70828,70829,70830,70831,70852,70853,70855,71040,71041,71042,71043,71044,71045,71046,71047,71048,71049,71050,71051,71052,71053,71054,71055,71056,71057,71058,71059,71060,71061,71062,71063,71064,71065,71066,71067,71068,71069,71070,71071,71072,71073,71074,71075,71076,71077,71078,71079,71080,71081,71082,71083,71084,71085,71086,71128,71129,71130,71131,71168,71169,71170,71171,71172,71173,71174,71175,71176,71177,71178,71179,71180,71181,71182,71183,71184,71185,71186,71187,71188,71189,71190,71191,71192,71193,71194,71195,71196,71197,71198,71199,71200,71201,71202,71203,71204,71205,71206,71207,71208,71209,71210,71211,71212,71213,71214,71215,71236,71296,71297,71298,71299,71300,71301,71302,71303,71304,71305,71306,71307,71308,71309,71310,71311,71312,71313,71314,71315,71316,71317,71318,71319,71320,71321,71322,71323,71324,71325,71326,71327,71328,71329,71330,71331,71332,71333,71334,71335,71336,71337,71338,71424,71425,71426,71427,71428,71429,71430,71431,71432,71433,71434,71435,71436,71437,71438,71439,71440,71441,71442,71443,71444,71445,71446,71447,71448,71449,71840,71841,71842,71843,71844,71845,71846,71847,71848,71849,71850,71851,71852,71853,71854,71855,71856,71857,71858,71859,71860,71861,71862,71863,71864,71865,71866,71867,71868,71869,71870,71871,71872,71873,71874,71875,71876,71877,71878,71879,71880,71881,71882,71883,71884,71885,71886,71887,71888,71889,71890,71891,71892,71893,71894,71895,71896,71897,71898,71899,71900,71901,71902,71903,71935,72384,72385,72386,72387,72388,72389,72390,72391,72392,72393,72394,72395,72396,72397,72398,72399,72400,72401,72402,72403,72404,72405,72406,72407,72408,72409,72410,72411,72412,72413,72414,72415,72416,72417,72418,72419,72420,72421,72422,72423,72424,72425,72426,72427,72428,72429,72430,72431,72432,72433,72434,72435,72436,72437,72438,72439,72440,73728,73729,73730,73731,73732,73733,73734,73735,73736,73737,73738,73739,73740,73741,73742,73743,73744,73745,73746,73747,73748,73749,73750,73751,73752,73753,73754,73755,73756,73757,73758,73759,73760,73761,73762,73763,73764,73765,73766,73767,73768,73769,73770,73771,73772,73773,73774,73775,73776,73777,73778,73779,73780,73781,73782,73783,73784,73785,73786,73787,73788,73789,73790,73791,73792,73793,73794,73795,73796,73797,73798,73799,73800,73801,73802,73803,73804,73805,73806,73807,73808,73809,73810,73811,73812,73813,73814,73815,73816,73817,73818,73819,73820,73821,73822,73823,73824,73825,73826,73827,73828,73829,73830,73831,73832,73833,73834,73835,73836,73837,73838,73839,73840,73841,73842,73843,73844,73845,73846,73847,73848,73849,73850,73851,73852,73853,73854,73855,73856,73857,73858,73859,73860,73861,73862,73863,73864,73865,73866,73867,73868,73869,73870,73871,73872,73873,73874,73875,73876,73877,73878,73879,73880,73881,73882,73883,73884,73885,73886,73887,73888,73889,73890,73891,73892,73893,73894,73895,73896,73897,73898,73899,73900,73901,73902,73903,73904,73905,73906,73907,73908,73909,73910,73911,73912,73913,73914,73915,73916,73917,73918,73919,73920,73921,73922,73923,73924,73925,73926,73927,73928,73929,73930,73931,73932,73933,73934,73935,73936,73937,73938,73939,73940,73941,73942,73943,73944,73945,73946,73947,73948,73949,73950,73951,73952,73953,73954,73955,73956,73957,73958,73959,73960,73961,73962,73963,73964,73965,73966,73967,73968,73969,73970,73971,73972,73973,73974,73975,73976,73977,73978,73979,73980,73981,73982,73983,73984,73985,73986,73987,73988,73989,73990,73991,73992,73993,73994,73995,73996,73997,73998,73999,74e3,74001,74002,74003,74004,74005,74006,74007,74008,74009,74010,74011,74012,74013,74014,74015,74016,74017,74018,74019,74020,74021,74022,74023,74024,74025,74026,74027,74028,74029,74030,74031,74032,74033,74034,74035,74036,74037,74038,74039,74040,74041,74042,74043,74044,74045,74046,74047,74048,74049,74050,74051,74052,74053,74054,74055,74056,74057,74058,74059,74060,74061,74062,74063,74064,74065,74066,74067,74068,74069,74070,74071,74072,74073,74074,74075,74076,74077,74078,74079,74080,74081,74082,74083,74084,74085,74086,74087,74088,74089,74090,74091,74092,74093,74094,74095,74096,74097,74098,74099,74100,74101,74102,74103,74104,74105,74106,74107,74108,74109,74110,74111,74112,74113,74114,74115,74116,74117,74118,74119,74120,74121,74122,74123,74124,74125,74126,74127,74128,74129,74130,74131,74132,74133,74134,74135,74136,74137,74138,74139,74140,74141,74142,74143,74144,74145,74146,74147,74148,74149,74150,74151,74152,74153,74154,74155,74156,74157,74158,74159,74160,74161,74162,74163,74164,74165,74166,74167,74168,74169,74170,74171,74172,74173,74174,74175,74176,74177,74178,74179,74180,74181,74182,74183,74184,74185,74186,74187,74188,74189,74190,74191,74192,74193,74194,74195,74196,74197,74198,74199,74200,74201,74202,74203,74204,74205,74206,74207,74208,74209,74210,74211,74212,74213,74214,74215,74216,74217,74218,74219,74220,74221,74222,74223,74224,74225,74226,74227,74228,74229,74230,74231,74232,74233,74234,74235,74236,74237,74238,74239,74240,74241,74242,74243,74244,74245,74246,74247,74248,74249,74250,74251,74252,74253,74254,74255,74256,74257,74258,74259,74260,74261,74262,74263,74264,74265,74266,74267,74268,74269,74270,74271,74272,74273,74274,74275,74276,74277,74278,74279,74280,74281,74282,74283,74284,74285,74286,74287,74288,74289,74290,74291,74292,74293,74294,74295,74296,74297,74298,74299,74300,74301,74302,74303,74304,74305,74306,74307,74308,74309,74310,74311,74312,74313,74314,74315,74316,74317,74318,74319,74320,74321,74322,74323,74324,74325,74326,74327,74328,74329,74330,74331,74332,74333,74334,74335,74336,74337,74338,74339,74340,74341,74342,74343,74344,74345,74346,74347,74348,74349,74350,74351,74352,74353,74354,74355,74356,74357,74358,74359,74360,74361,74362,74363,74364,74365,74366,74367,74368,74369,74370,74371,74372,74373,74374,74375,74376,74377,74378,74379,74380,74381,74382,74383,74384,74385,74386,74387,74388,74389,74390,74391,74392,74393,74394,74395,74396,74397,74398,74399,74400,74401,74402,74403,74404,74405,74406,74407,74408,74409,74410,74411,74412,74413,74414,74415,74416,74417,74418,74419,74420,74421,74422,74423,74424,74425,74426,74427,74428,74429,74430,74431,74432,74433,74434,74435,74436,74437,74438,74439,74440,74441,74442,74443,74444,74445,74446,74447,74448,74449,74450,74451,74452,74453,74454,74455,74456,74457,74458,74459,74460,74461,74462,74463,74464,74465,74466,74467,74468,74469,74470,74471,74472,74473,74474,74475,74476,74477,74478,74479,74480,74481,74482,74483,74484,74485,74486,74487,74488,74489,74490,74491,74492,74493,74494,74495,74496,74497,74498,74499,74500,74501,74502,74503,74504,74505,74506,74507,74508,74509,74510,74511,74512,74513,74514,74515,74516,74517,74518,74519,74520,74521,74522,74523,74524,74525,74526,74527,74528,74529,74530,74531,74532,74533,74534,74535,74536,74537,74538,74539,74540,74541,74542,74543,74544,74545,74546,74547,74548,74549,74550,74551,74552,74553,74554,74555,74556,74557,74558,74559,74560,74561,74562,74563,74564,74565,74566,74567,74568,74569,74570,74571,74572,74573,74574,74575,74576,74577,74578,74579,74580,74581,74582,74583,74584,74585,74586,74587,74588,74589,74590,74591,74592,74593,74594,74595,74596,74597,74598,74599,74600,74601,74602,74603,74604,74605,74606,74607,74608,74609,74610,74611,74612,74613,74614,74615,74616,74617,74618,74619,74620,74621,74622,74623,74624,74625,74626,74627,74628,74629,74630,74631,74632,74633,74634,74635,74636,74637,74638,74639,74640,74641,74642,74643,74644,74645,74646,74647,74648,74649,74880,74881,74882,74883,74884,74885,74886,74887,74888,74889,74890,74891,74892,74893,74894,74895,74896,74897,74898,74899,74900,74901,74902,74903,74904,74905,74906,74907,74908,74909,74910,74911,74912,74913,74914,74915,74916,74917,74918,74919,74920,74921,74922,74923,74924,74925,74926,74927,74928,74929,74930,74931,74932,74933,74934,74935,74936,74937,74938,74939,74940,74941,74942,74943,74944,74945,74946,74947,74948,74949,74950,74951,74952,74953,74954,74955,74956,74957,74958,74959,74960,74961,74962,74963,74964,74965,74966,74967,74968,74969,74970,74971,74972,74973,74974,74975,74976,74977,74978,74979,74980,74981,74982,74983,74984,74985,74986,74987,74988,74989,74990,74991,74992,74993,74994,74995,74996,74997,74998,74999,75e3,75001,75002,75003,75004,75005,75006,75007,75008,75009,75010,75011,75012,75013,75014,75015,75016,75017,75018,75019,75020,75021,75022,75023,75024,75025,75026,75027,75028,75029,75030,75031,75032,75033,75034,75035,75036,75037,75038,75039,75040,75041,75042,75043,75044,75045,75046,75047,75048,75049,75050,75051,75052,75053,75054,75055,75056,75057,75058,75059,75060,75061,75062,75063,75064,75065,75066,75067,75068,75069,75070,75071,75072,75073,75074,75075,77824,77825,77826,77827,77828,77829,77830,77831,77832,77833,77834,77835,77836,77837,77838,77839,77840,77841,77842,77843,77844,77845,77846,77847,77848,77849,77850,77851,77852,77853,77854,77855,77856,77857,77858,77859,77860,77861,77862,77863,77864,77865,77866,77867,77868,77869,77870,77871,77872,77873,77874,77875,77876,77877,77878,77879,77880,77881,77882,77883,77884,77885,77886,77887,77888,77889,77890,77891,77892,77893,77894,77895,77896,77897,77898,77899,77900,77901,77902,77903,77904,77905,77906,77907,77908,77909,77910,77911,77912,77913,77914,77915,77916,77917,77918,77919,77920,77921,77922,77923,77924,77925,77926,77927,77928,77929,77930,77931,77932,77933,77934,77935,77936,77937,77938,77939,77940,77941,77942,77943,77944,77945,77946,77947,77948,77949,77950,77951,77952,77953,77954,77955,77956,77957,77958,77959,77960,77961,77962,77963,77964,77965,77966,77967,77968,77969,77970,77971,77972,77973,77974,77975,77976,77977,77978,77979,77980,77981,77982,77983,77984,77985,77986,77987,77988,77989,77990,77991,77992,77993,77994,77995,77996,77997,77998,77999,78e3,78001,78002,78003,78004,78005,78006,78007,78008,78009,78010,78011,78012,78013,78014,78015,78016,78017,78018,78019,78020,78021,78022,78023,78024,78025,78026,78027,78028,78029,78030,78031,78032,78033,78034,78035,78036,78037,78038,78039,78040,78041,78042,78043,78044,78045,78046,78047,78048,78049,78050,78051,78052,78053,78054,78055,78056,78057,78058,78059,78060,78061,78062,78063,78064,78065,78066,78067,78068,78069,78070,78071,78072,78073,78074,78075,78076,78077,78078,78079,78080,78081,78082,78083,78084,78085,78086,78087,78088,78089,78090,78091,78092,78093,78094,78095,78096,78097,78098,78099,78100,78101,78102,78103,78104,78105,78106,78107,78108,78109,78110,78111,78112,78113,78114,78115,78116,78117,78118,78119,78120,78121,78122,78123,78124,78125,78126,78127,78128,78129,78130,78131,78132,78133,78134,78135,78136,78137,78138,78139,78140,78141,78142,78143,78144,78145,78146,78147,78148,78149,78150,78151,78152,78153,78154,78155,78156,78157,78158,78159,78160,78161,78162,78163,78164,78165,78166,78167,78168,78169,78170,78171,78172,78173,78174,78175,78176,78177,78178,78179,78180,78181,78182,78183,78184,78185,78186,78187,78188,78189,78190,78191,78192,78193,78194,78195,78196,78197,78198,78199,78200,78201,78202,78203,78204,78205,78206,78207,78208,78209,78210,78211,78212,78213,78214,78215,78216,78217,78218,78219,78220,78221,78222,78223,78224,78225,78226,78227,78228,78229,78230,78231,78232,78233,78234,78235,78236,78237,78238,78239,78240,78241,78242,78243,78244,78245,78246,78247,78248,78249,78250,78251,78252,78253,78254,78255,78256,78257,78258,78259,78260,78261,78262,78263,78264,78265,78266,78267,78268,78269,78270,78271,78272,78273,78274,78275,78276,78277,78278,78279,78280,78281,78282,78283,78284,78285,78286,78287,78288,78289,78290,78291,78292,78293,78294,78295,78296,78297,78298,78299,78300,78301,78302,78303,78304,78305,78306,78307,78308,78309,78310,78311,78312,78313,78314,78315,78316,78317,78318,78319,78320,78321,78322,78323,78324,78325,78326,78327,78328,78329,78330,78331,78332,78333,78334,78335,78336,78337,78338,78339,78340,78341,78342,78343,78344,78345,78346,78347,78348,78349,78350,78351,78352,78353,78354,78355,78356,78357,78358,78359,78360,78361,78362,78363,78364,78365,78366,78367,78368,78369,78370,78371,78372,78373,78374,78375,78376,78377,78378,78379,78380,78381,78382,78383,78384,78385,78386,78387,78388,78389,78390,78391,78392,78393,78394,78395,78396,78397,78398,78399,78400,78401,78402,78403,78404,78405,78406,78407,78408,78409,78410,78411,78412,78413,78414,78415,78416,78417,78418,78419,78420,78421,78422,78423,78424,78425,78426,78427,78428,78429,78430,78431,78432,78433,78434,78435,78436,78437,78438,78439,78440,78441,78442,78443,78444,78445,78446,78447,78448,78449,78450,78451,78452,78453,78454,78455,78456,78457,78458,78459,78460,78461,78462,78463,78464,78465,78466,78467,78468,78469,78470,78471,78472,78473,78474,78475,78476,78477,78478,78479,78480,78481,78482,78483,78484,78485,78486,78487,78488,78489,78490,78491,78492,78493,78494,78495,78496,78497,78498,78499,78500,78501,78502,78503,78504,78505,78506,78507,78508,78509,78510,78511,78512,78513,78514,78515,78516,78517,78518,78519,78520,78521,78522,78523,78524,78525,78526,78527,78528,78529,78530,78531,78532,78533,78534,78535,78536,78537,78538,78539,78540,78541,78542,78543,78544,78545,78546,78547,78548,78549,78550,78551,78552,78553,78554,78555,78556,78557,78558,78559,78560,78561,78562,78563,78564,78565,78566,78567,78568,78569,78570,78571,78572,78573,78574,78575,78576,78577,78578,78579,78580,78581,78582,78583,78584,78585,78586,78587,78588,78589,78590,78591,78592,78593,78594,78595,78596,78597,78598,78599,78600,78601,78602,78603,78604,78605,78606,78607,78608,78609,78610,78611,78612,78613,78614,78615,78616,78617,78618,78619,78620,78621,78622,78623,78624,78625,78626,78627,78628,78629,78630,78631,78632,78633,78634,78635,78636,78637,78638,78639,78640,78641,78642,78643,78644,78645,78646,78647,78648,78649,78650,78651,78652,78653,78654,78655,78656,78657,78658,78659,78660,78661,78662,78663,78664,78665,78666,78667,78668,78669,78670,78671,78672,78673,78674,78675,78676,78677,78678,78679,78680,78681,78682,78683,78684,78685,78686,78687,78688,78689,78690,78691,78692,78693,78694,78695,78696,78697,78698,78699,78700,78701,78702,78703,78704,78705,78706,78707,78708,78709,78710,78711,78712,78713,78714,78715,78716,78717,78718,78719,78720,78721,78722,78723,78724,78725,78726,78727,78728,78729,78730,78731,78732,78733,78734,78735,78736,78737,78738,78739,78740,78741,78742,78743,78744,78745,78746,78747,78748,78749,78750,78751,78752,78753,78754,78755,78756,78757,78758,78759,78760,78761,78762,78763,78764,78765,78766,78767,78768,78769,78770,78771,78772,78773,78774,78775,78776,78777,78778,78779,78780,78781,78782,78783,78784,78785,78786,78787,78788,78789,78790,78791,78792,78793,78794,78795,78796,78797,78798,78799,78800,78801,78802,78803,78804,78805,78806,78807,78808,78809,78810,78811,78812,78813,78814,78815,78816,78817,78818,78819,78820,78821,78822,78823,78824,78825,78826,78827,78828,78829,78830,78831,78832,78833,78834,78835,78836,78837,78838,78839,78840,78841,78842,78843,78844,78845,78846,78847,78848,78849,78850,78851,78852,78853,78854,78855,78856,78857,78858,78859,78860,78861,78862,78863,78864,78865,78866,78867,78868,78869,78870,78871,78872,78873,78874,78875,78876,78877,78878,78879,78880,78881,78882,78883,78884,78885,78886,78887,78888,78889,78890,78891,78892,78893,78894,82944,82945,82946,82947,82948,82949,82950,82951,82952,82953,82954,82955,82956,82957,82958,82959,82960,82961,82962,82963,82964,82965,82966,82967,82968,82969,82970,82971,82972,82973,82974,82975,82976,82977,82978,82979,82980,82981,82982,82983,82984,82985,82986,82987,82988,82989,82990,82991,82992,82993,82994,82995,82996,82997,82998,82999,83e3,83001,83002,83003,83004,83005,83006,83007,83008,83009,83010,83011,83012,83013,83014,83015,83016,83017,83018,83019,83020,83021,83022,83023,83024,83025,83026,83027,83028,83029,83030,83031,83032,83033,83034,83035,83036,83037,83038,83039,83040,83041,83042,83043,83044,83045,83046,83047,83048,83049,83050,83051,83052,83053,83054,83055,83056,83057,83058,83059,83060,83061,83062,83063,83064,83065,83066,83067,83068,83069,83070,83071,83072,83073,83074,83075,83076,83077,83078,83079,83080,83081,83082,83083,83084,83085,83086,83087,83088,83089,83090,83091,83092,83093,83094,83095,83096,83097,83098,83099,83100,83101,83102,83103,83104,83105,83106,83107,83108,83109,83110,83111,83112,83113,83114,83115,83116,83117,83118,83119,83120,83121,83122,83123,83124,83125,83126,83127,83128,83129,83130,83131,83132,83133,83134,83135,83136,83137,83138,83139,83140,83141,83142,83143,83144,83145,83146,83147,83148,83149,83150,83151,83152,83153,83154,83155,83156,83157,83158,83159,83160,83161,83162,83163,83164,83165,83166,83167,83168,83169,83170,83171,83172,83173,83174,83175,83176,83177,83178,83179,83180,83181,83182,83183,83184,83185,83186,83187,83188,83189,83190,83191,83192,83193,83194,83195,83196,83197,83198,83199,83200,83201,83202,83203,83204,83205,83206,83207,83208,83209,83210,83211,83212,83213,83214,83215,83216,83217,83218,83219,83220,83221,83222,83223,83224,83225,83226,83227,83228,83229,83230,83231,83232,83233,83234,83235,83236,83237,83238,83239,83240,83241,83242,83243,83244,83245,83246,83247,83248,83249,83250,83251,83252,83253,83254,83255,83256,83257,83258,83259,83260,83261,83262,83263,83264,83265,83266,83267,83268,83269,83270,83271,83272,83273,83274,83275,83276,83277,83278,83279,83280,83281,83282,83283,83284,83285,83286,83287,83288,83289,83290,83291,83292,83293,83294,83295,83296,83297,83298,83299,83300,83301,83302,83303,83304,83305,83306,83307,83308,83309,83310,83311,83312,83313,83314,83315,83316,83317,83318,83319,83320,83321,83322,83323,83324,83325,83326,83327,83328,83329,83330,83331,83332,83333,83334,83335,83336,83337,83338,83339,83340,83341,83342,83343,83344,83345,83346,83347,83348,83349,83350,83351,83352,83353,83354,83355,83356,83357,83358,83359,83360,83361,83362,83363,83364,83365,83366,83367,83368,83369,83370,83371,83372,83373,83374,83375,83376,83377,83378,83379,83380,83381,83382,83383,83384,83385,83386,83387,83388,83389,83390,83391,83392,83393,83394,83395,83396,83397,83398,83399,83400,83401,83402,83403,83404,83405,83406,83407,83408,83409,83410,83411,83412,83413,83414,83415,83416,83417,83418,83419,83420,83421,83422,83423,83424,83425,83426,83427,83428,83429,83430,83431,83432,83433,83434,83435,83436,83437,83438,83439,83440,83441,83442,83443,83444,83445,83446,83447,83448,83449,83450,83451,83452,83453,83454,83455,83456,83457,83458,83459,83460,83461,83462,83463,83464,83465,83466,83467,83468,83469,83470,83471,83472,83473,83474,83475,83476,83477,83478,83479,83480,83481,83482,83483,83484,83485,83486,83487,83488,83489,83490,83491,83492,83493,83494,83495,83496,83497,83498,83499,83500,83501,83502,83503,83504,83505,83506,83507,83508,83509,83510,83511,83512,83513,83514,83515,83516,83517,83518,83519,83520,83521,83522,83523,83524,83525,83526,92160,92161,92162,92163,92164,92165,92166,92167,92168,92169,92170,92171,92172,92173,92174,92175,92176,92177,92178,92179,92180,92181,92182,92183,92184,92185,92186,92187,92188,92189,92190,92191,92192,92193,92194,92195,92196,92197,92198,92199,92200,92201,92202,92203,92204,92205,92206,92207,92208,92209,92210,92211,92212,92213,92214,92215,92216,92217,92218,92219,92220,92221,92222,92223,92224,92225,92226,92227,92228,92229,92230,92231,92232,92233,92234,92235,92236,92237,92238,92239,92240,92241,92242,92243,92244,92245,92246,92247,92248,92249,92250,92251,92252,92253,92254,92255,92256,92257,92258,92259,92260,92261,92262,92263,92264,92265,92266,92267,92268,92269,92270,92271,92272,92273,92274,92275,92276,92277,92278,92279,92280,92281,92282,92283,92284,92285,92286,92287,92288,92289,92290,92291,92292,92293,92294,92295,92296,92297,92298,92299,92300,92301,92302,92303,92304,92305,92306,92307,92308,92309,92310,92311,92312,92313,92314,92315,92316,92317,92318,92319,92320,92321,92322,92323,92324,92325,92326,92327,92328,92329,92330,92331,92332,92333,92334,92335,92336,92337,92338,92339,92340,92341,92342,92343,92344,92345,92346,92347,92348,92349,92350,92351,92352,92353,92354,92355,92356,92357,92358,92359,92360,92361,92362,92363,92364,92365,92366,92367,92368,92369,92370,92371,92372,92373,92374,92375,92376,92377,92378,92379,92380,92381,92382,92383,92384,92385,92386,92387,92388,92389,92390,92391,92392,92393,92394,92395,92396,92397,92398,92399,92400,92401,92402,92403,92404,92405,92406,92407,92408,92409,92410,92411,92412,92413,92414,92415,92416,92417,92418,92419,92420,92421,92422,92423,92424,92425,92426,92427,92428,92429,92430,92431,92432,92433,92434,92435,92436,92437,92438,92439,92440,92441,92442,92443,92444,92445,92446,92447,92448,92449,92450,92451,92452,92453,92454,92455,92456,92457,92458,92459,92460,92461,92462,92463,92464,92465,92466,92467,92468,92469,92470,92471,92472,92473,92474,92475,92476,92477,92478,92479,92480,92481,92482,92483,92484,92485,92486,92487,92488,92489,92490,92491,92492,92493,92494,92495,92496,92497,92498,92499,92500,92501,92502,92503,92504,92505,92506,92507,92508,92509,92510,92511,92512,92513,92514,92515,92516,92517,92518,92519,92520,92521,92522,92523,92524,92525,92526,92527,92528,92529,92530,92531,92532,92533,92534,92535,92536,92537,92538,92539,92540,92541,92542,92543,92544,92545,92546,92547,92548,92549,92550,92551,92552,92553,92554,92555,92556,92557,92558,92559,92560,92561,92562,92563,92564,92565,92566,92567,92568,92569,92570,92571,92572,92573,92574,92575,92576,92577,92578,92579,92580,92581,92582,92583,92584,92585,92586,92587,92588,92589,92590,92591,92592,92593,92594,92595,92596,92597,92598,92599,92600,92601,92602,92603,92604,92605,92606,92607,92608,92609,92610,92611,92612,92613,92614,92615,92616,92617,92618,92619,92620,92621,92622,92623,92624,92625,92626,92627,92628,92629,92630,92631,92632,92633,92634,92635,92636,92637,92638,92639,92640,92641,92642,92643,92644,92645,92646,92647,92648,92649,92650,92651,92652,92653,92654,92655,92656,92657,92658,92659,92660,92661,92662,92663,92664,92665,92666,92667,92668,92669,92670,92671,92672,92673,92674,92675,92676,92677,92678,92679,92680,92681,92682,92683,92684,92685,92686,92687,92688,92689,92690,92691,92692,92693,92694,92695,92696,92697,92698,92699,92700,92701,92702,92703,92704,92705,92706,92707,92708,92709,92710,92711,92712,92713,92714,92715,92716,92717,92718,92719,92720,92721,92722,92723,92724,92725,92726,92727,92728,92736,92737,92738,92739,92740,92741,92742,92743,92744,92745,92746,92747,92748,92749,92750,92751,92752,92753,92754,92755,92756,92757,92758,92759,92760,92761,92762,92763,92764,92765,92766,92880,92881,92882,92883,92884,92885,92886,92887,92888,92889,92890,92891,92892,92893,92894,92895,92896,92897,92898,92899,92900,92901,92902,92903,92904,92905,92906,92907,92908,92909,92928,92929,92930,92931,92932,92933,92934,92935,92936,92937,92938,92939,92940,92941,92942,92943,92944,92945,92946,92947,92948,92949,92950,92951,92952,92953,92954,92955,92956,92957,92958,92959,92960,92961,92962,92963,92964,92965,92966,92967,92968,92969,92970,92971,92972,92973,92974,92975,92992,92993,92994,92995,93027,93028,93029,93030,93031,93032,93033,93034,93035,93036,93037,93038,93039,93040,93041,93042,93043,93044,93045,93046,93047,93053,93054,93055,93056,93057,93058,93059,93060,93061,93062,93063,93064,93065,93066,93067,93068,93069,93070,93071,93952,93953,93954,93955,93956,93957,93958,93959,93960,93961,93962,93963,93964,93965,93966,93967,93968,93969,93970,93971,93972,93973,93974,93975,93976,93977,93978,93979,93980,93981,93982,93983,93984,93985,93986,93987,93988,93989,93990,93991,93992,93993,93994,93995,93996,93997,93998,93999,94e3,94001,94002,94003,94004,94005,94006,94007,94008,94009,94010,94011,94012,94013,94014,94015,94016,94017,94018,94019,94020,94032,94099,94100,94101,94102,94103,94104,94105,94106,94107,94108,94109,94110,94111,110592,110593,113664,113665,113666,113667,113668,113669,113670,113671,113672,113673,113674,113675,113676,113677,113678,113679,113680,113681,113682,113683,113684,113685,113686,113687,113688,113689,113690,113691,113692,113693,113694,113695,113696,113697,113698,113699,113700,113701,113702,113703,113704,113705,113706,113707,113708,113709,113710,113711,113712,113713,113714,113715,113716,113717,113718,113719,113720,113721,113722,113723,113724,113725,113726,113727,113728,113729,113730,113731,113732,113733,113734,113735,113736,113737,113738,113739,113740,113741,113742,113743,113744,113745,113746,113747,113748,113749,113750,113751,113752,113753,113754,113755,113756,113757,113758,113759,113760,113761,113762,113763,113764,113765,113766,113767,113768,113769,113770,113776,113777,113778,113779,113780,113781,113782,113783,113784,113785,113786,113787,113788,113792,113793,113794,113795,113796,113797,113798,113799,113800,113808,113809,113810,113811,113812,113813,113814,113815,113816,113817,119808,119809,119810,119811,119812,119813,119814,119815,119816,119817,119818,119819,119820,119821,119822,119823,119824,119825,119826,119827,119828,119829,119830,119831,119832,119833,119834,119835,119836,119837,119838,119839,119840,119841,119842,119843,119844,119845,119846,119847,119848,119849,119850,119851,119852,119853,119854,119855,119856,119857,119858,119859,119860,119861,119862,119863,119864,119865,119866,119867,119868,119869,119870,119871,119872,119873,119874,119875,119876,119877,119878,119879,119880,119881,119882,119883,119884,119885,119886,119887,119888,119889,119890,119891,119892,119894,119895,119896,119897,119898,119899,119900,119901,119902,119903,119904,119905,119906,119907,119908,119909,119910,119911,119912,119913,119914,119915,119916,119917,119918,119919,119920,119921,119922,119923,119924,119925,119926,119927,119928,119929,119930,119931,119932,119933,119934,119935,119936,119937,119938,119939,119940,119941,119942,119943,119944,119945,119946,119947,119948,119949,119950,119951,119952,119953,119954,119955,119956,119957,119958,119959,119960,119961,119962,119963,119964,119966,119967,119970,119973,119974,119977,119978,119979,119980,119982,119983,119984,119985,119986,119987,119988,119989,119990,119991,119992,119993,119995,119997,119998,119999,12e4,120001,120002,120003,120005,120006,120007,120008,120009,120010,120011,120012,120013,120014,120015,120016,120017,120018,120019,120020,120021,120022,120023,120024,120025,120026,120027,120028,120029,120030,120031,120032,120033,120034,120035,120036,120037,120038,120039,120040,120041,120042,120043,120044,120045,120046,120047,120048,120049,120050,120051,120052,120053,120054,120055,120056,120057,120058,120059,120060,120061,120062,120063,120064,120065,120066,120067,120068,120069,120071,120072,120073,120074,120077,120078,120079,120080,120081,120082,120083,120084,120086,120087,120088,120089,120090,120091,120092,120094,120095,120096,120097,120098,120099,120100,120101,120102,120103,120104,120105,120106,120107,120108,120109,120110,120111,120112,120113,120114,120115,120116,120117,120118,120119,120120,120121,120123,120124,120125,120126,120128,120129,120130,120131,120132,120134,120138,120139,120140,120141,120142,120143,120144,120146,120147,120148,120149,120150,120151,120152,120153,120154,120155,120156,120157,120158,120159,120160,120161,120162,120163,120164,120165,120166,120167,120168,120169,120170,120171,120172,120173,120174,120175,120176,120177,120178,120179,120180,120181,120182,120183,120184,120185,120186,120187,120188,120189,120190,120191,120192,120193,120194,120195,120196,120197,120198,120199,120200,120201,120202,120203,120204,120205,120206,120207,120208,120209,120210,120211,120212,120213,120214,120215,120216,120217,120218,120219,120220,120221,120222,120223,120224,120225,120226,120227,120228,120229,120230,120231,120232,120233,120234,120235,120236,120237,120238,120239,120240,120241,120242,120243,120244,120245,120246,120247,120248,120249,120250,120251,120252,120253,120254,120255,120256,120257,120258,120259,120260,120261,120262,120263,120264,120265,120266,120267,120268,120269,120270,120271,120272,120273,120274,120275,120276,120277,120278,120279,120280,120281,120282,120283,120284,120285,120286,120287,120288,120289,120290,120291,120292,120293,120294,120295,120296,120297,120298,120299,120300,120301,120302,120303,120304,120305,120306,120307,120308,120309,120310,120311,120312,120313,120314,120315,120316,120317,120318,120319,120320,120321,120322,120323,120324,120325,120326,120327,120328,120329,120330,120331,120332,120333,120334,120335,120336,120337,120338,120339,120340,120341,120342,120343,120344,120345,120346,120347,120348,120349,120350,120351,120352,120353,120354,120355,120356,120357,120358,120359,120360,120361,120362,120363,120364,120365,120366,120367,120368,120369,120370,120371,120372,120373,120374,120375,120376,120377,120378,120379,120380,120381,120382,120383,120384,120385,120386,120387,120388,120389,120390,120391,120392,120393,120394,120395,120396,120397,120398,120399,120400,120401,120402,120403,120404,120405,120406,120407,120408,120409,120410,120411,120412,120413,120414,120415,120416,120417,120418,120419,120420,120421,120422,120423,120424,120425,120426,120427,120428,120429,120430,120431,120432,120433,120434,120435,120436,120437,120438,120439,120440,120441,120442,120443,120444,120445,120446,120447,120448,120449,120450,120451,120452,120453,120454,120455,120456,120457,120458,120459,120460,120461,120462,120463,120464,120465,120466,120467,120468,120469,120470,120471,120472,120473,120474,120475,120476,120477,120478,120479,120480,120481,120482,120483,120484,120485,120488,120489,120490,120491,120492,120493,120494,120495,120496,120497,120498,120499,120500,120501,120502,120503,120504,120505,120506,120507,120508,120509,120510,120511,120512,120514,120515,120516,120517,120518,120519,120520,120521,120522,120523,120524,120525,120526,120527,120528,120529,120530,120531,120532,120533,120534,120535,120536,120537,120538,120540,120541,120542,120543,120544,120545,120546,120547,120548,120549,120550,120551,120552,120553,120554,120555,120556,120557,120558,120559,120560,120561,120562,120563,120564,120565,120566,120567,120568,120569,120570,120572,120573,120574,120575,120576,120577,120578,120579,120580,120581,120582,120583,120584,120585,120586,120587,120588,120589,120590,120591,120592,120593,120594,120595,120596,120598,120599,120600,120601,120602,120603,120604,120605,120606,120607,120608,120609,120610,120611,120612,120613,120614,120615,120616,120617,120618,120619,120620,120621,120622,120623,120624,120625,120626,120627,120628,120630,120631,120632,120633,120634,120635,120636,120637,120638,120639,120640,120641,120642,120643,120644,120645,120646,120647,120648,120649,120650,120651,120652,120653,120654,120656,120657,120658,120659,120660,120661,120662,120663,120664,120665,120666,120667,120668,120669,120670,120671,120672,120673,120674,120675,120676,120677,120678,120679,120680,120681,120682,120683,120684,120685,120686,120688,120689,120690,120691,120692,120693,120694,120695,120696,120697,120698,120699,120700,120701,120702,120703,120704,120705,120706,120707,120708,120709,120710,120711,120712,120714,120715,120716,120717,120718,120719,120720,120721,120722,120723,120724,120725,120726,120727,120728,120729,120730,120731,120732,120733,120734,120735,120736,120737,120738,120739,120740,120741,120742,120743,120744,120746,120747,120748,120749,120750,120751,120752,120753,120754,120755,120756,120757,120758,120759,120760,120761,120762,120763,120764,120765,120766,120767,120768,120769,120770,120772,120773,120774,120775,120776,120777,120778,120779,124928,124929,124930,124931,124932,124933,124934,124935,124936,124937,124938,124939,124940,124941,124942,124943,124944,124945,124946,124947,124948,124949,124950,124951,124952,124953,124954,124955,124956,124957,124958,124959,124960,124961,124962,124963,124964,124965,124966,124967,124968,124969,124970,124971,124972,124973,124974,124975,124976,124977,124978,124979,124980,124981,124982,124983,124984,124985,124986,124987,124988,124989,124990,124991,124992,124993,124994,124995,124996,124997,124998,124999,125e3,125001,125002,125003,125004,125005,125006,125007,125008,125009,125010,125011,125012,125013,125014,125015,125016,125017,125018,125019,125020,125021,125022,125023,125024,125025,125026,125027,125028,125029,125030,125031,125032,125033,125034,125035,125036,125037,125038,125039,125040,125041,125042,125043,125044,125045,125046,125047,125048,125049,125050,125051,125052,125053,125054,125055,125056,125057,125058,125059,125060,125061,125062,125063,125064,125065,125066,125067,125068,125069,125070,125071,125072,125073,125074,125075,125076,125077,125078,125079,125080,125081,125082,125083,125084,125085,125086,125087,125088,125089,125090,125091,125092,125093,125094,125095,125096,125097,125098,125099,125100,125101,125102,125103,125104,125105,125106,125107,125108,125109,125110,125111,125112,125113,125114,125115,125116,125117,125118,125119,125120,125121,125122,125123,125124,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,131072,173782,173824,177972,177984,178205,178208,183969,194560,194561,194562,194563,194564,194565,194566,194567,194568,194569,194570,194571,194572,194573,194574,194575,194576,194577,194578,194579,194580,194581,194582,194583,194584,194585,194586,194587,194588,194589,194590,194591,194592,194593,194594,194595,194596,194597,194598,194599,194600,194601,194602,194603,194604,194605,194606,194607,194608,194609,194610,194611,194612,194613,194614,194615,194616,194617,194618,194619,194620,194621,194622,194623,194624,194625,194626,194627,194628,194629,194630,194631,194632,194633,194634,194635,194636,194637,194638,194639,194640,194641,194642,194643,194644,194645,194646,194647,194648,194649,194650,194651,194652,194653,194654,194655,194656,194657,194658,194659,194660,194661,194662,194663,194664,194665,194666,194667,194668,194669,194670,194671,194672,194673,194674,194675,194676,194677,194678,194679,194680,194681,194682,194683,194684,194685,194686,194687,194688,194689,194690,194691,194692,194693,194694,194695,194696,194697,194698,194699,194700,194701,194702,194703,194704,194705,194706,194707,194708,194709,194710,194711,194712,194713,194714,194715,194716,194717,194718,194719,194720,194721,194722,194723,194724,194725,194726,194727,194728,194729,194730,194731,194732,194733,194734,194735,194736,194737,194738,194739,194740,194741,194742,194743,194744,194745,194746,194747,194748,194749,194750,194751,194752,194753,194754,194755,194756,194757,194758,194759,194760,194761,194762,194763,194764,194765,194766,194767,194768,194769,194770,194771,194772,194773,194774,194775,194776,194777,194778,194779,194780,194781,194782,194783,194784,194785,194786,194787,194788,194789,194790,194791,194792,194793,194794,194795,194796,194797,194798,194799,194800,194801,194802,194803,194804,194805,194806,194807,194808,194809,194810,194811,194812,194813,194814,194815,194816,194817,194818,194819,194820,194821,194822,194823,194824,194825,194826,194827,194828,194829,194830,194831,194832,194833,194834,194835,194836,194837,194838,194839,194840,194841,194842,194843,194844,194845,194846,194847,194848,194849,194850,194851,194852,194853,194854,194855,194856,194857,194858,194859,194860,194861,194862,194863,194864,194865,194866,194867,194868,194869,194870,194871,194872,194873,194874,194875,194876,194877,194878,194879,194880,194881,194882,194883,194884,194885,194886,194887,194888,194889,194890,194891,194892,194893,194894,194895,194896,194897,194898,194899,194900,194901,194902,194903,194904,194905,194906,194907,194908,194909,194910,194911,194912,194913,194914,194915,194916,194917,194918,194919,194920,194921,194922,194923,194924,194925,194926,194927,194928,194929,194930,194931,194932,194933,194934,194935,194936,194937,194938,194939,194940,194941,194942,194943,194944,194945,194946,194947,194948,194949,194950,194951,194952,194953,194954,194955,194956,194957,194958,194959,194960,194961,194962,194963,194964,194965,194966,194967,194968,194969,194970,194971,194972,194973,194974,194975,194976,194977,194978,194979,194980,194981,194982,194983,194984,194985,194986,194987,194988,194989,194990,194991,194992,194993,194994,194995,194996,194997,194998,194999,195e3,195001,195002,195003,195004,195005,195006,195007,195008,195009,195010,195011,195012,195013,195014,195015,195016,195017,195018,195019,195020,195021,195022,195023,195024,195025,195026,195027,195028,195029,195030,195031,195032,195033,195034,195035,195036,195037,195038,195039,195040,195041,195042,195043,195044,195045,195046,195047,195048,195049,195050,195051,195052,195053,195054,195055,195056,195057,195058,195059,195060,195061,195062,195063,195064,195065,195066,195067,195068,195069,195070,195071,195072,195073,195074,195075,195076,195077,195078,195079,195080,195081,195082,195083,195084,195085,195086,195087,195088,195089,195090,195091,195092,195093,195094,195095,195096,195097,195098,195099,195100,195101];
},{}],3:[function(t,e,r){r.M=[768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,1155,1156,1157,1158,1159,1160,1161,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1471,1473,1474,1476,1477,1479,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1648,1750,1751,1752,1753,1754,1755,1756,1759,1760,1761,1762,1763,1764,1767,1768,1770,1771,1772,1773,1809,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,2027,2028,2029,2030,2031,2032,2033,2034,2035,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2085,2086,2087,2089,2090,2091,2092,2093,2137,2138,2139,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2362,2363,2364,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2385,2386,2387,2388,2389,2390,2391,2402,2403,2433,2434,2435,2492,2494,2495,2496,2497,2498,2499,2500,2503,2504,2507,2508,2509,2519,2530,2531,2561,2562,2563,2620,2622,2623,2624,2625,2626,2631,2632,2635,2636,2637,2641,2672,2673,2677,2689,2690,2691,2748,2750,2751,2752,2753,2754,2755,2756,2757,2759,2760,2761,2763,2764,2765,2786,2787,2817,2818,2819,2876,2878,2879,2880,2881,2882,2883,2884,2887,2888,2891,2892,2893,2902,2903,2914,2915,2946,3006,3007,3008,3009,3010,3014,3015,3016,3018,3019,3020,3021,3031,3072,3073,3074,3075,3134,3135,3136,3137,3138,3139,3140,3142,3143,3144,3146,3147,3148,3149,3157,3158,3170,3171,3201,3202,3203,3260,3262,3263,3264,3265,3266,3267,3268,3270,3271,3272,3274,3275,3276,3277,3285,3286,3298,3299,3329,3330,3331,3390,3391,3392,3393,3394,3395,3396,3398,3399,3400,3402,3403,3404,3405,3415,3426,3427,3458,3459,3530,3535,3536,3537,3538,3539,3540,3542,3544,3545,3546,3547,3548,3549,3550,3551,3570,3571,3633,3636,3637,3638,3639,3640,3641,3642,3655,3656,3657,3658,3659,3660,3661,3662,3761,3764,3765,3766,3767,3768,3769,3771,3772,3784,3785,3786,3787,3788,3789,3864,3865,3893,3895,3897,3902,3903,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3974,3975,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3993,3994,3995,3996,3997,3998,3999,4e3,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4038,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4182,4183,4184,4185,4190,4191,4192,4194,4195,4196,4199,4200,4201,4202,4203,4204,4205,4209,4210,4211,4212,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4239,4250,4251,4252,4253,4957,4958,4959,5906,5907,5908,5938,5939,5940,5970,5971,6002,6003,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6109,6155,6156,6157,6313,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6448,6449,6450,6451,6452,6453,6454,6455,6456,6457,6458,6459,6679,6680,6681,6682,6683,6741,6742,6743,6744,6745,6746,6747,6748,6749,6750,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,6780,6783,6832,6833,6834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6912,6913,6914,6915,6916,6964,6965,6966,6967,6968,6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,7019,7020,7021,7022,7023,7024,7025,7026,7027,7040,7041,7042,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7142,7143,7144,7145,7146,7147,7148,7149,7150,7151,7152,7153,7154,7155,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7376,7377,7378,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,7400,7405,7410,7411,7412,7416,7417,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,7648,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7676,7677,7678,7679,8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,11503,11504,11505,11647,11744,11745,11746,11747,11748,11749,11750,11751,11752,11753,11754,11755,11756,11757,11758,11759,11760,11761,11762,11763,11764,11765,11766,11767,11768,11769,11770,11771,11772,11773,11774,11775,12330,12331,12332,12333,12334,12335,12441,12442,42607,42608,42609,42610,42612,42613,42614,42615,42616,42617,42618,42619,42620,42621,42654,42655,42736,42737,43010,43014,43019,43043,43044,43045,43046,43047,43136,43137,43188,43189,43190,43191,43192,43193,43194,43195,43196,43197,43198,43199,43200,43201,43202,43203,43204,43232,43233,43234,43235,43236,43237,43238,43239,43240,43241,43242,43243,43244,43245,43246,43247,43248,43249,43302,43303,43304,43305,43306,43307,43308,43309,43335,43336,43337,43338,43339,43340,43341,43342,43343,43344,43345,43346,43347,43392,43393,43394,43395,43443,43444,43445,43446,43447,43448,43449,43450,43451,43452,43453,43454,43455,43456,43493,43561,43562,43563,43564,43565,43566,43567,43568,43569,43570,43571,43572,43573,43574,43587,43596,43597,43643,43644,43645,43696,43698,43699,43700,43703,43704,43710,43711,43713,43755,43756,43757,43758,43759,43765,43766,44003,44004,44005,44006,44007,44008,44009,44010,44012,44013,64286,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65056,65057,65058,65059,65060,65061,65062,65063,65064,65065,65066,65067,65068,65069,65070,65071,66045,66272,66422,66423,66424,66425,66426,68097,68098,68099,68101,68102,68108,68109,68110,68111,68152,68153,68154,68159,68325,68326,69632,69633,69634,69688,69689,69690,69691,69692,69693,69694,69695,69696,69697,69698,69699,69700,69701,69702,69759,69760,69761,69762,69808,69809,69810,69811,69812,69813,69814,69815,69816,69817,69818,69888,69889,69890,69927,69928,69929,69930,69931,69932,69933,69934,69935,69936,69937,69938,69939,69940,70003,70016,70017,70018,70067,70068,70069,70070,70071,70072,70073,70074,70075,70076,70077,70078,70079,70080,70090,70091,70092,70188,70189,70190,70191,70192,70193,70194,70195,70196,70197,70198,70199,70367,70368,70369,70370,70371,70372,70373,70374,70375,70376,70377,70378,70400,70401,70402,70403,70460,70462,70463,70464,70465,70466,70467,70468,70471,70472,70475,70476,70477,70487,70498,70499,70502,70503,70504,70505,70506,70507,70508,70512,70513,70514,70515,70516,70832,70833,70834,70835,70836,70837,70838,70839,70840,70841,70842,70843,70844,70845,70846,70847,70848,70849,70850,70851,71087,71088,71089,71090,71091,71092,71093,71096,71097,71098,71099,71100,71101,71102,71103,71104,71132,71133,71216,71217,71218,71219,71220,71221,71222,71223,71224,71225,71226,71227,71228,71229,71230,71231,71232,71339,71340,71341,71342,71343,71344,71345,71346,71347,71348,71349,71350,71351,71453,71454,71455,71456,71457,71458,71459,71460,71461,71462,71463,71464,71465,71466,71467,92912,92913,92914,92915,92916,92976,92977,92978,92979,92980,92981,92982,94033,94034,94035,94036,94037,94038,94039,94040,94041,94042,94043,94044,94045,94046,94047,94048,94049,94050,94051,94052,94053,94054,94055,94056,94057,94058,94059,94060,94061,94062,94063,94064,94065,94066,94067,94068,94069,94070,94071,94072,94073,94074,94075,94076,94077,94078,94095,94096,94097,94098,113821,113822,119141,119142,119143,119144,119145,119149,119150,119151,119152,119153,119154,119163,119164,119165,119166,119167,119168,119169,119170,119173,119174,119175,119176,119177,119178,119179,119210,119211,119212,119213,119362,119363,119364,121344,121345,121346,121347,121348,121349,121350,121351,121352,121353,121354,121355,121356,121357,121358,121359,121360,121361,121362,121363,121364,121365,121366,121367,121368,121369,121370,121371,121372,121373,121374,121375,121376,121377,121378,121379,121380,121381,121382,121383,121384,121385,121386,121387,121388,121389,121390,121391,121392,121393,121394,121395,121396,121397,121398,121403,121404,121405,121406,121407,121408,121409,121410,121411,121412,121413,121414,121415,121416,121417,121418,121419,121420,121421,121422,121423,121424,121425,121426,121427,121428,121429,121430,121431,121432,121433,121434,121435,121436,121437,121438,121439,121440,121441,121442,121443,121444,121445,121446,121447,121448,121449,121450,121451,121452,121461,121476,121499,121500,121501,121502,121503,121505,121506,121507,121508,121509,121510,121511,121512,121513,121514,121515,121516,121517,121518,121519,125136,125137,125138,125139,125140,125141,125142,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]},{}],4:[function(t,e,r){r.N=[48,49,50,51,52,53,54,55,56,57,178,179,185,188,189,190,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2548,2549,2550,2551,2552,2553,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2930,2931,2932,2933,2934,2935,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3192,3193,3194,3195,3196,3197,3198,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,5870,5871,5872,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479,6608,6609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,6992,6993,6994,6995,6996,6997,6998,6999,7e3,7001,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7248,7249,7250,7251,7252,7253,7254,7255,7256,7257,8304,8308,8309,8310,8311,8312,8313,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8576,8577,8578,8581,8582,8583,8584,8585,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9450,9451,9452,9453,9454,9455,9456,9457,9458,9459,9460,9461,9462,9463,9464,9465,9466,9467,9468,9469,9470,9471,10102,10103,10104,10105,10106,10107,10108,10109,10110,10111,10112,10113,10114,10115,10116,10117,10118,10119,10120,10121,10122,10123,10124,10125,10126,10127,10128,10129,10130,10131,11517,12295,12321,12322,12323,12324,12325,12326,12327,12328,12329,12344,12345,12346,12690,12691,12692,12693,12832,12833,12834,12835,12836,12837,12838,12839,12840,12841,12872,12873,12874,12875,12876,12877,12878,12879,12881,12882,12883,12884,12885,12886,12887,12888,12889,12890,12891,12892,12893,12894,12895,12928,12929,12930,12931,12932,12933,12934,12935,12936,12937,12977,12978,12979,12980,12981,12982,12983,12984,12985,12986,12987,12988,12989,12990,12991,42528,42529,42530,42531,42532,42533,42534,42535,42536,42537,42726,42727,42728,42729,42730,42731,42732,42733,42734,42735,43056,43057,43058,43059,43060,43061,43216,43217,43218,43219,43220,43221,43222,43223,43224,43225,43264,43265,43266,43267,43268,43269,43270,43271,43272,43273,43472,43473,43474,43475,43476,43477,43478,43479,43480,43481,43504,43505,43506,43507,43508,43509,43510,43511,43512,43513,43600,43601,43602,43603,43604,43605,43606,43607,43608,43609,44016,44017,44018,44019,44020,44021,44022,44023,44024,44025,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65799,65800,65801,65802,65803,65804,65805,65806,65807,65808,65809,65810,65811,65812,65813,65814,65815,65816,65817,65818,65819,65820,65821,65822,65823,65824,65825,65826,65827,65828,65829,65830,65831,65832,65833,65834,65835,65836,65837,65838,65839,65840,65841,65842,65843,65856,65857,65858,65859,65860,65861,65862,65863,65864,65865,65866,65867,65868,65869,65870,65871,65872,65873,65874,65875,65876,65877,65878,65879,65880,65881,65882,65883,65884,65885,65886,65887,65888,65889,65890,65891,65892,65893,65894,65895,65896,65897,65898,65899,65900,65901,65902,65903,65904,65905,65906,65907,65908,65909,65910,65911,65912,65930,65931,66273,66274,66275,66276,66277,66278,66279,66280,66281,66282,66283,66284,66285,66286,66287,66288,66289,66290,66291,66292,66293,66294,66295,66296,66297,66298,66299,66336,66337,66338,66339,66369,66378,66513,66514,66515,66516,66517,66720,66721,66722,66723,66724,66725,66726,66727,66728,66729,67672,67673,67674,67675,67676,67677,67678,67679,67705,67706,67707,67708,67709,67710,67711,67751,67752,67753,67754,67755,67756,67757,67758,67759,67835,67836,67837,67838,67839,67862,67863,67864,67865,67866,67867,68028,68029,68032,68033,68034,68035,68036,68037,68038,68039,68040,68041,68042,68043,68044,68045,68046,68047,68050,68051,68052,68053,68054,68055,68056,68057,68058,68059,68060,68061,68062,68063,68064,68065,68066,68067,68068,68069,68070,68071,68072,68073,68074,68075,68076,68077,68078,68079,68080,68081,68082,68083,68084,68085,68086,68087,68088,68089,68090,68091,68092,68093,68094,68095,68160,68161,68162,68163,68164,68165,68166,68167,68221,68222,68253,68254,68255,68331,68332,68333,68334,68335,68440,68441,68442,68443,68444,68445,68446,68447,68472,68473,68474,68475,68476,68477,68478,68479,68521,68522,68523,68524,68525,68526,68527,68858,68859,68860,68861,68862,68863,69216,69217,69218,69219,69220,69221,69222,69223,69224,69225,69226,69227,69228,69229,69230,69231,69232,69233,69234,69235,69236,69237,69238,69239,69240,69241,69242,69243,69244,69245,69246,69714,69715,69716,69717,69718,69719,69720,69721,69722,69723,69724,69725,69726,69727,69728,69729,69730,69731,69732,69733,69734,69735,69736,69737,69738,69739,69740,69741,69742,69743,69872,69873,69874,69875,69876,69877,69878,69879,69880,69881,69942,69943,69944,69945,69946,69947,69948,69949,69950,69951,70096,70097,70098,70099,70100,70101,70102,70103,70104,70105,70113,70114,70115,70116,70117,70118,70119,70120,70121,70122,70123,70124,70125,70126,70127,70128,70129,70130,70131,70132,70384,70385,70386,70387,70388,70389,70390,70391,70392,70393,70864,70865,70866,70867,70868,70869,70870,70871,70872,70873,71248,71249,71250,71251,71252,71253,71254,71255,71256,71257,71360,71361,71362,71363,71364,71365,71366,71367,71368,71369,71472,71473,71474,71475,71476,71477,71478,71479,71480,71481,71482,71483,71904,71905,71906,71907,71908,71909,71910,71911,71912,71913,71914,71915,71916,71917,71918,71919,71920,71921,71922,74752,74753,74754,74755,74756,74757,74758,74759,74760,74761,74762,74763,74764,74765,74766,74767,74768,74769,74770,74771,74772,74773,74774,74775,74776,74777,74778,74779,74780,74781,74782,74783,74784,74785,74786,74787,74788,74789,74790,74791,74792,74793,74794,74795,74796,74797,74798,74799,74800,74801,74802,74803,74804,74805,74806,74807,74808,74809,74810,74811,74812,74813,74814,74815,74816,74817,74818,74819,74820,74821,74822,74823,74824,74825,74826,74827,74828,74829,74830,74831,74832,74833,74834,74835,74836,74837,74838,74839,74840,74841,74842,74843,74844,74845,74846,74847,74848,74849,74850,74851,74852,74853,74854,74855,74856,74857,74858,74859,74860,74861,74862,92768,92769,92770,92771,92772,92773,92774,92775,92776,92777,93008,93009,93010,93011,93012,93013,93014,93015,93016,93017,93019,93020,93021,93022,93023,93024,93025,119648,119649,119650,119651,119652,119653,119654,119655,119656,119657,119658,119659,119660,119661,119662,119663,119664,119665,120782,120783,120784,120785,120786,120787,120788,120789,120790,120791,120792,120793,120794,120795,120796,120797,120798,120799,120800,120801,120802,120803,120804,120805,120806,120807,120808,120809,120810,120811,120812,120813,120814,120815,120816,120817,120818,120819,120820,120821,120822,120823,120824,120825,120826,120827,120828,120829,120830,120831,125127,125128,125129,125130,125131,125132,125133,125134,125135,127232,127233,127234,127235,127236,127237,127238,127239,127240,127241,127242,127243,127244]},{}],5:[function(t,e,r){r.Z=[32,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288]},{}],6:[function(t,e,r){!function(){var r=t("./L").L,n=t("./N").N,i=t("./Z").Z,o=t("./M").M,u=t("unorm"),s=function(t){return~r.indexOf(t)?"L":~n.indexOf(t)?"N":~i.indexOf(t)?"Z":~o.indexOf(t)?"M":void 0};e.exports=function(t,e){t=t||"",e=e||{};for(var r=e.allowedChars||"-_~",n="boolean"!=typeof e.lower||e.lower,i="boolean"==typeof e.spaces&&e.spaces,o=[],f=u.nfkc(t),a=0;a<f.length;a++){var h=f[a],c=h.charCodeAt(0);if(19968<=c&&c<=40959)o.push(h);else if(44032<=c&&c<=55203)o.push(h);else if((12288<=c&&c<=12290||65281<=c&&c<=65282)&&o.push(" "),r.indexOf(h)==-1){var l=s(c);l&&~"LNM".indexOf(l)&&o.push(h),l&&~"Z".indexOf(l)&&o.push(" ")}else o.push(h)}var p=o.join("").replace(/^\s+|\s+$/g,"").replace(/\s+/g," ");return i||(p=p.replace(/[\s\-]+/g,"-")),n&&(p=p.toLowerCase()),p}}()},{"./L":2,"./M":3,"./N":4,"./Z":5,unorm:7}],7:[function(e,r,n){!function(e){"use strict";function n(t,e,r){var n=F[e];return n||(n=t(e,r),n.feature&&++b[e>>8&255]>p&&(F[e]=n)),n}function i(t,e,r){var n=65280&e,i
gitextract_7ufm1b_1/ ├── .eslintignore ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── __test__/ │ └── test.js ├── demo.html ├── dist/ │ ├── markdownItTocDoneRight.js │ ├── markdownItTocDoneRight.mjs │ ├── markdownItTocDoneRight.modern.js │ └── markdownItTocDoneRight.umd.js ├── index.js ├── package.json ├── runkit.js ├── tdd.helper.html ├── types/ │ └── index.d.ts └── uslug.js
SYMBOL INDEX (28 symbols across 9 files)
FILE: __test__/test.js
function getMarkdownIt (line 9) | function getMarkdownIt () {
function uslugify (line 17) | function uslugify (text) {
function customFormat (line 21) | function customFormat (content, htmlEncoder) {
FILE: dist/markdownItTocDoneRight.js
function e (line 1) | function e(e){return encodeURIComponent(String(e).trim().toLowerCase().r...
function n (line 1) | function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""...
FILE: dist/markdownItTocDoneRight.mjs
function e (line 1) | function e(e){return encodeURIComponent(String(e).trim().toLowerCase().r...
function n (line 1) | function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""...
FILE: dist/markdownItTocDoneRight.modern.js
function e (line 1) | function e(e){return encodeURIComponent(String(e).trim().toLowerCase().r...
function n (line 1) | function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""...
FILE: dist/markdownItTocDoneRight.umd.js
function e (line 1) | function e(e){return encodeURIComponent(String(e).trim().toLowerCase().r...
function n (line 1) | function n(e){return String(e).replace(/&/g,"&").replace(/"/g,""...
FILE: index.js
function slugify (line 3) | function slugify (x) {
function htmlencode (line 7) | function htmlencode (x) {
function tocPlugin (line 25) | function tocPlugin (md, options) {
FILE: runkit.js
function uslugify (line 2) | function uslugify (x) {
FILE: types/index.d.ts
type TocOptions (line 4) | interface TocOptions {
type TocAst (line 19) | interface TocAst {
FILE: uslug.js
function i (line 1) | function i(u,s){if(!r[u]){if(!e[u]){var f="function"==typeof require&&re...
function n (line 2) | function n(t,e,r){var n=F[e];return n||(n=t(e,r),n.feature&&++b[e>>8&255...
function i (line 2) | function i(t,e,r){var n=65280&e,i=N.udata[n]||{},o=i[e];return o?new N(e...
function o (line 2) | function o(t,e,r){return r?t(e,r):new N(e,null)}
function u (line 2) | function u(t,e,r){var n;if(e<C||C+w<=e&&e<d||d+B<e)return t(e,r);if(C<=e...
function s (line 2) | function s(t,e,r){return e<60||13311<e&&e<42607?new N(e,l):t(e,r)}
function f (line 2) | function f(t){return Z("NFD",t)}
function a (line 2) | function a(t){return Z("NFKD",t)}
function h (line 2) | function h(t){return Z("NFC",t)}
function c (line 2) | function c(t){return Z("NFKC",t)}
function t (line 2) | function t(e,r){var n=r.getDecomp();if(!n||e&&r.isCompatibility())return...
Condensed preview — 19 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (340K chars).
[
{
"path": ".eslintignore",
"chars": 31,
"preview": "node_modules\ncoverage\ndist\nlib\n"
},
{
"path": ".gitignore",
"chars": 22,
"preview": "node_modules\ncoverage\n"
},
{
"path": ".travis.yml",
"chars": 174,
"preview": "language: node_js\nnode_js:\n - \"12\"\n - \"14\"\nafter_success: \"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/cov"
},
{
"path": "CHANGELOG.md",
"chars": 4008,
"preview": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changel"
},
{
"path": "LICENSE",
"chars": 1075,
"preview": "MIT License\n\nCopyright (c) 2018 Fabio Zendhi Nagao\n\nPermission is hereby granted, free of charge, to any person obtainin"
},
{
"path": "Makefile",
"chars": 878,
"preview": "NPM_PACKAGE := $(shell node -e 'process.stdout.write(require(\"./package.json\").name)')\nNPM_VERSION := $(shell node -e 'p"
},
{
"path": "README.md",
"chars": 10778,
"preview": "# markdown-it-toc-done-right\n\nA table of contents (TOC) plugin for [Markdown-it](https://github.com/markdown-it/markdown"
},
{
"path": "__test__/test.js",
"chars": 15705,
"preview": "/* eslint-env jest */\n/* eslint-disable no-template-curly-in-string */\n\nconst markdownIt = require('markdown-it')\nconst "
},
{
"path": "demo.html",
"chars": 9132,
"preview": "<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t\t<title"
},
{
"path": "dist/markdownItTocDoneRight.js",
"chars": 2915,
"preview": "function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\\s+/g,\"-\"))}function n(e){return String("
},
{
"path": "dist/markdownItTocDoneRight.mjs",
"chars": 2915,
"preview": "function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\\s+/g,\"-\"))}function n(e){return String("
},
{
"path": "dist/markdownItTocDoneRight.modern.js",
"chars": 2882,
"preview": "function e(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\\s+/g,\"-\"))}function n(e){return String("
},
{
"path": "dist/markdownItTocDoneRight.umd.js",
"chars": 3104,
"preview": "!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define"
},
{
"path": "index.js",
"chars": 6115,
"preview": "'use strict'\n\nfunction slugify (x) {\n return encodeURIComponent(String(x).trim().toLowerCase().replace(/\\s+/g, '-'))\n}\n"
},
{
"path": "package.json",
"chars": 1520,
"preview": "{\n \"name\": \"markdown-it-toc-done-right\",\n \"version\": \"4.2.0\",\n \"description\": \"Table of contents (TOC) for markdown-i"
},
{
"path": "runkit.js",
"chars": 410,
"preview": "const uslug = require('uslug')\nfunction uslugify (x) {\n return uslug(x)\n}\nconst umd = require('markdown-it')({\n html: "
},
{
"path": "tdd.helper.html",
"chars": 9791,
"preview": "<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t\t<title"
},
{
"path": "types/index.d.ts",
"chars": 751,
"preview": "declare module 'markdown-it-toc-done-right' {\n import { PluginWithOptions } from 'markdown-it';\n\n export interface"
},
{
"path": "uslug.js",
"chars": 261858,
"preview": "!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof defin"
}
]
About this extraction
This page contains the full source code of the nagaozen/markdown-it-toc-done-right GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 19 files (326.2 KB), approximately 144.8k tokens, and a symbol index with 28 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.