Working dist output, and FullScreenSaver walkthrough

This commit is contained in:
Josh Goldberg
2022-08-15 00:09:51 -04:00
parent 37e3a78b7c
commit 390f07a6a7
92 changed files with 935 additions and 211 deletions
+1 -1
View File
@@ -3,5 +3,5 @@
**/*.json
**/dist
**/node_modules
**/webpack.config.js
**/webpack.config.*
packages/shenanigans-manager/setup/**/*
+1 -1
View File
@@ -55,7 +55,7 @@ a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at me@joshuakgoldberg.com. All
reported by contacting the project team at git@joshuakgoldberg.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
-1
View File
@@ -12,5 +12,4 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/prepare
- run: yarn compile
- run: yarn dist
+1
View File
@@ -4,6 +4,7 @@
*.map
*.tsbuildinfo
node_modules/
packages/*/dist/
packages/*/lib/
packages/*/test/
!packages/shenanigans-manager/setup/**/*
+4 -2
View File
@@ -1,6 +1,6 @@
{
"dictionaries": ["typescript"],
"ignorePaths": ["lib", "node_modules", "**/*.d.ts", "**/*.js", "**/*.tsbuildinfo"],
"dictionaries": ["css", "html", "softwareTerms", "typescript"],
"ignorePaths": ["dist", "lib", "node_modules", "**/*.d.ts", "**/*.js", "**/*.tsbuildinfo"],
"words": [
"actorhittr",
"areaspawnr",
@@ -28,11 +28,13 @@
"flagswappr",
"fpsanalyzr",
"frametickr",
"fullscreensaver",
"fullscreenshenanigans",
"Gameboy",
"gameplay",
"genrand",
"Gitter",
"Goombas",
"Grapher",
"Graphr",
"groupholdr",
+2 -2
View File
@@ -57,7 +57,7 @@ export class Collisions<Game extends FullScreenSaver> extends CollisionsBase<Gam
/**
* Names of groups that should be checked for collisions.
*/
public readonly collidingGroupNames: string[] = ["Players"];
public readonly collidingGroupNames = ["Players"];
}
```
@@ -93,7 +93,7 @@ The game will now know when a player is touching a solid, but it won't know what
## Collision Handling
Add an equivalent `hitCallbackGenerators` later in the class to kill the player:
Add an equivalent `hitCallbackGenerators` later in the `Collisions` class to kill the player:
```ts
/**
BIN
View File
Binary file not shown.
+88
View File
@@ -0,0 +1,88 @@
/* General elements */
html,
body {
margin: 0;
padding: 0;
}
body {
background: black;
color: #fafafa;
overflow-x: hidden;
overflow-y: scroll;
}
header {
font-family: "Press Start";
padding: 0.5rem;
overflow: hidden;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
}
section {
clear: both;
}
a {
color: white;
font-weight: bold;
text-decoration: none;
}
h1 {
margin: 0;
padding-bottom: 3px;
text-align: center;
}
/* General animations */
.hoverable {
opacity: 0.84;
transition: 140ms opacity;
}
.hoverable:hover {
opacity: 1;
}
/* Game section */
section#game {
min-height: 210px;
margin-bottom: 35px;
}
/* Text sections */
section.section-text {
margin: auto;
padding: 21px 70px;
max-width: 910px;
font-size: 1.4em;
text-align: center;
}
.link-github {
color: #cfc;
}
@media (max-width: 350px) {
section.section-text {
padding: 14px 7px;
}
}
@font-face {
font-family: "Press Start";
src: url("theme/fonts/pressstart2p-webfont.eot?#iefix") format("embedded-opentype"),
url("theme/fonts/pressstart2p-webfont.woff") format("woff"),
url("theme/fonts/pressstart2p-webfont.ttf") format("truetype"),
url("theme/fonts/pressstart2p-webfont.svg") format("svg");
font-weight: normal;
font-style: normal;
}
+129
View File
@@ -0,0 +1,129 @@
UPDATED
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8" />
<title>FullScreenSaver</title>
<meta name="description" content="" />
<meta
name="keywords"
content="FullScreenSaver, full, screen, typescript, javascript, html5, gaming, online, online game, fun, distraction"
/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="./index.css" rel="stylesheet" />
<link rel="shortcut icon" href="theme/Icon.gif" />
<link rel="preload" href="./../../../node_modules/requirejs/require.js" as="script" />
<link rel="preload" href="./FullScreenSaver.js" as="script" />
</head>
<body>
<header>
<h1>FullScreenSaver</h1>
</header>
<section id="game"></section>
<section id="explanation" class="section-text"></section>
<section id="social" class="section-text">
You may
<a
class="link-github"
href="http://www.github.com/FullScreenShenanigans/FullScreenSaver"
>download the game for yourself</a
>
from GitHub, the location of FullScreenSaver's open source project.
</section>
<section id="credits" class="section-text"></section>
<section id="legal" class="section-text">
<small><em></em></small>
</section>
<script
data-main="FullScreenSaver.js"
src="../../../node_modules/requirejs/require.js"
type="text/javascript"
></script>
<script>
var dependencyNames = [
"eightbittr",
"menugraphr",
"userwrappr",
"actorhittr",
"areaspawnr",
"autofieldr",
"fpsanalyzr",
"frametickr",
"groupholdr",
"inputwritr",
"itemsholdr",
"mapscreatr",
"mapscreenr",
"objectmakr",
"pixeldrawr",
"pixelrendr",
"quadskeepr",
"stringfilr",
"timehandlr",
];
var externals = [
{
js: {
dev: "react/umd/react.development",
prod: "react/lib/react.production",
},
name: "react",
},
{
js: {
dev: "react-dom/umd/react-dom.development",
prod: "react-dom/lib/react-dom.production",
},
name: "react-dom",
},
{
js: {
dev: "userwrappr/dist/UserWrappr-Delayed",
},
name: "UserWrappr-Delayed",
shenanigansPackage: true,
},
];
var config = {
packages: [],
paths: {},
};
for (let i = 0; i < dependencyNames.length; i += 1) {
var dependencyName = dependencyNames[i].toLowerCase();
config.packages.push({
main: "index",
name: dependencyName,
});
config.paths[dependencyName] = "../../../node_modules/" + dependencyName + "/lib";
}
for (var i = 0; i < externals.length; i += 1) {
var external = externals[i];
if (!external.js.dev) {
continue;
}
config.paths[external.name] = external.shenanigansPackage
? "../../../packages/" + external.js.dev
: "../../../node_modules/" + external.js.dev;
}
requirejs.config(config);
</script>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

