Showing preview only (4,636K chars total). Download the full file or copy to clipboard to get everything.
Repository: RealTimeWeb/blockpy
Branch: master
Commit: dd5453cb9f7c
Files: 182
Total size: 79.1 MB
Directory structure:
gitextract_ss_3v7yq/
├── .babelrc
├── .eslintrc.json
├── .github/
│ └── copilot-instructions.md
├── .gitignore
├── .idea/
│ ├── .gitignore
│ ├── blockpy.iml
│ ├── dictionaries/
│ │ └── acbart.xml
│ ├── inspectionProfiles/
│ │ └── Project_Default.xml
│ ├── jsLibraryMappings.xml
│ ├── libraries/
│ │ ├── D3.xml
│ │ └── Skulpt.xml
│ ├── markdown-navigator-enh.xml
│ ├── markdown-navigator.xml
│ ├── markdown.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── vcs.xml
├── LICENSE
├── README.md
├── advertising/
│ ├── BlockPy-flyer.docx
│ ├── Flyer-v2.pptx
│ ├── Shirts.pptx
│ └── major-features.pptx
├── build.py
├── docs/
│ ├── BlockPy.html
│ ├── BlockPyCorgis.html
│ ├── BlockPyDialog.html
│ ├── BlockPyEditor.html
│ ├── BlockPyEngine.html
│ ├── BlockPyEnglish.html
│ ├── BlockPyFeedback.html
│ ├── BlockPyHistory.html
│ ├── BlockPyPresentation.html
│ ├── BlockPyPrinter.html
│ ├── BlockPyServer.html
│ ├── BlockPyToolbar.html
│ ├── LocalStorageWrapper.html
│ ├── PythonToBlocks.html
│ ├── ast_node_visitor.js.html
│ ├── conf.json
│ ├── corgis.js.html
│ ├── custom_blocks.js.html
│ ├── dialog.js.html
│ ├── editor.js.html
│ ├── engine.js.html
│ ├── english.js.html
│ ├── feedback.js.html
│ ├── global.html
│ ├── history.js.html
│ ├── imported.js.html
│ ├── index.html
│ ├── interface.js.html
│ ├── main.js.html
│ ├── presentation.js.html
│ ├── printer.js.html
│ ├── python_errors.js.html
│ ├── python_to_blockly.js.html
│ ├── scripts/
│ │ ├── linenumber.js
│ │ └── prettify/
│ │ ├── Apache-License-2.0.txt
│ │ ├── lang-css.js
│ │ └── prettify.js
│ ├── server.js.html
│ ├── storage.js.html
│ ├── styles/
│ │ ├── jsdoc-default.css
│ │ ├── prettify-jsdoc.css
│ │ └── prettify-tomorrow.css
│ ├── toolbar.js.html
│ └── util.js.html
├── documentation.md
├── image_server.py
├── images/
│ ├── CorgiBlockly2.tif
│ └── plus_minus_h.pdn
├── instructor_api_documentation.py
├── libs/
│ ├── codemirror/
│ │ ├── codemirror.css
│ │ ├── codemirror.js
│ │ ├── diff.js
│ │ ├── django.js
│ │ ├── foldcode.js
│ │ ├── foldgutter.js
│ │ ├── fullscreen.css
│ │ ├── fullscreen.js
│ │ ├── markdown.js
│ │ ├── python-hint.js
│ │ ├── python.js
│ │ ├── shell.js
│ │ ├── show-hint.css
│ │ ├── show-hint.js
│ │ └── yaml-frontmatter.js
│ ├── easymde/
│ │ └── easymde.css
│ ├── filepond/
│ │ ├── filepond-plugin-file-poster.css
│ │ ├── filepond-plugin-file-poster.js
│ │ ├── filepond-plugin-image-preview.css
│ │ └── filepond-plugin-image-preview.js
│ ├── hinting/
│ │ ├── javascript-hint.js
│ │ ├── python-hint.js
│ │ ├── show-hint.css
│ │ └── show-hint.js
│ ├── jquery/
│ │ ├── jquery-ui.css
│ │ ├── jquery.hotkeys.js
│ │ ├── jquery.multi-select.js
│ │ └── multi-select.css
│ ├── knockout/
│ │ ├── knockout-3.5.0.debug.js
│ │ └── knockout-3.5.0.js
│ ├── sql/
│ │ └── sql.js
│ └── summernote/
│ ├── summernote-ext-hello.js
│ ├── summernote-ext-hint.js
│ ├── summernote-ext-video.js
│ ├── summernote.css
│ └── summernote.js
├── makefile
├── merge.py
├── npm-shrinkwrap.json
├── package.json
├── src/
│ ├── blockly_blocks/
│ │ ├── parking.js
│ │ └── turtles.js
│ ├── blockpy.js
│ ├── console.js
│ ├── corgis.js
│ ├── css/
│ │ ├── blockpy.css
│ │ └── bootstrap_retheme.css
│ ├── dialog.js
│ ├── editor/
│ │ ├── abstract_editor.js
│ │ ├── assignment_settings.js
│ │ ├── default_header.js
│ │ ├── images.js
│ │ ├── json.js
│ │ ├── markdown.js
│ │ ├── python.js
│ │ ├── quiz.js
│ │ ├── sample_submissions.js
│ │ ├── tags.js
│ │ ├── text.js
│ │ └── toolbox.js
│ ├── editors.js
│ ├── engine/
│ │ ├── configurations.js
│ │ ├── eval.js
│ │ ├── instructor.js
│ │ ├── on_change.js
│ │ ├── on_eval.js
│ │ ├── on_run.js
│ │ ├── on_sample.js
│ │ ├── run.js
│ │ ├── sample.js
│ │ └── student.js
│ ├── engine.js
│ ├── feedback.js
│ ├── files.js
│ ├── footer.js
│ ├── history.js
│ ├── interface.js
│ ├── server.js
│ ├── skulpt_modules/
│ │ ├── coverage.js
│ │ ├── image.js
│ │ ├── matplotlib2.js
│ │ ├── pedal_tracer.js
│ │ ├── sk_mod_instructor.js
│ │ └── weakref.js
│ ├── storage.js
│ ├── toolbar.js
│ ├── trace.js
│ └── utilities.js
├── tests/
│ ├── block_coloration.html
│ ├── canvas_frame.html
│ ├── d3test.html
│ ├── example_pil.py
│ ├── example_server.py
│ ├── index.html
│ ├── index_v4.html
│ ├── jsplotlib_test.html
│ ├── multiple.html
│ ├── python_files/
│ │ ├── assignment.py
│ │ ├── dummy.py
│ │ ├── example.py
│ │ ├── grader.py
│ │ ├── invalid.py
│ │ ├── simple.py
│ │ ├── triple_quotes.py
│ │ └── weather.py
│ ├── replay.html
│ └── treeCompTest.html
├── todo.txt
└── webpack.config.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .babelrc
================================================
{
"presets": ["@babel/preset-env"]
}
================================================
FILE: .eslintrc.json
================================================
{
"env": {
"es6": true,
"browser": true
},
"rules": {
"no-mixed-spaces-and-tabs": "error",
"indent": ["error", 4, {
"SwitchCase": 1,
"ArrayExpression": "first",
"CallExpression": {"arguments": "first"},
"flatTernaryExpressions": true
}],
"curly": ["error", "all"],
"semi": ["error", "always"],
"brace-style": ["error", "1tbs", {"allowSingleLine": true}],
"quotes": ["error", "double", {"avoidEscape": true}]
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2019
}
}
================================================
FILE: .github/copilot-instructions.md
================================================
# BlockPy Development Instructions
BlockPy is a web-based Python environment combining visual blocks (Blockly) and text editing, with Skulpt for client-side Python execution. It's designed for data science education with guided feedback and state exploration tools.
**Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.**
## Critical Setup Requirements
**NEVER CANCEL builds or long-running commands** - All build operations require completion for proper validation.
### Essential Dependencies and Timing
- **Node.js Compatibility**: Requires `NODE_OPTIONS="--openssl-legacy-provider"` for Node.js 17+ due to webpack 4.x compatibility
- **npm install**: Use `npm install --legacy-peer-deps` (takes ~32 seconds, NEVER CANCEL - set timeout to 60+ seconds)
- **Build process**: `NODE_OPTIONS="--openssl-legacy-provider" npm run build` (takes ~11 seconds, NEVER CANCEL - set timeout to 60+ seconds)
- **Linting**: `npx eslint src/blockpy.js` (takes ~1.3 seconds)
### Working With This Repository
**CRITICAL**: This repository is part of a larger ecosystem and cannot run fully standalone. The complete setup requires multiple sibling repositories:
```
blockpy-edu/
skulpt/ # Python-to-JS compiler
blockly/ # Visual blocks library
BlockMirror/ # Block-text conversion
blockpy/ # This repository
pedal-edu/
pedal/ # Feedback system
curriculum-ctvt/
curriculum-sneks/
```
## Build and Development Commands
### Initial Setup
```bash
# Install dependencies (NEVER CANCEL - takes ~32 seconds)
npm install --legacy-peer-deps
```
### Building the Project
```bash
# Development build with watch mode (runs continuously)
NODE_OPTIONS="--openssl-legacy-provider" npm run dev
# Production build (NEVER CANCEL - takes ~11 seconds)
NODE_OPTIONS="--openssl-legacy-provider" npm run build
```
### Code Quality
```bash
# Lint JavaScript code (~1.3 seconds)
npx eslint src/blockpy.js
# Lint all JS files in src/
npx eslint src/
```
### Testing the Build Output
```bash
# Start local web server for testing
python -m http.server 8000
# Access test page at: http://localhost:8000/tests/index.html
# NOTE: Full functionality requires complete ecosystem setup
```
## Validation Scenarios
**Always run these validation steps after making changes:**
1. **Build Validation**: Ensure webpack builds complete successfully and generates `dist/blockpy.js`, `dist/blockpy.css`, and `dist/blockpy.min.js`
2. **Lint Validation**: Run ESLint to catch code style issues before committing
3. **File Structure**: Verify dist files are created with expected sizes (~1.4MB blockpy.js, ~1MB blockpy.min.js, ~38KB blockpy.css)
## Important Limitations and Known Issues
### What Works in This Repository Alone:
- Build process (webpack compilation)
- Code linting (ESLint)
- Static file generation
- Basic web server hosting
### What Requires Full Ecosystem:
- **Complete application functionality** - needs skulpt, blockly, BlockMirror, pedal dependencies
- **Python code execution** - requires skulpt compiler from sibling directory
- **Visual block editing** - requires blockly from sibling directory
- **Block-text conversion** - requires BlockMirror from sibling directory
- **Feedback system** - requires pedal modules from sibling directories
### Broken/Outdated Components:
- `build.py` - fails due to missing `src/interface.html` and `src/instructor/` directory
- `merge.py` - outdated file list, expects different src structure
- `npm test` - not configured, returns error
- Python preprocessing scripts are not needed with current webpack setup
## File Structure and Key Locations
### Critical Source Files:
- `src/blockpy.js` - Main entry point
- `src/editor/` - Editor components (Python, blocks, etc.)
- `src/engine/` - Execution engine and configurations
- `webpack.config.js` - Build configuration
- `tests/index.html` - Main test entry point (requires ecosystem)
### Generated Files (in dist/):
- `blockpy.js` - Development build (~1.4MB)
- `blockpy.min.js` - Production build (~1MB)
- `blockpy.css` - Stylesheets (~38KB)
### Configuration:
- `.eslintrc.json` - ESLint configuration
- `package.json` - npm dependencies and scripts
- `.babelrc` - Babel transpilation settings
## Common Development Tasks
### Making Code Changes:
1. Edit files in `src/` directory
2. Run `NODE_OPTIONS="--openssl-legacy-provider" npm run build`
3. Run `npx eslint src/` to check code quality
4. Test with `python -m http.server 8000` and verify dist files
### Before Committing:
1. **Always build**: `NODE_OPTIONS="--openssl-legacy-provider" npm run build`
2. **Always lint**: `npx eslint src/`
3. **Verify dist files**: Check that `dist/` contains updated builds
4. **Never commit** `node_modules/` or temporary files
### Debugging Build Issues:
- Ensure `NODE_OPTIONS="--openssl-legacy-provider"` is set for Node.js 17+
- Use `--legacy-peer-deps` flag for npm install if dependency conflicts occur
- Check webpack output for specific error messages
- Verify all source files exist before building
## Architecture Notes
BlockPy uses a component-based architecture with KnockoutJS for UI binding. The main execution flow:
1. User code → BlockPy Engine → Configuration classes → Skulpt execution
2. Results → Feedback system → UI updates
3. Editor synchronization between blocks and text via BlockMirror
Key components:
- **Editors**: Python, blocks, markdown, JSON, etc. (`src/editor/`)
- **Engine**: Code execution and configurations (`src/engine/`)
- **Feedback**: Result processing and presentation (`src/feedback.js`)
- **Interface**: UI components and layouts (`src/interface.js`)
**Remember: This codebase is part of a larger educational platform. For full functionality, the complete ecosystem setup is required as described in the main README.md.**
================================================
FILE: .gitignore
================================================
# BlockPy stuff
blockly/
skulpt/
Thumbs.db
ignore/
kennel_dist/
blockly_backup/
data_analysis/
closure-compiler/
research/
test_corgis/
advertising/*.mp4
~*.pptx
# Node Stuff
pids
*.pid
*.seed
*.pid.lock
node_modules/
jspm_packages/
.npm
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
venv/
bin/
build/
develop-eggs/
dist/
!server/static/skulpt/dist
eggs/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.cache
nosetests.xml
coverage.xml
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Rope
.ropeproject
# Django stuff:
*.log
*.pot
# Sphinx documentation
docs/_build/
================================================
FILE: .idea/.gitignore
================================================
# Default ignored files
/workspace.xml
================================================
FILE: .idea/blockpy.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Knockout" level="project" />
<orderEntry type="library" name="jquery" level="project" />
<orderEntry type="library" name="BlockMirror" level="project" />
<orderEntry type="library" name="Skulpt" level="project" />
<orderEntry type="library" name="Skulpt" level="project" />
<orderEntry type="library" name="D3" level="project" />
</component>
</module>
================================================
FILE: .idea/dictionaries/acbart.xml
================================================
<component name="ProjectDictionaryState">
<dictionary name="acbart">
<words>
<w>blockly</w>
<w>blockmirror</w>
<w>blockpy</w>
<w>datasets</w>
<w>filewrite</w>
<w>hiddeness</w>
<w>ipynb</w>
<w>linestyle</w>
<w>skulpt</w>
<w>suppressions</w>
<w>timeit</w>
<w>undeletable</w>
<w>unrenamable</w>
<w>xlabel</w>
<w>ylabel</w>
</words>
</dictionary>
</component>
================================================
FILE: .idea/inspectionProfiles/Project_Default.xml
================================================
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="utility" />
</list>
</option>
</inspection_tool>
</profile>
</component>
================================================
FILE: .idea/jsLibraryMappings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{D3, Skulpt}" />
</component>
</project>
================================================
FILE: .idea/libraries/D3.xml
================================================
<component name="libraryTable">
<library name="D3" type="javaScript">
<CLASSES>
<root url="file://$PROJECT_DIR$/libs/d3/d3.6.3.1.min.js" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
================================================
FILE: .idea/libraries/Skulpt.xml
================================================
<component name="libraryTable">
<library name="Skulpt" type="javaScript">
<properties>
<sourceFilesUrls>
<item url="file://$PROJECT_DIR$/../skulpt/dist/skulpt.js" />
</sourceFilesUrls>
</properties>
<CLASSES>
<root url="file://$PROJECT_DIR$/../skulpt/dist/skulpt.js" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
================================================
FILE: .idea/markdown-navigator-enh.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownEnhProjectSettings">
<AnnotatorSettings targetHasSpaces="true" linkCaseMismatch="true" wikiCaseMismatch="true" wikiLinkHasDashes="true" notUnderWikiHome="true" targetNotWikiPageExt="true" notUnderSourceWikiHome="true" targetNameHasAnchor="true" targetPathHasAnchor="true" wikiLinkHasSlash="true" wikiLinkHasSubdir="true" wikiLinkHasOnlyAnchor="true" linkTargetsWikiHasExt="true" linkTargetsWikiHasBadExt="true" notUnderSameRepo="true" targetNotUnderVcs="false" linkNeedsExt="true" linkHasBadExt="true" linkTargetNeedsExt="true" linkTargetHasBadExt="true" wikiLinkNotInWiki="true" imageTargetNotInRaw="true" repoRelativeAcrossVcsRoots="true" multipleWikiTargetsMatch="true" unresolvedLinkReference="true" linkIsIgnored="true" anchorIsIgnored="true" anchorIsUnresolved="true" anchorLineReferenceIsUnresolved="true" anchorLineReferenceFormat="true" anchorHasDuplicates="true" abbreviationDuplicates="true" abbreviationNotUsed="true" attributeIdDuplicateDefinition="true" attributeIdNotUsed="true" footnoteDuplicateDefinition="true" footnoteUnresolved="true" footnoteDuplicates="true" footnoteNotUsed="true" macroDuplicateDefinition="true" macroUnresolved="true" macroDuplicates="true" macroNotUsed="true" referenceDuplicateDefinition="true" referenceUnresolved="true" referenceDuplicates="true" referenceNotUsed="true" referenceUnresolvedNumericId="true" enumRefDuplicateDefinition="true" enumRefUnresolved="true" enumRefDuplicates="true" enumRefNotUsed="true" enumRefLinkUnresolved="true" enumRefLinkDuplicates="true" simTocUpdateNeeded="true" simTocTitleSpaceNeeded="true" />
<HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="css" scriptDir="js" plainHtml="false" imageDir="" copyLinkedImages="false" imagePathType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
<LinkMapSettings>
<textMaps />
</LinkMapSettings>
</component>
<component name="MarkdownNavigatorHistory">
<PasteImageHistory checkeredTransparentBackground="false" filename="image" directory="" onPasteImageTargetRef="3" onPasteLinkText="0" onPasteImageElement="1" onPasteLinkElement="1" onPasteReferenceElement="2" cornerRadius="20" borderColor="0" transparentColor="16777215" borderWidth="1" trimTop="0" trimBottom="0" trimLeft="0" trimRight="0" transparent="false" roundCorners="false" showPreview="true" bordered="false" scaled="false" cropped="false" hideInapplicableOperations="false" preserveLinkFormat="false" scale="50" scalingInterpolation="1" transparentTolerance="0" saveAsDefaultOnOK="false" linkFormat="0" addHighlights="false" showHighlightCoordinates="true" showHighlights="false" mouseSelectionAddsHighlight="false" outerFilled="false" outerFillColor="0" outerFillTransparent="true" outerFillAlpha="30">
<highlightList />
<directories />
<filenames />
</PasteImageHistory>
<CopyImageHistory checkeredTransparentBackground="false" filename="image" directory="" onPasteImageTargetRef="3" onPasteLinkText="0" onPasteImageElement="1" onPasteLinkElement="1" onPasteReferenceElement="2" cornerRadius="20" borderColor="0" transparentColor="16777215" borderWidth="1" trimTop="0" trimBottom="0" trimLeft="0" trimRight="0" transparent="false" roundCorners="false" showPreview="true" bordered="false" scaled="false" cropped="false" hideInapplicableOperations="false" preserveLinkFormat="false" scale="50" scalingInterpolation="1" transparentTolerance="0" saveAsDefaultOnOK="false" linkFormat="0" addHighlights="false" showHighlightCoordinates="true" showHighlights="false" mouseSelectionAddsHighlight="false" outerFilled="false" outerFillColor="0" outerFillTransparent="true" outerFillAlpha="30">
<highlightList />
<directories />
<filenames />
</CopyImageHistory>
<PasteLinkHistory onPasteImageTargetRef="3" onPasteTargetRef="1" onPasteLinkText="0" onPasteImageElement="1" onPasteLinkElement="1" onPasteWikiElement="2" onPasteReferenceElement="2" hideInapplicableOperations="false" preserveLinkFormat="false" useHeadingForLinkText="false" linkFormat="0" saveAsDefaultOnOK="false" />
<TableToJsonHistory>
<entries />
</TableToJsonHistory>
<TableSortHistory>
<entries />
</TableSortHistory>
</component>
</project>
================================================
FILE: .idea/markdown-navigator.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="FlexmarkProjectSettings">
<FlexmarkHtmlSettings flexmarkSpecExampleRendering="0" flexmarkSpecExampleRenderHtml="false">
<flexmarkSectionLanguages>
<option name="1" value="Markdown" />
<option name="2" value="HTML" />
<option name="3" value="flexmark-ast:1" />
</flexmarkSectionLanguages>
</FlexmarkHtmlSettings>
</component>
<component name="MarkdownProjectSettings">
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" synchronizePreviewPosition="true" highlightPreviewType="LINE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="true" showSelectionInPreview="true" lastLayoutSetsDefault="false">
<PanelProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
</PanelProvider>
</PreviewSettings>
<ParserSettings gitHubSyntaxChange="false" correctedInvalidSettings="false" emojiShortcuts="1" emojiImages="0">
<PegdownExtensions>
<option name="ANCHORLINKS" value="true" />
<option name="ATXHEADERSPACE" value="true" />
<option name="FENCED_CODE_BLOCKS" value="true" />
<option name="INTELLIJ_DUMMY_IDENTIFIER" value="true" />
<option name="RELAXEDHRULES" value="true" />
<option name="STRIKETHROUGH" value="true" />
<option name="TABLES" value="true" />
<option name="TASKLISTITEMS" value="true" />
</PegdownExtensions>
<ParserOptions>
<option name="COMMONMARK_LISTS" value="true" />
<option name="EMOJI_SHORTCUTS" value="true" />
<option name="GFM_TABLE_RENDERING" value="true" />
<option name="PRODUCTION_SPEC_PARSER" value="true" />
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
</ParserOptions>
</ParserSettings>
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" addPageHeader="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false" plantUmlConversion="0">
<GeneratorProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.text.html.generator" providerName="Unmodified HTML Generator" />
</GeneratorProvider>
<headerTop />
<headerBottom />
<bodyTop />
<bodyBottom />
</HtmlSettings>
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
<StylesheetProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.text.html.css" providerName="No Stylesheet" />
</StylesheetProvider>
<ScriptProviders />
<cssText />
<cssUriHistory />
</CssSettings>
</component>
</project>
================================================
FILE: .idea/markdown.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownSettings">
<enabledExtensions>
<entry key="MermaidLanguageExtension" value="false" />
<entry key="PlantUMLLanguageExtension" value="false" />
</enabledExtensions>
</component>
</project>
================================================
FILE: .idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (blockpy)" project-jdk-type="Python SDK" />
</project>
================================================
FILE: .idea/modules.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/blockpy.iml" filepath="$PROJECT_DIR$/.idea/blockpy.iml" />
</modules>
</component>
</project>
================================================
FILE: .idea/vcs.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
corgis-blockly
==============

BlockPy is a web-based Python environment that lets you work with blocks, text, or both. Designed for Data Science and equipped with powerful tools like the State Explorer and Guided Feedback, the goal of BlockPy is to let you solve authentic, real-world problems.
The goal of BlockPy is to give you a gentle introduction to Python but eventually mature you into a more serious programming environment (such as Spyder or PyCharm). Long-term, we may support some game/animation design stuff that Scratch/Snap does, but that's not the real goal.
The BlockPy project is aimed at solving some hard technical problems: having a block-based environment for a dynamic language can be tricky - are a given pair of square brackets representing list indexing or dictionary indexing? Our goal is to use advanced program analysis techniques to provide excellent support to learners.
Overview
--------
The core architecture of BlockPy is a synthesis of:
* Blockly: a visual library for manipulating a block canvas that can generate equivalent textual code in a variety of languages
* Skulpt: an in-browser Python-to-JavaScript compiler/intepreter, that aims to emulate the full language with precision if not speed.
By combining these two technologies, we end up with a powerful system for writing Python code quickly. Everything is meant to run locally in the client, so there's no complexity of sandboxing students' code on the server.
Installation
------------
First, you're going to need all of our special dependencies. The final structure looks like this:
```
blockpy-edu/
skulpt/
blockly/
BlockMirror/
blockpy/
pedal-edu/
pedal/
curriculum-ctvt
curriculum-sneks
```
1. So you can start by making the two top-level directories:
```shell
$> mkdir blockpy-edu
$> mkdir pedal-edu
```
2. Skulpt is probably the hardest dependency, since you will probably want to modify it.
Note from 4/4/2026: You need to use the `esbuild-source` branch nowadays.
```shell
$> cd blockpy-edu
$> git clone https://github.com/blockpy-edu/skulpt skulpt
$> cd skulpt
$> npm install
$> npm run devbuild
```
3. For many of the remainders, you actually only need the final compiled files (per [this file](https://github.com/blockpy-edu/blockpy/blob/master/tests/index.html#L51-L68)).
But if you want to install each from source, here are the github links:
```shell
$> cd blockpy-edu
$> git clone https://github.com/blockpy-edu/BlockMirror BlockMirror
$> git clone https://github.com/google/blockly blockly
$> cd ../pedal-edu
$> git clone https://github.com/pedal-edu/pedal pedal
$> git clone https://github.com/pedal-edu/curriculum-ctvt curriculum-ctvt
$> git clone https://github.com/pedal-edu/curriculum-sneks curriculum-sneks
```
4. To actually install the BlockPy client, you can do the following:
```
$> cd ../blockpy-edu
$> git clone https://github.com/blockpy-edu/blockpy blockpy
$> cd blockpy
$> npm install
$> npm run dev
```
That should rebuild the files into `dist`. You can then open `tests/index.html` and explore.
================================================
FILE: advertising/Shirts.pptx
================================================
[File too large to display: 14.5 MB]
================================================
FILE: advertising/major-features.pptx
================================================
[File too large to display: 60.1 MB]
================================================
FILE: build.py
================================================
import os
import re
with open('src/interface.html', 'r') as inp:
with open('src/interface.js', 'w') as output:
contents = inp.read()
cleaned_contents = contents.replace('"', '\\"').replace('\n', '')
js_contents = '''
/**
* An automatically generated file, based on interface.html.
* An interesting problem in web development is managing HTML
* code in JS files. Rather than embedding string literals and
* concatenating them, or some other hackish soluion,
* we simply convert an HTML file to a JS string. Therefore,
* relevant edits should be in interface.html instead.
*
* The BlockPyInterface global can be seen as a constant
* representation of the default interface.
*/
BlockPyInterface = "{interface_code}";
'''.format(interface_code=cleaned_contents)
output.write(js_contents)
INSTRUCTOR_ROOT = 'src/instructor/'
with open('src/sk_mod_instructor_extended.js', 'w') as output:
output.write("""
/**
* An automatically generated file, based on the files in `instructors/`.
* We need to have the python code in these files made available in the
* JS files, so we load them in via a preprocessing step.
*/
var $INSTRUCTOR_MODULES_EXTENDED = {};
""")
for instructor_file_name in os.listdir(INSTRUCTOR_ROOT):
with open(INSTRUCTOR_ROOT+instructor_file_name, 'r') as input:
print(instructor_file_name)
contents = input.read()
contents = contents.replace('\\','\\\\').replace('"', '\\"').replace('\n', '\\n')
output.write('$INSTRUCTOR_MODULES_EXTENDED["{module}"] = "{code}"\n'.format(
module = instructor_file_name,
code = contents
))
================================================
FILE: docs/BlockPy.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPy</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPy</h1>
<section>
<header>
<h2>BlockPy</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPy"><span class="type-signature"></span>new BlockPy<span class="signature">(settings, assignment, submission, programs)</span><span class="type-signature"></span></h4>
<div class="description">
Creates an instance of BlockPy
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPy.html">BlockPy</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>settings</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">User level settings (e.g., what view mode, whether to mute semantic errors, etc.)</td>
</tr>
<tr>
<td class="name"><code>assignment</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">Assignment level settings (data about the loaded assignment, user, submission, etc.)</td>
</tr>
<tr>
<td class="name"><code>submission</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">Unused parameter.</td>
</tr>
<tr>
<td class="name"><code>programs</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">Includes the source code of any programs to be loaded</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line49">line 49</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Members</h3>
<h4 class="name" id=".DEFAULT_MODULES"><span class="type-signature">(static) </span>DEFAULT_MODULES<span class="type-signature"> :Array.<String></span></h4>
<div class="description">
The default modules to make available to the user.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Array.<String></span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line242">line 242</a>
</li></ul></dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="initComponents"><span class="type-signature"></span>initComponents<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes each of the relevant components of BlockPy. For more information,
consult each of the component's relevant JS file in turn.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line289">line 289</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initDevelopment"><span class="type-signature"></span>initDevelopment<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initiailizes certain development data, useful for testing out new modules in
Skulpt.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line331">line 331</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initInterface"><span class="type-signature"></span>initInterface<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes the User Inteface for the instance, by loading in the
HTML file (which has been manually encoded into a JS string using
the build.py script). We do this because its a giant hassle to keep
HTML correct when it's stored in JS strings. We should look into
more sophisticated templating features, probably.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line271">line 271</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initMain"><span class="type-signature"></span>initMain<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes the BlockPy object by initializing its interface,
model, and components.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line253">line 253</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initModel"><span class="type-signature"></span>initModel<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Applys the KnockoutJS bindings to the model, instantiating the values into the
HTML.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line281">line 281</a>
</li></ul></dd>
</dl>
<h4 class="name" id="reportError"><span class="type-signature"></span>reportError<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Redundant method for reporting an error. If this is used anywhere, it should be
converted to direct calls to components.feedback.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line341">line 341</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setCode"><span class="type-signature"></span>setCode<span class="signature">(code, name<span class="signature-attributes">nullable</span>)</span><span class="type-signature"> → {Boolean}</span></h4>
<div class="description">
Helper function for setting the current code, optionally in the given filename.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>code</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
</td>
<td class="description last">The new Python source code to set.</td>
</tr>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
<nullable><br>
</td>
<td class="description last">An optional filename (e.g,. '__main__') to update. Defaults to the currently selected filename.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line357">line 357</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
- whether the code was updated (i.e. there was a diff between new and old).
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="turnOnHacks"><span class="type-signature"></span>turnOnHacks<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Function for running any code that fixes bugs and stuff upstream.
Not pleasant that this exists, but better to have it isolated than
just lying about randomly...
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main_v4.js</a>, <a href="main.js.html#line372">line 372</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyCorgis.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyCorgis</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyCorgis</h1>
<section>
<header>
<h2>BlockPyCorgis</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyCorgis"><span class="type-signature"></span>new BlockPyCorgis<span class="signature">(main)</span><span class="type-signature"></span></h4>
<div class="description">
Module that connects to the CORGIS datasets and manages interactions
with them. This includes loading in datasets at launch and on-the-fly.
Note that this has no presence on screen, so it does not have a tag.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyCorgis.html">BlockPyCorgis</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="corgis.js.html">corgis.js</a>, <a href="corgis.js.html#line12">line 12</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="importDataset"><span class="type-signature"></span>importDataset<span class="signature">(slug, name)</span><span class="type-signature"> → {Array.<Deferred>}</span></h4>
<div class="description">
Loads the definitions for a dataset into the environment, including
the dataset (as a JS file), the skulpt bindings, and the blockly
bindings. This requires access to a CORGIS server, and occurs
asynchronously. The requests are fired and their deferred objects
are returned - callers can use this information to perform an action
on completion of the import.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>slug</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The URL safe version of the dataset name</td>
</tr>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The user-friendly version of the dataset name.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="corgis.js.html">corgis.js</a>, <a href="corgis.js.html#line52">line 52</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
- Returns the async requests as deferred objects.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.<Deferred></span>
</dd>
</dl>
<h4 class="name" id="openDialog"><span class="type-signature"></span>openDialog<span class="signature">(name)</span><span class="type-signature"></span></h4>
<div class="description">
Opens a dialog box to present the user with the datasets available
through the CORGIS server. This requires a call, so this method
completes asynchronously. The dialog is composed of a table with
buttons to load the datasets (More than one dataset can be loaded
from within the dialog at a time).
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name of the dataset to open. This is basically the user friendly version of the name, though it will be mangled into a slug.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="corgis.js.html">corgis.js</a>, <a href="corgis.js.html#line85">line 85</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyDialog.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyDialog</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyDialog</h1>
<section>
<header>
<h2>BlockPyDialog</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyDialog"><span class="type-signature"></span>new BlockPyDialog<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
A utility object for quickly and conveniently generating dialog boxes.
Unfortunately, this doesn't dynamically create new boxes; it reuses the same one
over and over again. It turns out dynamically generating new dialog boxes
is a pain! So we can't stack them.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyDialog.html">BlockPyDialog</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="dialog.js.html">dialog.js</a>, <a href="dialog.js.html#line12">line 12</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="show"><span class="type-signature"></span>show<span class="signature">(title, body, onclose)</span><span class="type-signature"></span></h4>
<div class="description">
A simple externally available function for popping up a dialog
message. This menu will be draggable by its title.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>title</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The title of the message dialog. Can have HTML.</td>
</tr>
<tr>
<td class="name"><code>body</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The body of the message dialog. Can have HTML.</td>
</tr>
<tr>
<td class="name"><code>onclose</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last">A function to be run when the user closes the dialog.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="dialog.js.html">dialog.js</a>, <a href="dialog.js.html#line28">line 28</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyEditor.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyEditor</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyEditor</h1>
<section>
<header>
<h2>BlockPyEditor</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyEditor"><span class="type-signature"></span>new BlockPyEditor<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
An object that manages the various editors, where users can edit their program. Also manages the
movement between editors.
There are currently four editors:
- Blocks: A Blockly instance
- Text: A CodeMirror instance
- Instructor: Features for changing the assignment and environment settings
- Upload: (Incomplete) A menu for uploading and running code from a desktop file.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyEditor.html">BlockPyEditor</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line15">line 15</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Members</h3>
<h4 class="name" id=".CATEGORY_MAP"><span class="type-signature">(static) </span>CATEGORY_MAP<span class="type-signature"></span></h4>
<div class="description">
Maps short category names in the toolbox to the full XML used to
represent that category as usual. This is kind of a clunky mechanism
for managing the different categories, and doesn't allow us to specify
individual blocks.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line819">line 819</a>
</li></ul></dd>
</dl>
<h4 class="name" id="previousLine"><span class="type-signature"></span>previousLine<span class="type-signature"></span></h4>
<h5 class="subsection-title">Properties:</h5>
<table class="props">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>previousLine</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">Keeps track of the previously highlighted line.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line643">line 643</a>
</li></ul></dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="addAvailableModule"><span class="type-signature"></span>addAvailableModule<span class="signature">(name)</span><span class="type-signature"></span></h4>
<div class="description">
Makes the module available in the availableModules multi-select menu by adding
it to the list.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name of the module (human-friendly version, as opposed to the slug) to be added.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line214">line 214</a>
</li></ul></dd>
</dl>
<h4 class="name" id="changeProgram"><span class="type-signature"></span>changeProgram<span class="signature">(name)</span><span class="type-signature"></span></h4>
<div class="description">
Updates the current file being edited in the editors.
This appears to be deprecated.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name of the file being edited (e.g, "__main__", "starting_code")</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line795">line 795</a>
</li></ul></dd>
</dl>
<h4 class="name" id="copyImage"><span class="type-signature"></span>copyImage<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Shows a dialog window with the current block workspace encoded as a
downloadable PNG image.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line1090">line 1090</a>
</li></ul></dd>
</dl>
<h4 class="name" id="getBlocksFromXml"><span class="type-signature"></span>getBlocksFromXml<span class="signature">()</span><span class="type-signature"> → {XMLDom}</span></h4>
<div class="description">
Helper function for retrieving the current Blockly workspace as
an XML DOM object.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line626">line 626</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The blocks in the current workspace.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">XMLDom</span>
</dd>
</dl>
<h4 class="name" id="getHighlightMap"><span class="type-signature"></span>getHighlightMap<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
DEPRECATED, thankfully
Builds up an array indicating the relevant block ID for a given step.
Operates on the current this.blockly instance
It works by injecting __HIGHLIGHT__(id); at the start of every line of code
and then extracting that with regular expressions. This makes it vulnerable
if someone decides to use __HIGHLIGHT__ in their code. I'm betting on that
never being a problem, though. Still, this was a miserable way of accomplishing
the desired behavior.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line767">line 767</a>
</li></ul></dd>
</dl>
<h4 class="name" id="getPngFromBlocks"><span class="type-signature"></span>getPngFromBlocks<span class="signature">(callback)</span><span class="type-signature"></span></h4>
<div class="description">
Generates a PNG version of the current workspace. This PNG is stored in a Base-64 encoded
string as part of a data URL (e.g., "data:image/png;base64,...").
TODO: There seems to be some problems capturing blocks that don't start with
statement level blocks (e.g., expression blocks).
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last">A function to be called with the results. This function should take two parameters, the URL (as a string) of the generated base64-encoded PNG and the IMG tag.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line1027">line 1027</a>
</li></ul></dd>
</dl>
<h4 class="name" id="hideBlockMenu"><span class="type-signature"></span>hideBlockMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Hides the Block tab, which involves shrinking it and hiding the Blockly instance.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line280">line 280</a>
</li></ul></dd>
</dl>
<h4 class="name" id="hideInstructorMenu"><span class="type-signature"></span>hideInstructorMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Hides the Instructor tab, which shrinking it.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line319">line 319</a>
</li></ul></dd>
</dl>
<h4 class="name" id="hideSplitMenu"><span class="type-signature"></span>hideSplitMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Hides the Text tab, which involves shrinking it and hiding its CodeMirror too.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line224">line 224</a>
</li></ul></dd>
</dl>
<h4 class="name" id="hideTextMenu"><span class="type-signature"></span>hideTextMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Hides the Text tab, which involves shrinking it and hiding its CodeMirror too.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line248">line 248</a>
</li></ul></dd>
</dl>
<h4 class="name" id="hideUploadMenu"><span class="type-signature"></span>hideUploadMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Hides the Upload tab, which shrinking it.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line303">line 303</a>
</li></ul></dd>
</dl>
<h4 class="name" id="highlightBlock"><span class="type-signature"></span>highlightBlock<span class="signature">(block)</span><span class="type-signature"></span></h4>
<div class="description">
Highlights a block in Blockly. Unfortunately, this is the same as selecting it.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The ID of the block object to highlight.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line692">line 692</a>
</li></ul></dd>
</dl>
<h4 class="name" id="highlightError"><span class="type-signature"></span>highlightError<span class="signature">(line)</span><span class="type-signature"></span></h4>
<div class="description">
Highlights a line of code in the CodeMirror instance. This applies the "error" style
which is meant to suggest that a line is wrong.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The line of code to highlight. I think this is zero indexed?</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line677">line 677</a>
</li></ul></dd>
</dl>
<h4 class="name" id="highlightLine"><span class="type-signature"></span>highlightLine<span class="signature">(line)</span><span class="type-signature"></span></h4>
<div class="description">
Highlights a line of code in the CodeMirror instance. This applies the "active" style
which is meant to bring attention to a line, but not suggest it is wrong.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The line of code to highlight. I think this is zero indexed?</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line662">line 662</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initBlockly"><span class="type-signature"></span>initBlockly<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes the Blockly instance (handles all the blocks). This includes
attaching a number of ChangeListeners that can keep the internal code
representation updated and enforce type checking.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line79">line 79</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initInstructor"><span class="type-signature"></span>initInstructor<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes the Instructor tab, which has a number of buttons and menus for
manipulating assignments and the environment. One important job is to register the
SummerNote instance used for editing the Introduction of the assignment.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line185">line 185</a>
</li></ul></dd>
</dl>
<h4 class="name" id="initText"><span class="type-signature"></span>initText<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes the CodeMirror instance. This handles text editing (with syntax highlighting)
and also attaches a listener for change events to update the internal code represntation.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line138">line 138</a>
</li></ul></dd>
</dl>
<h4 class="name" id="refreshBlockHighlight"><span class="type-signature"></span>refreshBlockHighlight<span class="signature">(line)</span><span class="type-signature"></span></h4>
<div class="description">
Used to restore a block's highlight when travelling from the code tab. This
uses a mapping between the blocks and text that is generated from the parser.
The parser has stored the relevant line numbers for each block in the XML of the
block. Very sophisticated, and sadly fairly fragile.
TODO: I believe there's some kind of off-by-one error here...
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The line of code to highlight. I think this is zero indexed?</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line705">line 705</a>
</li></ul></dd>
</dl>
<h4 class="name" id="refreshHighlight"><span class="type-signature"></span>refreshHighlight<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Assuming that a line has been highlighted previously, this will set the
line to be highlighted again. Used when we need to restore a highlight.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line649">line 649</a>
</li></ul></dd>
</dl>
<h4 class="name" id="resetBlockSilence"><span class="type-signature"></span>resetBlockSilence<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Resets the silenceBlock after a short delay
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line576">line 576</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setBlocksFromXml"><span class="type-signature"></span>setBlocksFromXml<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Helper function for setting the current Blockly workspace to
whatever XML DOM is given. This clears out any existing blocks.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line634">line 634</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setLevel"><span class="type-signature"></span>setLevel<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Eventually will be used to update "levels" of sophistication of the code interface.
Currently unimplemented and unused.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line809">line 809</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setMode"><span class="type-signature"></span>setMode<span class="signature">(mode)</span><span class="type-signature"></span></h4>
<div class="description">
Dispatch method to set the mode to the given argument.
If the mode is invalid, an editor error is reported. If the
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>mode</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The new mode to set to ("Blocks", "Text", "Upload", or "Instructor")</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line427">line 427</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setModeToBlocks"><span class="type-signature"></span>setModeToBlocks<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Sets the current editor mode to Blocks, hiding the other menus.
Also forces the block side to update.
There is a chance this could fail, if the text side is irredeemably
awful. So then the editor bounces back to the text side.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line350">line 350</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setModeToInstructor"><span class="type-signature"></span>setModeToInstructor<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Sets the current editor mode to the Instructor mode, hiding the other menus.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line404">line 404</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setModeToSplit"><span class="type-signature"></span>setModeToSplit<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Sets the current editor mode to Split mode, hiding the other menus.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line390">line 390</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setModeToText"><span class="type-signature"></span>setModeToText<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Sets the current editor mode to Text, hiding the other menus.
Also forces the text side to update.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line336">line 336</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setModeToUpload"><span class="type-signature"></span>setModeToUpload<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Sets the current editor mode to Upload mode, hiding the other menus.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line379">line 379</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setText"><span class="type-signature"></span>setText<span class="signature">(code)</span><span class="type-signature"></span></h4>
<div class="description">
Actually changes the value of the CodeMirror instance
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>code</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The new code for the CodeMirror</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line455">line 455</a>
</li></ul></dd>
</dl>
<h4 class="name" id="showBlockMenu"><span class="type-signature"></span>showBlockMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Shows the Block tab, which involves restoring its height and showing the Blockly instance.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line290">line 290</a>
</li></ul></dd>
</dl>
<h4 class="name" id="showInstructorMenu"><span class="type-signature"></span>showInstructorMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Shows the Instructor tab, which involves restoring its height.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line327">line 327</a>
</li></ul></dd>
</dl>
<h4 class="name" id="showSplitMenu"><span class="type-signature"></span>showSplitMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Shows the Text tab, which requires restoring its height, showing AND refreshing
the CodeMirror instance.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line233">line 233</a>
</li></ul></dd>
</dl>
<h4 class="name" id="showTextMenu"><span class="type-signature"></span>showTextMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Shows the Text tab, which requires restoring its height, showing AND refreshing
the CodeMirror instance.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line259">line 259</a>
</li></ul></dd>
</dl>
<h4 class="name" id="showUploadMenu"><span class="type-signature"></span>showUploadMenu<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Shows the Upload tab, which involves restoring its height.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line311">line 311</a>
</li></ul></dd>
</dl>
<h4 class="name" id="unhighlightBlock"><span class="type-signature"></span>unhighlightBlock<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Removes the outline around a block. Currently unused.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line741">line 741</a>
</li></ul></dd>
</dl>
<h4 class="name" id="unhighlightLines"><span class="type-signature"></span>unhighlightLines<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Removes any highlight in the text code editor.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line749">line 749</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateBlocks"><span class="type-signature"></span>updateBlocks<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Attempts to update the model for the current code file from the
block workspace. Might be prevented if an update event was already
percolating.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line531">line 531</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateBlocksFromModel"><span class="type-signature"></span>updateBlocksFromModel<span class="signature">()</span><span class="type-signature"> → {Boolean}</span></h4>
<div class="description">
Updates the block editor from the current code file in the
model. Might be prevented if an update event was already
percolating. This can also report an error if one occurs.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line609">line 609</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Returns true upon success.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="updateTextFromModel"><span class="type-signature"></span>updateTextFromModel<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Updates the text editor from the current code file in the
model. Might be prevented if an update event was already
percolating.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line592">line 592</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateToolbox"><span class="type-signature"></span>updateToolbox<span class="signature">(only_set)</span><span class="type-signature"> → (nullable) {String}</span></h4>
<div class="description">
Creates an updated representation of the Toolboxes XML as currently specified in the
model, using whatever modules have been added or removed. This method can either set it
or just retrieve it for future use.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>only_set</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="description last">Whether to return the XML string or to actually set the XML. False means that it will not update the toolbox!</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="editor.js.html">editor.js</a>, <a href="editor.js.html#line964">line 964</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Possibly returns the XML of the toolbox as a string.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyEngine.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyEngine</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyEngine</h1>
<section>
<header>
<h2>BlockPyEngine</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyEngine"><span class="type-signature"></span>new BlockPyEngine<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
An object for executing Python code and passing the results along to interested components.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyEditor.html">BlockPyEditor</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line9">line 9</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Members</h3>
<h4 class="name" id="onExecutionEnd"><span class="type-signature"></span>onExecutionEnd<span class="type-signature"></span></h4>
<div class="description">
Definable function to be run when execution has fully ended,
whether it succeeds or fails.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line24">line 24</a>
</li></ul></dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="analyze"><span class="type-signature"></span>analyze<span class="signature">()</span><span class="type-signature"> → {Boolean}</span></h4>
<div class="description">
Runs the AbstractInterpreter to get some static information about the code,
including potential semantic errors. It then parses that information to give
feedback.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line177">line 177</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Whether the code was successfully analyzed.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="analyzeVariables"><span class="type-signature"></span>analyzeVariables<span class="signature">()</span><span class="type-signature"> → {Object.<String, AIType>}</span></h4>
<div class="description">
Runs the AbstractInterpreter to get some static information about the code,
in particular the variables' types. This is needed for type checking.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line158">line 158</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Maps variable names (as Strings) to types as constructed by the AbstractIntepreter.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Object.<String, AIType></span>
</dd>
</dl>
<h4 class="name" id="executionEnd_"><span class="type-signature"></span>executionEnd_<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Helper function that will attempt to call the defined onExecutionEnd,
but will do nothing if there is no function defined.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line30">line 30</a>
</li></ul></dd>
</dl>
<h4 class="name" id="lastStep"><span class="type-signature"></span>lastStep<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Called at the end of the Skulpt execution to terminate the executionBuffer
and hand it off to the execution trace in the model.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line143">line 143</a>
</li></ul></dd>
</dl>
<h4 class="name" id="loadEngine"><span class="type-signature"></span>loadEngine<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Initializes the Python Execution engine and the Printer (console).
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line39">line 39</a>
</li></ul></dd>
</dl>
<h4 class="name" id="readFile"><span class="type-signature"></span>readFile<span class="signature">(filename)</span><span class="type-signature"> → {String}</span></h4>
<div class="description">
Used to access Skulpt built-ins. This is pretty generic, taken
almost directly from the Skulpt docs.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>filename</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The python filename (e.g., "os" or "pprint") that will be loaded.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line80">line 80</a>
</li></ul></dd>
</dl>
<h5>Throws:</h5>
<div class="param-desc">
Will throw an error if the file isn't found.
</div>
<h5>Returns:</h5>
<div class="param-desc">
The JavaScript source code of the file (weird, right?)
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
<h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Resets the state of the execution engine, including reinitailizing
the execution buffer (trace, step, etc.), reseting the printer, and
hiding the trace button.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line94">line 94</a>
</li></ul></dd>
</dl>
<h4 class="name" id="run"><span class="type-signature"></span>run<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Runs the given python code, resetting the console and Trace Table.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line251">line 251</a>
</li></ul></dd>
</dl>
<h4 class="name" id="step"><span class="type-signature"></span>step<span class="signature">(variables, lineNumber, columnNumber, filename, astType, ast)</span><span class="type-signature"></span></h4>
<div class="description">
"Steps" the execution of the code, meant to be used as a callback to the Skulpt
environment.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>variables</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">Hash that maps the names of variables (Strings) to their Skulpt representation.</td>
</tr>
<tr>
<td class="name"><code>lineNumber</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The corresponding line number in the source code that is being executed.</td>
</tr>
<tr>
<td class="name"><code>columnNumber</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The corresponding column number in the source code that is being executed. Think of it as the "X" position to the lineNumber's "Y" position.</td>
</tr>
<tr>
<td class="name"><code>filename</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name of the python file being executed (e.g., "__main__.py").</td>
</tr>
<tr>
<td class="name"><code>astType</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">Unused? TODO: What is this?</td>
</tr>
<tr>
<td class="name"><code>ast</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">String-encoded JSON representation of the AST node associated with this element.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="engine.js.html">engine.js</a>, <a href="engine.js.html#line120">line 120</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyEnglish.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyEnglish</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyEnglish</h1>
<section>
<header>
<h2>BlockPyEnglish</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyEnglish"><span class="type-signature"></span>new BlockPyEnglish<span class="signature">(main)</span><span class="type-signature"></span></h4>
<div class="description">
An object for handling the conversion of Python to an English transliteration.
Currently dummied out, but we will bring this feature back.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyEnglish.html">BlockPyEnglish</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="english.js.html">english.js</a>, <a href="english.js.html#line9">line 9</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="openDialog"><span class="type-signature"></span>openDialog<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
A method for opening a dialog with the english transliteration.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="english.js.html">english.js</a>, <a href="english.js.html#line16">line 16</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyFeedback.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyFeedback</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyFeedback</h1>
<section>
<header>
<h2>BlockPyFeedback</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyFeedback"><span class="type-signature"></span>new BlockPyFeedback<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
An object that manages the feedback area, where users are told the state of their
program's execution and given guidance. Also manages the creation of the Trace Table.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyFeedback.html">BlockPyFeedback</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line10">line 10</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="buildTraceTable"><span class="type-signature"></span>buildTraceTable<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Reload the trace table, showing it if it was hidden and
resetting its position to the last step.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line30">line 30</a>
</li></ul></dd>
</dl>
<h4 class="name" id="clear"><span class="type-signature"></span>clear<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Clears any output currently in the feedback area. Also resets the printer and
any highlighted lines in the editor.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line53">line 53</a>
</li></ul></dd>
</dl>
<h4 class="name" id="clearEditorErrors"><span class="type-signature"></span>clearEditorErrors<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Clears any errors from the editor area.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line65">line 65</a>
</li></ul></dd>
</dl>
<h4 class="name" id="complete"><span class="type-signature"></span>complete<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Mark this problem as completed for the student. This will appear in the Feedback area,
and will also unhighlight lines in the editor and log to the server.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line95">line 95</a>
</li></ul></dd>
</dl>
<h4 class="name" id="editorError"><span class="type-signature"></span>editorError<span class="signature">(original, message, line)</span><span class="type-signature"></span></h4>
<div class="description">
Show an error message related to a problem with the editor. This will appear in
the Feedback area, the Printer, and also log to the server. The relevant line of
code or block will also be highlighted.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>original</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that represents the original error message generated by the system.</td>
</tr>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that is a hopefully friendlier message for the user explaining the error.</td>
</tr>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">What line the error occurred on.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line80">line 80</a>
</li></ul></dd>
</dl>
<h4 class="name" id="emptyProgram"><span class="type-signature"></span>emptyProgram<span class="signature">(original, message, line)</span><span class="type-signature"></span></h4>
<div class="description">
Show "Empty Program" error, indicating the student hasn't written any code. This will appear in
the Feedback area, the Printer, and also log to the server. The relevant line of
code or block will also be highlighted.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>original</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that represents the original error message generated by the system.</td>
</tr>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that is a hopefully friendlier message for the user explaining the error.</td>
</tr>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">What line the error occurred on.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line221">line 221</a>
</li></ul></dd>
</dl>
<h4 class="name" id="error"><span class="type-signature"></span>error<span class="signature">(html)</span><span class="type-signature"></span></h4>
<div class="description">
Raises a generic warning. This might not be used anymore.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>html</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">Some HTML content to render to the user.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line42">line 42</a>
</li></ul></dd>
</dl>
<h4 class="name" id="finished"><span class="type-signature"></span>finished<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Mark this problem as finished for the student. This will appear in the Feedback area,
and will also unhighlight lines in the editor and log to the server.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line108">line 108</a>
</li></ul></dd>
</dl>
<h4 class="name" id="instructorFeedback"><span class="type-signature"></span>instructorFeedback<span class="signature">(original, message, line)</span><span class="type-signature"></span></h4>
<div class="description">
Show an incorrect code message related to a problem as specified by the Checker. This will appear in
the Feedback area, the Printer, and also log to the server. The relevant line of
code or block will also be highlighted.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>original</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that represents the original error message generated by the system.</td>
</tr>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that is a hopefully friendlier message for the user explaining the error.</td>
</tr>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">What line the error occurred on.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line201">line 201</a>
</li></ul></dd>
</dl>
<h4 class="name" id="internalError"><span class="type-signature"></span>internalError<span class="signature">(original, message, line)</span><span class="type-signature"></span></h4>
<div class="description">
Show an error message related to a serious internal BlockPy program. Under normal conditions,
this should never appear to a student. This will appear in
the Feedback area, the Printer, and also log to the server. The relevant line of
code or block will also be highlighted.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>original</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that represents the original error message generated by the system.</td>
</tr>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that is a hopefully friendlier message for the user explaining the error.</td>
</tr>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">What line the error occurred on.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line182">line 182</a>
</li></ul></dd>
</dl>
<h4 class="name" id="noErrors"><span class="type-signature"></span>noErrors<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
This notifies the student that their code ran without errors, but that there was no
Success raised by the Checker. This will appear in the Feedback area,
and will also unhighlight lines in the editor and log to the server.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line122">line 122</a>
</li></ul></dd>
</dl>
<h4 class="name" id="prettyPrintError"><span class="type-signature"></span>prettyPrintError<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Converts any kind of error (usually a Skulpt one) into a prettier version that's ready
for users to see. If it's already a string, it is passed along unchanged. But Skulpt
errors have to be processed more closely.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line234">line 234</a>
</li></ul></dd>
</dl>
<h4 class="name" id="printError"><span class="type-signature"></span>printError<span class="signature">(error)</span><span class="type-signature"></span></h4>
<div class="description">
Print an error to the printers -- the on screen one and the browser one. This
will attempt to provide extra explanation and context for an error.
Notice that this is largely for Run-time errors that will be thrown when the code
is executed, as opposed to ones raised elsewhere in the environment.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>error</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The error message to be analyzed and printed.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line255">line 255</a>
</li></ul></dd>
</dl>
<h4 class="name" id="semanticError"><span class="type-signature"></span>semanticError<span class="signature">(original, message, line)</span><span class="type-signature"></span></h4>
<div class="description">
Show an error message related to semantic error with the program (e.g., unused variable).
This will appear in the Feedback area, the Printer, and also log to the server. The
relevant line of code or block will also be highlighted.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>original</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that represents the original error message generated by the system.</td>
</tr>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that is a hopefully friendlier message for the user explaining the error.</td>
</tr>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">What line the error occurred on.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line160">line 160</a>
</li></ul></dd>
</dl>
<h4 class="name" id="syntaxError"><span class="type-signature"></span>syntaxError<span class="signature">(original, message, line)</span><span class="type-signature"></span></h4>
<div class="description">
Show an error message related to syntax issue. This will appear in
the Feedback area, the Printer, and also log to the server. The relevant line of
code or block will also be highlighted.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>original</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that represents the original error message generated by the system.</td>
</tr>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">HTML content that is a hopefully friendlier message for the user explaining the error.</td>
</tr>
<tr>
<td class="name"><code>line</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">What line the error occurred on.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="feedback.js.html">feedback.js</a>, <a href="feedback.js.html#line140">line 140</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyHistory.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyHistory</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyHistory</h1>
<section>
<header>
<h2>BlockPyHistory</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyHistory"><span class="type-signature"></span>new BlockPyHistory<span class="signature">(main)</span><span class="type-signature"></span></h4>
<div class="description">
An object for displaying the user's coding logs (their history).
A lightweight component, its only job is to open a dialog.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyHistory.html">BlockPyHistory</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="history.js.html">history.js</a>, <a href="history.js.html#line9">line 9</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="openDialog"><span class="type-signature"></span>openDialog<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Opens the history dialog box. This requires a trip to the server and
occurs asynchronously. The users' code is shown in preformatted text
tags (no code highlighting currently) along with the timestamp.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="history.js.html">history.js</a>, <a href="history.js.html#line52">line 52</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyPresentation.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyPresentation</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyPresentation</h1>
<section>
<header>
<h2>BlockPyPresentation</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyPresentation"><span class="type-signature"></span>new BlockPyPresentation<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
An object for managing the blob of text at the top of a problem describing it.
This isn't a very busy component.
TODO: Isn't most of this redundant now?
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyEditor.html">BlockPyEditor</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="presentation.js.html">presentation.js</a>, <a href="presentation.js.html#line12">line 12</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="closeEditor"><span class="type-signature"></span>closeEditor<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Removes the editor when it's not in use.
DEPRECATED
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="presentation.js.html">presentation.js</a>, <a href="presentation.js.html#line24">line 24</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setBody"><span class="type-signature"></span>setBody<span class="signature">(content)</span><span class="type-signature"></span></h4>
<div class="description">
Updates the contents of the presentation blob, possibly updating the
editor's size too.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>content</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The new text of the presentation blob.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="presentation.js.html">presentation.js</a>, <a href="presentation.js.html#line34">line 34</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setVisible"><span class="type-signature"></span>setVisible<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Makes the editor available or not.
DEPRECATED.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="presentation.js.html">presentation.js</a>, <a href="presentation.js.html#line43">line 43</a>
</li></ul></dd>
</dl>
<h4 class="name" id="startEditor"><span class="type-signature"></span>startEditor<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Creates the Summer Note editor for the presentation blob.
DEPRECATED.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="presentation.js.html">presentation.js</a>, <a href="presentation.js.html#line55">line 55</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyPrinter.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyPrinter</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyPrinter</h1>
<section>
<header>
<h2>BlockPyPrinter</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyPrinter"><span class="type-signature"></span>new BlockPyPrinter<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
An object for managing the console where printing and plotting is outputed.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyEditor.html">BlockPyEditor</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="printer.js.html">printer.js</a>, <a href="printer.js.html#line9">line 9</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="getConfiguration"><span class="type-signature"></span>getConfiguration<span class="signature">()</span><span class="type-signature"> → {Object}</span></h4>
<div class="description">
Update and return the current configuration of the printer. This
involves calculating its size, among other operations.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="printer.js.html">printer.js</a>, <a href="printer.js.html#line39">line 39</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Returns an object with information about the printer.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Object</span>
</dd>
</dl>
<h4 class="name" id="print"><span class="type-signature"></span>print<span class="signature">(lineText)</span><span class="type-signature"></span></h4>
<div class="description">
Print a successful line to the on-screen printer.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>lineText</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">A line of text to be printed out.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="printer.js.html">printer.js</a>, <a href="printer.js.html#line71">line 71</a>
</li></ul></dd>
</dl>
<h4 class="name" id="printHtml"><span class="type-signature"></span>printHtml<span class="signature">(html, value)</span><span class="type-signature"></span></h4>
<div class="description">
Prints a successful HTML blob to the printer. This is typically charts,
but it can actually be any kind of HTML. This will probably be useful for
doing Turtle and Processing stuff down the road.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>html</code></td>
<td class="type">
<span class="param-type">HTML</span>
</td>
<td class="description last">A blob of HTML to render in the tag</td>
</tr>
<tr>
<td class="name"><code>value</code></td>
<td class="type">
<span class="param-type">Anything</span>
</td>
<td class="description last">a value to push on the outputList for comparison. For instance, on charts this is typically the data of the chart.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="printer.js.html">printer.js</a>, <a href="printer.js.html#line104">line 104</a>
</li></ul></dd>
</dl>
<h4 class="name" id="resetPrinter"><span class="type-signature"></span>resetPrinter<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Reset the status of the printer, including removing any text in it and
fixing its size.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="printer.js.html">printer.js</a>, <a href="printer.js.html#line23">line 23</a>
</li></ul></dd>
</dl>
<h4 class="name" id="stepPrinter"><span class="type-signature"></span>stepPrinter<span class="signature">(step, page)</span><span class="type-signature"></span></h4>
<div class="description">
Updates each printed element in the printer and makes it hidden
or visible, depending on what step we're on.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>step</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">The current step of the executed program that we're on; each element in the printer must be marked with a "data-step" property to resolve this.</td>
</tr>
<tr>
<td class="name"><code>page</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last">Deprecated, not sure what this even does.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="printer.js.html">printer.js</a>, <a href="printer.js.html#line57">line 57</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyServer.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyServer</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyServer</h1>
<section>
<header>
<h2>BlockPyServer</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyServer"><span class="type-signature"></span>new BlockPyServer<span class="signature">(main)</span><span class="type-signature"></span></h4>
<div class="description">
Object for communicating with the external servers. This includes functionality for
saving and loading files, logging events, saving completions, and retrieving history.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyServer.html">BlockPyServer</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="server.js.html">server.js</a>, <a href="server.js.html#line9">line 9</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="finalizeSubscriptions"><span class="type-signature"></span>finalizeSubscriptions<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Some subscriptions have to happen after other things have been loaded.
Right now this is just after CORGIS libraries have been loaded, but maybe
we'll add more later and this will need to be refactored.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="server.js.html">server.js</a>, <a href="server.js.html#line46">line 46</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/BlockPyToolbar.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: BlockPyToolbar</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: BlockPyToolbar</h1>
<section>
<header>
<h2>BlockPyToolbar</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="BlockPyToolbar"><span class="type-signature"></span>new BlockPyToolbar<span class="signature">(main, tag)</span><span class="type-signature"></span></h4>
<div class="description">
An object that manages the main toolbar, including the different mode buttons.
This doesn't actually have many responsibilities after the initial load.
</div>
<h5>This:</h5>
<ul><li>{<a href="BlockPyToolbar.html">BlockPyToolbar</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>main</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The main BlockPy instance</td>
</tr>
<tr>
<td class="name"><code>tag</code></td>
<td class="type">
<span class="param-type">HTMLElement</span>
</td>
<td class="description last">The HTML object this is attached to.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="toolbar.js.html">toolbar.js</a>, <a href="toolbar.js.html#line10">line 10</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="activateToolbar"><span class="type-signature"></span>activateToolbar<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Register click events for more complex toolbar actions.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="toolbar.js.html">toolbar.js</a>, <a href="toolbar.js.html#line74">line 74</a>
</li></ul></dd>
</dl>
<h4 class="name" id="addProgram"><span class="type-signature"></span>addProgram<span class="signature">(name)</span><span class="type-signature"></span></h4>
<div class="description">
Add a new button for the given filename in the Programs button group.
These programs will be things like "__main__".
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name of the new program.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="toolbar.js.html">toolbar.js</a>, <a href="toolbar.js.html#line49">line 49</a>
</li></ul></dd>
</dl>
<h4 class="name" id="hidePrograms"><span class="type-signature"></span>hidePrograms<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Hide the programs button group.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="toolbar.js.html">toolbar.js</a>, <a href="toolbar.js.html#line67">line 67</a>
</li></ul></dd>
</dl>
<h4 class="name" id="showPrograms"><span class="type-signature"></span>showPrograms<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Show the programs button group.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="toolbar.js.html">toolbar.js</a>, <a href="toolbar.js.html#line60">line 60</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:04 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
================================================
FILE: docs/LocalStorageWrapper.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: LocalStorageWrapper</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: LocalStorageWrapper</h1>
<section>
<header>
<h2>LocalStorageWrapper</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="LocalStorageWrapper"><span class="type-signature"></span>new LocalStorageWrapper<span class="signature">(namespace)</span><span class="type-signature"></span></h4>
<div class="description">
Helper object for interfacing with the LocalStorage. The LocalStorage
browser API allows for offline storage. That API is very unsophisticated,
and is essentially a lame key-value store. This object sits on top
and provides a number of useful utilities, including rudimentarycache
cache expiration.
</div>
<h5>This:</h5>
<ul><li>{<a href="LocalStorageWrapper.html">LocalStorageWrapper</a>}</li></ul>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>namespace</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">A namespace to use in grouping access to localstorage. This keeps access clean and organized, while also making it possible to have multiple LocalStorage connections.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="storage.js.html">storage.js</a>, <a href="storage.js.html#line12">line 12</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">(key)</span><span class="type-signature"></span></h4>
<div class="description">
A method for retrieving the value associated with the given key.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>key</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name of the key to retrieve the value for.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="storage.js.html">storage.js</a>, <a href="storage.js.html#line42">line 42</a>
</li></ul></dd>
gitextract_ss_3v7yq/ ├── .babelrc ├── .eslintrc.json ├── .github/ │ └── copilot-instructions.md ├── .gitignore ├── .idea/ │ ├── .gitignore │ ├── blockpy.iml │ ├── dictionaries/ │ │ └── acbart.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── jsLibraryMappings.xml │ ├── libraries/ │ │ ├── D3.xml │ │ └── Skulpt.xml │ ├── markdown-navigator-enh.xml │ ├── markdown-navigator.xml │ ├── markdown.xml │ ├── misc.xml │ ├── modules.xml │ └── vcs.xml ├── LICENSE ├── README.md ├── advertising/ │ ├── BlockPy-flyer.docx │ ├── Flyer-v2.pptx │ ├── Shirts.pptx │ └── major-features.pptx ├── build.py ├── docs/ │ ├── BlockPy.html │ ├── BlockPyCorgis.html │ ├── BlockPyDialog.html │ ├── BlockPyEditor.html │ ├── BlockPyEngine.html │ ├── BlockPyEnglish.html │ ├── BlockPyFeedback.html │ ├── BlockPyHistory.html │ ├── BlockPyPresentation.html │ ├── BlockPyPrinter.html │ ├── BlockPyServer.html │ ├── BlockPyToolbar.html │ ├── LocalStorageWrapper.html │ ├── PythonToBlocks.html │ ├── ast_node_visitor.js.html │ ├── conf.json │ ├── corgis.js.html │ ├── custom_blocks.js.html │ ├── dialog.js.html │ ├── editor.js.html │ ├── engine.js.html │ ├── english.js.html │ ├── feedback.js.html │ ├── global.html │ ├── history.js.html │ ├── imported.js.html │ ├── index.html │ ├── interface.js.html │ ├── main.js.html │ ├── presentation.js.html │ ├── printer.js.html │ ├── python_errors.js.html │ ├── python_to_blockly.js.html │ ├── scripts/ │ │ ├── linenumber.js │ │ └── prettify/ │ │ ├── Apache-License-2.0.txt │ │ ├── lang-css.js │ │ └── prettify.js │ ├── server.js.html │ ├── storage.js.html │ ├── styles/ │ │ ├── jsdoc-default.css │ │ ├── prettify-jsdoc.css │ │ └── prettify-tomorrow.css │ ├── toolbar.js.html │ └── util.js.html ├── documentation.md ├── image_server.py ├── images/ │ ├── CorgiBlockly2.tif │ └── plus_minus_h.pdn ├── instructor_api_documentation.py ├── libs/ │ ├── codemirror/ │ │ ├── codemirror.css │ │ ├── codemirror.js │ │ ├── diff.js │ │ ├── django.js │ │ ├── foldcode.js │ │ ├── foldgutter.js │ │ ├── fullscreen.css │ │ ├── fullscreen.js │ │ ├── markdown.js │ │ ├── python-hint.js │ │ ├── python.js │ │ ├── shell.js │ │ ├── show-hint.css │ │ ├── show-hint.js │ │ └── yaml-frontmatter.js │ ├── easymde/ │ │ └── easymde.css │ ├── filepond/ │ │ ├── filepond-plugin-file-poster.css │ │ ├── filepond-plugin-file-poster.js │ │ ├── filepond-plugin-image-preview.css │ │ └── filepond-plugin-image-preview.js │ ├── hinting/ │ │ ├── javascript-hint.js │ │ ├── python-hint.js │ │ ├── show-hint.css │ │ └── show-hint.js │ ├── jquery/ │ │ ├── jquery-ui.css │ │ ├── jquery.hotkeys.js │ │ ├── jquery.multi-select.js │ │ └── multi-select.css │ ├── knockout/ │ │ ├── knockout-3.5.0.debug.js │ │ └── knockout-3.5.0.js │ ├── sql/ │ │ └── sql.js │ └── summernote/ │ ├── summernote-ext-hello.js │ ├── summernote-ext-hint.js │ ├── summernote-ext-video.js │ ├── summernote.css │ └── summernote.js ├── makefile ├── merge.py ├── npm-shrinkwrap.json ├── package.json ├── src/ │ ├── blockly_blocks/ │ │ ├── parking.js │ │ └── turtles.js │ ├── blockpy.js │ ├── console.js │ ├── corgis.js │ ├── css/ │ │ ├── blockpy.css │ │ └── bootstrap_retheme.css │ ├── dialog.js │ ├── editor/ │ │ ├── abstract_editor.js │ │ ├── assignment_settings.js │ │ ├── default_header.js │ │ ├── images.js │ │ ├── json.js │ │ ├── markdown.js │ │ ├── python.js │ │ ├── quiz.js │ │ ├── sample_submissions.js │ │ ├── tags.js │ │ ├── text.js │ │ └── toolbox.js │ ├── editors.js │ ├── engine/ │ │ ├── configurations.js │ │ ├── eval.js │ │ ├── instructor.js │ │ ├── on_change.js │ │ ├── on_eval.js │ │ ├── on_run.js │ │ ├── on_sample.js │ │ ├── run.js │ │ ├── sample.js │ │ └── student.js │ ├── engine.js │ ├── feedback.js │ ├── files.js │ ├── footer.js │ ├── history.js │ ├── interface.js │ ├── server.js │ ├── skulpt_modules/ │ │ ├── coverage.js │ │ ├── image.js │ │ ├── matplotlib2.js │ │ ├── pedal_tracer.js │ │ ├── sk_mod_instructor.js │ │ └── weakref.js │ ├── storage.js │ ├── toolbar.js │ ├── trace.js │ └── utilities.js ├── tests/ │ ├── block_coloration.html │ ├── canvas_frame.html │ ├── d3test.html │ ├── example_pil.py │ ├── example_server.py │ ├── index.html │ ├── index_v4.html │ ├── jsplotlib_test.html │ ├── multiple.html │ ├── python_files/ │ │ ├── assignment.py │ │ ├── dummy.py │ │ ├── example.py │ │ ├── grader.py │ │ ├── invalid.py │ │ ├── simple.py │ │ ├── triple_quotes.py │ │ └── weather.py │ ├── replay.html │ └── treeCompTest.html ├── todo.txt └── webpack.config.js
Showing preview only (288K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3175 symbols across 65 files)
FILE: docs/scripts/prettify/prettify.js
function L (line 2) | function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var...
function M (line 6) | function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.classN...
function B (line 7) | function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}
function x (line 7) | function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(...
function u (line 9) | function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''...
function D (line 12) | function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.clas...
function k (line 15) | function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(...
function C (line 15) | function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-m...
function E (line 15) | function E(a){var m=
function m (line 25) | function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Inf...
FILE: image_server.py
class CORSRequestHandler (line 5) | class CORSRequestHandler (SimpleHTTPRequestHandler):
method end_headers (line 6) | def end_headers (self):
FILE: instructor_api_documentation.py
function compliment (line 12) | def compliment(message):
function set_success (line 23) | def set_success():
function explain (line 29) | def explain(message, priority="medium", line=None):
function gently (line 47) | def gently(message):
function suppress (line 54) | def suppress(type, subtype):
function run_student (line 78) | def run_student():
function get_output (line 96) | def get_output():
function queue_input (line 114) | def queue_input(input):
function reset_output (line 124) | def reset_output():
function log (line 130) | def log(message):
function log_ast (line 140) | def log_ast():
function log_variables (line 146) | def log_variables():
function log_behavior (line 153) | def log_behavior():
function log_trace (line 159) | def log_trace():
function log_issues (line 165) | def log_issues():
class StudentData (line 171) | class StudentData():
method get_values_by_type (line 190) | def get_values_by_type(type):
method get_names_by_type (line 202) | def get_names_by_type(type):
function analyze_program (line 220) | def analyze_program():
function parse_program (line 227) | def parse_program():
function get_program (line 236) | def get_program():
function def_use_error (line 245) | def def_use_error(node):
class AstNode (line 258) | class AstNode():
method __init__ (line 283) | def __init__(self, id):
method __eq__ (line 293) | def __eq__(self, other):
method has (line 307) | def has(self, astNode):
method find_all (line 320) | def find_all(self, type):
method numeric_logic_check (line 333) | def numeric_logic_check(self, mag, expr):
function ensure_literal (line 353) | def ensure_literal(*literals):
function prevent_literal (line 363) | def prevent_literal(*literals):
function ensure_operation (line 374) | def ensure_operation(op_name, root=None):
function prevent_operation (line 385) | def prevent_operation(op_name, root=None):
function function_is_called (line 397) | def function_is_called(name):
function only_printing_variables (line 409) | def only_printing_variables():
function find_prior_initializations (line 417) | def find_prior_initializations(node):
function prevent_builtin_usage (line 427) | def prevent_builtin_usage(names):
function prevent_advanced_iteration (line 441) | def prevent_advanced_iteration():
function missing_if_in_for (line 448) | def missing_if_in_for():
function append_not_in_if (line 451) | def append_not_in_if():
function list_length_3_or_more (line 455) | def list_length_3_or_more():
function missing_list_initialization_8_2 (line 458) | def missing_list_initialization_8_2():
function wrong_list_initialization_placement_8_3 (line 461) | def wrong_list_initialization_placement_8_3():
function wrong_accumulator_initialization_placement_8_3 (line 464) | def wrong_accumulator_initialization_placement_8_3():
function wrong_iteration_body_8_3 (line 467) | def wrong_iteration_body_8_3():
function wrong_print_8_3 (line 470) | def wrong_print_8_3():
function missing_target_slot_empty_8_4 (line 473) | def missing_target_slot_empty_8_4():
function missing_addition_slot_empty_8_4 (line 476) | def missing_addition_slot_empty_8_4():
function wrong_names_not_agree_8_4 (line 479) | def wrong_names_not_agree_8_4():
function wrong_should_be_counting (line 482) | def wrong_should_be_counting():
function wrong_should_be_summing (line 485) | def wrong_should_be_summing():
function wrong_cannot_sum_list (line 488) | def wrong_cannot_sum_list():
function missing_no_print (line 491) | def missing_no_print():
function missing_counting_list (line 494) | def missing_counting_list():
function missing_summing_list (line 497) | def missing_summing_list():
function missing_zero_initialization (line 500) | def missing_zero_initialization():
function missing_average (line 503) | def missing_average():
function warning_average_in_iteration (line 506) | def warning_average_in_iteration():
function wrong_average_demoninator (line 509) | def wrong_average_demoninator():
function wrong_average_numerator (line 512) | def wrong_average_numerator():
function wrong_compare_list (line 515) | def wrong_compare_list():
function wrong_for_inside_if (line 518) | def wrong_for_inside_if():
function wrong_list_initialization_9_1 (line 521) | def wrong_list_initialization_9_1():
function wrong_accumulator_initialization_9_1 (line 524) | def wrong_accumulator_initialization_9_1():
function wrong_accumulation_9_1 (line 527) | def wrong_accumulation_9_1():
function wrong_list_initialization_placement_9_1 (line 530) | def wrong_list_initialization_placement_9_1():
function wrong_accumulator_initialization_placement_9_1 (line 533) | def wrong_accumulator_initialization_placement_9_1():
function wrong_iteration_body_9_1 (line 536) | def wrong_iteration_body_9_1():
function wrong_print_9_1 (line 539) | def wrong_print_9_1():
function wrong_list_initialization_9_2 (line 542) | def wrong_list_initialization_9_2():
function wrong_accumulator_initialization_9_2 (line 545) | def wrong_accumulator_initialization_9_2():
function wrong_accumulation_9_2 (line 548) | def wrong_accumulation_9_2():
function wrong_list_initialization_placement_9_2 (line 551) | def wrong_list_initialization_placement_9_2():
function wrong_accumulator_initialization_placement_9_2 (line 554) | def wrong_accumulator_initialization_placement_9_2():
function wrong_iteration_body_9_2 (line 557) | def wrong_iteration_body_9_2():
function wrong_decision_body_9_2 (line 560) | def wrong_decision_body_9_2():
function wrong_print_9_2 (line 563) | def wrong_print_9_2():
function wrong_comparison_9_6 (line 566) | def wrong_comparison_9_6():
function wrong_conversion_10_2 (line 569) | def wrong_conversion_10_2():
function wrong_filter_condition_10_3 (line 572) | def wrong_filter_condition_10_3():
function wrong_and_filter_condition_10_4 (line 575) | def wrong_and_filter_condition_10_4():
function wrong_nested_filter_condition_10_4 (line 578) | def wrong_nested_filter_condition_10_4():
function wrong_conversion_problem_10_5 (line 581) | def wrong_conversion_problem_10_5():
function wrong_filter_problem_atl1_10_5 (line 584) | def wrong_filter_problem_atl1_10_5():
function wrong_filter_problem_atl2_10_5 (line 587) | def wrong_filter_problem_atl2_10_5():
function wrong_append_problem_atl1_10_5 (line 590) | def wrong_append_problem_atl1_10_5():
function wrong_append_problem_atl2_10_5 (line 593) | def wrong_append_problem_atl2_10_5():
function wrong_debug_10_6 (line 596) | def wrong_debug_10_6():
function wrong_debug_10_7 (line 599) | def wrong_debug_10_7():
function histogram_missing (line 603) | def histogram_missing():
function plot_show_missing (line 606) | def plot_show_missing():
function histogram_argument_not_list (line 609) | def histogram_argument_not_list():
function histogram_wrong_list (line 612) | def histogram_wrong_list():
function find_append_in (line 616) | def find_append_in(node):
function missing_append_in_iteration (line 619) | def missing_append_in_iteration():
function wrong_not_append_to_list (line 622) | def wrong_not_append_to_list():
function missing_append_list_initialization (line 625) | def missing_append_list_initialization():
function wrong_append_list_initiatization (line 628) | def wrong_append_list_initiatization():
function append_list_wrong_slot (line 631) | def append_list_wrong_slot():
function all_for_loops (line 635) | def all_for_loops():
function wrong_target_is_list (line 638) | def wrong_target_is_list():
function wrong_list_repeated_in_for (line 641) | def wrong_list_repeated_in_for():
function missing_iterator_initialization (line 644) | def missing_iterator_initialization():
function wrong_iterator_not_list (line 647) | def wrong_iterator_not_list():
function missing_target_slot_empty (line 650) | def missing_target_slot_empty():
function list_not_initialized_on_run (line 653) | def list_not_initialized_on_run():
function list_initialization_misplaced (line 656) | def list_initialization_misplaced():
function missing_for_slot_empty (line 659) | def missing_for_slot_empty():
FILE: libs/codemirror/codemirror.js
function classTest (line 50) | function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)...
function removeChildren (line 61) | function removeChildren(e) {
function removeChildrenAndAdd (line 67) | function removeChildrenAndAdd(parent, e) {
function elt (line 71) | function elt(tag, content, className, style) {
function eltP (line 80) | function eltP(tag, content, className, style) {
function contains (line 103) | function contains(parent, child) {
function activeElt (line 114) | function activeElt() {
function addClass (line 129) | function addClass(node, cls) {
function joinClasses (line 133) | function joinClasses(a, b) {
function bind (line 146) | function bind(f) {
function copyObj (line 151) | function copyObj(obj, target, overwrite) {
function countColumn (line 161) | function countColumn(string, end, tabSize, startIndex, startValue) {
function indexOf (line 182) | function indexOf(array, elt) {
function findColumn (line 200) | function findColumn(string, goal, tabSize) {
function spaceStr (line 215) | function spaceStr(n) {
function lst (line 221) | function lst(arr) { return arr[arr.length-1] }
function map (line 223) | function map(array, f) {
function insertSorted (line 229) | function insertSorted(array, value, score) {
function nothing (line 235) | function nothing() {}
function createObj (line 237) | function createObj(base, props) {
function isWordCharBasic (line 250) | function isWordCharBasic(ch) {
function isWordChar (line 254) | function isWordChar(ch, helper) {
function isEmpty (line 260) | function isEmpty(obj) {
function isExtendingChar (line 271) | function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendi...
function skipExtendingChars (line 274) | function skipExtendingChars(str, pos, dir) {
function findFirst (line 282) | function findFirst(pred, from, to) {
function iterateBidiSections (line 297) | function iterateBidiSections(order, from, to, f) {
function getBidiPartAt (line 311) | function getBidiPartAt(order, ch, sticky) {
function charType (line 357) | function charType(code) {
function BidiSpan (line 370) | function BidiSpan(level, from, to) {
function getOrder (line 502) | function getOrder(line, direction) {
function getHandlers (line 526) | function getHandlers(emitter, type) {
function off (line 530) | function off(emitter, type, f) {
function signal (line 545) | function signal(emitter, type /*, values...*/) {
function signalDOMEvent (line 555) | function signalDOMEvent(cm, e, override) {
function signalCursorActivity (line 562) | function signalCursorActivity(cm) {
function hasHandler (line 570) | function hasHandler(emitter, type) {
function eventMixin (line 576) | function eventMixin(ctor) {
function e_preventDefault (line 584) | function e_preventDefault(e) {
function e_stopPropagation (line 588) | function e_stopPropagation(e) {
function e_defaultPrevented (line 592) | function e_defaultPrevented(e) {
function e_stop (line 595) | function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
function e_target (line 597) | function e_target(e) {return e.target || e.srcElement}
function e_button (line 598) | function e_button(e) {
function zeroWidthElement (line 619) | function zeroWidthElement(measure) {
function hasBadBidiRects (line 634) | function hasBadBidiRects(measure) {
function hasBadZoomedRects (line 683) | function hasBadZoomedRects(measure) {
function defineMode (line 697) | function defineMode(name, mode) {
function defineMIME (line 703) | function defineMIME(mime, spec) {
function resolveMode (line 709) | function resolveMode(spec) {
function getMode (line 728) | function getMode(options, spec) {
function extendMode (line 752) | function extendMode(mode, properties) {
function copyState (line 757) | function copyState(mode, state) {
function innerMode (line 771) | function innerMode(mode, state) {
function startState (line 782) | function startState(mode, a1, a2) {
function getLine (line 874) | function getLine(doc, n) {
function getBetween (line 890) | function getBetween(doc, start, end) {
function getLines (line 902) | function getLines(doc, from, to) {
function updateLineHeight (line 910) | function updateLineHeight(line, height) {
function lineNo (line 917) | function lineNo(line) {
function lineAtHeight (line 931) | function lineAtHeight(chunk, h) {
function isLine (line 951) | function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}
function lineNumberFor (line 953) | function lineNumberFor(options, i) {
function Pos (line 958) | function Pos(line, ch, sticky) {
function cmp (line 969) | function cmp(a, b) { return a.line - b.line || a.ch - b.ch }
function equalCursorPos (line 971) | function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b)...
function copyPos (line 973) | function copyPos(x) {return Pos(x.line, x.ch)}
function maxPos (line 974) | function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }
function minPos (line 975) | function minPos(a, b) { return cmp(a, b) < 0 ? a : b }
function clipLine (line 979) | function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.fi...
function clipPos (line 980) | function clipPos(doc, pos) {
function clipToLen (line 986) | function clipToLen(pos, linelen) {
function clipPosArray (line 992) | function clipPosArray(doc, array) {
function highlightLine (line 1051) | function highlightLine(cm, line, context, forceToEnd) {
function getLineStyles (line 1096) | function getLineStyles(cm, line, updateFrontier) {
function getContextBefore (line 1112) | function getContextBefore(cm, n, precise) {
function processLine (line 1132) | function processLine(cm, text, context, startAt) {
function callBlankLine (line 1143) | function callBlankLine(mode, state) {
function readToken (line 1150) | function readToken(mode, stream, state, inner) {
function takeToken (line 1167) | function takeToken(cm, pos, precise, asArray) {
function extractLineClasses (line 1181) | function extractLineClasses(type, output) {
function runMode (line 1196) | function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {
function findStartLine (line 1240) | function findStartLine(cm, n, precise) {
function retreatFrontier (line 1257) | function retreatFrontier(doc, n) {
function seeReadOnlySpans (line 1277) | function seeReadOnlySpans() {
function seeCollapsedSpans (line 1281) | function seeCollapsedSpans() {
function MarkedSpan (line 1287) | function MarkedSpan(marker, from, to) {
function getMarkedSpanFor (line 1293) | function getMarkedSpanFor(spans, marker) {
function removeMarkedSpan (line 1301) | function removeMarkedSpan(spans, span) {
function addMarkedSpan (line 1308) | function addMarkedSpan(line, span) {
function markedSpansBefore (line 1317) | function markedSpansBefore(old, startCh, isInsert) {
function markedSpansAfter (line 1329) | function markedSpansAfter(old, endCh, isInsert) {
function stretchSpansOverChange (line 1349) | function stretchSpansOverChange(doc, change) {
function clearEmptySpans (line 1411) | function clearEmptySpans(spans) {
function removeReadOnlyRanges (line 1422) | function removeReadOnlyRanges(doc, from, to) {
function detachMarkedSpans (line 1451) | function detachMarkedSpans(line) {
function attachMarkedSpans (line 1458) | function attachMarkedSpans(line, spans) {
function extraLeft (line 1467) | function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }
function extraRight (line 1468) | function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }
function compareCollapsedMarkers (line 1473) | function compareCollapsedMarkers(a, b) {
function collapsedSpanAtSide (line 1486) | function collapsedSpanAtSide(line, start) {
function collapsedSpanAtStart (line 1496) | function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, t...
function collapsedSpanAtEnd (line 1497) | function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, fal...
function collapsedSpanAround (line 1499) | function collapsedSpanAround(line, ch) {
function conflictingCollapsedRange (line 1512) | function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) {
function visualLine (line 1532) | function visualLine(line) {
function visualLineEnd (line 1539) | function visualLineEnd(line) {
function visualLineContinued (line 1548) | function visualLineContinued(line) {
function visualLineNo (line 1559) | function visualLineNo(doc, lineN) {
function visualLineEndNo (line 1567) | function visualLineEndNo(doc, lineN) {
function lineIsHidden (line 1579) | function lineIsHidden(doc, line) {
function lineIsHiddenInner (line 1590) | function lineIsHiddenInner(doc, line, span) {
function heightAtLine (line 1607) | function heightAtLine(lineObj) {
function lineLength (line 1629) | function lineLength(line) {
function findMaxLine (line 1648) | function findMaxLine(cm) {
function updateLine (line 1678) | function updateLine(line, text, markedSpans, estimateHeight) {
function cleanUpLine (line 1690) | function cleanUpLine(line) {
function interpretTokenStyle (line 1699) | function interpretTokenStyle(style, options) {
function buildLineContent (line 1711) | function buildLineContent(cm, lineView) {
function defaultSpecialCharPlaceholder (line 1769) | function defaultSpecialCharPlaceholder(ch) {
function buildToken (line 1778) | function buildToken(builder, text, style, startStyle, endStyle, css, att...
function splitSpaces (line 1845) | function splitSpaces(text, trailingBefore) {
function buildTokenBadBidi (line 1860) | function buildTokenBadBidi(inner, order) {
function buildCollapsedSpan (line 1880) | function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
function insertLineContent (line 1898) | function insertLineContent(line, builder, styles) {
function LineView (line 1977) | function LineView(doc, line, lineN) {
function buildViewArray (line 1989) | function buildViewArray(cm, from, to) {
function pushOperation (line 2001) | function pushOperation(op) {
function fireCallbacksForOps (line 2012) | function fireCallbacksForOps(group) {
function finishOperation (line 2028) | function finishOperation(op, endCb) {
function signalLater (line 2048) | function signalLater(emitter, type /*, values...*/) {
function fireOrphanDelayed (line 2068) | function fireOrphanDelayed() {
function updateLineForChanges (line 2077) | function updateLineForChanges(cm, lineView, lineN, dims) {
function ensureLineWrapped (line 2090) | function ensureLineWrapped(lineView) {
function updateLineBackground (line 2101) | function updateLineBackground(cm, lineView) {
function getLineContent (line 2116) | function getLineContent(cm, lineView) {
function updateLineText (line 2129) | function updateLineText(cm, lineView) {
function updateLineClasses (line 2144) | function updateLineClasses(cm, lineView) {
function updateLineGutter (line 2154) | function updateLineGutter(cm, lineView, lineN, dims) {
function updateLineWidgets (line 2192) | function updateLineWidgets(cm, lineView, dims) {
function buildLineElement (line 2203) | function buildLineElement(cm, lineView, lineN, dims) {
function insertLineWidgets (line 2217) | function insertLineWidgets(cm, lineView, dims) {
function insertLineWidgetsFor (line 2223) | function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
function positionLineWidget (line 2239) | function positionLineWidget(widget, node, lineView, dims) {
function widgetHeight (line 2257) | function widgetHeight(widget) {
function eventInWidget (line 2273) | function eventInWidget(display, e) {
function paddingTop (line 2283) | function paddingTop(display) {return display.lineSpace.offsetTop}
function paddingVert (line 2284) | function paddingVert(display) {return display.mover.offsetHeight - displ...
function paddingH (line 2285) | function paddingH(display) {
function scrollGap (line 2294) | function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }
function displayWidth (line 2295) | function displayWidth(cm) {
function displayHeight (line 2298) | function displayHeight(cm) {
function ensureLineHeights (line 2306) | function ensureLineHeights(cm, lineView, rect) {
function mapFromLineView (line 2327) | function mapFromLineView(lineView, line, lineN) {
function updateExternalMeasurement (line 2340) | function updateExternalMeasurement(cm, line) {
function measureChar (line 2353) | function measureChar(cm, line, ch, bias) {
function findViewForLine (line 2358) | function findViewForLine(cm, lineN) {
function prepareMeasureForLine (line 2371) | function prepareMeasureForLine(cm, line) {
function measureCharPrepared (line 2393) | function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
function nodeAndOffsetInLineMap (line 2415) | function nodeAndOffsetInLineMap(map$$1, ch, bias) {
function getUsefulRect (line 2453) | function getUsefulRect(rects, bias) {
function measureCharInner (line 2463) | function measureCharInner(cm, prepared, ch, bias) {
function maybeUpdateRectForZooming (line 2516) | function maybeUpdateRectForZooming(measure, rect) {
function clearLineMeasurementCacheFor (line 2526) | function clearLineMeasurementCacheFor(lineView) {
function clearLineMeasurementCache (line 2535) | function clearLineMeasurementCache(cm) {
function clearCaches (line 2542) | function clearCaches(cm) {
function pageScrollX (line 2549) | function pageScrollX() {
function pageScrollY (line 2556) | function pageScrollY() {
function widgetTopHeight (line 2561) | function widgetTopHeight(lineObj) {
function intoCoordSystem (line 2572) | function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
function fromCoordSystem (line 2594) | function fromCoordSystem(cm, coords, context) {
function charCoords (line 2611) | function charCoords(cm, pos, context, lineObj, bias) {
function cursorCoords (line 2632) | function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHei...
function estimateCoords (line 2663) | function estimateCoords(cm, pos) {
function PosWithInfo (line 2678) | function PosWithInfo(line, ch, sticky, outside, xRel) {
function coordsChar (line 2687) | function coordsChar(cm, x, y) {
function wrappedLineExtent (line 2707) | function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
function wrappedLineExtentChar (line 2715) | function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
function boxIsAfter (line 2723) | function boxIsAfter(box, x, y, left) {
function coordsCharInner (line 2727) | function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
function coordsBidiPart (line 2794) | function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, ...
function coordsBidiPartWrapped (line 2818) | function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, or...
function textHeight (line 2853) | function textHeight(display) {
function charWidth (line 2873) | function charWidth(display) {
function getDimensions (line 2885) | function getDimensions(cm) {
function compensateForHScroll (line 2903) | function compensateForHScroll(display) {
function estimateHeight (line 2910) | function estimateHeight(cm) {
function estimateLineHeights (line 2928) | function estimateLineHeights(cm) {
function posFromMouse (line 2941) | function posFromMouse(cm, e, liberal, forRect) {
function findViewIndex (line 2959) | function findViewIndex(cm, n) {
function regChange (line 2976) | function regChange(cm, from, to, lendiff) {
function regLineChange (line 3041) | function regLineChange(cm, line, type) {
function resetView (line 3055) | function resetView(cm) {
function viewCuttingPoint (line 3061) | function viewCuttingPoint(cm, oldN, newN, dir) {
function adjustView (line 3088) | function adjustView(cm, from, to) {
function countDirtyView (line 3109) | function countDirtyView(cm) {
function updateSelection (line 3118) | function updateSelection(cm) {
function prepareSelection (line 3122) | function prepareSelection(cm, primary) {
function drawSelectionCursor (line 3143) | function drawSelectionCursor(cm, head, output) {
function cmpCoords (line 3161) | function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }
function drawSelectionRange (line 3164) | function drawSelectionRange(cm, range$$1, output) {
function restartBlink (line 3257) | function restartBlink(cm) {
function ensureFocus (line 3270) | function ensureFocus(cm) {
function delayBlurEvent (line 3274) | function delayBlurEvent(cm) {
function onFocus (line 3282) | function onFocus(cm, e) {
function onBlur (line 3301) | function onBlur(cm, e) {
function updateHeightsInViewport (line 3315) | function updateHeightsInViewport(cm) {
function updateWidgetHeight (line 3354) | function updateWidgetHeight(line) {
function visibleLines (line 3364) | function visibleLines(display, doc, viewport) {
function maybeScrollWindow (line 3389) | function maybeScrollWindow(cm, rect) {
function scrollPosIntoView (line 3406) | function scrollPosIntoView(cm, pos, end, margin) {
function scrollIntoView (line 3440) | function scrollIntoView(cm, rect) {
function calculateScrollPos (line 3450) | function calculateScrollPos(cm, rect) {
function addToScrollTop (line 3480) | function addToScrollTop(cm, top) {
function ensureCursorVisible (line 3488) | function ensureCursorVisible(cm) {
function scrollToCoords (line 3494) | function scrollToCoords(cm, x, y) {
function scrollToRange (line 3500) | function scrollToRange(cm, range$$1) {
function resolveScrollToPos (line 3509) | function resolveScrollToPos(cm) {
function scrollToCoordsRange (line 3518) | function scrollToCoordsRange(cm, from, to, margin) {
function updateScrollTop (line 3530) | function updateScrollTop(cm, val) {
function setScrollTop (line 3538) | function setScrollTop(cm, val, forceScroll) {
function setScrollLeft (line 3548) | function setScrollLeft(cm, val, isScroller, forceScroll) {
function measureForScrollbars (line 3561) | function measureForScrollbars(cm) {
function maybeDisable (line 3653) | function maybeDisable() {
function updateScrollbars (line 3682) | function updateScrollbars(cm, measure) {
function updateScrollbarsInner (line 3696) | function updateScrollbarsInner(cm, measure) {
function initScrollbars (line 3718) | function initScrollbars(cm) {
function startOperation (line 3748) | function startOperation(cm) {
function endOperation (line 3770) | function endOperation(cm) {
function endOperations (line 3781) | function endOperations(group) {
function endOperation_R1 (line 3795) | function endOperation_R1(op) {
function endOperation_W1 (line 3808) | function endOperation_W1(op) {
function endOperation_R2 (line 3812) | function endOperation_R2(op) {
function endOperation_W2 (line 3833) | function endOperation_W2(op) {
function endOperation_finish (line 3858) | function endOperation_finish(op) {
function runInOp (line 3897) | function runInOp(cm, f) {
function operation (line 3904) | function operation(cm, f) {
function methodOp (line 3914) | function methodOp(f) {
function docMethodOp (line 3922) | function docMethodOp(f) {
function startWorker (line 3934) | function startWorker(cm, time) {
function highlightWorker (line 3939) | function highlightWorker(cm) {
function maybeClipScrollbars (line 4009) | function maybeClipScrollbars(cm) {
function selectionSnapshot (line 4020) | function selectionSnapshot(cm) {
function restoreSelection (line 4037) | function restoreSelection(snapshot) {
function updateDisplayIfNeeded (line 4053) | function updateDisplayIfNeeded(cm, update) {
function postUpdateDisplay (line 4125) | function postUpdateDisplay(cm, update) {
function updateDisplaySimple (line 4155) | function updateDisplaySimple(cm, viewport) {
function patchDisplay (line 4172) | function patchDisplay(cm, updateNumbersFrom, dims) {
function updateGutterSpace (line 4213) | function updateGutterSpace(display) {
function setDocumentHeight (line 4218) | function setDocumentHeight(cm, measure) {
function alignHorizontally (line 4226) | function alignHorizontally(cm) {
function maybeUpdateLineNumberWidth (line 4249) | function maybeUpdateLineNumberWidth(cm) {
function getGutters (line 4267) | function getGutters(gutters, lineNumbers) {
function renderGutters (line 4284) | function renderGutters(display) {
function updateGutters (line 4303) | function updateGutters(cm) {
function Display (line 4313) | function Display(place, doc, input, options) {
function wheelEventDelta (line 4436) | function wheelEventDelta(e) {
function wheelEventPixels (line 4443) | function wheelEventPixels(e) {
function onScrollWheel (line 4450) | function onScrollWheel(cm, e) {
function normalizeSelection (line 4589) | function normalizeSelection(cm, ranges, primIndex) {
function simpleSelection (line 4607) | function simpleSelection(anchor, head) {
function changeEnd (line 4613) | function changeEnd(change) {
function adjustForChange (line 4621) | function adjustForChange(pos, change) {
function computeSelAfterChange (line 4630) | function computeSelAfterChange(doc, change) {
function offsetPos (line 4640) | function offsetPos(pos, old, nw) {
function computeReplacedSel (line 4649) | function computeReplacedSel(doc, changes, hint) {
function loadMode (line 4670) | function loadMode(cm) {
function resetModeState (line 4675) | function resetModeState(cm) {
function isWholeLineUpdate (line 4691) | function isWholeLineUpdate(doc, change) {
function updateDoc (line 4697) | function updateDoc(doc, change, markedSpans, estimateHeight$$1) {
function linkedDocs (line 4749) | function linkedDocs(doc, f, sharedHistOnly) {
function attachDoc (line 4764) | function attachDoc(cm, doc) {
function setDirectionClass (line 4776) | function setDirectionClass(cm) {
function directionChanged (line 4780) | function directionChanged(cm) {
function History (line 4787) | function History(startGen) {
function historyChangeFromChange (line 4804) | function historyChangeFromChange(doc, change) {
function clearSelectionEvents (line 4813) | function clearSelectionEvents(array) {
function lastChangeEvent (line 4823) | function lastChangeEvent(hist, force) {
function addChangeToHistory (line 4838) | function addChangeToHistory(doc, change, selAfter, opId) {
function selectionEventCanBeMerged (line 4881) | function selectionEventCanBeMerged(doc, origin, prev, sel) {
function addSelectionToHistory (line 4894) | function addSelectionToHistory(doc, sel, opId, options) {
function pushSelectionToHistory (line 4916) | function pushSelectionToHistory(sel, dest) {
function attachLocalSpans (line 4923) | function attachLocalSpans(doc, change, from, to) {
function removeClearedSpans (line 4934) | function removeClearedSpans(spans) {
function getOldSpans (line 4945) | function getOldSpans(doc, change) {
function mergeOldSpans (line 4958) | function mergeOldSpans(doc, change) {
function copyHistoryArray (line 4982) | function copyHistoryArray(events, newGroup, instantiateSel) {
function extendRange (line 5014) | function extendRange(range, head, other, extend) {
function extendSelection (line 5033) | function extendSelection(doc, head, other, options, extend) {
function extendSelections (line 5040) | function extendSelections(doc, heads, options) {
function replaceOneSelection (line 5050) | function replaceOneSelection(doc, i, range, options) {
function setSimpleSelection (line 5057) | function setSimpleSelection(doc, anchor, head, options) {
function filterSelectionChange (line 5063) | function filterSelectionChange(doc, sel, options) {
function setSelectionReplaceHistory (line 5082) | function setSelectionReplaceHistory(doc, sel, options) {
function setSelection (line 5093) | function setSelection(doc, sel, options) {
function setSelectionNoUndo (line 5098) | function setSelectionNoUndo(doc, sel, options) {
function setSelectionInner (line 5110) | function setSelectionInner(doc, sel) {
function reCheckSelection (line 5125) | function reCheckSelection(doc) {
function skipAtomicInSelection (line 5131) | function skipAtomicInSelection(doc, sel, bias, mayClear) {
function skipAtomicInner (line 5146) | function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {
function skipAtomic (line 5186) | function skipAtomic(doc, pos, oldPos, bias, mayClear) {
function movePos (line 5199) | function movePos(doc, pos, dir, line) {
function selectAll (line 5211) | function selectAll(cm) {
function filterChange (line 5218) | function filterChange(doc, change, update) {
function makeChange (line 5245) | function makeChange(doc, change, ignoreReadOnly) {
function makeChangeInner (line 5267) | function makeChangeInner(doc, change) {
function makeChangeFromHistory (line 5285) | function makeChangeFromHistory(doc, type, allowSelectionOnly) {
function shiftDoc (line 5361) | function shiftDoc(doc, distance) {
function makeChangeSingleDoc (line 5377) | function makeChangeSingleDoc(doc, change, selAfter, spans) {
function makeChangeSingleDocInEditor (line 5410) | function makeChangeSingleDocInEditor(cm, change, spans) {
function replaceRange (line 5468) | function replaceRange(doc, code, from, to, origin) {
function rebaseHistSelSingle (line 5479) | function rebaseHistSelSingle(pos, from, to, diff) {
function rebaseHistArray (line 5495) | function rebaseHistArray(array, from, to, diff) {
function rebaseHist (line 5523) | function rebaseHist(hist, change) {
function changeLine (line 5532) | function changeLine(doc, handle, changeType, op) {
function LeafChunk (line 5554) | function LeafChunk(lines) {
function BranchChunk (line 5607) | function BranchChunk(children) {
function adjustScrollWhenAboveVisible (line 5770) | function adjustScrollWhenAboveVisible(cm, line, diff) {
function addLineWidget (line 5775) | function addLineWidget(doc, handle, node, options) {
function markText (line 5935) | function markText(doc, from, to, options, type) {
function markTextShared (line 6034) | function markTextShared(doc, from, to, options, type) {
function findSharedMarkers (line 6049) | function findSharedMarkers(doc) {
function copySharedMarkers (line 6053) | function copySharedMarkers(doc, markers) {
function detachSharedMarkers (line 6065) | function detachSharedMarkers(markers) {
function onDrop (line 6507) | function onDrop(e) {
function onDragStart (line 6567) | function onDragStart(cm, e) {
function onDragOver (line 6590) | function onDragOver(cm, e) {
function clearDragCursor (line 6602) | function clearDragCursor(cm) {
function forEachCodeMirror (line 6613) | function forEachCodeMirror(f) {
function ensureGlobalHandlers (line 6626) | function ensureGlobalHandlers() {
function registerGlobalHandlers (line 6631) | function registerGlobalHandlers() {
function onResize (line 6644) | function onResize(cm) {
function normalizeKeyName (line 6715) | function normalizeKeyName(name) {
function normalizeKeyMap (line 6739) | function normalizeKeyMap(keymap) {
function lookupKey (line 6766) | function lookupKey(key, map$$1, handle, context) {
function isModifierKey (line 6785) | function isModifierKey(value) {
function addModifierNames (line 6790) | function addModifierNames(name, event, noShift) {
function keyName (line 6800) | function keyName(event, noShift) {
function getKeyMap (line 6810) | function getKeyMap(val) {
function deleteNearSelection (line 6816) | function deleteNearSelection(cm, compute) {
function moveCharLogically (line 6839) | function moveCharLogically(line, ch, dir) {
function moveLogically (line 6844) | function moveLogically(line, start, dir) {
function endOfLine (line 6849) | function endOfLine(visually, cm, lineObj, lineNo, dir) {
function moveVisually (line 6876) | function moveVisually(cm, line, start, dir) {
function lineStart (line 7088) | function lineStart(cm, lineN) {
function lineEnd (line 7094) | function lineEnd(cm, lineN) {
function lineStartSmart (line 7100) | function lineStartSmart(cm, pos) {
function doHandleBinding (line 7113) | function doHandleBinding(cm, bound, dropShift) {
function lookupKeyForEditor (line 7133) | function lookupKeyForEditor(cm, name, handle) {
function dispatchKey (line 7147) | function dispatchKey(cm, name, e, handle) {
function dispatchKeyInner (line 7165) | function dispatchKeyInner(cm, name, e, handle) {
function handleKeyBinding (line 7182) | function handleKeyBinding(cm, e) {
function handleCharBinding (line 7201) | function handleCharBinding(cm, e, ch) {
function onKeyDown (line 7206) | function onKeyDown(e) {
function showCrossHair (line 7227) | function showCrossHair(cm) {
function onKeyUp (line 7242) | function onKeyUp(e) {
function onKeyPress (line 7247) | function onKeyPress(e) {
function clickRepeat (line 7274) | function clickRepeat(pos, button) {
function onMouseDown (line 7295) | function onMouseDown(e) {
function handleMappedButton (line 7332) | function handleMappedButton(cm, button, pos, repeat, event) {
function configureMouse (line 7352) | function configureMouse(cm, repeat, event) {
function leftButtonDown (line 7365) | function leftButtonDown(cm, pos, repeat, event) {
function leftButtonStartDrag (line 7383) | function leftButtonStartDrag(cm, event, pos, behavior) {
function rangeForUnit (line 7422) | function rangeForUnit(cm, pos, unit) {
function leftButtonSelect (line 7431) | function leftButtonSelect(cm, event, start, behavior) {
function bidiSimplify (line 7568) | function bidiSimplify(cm, range$$1) {
function gutterEvent (line 7603) | function gutterEvent(cm, e, type, prevent) {
function clickInGutter (line 7632) | function clickInGutter(cm, e) {
function onContextMenu (line 7641) | function onContextMenu(cm, e) {
function contextMenuInGutter (line 7647) | function contextMenuInGutter(cm, e) {
function themeChanged (line 7652) | function themeChanged(cm) {
function defineOptions (line 7663) | function defineOptions(CodeMirror) {
function dragDropChanged (line 7801) | function dragDropChanged(cm, value, old) {
function wrappingChanged (line 7814) | function wrappingChanged(cm) {
function CodeMirror (line 7832) | function CodeMirror(place, options) {
function registerEventHandlers (line 7907) | function registerEventHandlers(cm) {
function indentLine (line 8022) | function indentLine(cm, n, how, aggressive) {
function setLastCopied (line 8086) | function setLastCopied(newLastCopied) {
function applyTextInput (line 8090) | function applyTextInput(cm, inserted, deleted, sel, origin) {
function handlePaste (line 8138) | function handlePaste(e, cm) {
function triggerElectric (line 8148) | function triggerElectric(cm, inserted) {
function copyableRanges (line 8172) | function copyableRanges(cm) {
function disableBrowserMagic (line 8183) | function disableBrowserMagic(field, spellcheck, autocorrect, autocapital...
function hiddenTextarea (line 8189) | function hiddenTextarea() {
function addEditorMethods (line 8212) | function addEditorMethods(CodeMirror) {
function findPosH (line 8662) | function findPosH(doc, pos, dir, unit, visually) {
function findPosV (line 8722) | function findPosV(cm, pos, dir, unit) {
function onCopyCut (line 8785) | function onCopyCut(e) {
function poll (line 8943) | function poll() {
function posToDOM (line 9109) | function posToDOM(cm, pos) {
function isInGutter (line 9125) | function isInGutter(node) {
function badPos (line 9131) | function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }
function domTextBetween (line 9133) | function domTextBetween(cm, from, to, fromLine, toLine) {
function domToPos (line 9186) | function domToPos(cm, node, offset) {
function locateNodeInLineView (line 9205) | function locateNodeInLineView(lineView, node, offset) {
function prepareCopyCut (line 9302) | function prepareCopyCut(e) {
function p (line 9450) | function p() {
function prepareSelectAllHack (line 9554) | function prepareSelectAllHack() {
function rehide (line 9567) | function rehide() {
function fromTextArea (line 9614) | function fromTextArea(textarea, options) {
function addLegacyProps (line 9671) | function addLegacyProps(CodeMirror) {
FILE: libs/codemirror/django.js
function tokenBase (line 49) | function tokenBase (stream, state) {
function inString (line 71) | function inString (delimiter, previousTokenizer) {
function inVariable (line 94) | function inVariable (stream, state) {
function inTag (line 193) | function inTag (stream, state) {
function inComment (line 319) | function inComment (stream, state) {
function inBlockComment (line 326) | function inBlockComment (stream, state) {
FILE: libs/codemirror/foldcode.js
function doFold (line 14) | function doFold(cm, pos, options, force) {
function makeWidget (line 61) | function makeWidget(cm, options) {
function getOption (line 140) | function getOption(cm, options, name) {
FILE: libs/codemirror/foldgutter.js
function State (line 39) | function State(options) {
function parseOptions (line 44) | function parseOptions(opts) {
function isFolded (line 52) | function isFolded(cm, line) {
function marker (line 58) | function marker(spec) {
function updateFoldInfo (line 68) | function updateFoldInfo(cm, from, to) {
function updateInViewport (line 87) | function updateInViewport(cm) {
function onGutterClick (line 96) | function onGutterClick(cm, line, gutter) {
function onChange (line 106) | function onChange(cm) {
function onViewportChange (line 115) | function onViewportChange(cm) {
function onFold (line 139) | function onFold(cm, from) {
FILE: libs/codemirror/fullscreen.js
function setFullscreen (line 21) | function setFullscreen(cm) {
function setNormal (line 32) | function setNormal(cm) {
FILE: libs/codemirror/markdown.js
function getMode (line 19) | function getMode(name) {
function switchInline (line 97) | function switchInline(stream, state, f) {
function switchBlock (line 102) | function switchBlock(stream, state, f) {
function lineIsEmpty (line 107) | function lineIsEmpty(line) {
function blankLine (line 113) | function blankLine(state) {
function blockNormal (line 150) | function blockNormal(stream, state) {
function htmlBlock (line 282) | function htmlBlock(stream, state) {
function local (line 297) | function local(stream, state) {
function getType (line 322) | function getType(state) {
function handleText (line 405) | function handleText(stream, state) {
function inlineNormal (line 412) | function inlineNormal(stream, state) {
function linkInline (line 642) | function linkInline(stream, state) {
function linkHref (line 662) | function linkHref(stream, state) {
function getLinkHrefInside (line 682) | function getLinkHrefInside(endChar) {
function footnoteLink (line 700) | function footnoteLink(stream, state) {
function footnoteLinkInside (line 711) | function footnoteLinkInside(stream, state) {
function footnoteUrl (line 725) | function footnoteUrl(stream, state) {
FILE: libs/codemirror/python-hint.js
function forEach (line 2) | function forEach(arr, f) {
function arrayContains (line 6) | function arrayContains(arr, item) {
function scriptHint (line 19) | function scriptHint(editor, _keywords, getToken) {
function getCompletions (line 64) | function getCompletions(token, context) {
FILE: libs/codemirror/python.js
function wordRegexp (line 12) | function wordRegexp(words) {
function top (line 35) | function top(state) {
function tokenBase (line 74) | function tokenBase(stream, state) {
function tokenBaseInner (line 93) | function tokenBaseInner(stream, state, inFormat) {
function formatStringFactory (line 169) | function formatStringFactory(delimiter, tokenOuter) {
function tokenStringFactory (line 223) | function tokenStringFactory(delimiter, tokenOuter) {
function pushPyScope (line 251) | function pushPyScope(state) {
function pushBracketScope (line 258) | function pushBracketScope(stream, state, type) {
function dedent (line 265) | function dedent(stream, state) {
function tokenLexer (line 274) | function tokenLexer(stream, state) {
FILE: libs/codemirror/shell.js
function define (line 17) | function define(style, dict) {
function tokenBase (line 39) | function tokenBase(stream, state) {
function tokenString (line 85) | function tokenString(quote, style) {
function tokenStringStart (line 112) | function tokenStringStart(quote, style) {
function tokenize (line 132) | function tokenize(stream, state) {
FILE: libs/codemirror/show-hint.js
function Completion (line 53) | function Completion(cm, options) {
function parseOptions (line 141) | function parseOptions(cm, pos, options) {
function getText (line 153) | function getText(completion) {
function buildKeyMap (line 158) | function buildKeyMap(completion, handle) {
function getHintElement (line 201) | function getHintElement(hintsElement, el) {
function Widget (line 208) | function Widget(completion, data) {
function applicableHelpers (line 378) | function applicableHelpers(cm, helpers) {
function fetchHints (line 386) | function fetchHints(hint, cm, options, callback) {
function resolveAutoHints (line 396) | function resolveAutoHints(cm, pos) {
FILE: libs/codemirror/yaml-frontmatter.js
function curMode (line 20) | function curMode(state) {
FILE: libs/filepond/filepond-plugin-image-preview.js
function _typeof (line 24) | function _typeof(obj) {
function _jsx (line 45) | function _jsx(type, props, key, children) {
function _asyncIterator (line 95) | function _asyncIterator(iterable) {
function _AwaitValue (line 113) | function _AwaitValue(value) {
function _AsyncGenerator (line 117) | function _AsyncGenerator(gen) {
function _wrapAsyncGenerator (line 217) | function _wrapAsyncGenerator(fn) {
function _awaitAsyncGenerator (line 223) | function _awaitAsyncGenerator(value) {
function _asyncGeneratorDelegate (line 227) | function _asyncGeneratorDelegate(inner, awaitWrap) {
function asyncGeneratorStep (line 277) | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar...
function _asyncToGenerator (line 293) | function _asyncToGenerator(fn) {
function _classCallCheck (line 321) | function _classCallCheck(instance, Constructor) {
function _defineProperties (line 327) | function _defineProperties(target, props) {
function _createClass (line 337) | function _createClass(Constructor, protoProps, staticProps) {
function _defineEnumerableProperties (line 343) | function _defineEnumerableProperties(obj, descs) {
function _defaults (line 366) | function _defaults(obj, defaults) {
function _defineProperty (line 381) | function _defineProperty(obj, key, value) {
function _extends (line 396) | function _extends() {
function _objectSpread (line 416) | function _objectSpread(target) {
function _inherits (line 437) | function _inherits(subClass, superClass) {
function _inheritsLoose (line 452) | function _inheritsLoose(subClass, superClass) {
function _getPrototypeOf (line 458) | function _getPrototypeOf(o) {
function _setPrototypeOf (line 467) | function _setPrototypeOf(o, p) {
function isNativeReflectConstruct (line 478) | function isNativeReflectConstruct() {
function _construct (line 491) | function _construct(Parent, args, Class) {
function _isNativeFunction (line 508) | function _isNativeFunction(fn) {
function _wrapNativeSuper (line 512) | function _wrapNativeSuper(Class) {
function _instanceof (line 548) | function _instanceof(left, right) {
function _interopRequireDefault (line 560) | function _interopRequireDefault(obj) {
function _interopRequireWildcard (line 568) | function _interopRequireWildcard(obj) {
function _newArrowCheck (line 596) | function _newArrowCheck(innerThis, boundThis) {
function _objectDestructuringEmpty (line 602) | function _objectDestructuringEmpty(obj) {
function _objectWithoutPropertiesLoose (line 606) | function _objectWithoutPropertiesLoose(source, excluded) {
function _objectWithoutProperties (line 621) | function _objectWithoutProperties(source, excluded) {
function _assertThisInitialized (line 642) | function _assertThisInitialized(self) {
function _possibleConstructorReturn (line 652) | function _possibleConstructorReturn(self, call) {
function _superPropBase (line 660) | function _superPropBase(object, property) {
function _get (line 669) | function _get(target, property, receiver) {
function set (line 690) | function set(target, property, value, receiver) {
function _set (line 730) | function _set(target, property, value, receiver, isStrict) {
function _taggedTemplateLiteral (line 740) | function _taggedTemplateLiteral(strings, raw) {
function _taggedTemplateLiteralLoose (line 754) | function _taggedTemplateLiteralLoose(strings, raw) {
function _temporalRef (line 763) | function _temporalRef(val, name) {
function _readOnlyError (line 771) | function _readOnlyError(name) {
function _classNameTDZError (line 775) | function _classNameTDZError(name) {
function _slicedToArray (line 783) | function _slicedToArray(arr, i) {
function _slicedToArrayLoose (line 791) | function _slicedToArrayLoose(arr, i) {
function _toArray (line 799) | function _toArray(arr) {
function _toConsumableArray (line 803) | function _toConsumableArray(arr) {
function _arrayWithoutHoles (line 809) | function _arrayWithoutHoles(arr) {
function _arrayWithHoles (line 818) | function _arrayWithHoles(arr) {
function _iterableToArray (line 822) | function _iterableToArray(iter) {
function _iterableToArrayLimit (line 830) | function _iterableToArrayLimit(arr, i) {
function _iterableToArrayLimitLoose (line 860) | function _iterableToArrayLimitLoose(arr, i) {
function _nonIterableSpread (line 876) | function _nonIterableSpread() {
function _nonIterableRest (line 880) | function _nonIterableRest() {
function _skipFirstGeneratorNext (line 884) | function _skipFirstGeneratorNext(fn) {
function _toPrimitive (line 892) | function _toPrimitive(input, hint) {
function _toPropertyKey (line 905) | function _toPropertyKey(arg) {
function _initializerWarningHelper (line 911) | function _initializerWarningHelper(descriptor, context) {
function _initializerDefineProperty (line 920) | function _initializerDefineProperty(target, property, descriptor, contex...
function _applyDecoratedDescriptor (line 932) | function _applyDecoratedDescriptor(
function _classPrivateFieldLooseKey (line 972) | function _classPrivateFieldLooseKey(name) {
function _classPrivateFieldLooseBase (line 976) | function _classPrivateFieldLooseBase(receiver, privateKey) {
function _classPrivateFieldGet (line 984) | function _classPrivateFieldGet(receiver, privateMap) {
function _classPrivateFieldSet (line 998) | function _classPrivateFieldSet(receiver, privateMap, value) {
function _classStaticPrivateFieldSpecGet (line 1018) | function _classStaticPrivateFieldSpecGet(
function _classStaticPrivateFieldSpecSet (line 1030) | function _classStaticPrivateFieldSpecSet(
function _classStaticPrivateMethodGet (line 1048) | function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
function _classStaticPrivateMethodSet (line 1056) | function _classStaticPrivateMethodSet() {
function _decorate (line 1060) | function _decorate(decorators, factory, superClass, mixins) {
function _getDecoratorsApi (line 1080) | function _getDecoratorsApi() {
function _createElementDescriptor (line 1424) | function _createElementDescriptor(def) {
function _coalesceGetterSetter (line 1471) | function _coalesceGetterSetter(element, other) {
function _coalesceClassElements (line 1479) | function _coalesceClassElements(elements) {
function _hasDecorators (line 1533) | function _hasDecorators(element) {
function _isDataDescriptor (line 1537) | function _isDataDescriptor(desc) {
function _optionalCallableProperty (line 1544) | function _optionalCallableProperty(obj, name) {
function _classPrivateMethodGet (line 1554) | function _classPrivateMethodGet(receiver, privateSet, fn) {
function _classPrivateMethodSet (line 1562) | function _classPrivateMethodSet() {
function _wrapRegExp (line 1566) | function _wrapRegExp(re, groups) {
FILE: libs/hinting/javascript-hint.js
function forEach (line 14) | function forEach(arr, f) {
function arrayContains (line 18) | function arrayContains(arr, item) {
function scriptHint (line 31) | function scriptHint(editor, keywords, getToken, options) {
function javascriptHint (line 60) | function javascriptHint(editor, options) {
function getCoffeeScriptToken (line 67) | function getCoffeeScriptToken(editor, cur) {
function coffeescriptHint (line 85) | function coffeescriptHint(editor, options) {
function forAllProps (line 100) | function forAllProps(obj, callback) {
function getCompletions (line 109) | function getCompletions(token, context, keywords, options) {
FILE: libs/hinting/python-hint.js
function forEach (line 2) | function forEach(arr, f) {
function arrayContains (line 6) | function arrayContains(arr, item) {
function scriptHint (line 19) | function scriptHint(editor, _keywords, getToken) {
function getCompletions (line 64) | function getCompletions(token, context) {
FILE: libs/hinting/show-hint.js
function Completion (line 49) | function Completion(cm, options) {
function isNewCompletion (line 138) | function isNewCompletion(old, nw) {
function parseOptions (line 143) | function parseOptions(cm, pos, options) {
function getText (line 155) | function getText(completion) {
function buildKeyMap (line 160) | function buildKeyMap(completion, handle) {
function getHintElement (line 195) | function getHintElement(hintsElement, el) {
function Widget (line 202) | function Widget(completion, data) {
function applicableHelpers (line 357) | function applicableHelpers(cm, helpers) {
function fetchHints (line 365) | function fetchHints(hint, cm, options, callback) {
function resolveAutoHints (line 375) | function resolveAutoHints(cm, pos) {
FILE: libs/jquery/jquery.hotkeys.js
function keyHandler (line 35) | function keyHandler( handleObj ) {
FILE: libs/knockout/knockout-3.5.0.debug.js
function objectForEach (line 66) | function objectForEach(obj, action) {
function extend (line 74) | function extend(target, source) {
function setPrototypeOf (line 85) | function setPrototypeOf(obj, proto) {
function isClickOnCheckableElement (line 123) | function isClickOnCheckableElement(element, eventType) {
function toggleDomNodeCssClass (line 136) | function toggleDomNodeCssClass(node, classNames, shouldHaveClass) {
function toggleObjectClassPropertyString (line 154) | function toggleObjectClassPropertyString(obj, prop, classNames, shouldHa...
function getDisposeCallbacksCollection (line 787) | function getDisposeCallbacksCollection(node, createIfNotFound) {
function destroyCallbacksCollection (line 795) | function destroyCallbacksCollection(node) {
function cleanSingleNode (line 799) | function cleanSingleNode(node) {
function cleanNodesInList (line 821) | function cleanNodesInList(nodeList, onlyComments) {
function getWrap (line 904) | function getWrap(tags) {
function simpleHtmlParse (line 909) | function simpleHtmlParse(html, documentContext) {
function jQueryHtmlParse (line 955) | function jQueryHtmlParse(html, documentContext) {
function randomMax8HexChars (line 1022) | function randomMax8HexChars() {
function generateRandomId (line 1025) | function generateRandomId() {
function findMemoNodes (line 1028) | function findMemoNodes(rootNode, appendToArray) {
function processTasks (line 1122) | function processTasks() {
function scheduledProcess (line 1149) | function scheduledProcess() {
function scheduleTaskProcessing (line 1156) | function scheduleTaskProcessing() {
function valuesArePrimitiveAndEqual (line 1272) | function valuesArePrimitiveAndEqual(a, b) {
function throttle (line 1277) | function throttle(callback, timeout) {
function debounce (line 1289) | function debounce(callback, timeout) {
function applyExtenders (line 1297) | function applyExtenders(requestedExtenders) {
function limitNotifySubscribers (line 1347) | function limitNotifySubscribers(value, event) {
function getId (line 1531) | function getId() {
function begin (line 1535) | function begin(options) {
function end (line 1540) | function end() {
function observable (line 1598) | function observable() {
function trackChanges (line 1868) | function trackChanges() {
function getChanges (line 1915) | function getChanges(previousContents, currentContents) {
function pushDiff (line 1938) | function pushDiff(status, value, index) {
function computedObservable (line 2017) | function computedObservable() {
function computedDisposeDependencyCallback (line 2100) | function computedDisposeDependencyCallback(id, entryToDispose) {
function computedBeginDependencyDetectionCallback (line 2108) | function computedBeginDependencyDetectionCallback(subscribable, id) {
function mapJsObjectGraph (line 2544) | function mapJsObjectGraph(rootObject, mapInputCallback, visitedObjects) {
function visitPropertiesOrArrayEntries (line 2578) | function visitPropertiesOrArrayEntries(rootObject, visitorCallback) {
function objectLookup (line 2593) | function objectLookup() {
function kowhen (line 2619) | function kowhen (resolve) {
function getWriteableValue (line 2726) | function getWriteableValue(expression) {
function parseObjectLiteral (line 2763) | function parseObjectLiteral(objectLiteralString) {
function preProcessBindings (line 2830) | function preProcessBindings(bindingsStringOrKeyValueArray, bindingOption...
function isStartComment (line 2946) | function isStartComment(node) {
function isEndComment (line 2950) | function isEndComment(node) {
function isUnmatchedEndComment (line 2954) | function isUnmatchedEndComment(node) {
function getVirtualChildren (line 2960) | function getVirtualChildren(startComment, allowUnbalanced) {
function getMatchingEndComment (line 2982) | function getMatchingEndComment(startComment, allowUnbalanced) {
function getUnbalancedChildTags (line 2992) | function getUnbalancedChildTags(node) {
function createBindingsStringEvaluatorViaCache (line 3199) | function createBindingsStringEvaluatorViaCache(bindingsString, cache, op...
function createBindingsStringEvaluator (line 3205) | function createBindingsStringEvaluator(bindingsString, options) {
function updateContext (line 3250) | function updateContext() {
function asyncContextDispose (line 3379) | function asyncContextDispose(node) {
function AsyncCompleteContext (line 3387) | function AsyncCompleteContext(node, bindingInfo, ancestorBindingInfo) {
function makeValueAccessor (line 3472) | function makeValueAccessor(value) {
function evaluateValueAccessor (line 3479) | function evaluateValueAccessor(valueAccessor) {
function makeAccessorsFromFunction (line 3487) | function makeAccessorsFromFunction(callback) {
function makeBindingAccessors (line 3497) | function makeBindingAccessors(bindings, context, node) {
function getBindingsAndMakeAccessors (line 3507) | function getBindingsAndMakeAccessors(node, context) {
function validateThatBindingIsAllowedForVirtualElements (line 3511) | function validateThatBindingIsAllowedForVirtualElements(bindingName) {
function applyBindingsToDescendantsInternal (line 3517) | function applyBindingsToDescendantsInternal(bindingContext, elementOrVir...
function applyBindingsToNodeAndDescendantsInternal (line 3547) | function applyBindingsToNodeAndDescendantsInternal(bindingContext, nodeV...
function topologicalSortBindings (line 3566) | function topologicalSortBindings(bindings) {
function applyBindingsToNodeInternal (line 3599) | function applyBindingsToNodeInternal(node, sourceBindings, bindingContex...
function getBindingContext (line 3753) | function getBindingContext(viewModelOrBindingContext, extendContextCallb...
function getObjectOwnProperty (line 3848) | function getObjectOwnProperty(obj, propName) {
function loadComponentAndNotify (line 3852) | function loadComponentAndNotify(componentName, callback) {
function beginLoadingComponent (line 3887) | function beginLoadingComponent(componentName, callback) {
function getFirstResultFromLoaders (line 3904) | function getFirstResultFromLoaders(methodName, argsExceptCallback, callb...
function resolveConfig (line 4026) | function resolveConfig(componentName, errorCallback, config, callback) {
function resolveTemplate (line 4060) | function resolveTemplate(errorCallback, templateConfig, callback) {
function resolveViewModel (line 4091) | function resolveViewModel(errorCallback, viewModelConfig, callback) {
function cloneNodesFromTemplateSourceElement (line 4117) | function cloneNodesFromTemplateSourceElement(elemInstance) {
function isDomElement (line 4136) | function isDomElement(obj) {
function isDocumentFragment (line 4144) | function isDocumentFragment(obj) {
function possiblyGetConfigFromAmd (line 4152) | function possiblyGetConfigFromAmd(errorCallback, config, callback) {
function makeErrorCallback (line 4165) | function makeErrorCallback(componentName) {
function getComponentParamsFromCustomElement (line 4224) | function getComponentParamsFromCustomElement(elem, bindingContext) {
function cloneTemplateIntoElement (line 4386) | function cloneTemplateIntoElement(componentName, componentDefinition, el...
function createViewModel (line 4396) | function createViewModel(componentDefinition, componentParams, component...
function updateModel (line 4467) | function updateModel() {
function updateView (line 4520) | function updateView() {
function makeEventHandlerShortcut (line 4618) | function makeEventHandlerShortcut(eventName) {
function makeWithIfBinding (line 4783) | function makeWithIfBinding(bindingKey, isWith, isNot) {
function selectedOptions (line 4885) | function selectedOptions() {
function applyToObject (line 4929) | function applyToObject(object, predicate, defaultValue) {
function optionForArrayItem (line 4944) | function optionForArrayItem(arrayEntry, index, oldOptions) {
function setSelectionCallback (line 4972) | function setSelectionCallback(arrayEntry, newOptions) {
function validateDataBindValuesForRewriting (line 5564) | function validateDataBindValuesForRewriting(keyValueArray) {
function constructMemoizedTagReplacement (line 5582) | function constructMemoizedTagReplacement(dataBindAttributeValue, tagToRe...
function getTemplateDomData (line 5700) | function getTemplateDomData(element) {
function setTemplateDomData (line 5703) | function setTemplateDomData(element, data) {
function invokeForEachNodeInContinuousRange (line 5767) | function invokeForEachNodeInContinuousRange(firstNode, lastNode, action) {
function activateBindingsOnContinuousNodeArray (line 5775) | function activateBindingsOnContinuousNodeArray(continuousNodeArray, bind...
function getFirstNodeFromPossibleArray (line 5832) | function getFirstNodeFromPossibleArray(nodeOrNodeArray) {
function executeTemplate (line 5838) | function executeTemplate(targetNodeOrNodeArray, renderMode, template, bi...
function resolveTemplateName (line 5878) | function resolveTemplateName(template, data, context) {
function disposeOldComputedAndStoreNewOne (line 6001) | function disposeOldComputedAndStoreNewOne(element, newComputed) {
function compareArrays (line 6131) | function compareArrays(oldArray, newArray, options) {
function compareSmallArrayToBigArray (line 6144) | function compareSmallArrayToBigArray(smlArray, bigArray, statusNotInSml,...
function mapNodeAndRefreshWhenChanged (line 6221) | function mapNodeAndRefreshWhenChanged(containerNode, mapping, valueToMap...
function itemAdded (line 6267) | function itemAdded(value) {
function itemMovedOrRetained (line 6275) | function itemMovedOrRetained(oldPosition) {
function callCallback (line 6285) | function callCallback(callback, items) {
function ensureHasReferencedJQueryTemplates (line 6491) | function ensureHasReferencedJQueryTemplates() {
function executeTemplate (line 6496) | function executeTemplate(compiledTemplate, data, jQueryTemplateOptions) {
FILE: libs/knockout/knockout-3.5.0.js
function K (line 7) | function K(a,c){return null===a||typeof a in W?a===c:!1}
function X (line 7) | function X(b,c){var d;return function(){d||(d=a.a.setTimeout(function(){...
function Y (line 7) | function Y(b,c){var d;return function(){clearTimeout(d);
function Z (line 8) | function Z(a,c){c&&"change"!==c?"beforeChange"===c?this.oc(a):this.bb(a,...
function aa (line 8) | function aa(a,c){null!==c&&c.s&&c.s()}
function ba (line 8) | function ba(a,c){var d=this.pd,e=d[t];e.qa||(this.Pb&&this.kb[c]?(d.tc(c...
function b (line 9) | function b(a,b){for(var c in a)f.call(a,c)&&b(c,a[c])}
function c (line 9) | function c(a,b){if(b)for(var c in b)f.call(b,c)&&(a[c]=b[c]);return a}
function d (line 9) | function d(a,b){a.__proto__=b;return a}
function e (line 9) | function e(b,c,d,e){var k=b[c].match(n)||[];a.a.C(d.match(n),function(b)...
function b (line 26) | function b(b,c){var d=a.a.g.get(b,e);
function c (line 27) | function c(c){var e=b(c,!1);if(e)for(var e=e.slice(0),f=0;f<e.length;f++...
function d (line 27) | function d(b,d){for(var e=[],k,f=0;f<b.length;f++)if(!d||8===b[f].nodeTy...
function b (line 31) | function b(c,e){if(c)if(8==c.nodeType){var f=a.aa.Tc(c.nodeValue);null!=...
function b (line 33) | function b(){if(f)for(var b=f,c=0,d;h<f;)if(d=e[h++]){if(h>b){if(5E3<=
function c (line 34) | function c(){b();h=f=e.length=0}
function b (line 41) | function b(a){d.push(e);e=a}
function c (line 41) | function c(){e=d.pop()}
function c (line 42) | function c(){if(0<arguments.length)return c.qb(c[I],arguments[0])&&(c.xa...
function d (line 48) | function d(){function c(){if(h){var d=[].concat(b.w()||[]);if(b.Wa("arra...
function k (line 49) | function k(a,b,c){return l[l.length]={status:a,value:b,index:c}}
function e (line 50) | function e(){if(0<arguments.length){if("function"===typeof f)f.apply(g.l...
function b (line 59) | function b(a,f,g){g=g||new d;a=f(a);if("object"!=typeof a||null===a||a==...
function c (line 60) | function c(a,b){if(a instanceof Array){for(var c=0;c<a.length;c++)b(c);"...
function d (line 60) | function d(){this.keys=[];this.values=[]}
function e (line 61) | function e(c){var e=a.wb(b,d).extend({Ga:"always"}),h=e.subscribe(functi...
function b (line 63) | function b(b){b=a.a.Cb(b);123===b.charCodeAt(0)&&
function k (line 66) | function k(b,e){var f;if(!y){var l=a.getBindingHandler(b);if(l&&l.prepro...
function b (line 68) | function b(a){return 8==a.nodeType&&g.test(f?a.text:a.nodeValue)}
function c (line 68) | function c(a){return 8==a.nodeType&&h.test(f?a.text:a.nodeValue)}
function d (line 68) | function d(d,e){for(var f=d,g=1,h=[];f=f.nextSibling;){if(c(f)&&(a.a.g.s...
function e (line 68) | function e(a,b){var c=d(a,b);return c?
function b (line 74) | function b(b){var c=(b=a.a.g.get(b,B))&&b.M;c&&(b.M=null,c.Sc())}
function c (line 74) | function c(c,d,e){this.node=c;this.xc=
function d (line 75) | function d(a){return function(){return a}}
function e (line 75) | function e(a){return a()}
function f (line 75) | function f(b){return a.a.Ha(a.v.K(b),function(a,c){return function(){ret...
function g (line 75) | function g(b,c,e){return"function"===typeof b?f(b.bind(null,c,e)):a.a.Ha...
function h (line 75) | function h(a,b){return f(this.getBindings.bind(this,a,b))}
function m (line 75) | function m(b,c){var d=a.h.firstChild(c);if(d){var e,f=a.ga.instance,k=f....
function l (line 76) | function l(b,c){var d=b,e=1===c.nodeType;e&&a.h.Rc(c);if(e||a.ga.instanc...
function k (line 76) | function k(b){var c=[],d={},e=[];a.a.O(b,function ca(f){if(!d[f]){var l=...
function q (line 77) | function q(b,c,d){var f=a.a.g.Tb(b,B,{}),l=f.gd;if(!c){if(l)throw Error(...
function n (line 80) | function n(b,c){return b&&b instanceof a.fa?b:new a.fa(b,p,p,c)}
function l (line 80) | function l(){var b=q?h():h,f=a.a.c(b);c?(a.a.extend(k,c),y in c&&(k[y]=c...
function c (line 85) | function c(c,e){var l=
function d (line 86) | function d(a,b){e("getConfig",[a],function(c){c?e("loadComponent",[a,c],...
function e (line 86) | function e(c,d,f,k){k||(k=a.i.loaders.slice(0));var g=k.shift();if(g){va...
function b (line 88) | function b(b,c,d,e){function g(){0===--A&&e(h)}var h={},A=2,u=d.template...
function c (line 88) | function c(a,b,d){if("function"===typeof b)d(function(a){return new b(a)...
function d (line 89) | function d(b){switch(a.a.P(b)){case "script":return a.a.ta(b.text);case ...
function e (line 89) | function e(a){return z.DocumentFragment?a instanceof DocumentFragment:a&...
function f (line 89) | function f(a,b,c){"string"===typeof b.require?T||z.require?(T||z.require...
function g (line 89) | function g(a){return function(b){throw Error("Component '"+
function b (line 92) | function b(b,e){var f=b.getAttribute("params");if(f){var f=c.parseBindin...
function b (line 94) | function b(b,c,d){c=c.template;if(!c)throw Error("Component '"+b+"' has ...
function c (line 94) | function c(a,b,c){var d=a.createViewModel;return d?d.call(a,b,c):b}
function l (line 94) | function l(){var a=k&&k.dispose;"function"===typeof a&&a.call(k);n&&n.s(...
function e (line 97) | function e(){var e=b.checked,f=g();if(!a.U.rb()&&(e||!m&&!a.U.pa())){var...
function f (line 97) | function f(){var d=a.a.c(c()),e=g();k?(b.checked=0<=a.a.A(d,e),r=e):b.ch...
function e (line 101) | function e(e){b.__ko_hasfocusUpdating=!0;var f=b.ownerDocument;if("activ...
function b (line 103) | function b(b,d,e){a.f[b]={init:function(b,c,h,m,l){var k,q,n={},r,p,A;if...
function e (line 105) | function e(){return a.a.fb(b.options,function(a){return a.selected})}
function f (line 105) | function f(a,b,c){var d=typeof b;return"function"==d?b(a):"string"==d?a[...
function g (line 105) | function g(c,e){if(y&&k)a.u.ya(b,a.a.c(d.get("value")),!0);else if(r.len...
function k (line 112) | function k(c,d){a.a.H(b,c,d)}
function m (line 112) | function m(){var d=a.a.c(c());if(null===d||d===p)d="";L!==p&&d===L?a.a.s...
function t (line 112) | function t(){w||(L=b.value,w=a.a.setTimeout(B,4))}
function B (line 112) | function B(){clearTimeout(w);L=w=p;var d=b.value;v!==d&&(v=d,a.m.$a(c(),...
function b (line 118) | function b(b,c,d,h){b=a.m.Zb(b);
function b (line 123) | function b(b,c,d){var e;for(c=a.h.nextSibling(c);b&&(e=b)!==c;)b=a.h.nex...
function c (line 123) | function c(c,d){if(c.length){var e=c[0],f=c[c.length-1],g=e.parentNode,h...
function d (line 124) | function d(a){return a.nodeType?a:0<a.length?a[0]:null}
function e (line 124) | function e(b,e,f,h,m){m=m||{};var p=(b&&d(b)||f||{}).ownerDocument,A=m.t...
function f (line 125) | function f(b,c,d){return a.N(b)?b():"function"===typeof b?b(c,d):b}
function y (line 126) | function y(b,c){a.v.K(a.a.cc,null,[h,b,u,g,t,c]);a.j.Ga(h,a.j.T)}
function t (line 127) | function t(a,b){c(b,v);g.afterRender&&g.afterRender(b,a);v=null}
function u (line 127) | function u(a,c){v=m.createChildContext(a,{as:B,noChildContext:g.noChildC...
function b (line 131) | function b(b,d,e,f,g){var h=Math.min,m=Math.max,l=[],k,p=b.length,n,r=d....
function b (line 132) | function b(b,c,d,h,m){var l=[],k=a.$(function(){var k=c(d,m,a.a.Ua(l,b))...
function k (line 133) | function k(b){x={Aa:b,nb:a.sa(w++)};v.push(x);t||F.push(x)}
function q (line 133) | function q(b){x=r[b];w!==x.nb.w()&&D.push(x);x.nb(w++);a.a.Ua(x.Y,e);v.p...
function n (line 133) | function n(b,c){if(b)for(var d=0,e=c.length;d<e;d++)a.a.C(c[d].Y,functio...
FILE: libs/sql/sql.js
function e (line 3) | function e(a){throw a;}
function n (line 3) | function n(){return function(){}}
function ja (line 7) | function ja(a){eval.call(l,a)}
function u (line 14) | function u(a,b){a||ma("Assertion failed: "+b)}
function sa (line 14) | function sa(a){var b=r["_"+a];if(!b)try{b=eval("_"+a)}catch(c){}u(b,"Can...
function a (line 15) | function a(a){a=a.toString().match(d).slice(1);return{arguments:a[0],bod...
function ya (line 18) | function ya(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switc...
function Ga (line 19) | function Ga(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(...
function H (line 20) | function H(a,b,c,d){var f,h;"number"===typeof a?(f=k,h=a):(f=m,h=a.lengt...
function y (line 21) | function y(a,b){if(0===b||!a)return"";for(var c=m,d,f=0;;){d=K[a+f>>0];i...
function Ja (line 23) | function Ja(a){function b(c,d,f){var d=d||Infinity,h="",i=[],t;if("N"===...
function La (line 27) | function La(){var a;a:{a=Error();if(!a.stack){try{e(Error(0))}catch(b){a...
function Ta (line 29) | function Ta(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b...
function $a (line 29) | function $a(a){Ua.unshift(a)}
function ab (line 30) | function ab(a){Ya.unshift(a)}
function N (line 30) | function N(a,b,c){a=(new w.eb).Gd(a);c&&(a.length=c);b||a.push(0);return a}
function xa (line 30) | function xa(a,b,c){a=N(a,c);for(c=0;c<a.length;)D[b+c>>0]=a[c],c+=1}
function wa (line 31) | function wa(a,b){for(var c=0;c<a.length;c++)D[b+c>>0]=a[c]}
function bb (line 31) | function bb(a,b,c){for(var d=0;d<a.length;d++)D[b+d>>0]=a.charCodeAt(d);...
function fb (line 31) | function fb(){cb++;r.monitorRunDependencies&&r.monitorRunDependencies(cb)}
function gb (line 32) | function gb(){cb--;r.monitorRunDependencies&&r.monitorRunDependencies(cb...
function P (line 274) | function P(a){return E[kb>>2]=a}
function lb (line 275) | function lb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a...
function mb (line 275) | function mb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=lb(a.split...
function nb (line 276) | function nb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|)...
function ob (line 276) | function ob(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===...
function pb (line 276) | function pb(){var a=Array.prototype.slice.call(arguments,0);return mb(a....
function qb (line 276) | function qb(a,b){return mb(a+"/"+b)}
function rb (line 277) | function rb(){for(var a="",b=m,c=arguments.length-1;-1<=c&&!b;c--){b=0<=...
function sb (line 278) | function sb(a,b){function c(a){for(var b=0;b<a.length&&""===a[b];b++);fo...
function ub (line 278) | function ub(a,b){tb[a]={input:[],V:[],Sa:b};z.Cc(a,vb)}
function c (line 296) | function c(a){if(a){if(!c.Ke)return c.Ke=k,b(a)}else++f>=d.length&&b(l)}
function h (line 318) | function h(){this.vc=m;this.Eb=[]}
function p (line 323) | function p(){Cb=document.pointerLockElement===B||document.mozPointerLock...
function A (line 323) | function A(c){function p(c){j||z.Gb(a,b,c,d,f,x);h&&h();gb()}var t=m;r.p...
function f (line 326) | function f(d){i||(i=k,r.preloadedAudios[b]=d,c&&c(a))}
function h (line 326) | function h(){i||(i=k,r.preloadedAudios[b]=new Audio,d&&d())}
function Lb (line 332) | function Lb(a,b,c){a="string"!==typeof a?y(a):a;try{var d=c?z.kf(a):z.Ic...
function Nb (line 333) | function Nb(a){a/=1E3;if((da||ea)&&self.performance&&self.performance.no...
function Qb (line 333) | function Qb(){return 0}
function Rb (line 333) | function Rb(){e("TODO")}
function c (line 338) | function c(){r.websocket.aa("open",a.J.I);try{for(var c=b.Jb.shift();c;)...
function d (line 338) | function d(c){u("string"!==typeof c&&c.byteLength!==g);var c=new Uint8Ar...
function Sb (line 345) | function Sb(a,b,c){a=z.T(a);if(!a)return P(O.N),-1;try{return z.write(a,...
function Ub (line 345) | function Ub(a,b){Vb=a;Wb=b;if(!Xb)return 1;0==a?(Yb=function(){setTimeou...
function bc (line 346) | function bc(a,b,c,d){r.noExitRuntime=k;u(!Xb,"emscripten_set_main_loop: ...
function nc (line 349) | function nc(a){var b=Date.now();if(0===mc)mc=b+1E3/60;else for(;b+2>=mc;...
function ac (line 349) | function ac(a){"undefined"===typeof window?nc(a):(window.requestAnimatio...
function Hb (line 350) | function Hb(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png"...
function Ib (line 351) | function Ib(a,b,c){function d(){c?c():e('Loading data file "'+a+'" faile...
function pc (line 351) | function pc(){var a=r.canvas;oc.forEach(function(b){b(a.width,a.height)})}
function qc (line 352) | function qc(a,b,c){b&&c?(a.Rf=b,a.df=c):(b=a.Rf,c=a.df);var d=b,f=c;r.fo...
function vc (line 355) | function vc(){function a(a){return(a=a.toTimeString().match(/\(([A-Za-z ...
function wc (line 356) | function wc(a,b){vc();var c=new Date(1E3*E[a>>2]);E[b>>2]=c.getSeconds()...
function yc (line 357) | function yc(a,b,c){a=z.T(a);if(!a)return P(O.N),-1;try{return z.W(a,D,b,...
function Ac (line 358) | function Ac(a){var b,c;Ac.gb?(c=E[zc>>2],b=E[c>>2]):(Ac.gb=k,S.USER="web...
function Bc (line 359) | function Bc(a){if(0===a)return 0;a=y(a);if(!S.hasOwnProperty(a))return 0...
function Dc (line 359) | function Dc(a){Dc.gb||(C=C+4095&-4096,Dc.gb=k,u(w.Kb),Dc.he=w.Kb,w.Kb=fu...
function Fc (line 359) | function Fc(a,b,c){if(a in jb){if(jb[a].length>c-1)return P(O.Qc);bb(jb[...
function Gc (line 360) | function Gc(a){Gc.buffer||(Gc.buffer=Ia(256));Fc(a,Gc.buffer,256);return...
function Hc (line 360) | function Hc(a,b,c,d,f,h){var i,j=m;Hc.Qa||(Hc.Qa={});if(-1==f){i=Ia(b);i...
function c (line 362) | function c(){ic=m;var a=d.parentNode;(document.webkitFullScreenElement||...
function Cb (line 386) | function Cb(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}
function Db (line 386) | function Db(){return i|0}
function Eb (line 386) | function Eb(a){a=a|0;i=a}
function Fb (line 386) | function Fb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}
function Gb (line 386) | function Gb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2...
function Hb (line 386) | function Hb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2...
function Ib (line 386) | function Ib(a){a=a|0;D=a}
function Jb (line 386) | function Jb(){return D|0}
function Kb (line 386) | function Kb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;d=e+12|0;f=e+8...
function Lb (line 386) | function Lb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function Mb (line 386) | function Mb(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d+8|0;f=d+4|0;g=...
function Nb (line 386) | function Nb(b){b=b|0;var c=0,e=0;e=i;i=i+16|0;c=e;a[c>>0]=b;i=e;return((...
function Ob (line 386) | function Ob(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2]=a;...
function Pb (line 386) | function Pb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Qb (line 386) | function Qb(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2]=a;...
function Rb (line 386) | function Rb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;f=...
function Sb (line 386) | function Sb(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Tb (line 386) | function Tb(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=ub[c[38640...
function Ub (line 386) | function Ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function Vb (line 386) | function Vb(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|...
function Wb (line 386) | function Wb(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+32|0;g=...
function Xb (line 386) | function Xb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=...
function Yb (line 386) | function Yb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b+12|0;f=b+8...
function Zb (line 386) | function Zb(){var a=0,b=0,d=0,e=0,f=0;a=i;i=i+16|0;b=a+8|0;d=a+4|0;e=a;i...
function _b (line 386) | function _b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function $b (line 386) | function $b(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2...
function ac (line 386) | function ac(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 0}
function bc (line 386) | function bc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function cc (line 386) | function cc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+48|...
function dc (line 386) | function dc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=...
function ec (line 386) | function ec(){var a=0,b=0,d=0,e=0;b=i;i=i+16|0;e=b+12|0;a=b;Pb(0,e,b+8|0...
function fc (line 386) | function fc(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2]=a;...
function gc (line 386) | function gc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d;e=d+8|...
function hc (line 386) | function hc(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]...
function ic (line 386) | function ic(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function jc (line 386) | function jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d+8|0;g=...
function kc (line 386) | function kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function lc (line 386) | function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function mc (line 386) | function mc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+128|0;f...
function nc (line 386) | function nc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i...
function oc (line 386) | function oc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var j=0,l=0,m=0,n=0,o=0,p=0...
function pc (line 386) | function pc(b){b=b|0;var e=0,f=0,g=0;f=i;i=i+16|0;e=f;c[e>>2]=b;do if(((...
function qc (line 386) | function qc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+32|0;e=d+28...
function rc (line 386) | function rc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function sc (line 386) | function sc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function tc (line 386) | function tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;g=...
function uc (line 386) | function uc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+256...
function vc (line 386) | function vc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+288...
function wc (line 386) | function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function xc (line 386) | function xc(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;j=e+12...
function yc (line 386) | function yc(){var a=0,b=0;a=i;i=i+16|0;b=a;c[b>>2]=0;while(1){if((c[b>>2...
function zc (line 386) | function zc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Ac (line 386) | function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i...
function Bc (line 386) | function Bc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Cc (line 386) | function Cc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Dc (line 386) | function Dc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function Ec (line 386) | function Ec(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[...
function Fc (line 386) | function Fc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+32|0;f=e+12|0;g...
function Gc (line 386) | function Gc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;i=i+16|0;c[e+8>>2]=a;c[...
function Hc (line 386) | function Hc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+32|0;f=d+12|0;e...
function Ic (line 386) | function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i...
function Jc (line 386) | function Jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;d=e+12|0;f...
function Kc (line 386) | function Kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;d=e+12|0;g...
function Lc (line 386) | function Lc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Mc (line 386) | function Mc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d;e=d+8|...
function Nc (line 386) | function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function Oc (line 386) | function Oc(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Pc (line 386) | function Pc(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[(c[d>>2...
function Qc (line 386) | function Qc(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!((c[d>>2...
function Rc (line 386) | function Rc(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=i;i=i...
function Sc (line 386) | function Sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function Tc (line 386) | function Tc(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d...
function Uc (line 386) | function Uc(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Vc (line 386) | function Vc(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d...
function Wc (line 386) | function Wc(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Aw(c[(c[d>...
function Xc (line 386) | function Xc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Yc (line 386) | function Yc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Zc (line 386) | function Zc(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function _c (line 386) | function _c(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]...
function $c (line 386) | function $c(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function ad (line 386) | function ad(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function bd (line 386) | function bd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i...
function cd (line 386) | function cd(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;b=d+8|0;e=d+4|0;f=...
function dd (line 386) | function dd(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;l=...
function ed (line 386) | function ed(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function fd (line 386) | function fd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function gd (line 386) | function gd(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2]=a;...
function hd (line 386) | function hd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function id (line 386) | function id(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function jd (line 386) | function jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function kd (line 386) | function kd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g+12...
function ld (line 386) | function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function md (line 386) | function md(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=...
function nd (line 386) | function nd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+32|0;g=...
function od (line 386) | function od(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+32|0;d=b+16|0;f...
function pd (line 386) | function pd(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function qd (line 386) | function qd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function rd (line 386) | function rd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;j=i...
function sd (line 386) | function sd(a){a=a|0;var b=0,d=0,f=0;b=i;i=i+16|0;f=b+4|0;d=b;c[f>>2]=a;...
function td (line 386) | function td(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=i;i=i+32|0;d=e+16|0;h...
function ud (line 386) | function ud(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;c[e>>2...
function vd (line 386) | function vd(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function wd (line 386) | function wd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=...
function xd (line 386) | function xd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;d=b+4|0;e=...
function yd (line 386) | function yd(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;h=f;d=f+8|...
function zd (line 386) | function zd(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;c[(c[e>>2]|0...
function Ad (line 386) | function Ad(a){a=a|0;var d=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+12|0;h=f+8...
function Bd (line 386) | function Bd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(((e[(c[d>...
function Cd (line 386) | function Cd(a){a=a|0;var d=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+8|0;g=d+4|0;h=...
function Dd (line 386) | function Dd(a){a=a|0;var d=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+8|0;g=d+4|0;h=...
function Ed (line 386) | function Ed(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Md(c[d>>2]...
function Fd (line 386) | function Fd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Gd(c[d>>2]...
function Gd (line 386) | function Gd(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g+8|...
function Hd (line 386) | function Hd(a){a=a|0;var b=0.0,d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;b=+Id(...
function Id (line 386) | function Id(b){b=b|0;var d=0,f=0,g=0,j=0,k=0,l=0.0;d=i;i=i+32|0;f=d+8|0;...
function Jd (line 386) | function Jd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Kd(c[d>>2]...
function Kd (line 386) | function Kd(b){b=b|0;var d=0,f=0,g=0,j=0,k=0;d=i;i=i+32|0;f=d+8|0;g=d+20...
function Ld (line 386) | function Ld(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Kd(c[d>>2]...
function Md (line 386) | function Md(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0;h=i;i=i+16|0;g=h+4|0;j=...
function Nd (line 386) | function Nd(a){a=a|0;var b=0,f=0;f=i;i=i+16|0;b=f;c[b>>2]=a;i=f;return d...
function Od (line 386) | function Od(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function Pd (line 386) | function Pd(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function Qd (line 386) | function Qd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Rd (line 386) | function Rd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function Sd (line 386) | function Sd(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;e=d;c[f...
function Td (line 386) | function Td(a,d){a=a|0;d=+d;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=e;c[g...
function Ud (line 386) | function Ud(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=...
function Vd (line 386) | function Vd(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0...
function Wd (line 386) | function Wd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function Xd (line 386) | function Xd(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g+8|...
function Yd (line 386) | function Yd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|...
function Zd (line 386) | function Zd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;_d(c[c[d>>2]...
function _d (line 386) | function _d(a){a=a|0;var d=0,f=0;d=i;i=i+16|0;f=d;c[f>>2]=a;a=c[f>>2]|0;...
function $d (line 386) | function $d(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function ae (line 386) | function ae(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function be (line 386) | function be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function ce (line 386) | function ce(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0;g=i;i=i+16|0;h=g+8|0;j=...
function de (line 386) | function de(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function ee (line 386) | function ee(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f+4|0;h=f;c[...
function fe (line 386) | function fe(b,d){b=b|0;d=d|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f+4|0;h=f;c[...
function ge (line 386) | function ge(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function he (line 386) | function he(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;c[(c[e>>2]|0...
function ie (line 386) | function ie(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;_d(c[c[e>>2]...
function je (line 386) | function je(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;j=i;i=i...
function ke (line 386) | function ke(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;c[e>>2...
function le (line 386) | function le(d){d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+32|...
function me (line 386) | function me(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|0;e=d+20...
function ne (line 386) | function ne(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;e=...
function oe (line 386) | function oe(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function pe (line 386) | function pe(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function qe (line 386) | function qe(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+8|0;h=...
function re (line 386) | function re(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=...
function se (line 386) | function se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function te (line 386) | function te(a){a=a|0;var b=0,d=0,f=0;b=i;i=i+16|0;f=b+4|0;d=b;c[f>>2]=a;...
function ue (line 386) | function ue(a){a=a|0;var b=0,d=0,f=0,g=0;b=i;i=i+16|0;d=b+8|0;g=b+4|0;f=...
function ve (line 386) | function ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=...
function we (line 386) | function we(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,j=0;d=i;i=i+16|0;j=d+12...
function xe (line 386) | function xe(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function ye (line 386) | function ye(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=...
function ze (line 386) | function ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+12|0;g...
function Ae (line 386) | function Ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=...
function Be (line 386) | function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=...
function Ce (line 386) | function Ce(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function De (line 386) | function De(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Ee (line 386) | function Ee(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Fe (line 386) | function Fe(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function Ge (line 386) | function Ge(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,j=0,k=0,l=0;e=i;i=i+...
function He (line 386) | function He(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|...
function Ie (line 386) | function Ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function Je (line 386) | function Je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Ke (line 386) | function Ke(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Le (line 386) | function Le(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Me (line 386) | function Me(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i...
function Ne (line 386) | function Ne(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;k=...
function Oe (line 386) | function Oe(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+8|0;d=b+4|0;f=...
function Pe (line 386) | function Pe(d,f){d=d|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+32|0;k=...
function Qe (line 386) | function Qe(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i...
function Re (line 386) | function Re(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Se (line 386) | function Se(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function Te (line 386) | function Te(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+32|...
function Ue (line 386) | function Ue(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b+12|0;g=b+8...
function Ve (line 386) | function Ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function We (line 386) | function We(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0...
function Xe (line 386) | function Xe(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=e+4|0;c[...
function Ye (line 386) | function Ye(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Ze (line 386) | function Ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function _e (line 386) | function _e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function $e (line 386) | function $e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function af (line 386) | function af(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function bf (line 386) | function bf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function cf (line 386) | function cf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e+12...
function df (line 386) | function df(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function ef (line 386) | function ef(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function ff (line 386) | function ff(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function gf (line 386) | function gf(a){a=a|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;...
function hf (line 386) | function hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function jf (line 386) | function jf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function kf (line 386) | function kf(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function lf (line 386) | function lf(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;f=...
function mf (line 386) | function mf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function nf (line 386) | function nf(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d+8|0;f=d+4|0;g=...
function of (line 386) | function of(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function pf (line 386) | function pf(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var...
function qf (line 386) | function qf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function rf (line 386) | function rf(a){a=a|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;...
function sf (line 386) | function sf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function tf (line 386) | function tf(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]...
function uf (line 386) | function uf(){return 8}
function vf (line 386) | function vf(){return 1504}
function wf (line 386) | function wf(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;f=i;i=i+16|0;e=f+12|0;d=f+...
function xf (line 386) | function xf(){var a=0,b=0,d=0,e=0;a=i;i=i+16|0;b=a+8|0;d=a+4|0;e=a;c[d>>...
function yf (line 386) | function yf(){var a=0,b=0;a=i;if(!(c[9688]|0))Df();b=ub[c[38640+112>>2]&...
function zf (line 386) | function zf(){var a=0,b=0,d=0;a=i;i=i+16|0;b=a+4|0;d=a;c[d>>2]=fc(10)|0;...
function Af (line 386) | function Af(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function Bf (line 386) | function Bf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function Cf (line 386) | function Cf(){var a=0,b=0;a=i;i=i+16|0;b=a;c[b>>2]=6120;Bf(4,b)|0;i=a;re...
function Df (line 386) | function Df(){var a=0,b=0;a=i;i=i+16|0;b=a;c[b>>2]=6064;Bf(18,b)|0;i=a;r...
function Ef (line 386) | function Ef(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;f=b+12|0;g=b+8...
function Ff (line 386) | function Ff(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Zk(c[(c[d>>2...
function Gf (line 386) | function Gf(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function Hf (line 386) | function Hf(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0...
function If (line 386) | function If(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Jf (line 386) | function Jf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Kf (line 386) | function Kf(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Lf(c[d>>2]...
function Lf (line 386) | function Lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;g=d;e=...
function Mf (line 386) | function Mf(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Lf(c[d>>2]...
function Nf (line 386) | function Nf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function Of (line 386) | function Of(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function Pf (line 386) | function Pf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;e=...
function Qf (line 386) | function Qf(d,f,g,h,j,k,l,m,n){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0...
function Rf (line 386) | function Rf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i...
function Sf (line 386) | function Sf(e,f,g,h,j,k){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0...
function Tf (line 386) | function Tf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function Uf (line 386) | function Uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Vf (line 386) | function Vf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|...
function Wf (line 386) | function Wf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function Xf (line 386) | function Xf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function Yf (line 386) | function Yf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;j=...
function Zf (line 386) | function Zf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function _f (line 386) | function _f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function $f (line 386) | function $f(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;f=b+4|0;e=...
function ag (line 386) | function ag(a){a=a|0;var b=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;f=e;c[f>>2]=a;...
function bg (line 386) | function bg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function cg (line 386) | function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function dg (line 386) | function dg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function eg (line 386) | function eg(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function fg (line 386) | function fg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function gg (line 386) | function gg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function hg (line 386) | function hg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;d=e+12...
function ig (line 386) | function ig(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function jg (line 386) | function jg(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function kg (line 386) | function kg(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function lg (line 386) | function lg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function mg (line 386) | function mg(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function ng (line 386) | function ng(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;f=...
function og (line 386) | function og(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e+12...
function pg (line 386) | function pg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function qg (line 386) | function qg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=e+4|0;c[...
function rg (line 386) | function rg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|...
function sg (line 386) | function sg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=ug(c[c[(c[...
function tg (line 386) | function tg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return((...
function ug (line 386) | function ug(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[...
function vg (line 386) | function vg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;c[b>>2]=(c[b...
function wg (line 386) | function wg(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function xg (line 386) | function xg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|0;g=...
function yg (line 386) | function yg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;k=i...
function zg (line 386) | function zg(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function Ag (line 386) | function Ag(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i...
function Bg (line 386) | function Bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function Cg (line 386) | function Cg(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=...
function Dg (line 386) | function Dg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[(c[d>...
function Eg (line 386) | function Eg(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Fg (line 386) | function Fg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Gg (line 386) | function Gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Hg (line 386) | function Hg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Ug(c[d>>2]...
function Ig (line 386) | function Ig(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Og(c[(c[d>>2...
function Jg (line 386) | function Jg(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=...
function Kg (line 386) | function Kg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Mg(c[d>>2]|0...
function Lg (line 386) | function Lg(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return}
function Mg (line 386) | function Mg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b+12|0;f=b+8...
function Ng (line 386) | function Ng(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2...
function Og (line 386) | function Og(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Pg (line 386) | function Pg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Qg(c[d>>2]|0...
function Qg (line 386) | function Qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function Rg (line 386) | function Rg(a){a=a|0;var d=0,f=0;d=i;i=i+16|0;f=d;c[f>>2]=a;if(!(e[(c[f>...
function Sg (line 386) | function Sg(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;j=i;i=i+16|0;g=j+8|...
function Tg (line 386) | function Tg(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;if(!(a[(c[(c...
function Ug (line 386) | function Ug(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;b=d+4|0;e=...
function Vg (line 386) | function Vg(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Wg (line 386) | function Wg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function Xg (line 386) | function Xg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Yg (line 386) | function Yg(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+32|...
function Zg (line 386) | function Zg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function _g (line 386) | function _g(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function $g (line 386) | function $g(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function ah (line 386) | function ah(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;b=i;i=i+32|0;g=b+20...
function bh (line 386) | function bh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+12|0;f...
function ch (line 386) | function ch(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function dh (line 386) | function dh(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e+4|0;h=e;g=...
function eh (line 386) | function eh(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]...
function fh (line 386) | function fh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i...
function gh (line 386) | function gh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function hh (line 386) | function hh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|...
function ih (line 386) | function ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i...
function jh (line 386) | function jh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|...
function kh (line 386) | function kh(){var a=0;a=i;if(!(c[802]|0)){i=a;return}wb[c[3208>>2]&0]();...
function lh (line 386) | function lh(){var a=0;a=i;if(!(c[803]|0)){i=a;return}wb[c[3208+4>>2]&0](...
function mh (line 386) | function mh(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;b=d+8|0;e=d+4|0;f=...
function nh (line 386) | function nh(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0...
function oh (line 386) | function oh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function ph (line 386) | function ph(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function qh (line 386) | function qh(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function rh (line 386) | function rh(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0...
function sh (line 386) | function sh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h+8|0;j=...
function th (line 386) | function th(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=b;...
function uh (line 386) | function uh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;b=i;i=i+32|...
function vh (line 386) | function vh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function wh (line 386) | function wh(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i+64|0;l=d+48...
function xh (line 386) | function xh(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d...
function yh (line 386) | function yh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i...
function zh (line 386) | function zh(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Ah (line 386) | function Ah(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var...
function Bh (line 386) | function Bh(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=b;...
function Ch (line 386) | function Ch(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|...
function Dh (line 386) | function Dh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function Eh (line 386) | function Eh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function Fh (line 386) | function Fh(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Gh (line 386) | function Gh(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;i=e;return a...
function Hh (line 386) | function Hh(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d...
function Ih (line 386) | function Ih(b){b=b|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[f>>2]=b;...
function Jh (line 386) | function Jh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Kh (line 386) | function Kh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Lh (line 386) | function Lh(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;d=b+4|0;e=...
function Mh (line 386) | function Mh(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function Nh (line 386) | function Nh(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;e=f+8|0;g=f+4|...
function Oh (line 386) | function Oh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+8|0;f=...
function Ph (line 386) | function Ph(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=b;...
function Qh (line 386) | function Qh(b){b=b|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=b;do if((d[(c[...
function Rh (line 386) | function Rh(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Sh (line 386) | function Sh(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;rb[c[38640+1...
function Th (line 386) | function Th(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+32|0;f=e+16...
function Uh (line 386) | function Uh(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Vh (line 386) | function Vh(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e+4|0;f=e;c[d>>2]=b;...
function Wh (line 386) | function Wh(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function Xh (line 386) | function Xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|...
function Yh (line 386) | function Yh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Zh (line 386) | function Zh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+32|...
function _h (line 386) | function _h(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function $h (line 386) | function $h(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function ai (line 386) | function ai(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function bi (line 386) | function bi(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;if(!(a[(c[e>...
function ci (line 386) | function ci(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function di (line 386) | function di(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;j=g+8|0;k=...
function ei (line 386) | function ei(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f+8|0;j=...
function fi (line 386) | function fi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function gi (line 386) | function gi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e+12...
function hi (line 386) | function hi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[...
function ii (line 386) | function ii(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function ji (line 386) | function ji(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=...
function ki (line 386) | function ki(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;ni(c[d>>2]|0...
function li (line 386) | function li(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function mi (line 386) | function mi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function ni (line 386) | function ni(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+32|...
function oi (line 386) | function oi(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function pi (line 386) | function pi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function qi (line 386) | function qi(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function ri (line 386) | function ri(){return 40}
function si (line 386) | function si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function ti (line 386) | function ti(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function ui (line 386) | function ui(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function vi (line 386) | function vi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function wi (line 386) | function wi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0...
function xi (line 386) | function xi(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0...
function yi (line 386) | function yi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function zi (line 386) | function zi(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if((d[(c[b>>...
function Ai (line 386) | function Ai(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=ub[c[(c[c[...
function Bi (line 386) | function Bi(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Ci (line 386) | function Ci(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Di (line 386) | function Di(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Ei (line 386) | function Ei(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Fi (line 386) | function Fi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Gi (line 386) | function Gi(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;j=e+12...
function Hi (line 386) | function Hi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function Ii (line 386) | function Ii(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function Ji (line 386) | function Ji(a){a=a|0;var d=0,f=0;d=i;i=i+16|0;f=d;c[f>>2]=a;a=(c[f>>2]|0...
function Ki (line 386) | function Ki(a){a=a|0;var d=0,f=0;d=i;i=i+16|0;f=d;c[f>>2]=a;a=(c[f>>2]|0...
function Li (line 386) | function Li(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|...
function Mi (line 386) | function Mi(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function Ni (line 386) | function Ni(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|...
function Oi (line 386) | function Oi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+32|0;f=b+16|0;d...
function Pi (line 386) | function Pi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Qi (line 386) | function Qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;g=b+12|0;d=b+8...
function Ri (line 386) | function Ri(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=...
function Si (line 386) | function Si(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;d=i;i=i+32|0;l=...
function Ti (line 386) | function Ti(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Ui (line 386) | function Ui(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function Vi (line 386) | function Vi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Wi (line 386) | function Wi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Xi (line 386) | function Xi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i...
function Yi (line 386) | function Yi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|...
function Zi (line 386) | function Zi(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[b>>2]=a;...
function _i (line 386) | function _i(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;f=i;i=i+144|0;h=f+1...
function $i (line 386) | function $i(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+64|0;d=g+52...
function aj (line 386) | function aj(a){a=a|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;i=e;return b...
function bj (line 386) | function bj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if((e[(c[b>>...
function cj (line 386) | function cj(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function dj (line 386) | function dj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i...
function ej (line 386) | function ej(a){a=a|0;var b=0,d=0,f=0;b=i;i=i+16|0;f=b+4|0;d=b;c[f>>2]=a;...
function fj (line 386) | function fj(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;f=b;c[d>>2...
function gj (line 386) | function gj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(c[(c[d>>2...
function hj (line 386) | function hj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+16|0;c[f+12...
function ij (line 386) | function ij(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function jj (line 386) | function jj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function kj (line 386) | function kj(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2]=a;...
function lj (line 386) | function lj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function mj (line 386) | function mj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function nj (line 386) | function nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function oj (line 386) | function oj(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;bi(c[e>>2]|0...
function pj (line 386) | function pj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function qj (line 386) | function qj(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0...
function rj (line 386) | function rj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function sj (line 386) | function sj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function tj (line 386) | function tj(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+8|0;f=...
function uj (line 386) | function uj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function vj (line 386) | function vj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function wj (line 386) | function wj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function xj (line 386) | function xj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|...
function yj (line 386) | function yj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return((...
function zj (line 386) | function zj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0...
function Aj (line 386) | function Aj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function Bj (line 386) | function Bj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Cj (line 386) | function Cj(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Dj (line 386) | function Dj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;ng(c[d>>2]|0...
function Ej (line 386) | function Ej(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Fj (line 386) | function Fj(a,d,f,g,h,j){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function Gj (line 386) | function Gj(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i...
function Hj (line 386) | function Hj(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function Ij (line 386) | function Ij(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2]=a;...
function Jj (line 386) | function Jj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Kj (line 386) | function Kj(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function Lj (line 386) | function Lj(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Mj (line 386) | function Mj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=i;i=i+16|0;d=f+8|0;e=f+4|...
function Nj (line 386) | function Nj(a){a=a|0;var b=0,e=0;b=i;i=i+16|0;e=b;c[e>>2]=a;if((d[(c[e>>...
function Oj (line 386) | function Oj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;rb[c[(c[c[d>...
function Pj (line 386) | function Pj(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;d=e+8|0;f=e+4|0;b=...
function Qj (line 386) | function Qj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Rj (line 386) | function Rj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=aj(c[d>>2]...
function Sj (line 386) | function Sj(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0...
function Tj (line 386) | function Tj(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;j=k+12...
function Uj (line 386) | function Uj(){return 48}
function Vj (line 386) | function Vj(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0...
function Wj (line 386) | function Wj(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=...
function Xj (line 386) | function Xj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;b=d+20...
function Yj (line 386) | function Yj(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+32|0;j=...
function Zj (line 386) | function Zj(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function _j (line 386) | function _j(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;k=i...
function $j (line 386) | function $j(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i...
function ak (line 386) | function ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|...
function bk (line 386) | function bk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function ck (line 386) | function ck(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[...
function dk (line 386) | function dk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Dz (line 390) | function Dz(f,g,h,j,k,l,m,n,o){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0...
function Ez (line 390) | function Ez(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0...
function Fz (line 390) | function Fz(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function Gz (line 390) | function Gz(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+32|...
function Hz (line 390) | function Hz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;e=...
function Iz (line 390) | function Iz(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2]=a;...
function Jz (line 390) | function Jz(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i+32|0;f=...
function Kz (line 390) | function Kz(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;f=i;i=i+16|0;g=f+8|0;h=...
function Lz (line 390) | function Lz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i...
function Mz (line 390) | function Mz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Nz (line 390) | function Nz(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Oz (line 390) | function Oz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Pz (line 390) | function Pz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|...
function Qz (line 390) | function Qz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Rz (line 390) | function Rz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function Sz (line 390) | function Sz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;g=h+12...
function Tz (line 390) | function Tz(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Rz(c[c[d>>...
function Uz (line 390) | function Uz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function Vz (line 390) | function Vz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function Wz (line 390) | function Wz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Xz (line 390) | function Xz(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function Yz (line 390) | function Yz(d){d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[f>>2]=d;...
function Zz (line 390) | function Zz(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|...
function _z (line 390) | function _z(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;d=f+8|...
function $z (line 390) | function $z(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function aA (line 390) | function aA(a){a=a|0;var b=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;f=b;c[f>>2]=a;...
function bA (line 390) | function bA(a){a=a|0;var b=0,e=0,f=0;b=i;i=i+16|0;f=b+4|0;e=b;c[f>>2]=a;...
function cA (line 390) | function cA(a){a=a|0;var b=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;b=e+4|0;g=...
function dA (line 390) | function dA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=...
function eA (line 390) | function eA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function fA (line 390) | function fA(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|0;k=d+20...
function gA (line 390) | function gA(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i...
function hA (line 390) | function hA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i...
function iA (line 390) | function iA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function jA (line 390) | function jA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function kA (line 390) | function kA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=...
function lA (line 390) | function lA(b,f){b=b|0;f=f|0;var g=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0...
function mA (line 390) | function mA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|...
function nA (line 390) | function nA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e+4|0;f=e;c[...
function oA (line 390) | function oA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+32|0;d=b+16|0;e=b+1...
function pA (line 390) | function pA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+4|0;e=...
function qA (line 390) | function qA(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function rA (line 390) | function rA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function sA (line 390) | function sA(b){b=b|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+4|0;f=e;c[g>>2]=b;...
function tA (line 390) | function tA(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function uA (line 390) | function uA(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function vA (line 390) | function vA(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function wA (line 390) | function wA(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function xA (line 390) | function xA(b){b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i...
function yA (line 390) | function yA(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function zA (line 390) | function zA(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function AA (line 390) | function AA(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i...
function BA (line 390) | function BA(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+8|0;g=...
function CA (line 390) | function CA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function DA (line 390) | function DA(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d...
function EA (line 390) | function EA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function FA (line 390) | function FA(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function GA (line 390) | function GA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i...
function HA (line 390) | function HA(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+80|...
function IA (line 390) | function IA(b){b=b|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=b;if(a[(c[f>>2...
function JA (line 390) | function JA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function KA (line 390) | function KA(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function LA (line 390) | function LA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function MA (line 390) | function MA(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=ub[c[38640...
function NA (line 390) | function NA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|...
function OA (line 390) | function OA(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+32|0;f=e+16...
function PA (line 390) | function PA(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+8|0;d=b+4|0;f=...
function QA (line 390) | function QA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+16|0;f=...
function RA (line 390) | function RA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;g=...
function SA (line 390) | function SA(b){b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;...
function TA (line 390) | function TA(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function UA (line 390) | function UA(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var...
function VA (line 390) | function VA(a){a=a|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[f>>2]=a;...
function WA (line 390) | function WA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function XA (line 390) | function XA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+176|0;d=b+168|0;e=b...
function YA (line 390) | function YA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;e=b+12|0;g=b+8...
function ZA (line 390) | function ZA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|...
function _A (line 390) | function _A(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i+32|...
function $A (line 390) | function $A(a){a=a|0;var d=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+8|0;g=d+4|0;h=...
function aB (line 390) | function aB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;e=...
function bB (line 390) | function bB(a){a=a|0;var d=0,f=0;d=i;i=i+16|0;f=d;c[f>>2]=a;if(!((e[(c[f...
function cB (line 390) | function cB(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|...
function dB (line 390) | function dB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Fg(c[(c[d>...
function eB (line 390) | function eB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;c[...
function fB (line 390) | function fB(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function gB (line 390) | function gB(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function hB (line 390) | function hB(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0...
function iB (line 390) | function iB(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;f=g+4|0;e=g;c[...
function jB (line 390) | function jB(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function kB (line 390) | function kB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d;f=...
function lB (line 390) | function lB(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=i;i=i...
function mB (line 390) | function mB(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function nB (line 390) | function nB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function oB (line 390) | function oB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;g=d+12...
function pB (line 390) | function pB(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function qB (line 390) | function qB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;hc(c[(c[d>>2...
function rB (line 390) | function rB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]...
function sB (line 390) | function sB(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function tB (line 390) | function tB(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function uB (line 390) | function uB(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function vB (line 390) | function vB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function wB (line 390) | function wB(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;i=i+32|...
function xB (line 390) | function xB(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function yB (line 390) | function yB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;CB(c[d>>2]|0...
function zB (line 390) | function zB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function AB (line 390) | function AB(a){a=a|0;var d=0,f=0,g=0;d=i;i=i+16|0;f=d+4|0;g=d;c[f>>2]=a;...
function BB (line 390) | function BB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=...
function CB (line 390) | function CB(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;a=(c[e>>2]|0...
function DB (line 390) | function DB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function EB (line 390) | function EB(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0...
function FB (line 390) | function FB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i...
function GB (line 390) | function GB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function HB (line 390) | function HB(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;j=i...
function IB (line 390) | function IB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function JB (line 390) | function JB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function KB (line 390) | function KB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function LB (line 390) | function LB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|...
function MB (line 390) | function MB(d){d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;h=...
function NB (line 390) | function NB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function OB (line 390) | function OB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function PB (line 390) | function PB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function QB (line 390) | function QB(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function RB (line 390) | function RB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i...
function SB (line 390) | function SB(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2...
function TB (line 390) | function TB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function UB (line 390) | function UB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function VB (line 390) | function VB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function WB (line 390) | function WB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function XB (line 390) | function XB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;i=i...
function YB (line 390) | function YB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function ZB (line 390) | function ZB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+12|0;b=d+8...
function _B (line 390) | function _B(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function $B (line 390) | function $B(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function aC (line 390) | function aC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i...
function bC (line 390) | function bC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i...
function cC (line 390) | function cC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;b=i;i=i+16|0;f=b+12...
function dC (line 390) | function dC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function eC (line 390) | function eC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+12|0;e=d+8...
function fC (line 390) | function fC(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function gC (line 390) | function gC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function hC (line 390) | function hC(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0...
function iC (line 390) | function iC(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d...
function jC (line 390) | function jC(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=d+4|0;e=...
function kC (line 390) | function kC(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;g=h+12...
function lC (line 390) | function lC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;j=e+12...
function mC (line 390) | function mC(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0...
function nC (line 390) | function nC(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var...
function oC (line 390) | function oC(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=i...
function pC (line 390) | function pC(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i...
function qC (line 390) | function qC(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function rC (line 390) | function rC(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0...
function sC (line 390) | function sC(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;h=...
function tC (line 390) | function tC(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0...
function uC (line 390) | function uC(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function vC (line 390) | function vC(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function wC (line 390) | function wC(b){b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function xC (line 390) | function xC(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function yC (line 390) | function yC(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function zC (line 390) | function zC(b,f,g,h,j,k,l,m,n){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0...
function AC (line 390) | function AC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d+8|0;g=...
function BC (line 390) | function BC(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function CC (line 390) | function CC(d,f,g,h,j){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0...
function DC (line 390) | function DC(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;if(c[(c[e>>2...
function EC (line 390) | function EC(){return 200}
function FC (line 390) | function FC(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;d=(c[d>>2]|0...
function GC (line 390) | function GC(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;i=i...
function HC (line 390) | function HC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function IC (line 390) | function IC(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+32|0;h=g+16...
function JC (line 390) | function JC(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function KC (line 390) | function KC(a,b){a=a|0;b=b|0;var d=0,f=0,g=0;f=i;i=i+16|0;d=f+4|0;g=f;c[...
function LC (line 390) | function LC(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12|0;g=d+8...
function MC (line 390) | function MC(d){d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[g>>2]=d;...
function NC (line 390) | function NC(d){d=d|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f+4|0;h=f;c[h>>2]=d;...
function OC (line 390) | function OC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=i;i=i+32|0;b=e+16|0;h...
function PC (line 390) | function PC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function QC (line 390) | function QC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i...
function RC (line 390) | function RC(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Vk(c[d>>2]|0...
function SC (line 390) | function SC(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=VC(c[c[(c[...
function TC (line 390) | function TC(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;e=d+4|0;b=...
function UC (line 390) | function UC(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d...
function VC (line 390) | function VC(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function WC (line 390) | function WC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=i;i=i+16|0;d=e+12|0;f=e+8...
function XC (line 390) | function XC(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function YC (line 390) | function YC(d,f,g){d=d|0;f=f|0;g=g|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function ZC (line 390) | function ZC(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f+8|...
function _C (line 390) | function _C(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+4|0;g=...
function $C (line 390) | function $C(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;j=i;i=i+16|0;h=j+4|0;k=...
function aD (line 390) | function aD(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if((e[(c[b>>...
function bD (line 390) | function bD(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function cD (line 390) | function cD(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0...
function dD (line 390) | function dD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|...
function eD (line 390) | function eD(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;_g(c[(c[d>>2...
function fD (line 390) | function fD(b){b=b|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;h=...
function gD (line 390) | function gD(d){d=d|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+8|0;h=f+4|0;g=...
function hD (line 390) | function hD(a){a=a|0;var d=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+12|0;d=f+8...
function iD (line 390) | function iD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;i=i+32|...
function jD (line 390) | function jD(b){b=b|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;h=...
function kD (line 390) | function kD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+12|0;f...
function lD (line 390) | function lD(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function mD (line 390) | function mD(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0...
function nD (line 390) | function nD(a){a=a|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=i;i=i...
function oD (line 390) | function oD(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;f=e+16|0;h...
function pD (line 390) | function pD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function qD (line 390) | function qD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12|0;f=d+8...
function rD (line 390) | function rD(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function sD (line 390) | function sD(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i...
function tD (line 390) | function tD(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=i...
function uD (line 390) | function uD(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i...
function vD (line 390) | function vD(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d+8|0;g=d+4|0;f=...
function wD (line 390) | function wD(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;_d(c[d>>2]|0...
function xD (line 390) | function xD(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function yD (line 390) | function yD(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+8|0;d=b+4|0;f=...
function zD (line 390) | function zD(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function AD (line 390) | function AD(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function BD (line 390) | function BD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i...
function CD (line 390) | function CD(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i...
function DD (line 390) | function DD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+96|0;e=...
function ED (line 390) | function ED(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i...
function FD (line 390) | function FD(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i...
function GD (line 390) | function GD(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+32|...
function HD (line 390) | function HD(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function ID (line 390) | function ID(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 4096}
function JD (line 390) | function JD(a){a=a|0;var b=0,d=0,f=0,g=0;b=i;i=i+16|0;g=b+8|0;f=b+4|0;d=...
function KD (line 390) | function KD(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function LD (line 390) | function LD(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;PD();RD();i=b;return}
function MD (line 390) | function MD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i...
function ND (line 390) | function ND(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;i=i...
function OD (line 390) | function OD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+16|0;c[f+12...
function PD (line 390) | function PD(){return}
function QD (line 390) | function QD(a){a=a|0;var b=0,d=0,f=0,g=0,h=0;b=i;i=i+16|0;d=b+12|0;f=b+8...
function RD (line 390) | function RD(){return}
function SD (line 390) | function SD(){var a=0,b=0,d=0,e=0;a=i;i=i+16|0;b=a+8|0;d=a+4|0;e=a;c[d>>...
function TD (line 390) | function TD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function UD (line 390) | function UD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function VD (line 390) | function VD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function WD (line 390) | function WD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+544...
function XD (line 390) | function XD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function YD (line 390) | function YD(){var a=0,b=0;b=i;a=Pa(30)|0;i=b;return a|0}
function ZD (line 390) | function ZD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function _D (line 390) | function _D(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function $D (line 390) | function $D(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function aE (line 390) | function aE(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+16|0;l=...
function bE (line 390) | function bE(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i...
function cE (line 390) | function cE(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+80|0;e=b+76|0;d=b;c[e>>2]=a...
function dE (line 390) | function dE(){var a=0,b=0,d=0,e=0,f=0;a=i;i=i+96|0;e=a+80|0;d=a+4|0;b=a;...
function eE (line 390) | function eE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function fE (line 390) | function fE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function gE (line 390) | function gE(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0...
function hE (line 390) | function hE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|...
function iE (line 390) | function iE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+16|0;g=f+12...
function jE (line 390) | function jE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function kE (line 390) | function kE(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function lE (line 390) | function lE(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function mE (line 390) | function mE(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=kE(c[d>>2]...
function nE (line 390) | function nE(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function oE (line 390) | function oE(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function pE (line 390) | function pE(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[d+4>>2]=a;c[...
function qE (line 390) | function qE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+96|...
function rE (line 390) | function rE(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function sE (line 390) | function sE(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function tE (line 390) | function tE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;h=i...
function uE (line 390) | function uE(a){a=a|0;var d=0,f=0,g=0,h=0,j=0;d=i;i=i+96|0;g=d;f=d+84|0;h...
function vE (line 390) | function vE(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;e=d+8|0;b=d+4|0;f=...
function wE (line 390) | function wE(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function xE (line 390) | function xE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function yE (line 390) | function yE(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i...
function zE (line 390) | function zE(a,f,g,h,j){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0...
function AE (line 390) | function AE(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function BE (line 390) | function BE(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function CE (line 390) | function CE(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=i;i=i...
function DE (line 390) | function DE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+12|0;b=d+8...
function EE (line 390) | function EE(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;f=...
function FE (line 390) | function FE(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function GE (line 390) | function GE(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function HE (line 390) | function HE(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2...
function IE (line 390) | function IE(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0;b=i;i=i+16|0;d=b;e=b+8|0;...
function JE (line 390) | function JE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;e=i;i=i+32|0;f=...
function KE (line 390) | function KE(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2...
function LE (line 390) | function LE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=...
function ME (line 390) | function ME(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function NE (line 390) | function NE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+32|0;g=b+16|0;d...
function OE (line 390) | function OE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function PE (line 390) | function PE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;g=i;i=i+32|0;j=...
function QE (line 390) | function QE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function RE (line 390) | function RE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function SE (line 390) | function SE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(b>>>0>42949...
function TE (line 390) | function TE(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=i;a:do if(!d)d=0;...
function UE (line 390) | function UE(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=i;f=a[b>>0]|0;e=a[c>>0]|0...
function VE (line 390) | function VE(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;f=i;if(!e){b=0;i=f;...
function WE (line 390) | function WE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function qo (line 394) | function qo(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0...
function ro (line 394) | function ro(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i...
function so (line 394) | function so(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function to (line 394) | function to(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function uo (line 394) | function uo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function vo (line 394) | function vo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function wo (line 394) | function wo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function xo (line 394) | function xo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function yo (line 394) | function yo(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function zo (line 394) | function zo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Ao (line 394) | function Ao(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Bo (line 394) | function Bo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Co (line 394) | function Co(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Do (line 394) | function Do(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0...
function Eo (line 394) | function Eo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Fo (line 394) | function Fo(b,e,f,g,h,j,k,l,m,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k...
function Go (line 394) | function Go(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function Ho (line 394) | function Ho(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function Io (line 394) | function Io(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|...
function Jo (line 394) | function Jo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e+12...
function Ko (line 394) | function Ko(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Lo (line 394) | function Lo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function Mo (line 394) | function Mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function No (line 394) | function No(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Oo (line 394) | function Oo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Po (line 394) | function Po(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Qo (line 394) | function Qo(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function Ro (line 394) | function Ro(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function So (line 394) | function So(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function To (line 394) | function To(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function Uo (line 394) | function Uo(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;_o(c[d>>2]|0...
function Vo (line 394) | function Vo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function Wo (line 394) | function Wo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function Xo (line 394) | function Xo(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;j=i;i=i+16|0;l=j+4|0;k=...
function Yo (line 394) | function Yo(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e+4|0;b=e;c[d>>2]=a;...
function Zo (line 394) | function Zo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function _o (line 394) | function _o(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b+12|0;e=b+8...
function $o (line 394) | function $o(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function ap (line 394) | function ap(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function bp (line 394) | function bp(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b+4|0;c[d>>2]=a;Se(c[d>>...
function cp (line 394) | function cp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function dp (line 394) | function dp(b){b=b|0;var d=0,f=0,g=0;d=i;i=i+16|0;g=d+4|0;f=d;c[g>>2]=b;...
function ep (line 394) | function ep(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;f=...
function fp (line 394) | function fp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function gp (line 394) | function gp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function hp (line 394) | function hp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var...
function ip (line 394) | function ip(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function jp (line 394) | function jp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+32|0;g=e+16...
function kp (line 394) | function kp(b){b=b|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+4|0;g=e;c[g>>2...
function lp (line 394) | function lp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;j=f+12...
function mp (line 394) | function mp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function np (line 394) | function np(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function op (line 394) | function op(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h;g=...
function pp (line 394) | function pp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|...
function qp (line 394) | function qp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;h=d+12...
function rp (line 394) | function rp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|0;h=d;e=...
function sp (line 394) | function sp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function tp (line 394) | function tp(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function up (line 394) | function up(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function vp (line 394) | function vp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function wp (line 394) | function wp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i...
function xp (line 394) | function xp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i...
function yp (line 394) | function yp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function zp (line 394) | function zp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function Ap (line 394) | function Ap(f,g,j,k,l,m){f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0...
function Bp (line 394) | function Bp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;l=i...
function Cp (line 394) | function Cp(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+16|0;l=...
function Dp (line 394) | function Dp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=...
function Ep (line 394) | function Ep(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d+4|0;c[e>>2]=a;...
function Fp (line 394) | function Fp(d){d=d|0;var f=0,g=0,j=0,k=0.0;f=i;i=i+16|0;g=f;c[g>>2]=d;do...
function Gp (line 394) | function Gp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i...
function Hp (line 394) | function Hp(a){a=a|0;var d=0,f=0,g=0,j=0,k=0,l=0,m=0;d=i;i=i+16|0;g=d+8|...
function Ip (line 394) | function Ip(a){a=+a;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;e=b;h[e>>3]...
function Jp (line 394) | function Jp(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=...
function Kp (line 394) | function Kp(f,g,j){f=f|0;g=g|0;j=j|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i...
function Lp (line 394) | function Lp(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+8|0;j=...
function Mp (line 394) | function Mp(a){a=a|0;var d=0,f=0,g=0;d=i;i=i+16|0;f=d;c[f>>2]=a;g=Kd(c[f...
function Np (line 394) | function Np(a){a=a|0;var d=0,f=0,g=0.0;d=i;i=i+16|0;f=d;c[f>>2]=a;g=+Id(...
function Op (line 394) | function Op(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Pp (line 394) | function Pp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;h=k;j=...
function Qp (line 394) | function Qp(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function Rp (line 394) | function Rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function Sp (line 394) | function Sp(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=b;...
function Tp (line 394) | function Tp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;g=d+12...
function Up (line 394) | function Up(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=bh((c[(c[d...
function Vp (line 394) | function Vp(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Wp (line 394) | function Wp(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i...
function Xp (line 394) | function Xp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function Yp (line 394) | function Yp(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+32|...
function Zp (line 394) | function Zp(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|...
function _p (line 394) | function _p(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function $p (line 394) | function $p(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function aq (line 394) | function aq(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function bq (line 394) | function bq(e){e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;g=f+12|0;h=f+8...
function cq (line 394) | function cq(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function dq (line 394) | function dq(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e+10...
function eq (line 394) | function eq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function fq (line 394) | function fq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|...
function gq (line 394) | function gq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i...
function hq (line 394) | function hq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|...
function iq (line 394) | function iq(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;c[d>>2]=a;while(1)...
function jq (line 394) | function jq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;h=e+28|0;f...
function kq (line 394) | function kq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+48|...
function lq (line 394) | function lq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+32|0;g=d+28|0;e...
function mq (line 394) | function mq(a,f){a=a|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=i...
function nq (line 394) | function nq(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function oq (line 394) | function oq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;d=e+12...
function pq (line 394) | function pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;d=e+8|0;f=...
function qq (line 394) | function qq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|...
function rq (line 394) | function rq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;d=...
function sq (line 394) | function sq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function tq (line 394) | function tq(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function uq (line 394) | function uq(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function vq (line 394) | function vq(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+48|...
function wq (line 394) | function wq(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function xq (line 394) | function xq(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function yq (line 394) | function yq(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;f=...
function zq (line 394) | function zq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Aq (line 394) | function Aq(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i...
function Bq (line 394) | function Bq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function Cq (line 394) | function Cq(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Dq (line 394) | function Dq(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i...
function Eq (line 394) | function Eq(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Fq (line 394) | function Fq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Gq (line 394) | function Gq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function Hq (line 394) | function Hq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function Iq (line 394) | function Iq(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[e>>2]=a;...
function Jq (line 394) | function Jq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Kq (line 394) | function Kq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=...
function Lq (line 394) | function Lq(a,f,g,h){a=a|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function Mq (line 394) | function Mq(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0...
function Nq (line 394) | function Nq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+32|0;g=d+28|0;f...
function Oq (line 394) | function Oq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function Pq (line 394) | function Pq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;c[...
function Qq (line 394) | function Qq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;h=...
function Rq (line 394) | function Rq(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0...
function Sq (line 394) | function Sq(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|...
function Tq (line 394) | function Tq(a){a=a|0;var b=0,e=0,f=0,g=0;b=i;i=i+16|0;e=b+12|0;g=b+8|0;f...
function Uq (line 394) | function Uq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+48|0;f=d+44...
function Vq (line 394) | function Vq(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|...
function Wq (line 394) | function Wq(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;k=...
function Xq (line 394) | function Xq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Yq (line 394) | function Yq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;d=e+12...
function Zq (line 394) | function Zq(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[e>>2]=a;...
function _q (line 394) | function _q(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function $q (line 394) | function $q(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function ar (line 394) | function ar(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function br (line 394) | function br(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function cr (line 394) | function cr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;h=d+12...
function dr (line 394) | function dr(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;while(1){a=c...
function er (line 394) | function er(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function fr (line 394) | function fr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i...
function gr (line 394) | function gr(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function hr (line 394) | function hr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function ir (line 394) | function ir(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
function jr (line 394) | function jr(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;e=f+12...
function kr (line 394) | function kr(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k...
function lr (line 394) | function lr(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[...
function mr (line 394) | function mr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i...
function nr (line 394) | function nr(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;b=d+8|0;f=d+4|0;e=...
function or (line 394) | function or(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function pr (line 394) | function pr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function qr (line 394) | function qr(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function rr (line 394) | function rr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function sr (line 394) | function sr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function tr (line 394) | function tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function ur (line 394) | function ur(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function vr (line 394) | function vr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function wr (line 394) | function wr(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function xr (line 394) | function xr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;h=...
function yr (line 394) | function yr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i...
function zr (line 394) | function zr(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0...
function Ar (line 394) | function Ar(b){b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;d=e+4|0;g=...
function Br (line 394) | function Br(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Cr (line 394) | function Cr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+12...
function Dr (line 394) | function Dr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i...
function Er (line 394) | function Er(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function Fr (line 394) | function Fr(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function Gr (line 394) | function Gr(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0...
function Hr (line 394) | function Hr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function Ir (line 394) | function Ir(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function Jr (line 394) | function Jr(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function Kr (line 394) | function Kr(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function Lr (line 394) | function Lr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;e=...
function Mr (line 394) | function Mr(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Nr (line 394) | function Nr(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;e=d+4|0;b=...
function Or (line 394) | function Or(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+32|...
function Pr (line 394) | function Pr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+12...
function Qr (line 394) | function Qr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i...
function Rr (line 394) | function Rr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Sr (line 394) | function Sr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+32|...
function Tr (line 394) | function Tr(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;...
function Ur (line 394) | function Ur(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Vr (line 394) | function Vr(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function Wr (line 394) | function Wr(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=i...
function Xr (line 394) | function Xr(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|...
function Yr (line 394) | function Yr(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(c[b>>2]|0...
function Zr (line 394) | function Zr(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=b;...
function _r (line 394) | function _r(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|0;h=...
function $r (line 394) | function $r(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function as (line 394) | function as(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d+8|0;g=...
function bs (line 394) | function bs(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0...
function cs (line 394) | function cs(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function ds (line 394) | function ds(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[e>>2]=a;...
function es (line 394) | function es(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=...
function fs (line 394) | function fs(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function gs (line 394) | function gs(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function hs (line 394) | function hs(a){a=a|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=f+12|0;k...
function is (line 394) | function is(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function js (line 394) | function js(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function ks (line 394) | function ks(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;h=i;i=i...
function ls (line 394) | function ls(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function ms (line 394) | function ms(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i...
function ns (line 394) | function ns(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function os (line 394) | function os(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function ps (line 394) | function ps(a,e,f,g,h,j,k,l){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l...
function qs (line 394) | function qs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[...
function rs (line 394) | function rs(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function ss (line 394) | function ss(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function ts (line 394) | function ts(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0...
function us (line 394) | function us(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+8|0;f=b+4|0;d=...
function vs (line 394) | function vs(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f+4|0;g=...
function ws (line 394) | function ws(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0...
function xs (line 394) | function xs(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function ys (line 394) | function ys(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;g=d+12...
function zs (line 394) | function zs(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function As (line 394) | function As(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+4|0;h=...
function Bs (line 394) | function Bs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function Cs (line 394) | function Cs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Ds (line 394) | function Ds(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g+10...
function Es (line 394) | function Es(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Fs (line 394) | function Fs(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c...
function Gs (line 394) | function Gs(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Hs (line 394) | function Hs(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Is (line 394) | function Is(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j...
function Js (line 394) | function Js(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0...
function Ks (line 394) | function Ks(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Ls (line 394) | function Ls(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;b=d+8|0;f=d+4|0;e=...
function Ms (line 394) | function Ms(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0...
function Ns (line 394) | function Ns(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d;e=d+4|0;c[f>>2]=b;...
function Os (line 394) | function Os(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|...
function Ps (line 394) | function Ps(e){e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g+4|0;h=g;j=...
function Qs (line 394) | function Qs(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function Rs (line 394) | function Rs(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0...
function Ss (line 394) | function Ss(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function Ts (line 394) | function Ts(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0...
function Us (line 394) | function Us(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function Vs (line 394) | function Vs(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=et(c[d>>2]...
function Ws (line 394) | function Ws(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function Xs (line 394) | function Xs(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0...
function ek (line 398) | function ek(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+32|...
function fk (line 398) | function fk(a){a=a|0;var d=0,f=0,g=0;f=i;i=i+16|0;d=f+4|0;g=f;c[d>>2]=a;...
function gk (line 398) | function gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function hk (line 398) | function hk(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f+8|0;j=...
function ik (line 398) | function ik(e,f,g,h,j,k){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0...
function jk (line 398) | function jk(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;j=i;i=i...
function kk (line 398) | function kk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function lk (line 398) | function lk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0...
function mk (line 398) | function mk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0...
function nk (line 398) | function nk(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function ok (line 398) | function ok(a){a=a|0;var b=0,e=0,f=0;b=i;i=i+16|0;f=b+4|0;e=b;c[f>>2]=a;...
function pk (line 398) | function pk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function qk (line 398) | function qk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;f=...
function rk (line 398) | function rk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+4|0;f=e;c[...
function sk (line 398) | function sk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+4|0;c[e>>2]=a;...
function tk (line 398) | function tk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function uk (line 398) | function uk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function vk (line 398) | function vk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function wk (line 398) | function wk(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;j=i;i=i...
function xk (line 398) | function xk(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+32|...
function yk (line 398) | function yk(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;g=f+12...
function zk (line 398) | function zk(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0...
function Ak (line 398) | function Ak(d){d=d|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;g=h+8|0;f=h+4|0;j=...
function Bk (line 398) | function Bk(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+8|0;h=...
function Ck (line 398) | function Ck(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[...
function Dk (line 398) | function Dk(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|...
function Ek (line 398) | function Ek(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function Fk (line 398) | function Fk(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function Gk (line 398) | function Gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;g=...
function Hk (line 398) | function Hk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b+12|0;e=b+8...
function Ik (line 398) | function Ik(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+32|...
function Jk (line 398) | function Jk(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e+4|0;f=e;c[d>>2]=b;...
function Kk (line 398) | function Kk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;d=e+12|0;f=e+8...
function Lk (line 398) | function Lk(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;d=b+4|0;e=...
function Mk (line 398) | function Mk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;d=b+12|0;g...
function Nk (line 398) | function Nk(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+8|0;d=b+4|0;f=...
function Ok (line 398) | function Ok(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;g=d+12|0;f=d+8...
function Pk (line 398) | function Pk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;f=b+8|0;e=b+4|...
function Qk (line 398) | function Qk(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;hc(c[(c[e>>2...
function Rk (line 398) | function Rk(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;if(!(c[d>>2]...
function Sk (line 398) | function Sk(a){a=a|0;var b=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;f=b;c[e>>2]=a;...
function Tk (line 398) | function Tk(a){a=a|0;var b=0,e=0;b=i;i=i+16|0;e=b;c[e>>2]=a;if(!(c[e>>2]...
function Uk (line 398) | function Uk(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Vk(c[d>>2]|0...
function Vk (line 398) | function Vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|...
function Wk (line 398) | function Wk(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function Xk (line 398) | function Xk(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;b=e+16|0;h...
function Yk (line 398) | function Yk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=...
function Zk (line 398) | function Zk(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;rb[c[38640+1...
function _k (line 398) | function _k(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;c[b>>2]=a;d=3136|0;a=d+68|...
function $k (line 398) | function $k(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;c[b>>2]=a;d=3136|0;a=d+68|...
function al (line 398) | function al(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function bl (line 398) | function bl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;h=d+12...
function cl (line 398) | function cl(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;b=d+4|0;e=...
function dl (line 398) | function dl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i...
function el (line 398) | function el(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;h=i...
function fl (line 398) | function fl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function gl (line 398) | function gl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=...
function hl (line 398) | function hl(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;d=b+4|0;e=...
function il (line 398) | function il(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;g=b+12|0;d=b+8...
function jl (line 398) | function jl(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function kl (line 398) | function kl(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;e=f+4|0;g=...
function ll (line 398) | function ll(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+12|0;g=e+8...
function ml (line 398) | function ml(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function nl (line 398) | function nl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;h=...
function ol (line 398) | function ol(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function pl (line 398) | function pl(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[e>>2]=a;...
function ql (line 398) | function ql(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=...
function rl (line 398) | function rl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b+12|0;f=b+8...
function sl (line 398) | function sl(){return c[43]|0}
function tl (line 398) | function tl(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;f=b+8|0;d=b+4|...
function ul (line 398) | function ul(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function vl (line 398) | function vl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+32|0;g=d;h=...
function wl (line 398) | function wl(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;f=b+4|0;e=...
function xl (line 398) | function xl(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c...
function yl (line 398) | function yl(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 0}
function zl (line 398) | function zl(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return}
function Al (line 398) | function Al(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Bl (line 398) | function Bl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Cl (line 398) | function Cl(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Dl (line 398) | function Dl(a){a=a|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;...
function El (line 398) | function El(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function Fl (line 398) | function Fl(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|...
function Gl (line 398) | function Gl(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Hl (line 398) | function Hl(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Il (line 398) | function Il(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function Jl (line 398) | function Jl(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=...
function Kl (line 398) | function Kl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function Ll (line 398) | function Ll(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0;e=i;i=i+32|...
function Ml (line 398) | function Ml(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,l=0,m=0,n=0,o=0...
function Nl (line 398) | function Nl(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i...
function Ol (line 398) | function Ol(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i...
function Pl (line 398) | function Pl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[...
function Ql (line 398) | function Ql(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Rl (line 398) | function Rl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+32|0;f=e+16...
function Sl (line 398) | function Sl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function Tl (line 398) | function Tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function Ul (line 398) | function Ul(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[...
function Vl (line 398) | function Vl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=...
function Wl (line 398) | function Wl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function Xl (line 398) | function Xl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=...
function Yl (line 398) | function Yl(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0...
function Zl (line 398) | function Zl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+12...
function _l (line 398) | function _l(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+12...
function $l (line 398) | function $l(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+12...
function am (line 398) | function am(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function bm (line 398) | function bm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|...
function cm (line 398) | function cm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;g...
function dm (line 398) | function dm(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2...
function em (line 398) | function em(a){a=a|0;var b=0,d=0,e=0,f=0.0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>...
function fm (line 398) | function fm(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2...
function gm (line 398) | function gm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|...
function hm (line 398) | function hm(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function im (line 398) | function im(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0...
function jm (line 398) | function jm(a){a=a|0;var b=0,e=0,f=0;b=i;i=i+16|0;f=b+4|0;e=b;c[f>>2]=a;...
function km (line 398) | function km(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0...
function lm (line 398) | function lm(){var a=0,b=0,d=0,e=0;a=i;i=i+16|0;b=a+8|0;d=a+4|0;e=a;c[d>>...
function mm (line 398) | function mm(){var a=0,b=0,d=0,e=0;a=i;i=i+16|0;b=a+8|0;d=a+4|0;e=a;c[d>>...
function nm (line 398) | function nm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function om (line 398) | function om(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function pm (line 398) | function pm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0...
function qm (line 398) | function qm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i...
function rm (line 398) | function rm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function sm (line 398) | function sm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|0;e=d+12...
function tm (line 398) | function tm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+64|...
function um (line 398) | function um(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i...
function vm (line 398) | function vm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;e=i...
function wm (line 398) | function wm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;e=i...
function xm (line 398) | function xm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,l=0,m=0,n=0,o=0,p=0...
function ym (line 398) | function ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[...
function zm (line 398) | function zm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[...
function Am (line 398) | function Am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[...
function Bm (line 398) | function Bm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0...
function Cm (line 398) | function Cm(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;d=i;i...
function Dm (line 398) | function Dm(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Em(c[d>>2]|0...
function Em (line 398) | function Em(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;h=i;i=i+32|...
function Fm (line 398) | function Fm(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=b;...
function Gm (line 398) | function Gm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=...
function Hm (line 398) | function Hm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;f...
function Im (line 398) | function Im(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function Jm (line 398) | function Jm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0...
function Km (line 398) | function Km(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0...
function Lm (line 398) | function Lm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0...
function Mm (line 398) | function Mm(b,e){b=b|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0...
function Nm (line 398) | function Nm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function Om (line 398) | function Om(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0...
function Pm (line 398) | function Pm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=i;i=i+16|0;h=f+12...
function Qm (line 398) | function Qm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i...
function Rm (line 398) | function Rm(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;b=d+4|0;e=...
function Sm (line 398) | function Sm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0.0;d=i;i=i+32|0;...
function Tm (line 398) | function Tm(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;k=...
function Um (line 398) | function Um(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;f=b+4|0;e=b;c[...
function Vm (line 398) | function Vm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=...
function Wm (line 398) | function Wm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=...
function Xm (line 398) | function Xm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;k=i...
function Ym (line 398) | function Ym(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=e+4|0;c[...
function Zm (line 398) | function Zm(a){a=a|0;var b=0,e=0;b=i;i=i+16|0;e=b;c[e>>2]=a;do if((c[(c[...
function _m (line 398) | function _m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i...
function $m (line 398) | function $m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i...
function an (line 398) | function an(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;...
function bn (line 398) | function bn(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0...
function cn (line 398) | function cn(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function dn (line 398) | function dn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=i;i=i+16|0;e=f+12...
function en (line 398) | function en(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=...
function fn (line 398) | function fn(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=...
function gn (line 398) | function gn(a){a=a|0;var d=0,f=0,g=0,h=0;f=i;i=i+16|0;d=f+4|0;g=f;c[d>>2...
function hn (line 398) | function hn(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i+80|0;j=...
function jn (line 398) | function jn(a){a=a|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;d=e+8|0;f=e+4|0;g=...
function kn (line 398) | function kn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i...
function ln (line 398) | function ln(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0...
function mn (line 398) | function mn(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;...
function nn (line 398) | function nn(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0...
function on (line 398) | function on(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=...
function pn (line 398) | function pn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0...
function qn (line 398) | function qn(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;...
function rn (line 398) | function rn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+12...
fu
Condensed preview — 182 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,765K chars).
[
{
"path": ".babelrc",
"chars": 38,
"preview": "{\n \"presets\": [\"@babel/preset-env\"]\n}"
},
{
"path": ".eslintrc.json",
"chars": 638,
"preview": "{\n \"env\": {\n \"es6\": true,\n \"browser\": true\n },\n \"rules\": {\n \"no-mixed-spaces-and-tabs\": \"e"
},
{
"path": ".github/copilot-instructions.md",
"chars": 5920,
"preview": "# BlockPy Development Instructions\n\nBlockPy is a web-based Python environment combining visual blocks (Blockly) and text"
},
{
"path": ".gitignore",
"chars": 814,
"preview": "# BlockPy stuff\n\nblockly/\nskulpt/\n\nThumbs.db\nignore/\nkennel_dist/\nblockly_backup/\ndata_analysis/\nclosure-compiler/\nresea"
},
{
"path": ".idea/.gitignore",
"chars": 38,
"preview": "# Default ignored files\n/workspace.xml"
},
{
"path": ".idea/blockpy.iml",
"chars": 900,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"WEB_MODULE\" version=\"4\">\n <component name=\"NewModuleRootManager\">\n"
},
{
"path": ".idea/dictionaries/acbart.xml",
"chars": 457,
"preview": "<component name=\"ProjectDictionaryState\">\n <dictionary name=\"acbart\">\n <words>\n <w>blockly</w>\n <w>blockmi"
},
{
"path": ".idea/inspectionProfiles/Project_Default.xml",
"chars": 519,
"preview": "<component name=\"InspectionProjectProfileManager\">\n <profile version=\"1.0\">\n <option name=\"myName\" value=\"Project De"
},
{
"path": ".idea/jsLibraryMappings.xml",
"chars": 185,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"JavaScriptLibraryMappings\">\n <file ur"
},
{
"path": ".idea/libraries/D3.xml",
"chars": 224,
"preview": "<component name=\"libraryTable\">\n <library name=\"D3\" type=\"javaScript\">\n <CLASSES>\n <root url=\"file://$PROJECT_D"
},
{
"path": ".idea/libraries/Skulpt.xml",
"chars": 382,
"preview": "<component name=\"libraryTable\">\n <library name=\"Skulpt\" type=\"javaScript\">\n <properties>\n <sourceFilesUrls>\n "
},
{
"path": ".idea/markdown-navigator-enh.xml",
"chars": 4493,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"MarkdownEnhProjectSettings\">\n <Annota"
},
{
"path": ".idea/markdown-navigator.xml",
"chars": 3033,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"FlexmarkProjectSettings\">\n <FlexmarkH"
},
{
"path": ".idea/markdown.xml",
"chars": 296,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"MarkdownSettings\">\n <enabledExtension"
},
{
"path": ".idea/misc.xml",
"chars": 299,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"JavaScriptSettings\">\n <option name=\"l"
},
{
"path": ".idea/modules.xml",
"chars": 266,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectModuleManager\">\n <modules>\n "
},
{
"path": ".idea/vcs.xml",
"chars": 167,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"VcsDirectoryMappings\">\n <mapping dire"
},
{
"path": "LICENSE",
"chars": 11323,
"preview": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licens"
},
{
"path": "README.md",
"chars": 3133,
"preview": "corgis-blockly\n==============\n\n\n\nBlockPy is a "
},
{
"path": "build.py",
"chars": 1752,
"preview": "import os\nimport re\n\nwith open('src/interface.html', 'r') as inp:\n with open('src/interface.js', 'w') as output:\n "
},
{
"path": "docs/BlockPy.html",
"chars": 13690,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPy</title>\n\n <script"
},
{
"path": "docs/BlockPyCorgis.html",
"chars": 8162,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyCorgis</title>\n\n <"
},
{
"path": "docs/BlockPyDialog.html",
"chars": 6833,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyDialog</title>\n\n <"
},
{
"path": "docs/BlockPyEditor.html",
"chars": 43467,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyEditor</title>\n\n <"
},
{
"path": "docs/BlockPyEngine.html",
"chars": 15997,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyEngine</title>\n\n <"
},
{
"path": "docs/BlockPyEnglish.html",
"chars": 4901,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyEnglish</title>\n\n "
},
{
"path": "docs/BlockPyFeedback.html",
"chars": 26461,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyFeedback</title>\n\n "
},
{
"path": "docs/BlockPyHistory.html",
"chars": 5024,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyHistory</title>\n\n "
},
{
"path": "docs/BlockPyPresentation.html",
"chars": 8001,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyPresentation</title>\n"
},
{
"path": "docs/BlockPyPrinter.html",
"chars": 11171,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyPrinter</title>\n\n "
},
{
"path": "docs/BlockPyServer.html",
"chars": 5080,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyServer</title>\n\n <"
},
{
"path": "docs/BlockPyToolbar.html",
"chars": 7885,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: BlockPyToolbar</title>\n\n "
},
{
"path": "docs/LocalStorageWrapper.html",
"chars": 11799,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: LocalStorageWrapper</title>\n"
},
{
"path": "docs/PythonToBlocks.html",
"chars": 5320,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Class: PythonToBlocks</title>\n\n "
},
{
"path": "docs/ast_node_visitor.js.html",
"chars": 6304,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: ast_node_visitor.js</title>"
},
{
"path": "docs/conf.json",
"chars": 401,
"preview": "{\n \"tags\": {\n \"allowUnknownTags\": true,\n \"dictionaries\": [\"jsdoc\",\"closure\"]\n },\n \"opts\": {\n "
},
{
"path": "docs/corgis.js.html",
"chars": 8417,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: corgis.js</title>\n\n <scr"
},
{
"path": "docs/custom_blocks.js.html",
"chars": 8671,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: custom_blocks.js</title>\n\n "
},
{
"path": "docs/dialog.js.html",
"chars": 3978,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: dialog.js</title>\n\n <scr"
},
{
"path": "docs/editor.js.html",
"chars": 46864,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: editor.js</title>\n\n <scr"
},
{
"path": "docs/engine.js.html",
"chars": 38120,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: engine.js</title>\n\n <scr"
},
{
"path": "docs/english.js.html",
"chars": 3313,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: english.js</title>\n\n <sc"
},
{
"path": "docs/feedback.js.html",
"chars": 15105,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: feedback.js</title>\n\n <s"
},
{
"path": "docs/global.html",
"chars": 21760,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Global</title>\n\n <script src=\"sc"
},
{
"path": "docs/history.js.html",
"chars": 4781,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: history.js</title>\n\n <sc"
},
{
"path": "docs/imported.js.html",
"chars": 27928,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: imported.js</title>\n\n <s"
},
{
"path": "docs/index.html",
"chars": 2512,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Home</title>\n\n <script src=\"scri"
},
{
"path": "docs/interface.js.html",
"chars": 22791,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: interface.js</title>\n\n <"
},
{
"path": "docs/main.js.html",
"chars": 19180,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: main_v4.js</title>\n\n <sc"
},
{
"path": "docs/presentation.js.html",
"chars": 4647,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: presentation.js</title>\n\n "
},
{
"path": "docs/printer.js.html",
"chars": 7353,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: printer.js</title>\n\n <sc"
},
{
"path": "docs/python_errors.js.html",
"chars": 10064,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: python_errors.js</title>\n\n "
},
{
"path": "docs/python_to_blockly.js.html",
"chars": 50275,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: python_to_blockly.js</title"
},
{
"path": "docs/scripts/linenumber.js",
"chars": 674,
"preview": "/*global document */\n(function() {\n var source = document.getElementsByClassName('prettyprint source linenums');\n "
},
{
"path": "docs/scripts/prettify/Apache-License-2.0.txt",
"chars": 11358,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "docs/scripts/prettify/lang-css.js",
"chars": 861,
"preview": "PR.registerLangHandler(PR.createSimpleLexer([[\"pln\",/^[\\t\\n\\f\\r ]+/,null,\" \\t\\r\\n\f\"]],[[\"str\",/^\"(?:[^\\n\\f\\r\"\\\\]|\\\\(?:\\r"
},
{
"path": "docs/scripts/prettify/prettify.js",
"chars": 13632,
"preview": "var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;\n(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92"
},
{
"path": "docs/server.js.html",
"chars": 14939,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: server.js</title>\n\n <scr"
},
{
"path": "docs/storage.js.html",
"chars": 5013,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: storage.js</title>\n\n <sc"
},
{
"path": "docs/styles/jsdoc-default.css",
"chars": 5914,
"preview": "@font-face {\n font-family: 'Open Sans';\n font-weight: normal;\n font-style: normal;\n src: url('../fonts/OpenS"
},
{
"path": "docs/styles/prettify-jsdoc.css",
"chars": 1535,
"preview": "/* JSDoc prettify.js theme */\n\n/* plain text */\n.pln {\n color: #000000;\n font-weight: normal;\n font-style: normal;\n}\n"
},
{
"path": "docs/styles/prettify-tomorrow.css",
"chars": 2026,
"preview": "/* Tomorrow Theme */\n/* Original theme - https://github.com/chriskempson/tomorrow-theme */\n/* Pretty printing styles. Us"
},
{
"path": "docs/toolbar.js.html",
"chars": 7041,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: toolbar.js</title>\n\n <sc"
},
{
"path": "docs/util.js.html",
"chars": 5158,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>JSDoc: Source: util.js</title>\n\n <scrip"
},
{
"path": "documentation.md",
"chars": 4741,
"preview": "This is an attempt to summarize key parts of BlockPy's execution model. Expect most of it to be out of date by the time "
},
{
"path": "image_server.py",
"chars": 417,
"preview": "#!/usr/bin/env python3\nfrom http.server import HTTPServer, SimpleHTTPRequestHandler, test\nimport sys\n\nclass CORSRequestH"
},
{
"path": "instructor_api_documentation.py",
"chars": 20141,
"preview": "'''\nThis file documents the Python Instructor API. \nThe format is Google Style Python Docstrings, based on\n`http://sphin"
},
{
"path": "libs/codemirror/codemirror.css",
"chars": 8542,
"preview": "/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace"
},
{
"path": "libs/codemirror/codemirror.js",
"chars": 395510,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/diff.js",
"chars": 1139,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/django.js",
"chars": 11792,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/foldcode.js",
"chars": 4815,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/foldgutter.js",
"chars": 4632,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/fullscreen.css",
"chars": 116,
"preview": ".CodeMirror-fullscreen {\n position: fixed;\n top: 0; left: 0; right: 0; bottom: 0;\n height: auto;\n z-index: 9;\n}\n"
},
{
"path": "libs/codemirror/fullscreen.js",
"chars": 1495,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/markdown.js",
"chars": 31194,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/python-hint.js",
"chars": 3380,
"preview": "(function () {\n function forEach(arr, f) {\n for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);\n }\n\n function a"
},
{
"path": "libs/codemirror/python.js",
"chars": 16674,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/shell.js",
"chars": 4933,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/show-hint.css",
"chars": 623,
"preview": ".CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding"
},
{
"path": "libs/codemirror/show-hint.js",
"chars": 17378,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/codemirror/yaml-frontmatter.js",
"chars": 2293,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/"
},
{
"path": "libs/easymde/easymde.css",
"chars": 6489,
"preview": ".CodeMirror {\n box-sizing: border-box;\n height: auto;\n /*border: 1px solid #ddd;\n border-bottom-left-radius:"
},
{
"path": "libs/filepond/filepond-plugin-file-poster.css",
"chars": 3615,
"preview": "/*!\n * FilePondPluginFilePoster 2.5.1\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https:"
},
{
"path": "libs/filepond/filepond-plugin-file-poster.js",
"chars": 18166,
"preview": "/*!\n * FilePondPluginFilePoster 2.5.1\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https:"
},
{
"path": "libs/filepond/filepond-plugin-image-preview.css",
"chars": 4398,
"preview": "/*!\n * FilePondPluginImagePreview 4.6.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit htt"
},
{
"path": "libs/filepond/filepond-plugin-image-preview.js",
"chars": 104906,
"preview": "/*!\n * FilePondPluginImagePreview 4.6.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit htt"
},
{
"path": "libs/hinting/javascript-hint.js",
"chars": 6437,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "libs/hinting/python-hint.js",
"chars": 3379,
"preview": "(function () {\n function forEach(arr, f) {\n for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);\n }\n\n function a"
},
{
"path": "libs/hinting/show-hint.css",
"chars": 623,
"preview": ".CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding"
},
{
"path": "libs/hinting/show-hint.js",
"chars": 16116,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "libs/jquery/jquery-ui.css",
"chars": 18883,
"preview": "/*! jQuery UI - v1.12.1 - 2019-07-26\n* http://jqueryui.com\n* Includes: draggable.css, core.css, resizable.css, selectabl"
},
{
"path": "libs/jquery/jquery.hotkeys.js",
"chars": 3283,
"preview": "/*\n * jQuery Hotkeys Plugin\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n *\n "
},
{
"path": "libs/jquery/jquery.multi-select.js",
"chars": 19754,
"preview": "/*\n* MultiSelect v0.9.12\n* Copyright (c) 2012 Louis Cuny\n*\n* This program is free software. It comes without any warrant"
},
{
"path": "libs/jquery/multi-select.css",
"chars": 2255,
"preview": ".ms-container{\n background: transparent url('../img/switch.png') no-repeat 50% 50%;\n width: 370px;\n}\n\n.ms-container:af"
},
{
"path": "libs/knockout/knockout-3.5.0.debug.js",
"chars": 316419,
"preview": "/*!\n * Knockout JavaScript library v3.5.0\n * (c) The Knockout.js team - http://knockoutjs.com/\n * License: MIT (http://w"
},
{
"path": "libs/knockout/knockout-3.5.0.js",
"chars": 67947,
"preview": "/*!\n * Knockout JavaScript library v3.5.0\n * (c) The Knockout.js team - http://knockoutjs.com/\n * License: MIT (http://w"
},
{
"path": "libs/sql/sql.js",
"chars": 1605781,
"preview": "// This prevents pollution of the global namespace\nvar SQL = (function () {\nfunction e(a){throw a;}var g=void 0,k=!0,l=n"
},
{
"path": "libs/summernote/summernote-ext-hello.js",
"chars": 2542,
"preview": "(function(factory) {\n /* global define */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as a"
},
{
"path": "libs/summernote/summernote-ext-hint.js",
"chars": 6374,
"preview": "(function (factory) {\n /* global define */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as "
},
{
"path": "libs/summernote/summernote-ext-video.js",
"chars": 16771,
"preview": "(function (factory) {\n /* global define */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as "
},
{
"path": "libs/summernote/summernote.css",
"chars": 18699,
"preview": "@font-face{font-family:\"summernote\";font-style:normal;font-weight:normal;src:url(\"./font/summernote.eot?1d9aeaaff0a89395"
},
{
"path": "libs/summernote/summernote.js",
"chars": 301153,
"preview": "/**\n * Super simple wysiwyg editor v0.8.12\n * https://summernote.org\n *\n * Copyright 2013- Alan Hong. and other contribu"
},
{
"path": "makefile",
"chars": 386,
"preview": ".PHONY: docs\ndocs:\n\tjsdoc -c docs/conf.json\nmerge:\n\tpython merge.py\nbuild:\n\tpython build.py\nupdate_kennel:\n\tpython merge"
},
{
"path": "merge.py",
"chars": 2352,
"preview": "nodejs_in = [\n \"src/front.js\",\n \"src/utilities.js\",\n \"src/python_errors.js\",\n \"src/ast_n"
},
{
"path": "npm-shrinkwrap.json",
"chars": 343651,
"preview": "{\n \"name\": \"blockpy\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n "
},
{
"path": "package.json",
"chars": 1041,
"preview": "{\n \"name\": \"blockpy\",\n \"version\": \"1.0.0\",\n \"description\": \"corgis-blockly\",\n \"main\": \"index.js\",\n \"directories\": {"
},
{
"path": "src/blockly_blocks/parking.js",
"chars": 8608,
"preview": "var DAYS = [\n [\"Monday\", \"MON\"],\n [\"Tuesday\", \"TUE\"],\n [\"Wednesday\", \"WED\"],\n [\"Thursday\", \"THU\"],\n [\"Fri"
},
{
"path": "src/blockly_blocks/turtles.js",
"chars": 6919,
"preview": "/**\n * Turtles!\n */\nBlockly.Blocks[\"turtle_create\"] = {\n init: function() {\n this.appendDummyInput()\n "
},
{
"path": "src/blockpy.js",
"chars": 62042,
"preview": "/**\n * @fileoverview Starting point of the BlockPy application, containing the main\n * BlockPy class.\n */\nimport \"./css/"
},
{
"path": "src/console.js",
"chars": 19023,
"preview": "import {encodeHTML} from \"./utilities\";\n\n/**\n * Evaluate button HTML template\n * @type {string}\n */\nconst START_EVAL_HTM"
},
{
"path": "src/corgis.js",
"chars": 6134,
"preview": "import {slug} from \"./utilities\";\n\n// TODO: editor.bm.blockEditor.extraTools[]\n\nexport let _IMPORTED_DATASETS = {};\nexpo"
},
{
"path": "src/css/blockpy.css",
"chars": 11889,
"preview": "/** Entire Page **/\n.blockpy-content .row {\n border-bottom: 1px solid #faebcc;\n}\n\n.blockpy-content .blockpy-panel {\n "
},
{
"path": "src/css/bootstrap_retheme.css",
"chars": 1208,
"preview": "/**\n * Override bad accessibility in Bootstrap\n */\n\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-ser"
},
{
"path": "src/dialog.js",
"chars": 10177,
"preview": "// TODO: Dyanmically populate aria-labelledby in this and other places\n\nexport let DIALOG_HTML = `\n <div class='block"
},
{
"path": "src/editor/abstract_editor.js",
"chars": 3258,
"preview": "import {Editors} from \"../editors\";\n\nexport function uploadFile(model, event) {\n let fileReader = new FileReader();\n "
},
{
"path": "src/editor/assignment_settings.js",
"chars": 21041,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\nimport {DisplayModes} from \"./python\";\n\nconst ASSIGNMENT_SETTINGS = [\n"
},
{
"path": "src/editor/default_header.js",
"chars": 1370,
"preview": "\n\nexport const default_header = `\n<div class=\"blockpy-python-toolbar col-md-12 btn-toolbar\"\n role=\"toolbar\" aria-lab"
},
{
"path": "src/editor/images.js",
"chars": 12691,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\nimport * as FilePond from \"filepond\";\n\nexport const IMAGE_EDITOR_HTML "
},
{
"path": "src/editor/json.js",
"chars": 2955,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\nimport {default_header} from \"./default_header\";\n\nexport const JSON_ED"
},
{
"path": "src/editor/markdown.js",
"chars": 2321,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\nimport {default_header} from \"./default_header\";\n\nexport const MARKDOW"
},
{
"path": "src/editor/python.js",
"chars": 18332,
"preview": "/**\n * TODO: rename files, manual save, tags, sample_submissions, on_eval, non-builtin files\n * TODO: import data, histo"
},
{
"path": "src/editor/quiz.js",
"chars": 2852,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\n\nexport const QUIZ_EDITOR_HTML = `\n <div>\n <textarea class=\"bloc"
},
{
"path": "src/editor/sample_submissions.js",
"chars": 5556,
"preview": "/**\n * Panel for editing the set of Sample Submissions.\n * These are not provided at all to students without the Grader "
},
{
"path": "src/editor/tags.js",
"chars": 578,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\n\nexport const TAGS_EDITOR_HTML = `\nCreate new\nImport by name\nFind by o"
},
{
"path": "src/editor/text.js",
"chars": 2922,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\nimport {default_header} from \"./default_header\";\n\nexport const TEXT_ED"
},
{
"path": "src/editor/toolbox.js",
"chars": 3646,
"preview": "import {AbstractEditor} from \"./abstract_editor\";\n\nexport const TOOLBOX_EDITOR_HTML = `\n <div>\n <div class=\"co"
},
{
"path": "src/editors.js",
"chars": 4409,
"preview": "/**\n * Editors are inferred from Filenames.\n *\n * The editor is based on the extension:\n * .blockpy: Special editor (wi"
},
{
"path": "src/engine/configurations.js",
"chars": 7233,
"preview": "export const EMPTY_MODULE = \"let $builtinmodule = function(mod){ return mod; }\";\n\n/**\n * A container for holding setting"
},
{
"path": "src/engine/eval.js",
"chars": 2667,
"preview": "import {StudentConfiguration} from \"./student\";\nimport {StatusState} from \"../server\";\nimport {BlockPyTrace} from \"../tr"
},
{
"path": "src/engine/instructor.js",
"chars": 7211,
"preview": "import {Configuration, EMPTY_MODULE} from \"./configurations.js\";\nimport {$sk_mod_instructor} from \"../skulpt_modules/sk_"
},
{
"path": "src/engine/on_change.js",
"chars": 361,
"preview": "import {InstructorConfiguration} from \"./instructor\";\n\nexport class OnChangeConfiguration extends InstructorConfiguratio"
},
{
"path": "src/engine/on_eval.js",
"chars": 5864,
"preview": "import {InstructorConfiguration} from \"./instructor\";\nimport {StatusState} from \"../server\";\nimport {findActualInstructo"
},
{
"path": "src/engine/on_run.js",
"chars": 8767,
"preview": "import {indent} from \"../utilities\";\nimport {StatusState} from \"../server\";\nimport {InstructorConfiguration} from \"./ins"
},
{
"path": "src/engine/on_sample.js",
"chars": 277,
"preview": "import {OnRunConfiguration} from \"./on_run\";\n\nexport class OnSampleConfiguration extends OnRunConfiguration {\n use(en"
},
{
"path": "src/engine/run.js",
"chars": 4356,
"preview": "import {StudentConfiguration} from \"./student\";\nimport {StatusState} from \"../server\";\n\nexport class RunConfiguration ex"
},
{
"path": "src/engine/sample.js",
"chars": 328,
"preview": "import {StudentConfiguration} from \"./student\";\n\nexport class SampleConfiguration extends StudentConfiguration {\n use"
},
{
"path": "src/engine/student.js",
"chars": 7835,
"preview": "import {Configuration, EMPTY_MODULE} from \"./configurations\";\n\nexport class StudentConfiguration extends Configuration {"
},
{
"path": "src/engine.js",
"chars": 8079,
"preview": "import {StatusState} from \"./server\";\nimport {OnRunConfiguration} from \"./engine/on_run\";\nimport {RunConfiguration} from"
},
{
"path": "src/feedback.js",
"chars": 18558,
"preview": "import {arrayMove, capitalize, pyStr} from \"./utilities\";\n\nexport let FEEDBACK_HTML = `\n\n<span class='blockpy-floating-f"
},
{
"path": "src/files.js",
"chars": 30818,
"preview": "import {firstDefinedValue} from \"utilities.js\";\n\n// ${makeTab(\"?mock_urls.blockpy\", \"URL Data\", true)}\n\nconst makeTab = "
},
{
"path": "src/footer.js",
"chars": 2408,
"preview": "//TODO: Move get link down to footer, remove vertical bar from quick-menu\nexport let FOOTER_HTML = `\n<div class=\"col-md-"
},
{
"path": "src/history.js",
"chars": 7208,
"preview": "// TODO: Should disable buttons if we can't activate them.\n\nexport const HISTORY_TOOLBAR_HTML = `\n<div class=\"blockpy-hi"
},
{
"path": "src/interface.js",
"chars": 8796,
"preview": "/**\n * @fileoverview Contains main HTML of BlockPy interface, and helper functions.\n * Combines a lot of HTML from compo"
},
{
"path": "src/server.js",
"chars": 27408,
"preview": "import {LocalStorageWrapper} from \"./storage\";\nimport {loadAssignmentSettings, saveAssignmentSettings} from \"./editor/as"
},
{
"path": "src/skulpt_modules/coverage.js",
"chars": 1201,
"preview": "export const $sk_mod_coverage = `\n\"\"\"\nHideous fill-in replacement for Coverage, leveraging some magic from the\nUtility f"
},
{
"path": "src/skulpt_modules/image.js",
"chars": 5145,
"preview": "export var $builtinmodule = function(name) {\n var mod, sampleWrapper;\n mod = {__name__: \"image\"};\n\n if (!Sk.PIL"
},
{
"path": "src/skulpt_modules/matplotlib2.js",
"chars": 54718,
"preview": "Sk.jsplotlib = Sk.jsplotlib || {};\n\n// Skulpt translation\nexport let $builtinmodule = function (name) {\n let mod = {_"
},
{
"path": "src/skulpt_modules/pedal_tracer.js",
"chars": 1382,
"preview": "export const $pedal_tracer = `\n\n\"\"\"\nWraps the tracer module in Pedal\n\"\"\"\n\nimport os\nimport utility\n \nclass Sandbo"
},
{
"path": "src/skulpt_modules/sk_mod_instructor.js",
"chars": 16032,
"preview": "/**\n * Skulpt Module for holding the Instructor API.\n *\n * This module is loaded in by getting the functions' source cod"
},
{
"path": "src/skulpt_modules/weakref.js",
"chars": 1622,
"preview": "export var $builtinmodule = function(name) {\n var mod, sampleWrapper;\n mod = {__name__: \"weakref\"};\n\n /*mod.Wea"
},
{
"path": "src/storage.js",
"chars": 3946,
"preview": "let LOCAL_STORAGE_REF;\ntry {\n LOCAL_STORAGE_REF = localStorage;\n let mod = \"BLOCKPY_LOCALSTORAGE_TEST\";\n LOCAL_"
},
{
"path": "src/toolbar.js",
"chars": 6407,
"preview": "/**\n * An object that manages the main toolbar, including the different mode buttons.\n * This doesn't actually have many"
},
{
"path": "src/trace.js",
"chars": 12699,
"preview": "export const TRACE_HTML = `\n\n<div class=\"blockpy-trace col-md-6 blockpy-panel\"\n role=\"region\" aria-label=\"Tra"
},
{
"path": "src/utilities.js",
"chars": 11371,
"preview": "/**\n * Move an element from index in an array to a new index.\n * O(n)\n * Courtesy:\n * https://stackoverflow.com/a/738776"
},
{
"path": "tests/block_coloration.html",
"chars": 3481,
"preview": "<script src='https://code.jquery.com/jquery-2.1.3.min.js'></script>\n\n<style>\nspan {\n display: inline-block;\n}\n</style"
},
{
"path": "tests/canvas_frame.html",
"chars": 37038,
"preview": "<!DOCTYPE html>\n<!--[if gte IE 9 ]><html class=\"ie ie9 scripts-not-loaded\" lang=\"en\"> <![endif]-->\n<!--[if !(IE)]><!--> "
},
{
"path": "tests/d3test.html",
"chars": 5543,
"preview": "<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\nbody {\n font: 10px sans-serif;\n}\n\n.axis path,\n.axis line {\n fill: none"
},
{
"path": "tests/example_pil.py",
"chars": 1608,
"preview": "from PIL import Image\n\n# Open an image\nimg = Image.open(\"corgi.png\")\n\nimg.show()\n\n# Convert to grayscale (mode 'L')\nimg_"
},
{
"path": "tests/example_server.py",
"chars": 641,
"preview": "from flask import Flask\nfrom flask import render_template, request, send_from_directory, jsonify\nfrom pprint import ppri"
},
{
"path": "tests/index.html",
"chars": 8880,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>BlockPy Example</title>\n\n <!-- D3 -->\n "
},
{
"path": "tests/index_v4.html",
"chars": 16050,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>Blockpy</title>\n\n <!-- Dependencies -->"
},
{
"path": "tests/jsplotlib_test.html",
"chars": 2061,
"preview": "<html>\n<head>\n<style>\n\nbody {\n font: 10px sans-serif;\n}\n\n</style>\n</head>\n<body>\n<script src=\"libs/d3.min.js\"></script>"
},
{
"path": "tests/multiple.html",
"chars": 8078,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>BlockPy Example</title>\n\n <!-- D3 -->\n "
},
{
"path": "tests/python_files/assignment.py",
"chars": 183,
"preview": "import weather\n\n___ = 5\n\nweather.get_temperature(\"Miami, FL\")\n\n32\n\nprint(___)\n\nfahrenheit = ___\n\nprint(___)\n\n___ - ___\n\n"
},
{
"path": "tests/python_files/dummy.py",
"chars": 102,
"preview": "import weather\n\n\nu = weather.get_all()['test']\n\nfor assignment in []:\n print(\"Hello\")\n\nplt.plot([])"
},
{
"path": "tests/python_files/example.py",
"chars": 14,
"preview": "a 5 + \"hello\""
},
{
"path": "tests/python_files/grader.py",
"chars": 657,
"preview": "import weather\n\n\ndef on_run(code, output, properties):\n f = weather.get_temperature(\"Miami, FL\")\n c = (f - 32) / 1"
},
{
"path": "tests/python_files/invalid.py",
"chars": 20,
"preview": "for x in 1:\n pass"
},
{
"path": "tests/python_files/simple.py",
"chars": 14,
"preview": "a = 0\nprint(a)"
},
{
"path": "tests/python_files/triple_quotes.py",
"chars": 6464,
"preview": "\"\"\"\nCreated on Tue Apr 5 09:40:10 2016\n\nThis code creates a line graph that compares the violent crime rates\nin Washing"
},
{
"path": "tests/python_files/weather.py",
"chars": 293,
"preview": "import weather\nimport matplotlib.pyplot as plt\n\nreports = weather.get_weather()\ntemperatures = []\nt2 = []\nfor report in "
},
{
"path": "tests/replay.html",
"chars": 18294,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>BlockPy Replay</title>\n \n <link rel="
},
{
"path": "tests/treeCompTest.html",
"chars": 19385,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>Tree Comp Test</title>\n \n <link rel="
},
{
"path": "todo.txt",
"chars": 3057,
"preview": "Table Block\nAssessment API/Blocks\n\nUnrolled Loop mode\nTime rewinder\nTooltips over errors\nMultiple block levels by manipu"
},
{
"path": "webpack.config.js",
"chars": 2548,
"preview": "const webpack = require(\"webpack\");\nconst path = require(\"path\");\nconst env = require(\"yargs\").argv.env;\nconst MiniCssEx"
}
]
// ... and 6 more files (download for full content)
About this extraction
This page contains the full source code of the RealTimeWeb/blockpy GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 182 files (79.1 MB), approximately 1.2M tokens, and a symbol index with 3175 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.