@@ -0,0 +1,243 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="press_start_2pregular" horiz-adv-x="2048" >
<font-face units-per-em="2048" ascent="2048" descent="0" />
<missing-glyph horiz-adv-x="500" />
<glyph />
<glyph />
<glyph unicode="&#xd;" />
<glyph unicode=" " />
<glyph unicode="!" d="M512 256v128v128h256h256v-128v-128h-256h-256zM512 768v640v640h384h384v-384v-384h-128h-128v-256v-256h-256h-256z" />
<glyph unicode="&#x22;" d="M256 1280v384v384h256h256v-384v-384h-256h-256zM1024 1280v384v384h256h256v-384v-384h-256h-256z" />
<glyph unicode="#" d="M0 512v128v128h128h128v384v384h-128h-128v128v128h128h128v128v128h256h256v-128v-128h128h128v128v128h256h256v-128v-128h128h128v-128v-128h-128h-128v-384v-384h128h128v-128v-128h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256v128v128 h-128h-128zM768 768h128h128v384v384h-128h-128v-384v-384z" />
<glyph unicode="$" d="M0 512v128v128h384h384v128v128h-256h-256v128v128h-128h-128v128v128h128h128v128v128h256h256v128v128h128h128v-128v-128h256h256v-128v-128h-256h-256v-128v-128h256h256v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-256h-256v-128v-128h-128h-128v128v128 h-384h-384zM512 1280h128h128v128v128h-128h-128v-128v-128zM1024 768h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="%" d="M0 256v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128 h-128h-128zM0 1280v256v256h128h128v128v128h256h256v-256v-256h-128h-128v-128v-128h-256h-256zM256 1536h128h128v128v128h-128h-128v-128v-128zM1024 256v256v256h128h128v128v128h256h256v-256v-256h-128h-128v-128v-128h-256h-256zM1280 512h128h128v128v128h-128h-128 v-128v-128z" />
<glyph unicode="&#x26;" d="M0 512v256v256h128h128v128v128h-128h-128v256v256h128h128v128v128h384h384v-128v-128h128h128v-256v-256h-128h-128v-128v-128h128h128v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h-768h-768v128v128h-128h-128zM512 512h256 h256v128v128h-128h-128v128v128h-128h-128v-256v-256zM512 1280h128h128v256v256h-128h-128v-256v-256z" />
<glyph unicode="'" d="M512 1280v384v384h256h256v-384v-384h-256h-256z" />
<glyph unicode="(" d="M512 768v384v384h128h128v128v128h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h-128h-128v-384v-384h128h128v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v128v128h-128h-128z" />
<glyph unicode=")" d="M256 256v128v128h128h128v128v128h128h128v384v384h-128h-128v128v128h-128h-128v128v128h256h256v-128v-128h128h128v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="*" d="M0 1024v128v128h256h256v128v128h-128h-128v128v128h256h256v-128v-128h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h256h256v-128v-128h-256h-256v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256v128v128h128h128v128v128 h-256h-256z" />
<glyph unicode="+" d="M256 1024v128v128h256h256v256v256h256h256v-256v-256h256h256v-128v-128h-256h-256v-256v-256h-256h-256v256v256h-256h-256z" />
<glyph unicode="," d="M256 0v128v128h128h128v256v256h256h256v-256v-256h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="-" d="M256 1024v128v128h768h768v-128v-128h-768h-768z" />
<glyph unicode="." d="M512 256v256v256h256h256v-256v-256h-256h-256z" />
<glyph unicode="/" d="M0 256v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128 h-128h-128z" />
<glyph unicode="0" d="M0 768v384v384h128h128v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-128h-128v-128v-128h-384h-384v128v128h-128h-128v128v128h-128h-128zM512 768h128h128v-128v-128h256h256v512v512h-128h-128v128v128 h-256h-256v-512v-512z" />
<glyph unicode="1" d="M256 256v128v128h256h256v512v512h-128h-128v128v128h128h128v128v128h256h256v-768v-768h256h256v-128v-128h-768h-768z" />
<glyph unicode="2" d="M0 256v256v256h128h128v128v128h128h128v128v128h256h256v128v128h128h128v128v128h-384h-384v-128v-128h-256h-256v128v128h128h128v128v128h640h640v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256v-128v-128h512h512v-128v-128h-896 h-896z" />
<glyph unicode="3" d="M0 512v128v128h256h256v-128v-128h384h384v256v256h-384h-384v128v128h128h128v128v128h128h128v128v128h-384h-384v128v128h768h768v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-640h-640v128v128 h-128h-128z" />
<glyph unicode="4" d="M0 768v256v256h128h128v128v128h128h128v128v128h128h128v128v128h384h384v-512v-512h128h128v-128v-128h-128h-128v-256v-256h-256h-256v256v256h-512h-512zM512 1024h256h256v256v256h-128h-128v-128v-128h-128h-128v-128v-128z" />
<glyph unicode="5" d="M0 512v128v128h256h256v-128v-128h384h384v384v384h-640h-640v384v384h768h768v-128v-128h-512h-512v-128v-128h512h512v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128z" />
<glyph unicode="6" d="M0 512v512v512h128h128v128v128h128h128v128v128h512h512v-128v-128h-384h-384v-128v-128h-128h-128v-128v-128h512h512v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="7" d="M0 1536v256v256h896h896v-256v-256h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-384v-384h-256h-256v384v384h128h128v128v128h128h128v128v128h128h128v128v128h-384h-384v-128v-128h-256h-256z" />
<glyph unicode="8" d="M0 512v256v256h128h128v128v128h-128h-128v256v256h128h128v128v128h512h512v-128v-128h128h128v-256v-256h-128h-128v-128v-128h256h256v-256v-256h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM256 512h512h512v128v128h-256h-256v128v128h-256h-256v-256v-256z M512 1536h128h128v-128v-128h256h256v256v256h-384h-384v-128v-128z" />
<glyph unicode="9" d="M0 1280v256v256h128h128v128v128h640h640v-128v-128h128h128v-512v-512h-128h-128v-128v-128h-128h-128v-128v-128h-512h-512v128v128h384h384v128v128h128h128v128v128h-512h-512v128v128h-128h-128zM512 1280h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode=":" d="M512 512v256v256h256h256v-256v-256h-256h-256zM512 1280v256v256h256h256v-256v-256h-256h-256z" />
<glyph unicode=";" d="M256 256v128v128h128h128v256v256h256h256v-256v-256h-128h-128v-128v-128h-256h-256zM512 1280v256v256h256h256v-256v-256h-256h-256z" />
<glyph unicode="&#x3c;" d="M256 1024v128v128h128h128v128v128h128h128v128v128h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v128v128h-128h-128v128v128 h-128h-128z" />
<glyph unicode="=" d="M0 768v128v128h896h896v-128v-128h-896h-896zM0 1280v128v128h896h896v-128v-128h-896h-896z" />
<glyph unicode="&#x3e;" d="M256 256v128v128h128h128v128v128h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v128v128h-128h-128v128v128h256h256v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128 h-256h-256z" />
<glyph unicode="?" d="M0 1280v256v256h128h128v128v128h640h640v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-128h-128v-128v-128h-384h-384v128v128h256h256v128v128h128h128v128v128h-384h-384v-128v-128h-256h-256zM512 256v128v128h384h384v-128v-128h-384h-384z" />
<glyph unicode="@" d="M0 512v640v640h128h128v128v128h640h640v-128v-128h128h128v-512v-512h-640h-640v384v384h384h384v-256v-256h128h128v384v384h-640h-640v-640v-640h640h640v-128v-128h-640h-640v128v128h-128h-128zM768 1024h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="A" d="M0 256v640v640h128h128v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h128h128v-640v-640h-256h-256v256v256h-384h-384v-256v-256h-256h-256zM512 1024h384h384v256v256h-128h-128v128v128h-128h-128v-128v-128h-128h-128v-256v-256z" />
<glyph unicode="B" d="M0 256v896v896h768h768v-128v-128h128h128v-256v-256h-128h-128v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-768h-768zM512 512h384h384v256v256h-384h-384v-256v-256zM512 1280h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="C" d="M0 768v384v384h128h128v128v128h128h128v128v128h512h512v-128v-128h128h128v-128v-128h-256h-256v128v128h-256h-256v-128v-128h-128h-128v-384v-384h128h128v-128v-128h256h256v128v128h256h256v-128v-128h-128h-128v-128v-128h-512h-512v128v128h-128h-128v128v128 h-128h-128z" />
<glyph unicode="D" d="M0 256v896v896h640h640v-128v-128h128h128v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-128h-128v-128v-128h-640h-640zM512 512h256h256v128v128h128h128v384v384h-128h-128v128v128h-256h-256v-640v-640z" />
<glyph unicode="E" d="M0 256v896v896h896h896v-128v-128h-640h-640v-256v-256h512h512v-128v-128h-512h-512v-256v-256h640h640v-128v-128h-896h-896z" />
<glyph unicode="F" d="M0 256v896v896h896h896v-128v-128h-640h-640v-256v-256h512h512v-128v-128h-512h-512v-384v-384h-256h-256z" />
<glyph unicode="G" d="M0 768v384v384h128h128v128v128h128h128v128v128h640h640v-128v-128h-512h-512v-128v-128h-128h-128v-384v-384h128h128v-128v-128h256h256v256v256h-128h-128v128v128h384h384v-512v-512h-640h-640v128v128h-128h-128v128v128h-128h-128z" />
<glyph unicode="H" d="M0 256v896v896h256h256v-384v-384h384h384v384v384h256h256v-896v-896h-256h-256v384v384h-384h-384v-384v-384h-256h-256z" />
<glyph unicode="I" d="M256 256v128v128h256h256v640v640h-256h-256v128v128h768h768v-128v-128h-256h-256v-640v-640h256h256v-128v-128h-768h-768z" />
<glyph unicode="J" d="M0 512v128v128h256h256v-128v-128h384h384v768v768h256h256v-768v-768h-128h-128v-128v-128h-640h-640v128v128h-128h-128z" />
<glyph unicode="K" d="M0 256v896v896h256h256v-384v-384h128h128v128v128h128h128v128v128h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h-384h-384v128v128h-128h-128v128v128 h-128h-128v-256v-256h-256h-256z" />
<glyph unicode="L" d="M256 256v896v896h256h256v-768v-768h512h512v-128v-128h-768h-768z" />
<glyph unicode="M" d="M0 256v896v896h256h256v-128v-128h128h128v-128v-128h128h128v128v128h128h128v128v128h256h256v-896v-896h-256h-256v384v384h-128h-128v-128v-128h-128h-128v128v128h-128h-128v-384v-384h-256h-256z" />
<glyph unicode="N" d="M0 256v896v896h256h256v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v384v384h256h256v-896v-896h-256h-256v128v128h-128h-128v128v128h-128h-128v128v128h-128h-128v-384v-384h-256h-256z" />
<glyph unicode="O" d="M0 512v640v640h128h128v128v128h640h640v-128v-128h128h128v-640v-640h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v640v640h-384h-384v-640v-640z" />
<glyph unicode="P" d="M0 256v896v896h768h768v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-512h-512v-256v-256h-256h-256zM512 1024h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="Q" d="M0 512v640v640h128h128v128v128h640h640v-128v-128h128h128v-512v-512h-128h-128v-128v-128h128h128v-128v-128h-128h-128v128v128h-128h-128v-128v-128h-512h-512v128v128h-128h-128zM512 512h256h256v128v128h-128h-128v128v128h256h256v384v384h-384h-384v-640v-640z " />
<glyph unicode="R" d="M0 256v896v896h768h768v-128v-128h128h128v-384v-384h-256h-256v-128v-128h128h128v-128v-128h128h128v-128v-128h-384h-384v128v128h-128h-128v128v128h-128h-128v-256v-256h-256h-256zM512 1024h256h256v128v128h128h128v256v256h-384h-384v-384v-384z" />
<glyph unicode="S" d="M0 512v128v128h256h256v-128v-128h384h384v256v256h-512h-512v128v128h-128h-128v256v256h128h128v128v128h512h512v-128v-128h128h128v-128v-128h-256h-256v128v128h-256h-256v-256v-256h512h512v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-640h-640v128v128 h-128h-128z" />
<glyph unicode="T" d="M256 1792v128v128h768h768v-128v-128h-256h-256v-768v-768h-256h-256v768v768h-256h-256z" />
<glyph unicode="U" d="M0 512v768v768h256h256v-768v-768h384h384v768v768h256h256v-768v-768h-128h-128v-128v-128h-640h-640v128v128h-128h-128z" />
<glyph unicode="V" d="M0 1024v512v512h256h256v-384v-384h128h128v-128v-128h128h128v128v128h128h128v384v384h256h256v-512v-512h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v128v128h-128h-128v128v128h-128h-128v128v128h-128h-128z" />
<glyph unicode="W" d="M0 256v896v896h256h256v-384v-384h128h128v128v128h128h128v-128v-128h128h128v384v384h256h256v-896v-896h-256h-256v128v128h-128h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="X" d="M0 256v256v256h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v256v256h256h256v-128v-128h128h128v-128v-128h128h128v128v128h128h128v128v128h256h256v-256v-256h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-256v-256h-256 h-256v128v128h-128h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="Y" d="M256 1280v384v384h256h256v-384v-384h256h256v384v384h256h256v-384v-384h-128h-128v-128v-128h-128h-128v-384v-384h-256h-256v384v384h-128h-128v128v128h-128h-128z" />
<glyph unicode="Z" d="M0 256v256v256h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h-512h-512v128v128h896h896v-256v-256h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h512h512v-128v-128h-896h-896z" />
<glyph unicode="[" d="M512 256v896v896h512h512v-128v-128h-256h-256v-640v-640h256h256v-128v-128h-512h-512z" />
<glyph unicode="\" d="M0 1792v128v128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h-128h-128v128v128h-128h-128v128v128h-128h-128v128v128h-128h-128v128v128h-128h-128v128v128h-128h-128v128v128 h-128h-128z" />
<glyph unicode="]" d="M256 256v128v128h256h256v640v640h-256h-256v128v128h512h512v-896v-896h-512h-512z" />
<glyph unicode="^" d="M256 1536v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="_" d="M0 0v128v128h896h896v-128v-128h-896h-896z" />
<glyph unicode="`" d="M768 1792v128v128h128h128v-128v-128h128h128v-128v-128h-128h-128v128v128h-128h-128z" />
<glyph unicode="a" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v128v128h640h640v-128v-128h128h128v-512v-512h-768h-768v128v128h-128h-128zM512 512h384h384v128v128h-384h-384v-128v-128z" />
<glyph unicode="b" d="M0 512v768v768h256h256v-256v-256h512h512v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="c" d="M0 512v384v384h128h128v128v128h768h768v-128v-128h-640h-640v-384v-384h640h640v-128v-128h-768h-768v128v128h-128h-128z" />
<glyph unicode="d" d="M0 512v384v384h128h128v128v128h512h512v256v256h256h256v-896v-896h-768h-768v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="e" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-256v-256h-640h-640v-128v-128h512h512v-128v-128h-640h-640v128v128h-128h-128zM512 1024h384h384v128v128h-384h-384v-128v-128z" />
<glyph unicode="f" d="M256 1280v128v128h256h256v128v128h128h128v128v128h384h384v-128v-128h-256h-256v-128v-128h256h256v-128v-128h-256h-256v-512v-512h-256h-256v512v512h-256h-256z" />
<glyph unicode="g" d="M0 768v256v256h128h128v128v128h768h768v-640v-640h-128h-128v-128v-128h-640h-640v128v128h512h512v128v128h-512h-512v128v128h-128h-128zM512 768h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="h" d="M0 256v896v896h256h256v-256v-256h512h512v-128v-128h128h128v-512v-512h-256h-256v512v512h-384h-384v-512v-512h-256h-256z" />
<glyph unicode="i" d="M256 256v128v128h256h256v384v384h-128h-128v128v128h384h384v-512v-512h256h256v-128v-128h-768h-768zM768 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="j" d="M256 0v128v128h384h384v512v512h-128h-128v128v128h384h384v-640v-640h-128h-128v-128v-128h-512h-512zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="k" d="M0 256v896v896h256h256v-384v-384h256h256v128v128h384h384v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h-384h-384v128v128h-128h-128v128v128h-128h-128v-256v-256h-256h-256z" />
<glyph unicode="l" d="M256 256v128v128h256h256v640v640h-128h-128v128v128h384h384v-768v-768h256h256v-128v-128h-768h-768z" />
<glyph unicode="m" d="M0 256v640v640h768h768v-128v-128h128h128v-512v-512h-256h-256v512v512h-128h-128v-512v-512h-256h-256v512v512h-128h-128v-512v-512h-128h-128z" />
<glyph unicode="n" d="M0 256v640v640h768h768v-128v-128h128h128v-512v-512h-256h-256v512v512h-384h-384v-512v-512h-256h-256z" />
<glyph unicode="o" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="p" d="M0 0v768v768h768h768v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-512h-512v-256v-256h-256h-256zM512 768h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="q" d="M0 768v256v256h128h128v128v128h768h768v-768v-768h-256h-256v256v256h-512h-512v128v128h-128h-128zM512 768h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="r" d="M256 256v640v640h256h256v-128v-128h128h128v128v128h384h384v-128v-128h-384h-384v-128v-128h-128h-128v-384v-384h-256h-256z" />
<glyph unicode="s" d="M0 256v128v128h640h640v128v128h-512h-512v128v128h-128h-128v128v128h128h128v128v128h640h640v-128v-128h-512h-512v-128v-128h512h512v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-768h-768z" />
<glyph unicode="t" d="M256 1280v128v128h256h256v256v256h256h256v-256v-256h256h256v-128v-128h-256h-256v-512v-512h-256h-256v512v512h-256h-256z" />
<glyph unicode="u" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-640v-640h-768h-768v128v128h-128h-128z" />
<glyph unicode="v" d="M256 768v384v384h256h256v-384v-384h256h256v384v384h256h256v-384v-384h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256v128v128h-128h-128v128v128h-128h-128z" />
<glyph unicode="w" d="M0 512v512v512h128h128v-512v-512h128h128v512v512h256h256v-512v-512h128h128v512v512h256h256v-640v-640h-768h-768v128v128h-128h-128z" />
<glyph unicode="x" d="M0 256v256v256h256h256v128v128h-256h-256v256v256h256h256v-128v-128h384h384v128v128h256h256v-256v-256h-256h-256v-128v-128h256h256v-256v-256h-256h-256v128v128h-384h-384v-128v-128h-256h-256z" />
<glyph unicode="y" d="M0 768v384v384h256h256v-384v-384h384h384v384v384h256h256v-640v-640h-128h-128v-128v-128h-640h-640v128v128h512h512v128v128h-512h-512v128v128h-128h-128z" />
<glyph unicode="z" d="M0 256v128v128h128h128v128v128h128h128v128v128h128h128v128v128h-384h-384v128v128h896h896v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h384h384v-128v-128h-896h-896z" />
<glyph unicode="{" d="M512 1024v128v128h128h128v256v256h128h128v128v128h256h256v-128v-128h-128h-128v-256v-256h-128h-128v-128v-128h128h128v-256v-256h128h128v-128v-128h-256h-256v128v128h-128h-128v256v256h-128h-128z" />
<glyph unicode="|" d="M768 256v896v896h256h256v-896v-896h-256h-256z" />
<glyph unicode="}" d="M256 256v128v128h128h128v256v256h128h128v128v128h-128h-128v256v256h-128h-128v128v128h256h256v-128v-128h128h128v-256v-256h128h128v-128v-128h-128h-128v-256v-256h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="~" d="M0 1024v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-384h-384v128v128h-128h-128v128v128h-128h-128v-128v-128h-128h-128z" />
<glyph d="M256 256v256v256h256h256v-256v-256h-256h-256zM1024 256v256v256h256h256v-256v-256h-256h-256z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa1;" d="M512 256v384v384h128h128v256v256h256h256v-640v-640h-384h-384zM768 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xa2;" d="M0 768v384v384h128h128v128v128h256h256v128v128h128h128v-128v-128h256h256v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-384v-384h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h-256h-256v-128v-128h-128h-128v128v128h-256h-256v128v128 h-128h-128zM512 768h128h128v384v384h-128h-128v-384v-384z" />
<glyph unicode="&#xa3;" d="M0 256v128v128h128h128v256v256h-128h-128v128v128h128h128v256v256h128h128v128v128h512h512v-128v-128h128h128v-128v-128h-256h-256v128v128h-256h-256v-256v-256h384h384v-128v-128h-384h-384v-256v-256h512h512v-128v-128h-896h-896z" />
<glyph unicode="&#xa4;" d="M256 512v128v128h128h128v384v384h-128h-128v128v128h128h128v-128v-128h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-384v-384h128h128v-128v-128h-128h-128v128v128h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128 h-128h-128zM768 768h256h256v384v384h-256h-256v-384v-384z" />
<glyph unicode="&#xa5;" d="M256 512v128v128h256h256v128v128h-256h-256v128v128h128h128v128v128h-128h-128v256v256h256h256v-256v-256h256h256v256v256h256h256v-256v-256h-128h-128v-128v-128h128h128v-128v-128h-256h-256v-128v-128h256h256v-128v-128h-256h-256v-128v-128h-256h-256v128v128 h-256h-256z" />
<glyph unicode="&#xa6;" d="M768 256v384v384h256h256v-384v-384h-256h-256zM768 1280v384v384h256h256v-384v-384h-256h-256z" />
<glyph unicode="&#xa7;" d="M256 512v128v128h256h256v128v128h-128h-128v128v128h-128h-128v256v256h128h128v128v128h512h512v-128v-128h128h128v-128v-128h-256h-256v-128v-128h128h128v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-512h-512v128v128h-128h-128zM768 512h256h256v128v128 h-256h-256v-128v-128zM768 1024h256h256v128v128h-256h-256v-128v-128zM768 1536h256h256v128v128h-256h-256v-128v-128z" />
<glyph unicode="&#xa8;" d="M256 1792v128v128h256h256v-128v-128h-256h-256zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xa9;" d="M0 512v512v512h128h128v128v128h128h128v128v128h512h512v-128v-128h128h128v-128v-128h128h128v-512v-512h-128h-128v-128v-128h-128h-128v-128v-128h-512h-512v128v128h-128h-128v128v128h-128h-128zM256 512h128h128v-128v-128h512h512v128v128h128h128v512v512h-128 h-128v128v128h-512h-512v-128v-128h-128h-128v-512v-512zM512 768v256v256h128h128v128v128h256h256v-128v-128h-256h-256v-256v-256h256h256v-128v-128h-256h-256v128v128h-128h-128z" />
<glyph unicode="&#xaa;" d="M256 1280v128v128h128h128v128v128h-128h-128v128v128h512h512v-128v-128h128h128v-384v-384h-512h-512v128v128h-128h-128zM768 1280h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xab;" d="M0 1024v128v128h128h128v128v128h128h128v128v128h256h256v-128v-128h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256v128v128h-128h-128v128v128 h-128h-128zM512 1024h128h128v-128v-128h128h128v128v128h-128h-128v128v128h128h128v128v128h-128h-128v-128v-128h-128h-128v-128v-128z" />
<glyph unicode="&#xac;" d="M256 1280v128v128h768h768v-384v-384h-256h-256v256v256h-512h-512z" />
<glyph unicode="&#xad;" d="M256 1024v128v128h768h768v-128v-128h-768h-768z" />
<glyph unicode="&#xae;" d="M0 512v512v512h128h128v128v128h128h128v128v128h512h512v-128v-128h128h128v-128v-128h128h128v-512v-512h-128h-128v-128v-128h-128h-128v-128v-128h-512h-512v128v128h-128h-128v128v128h-128h-128zM256 512h128h128v-128v-128h512h512v128v128h128h128v512v512h-128 h-128v128v128h-512h-512v-128v-128h-128h-128v-512v-512zM512 512v512v512h384h384v-128v-128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h-128h-128v128v128h-256h-256v-128v-128h-128h-128zM768 1024h256h256v128v128h-256h-256v-128v-128z" />
<glyph unicode="&#xaf;" d="M256 1792v128v128h640h640v-128v-128h-640h-640z" />
<glyph unicode="&#xb0;" d="M512 1536v128v128h128h128v128v128h128h128v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v128v128h-128h-128zM768 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xb1;" d="M256 256v128v128h768h768v-128v-128h-768h-768zM256 1280v128v128h256h256v256v256h256h256v-256v-256h256h256v-128v-128h-256h-256v-256v-256h-256h-256v256v256h-256h-256z" />
<glyph unicode="&#xb2;" d="M512 1024v128v128h128h128v128v128h128h128v128v128h-256h-256v128v128h384h384v-128v-128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h-512h-512z" />
<glyph unicode="&#xb3;" d="M512 1024v128v128h256h256v128v128h-128h-128v128v128h-128h-128v128v128h512h512v-128v-128h-128h-128v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-384h-384z" />
<glyph unicode="&#xb4;" d="M768 1536v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xb5;" d="M0 0v768v768h256h256v-512v-512h256h256v512v512h256h256v-512v-512h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256v-128v-128h-256h-256z" />
<glyph unicode="&#xb6;" d="M256 1024v384v384h128h128v128v128h640h640v-896v-896h-128h-128v256v256h-128h-128v-256v-256h-128h-128v256v256h-256h-256v128v128h-128h-128zM512 1280h128h128v-128v-128h128h128v384v384h-128h-128v-128v-128h-128h-128v-128v-128zM1280 1024h128h128v384v384h-128 h-128v-384v-384z" />
<glyph unicode="&#xb7;" d="M512 768v256v256h256h256v-256v-256h-256h-256z" />
<glyph unicode="&#xb8;" d="M512 0v128v128h256h256v128v128h128h128v-128v-128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#xb9;" d="M512 1024v128v128h128h128v128v128h-128h-128v128v128h128h128v128v128h256h256v-384v-384h128h128v-128v-128h-512h-512z" />
<glyph unicode="&#xba;" d="M256 1280v256v256h128h128v128v128h384h384v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-384h-384v128v128h-128h-128zM768 1280h128h128v256v256h-128h-128v-256v-256z" />
<glyph unicode="&#xbb;" d="M0 512v128v128h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v128v128h256h256v-128v-128h128h128v128v128h256h256v-128v-128h128h128v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128 h-256h-256zM768 768h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v-128v-128h128h128v-128v-128h-128h-128v-128v-128z" />
<glyph unicode="&#xbc;" d="M0 256v128v128h128h128v128v128h128h128v128v128h-128h-128v256v256h-128h-128v128v128h128h128v128v128h128h128v-512v-512h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128 v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128zM1024 512v128v128h128h128v128v128h128h128v128v128h128h128v-512v-512h-128h-128v128v128h-256h-256z" />
<glyph unicode="&#xbd;" d="M0 256v128v128h128h128v128v128h128h128v128v128h-128h-128v256v256h-128h-128v128v128h128h128v128v128h128h128v-512v-512h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h256h256v-256 v-256h-128h-128v-128v-128h128h128v-128v-128h-384h-384v128v128h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xbe;" d="M0 256v128v128h128h128v128v128h128h128v128v128h-256h-256v128v128h256h256v128v128h-128h-128v128v128h-128h-128v128v128h384h384v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128 v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128zM512 1024h128h128v128v128h-128h-128v-128v-128zM1024 512v128v128h128h128v128v128h128h128v128v128h128h128v-512v-512h-128h-128v128v128 h-256h-256z" />
<glyph unicode="&#xbf;" d="M0 512v256v256h128h128v128v128h128h128v128v128h384h384v-128v-128h-256h-256v-128v-128h-128h-128v-128v-128h384h384v128v128h256h256v-256v-256h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 1792v128v128h384h384v-128v-128h-384h-384z" />
<glyph unicode="&#xc0;" d="M0 256v384v384h128h128v128v128h128h128v128v128h128h128v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-384v-384h-256h-256v128v128h-384h-384v-128v-128h-256h-256zM512 768h384h384v128v128h-128 h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128z" />
<glyph unicode="&#xc1;" d="M0 256v384v384h128h128v128v128h128h128v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-384v-384h-256h-256v128v128h-384h-384v-128v-128h-256h-256zM512 768h384h384v128v128h-128 h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128z" />
<glyph unicode="&#xc2;" d="M0 256v384v384h128h128v128v128h128h128v128v128h-128h-128v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-384v-384h-256h-256v128v128h-384h-384v-128v-128h-256h-256zM512 768h384h384v128v128h-128 h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128zM768 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xc3;" d="M0 256v384v384h128h128v128v128h128h128v128v128h-128h-128v128v128h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-256v-256h128h128v-128v-128h128h128v-384v-384h-256h-256v128v128h-384h-384v-128v-128h-256h-256zM512 768h384 h384v128v128h-128h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128zM512 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xc4;" d="M0 256v384v384h128h128v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h128h128v-384v-384h-256h-256v128v128h-384h-384v-128v-128h-256h-256zM256 1792v128v128h256h256v-128v-128h-256h-256zM512 768h384h384v128v128h-128h-128v128v128h-128h-128 v-128v-128h-128h-128v-128v-128zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xc5;" d="M0 256v384v384h128h128v128v128h128h128v256v256h128h128v128v128h128h128v-128v-128h128h128v-256v-256h128h128v-128v-128h128h128v-384v-384h-256h-256v128v128h-384h-384v-128v-128h-256h-256zM512 768h384h384v128v128h-128h-128v128v128h-128h-128v-128v-128h-128 h-128v-128v-128zM768 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xc6;" d="M0 256v640v640h128h128v128v128h128h128v128v128h640h640v-128v-128h-256h-256v-256v-256h256h256v-128v-128h-256h-256v-256v-256h256h256v-128v-128h-512h-512v256v256h-128h-128v-256v-256h-256h-256zM512 1024h128h128v256v256h-128h-128v-256v-256z" />
<glyph unicode="&#xc7;" d="M0 1024v256v256h128h128v128v128h128h128v128v128h512h512v-128v-128h128h128v-128v-128h-256h-256v128v128h-256h-256v-128v-128h-128h-128v-256v-256h128h128v-128v-128h256h256v128v128h256h256v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128v-128 v-128h-256h-256v128v128h256h256v128v128h-256h-256v128v128h-128h-128v128v128h-128h-128z" />
<glyph unicode="&#xc8;" d="M0 256v640v640h384h384v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h384h384v-128v-128h-640h-640v-128v-128h512h512v-128v-128h-512h-512v-128v-128h640h640v-128v-128h-896h-896z" />
<glyph unicode="&#xc9;" d="M0 256v640v640h384h384v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h384h384v-128v-128h-640h-640v-128v-128h512h512v-128v-128h-512h-512v-128v-128h640h640v-128v-128h-896h-896z" />
<glyph unicode="&#xca;" d="M0 256v640v640h128h128v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h128h128v-128v-128h-640h-640v-128v-128h512h512v-128v-128h-512h-512v-128v-128h640h640v-128v-128h-896h-896zM768 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xcb;" d="M0 256v640v640h896h896v-128v-128h-640h-640v-128v-128h512h512v-128v-128h-512h-512v-128v-128h640h640v-128v-128h-896h-896zM256 1792v128v128h256h256v-128v-128h-256h-256zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xcc;" d="M256 256v128v128h256h256v384v384h-256h-256v128v128h384h384v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h256h256v-128v-128h-256h-256v-384v-384h256h256v-128v-128h-768h-768z" />
<glyph unicode="&#xcd;" d="M256 256v128v128h256h256v384v384h-256h-256v128v128h256h256v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h384h384v-128v-128h-256h-256v-384v-384h256h256v-128v-128h-768h-768z" />
<glyph unicode="&#xce;" d="M256 256v128v128h256h256v384v384h-256h-256v128v128h128h128v128v128h128h128v128v128h256h256v-128v-128h128h128v-128v-128h128h128v-128v-128h-256h-256v-384v-384h256h256v-128v-128h-768h-768z" />
<glyph unicode="&#xcf;" d="M256 256v128v128h256h256v384v384h-256h-256v128v128h768h768v-128v-128h-256h-256v-384v-384h256h256v-128v-128h-768h-768zM256 1792v128v128h256h256v-128v-128h-256h-256zM1280 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xd0;" d="M0 1024v128v128h128h128v384v384h512h512v-128v-128h128h128v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-128h-128v-128v-128h-512h-512v384v384h-128h-128zM768 512h128h128v128v128h128h128v384v384h-128h-128v128v128h-128h-128v-256v-256h128h128v-128v-128 h-128h-128v-256v-256z" />
<glyph unicode="&#xd1;" d="M0 256v640v640h128h128v128v128h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h256h256v-640v-640h-384h-384v128v128h-128h-128v128v128h-128h-128v-256v-256h-256h-256zM512 1536h128h128v-128v-128h128h128v-128v-128 h128h128v256v256h-256h-256v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xd2;" d="M0 512v384v384h128h128v128v128h256h256v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h256h256v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="&#xd3;" d="M0 512v384v384h128h128v128v128h256h256v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h256h256v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="&#xd4;" d="M0 512v384v384h128h128v256v256h128h128v128v128h384h384v-128v-128h128h128v-256v-256h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384zM768 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xd5;" d="M0 512v384v384h128h128v256v256h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z M512 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xd6;" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM512 512h384h384v384v384h-384h-384v-384v-384zM1024 1792v128v128h256h256v-128v-128h-256 h-256z" />
<glyph unicode="&#xd7;" d="M256 512v128v128h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h128h128v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h-128 h-128v128v128h-128h-128v128v128h-128h-128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xd8;" d="M0 512v640v640h128h128v128v128h640h640v-128v-128h128h128v-640v-640h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-128h-128v128v128h128h128v128v128h-384h-384v-384v-384h128h128v-128v-128h-128h-128v-128v-128zM768 1024v128v128 h128h128v-128v-128h-128h-128z" />
<glyph unicode="&#xd9;" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-512v-512h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 1792v128v128h128h128v-128v-128h128h128v-128v-128h-128h-128v128v128h-128h-128z" />
<glyph unicode="&#xda;" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-512v-512h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM768 1536v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xdb;" d="M0 512v384v384h256h256v-384v-384h384h384v384v384h256h256v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM256 1536v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#xdc;" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-512v-512h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xdd;" d="M256 1024v256v256h256h256v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-256v-256h256h256v256v256h256h256v-256v-256h-128h-128v-128v-128h-128h-128v-256v-256h-256h-256v256v256h-128h-128v128v128h-128h-128z" />
<glyph unicode="&#xde;" d="M0 256v896v896h256h256v-128v-128h512h512v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-512h-512v-128v-128h-256h-256zM512 768h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="&#xdf;" d="M256 256v768v768h128h128v128v128h512h512v-128v-128h128h128v-256v-256h-128h-128v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256zM768 768h128h128v-128v-128h128h128v256v256h-128h-128v128v128h128h128v256v256 h-256h-256v-512v-512z" />
<glyph unicode="&#xe0;" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v128v128h256h256v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h256h256v-128v-128h128h128v-512v-512h-768h-768v128v128h-128h-128zM512 512h384h384v128v128h-384h-384v-128v-128z" />
<glyph unicode="&#xe1;" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v128v128h256h256v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h256h256v-128v-128h128h128v-512v-512h-768h-768v128v128h-128h-128zM512 512h384h384v128v128h-384h-384v-128v-128z" />
<glyph unicode="&#xe2;" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v256v256h128h128v128v128h384h384v-128v-128h128h128v-256v-256h128h128v-512v-512h-768h-768v128v128h-128h-128zM512 512h384h384v128v128h-384h-384v-128v-128zM768 1536h128h128v128v128h-128h-128v-128 v-128z" />
<glyph unicode="&#xe3;" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v256v256h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-512v-512h-768h-768v128v128h-128h-128zM512 512h384h384v128v128h-384h-384 v-128v-128zM512 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xe4;" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v128v128h640h640v-128v-128h128h128v-512v-512h-768h-768v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM512 512h384h384v128v128h-384h-384v-128v-128zM1024 1792v128v128h256h256v-128 v-128h-256h-256z" />
<glyph unicode="&#xe5;" d="M0 512v128v128h128h128v128v128h512h512v128v128h-512h-512v128v128h128h128v128v128h128h128v128v128h128h128v-128v-128h128h128v-128v-128h128h128v-128v-128h128h128v-512v-512h-768h-768v128v128h-128h-128zM512 512h384h384v128v128h-384h-384v-128v-128zM768 1536 h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xe6;" d="M0 512v128v128h128h128v128v128h256h256v128v128h-256h-256v128v128h640h640v-128v-128h128h128v-256v-256h-384h-384v-128v-128h256h256v-128v-128h-640h-640v128v128h-128h-128zM512 512h128h128v128v128h-128h-128v-128v-128zM1024 1024h128h128v128v128h-128h-128 v-128v-128z" />
<glyph unicode="&#xe7;" d="M0 768v256v256h128h128v128v128h768h768v-128v-128h-640h-640v-256v-256h640h640v-128v-128h-256h-256v-128v-128h-128h-128v-128v-128h-256h-256v128v128h256h256v128v128h-384h-384v128v128h-128h-128z" />
<glyph unicode="&#xe8;" d="M0 512v384v384h128h128v128v128h256h256v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h256h256v-128v-128h128h128v-256v-256h-640h-640v-128v-128h512h512v-128v-128h-640h-640v128v128h-128h-128zM512 1024h384h384v128v128h-384h-384v-128v-128z " />
<glyph unicode="&#xe9;" d="M0 512v384v384h128h128v128v128h256h256v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h256h256v-128v-128h128h128v-256v-256h-640h-640v-128v-128h512h512v-128v-128h-640h-640v128v128h-128h-128zM512 1024h384h384v128v128h-384h-384v-128v-128z " />
<glyph unicode="&#xea;" d="M0 512v384v384h128h128v256v256h128h128v128v128h384h384v-128v-128h128h128v-256v-256h128h128v-256v-256h-640h-640v-128v-128h512h512v-128v-128h-640h-640v128v128h-128h-128zM512 1024h384h384v128v128h-384h-384v-128v-128zM768 1536h128h128v128v128h-128h-128 v-128v-128z" />
<glyph unicode="&#xeb;" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-256v-256h-640h-640v-128v-128h512h512v-128v-128h-640h-640v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM512 1024h384h384v128v128h-384h-384v-128v-128zM1024 1792v128v128h256h256 v-128v-128h-256h-256z" />
<glyph unicode="&#xec;" d="M256 256v128v128h256h256v256v256h-128h-128v128v128h384h384v-384v-384h256h256v-128v-128h-768h-768zM512 1792v128v128h128h128v-128v-128h128h128v-128v-128h-128h-128v128v128h-128h-128z" />
<glyph unicode="&#xed;" d="M256 256v128v128h256h256v256v256h-128h-128v128v128h384h384v-384v-384h256h256v-128v-128h-768h-768zM768 1536v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xee;" d="M256 256v128v128h256h256v256v256h-128h-128v128v128h384h384v-384v-384h256h256v-128v-128h-768h-768zM256 1536v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#xef;" d="M256 256v128v128h256h256v384v384h-128h-128v128v128h384h384v-512v-512h256h256v-128v-128h-768h-768zM256 1792v128v128h256h256v-128v-128h-256h-256zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xf0;" d="M0 512v256v256h128h128v128v128h-128h-128v128v128h128h128v256v256h256h256v-128v-128h256h256v128v128h128h128v-128v-128h-128h-128v-256v-256h128h128v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM256 1280h256h256v128v128h-256 h-256v-128v-128zM512 512h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="&#xf1;" d="M0 256v640v640h128h128v128v128h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-512v-512h-256h-256v512v512h-384h-384v-512v-512h-256h-256zM512 1536h128h128v128v128h-128h-128v-128v-128z " />
<glyph unicode="&#xf2;" d="M0 512v384v384h128h128v128v128h256h256v128v128h-128h-128v128v128h128h128v-128v-128h128h128v-128v-128h256h256v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="&#xf3;" d="M0 512v384v384h128h128v128v128h256h256v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h256h256v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z" />
<glyph unicode="&#xf4;" d="M0 512v384v384h128h128v256v256h128h128v128v128h384h384v-128v-128h128h128v-256v-256h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384zM768 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xf5;" d="M0 512v384v384h128h128v256v256h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 512h384h384v384v384h-384h-384v-384v-384z M512 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#xf6;" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM512 512h384h384v384v384h-384h-384v-384v-384zM1024 1792v128v128h256h256v-128v-128h-256 h-256z" />
<glyph unicode="&#xf7;" d="M256 1024v128v128h768h768v-128v-128h-768h-768zM768 512v128v128h256h256v-128v-128h-256h-256zM768 1536v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xf8;" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-384v-384h-128h-128v-128v-128h-640h-640v128v128h-128h-128zM512 768h128h128v-128v-128h256h256v256v256h-128h-128v128v128h-256h-256v-256v-256zM768 768v128v128h128h128v-128v-128h-128h-128z" />
<glyph unicode="&#xf9;" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-640v-640h-768h-768v128v128h-128h-128zM512 1792v128v128h128h128v-128v-128h128h128v-128v-128h-128h-128v128v128h-128h-128z" />
<glyph unicode="&#xfa;" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-640v-640h-768h-768v128v128h-128h-128zM768 1536v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xfb;" d="M0 512v384v384h256h256v-384v-384h384h384v384v384h256h256v-512v-512h-768h-768v128v128h-128h-128zM256 1536v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#xfc;" d="M0 512v512v512h256h256v-512v-512h384h384v512v512h256h256v-640v-640h-768h-768v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#xfd;" d="M0 768v384v384h256h256v-384v-384h384h384v384v384h256h256v-640v-640h-128h-128v-128v-128h-640h-640v128v128h512h512v128v128h-512h-512v128v128h-128h-128zM768 1536v128v128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#xfe;" d="M0 0v1024v1024h256h256v-256v-256h512h512v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-512h-512v-256v-256h-256h-256zM512 768h384h384v256v256h-384h-384v-256v-256z" />
<glyph unicode="&#xff;" d="M0 768v384v384h256h256v-384v-384h384h384v384v384h256h256v-640v-640h-128h-128v-128v-128h-640h-640v128v128h512h512v128v128h-512h-512v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM1024 1792v128v128h256h256v-128v-128h-256h-256z" />
<glyph unicode="&#x152;" d="M0 512v640v640h128h128v128v128h768h768v-128v-128h-256h-256v-256v-256h256h256v-128v-128h-256h-256v-256v-256h256h256v-128v-128h-768h-768v128v128h-128h-128zM512 512h128h128v640v640h-128h-128v-640v-640z" />
<glyph unicode="&#x153;" d="M0 512v384v384h128h128v128v128h640h640v-128v-128h128h128v-256v-256h-384h-384v-128v-128h256h256v-128v-128h-640h-640v128v128h-128h-128zM512 512h128h128v384v384h-128h-128v-384v-384zM1024 1024h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#x178;" d="M256 1024v256v256h256h256v-256v-256h256h256v256v256h256h256v-256v-256h-128h-128v-128v-128h-128h-128v-256v-256h-256h-256v256v256h-128h-128v128v128h-128h-128zM256 1792v128v128h256h256v-128v-128h-256h-256zM1280 1792v128v128h256h256v-128v-128h-256h-256z " />
<glyph unicode="&#x2c6;" d="M256 1536v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#x2dc;" d="M256 1536v128v128h128h128v128v128h256h256v-128v-128h128h128v128v128h128h128v-128v-128h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-128h-128z" />
<glyph unicode="&#x2000;" horiz-adv-x="1024" />
<glyph unicode="&#x2001;" />
<glyph unicode="&#x2002;" horiz-adv-x="1024" />
<glyph unicode="&#x2003;" />
<glyph unicode="&#x2004;" horiz-adv-x="682" />
<glyph unicode="&#x2005;" horiz-adv-x="512" />
<glyph unicode="&#x2006;" horiz-adv-x="341" />
<glyph unicode="&#x2007;" horiz-adv-x="341" />
<glyph unicode="&#x2008;" horiz-adv-x="256" />
<glyph unicode="&#x2009;" horiz-adv-x="409" />
<glyph unicode="&#x200a;" horiz-adv-x="113" />
<glyph unicode="&#x2010;" d="M256 1024v128v128h768h768v-128v-128h-768h-768z" />
<glyph unicode="&#x2011;" d="M256 1024v128v128h768h768v-128v-128h-768h-768z" />
<glyph unicode="&#x2012;" d="M256 1024v128v128h768h768v-128v-128h-768h-768z" />
<glyph unicode="&#x2013;" d="M0 1024v128v128h896h896v-128v-128h-896h-896z" />
<glyph unicode="&#x2014;" d="M0 1024v128v128h1024h1024v-128v-128h-1024h-1024z" />
<glyph unicode="&#x2018;" d="M512 1280v256v256h128h128v128v128h256h256v-128v-128h-128h-128v-256v-256h-256h-256z" />
<glyph unicode="&#x2019;" d="M512 1280v128v128h128h128v256v256h256h256v-256v-256h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#x201a;" d="M512 256v128v128h128h128v256v256h256h256v-256v-256h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#x201c;" d="M256 1280v256v256h128h128v128v128h256h256v-128v-128h128h128v128v128h256h256v-128v-128h-128h-128v-256v-256h-256h-256v256v256h-128h-128v-256v-256h-256h-256z" />
<glyph unicode="&#x201d;" d="M256 1280v128v128h128h128v256v256h256h256v-256v-256h128h128v256v256h256h256v-256v-256h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#x201e;" d="M0 256v128v128h128h128v256v256h256h256v-256v-256h128h128v256v256h256h256v-256v-256h-128h-128v-128v-128h-256h-256v128v128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#x2022;" d="M512 768v256v256h128h128v128v128h256h256v-128v-128h128h128v-256v-256h-128h-128v-128v-128h-256h-256v128v128h-128h-128z" />
<glyph unicode="&#x2026;" d="M0 256v256v256h128h128v-256v-256h-128h-128zM768 256v256v256h128h128v-256v-256h-128h-128zM1536 256v256v256h128h128v-256v-256h-128h-128z" />
<glyph unicode="&#x202f;" horiz-adv-x="409" />
<glyph unicode="&#x2039;" d="M512 1024v128v128h128h128v128v128h128h128v128v128h256h256v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h128h128v-128v-128h128h128v-128v-128h-256h-256v128v128h-128h-128v128v128h-128h-128z" />
<glyph unicode="&#x203a;" d="M256 512v128v128h128h128v128v128h128h128v128v128h-128h-128v128v128h-128h-128v128v128h256h256v-128v-128h128h128v-128v-128h128h128v-128v-128h-128h-128v-128v-128h-128h-128v-128v-128h-256h-256z" />
<glyph unicode="&#x205f;" horiz-adv-x="512" />
<glyph unicode="&#x20ac;" d="M0 768v128v128h128h128v128v128h-128h-128v128v128h256h256v128v128h128h128v128v128h384h384v-128v-128h128h128v-128v-128h-256h-256v-128v-128h-256h-256v-128v-128h256h256v-128v-128h256h256v-128v-128h-128h-128v-128v-128h-384h-384v128v128h-128h-128v128v128 h-256h-256zM1024 512h128h128v128v128h-128h-128v-128v-128zM1024 1536h128h128v128v128h-128h-128v-128v-128z" />
<glyph unicode="&#x2122;" d="M256 1792v128v128h768h768v-512v-512h-128h-128v256v256h-128h-128v-256v-256h-128h-128v384v384h-128h-128v-384v-384h-128h-128v384v384h-128h-128z" />
<glyph unicode="&#xe000;" horiz-adv-x="1540" d="M0 0v1540h1540v-1540h-1540z" />
<glyph unicode="&#xfb01;" d="M0 1280v128v128h128h128v128v128h128h128v128v128h384h384v-128v-128h-256h-256v-128v-128h512h512v-640v-640h-256h-256v512v512h-256h-256v-512v-512h-256h-256v512v512h-128h-128z" />
<glyph unicode="&#xfb02;" d="M0 1280v128v128h128h128v128v128h128h128v128v128h640h640v-896v-896h-256h-256v512v512h-256h-256v-512v-512h-256h-256v512v512h-128h-128zM768 1536h256h256v128v128h-256h-256v-128v-128z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 49 KiB

+1
View File
@@ -8,6 +8,7 @@
content="FullScreenSaver, full, screen, typescript, javascript, html5, gaming, online, online game, fun, distraction"
/>
<meta name="description" content="" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="./index.css" rel="stylesheet" />
+1
View File
@@ -31,6 +31,7 @@
"shenanigans-manager": "^0.8.1",
"sinon": "^14.0.0",
"sinon-chai": "^3.7.0",
"ts-loader": "^9.3.1",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0"
},
@@ -1,5 +1,52 @@
import { expect } from "chai";
import { createFullScreenSaver } from "./fakes.test";
describe("FullScreenSaver", () => {
it("_", () => {
// TODO: Implement me!
it("starts with one square", () => {
// Arrange
const { game } = createFullScreenSaver();
// Assert
expect(game.groupHolder.getGroup("Squares")).to.have.length(1);
});
it("adds a player when a directional input is pressed", () => {
// Arrange
const { game } = createFullScreenSaver();
// Act
game.inputWriter.callEvent("onkeydown", "left");
// Assert
expect(game.groupHolder.getGroup("Players")).to.have.length(1);
});
it("increases to two squares 150 ticks after a player is added", () => {
// Arrange
const { clock, game } = createFullScreenSaver();
game.inputWriter.callEvent("onkeydown", "left");
// (move the player out of the way)
game.physics.shiftActors(game.groupHolder.getGroup("Players"), 9001, 9001);
// Act
clock.tick(150 * game.frameTicker.getInterval());
// Assert
expect(game.groupHolder.getGroup("Squares")).to.have.length(2);
});
it("stops adding squares after the player is hit", () => {
// Arrange
const { clock, game } = createFullScreenSaver();
game.inputWriter.callEvent("onkeydown", "left");
// Act
clock.tick(300 * game.frameTicker.getInterval());
// Assert
expect(game.groupHolder.getGroup("Players")).to.have.length(0);
expect(game.groupHolder.getGroup("Squares")).to.have.length(1);
});
});
@@ -1,5 +1,7 @@
import { factory, member } from "autofieldr";
import { EightBittr, EightBittrConstructorSettings } from "eightbittr";
import { Actor, EightBittr, EightBittrConstructorSettings } from "eightbittr";
import { GroupHoldr } from "groupholdr";
import { ItemsHoldr } from "itemsholdr";
import { MenuGraphr } from "menugraphr";
import { createMenuGrapher } from "./creators/createMenuGrapher";
@@ -42,6 +44,23 @@ export class FullScreenSaver extends EightBittr {
@member(Groups)
public readonly groups: Groups<this>;
/**
* General storage abstraction for keyed containers of items.
*/
public readonly groupHolder: GroupHoldr<{
Squares: Actor;
Players: Actor;
Text: Actor;
}>;
/**
* Cache-based wrapper around localStorage.
*/
public readonly itemsHolder: ItemsHoldr<{
highScore: number;
score: number;
}>;
/**
* User input filtering and handling.
*/
@@ -0,0 +1,32 @@
import { useFakeTimers } from "sinon-timers-repeatable";
import { FullScreenSaver } from "./FullScreenSaver";
export const mockHeight = 480;
export const mockWidth = 320;
export const createFullScreenSaver = () => {
const clock = useFakeTimers();
const game = new FullScreenSaver({
components: {
frameTicker: {
timing: {
cancelFrame: clock.clearTimeout,
getTimestamp: () => clock.now,
requestFrame: (callback) =>
clock.setTimeout(() => {
callback(clock.now);
}, 1),
},
},
},
height: mockHeight,
width: mockWidth,
});
game.frameTicker.play();
return { clock, game };
};

Some files were not shown because too many files have changed in this diff Show More