commit 67e817490e776f1d9378c5b0dddce02ff47ac609 Author: Thomas Lovén Date: Fri Oct 21 20:47:34 2016 +0200 Initial commit - Begun rewrite of website generator diff --git a/media/2013.pdf b/media/2013.pdf new file mode 100644 index 0000000..32a05ee Binary files /dev/null and b/media/2013.pdf differ diff --git a/media/img/bad_clock.png b/media/img/bad_clock.png new file mode 100644 index 0000000..56a4b7e Binary files /dev/null and b/media/img/bad_clock.png differ diff --git a/media/img/bad_clock_signal1.png b/media/img/bad_clock_signal1.png new file mode 100644 index 0000000..c1b3f83 Binary files /dev/null and b/media/img/bad_clock_signal1.png differ diff --git a/media/img/bad_clock_signal2.png b/media/img/bad_clock_signal2.png new file mode 100644 index 0000000..4e5f343 Binary files /dev/null and b/media/img/bad_clock_signal2.png differ diff --git a/media/img/debug_print.png b/media/img/debug_print.png new file mode 100644 index 0000000..ee9be56 Binary files /dev/null and b/media/img/debug_print.png differ diff --git a/media/img/debug_print_full.png b/media/img/debug_print_full.png new file mode 100644 index 0000000..d321052 Binary files /dev/null and b/media/img/debug_print_full.png differ diff --git a/media/img/good_clock.png b/media/img/good_clock.png new file mode 100644 index 0000000..1d5c133 Binary files /dev/null and b/media/img/good_clock.png differ diff --git a/media/img/good_clock_circuit.png b/media/img/good_clock_circuit.png new file mode 100644 index 0000000..7983671 Binary files /dev/null and b/media/img/good_clock_circuit.png differ diff --git a/media/img/good_clock_signal.png b/media/img/good_clock_signal.png new file mode 100644 index 0000000..f19f705 Binary files /dev/null and b/media/img/good_clock_signal.png differ diff --git a/media/img/ico_external.gif b/media/img/ico_external.gif new file mode 100644 index 0000000..6be9a3b Binary files /dev/null and b/media/img/ico_external.gif differ diff --git a/media/img/mini_project_arduino_breadboard1.png b/media/img/mini_project_arduino_breadboard1.png new file mode 100644 index 0000000..756fef2 Binary files /dev/null and b/media/img/mini_project_arduino_breadboard1.png differ diff --git a/media/img/mini_project_arduino_breadboard2.png b/media/img/mini_project_arduino_breadboard2.png new file mode 100644 index 0000000..14d4f04 Binary files /dev/null and b/media/img/mini_project_arduino_breadboard2.png differ diff --git a/media/img/mini_project_arduino_breadboard3.png b/media/img/mini_project_arduino_breadboard3.png new file mode 100644 index 0000000..4cadeaa Binary files /dev/null and b/media/img/mini_project_arduino_breadboard3.png differ diff --git a/media/img/mini_project_arduino_breadboard4.png b/media/img/mini_project_arduino_breadboard4.png new file mode 100644 index 0000000..f73a92e Binary files /dev/null and b/media/img/mini_project_arduino_breadboard4.png differ diff --git a/media/img/mini_project_headset_adapter.png b/media/img/mini_project_headset_adapter.png new file mode 100644 index 0000000..00dc4df Binary files /dev/null and b/media/img/mini_project_headset_adapter.png differ diff --git a/media/img/osdev_build_env.png b/media/img/osdev_build_env.png new file mode 100644 index 0000000..33e6143 Binary files /dev/null and b/media/img/osdev_build_env.png differ diff --git a/media/img/osdev_build_env_full.png b/media/img/osdev_build_env_full.png new file mode 100644 index 0000000..6edf36b Binary files /dev/null and b/media/img/osdev_build_env_full.png differ diff --git a/media/img/pmm1.png b/media/img/pmm1.png new file mode 100644 index 0000000..a54353f Binary files /dev/null and b/media/img/pmm1.png differ diff --git a/media/img/pmm1b.png b/media/img/pmm1b.png new file mode 100644 index 0000000..700cb5e Binary files /dev/null and b/media/img/pmm1b.png differ diff --git a/media/img/pmm2.png b/media/img/pmm2.png new file mode 100644 index 0000000..aedb9b0 Binary files /dev/null and b/media/img/pmm2.png differ diff --git a/media/img/pmm2b.png b/media/img/pmm2b.png new file mode 100644 index 0000000..ba4268e Binary files /dev/null and b/media/img/pmm2b.png differ diff --git a/media/img/pmm3.png b/media/img/pmm3.png new file mode 100644 index 0000000..1b1a617 Binary files /dev/null and b/media/img/pmm3.png differ diff --git a/media/img/pmm3b.png b/media/img/pmm3b.png new file mode 100644 index 0000000..076d418 Binary files /dev/null and b/media/img/pmm3b.png differ diff --git a/media/img/procmm1.png b/media/img/procmm1.png new file mode 100644 index 0000000..cf37712 Binary files /dev/null and b/media/img/procmm1.png differ diff --git a/media/img/procmm2.png b/media/img/procmm2.png new file mode 100644 index 0000000..32e8592 Binary files /dev/null and b/media/img/procmm2.png differ diff --git a/media/img/procmm3.png b/media/img/procmm3.png new file mode 100644 index 0000000..7e555c3 Binary files /dev/null and b/media/img/procmm3.png differ diff --git a/media/img/procmm4.png b/media/img/procmm4.png new file mode 100644 index 0000000..c9251a0 Binary files /dev/null and b/media/img/procmm4.png differ diff --git a/media/img/provbrev.jpg b/media/img/provbrev.jpg new file mode 100644 index 0000000..4d41e5e Binary files /dev/null and b/media/img/provbrev.jpg differ diff --git a/media/img/thomas.png b/media/img/thomas.png new file mode 100644 index 0000000..2082447 Binary files /dev/null and b/media/img/thomas.png differ diff --git a/media/img/vmm1.png b/media/img/vmm1.png new file mode 100644 index 0000000..dbe63fa Binary files /dev/null and b/media/img/vmm1.png differ diff --git a/media/img/vmm1b.png b/media/img/vmm1b.png new file mode 100644 index 0000000..6a856e2 Binary files /dev/null and b/media/img/vmm1b.png differ diff --git a/media/img/vmm2.png b/media/img/vmm2.png new file mode 100644 index 0000000..b896c5e Binary files /dev/null and b/media/img/vmm2.png differ diff --git a/media/img/vmm2b.png b/media/img/vmm2b.png new file mode 100644 index 0000000..26ced3d Binary files /dev/null and b/media/img/vmm2b.png differ diff --git a/media/img/vmm3.png b/media/img/vmm3.png new file mode 100644 index 0000000..bfed4c3 Binary files /dev/null and b/media/img/vmm3.png differ diff --git a/media/img/vmm3b.png b/media/img/vmm3b.png new file mode 100644 index 0000000..3e859a2 Binary files /dev/null and b/media/img/vmm3b.png differ diff --git a/media/img/z80-tester-clab.png b/media/img/z80-tester-clab.png new file mode 100644 index 0000000..2b6b611 Binary files /dev/null and b/media/img/z80-tester-clab.png differ diff --git a/media/img/z80_pinout.png b/media/img/z80_pinout.png new file mode 100644 index 0000000..a21cf40 Binary files /dev/null and b/media/img/z80_pinout.png differ diff --git a/media/img/z80_pinout2.png b/media/img/z80_pinout2.png new file mode 100644 index 0000000..4fab9c8 Binary files /dev/null and b/media/img/z80_pinout2.png differ diff --git a/media/img/z80_running1.png b/media/img/z80_running1.png new file mode 100644 index 0000000..e7f9141 Binary files /dev/null and b/media/img/z80_running1.png differ diff --git a/media/img/z80_running2.png b/media/img/z80_running2.png new file mode 100644 index 0000000..6e17c10 Binary files /dev/null and b/media/img/z80_running2.png differ diff --git a/media/img/z80_running3.png b/media/img/z80_running3.png new file mode 100644 index 0000000..e7e4386 Binary files /dev/null and b/media/img/z80_running3.png differ diff --git a/media/img/z80_tester.png b/media/img/z80_tester.png new file mode 100644 index 0000000..dbdb028 Binary files /dev/null and b/media/img/z80_tester.png differ diff --git a/pages/2010-04-06-LaTeX-Letter_Template.md b/pages/2010-04-06-LaTeX-Letter_Template.md new file mode 100644 index 0000000..30b6683 --- /dev/null +++ b/pages/2010-04-06-LaTeX-Letter_Template.md @@ -0,0 +1,165 @@ +layout: post +title: "LaTeX Letter Template" +subtitle: "Simple and clean" +tags: [latex] + +I'm looking for a job for next year to get out of university for a while. + +That means I've been writing a lot of letters of introduction lately. To +streamline this, I created a custom LaTeX document class called +personal\_letter. + +The class looks as follows: + + + % + % personal_letter + % + % Created by Thomas Loven on 2010-02-24. Feel free to use. + % + + \ProvidesClass{personal_letter} + + % Based on article + \LoadClass[a4paper, oneside]{article} + + \usepackage{ifthen} + + % Define functions for user changeable variables + \makeatletter + + \newcommand{\adress}[1]{\def \@adress{#1}} + \newcommand{\telephone}[1]{\def \@telephone{#1}} + \newcommand{\email}[1]{\def \@email{#1}} + \newcommand{\name}[1]{\def \@name{#1}} + \newcommand{\place}[1]{\def \@place{#1}} + %\newcommand{\date}[1]{\def \@date{#1}} + \newcommand{\greeting}[1]{\def \@greeting{#1}} + \newcommand{\closing}[1]{\def \@closing{#1}} + \newcommand{\url}[1]{\def \@url{#1}} + + \adress{} + \telephone{} + \email{} + \name{} + \place{} + \date{} + \greeting{} + \closing{} + \url{} + + \makeatother + + % Include usefull packages + \usepackage[utf8]{inputenc} + \usepackage{fullpage} + \usepackage{fancyhdr} + \usepackage{setspace} + \usepackage[swedish]{babel} + \usepackage{longtable} + + % Make graphics work with pdf or dvi files + \usepackage{ifpdf} + \ifpdf + \usepackage[pdftex]{graphicx} + \DeclareGraphicsExtensions{.pdf, .jpg, .tif} + \else + \usepackage{graphicx} + \DeclareGraphicsExtensions{.eps, .jpg} + \fi + + + % Costruct heading + \makeatletter + \fancyfoot[LO, LE]{\@adress} + \fancyfoot[RO, RE]{ \ifthenelse{\equal{\@telephone}{}}{}{ \@telephone \\ \@email \\ \@url }} + \fancyfoot[C]{} + \setlength{\headheight}{0 cm} + \setlength{\headsep}{0 cm} + \renewcommand{\headrulewidth}{0pt} + \addtolength{\textheight}{0 cm} + \renewcommand{\footrulewidth}{0.5pt} + \pagestyle{fancy} + \makeatletter + + %Body of the letter + \makeatletter + \newenvironment{body}% { + \begin{quotation} + \begin{onehalfspace} + \setlength{\parskip}{1ex} + + \ifthenelse{\equal{\@place}{}}{}{ \begin{flushright} \@place \\ \@date \end{flushright} } + + \vspace{2ex} + \bf + \noindent + \@greeting + \rm + }% + { + \vspace{10pt} + \ifthenelse{\equal{\@closing}{}}{}{ \noindent \@closing \\ \noindent \@name } \end{onehalfspace} \end{quotation} + } + \makeatother + + \newcommand{\titel}[1]{ \begin{centering} {\Huge #1} \end{centering} } + + \newcommand{\rubrik}[1]{ \vspace{1.5em} + + {\large \bf #1} + + } +{: .prettyprint .lang-tex} + +Plain and simple. + +And a usage example: + + \documentclass{personal_letter} + + \name{Thomas Lovén} + \place{Göteborg} + \date{6 april 2010} + \adress{Thomas Lovén \\ Xxxxxxxxxxxxxxx XX \\ XXX XX Xxxxxx Xxxxxxxx} + \telephone{+XX XX XXX XX XX} + \email{thomasloven@gmail.com} + \url{thomasloven.wordpress.com} + + \begin{document} + + \greeting{Salvete!} + \closing{Di vos incolumes custodiant.} + + \begin{body} + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam + non arcu non massa accumsan tincidunt. Suspendisse non est quis + massa sollicitudin faucibus. Quisque gravida vulputate nisi pharetra + ultrices. Fusce tincidunt ante quis lacus adipiscing eget dictum + justo luctus. Vivamus nec tempus diam. Vivamus rhoncus varius arcu, + et vulputate purus aliquam eget. Cras eget suscipit lectus. Donec + nec nulla ac urna ultricies bibendum sed vitae nibh. Suspendisse + consectetur luctus quam eget vulputate. Pellentesque et nisl et quam + vestibulum auctor quis et metus. Sed cursus tellus at felis lobortis + ut tincidunt purus porttitor. + + Donec gravida metus eu dui rutrum nec bibendum libero molestie. + Aenean et odio massa. Donec pulvinar augue non tellus vulputate nec + congue justo accumsan. Nam pretium sagittis dictum. Sed semper auctor + neque in commodo. Mauris dignissim ante ac nibh pretium consequat. + Donec orci tortor, pharetra non congue vel, ultrices sit amet lacus. + Suspendisse a lacus nec ante venenatis bibendum vitae id dui. Nam + semper arcu facilisis nunc euismod volutpat. Donec accumsan velit nec + ante lacinia pulvinar. Phasellus ut varius enim. Pellentesque vel + augue odio. Suspendisse sed nisi vel magna euismod semper. Maecenas + erat neque, tristique id consequat id, mollis eu enim. Phasellus + laoreet pulvinar ante accumsan posuere. Proin viverra dui id ipsum + hendrerit non mollis mi rutrum. + + \end{body} + + \end{document} +{: .prettyprint .lang-tex} + +![Sample](/media/img/provbrev.jpg) diff --git a/pages/2012-05-29-Hoby-Kernel-Restart.md b/pages/2012-05-29-Hoby-Kernel-Restart.md new file mode 100644 index 0000000..4178c41 --- /dev/null +++ b/pages/2012-05-29-Hoby-Kernel-Restart.md @@ -0,0 +1,80 @@ +layout: post +title: "Restarting a hoby kernel" +subtitle: "Once more, from the top... " +tags: [osdev] + +Many years ago, I got interesting in trying out Linux. Having used Windows +since my parents started using Windows computers at work and declared our old +Macintoshes obsolete I realized it would mean quite a change and didn't really +want to go all in right away. Somehow I found out about VMWare Workstation - an +Intel processor emulator made for running virtual computers within Windows and +installed one of the first versions of Ubuntu in it. + +I played around with Ubuntu Linux for a while, but then I started thinking +about the computer emulator I was using and wondered whether I could make +a program myself that would boot in it. In other words, could I write a program +that ran by itself on a computer with no operating system? + +The answer turned out to be yes. With a lot of help and tutorials from what +later became [osdev.org](http://www.osdev.org) and many more that +I unfortunately can't remember or find anymore, I wrote a small binary +executable in Assembly that could run of the boot sector on a floppy disk. +I was amazed! Could it really be this simple? I immediately set out to write an +entire operating system. Nothing fancy; I just wanted to boot the computer and +get into a desktop environment with a text editor and a compiler so I could +keep adding to the system from within it. Shouldn't be too hard, should it? + +Almost ten years later, I think I got the routines for basic BIOS-assisted +screen printing down... + +There are several reasons why things are moving so slowly. First and foremost: +It wasn't that easy. Operating systems are advanced stuff, and combined with my +own lack of any formal education or experience in programming or computer +systems this means progress is slow. + +Next is a lack of time. Back when I found VMWare Workstation and started this +journey, I was on summer holiday from school and had all the time in the world. +Then school started again. Then came the Christmas holiday and I realized I had +forgotten everything. So I threw everything out and started again from scratch. +This time I got a bit further. Then school started again. + +And that's how it's been since then. School started, ended and begun again. +Then I did a year in the army. Then university (engineering physics). Then +I met a girl, got engaged, bought a house, worked for a year with project +management, went back to university... Still, every now and then I've restarted +development of my operating system dream. + +So, how will I ever get out of this reset loop? Well, I've got a plan. Most +important, I think, is to have realistic expectations. That shouldn't be as +much a problem as it used to be. As time has passed I have grown to understand +my limitations better than I did when I was 15. Also, my main goal of +programming now is recreation. A moment of peace by myself when I can +concentrate on a problem I appreciate. If I never get a stable virtual file +system going, that's ok. If I build a working tcp-ip stack and get a web server +running under my own operating system, that's ok too, but it's not my goal. +Still, this doesn't mean I want to keep rewriting the code for setting up the +Interupt Vector Table for the x-th time next time I have a week of university, +which brings me to the next part of the plan. + +Documentation. I'm going to restart my development efforts once again, but this +time I plan to be more careful about documentation. My thought is that if +I write down what I do and why, I won't have to do it again in six months but +can just read through my old notes. Who knows; this plan might just be crazy +enough to work. + +I've obviously tried this before. It worked somewhat but I made a big mistake. +I called my notes a "tutorial". I did that because I wished it to be +a tutorial, that beginners could learn from my years of mistakes. Some people +didn't like this and a few unnecesarily harsh comments got me of the osdev +scene for a while. Then university started again and I was back in the loop. + +This time I won't make that mistake. I still wish to make those notes public, +though, because I still think that I and possibly others may benefit from them. +I'll be clear though, that I am not a profesional programmer and have never +pretended or wanted to be one. I appreciate feedback in the case anyone reads +this and I can be reached through email or twitter (links below). Please try to +stay constructive, though. + +Anyway, this is already way more text than anyone would bother to read, so +I guess I'll just cut it off here and we'll see where this series of notes +finally takes us. diff --git a/pages/2012-06-13-Bochs.md b/pages/2012-06-13-Bochs.md new file mode 100644 index 0000000..cc91fac --- /dev/null +++ b/pages/2012-06-13-Bochs.md @@ -0,0 +1,42 @@ +layout: post +title: "Bochs" +subtitle: "In two versions" +tags: [osdev] + +For testing out my os during development, I usually use +[Bochs](http://bochs.sourceforge.net) + +I also usually compile Bochs into two versions. One that has the debugger +option enabled and one that runs entirely in a command line environment. + +Let's go! + + curl -L -O http://sourceforge.net/projects/bochs/files/bochs/2.5.1/bochs-2.5.1.tar.gz + tar -zxvf bochs-2.5.1.tar.gz + mkdir build-bochs + cd build-bochs + + ../bochs-2.5.1/configure --enable-smp --enable-cpu-level=6 --enable-all-optimizations --enable-pci --enable-vmx --enable-logging --enable-fpu --enable-sb16=dummy --enable-cdrom --disable-plugins --disable-docbook --with-term + make all + make install +{: .prettyprint .lan-sh} + +And that's the terminal version. ### Important note This configure line won't +actually work. I'll update with the new one as soon as I can. + +Now we move this to *bochs-term* and compile the version with the debugger. + + mv /usr/local/bin/bochs /usr/local/bin/bochs-term + + rm * + ../bochs-2.5.1/configure --enable-smp --enable-cpu-level=6 --enable-all-optimizations --enable-pci --enable-vmx --enable-logging --enable-fpu --enable-sb16=dummy --enable-cdrom --disable-plugins --disable-docbook --enable-debugger --enable-disasm --with-x11 + make all + make install +{: .prettyprint .lan-sh} + +Finally, copy the bochs bioses to a public place + + cp -r ../bochs-2.5.1/bios /usr/share/bochs +{: .prettyprint .lan-sh} + +And that's it. diff --git a/pages/2012-06-13-Cross-Compiler.md b/pages/2012-06-13-Cross-Compiler.md new file mode 100644 index 0000000..a6104d6 --- /dev/null +++ b/pages/2012-06-13-Cross-Compiler.md @@ -0,0 +1,75 @@ +layout: post +title: "Cross compiler" +subtitle: "Setting up under OSX Lion" +tags: [osdev] + +For simplicity, I chose to set up a so-called cross compiler for osdeving. In +OSX Lion, this is what I did. + +First of all, I installed Xcode from the Mac App store. Since version 4.3, +Xcode doesn't install any command line tools anymore, so this had to be done +manually: + +- Open Xcode +- Go the Preferences +- Choose Downloads +- Find Command Line Tools and click Install. + +This is better than some earlier versions, though, which use a buggy +c-compiler. An update was required on one of my computers. + +Compiling gcc also requires the mpfr package to be installed. This I did with +[Homebrew](http://mxcl.github.com/homebrew/). + + brew install mpfr +{: .prettyprint} + +I downloaded all the sources I needed from [gnu.org](http://gnu.org). + + curl -O http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.gz + curl -O http://ftp.gnu.org/gnu/gcc/gcc-4.6.3/gcc-core-4.6.3.tar.gz + + curl -O http://ftp.gnu.org/gnu/gmp/gmp-5.0.2.tar.gz + curl -O http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.gz + curl -O http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz +{: .prettyprint .lang-bash} + +Feel free to use later versions, but if you do, I cannot guarantee that the +code posted in my logs will work for you (it's very likely to work, but not +*guaranteed*). Gmp, mpfr and mpc are floating point libraries that are used by +gcc, so after extracting all archives, they are simply copied into the gcc +source + + mv gmp-5.0.2 gcc-4.6.3/gmp + mv mpfr-3.1.0 gcc-4.6.3/mpfr + mv mpc-0.9 gcc-4.6.3/mpc +{: .prettyprint .lang-sh} + +In order not to mess up the source, binutils and gcc were built out of tree. + + mkdir build-binutils + cd build-binutils + + export PREFIX=/usr/local/cross + export TARGET=i386-elf + ../binutils-2.22/configure --target=$TARGET --prefix=$PREFIX --disable-nls + make all + make install +{: .prettyprint .lang-bash} + +And the same for gcc, using the new binutils + + cd .. + mkdir build-gcc + cd build-gcc + export PATH=$PATH:$PREFIX/bin + ../gcc-4.6.3/configure --target=$TARGET --prefix=$PREFIX --disable-nls --enable-languages=c --without-headers + make all-gcc + make install-gcc +{: .prettyprint .lang-bash} + +It's really important to run _make all-gcc_ and _make install-gcc_ and __not__ +_make all_ and _make install_ here. It probably works anyway - if you ever +manage to get it to actually compile... + +And that's it! diff --git a/pages/2012-06-14-Setting-Up.md b/pages/2012-06-14-Setting-Up.md new file mode 100644 index 0000000..95645f3 --- /dev/null +++ b/pages/2012-06-14-Setting-Up.md @@ -0,0 +1,120 @@ +layout: post +title: "Setting up" +subtitle: "Preparing the environment for OsDev" +tags: [osdev] + +So it's time to start. + +I have previously set up a cross compiler environment on my Mac mini, and am +now developing on it connected via ssh. + +First point today was making a directory structure and creating a [git +repository](http://github.com/thomasloven/os5). The directory structure starts +off as follows + + os5/ + |-- build/ + |-- include/ + `-- kernel/ + `-- include/ + +A difference from previous times is that the _include_ directory is outside the +kernel directory. That's because last time I realized I had a lot of include +files that were used both in the kernel and many other parts. I'll probably +move it into some library directory later. Know what? Let's move it into +a library directory right now... + + os5/ + |-- build/ + |-- kernel/ + | `-- include/ + `-- library/ + `-- include/ + +The build/ directory contains some scripts needed for building and testing the +os as well as a floppy image preinstalled with the GRUB bootloader. + +Next, basic Makefiles were added to os5/ and kernel/. The standard procedure of +the main makefile is to run the makefile in kernel/, copy the kernel image into +the floppy and then run bochs-term. + + + BUILDDIR := $(PWD) + + PATH := /usr/local/cross/bin:$(PATH) + DIRS := kernel + TARGET := i386-elf + + AS := nasm + CC := i386-elf-gcc + LD := i386-elf-ld + + ASFLAGS := -f elf + CCFLAGS := -nostdlib -nostdinc -fno-builtin -fno-exceptions -m32 + CCFLAGS += -fomit-frame-pointer -fno-asynchronous-unwind-tables + CCFLAGS += -fno-unwind-tables -I$(BUILDDIR)/library/include + LDFLAGS := -T $(BUILDDIR)/library/include/Link.ld + + export BUILDDIR AS CC LD ASFLAGS CCFLAGS LDFLAGS + + .SILENT: + + .PHONY: $(DIRS) floppy emul + .default: all floppy emul + + l: all floppy emul + + all: $(DIRS) + + $(DIRS): force + @echo " MAKE " $@ + @cd $@; $(MAKE) $(MFLAGS) + + clean: + @for DIR in $(DIRS); do echo " CLEAN " $$DIR; cd $(BUILDDIR)/$$DIR; make clean; done; + + floppy: force + @echo " UPDATING IMAGE" + @build/update_image.sh + + emul: force + @echo " STARTING EMULATOR" + @build/emul.sh + + force: + true +{: .prettyprint} + +The makefile in the kernel/ directory is pretty much straight forward. + + + TARGET := kernel + SUBDIR := kernel + + SOURCES := kinit.o boot.o + SOURCES += $(patsubst %.s,%.o,$(shell find . -name "*.s" | grep -v boot.s)) + SOURCES += $(patsubst %.c,%.0,$(shell find . -name "*.c" | grep -v kinit.c)) + + CCFLAGS += -Iinclude + LDFLAGS := -T $(BUILDDIR)/$(SUBDIR)/include/Link.ld + + .SUFFICES: .o .s .c + + all: $(TARGET) + + $(TARGET): $(SOURCES) + @echo " ln " $(TARGET) + @$(LD) $(LDFLAGS) -o $(TARGET) $(SOURCES) + + .c.o: + @echo " gcc " $< + @$(CC) $(CFLAGS) -c $< -o $@ + + .s.o: + @echo " nasm " $< + @$(AS) $(ASFLAGS) $< -o $@ + + clean: + -@rm $(SOURCES) 2>/dev/null + -@rm $(TARGET) 2>/dev/null +{: .prettyprint} diff --git a/pages/2012-06-15-Booting-Procedure.md b/pages/2012-06-15-Booting-Procedure.md new file mode 100644 index 0000000..62c5989 --- /dev/null +++ b/pages/2012-06-15-Booting-Procedure.md @@ -0,0 +1,237 @@ +layout: post +title: "Booting Procedure" +subtitle: "Starting up the x86" +tags: [osdev] + +[Previous part](/blog/2012/06/Setting-Up/) + +To boot up the operating system kernel, I use +[GRUB](http://www.gnu.org/software/grub/). It takes care of things like getting +into protected mode, checking the memory and activating processor flags. It can +also load any file you ask it to into memory - which is good, because we won't +see a disk driver here anytime soon - before starting the loaded kernel. + +I want to write a kernel that resides in a high part of memory (0xC0000000 and +above) because I think it looks tidy. In order to load a high part kernel +without paging, I use the trick described at +[osdev.org](http://wiki.osdev.org/Higher_Half_bare_bones). This requires +a special Linker file for the kernel. + +*kernel/include/Link.ld* + + ENTRY(start) + + SECTIONS { + . = 0xC0100000; + .text : AT(ADDR(.text) - 0xC0000000) + { + code = .; _code = .; __code = .; + *(.text) + *(.eh_frame) + . = ALIGN(4096); + } + .data : AT(ADDR(.data) - 0xC0000000) + { + data = .; _data = .; __data = .; + *(.data) + *(.rodata) + . = ALIGN(4096); + } + .bss : AT(ADDR(.bss) - 0xC0000000) + { + bss = .; _bss = .; __bss = .; + *(.bss) + . = ALIGN(4096); + } + + _end = .; + } +{: .prettyprint .linenums} + +GRUB drops us off at the kernel entry point - *start* as defined in the +linkfile - without paging and with an unknown GDT. So setting that up will be +the first order of business. This is done in the assembly bootstrap. + +*kernel/boot.s* + + ; Kernel start point + [global start] + start: + cli + + ; Load page directory and enable paging + mov ecx, BootPageDirectory - KERNEL_OFFSET + mov cr3, ecx + mov ecx, cr0 + or ecx, 0x80000000 + mov cr0, ecx + lea ecx, [.higherHalf] + jmp ecx + + .higherHalf: + ; Load GDT + mov ecx, gdt_ptr + lgdt [ecx] + + SetSegments 0x10, cx + jmp 0x8:.gdtLoaded + + .gdtLoaded: +{: .prettyprint .lang-nasm .linenums:61} + +Here's another new thing for me. Macros. Can't believe I could do without them +before. *SetSegments* is a macro that in this case loads 0x10 into ecx and then +loads cx into each segment selector register. It is defined in an included file +which also contains some constants. + +*kernel/include/asm_macros.inc* + + ; GRUB multiboot headers + MBOOT_PAGE_ALIGNED_FLAG equ 1<<0 + MBOOT_MEMORY_INFO_FLAG equ 1<<1 + MBOOT_HEADER_MAGIC equ 0x1BADB002 + + MBOOT_HEADER_FLAGS equ MBOOT_PAGE_ALIGNED_FLAG | MBOOT_MEMORY_INFO_FLAG + MBOOT_HEADER_CHECKSUM equ -(MBOOT_HEADER_FLAGS + MBOOT_HEADER_MAGIC) + + + KERNEL_OFFSET equ 0xC0000000 + BOOT_STACK_SIZE equ 0x1FFF + + ; SetSegments 0x10 ax loads all segment selectors with 0x10 using eax + %macro SetSegments 2 + mov e%2, %1 + mov ds, %2 + mov es, %2 + mov fs, %2 + mov gs, %2 + mov ss, %2 + %endmacro +{: .prettyprint .lang-nasm .linenums:2} + +There are also references to some data structures, i.e. *BootPageDirectory* and +*gdt_ptr*. Those are hardcoded in the bootstrap file. + +*kernel/boot.s* + + + %include "include/asm_macros.inc" + + [bits 32] + + section .bss + + align 0x8 + + ; Stack for booting + [global BootStack] + BootStackTop: + resb BOOT_STACK_SIZE + BootStack: + + section .data + + align 0x1000 + + ; Page directory for booting up. + ; First four megabytes are identity mapped as well as + ; mapped to 0xC0000000 + [global BootPageDirectory] + BootPageDirectory: + dd (BootPageTable - KERNEL_OFFSET) + 0x3 + times ((KERNEL_OFFSET >> 22) - 1) dd 0x0 + dd (BootPageTable - KERNEL_OFFSET) + 0x3 + times (1022 - (KERNEL_OFFSET >> 22)) dd 0x0 + dd (BootPageDirectory - KERNEL_OFFSET) + 0x3 + + BootPageTable: + %assign i 0 + %rep 1024 + dd (i << 12) | 0x3 + %assign i i+1 + %endrep + + ; Hard-coded GDT. + ; GDT pointer is wrapped into the first entry + [global gdt] + gdt_ptr: + gdt: + dw 0x002F + dd gdt + dw 0x0000 + dd 0x0000FFFF, 0x00CF9A00 + dd 0x0000FFFF, 0x00CF9200 + dd 0x0000FFFF, 0x00CFFA00 + dd 0x0000FFFF, 0x00CFF200 + + section .text + + align 4 + + ; GRUB Multiboot data + MultiBootHeader: + dd MBOOT_HEADER_MAGIC + dd MBOOT_HEADER_FLAGS + dd MBOOT_HEADER_CHECKSUM +{: .prettyprint .lang-nasm .linenums:2} + +Well. This is first of all some area saved for a stack. Then there's the page +directory which has the same page table at virtual memory 0x00000000 and +0xC0000000. The rest of the page directory is cleared. The page table maps the +first four megabytes of physical memory. The hard-coded GDT has five entries. +The first one is always empty, so this space is used to store the gdt pointer. +Then there's kernel code, kernel data, user code and user data. Each segment +has base 0 and size 4 gb, so they all contain all of the virtual memory space. +Finally, there's the multiboot header for GRUB. This has to be at the very +start of the .data section, so it is also loaded first by the makefile. + +The last thing we need before we can go into a higher level language is +a stack, but let's take this opportunity to also remove the identity mapping +from the page directory. + +*kernel/boot.s* + + .gdtLoaded: + ; Clear the identity mapping from the page directory + mov edx, BootPageDirectory + xor ecx, ecx + mov [edx], ecx + invlpg[0] + + ; Load a stack for booting + mov esp, BootStack + mov ebp, BootStack + + ; eax contains the magic number from GRUB 0x2BADB002 + push eax + + ; ebx contains the address of the Multiboot information structure + add ebx, KERNEL_OFFSET + push ebx + + ; Call the c function for setting up + [extern kinit] + call kinit + jmp $ +{: .prettyprint .lang-nasm .linenums:83} + +The final thing we do before jumping into the c kernel stub is push the values +of eax and ebx which contains the multiboot magic number and information +structure location respectively. + +The only thing that's left now in order to get this to run is the c stub. + +*kernel/kinit.c* + + + void kinit() + { + + } +{: .prettyprint .linenums:2} + +Compiling and running this through bochs, we are presented with a black and +white screen completely void of error messages. Perfect! + +The code up to this point can be found in my github repository. +Commit [66dd86fc12](https://github.com/thomasloven/os5/tree/66dd86fc128e2714e4c93c73d8a0bf8542e10573) diff --git a/pages/2012-06-18-C-Headers-In-Asm.md b/pages/2012-06-18-C-Headers-In-Asm.md new file mode 100644 index 0000000..b6d1088 --- /dev/null +++ b/pages/2012-06-18-C-Headers-In-Asm.md @@ -0,0 +1,63 @@ +layout: post +title: "C headers in Asm" +subtitle: "Cleaning up the build chain" +tags: [osdev] + +Something that always annoyed me is how hard it is to synchronize constants +between assembly and c code. In assembler, you define a constant value as + + EXACT_PI equ 3 +{: .prettyprint .lang-nasm} + +and in c + + #define EXACT_PI 3 +{: .prettyprint .lang-c} +As is usually the case with things that annoy me, there is of course a solution +to this, as I found out today. The solution is the c preprocessor. + +Normally, when you run a c compiler, it makes multiple passes over your source +file. The first one or two times, it runs a pre-processor. The preprocessor +checks for things like _#include_ and _#define_ and replaces macros. The next +pass actually compiles the code. Then the compiler invokes a linker and so on. + +What I found out today is that you can run only the preprocessor and it will +replace all the preprocessor code and ignore the rest. In other words, you can +use c preprocessor macros in assembler. Awesome! + +So, how is this done? +Well, here's a minimal (non-working) example: + +_myAsmFile.asm_ + + #include + + mov eax, EXACT_PI +{: .prettyprint .lang-nasm} + +_include/header.h_ + + #pragma once + + #define EXACT_PI 3 + + #ifndef __ASSEMBLER__ + // This is not evaluated if header.h is included from an assembly file. + #endif +{: .prettyprint .lang-c} + +This is compiled through: + + cpp -I include -x assembler-with-cpp myAsmFile.asm -o myAsmFile.s + nasm myAsmFile.s +{: .prettyprint} + +The _-x_-flag tells the preprocessor what type of file the following input +files are. _assembler-with-cpp_ means _cpp_ will ignore everything but the +preprocessor commands. + +An alternative to _cpp_ is _gcc -E_. Actually, this is often exactly the same +thing... + + +This is implemented in git commit [742f2348ec](https://github.com/thomasloven/os5/tree/742f2348ecc58eaa8239b06c666bd8c3c539c019). diff --git a/pages/2012-06-20-Kernel-Debug-Functions.md b/pages/2012-06-20-Kernel-Debug-Functions.md new file mode 100644 index 0000000..9b18698 --- /dev/null +++ b/pages/2012-06-20-Kernel-Debug-Functions.md @@ -0,0 +1,32 @@ +layout: post +title: "Kernel debug functions" +subtitle: "Can't live without them" +tags: [osdev] + +I read through the comments on my old OsDev series the other day and got stuck +on one of them. + +> "\[...\] I noticed that you handle printing in the kernel, of all places. A kernel isn't supposed to do video output.\[...\]" + +I totally and whole-heartedly agree with this, and I really really wish I could +code so well I didn't feel a need for outputting a single debug message before +I had finished the booting procedure, physical and virtual memory management, +interrupts, faults, thread and process handling, scheduling, system calls, +message passing, virtual file system, a device driver framework, file writing +library functions and a terminal driver. Alas, I am not that good, and +therefore I find it helpful to print a message to the screen every now and +then. Wheter the kernel's supposed to do video ouptut depends on the kind of +kernel anyway. + +But enough with this immature passive aggressiveness. Let's do some kernel +handled printing! + +Screen printing is usually quite simple. Most personal x86-based computers can +do it by simply writing the text to a certain area in memory. I'm not going to +waste very much time on it but pretty much just copy the code from an earlier +project and move on to more interesting things. + +I also added some useful library functions and macros like min(a,b), max(a,b) +and swap(a,b) and a few parts of the c standard library. It can all be found +in Git commit +[16fdacb89](https://github.com/thomasloven/os5/tree/164fdacb896b3427633433f97bbd12d779a3d1f3). diff --git a/pages/2012-06-26-Memory-Page-Stack.md b/pages/2012-06-26-Memory-Page-Stack.md new file mode 100644 index 0000000..7115d7b --- /dev/null +++ b/pages/2012-06-26-Memory-Page-Stack.md @@ -0,0 +1,72 @@ +layout: post +title: "Memory Page Stack" +subtitle: "Basic memory management 1/3" +tags: [osdev] + +###Memory management +One of the most important tasks that the operating system has it to distribute +the resources of the computer. One of those are the memory. + +I like to divide the memory management of the kernel into three main parts: + +- Physical memory management - Keeps track of the pages of actual memory +- Virtual memory management - Keeps track of the virtual address spaces +- Heap management - Fine grained control of memory for kernel use only + +This post is about a part of the physical memory manager. This simple version +keeps track of free pages of physical memory. When asked for a page, it hands +it out and forgets about it until it is handed back. + +###Memory page stack +Pointers to the unused memory pages are stored on a stack and just popped off +when needed. + +The stack does of course take up an amount of memory, but through an +interesting trick, this doesn't matter. You see, the memory where the stack is +stored is made up of memory pages and if enough pages are handed out to clear +an entire page in the stack, that page is next to be handed out. + +Allow me to illustrate: +Imagine a computer with really really small memory pages - so small in fact +that each page only has room for four pointers. The figure below shows eight +physical pages of a such computer. The two leftmost pages are used by the +physical memory manager for the free page stack. The stack contains pointers to +the next five pages, who are free. The rightmost page is handed out. +![PMM1](/media/img/pmm1b.png){: .noborder .center} + +When the _pmm_ receives a request for a memory page it will pop the topmost +entry from the stack and returns, in this case, the second rightmost page to +the caller. ![PMM2](/media/img/pmm2b.png){: .noborder .center} + +The next time the pmm receives a request for a memory page it will notice that +an entire page of the stack is empty and just being wasted, so it will shrink +its stack by one page-size and return the address of the page that previously +made up the top of the stack. ![PMM3](/media/img/pmm3b.png){: .noborder .center} + +Likewise, if the stack is full of pointers when a used page is handed back, +that page is used to increase the stack space. Through the use of virtual +memory and paging, the stack doesn't have to be contiguous in physical memory, +so any page can make up a part of the stack. + +###Filling the stack +When the computer is booted up, the bootloader is asked to give the kernel +a map of the available memory. This is used to initialize the stack. The kernel +simply goes through the memory map returns each unused page it finds to the +pmm. + +###Improvements +There's a lot more that can be done by the pmm. One major feature that will be +added at a later state is keeping track of how many users each page has. This +is useful if we wish to introduce shared memory or copy-on-write during forks. +Otherwise we risk that a page is returned and handed out again while someone +still think they have exclusive access to it. Not a good thing. + +###Git +This page stack has been implemented in Git commit +[caed8cb8a0](https://github.com/thomasloven/os5/tree/caed8cb8a0e39a1e7d7d2594b86f25b887afab81). +Also implemented in the same commit is a virtual memory manager with recursive +page directories described in [this +post](/blog/2012/06/Recursive-Page-Directory). + +__Note__: There's a bug in that commit. In short, when filling the stack, the pmm looks for memory map entries between `assert_higher(mmap_start)` and `mmap_start + mmap_size`. Where the `assert_higher` macro pretty much just adds `0xC0000000` to the adress. Well... I'm sure you see what the problem is. +The bug has been rectified in Git commit [ebaae73](https://github.com/thomasloven/os5/tree/ebaae7383bbadbfc3de62b1b14aa9a450d8e695c). diff --git a/pages/2012-06-26-Recursive-Page-Directory.md b/pages/2012-06-26-Recursive-Page-Directory.md new file mode 100644 index 0000000..42da4cd --- /dev/null +++ b/pages/2012-06-26-Recursive-Page-Directory.md @@ -0,0 +1,109 @@ +layout: post +title: "Recursive Page Directory" +subtitle: "Basic memory management 2/3" +tags: [osdev] + +###Memory management part 2 +As discussed in [Memory Page Stack](/blog/2012/06/Memory-Page-Stack) one can +divide memory management into three parts. + +This post regards the second part, the Virtual Memory Manager (VMM). + +###Paging +In the x86 architecture, one normally uses a two-step paging algorithm. + +In the [previous post](/blog/2012/06/Memory-Page-Stack) we imagined a computer +with really really small memory pages. Now imagine that this computer has an +even equally small virtual memory space - 16 pages in total. Those 16 pages are +divided into four groups and this is our key to addressing them. + +![VMM1](/media/img/vmm1b.png){: .center .noborder} + +Above, we see the address space of our imagined computer illustrated as 16 blue +squares. Let's say the processor wishes to access the sixth page and that +paging is enabled. The sixth page belongs to the second group of pages and is +the second page in that group. + +Now the Memory Management Unit (MMU) of the processor kicks in and takes a look +in a certain processor register. This register contains the (physical) address +of the Page Directory (step I). Since we want the second group, it reads the +second entry from the page directory and this gives the physical address of +a page table (step II). We want the second page in that group, so the MMU reads +the second entry in the page table and this gives the physical address of the +memory page we want (step III). + +What makes paging so great is that the whole process is completely transparent +to the processor. The user will never know when a memory read or write +operation crosses a page boundary, and by changing the entries in the page +directory and tables you can get a contiguous memory area anywhere in the +virtual address space without having to worry about fragmentation of the +physical memory. + +###Recursive page directory +Paging lets you easily decide what parts of memory the processor has access to +and it can be dynamically changed by changing the contents of the page +directory and page tables. Of course, that requires you to keep track of where +those are, but a neat little trick makes that really easy. + +The trick consists of setting the last entry in the page directory to point to +the page directory itself. + +Let's say we did this, and that the processor wishes to access the 14th page in +virtual memory - that is the second page in the fourth group. The MMU starts by +looking up the fourth group in the page directory. It finds the address of the +page directory and assumes this is the page table for the group. It caries on, +looking up the second entry in this 'page table' and gets the address of the +page it wants. This happens to be the address of the page table for the second +group. ![VMM2](/media/img/vmm2b.png){: .center .noborder} + +In other words, you can access any page table through a fixed address in +memory. But wait, it gets even better. + +Let's look at what happens if we try to access the very last page in the +virtual memory. The MMU will look up the last entry in the page directory and +get the address of the page directory. It will then look up the last entry in +the page directory and get the address of the page directory (that's not a typo +- I meant to write the same thing twice). This lets you access the page +directory too through a fixed memory address. ![VMM3](/media/img/vmm3b.png){: .center .noborder} + +###Some considerations +An important question to put at this point is whether a recursive page +directory is really a good idea. + +In our imaginary computer with its really small address space, we notice that +the page table and directories now reserve a quarter of the entire available +virtual memory - which is of course incredibly wasteful. On a computer with +a 32 bit address bus the reserved area would be 1/1024 th of the available +address space, though, which is more reasonable. Then again, if your computer +has 4 gigabytes of physical RAM, this would mean there is four megabytes of it +that can't be used. Then again again, if you have easy access to your page +tables - such as through a recursive page directory - you can just page in +those 4 megabytes as needed. + +There are other simple ways of accessing the page directory and tables. For +example, if you just keep track of the page directory and one page table it's +a simple job to page in another table anywhere and read it. + +The recursive page directory divides the OsDev community. I think it's a nice +tool, others don't. + +###The addresses +Finally, if a recursive page directory is used on an x86, the following can be +used to access the page directories and tables: + + uint32_t *page_dir = 0xFFFFF000; + uint32_t *page_tables = 0xFFC00000; + + //addr = virtual address + //phys = physical address (page alligned) + //flags = access flags + + page_dir[addr >> 22] = &page_tables[addr >> 12] | flags; + page_tables[addr >> 12] = phys | flags; +{:.prettyprint} + +###Git +A recursive page directory has been implemented in Git commit +[caed8cb8a0](https://github.com/thomasloven/os5/tree/caed8cb8a0e39a1e7d7d2594b86f25b887afab81). +Also implemented in the same commit is a physical memory manager with a free +page stack described in [this post](/blog/2012/06/Memory-Page-Stack) diff --git a/pages/2012-07-02-Memory-Heap.md b/pages/2012-07-02-Memory-Heap.md new file mode 100644 index 0000000..6257701 --- /dev/null +++ b/pages/2012-07-02-Memory-Heap.md @@ -0,0 +1,110 @@ +layout: post +title: "Memory Heap" +subtitle: "Basic memory management 3/3" +tags: [osdev] + +###Memory management part 3 +I have previously ([Memory Page Stack](/blog/2012/06/Memory-Page-Stack), +[Recursive Page Directory](/blog/2012/06/Recursive-Page-Directory)) described +how I like to divide the memory management of a kernel into three parts. This +post regards the third part, which I like to call the heap. + +###Memory Management +In fact, a memory heap is but one way of handling memory. I believe it's the +kind that is easiest to implement and understand (with one exception) but it is +a bit slow. + +The main task of a memory manager is to reserve and hand out areas in memory +when asked. For example, a program may run _malloc(size)_ and get a pointer to +a memory area of the asked size. It can then do whatever it wants with this +memory area and can be sure that it will not be handed out again by _malloc_ +before it has been returned by _free_. + +Now, let's look at a few ways to do this. + +###Linear allocation +The simplest possible memory manager just hands out a new address each time +_malloc_ is called and doesn't care when memory is freed. + + uint32_t memory_pointer = HEAP_START; + + void *malloc(uint32_t size); + { + memory_pointer = memory_pointer + size; + return memory_pointer - size; + } + + void free(void *mem) + { + ; + } +{: .prettyprint} + +###Heap +The next method - which I prefer - is a memory heap. + +The heap consists of a list of free memory areas. In the simplest possible +variety, it would look something like this: + + struct area_header + { + uint32_t size; + struct free_area *next; + }; + + void *malloc(uint32_t size) + { + struct area_header *area = heap_list_head; + while(area) + { + if(area->size >= size) + { + remove_from_heap_list(area); + return get_memory_area(area); + } + area = area->next; + } + panic("Out of memory!"); + } + + void free(void *mem) + { + struct area_header area = get_area_header(mem); + insert_into_heap_list(area); + } +{: .prettyprint} + +Here it is assumed that the free memory is already divided into smaller areas +that each start with an *area_header* structure as in the figure below. If the +memory area is allocated, the caller of _malloc_ gets a pointer to the end of +the area header. The area header thus remains untouched by the program until +the memory is freed again. + +The memory could then look something like below. + +Blue areas in the figure are free and red ones are allocated. The header of +each free memory area has a pointer to the next free area. + +###Improvements +Some improvements can be made to this simple scheme. First, if no free area is +big enough, the heap can be increased by adding a new area with the right size +to the end. Alternatively, two free areas that are right next to each other + +can be joined together to form a bigger one. + +Also, it would be a good idea if an area is bigger than necessary to split it. +Finally, it's a lot easier to keep track of everything if the memory areas are +doubly linked and if allocated areas are not removed from the list but just +marked as used. + +###Git +With those improvements the scheme is similar to what I've implemented in Git +commit +[8db335ce3b](https://github.com/thomasloven/os5/tree/8db335ce3bed30c8e75275c2fc96a2b697106023). + +###Further improvements +Some more improvements can be made to the heap in order to increase +performance. The most common ones use different ways to search for free areas +of the correct size. For example, the free areas could be stored in an ordered +list starting with the smallest, or they could be stored in several lists +depending on their size. diff --git a/pages/2012-07-03-Vim-Macros.md b/pages/2012-07-03-Vim-Macros.md new file mode 100644 index 0000000..c81b2ce --- /dev/null +++ b/pages/2012-07-03-Vim-Macros.md @@ -0,0 +1,104 @@ +layout: post +title: "Vim Macros" +subtitle: "and interrupt handling" +tags: [osdev] + +###The problem +Today I was writing some code for handling interrupts. +At one point I needed the following piece of code + + extern void isr0(void), isr1(void), isr2(void), isr3(void), isr4(void), isr5(void), isr6(void), isr7(void), isr8(void), isr9(void), isr10(void), isr11(void), isr12(void), isr13(void), isr14(void), isr15(void), isr16(void), isr17(void), isr18(void), isr19(void), isr20(void), isr21(void), isr22(void), isr23(void), isr24(void), isr25(void), isr26(void), isr27(void), isr28(void), isr29(void), isr30(void), isr31(void), isr32(void), isr33(void), isr34(void), isr35(void), isr36(void), isr37(void), isr38(void), isr39(void), isr40(void), isr41(void), isr42(void), isr43(void), isr44(void), isr45(void), isr46(void), isr47(void); +{: .prettyprint} + +###The solution +Vim macros. + +I've been using this site and my rewrite of my operating system as an excuse to +learn vim. And today it payed off. To write the above piece of code I used the +key presses + + iisr0(void),0qayyp3la0q46@a47k48J$r;Iextern void + +Couldn't be easier! + +OK, so maybe it could... Let's break it down. + +Let's start with + + iisr0(void), + +_i_ puts vim in Insert mode. There we write _isr0(void),_ and finally leave +Insert mode with the escape key. + +Next is _0_ to bring the pointer to the beginning of the line. Then comes the +macro. + + qayyp3la0q + +_qa_ starts recording a macro into register a. + +_yyp_ yanks the current line and pastes it below. + +_3l_ skips over the i, s and r. + +Ctrl+a increases the number under the pointer by one. + +Finally _0_ goes back to the beginning of the line and _q_ stops the macro +recording. + +The next part: + + 46@a47k48J + +runs the macro 46 times, steps up 47 times and joins the current line with the +next 48 times. We now have + + isr0(void), isr1(void), isr2(void), isr3(void), isr4(void), isr5(void), isr6(void), isr7(void), isr8(void), isr9(void), isr10(void), isr11(void), isr12(void), isr13(void), isr14(void), isr15(void), isr16(void), isr17(void), isr18(void), isr19(void), isr20(void), isr21(void), isr22(void), isr23(void), isr24(void), isr25(void), isr26(void), isr27(void), isr28(void), isr29(void), isr30(void), isr31(void), isr32(void), isr33(void), isr34(void), isr35(void), isr36(void), isr37(void), isr38(void), isr39(void), isr40(void), isr41(void), isr42(void), isr43(void), isr44(void), isr45(void), isr46(void), +{: .prettyprint} + +and all we need to do now is replace the last comma with a semicolon using +_$r;_ and insert _extern void_ at the beginning of the line using _I_. + +###Another example of macros + +Starting with + + INTNOERR 0 +{: .prettyprint} + +I used + + qayypcwINTNOERR$a0q + qsyypcwINTERR$a0q + dd6@a@s@a5@s33@a + +and ended up with + + INTNOERR 0 + INTNOERR 1 + INTNOERR 2 + INTNOERR 3 + INTNOERR 4 + INTNOERR 5 + INTNOERR 6 + INTNOERR 7 + INTERR 8 + INTNOERR 9 + INTERR 10 + INTERR 11 + INTERR 12 + INTERR 13 + INTERR 14 + INTNOERR 15 + ... + INTNOERR 45 + INTNOERR 46 +{: .prettyprint} + +I love vim! + +###Application +So where did I use this? I've been writing some code for handling interrupts in +the os. You can find it in Git commit +[26dd8e4c75](https://github.com/thomasloven/os5/tree/26dd8e4c7507b66e4f94bf2c4e980265c6f0a20b). + diff --git a/pages/2012-07-12-IPhoto-On-Older-Idevices.md b/pages/2012-07-12-IPhoto-On-Older-Idevices.md new file mode 100644 index 0000000..4594fb4 --- /dev/null +++ b/pages/2012-07-12-IPhoto-On-Older-Idevices.md @@ -0,0 +1,80 @@ +layout: post +title: "iPhoto on Older iDevices" +subtitle: "Front-Facing camera? Pfft!" + +###iPhoto for iOS +In the shadow of the new iPad, Apple finally released a version of iPhoto for +iOS. The problem is it's only for iPhone4, iPad2 and later. I own an iPhone3GS +and a first generation iPad, and when I try to install it on them, they tell me +that it requires a front-facing camera. + +The front-facing camera requirement is of course absolute BS. The real +restriction is the RAM of the device. iPhone 4 and iPad2 has 512 MB of RAM, +twice as much as the 3GS and the original iPad. I assume that the camera +restriction is just something that was in the app store already, and that's why +Apple used it. + +###Common solution +It didn't take long for someone to find out that the camera restriction could +be circumvented if you buy the app in iTunes on your computer and then install +it using Apples own _iPhone Configuration Utility_. This does work, and iPhoto +runs great and surprisingly smoothly on both the original iPad and the 3GS +(though with occasional crashes due to lack of memory). + +The problems turn up when you try to sync with iTunes. A dialog box will pop up +asking you if you want to authorize your device with iTunes (or something to +the effect). Selecting No will remove iPhoto and all your work. Some people got +it to work when selecting Yes, but I never did. Instead syncing just stops. + +###My solution (requires jailbreak) +The key to my solution is the error message +>This app requires a front facing camera. + +To find out whether the device has a front facing camera or not it looks into +the property list of _Springboard_-the main interface of iOS. This is located +at + + /System/Library/CoreServices/Springboard.app/ + +and is called either N??AP.plist or K??AP.plist on an iPhone or an iPad +respectively where ?? is a number that seems to vary with your model. In there +it looks for a property called _front-facing-camera_ and if it exists and is +set to true, it decides that your device has a front facing camera. + +There are no further checks, and iPhoto doesn't use the camera at all, so all +you need to do in order to install it is add this value to your property list. + +I've had no problems synchronizing to iTunes after using this method. iPhoto +does, however, crash at some occasions. The crashes are few and far between, +though. + +###A problem + +I have found one problem with this method; the iphone 3GS thinks it has a front +facing camera. That means there's a button in the camera app that lets you +switch between the front and back camera. Tapping it will make the camera +screen freeze. The remedy for this is to toggle video mode, and then you can +switch back to the back camera. + +###How to do it + +- Jailbreak +- Install iFile from Cydia +- in iFile, navigate to _/System/Library/CoreServices/SpringBoard.app/_ +- Find your property list (N??AP.plist or K??AP.plist) +- Open it with the Property List Viewer +- Tap Capabilities +- Tap the + in the bottom right corner +- type _front-facing-camera_ +- Select Type:Boolean +- Tap Create +- Find your new property and activate it +- tap Done +- Restart springboard or your device + +You should now be able to install iPhoto through the app store or iTunes. + +###Bonus +While you're in there, adding the property _screen-mirroring_ and enabling it +will let you use official 20-pin-to-vga adaptors... + diff --git a/pages/2012-07-30-Privilege-Levels.md b/pages/2012-07-30-Privilege-Levels.md new file mode 100644 index 0000000..f8ca3ea --- /dev/null +++ b/pages/2012-07-30-Privilege-Levels.md @@ -0,0 +1,158 @@ +layout: post +title: "Privilege Levels" +subtitle: "Lots of abbreviations ending in PL" +tags: [osdev] + +###Processor privilege level in Segmentation + +The Intel x86 processor architecture has a number of features implemented to +protect the system from malicious code. One of those features is the +__Privilege Levels__. + +The privilege levels are a remnant of the times when memory segmentation was +popular. With segmentation, the physical memory is divided into segments that +work as a kind of translation table. In Protected mode, if you call an address +like + + jmp CS:AX +{: .prettyprint .lang-nasm} + +the processor looks into the currently loaded __Local__ or __Global Descriptor +Table__ ( __LDT__/ __GDT__) for the entry pointed to by _CS_. This enty (or +__Segment Descriptor__) describes the beginning of a segment which is combined +with the offset in _AX_ to get the physical address; + + physical_address = segment_descriptor_from_index(CS).base + AX; +{: .prettyprint} + +The segment descriptor also has a limit, which in our example is the maximum +value _AX_ is allowed to take. If it's higher, you get a __Segmentation Fault__ +(or segfault for short). Now you can start to see how this system makes for +a working memory protection scheme. By switching out the LDT, you can change +what part of physical memory is addressed by any Selector:Offset-pair and thus +give each task or process their own address space. + +The segmentation scheme is now deprecated in favor of paging which offers more +fine-grained control and a greater level or transparency. + +So, what about the privilege levels? +Well, the user program can switch its own segment selector values. However, +each segment has a protection level, given by the __Descriptor Privilege +Level__ ( __DLP__) in the segment descriptor. The processor has a __Current +Privilege Level__ ( __CPL__) which is given by the lowest two bits of _CS_. If +the program tries to switch a selector to a descriptor with a DPL that is lower +than the CPL, the processor throws a __General Protection Fault__. + +###Processor privilege levels today + +I mentioned that segmentation is deprecated in favor of paging, so why would +I care about it for a modern state-of-the-art operating system such as mine? + +Firstly, the x86 architecture requires segmentation to access the entire +address space - most hobby OSes I've studied just keeps two segments (one for +code and one for data - processor requirement) for this, with base 0x0 and +a limit of 4 gb (in other words, they each cover the entire virtual address +space). + +Secondly, there are other ways than segmentation where the CPL comes into play. +For example, in paging, if the supervisor bit of a page table entry is set, the +address can only be accessed if the processor is in CPL 0 (sometimes called +__ring 0__). + +The privilege levels are also used to determine whether certain instructions +may be run, like _sti_, _lgdt_, _hlt_ and such. + +Finally, the privilege levels determine which interrupts may be called with the +_int_ instruction (each interrupt descriptor in the IDT has an assigned DPL). + +So there's still a point to keep privilege levels around for your hobby OS, +despite the problems they cause with segmentation and TSS and stuff. + +###Changing the privilege level + +Changing the CPL is actually two different problems. +- Increasing CPL +- Decreasing CPL + +Increasing the CPL is relatively easy. It can be done either through a far jump + + JMP 0x1B:label + label: + ; The CS selector is now 0x18 | 0x3 + ; i.e. it points to segment no 3 (3*0x8) and CPL is set to 0x3 +{: .prettyprint .lang-nasm} + +or through the `IRET` instruction + +###The IRET instruction + +Let's change the topic for a minute and think about interrupts. +Say the processor is running in __Kernel Mode__ (Ring 0, CPL=0) and an +interrupt happens. What the processor does then is: +- Push SS and ESP to stack +- Push EFLAGS to stack +- Push CS and EIP to stack +- Load CS and EIP from the IDT +and from there the interrupt handling routine takes over. + +The interrupt handling routine does its thing and then runs the `IRET` +instruction. `IRET` makes the processor do the same thing as when an interrupt +happens, but _backwards_. I.e: +- Pop CS and EIP from stack +- Pop EFLAGS from stack +- Pop SS and ESP from stack +- Do stack stuff +- Far jump to CS:EIP + +Notice that extra thing there? The "Do stack stuff"? + +At that point, the processor checks the value of CS that is just popped. It +compares the __Requested Privilege Level__ ( __RPL__, last one - promise - I'm +not making these up, you know) in the bottom two bits of this to the CPL and if +it is higher it changes SS and ESP to the recently popped values. This is really +useful for software task switching. + +So, you could easily get into a higher privilege level by intercepting +a handled interrupt and changing the value of CS on the stack. If you set the +bottom two bits to 0x3, you will soon be in User Mode. + +An other (better in my opinion) option is to create a fake interrupt-pushed +stack and push that onto the stack before running `IRET` . + + // C code + struct + { + uint32_t esp; + uint32_t ss; + uint32_t eflags; + uint32_t eip; + uint32_t cs; + } fake_stack; + + fake_stack.esp = usermode_stack_top; + fake_stack.ss = user_data_segment | 0x3; + fake_stack.eflags = 0; + fake_stack.eip = &usermode_function; + fake_stack.cs = user_code_segment | 0x3; + + set_all_segments(user_data_segment | 0x3); + run_iret(&fake_stack); +{: .prettyprint} + + ; Assembler code + run_iret: + add esp, 0x8 + iret +{: .prettyprint .lang-nasm} + + +###Going back to ring0 + +I was going to continue this blog post with talking about how to switch from +a higher CPL to a lower, but it is growing way longer than I thought it would. +Therefore I will cut it off here, and continue in a new post. + +###Application +The methods described in this post is used in Git commit +[52a0c84739](https://github.com/thomasloven/os5/tree/52a0c84739e04f3d9dd7410cdf0b378118a946b4). + diff --git a/pages/2012-08-02-Return-To-Kernel-Mode.md b/pages/2012-08-02-Return-To-Kernel-Mode.md new file mode 100644 index 0000000..b8c75ec --- /dev/null +++ b/pages/2012-08-02-Return-To-Kernel-Mode.md @@ -0,0 +1,97 @@ +layout: post +title: "Return To Kernel Mode" +subtitle: "Seriously, what's up with TSS?" +tags: [osdev] + +###Processor privilege levels + +In [my last post](/blog/2012/07/Privilege-Levels) I wrote about x86 privilege +levels. Remember the CLP, the DPL, the RPL and the KPL? Ok, I made that last +one up, but there actually is one more -PL thing to take into consideration. +The IOPL, but that won't come into play yet. + +Anyway, I showed that switching privilege level was kind of easy, if you do it +from a lower value to a higher. I also said that if you try to load a lower +level than your CPL into _CS_ you get a GPF. + +###Going to a lower privilege level + +So, the processor designers obviously didn't want us to go to a lower +protection level, so why would we? Well, there are some things that we want the +kernel to do that requires a higher protection level. For example we may want +to change the value of _cr3_ during a task switch in order to load a new +address space for the new process. + +Luckily, there is a way to get back to ring 0 (kernel mode) and that's through +interrupts. When an interrupt happens (or is called by a program - more on this +at an other time), the processor loads a new value for CS from the relevant +interrupt descriptor in the IDT and - in this case - allows the change in +privilege level no matter which way it goes. If the privilege level is changed +by loading the new CS, the processor looks into the currently loaded __TSS__... + +###Task State Segment + +The __Task State Segment__ ( __TSS__) is another remnant from the olden days of +the x86 processor architecture. + +I'll gladly admit that I don't understand them at all, but it has to do with +hardware task switching. In short, I believe that you can load a number of TSS +entries into the GDT and load one of them into a special register at once to +perform a task switch. The processor would then save all registers into the old +TSS and load them from the new one, all in one instruction. ... or something +like that... + +But, as I mentioned above, if the privilege level is lowered during a processor +interrupt, the processor looks into the currently loaded TSS. From there it +loads a new value for SS and ESP. In other words, the TSS determines the stack +position as we get back into kernel mode. + +###Loading a TSS + +Loading a TSS is actually rather simple and it's kind of hard to go wrong. So +hard in fact that most tutorials actually do. Here's how it's really done +(source: [Intel +Manuals](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html/)) + + gdt[TSS_DESCRIPTOR].base = &tss; + gdt[TSS_DESCRIPTOR].limit = sizeof(tss); + gdt[TSS_DESCRIPTOR].flags = 0; + gdt[TSS_DESCRIPTOR].access = GDT_PRESENT | GDT_EXECUTABLE | GDT_ACCESSED; +{: .prettyprint} + +What most tutorials get wrong is the limit field. The TSS is actually a memory +segment, and like all memory segments it has a segment descriptor in the GDT +(the TSS descriptor can not be stored in an LDT). Finally, like all segment +descriptors, the TSS descriptor points to a segment that resides between the +address _base_ and _base + limit_. In other words, _limit_ should be the size +of the TSS, not the end of it. + +What's the point in that, you might ask. The TSS is of fixed length, isn't it? +Not really; the TSS is sometimes followed by a bitmap which decides which I/O +ports the processor is allowed to access. If such a bitmap exists, the TSS +segment is increased to incorporate it. + +###Why you should get this right + +The thing is that if you don't have an I/O map, any value for the limit above +0x67 will be accepted by the processor. However, the limit field is only 20 +bits long and is often truncated to this length by cutting off the upper 12 +bits in the code that sets the descriptor. Most of the time, this works, but +say your TSS begins at address 0xFFFFF and is of minimum length. That means it +ends at 0x100066 and if you truncate this to 20 bits and put it as limit you +get 0x66. Boom! Protection fault! If you're lucky, it happens every time you +boot your kernel. If you're not, you may have a really nasty bug to track down. + +###Back to the TSS + +When you have your TSS segment descriptor, you need to set up the TSS itself. +Without hardware multitasking, there are only three values of TSS that are +reqired. SS0, ESP0 and IOMAP. + +SS0 and ESP0 were described in my previous post and IOMAP is the offset of the +I/O map inside the TSS segment. This needs to be set even if you don't have an +IO map, so I just set it to the length of the TSS structure. + +###Application +The methods described in this post is used in Git commit +[52a0c84739](https://github.com/thomasloven/os5/tree/52a0c84739e04f3d9dd7410cdf0b378118a946b4). diff --git a/pages/2012-08-08-Thread-Stacks.md b/pages/2012-08-08-Thread-Stacks.md new file mode 100644 index 0000000..1cc5886 --- /dev/null +++ b/pages/2012-08-08-Thread-Stacks.md @@ -0,0 +1,352 @@ +layout: post +title: "Thread Stacks" +subtitle: "4 a.m. - know where your stack pointer is?" +tags: [osdev] + +Since the x86 architecture has relatively few processor registers, a +programmer may need additional space to store temporary values. For most +compilers and languages, this space is the stack. C, for example, (gcc +and clang at least) uses the stack to store local variables, function +arguments and return addresses. In other words, the stack comes in use +every time there is a function call. + +The common way a function call is handled by a c compiler is this: +- Push each argument to the stack (in reverse order) +- Execute the `CALL` instruction (which pushes the address of the next +instruction to the stack and jumps to the callee) + +The callee does the following: +- Push the base pointer to the stack +- Sets the base pointer to the current stack pointer +- Subtracts the stack pointer to reserve place for local variables. +- Do its thing +- Increase the stack pointer to free the space used by local variables. +- Pop the base pointer from stack. +- Execute the `RET` instruction (which puts the return value in EAX and +jumps to the position at the top of the stack. + +While the callee is doing its thing it now has access to all the pushed +arguments at addresses (ebp + 8) and forwards and all local variables +at addresses up to ebp. The return address is reachable at (ebp + 4) if +you'd ever want that. + +This convention makes it really easy to have functions which takes an +undefined number of arguments, like `printf` does. + +###Stacks in context switching +It also makes for really simple _context switching_. +Since the return address is stored on the stack, if you were to switch +stacks inside a function, when you return, you'll be somewhere else. +This is a common way of making usermode threads. Ponder the following: + + void switch_thread() + { + push_all_registers(); + switch_stack_pointer(); + pop_all_registers(); + return; + } + + void a() + { + while(1) + { + do_something(); + switch_thread(); + } + } + + void b() + { + while(1) + { + do_something_else(); + switch_thread(); + } + } + +Imagine two threads - __A__ and __B__ running, __A__ runs `a()` and __B__ +runs `b()`. Each has a stack somewhere in memory, and __A__ is currently +running. The top of the stacks looks like: + + +-----------------------+ + |switch_stack_pointer RA| + |all registers | + +----------ESP----------+ |switch_thread RA | + |a RA | |b RA | + | ... | | ... | +{: .nopretty} +where `RA` means Return Address and `ESP` is where the stack pointer is +currently pointing. +As execution of __A__ continues, the processor will `do_something()` and +then call `switch_thread()`... + + +-----------------------+ + |switch_stack_pointer RA| + +----------ESP----------+ |all registers | + |switch_thread RA | |switch_thread RA | + |a RA | |b RA | + | ... | | ... | +{: .nopretty} +`switch_thread()` pushes all registers to the stack and calls +`switch_stack_pointer()` + + +----------ESP----------+ +-----------------------+ + |switch_stack_pointer RA| |switch_stack_pointer RA| + |all registers | |all registers | + |switch_thread RA | |switch_thread RA | + |a RA | |b RA | + | ... | | ... | +{: .nopretty} +`switch_stack_pointer()` performs some scheduling to find out which +thread is to run next, and then switches the stack pointer over to the +top of __B__'s stack. + + +-----------------------+ +----------ESP----------+ + |switch_stack_pointer RA| |switch_stack_pointer RA| + |all registers | |all registers | + |switch_thread RA | |switch_thread RA | + |a RA | |b RA | + | ... | | ... | +{: .nopretty} +The processor keeps on executing code, and `switch_stack_pointer()` soon +returns + + +-----------------------+ + |switch_stack_pointer RA| +----------ESP----------+ + |all registers | |all registers | + |switch_thread RA | |switch_thread RA | + |a RA | |b RA | + | ... | | ... | +{: .nopretty} +`switch_thread()` pops all registers and returns... + + +-----------------------+ + |switch_stack_pointer RA| + |all registers | + |switch_thread RA | +----------ESP----------+ + |a RA | |b RA | + | ... | | ... | +{: .nopretty} +... and we're now in `b()` with all registers of __B__ loaded. + +###Stacks in the kernel +When an interrupt or exception happens in user mode, [a new stack is +loaded from the tss](/blog/2012/08/Return-To-Kernel-Mode/) and +(usually) all registers are pushed onto it before the kernel starts the +__Interrupt Service Routine__. + +Wait... _all registers are pushed onto it_? I like the sound of that. +That's, like, half the work of changing threads, right? Right! + +If you've been following a kernel development tutorial (like [James +Molloys](http://www.jamesmolloy.co.uk/tutorial_html/) or [Brandon +Friesens](http://www.osdever.net/bkerndev/Docs/title.htm)) you probably +have something like this to handle interrupts: + + int_stub: + pusha + + xor eax, eax + mov ax, ds + push eax + + mov eax, 0x10 + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + + call int_handler + + pop eax + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + + popa + + add esp, 8 + + iret +{: .lang-nasm} + + void int_handler(registers_t r) + { + do_stuff(); + } + +In fact, if you've been following one of those tutorials, you probably +have the above code twice, for some reason... + +Anyway. This would take care of both pushing and poping all registers, +and with only a small modification, it becomes very easy to switch the +stacks too... + + int_stub: + pusha + + xor eax, eax + mov ax, ds + push eax + + mov eax 0x10 + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + + push esp ;Pass stack pointer to int_handler + call int_handler + mov esp, eax ;int_handler returns a new stack pointer + + pop eax + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + + popa + + add esp, 8 + + iret +{: .lang-nasm } + + registers_t *int_handler(registers_t *r) + { + do_stuff(); + r = get_next_thread(r); + return r; + } + +This gives a pointer to the threads registers as input to the ISR and +expect a pointer to some registers in return. They may or may not be the +same. + +###Keeping track of the stacks +The saved registers are a large part of what defines each thread, but +there are actually a few things more that are needed. + +First of all, the kernel may want some extra information associated +with each thread, such as scheduling information and a list of signal +handlers. + +Sometimes a thread in user mode will need help from the kernel which +it cannot offer immediately. The thread may for example issue a read +request to a file that's on a drive which has some spin-up time before +it can be read. The kernel may then switch to another thread while the +disk spins up. Therefore it's a good idea to have a separate kernel +stack space for each thread. + +With some thought, those three things can be easily combined into a +single data structure. So let's think about it for a while. + +While the thread is running we want some information stored somewhere in +kernel space about it. + + +-----------------------+ + |thread information | + +-----------------------+ +{: .nopretty} + +Then, when an interrupt or syscall happens, a new stack is loaded +and some stuff is pushed onto it. If we want this near our thread +information it will have to go right before it, since the stack grows +backwards. + + +-----------------------+ + |thread registers | + |thread information | + +-----------------------+ +{: .nopretty} + +Finally, we want the kernel mode stack. Well... the stack pointer is +right at the start of the registers now, so why not just continue the +stack from there? + + +-----------------------+ + | ... | + |kernel mode stack | + |thread registers | + |thread information | + +-----------------------+ +{: .nopretty} + +###Setting this up +To set this up, the thread information structure has to be set up +something like: + + struct thread_info_struct + { + uint8_t stack_space[KERNEL_STACK_SIZE]; + registers_t r; + struct thread_data_struct thread_data; + } my_thread_info; + +When the thread is running in user mode, the TSS should be set up in +such a way that the stack pointer loaded at an interrupt points to the +end of the registers, i.e. the beginning of the thread data. + + TSS.esp0 = &my_thread_info.thread_data; + +And that's really all there is to it. Unbelievable, really, how many +years it took for me to figure this out. + +In the process, I've found inspiration in [Rhombus by Nick +Johnson](https://github.com/nickbjohnson4224/rhombus/) and +[linux](http://www.linux.org). + +###Some considerations +In order to do the actual switching of threads, I implemented a special +syscall which can be called only from kernel mode. + +Let's say a user mode program calls `yield()`. This performs a syscall +in the form of an interrupt instruction `INT 0x80` and thus we jump into +the kernel. + +The kernel performs some housekeeping and selects a new thread to run. +It then performs the special switching interrupt `INT 0x82`. + +Since we're already in kernel mode, no new stack is loaded but the +registers are pushed onto the old one. The top of the kernel stack will +then contain a `registers_t` structure and a pointer to it is saved in +a `kernel_stack` variable in the `thread_data` portion of the thread +information structure. + +Next, the thread information structure of the new thread is read and +the `kernel_stack` pointer from it is returned to the `int_stub` as +above. The `IRET` instruction brings us back to wherever we were before +(probably in kernel mode, but could as well be user mode). If the new +thread was swapped out while in kernel mode, it will carry on from +wherever it was and eventually return to user mode. + +This way of handling kernel stacks also makes for really clean nesting +of interrupts. + +###Usage +This method has been implemented in git commit +[756852fc66](https://github.com/thomasloven/os5/tree/756852fc66b80b1e605 +8d74b8dc334ad841ec5ea) + +###A warning +I recently learned - the hard way - that the [clang +compiler](http://clang.llvm.org) does not use this calling convention +for functions which do not in turn call other functions. I.e + + int double_integer(int a) + { + return 2*a; + } + + int main(int argc, char **argv) + { + double_integer(5); + } + +If this code is compiled with clang `double_integer` will (in some +cases) not push `ebp` to stack. + +This severely hinders many debuggers and should be considered a bug in +my oppinion. diff --git a/pages/2013-01-16-10-Kinds-Of-People.md b/pages/2013-01-16-10-Kinds-Of-People.md new file mode 100644 index 0000000..29bd91c --- /dev/null +++ b/pages/2013-01-16-10-Kinds-Of-People.md @@ -0,0 +1,53 @@ +layout: post +title: "10 Kinds of People" +subtitle: "... and some 7 billion more kinds." + +We've all read the joke. + +> There are 10 types of people in the world... Those who understand +> binary and those who don't." + +Or the one people who pride themselves to be a bit more nerdy than the +nerdy ones prefer: + +> There are 10 types of people in the world ... Those who understand +> hexadecimal and 15 others." + +There's even a quote about this on [bash.org](http://bash.org/?top). + +> kow: "There are 10 types of people in the world... those who +> understand binary and those who don't." + +> SpaceRain: That's only 2 types of people, kow. + +> SpaceRain: STUPID + +I'll tell you; this SpaceRain dude has a point. + +In fact, I'd say: + +### There are 10 types of people in the world... Those who doesn't know how to communicate a number base properly, and nine types who do. + +As [xkcd](http://xkcd.com/169/) put it: + +> Communicating badly and then acting smug when you're misunderstood is +> not cleverness. + +Of course, "In base 2 there are 10 types of people in the world..." +isn't very funny, but - in all fairness - the original joke isn't very +funny anymore either. However, "There are 010 types of people in the +world... Those who can use google to look up octal numbering conventions +and 7 others", is a bit funny to my fancy, even if it's a very strange +way of classifying people. + +Maybe we all should just move on from this joke or at least bring it to +the next level. + +I'll end this with a version that is actually funny and which I regret +to say I will probably never find the original source of. + +> "There are 2 types of people in the world... Those who can extrapolate +> from incomplete data" + +Also, I recently added commenting to the blog posts. Please, fill me in +on your versions. diff --git a/pages/2013-01-20-Z80-Information.md b/pages/2013-01-20-Z80-Information.md new file mode 100644 index 0000000..e30ba4c --- /dev/null +++ b/pages/2013-01-20-Z80-Information.md @@ -0,0 +1,163 @@ +layout: post +title: "Z80 Information" +subtitle: "A humble beginning" +tags: [electronics] + +Six or seven years ago, I bought a box full of fun stuff on eBay. It +turned out to include a few Z80 processors. I had just finished my army +duty and still remembered the math and physics lectures from college +(equivalent) where most of the time had been wasted playing Super Mario +on our Texas Instruments TI83+ graphing calculators who run on the very +same processor. So I was well aware on what wonders it's capable of. +Unfortunately, I didn't even have time to start playing with my new +goodies before I went to university and my life turned into a mess. + +The time finally came about a year and a half ago. I was having the +first vacation of my life and actually had time to spare. + +At this point I had no kind of plan. So I started out by trying to find +out if at least one of the Z80s actually worked. + +History of the Z80 +------------------ +According to [Wikipedia](http://en.wikipedia.org/wiki/Zilog_Z80), +the Z80 processor was launched in 1976 by Zilog. The founder of Zilog +had previously worked for Intel on their 8080 microprocessor. The Z80 +is therefore designed to run any code which runs on the former. + +Further, the Z80 features an extended instruction set compared to the +8080. The extra instructions include bit and block operations. +The Z80 also has two sets of registers which can be swapped through a +special register, indexed addressing and vectorized interrupts. + +I have no experience working with the 8080 and this far only a little +bit of actually programming a Z80. I've already, however, begun to +appreciate some of those features. + +What I appreciate even more - at least this far - is the following +hardware features of the Z80 compared to the 8080. +- A single 5V power supply - as opposed to +5V, -5V and +12V for the 8080 +- A single clock signal input - as opposed to two for the 8080 + +What this means +--------------- +What those hardware features mean, is that getting a Z80 to run is +actually really simple. All we need in ways of support circuits are a +single square wave clock signal and a reliable reset circuit. Oh, and a +power supply of course. + +A step back +----------- +But we shouldn't get ahead of ourselves here. Let's instead take a step +back and look at the Z80. + +![Z80 pinout](/media/img/z80_pinout2.png){: .right .noborder} +This is the pinout of a standard Z80 in a 40-pin DIP package. I have +colorized the pins to show one way of grouping their functions. + +A line above the pin name or a `/` before it (such as `/INT`) indicates +that the pin is Active Low, i.e. 0V means yes and 5V means no in layman +terms. + +###Green +The green pins are the address bus. A0 to A15 are used to indicate an +address in memory during a memory read or write operation. A0 to A7 are +also used to select I/O device during a port read or write operation. +The address bus is output only. + +###Red +The red pins are the data bus. D0 to D7 are used to transfer or receive +data during a memory or port read or write operation. The data bus can +also be used to indicate which device fired an interrupt. The data bus +can be both input and output. + +###Blue +The blue pins are what keeps the Z80 going. The 5V DC power supply, +a ground connection and a clock signal. We'll look more on the clock +signal later. + +###Orange +The orange pins are used to control the Z80. + +- `/INT` indicates that a hardware interrupt occurred and makes the Z80 +act on this. +- `/NMI` is a Non Maskable Interrupt and has higher priority than the `INT` +- `/WAIT` can be used by memory or I/O devices to make the Z80 wait +during a read or write operation while the device prepares to fill the +request. +- `/BUSRQ` is used by external devices to request control over the data, +address and system control buses. When the Z80 is ready to hand over +control, this is signaled to the requesting device via the `BUSACK` +pin. +- `/RESET` is used to reset the Z80 into a well defined state. + +All orange pins are input only. + +###Yellow +The yellow pins are used to control peripherals and other parts of the +computer system. + +- `/HALT` indicates that the Z80 is in a halted state, i.e. it is waiting +for an interrupt to happen. +- `/MREQ` indicates that the Z80 wishes to access memory. +- `/IORQ` indicates that the Z80 wishes to access an I/O port. +- `/RD` goes low during a memory or I/O read operation. +- `/WR` goes low during a memory or I/O write operation. +- `/BUSACK` indicates that the Z80 has let an other device take control +of the buses. +- `/M1` indicates that the Z80 is fetching the next instruction from +memory. This pin turned out to be incredibly useful for debugging. +- `/RFSH` back in the days memory circuits couldn't keep their contents +indefinitely, even with power on, but had to be given a refresh pulse +every now and then. This usually required some extra circuitry which +kept track of which memory addresses needed refreshing when. The Z80, +however, outputs a refresh signal from time to time and also gives an +address to refresh at A0 to A6(!). + +All yellow pins are output only. + +Fetch Decode Execute +-------------------- +A CPU operates in what's called instruction cycles. The instruction +cycles can be broken down into three sub-cycles, namely the Fetch cycle, +the Decode cycle and the Execute cycle. + +During the Fetch cycle, the processor reads an instruction from memory. +It keeps the address of the next instruction to read stored in a special +register, the Program Counter _PC_. The Z80 also outputs the refresh +signal during the end of the Fetch cycle. After reading an instruction +_PC_ in incremented by one. + +During the Decode cycle, the processor decodes the read instruction. +If more data needs to be read from memory (e.g. an address in a jump +instruction) it is read now (_PC_ is incremented accordingly). + +During the execute cycle, the processor does what the instruction told +it to. It might for example - in the case of a jump instruction - change +the contents of the _PC_ register, or add two registers together. + +The cycle then repeats indefinitely or until the processor is halted. + +The simplest instruction +------------------------ +So... the goal of this post was to make a Z80 tester, right? Actually, +that will probably have to wait for the next post, because this one is +getting really long now. However, it makes sense to look at one last +piece of information right now. To make sure a Z80 is working, we'd +want it to go through a number of instruction cycles. As a first step, +though, we don't actually need it to do anything, but just move on to +the next instruction. + +Luckily, there's an instruction for this. + +From the [Z80 CPU Users Manual](http://www.z80.info/zip/z80cpu_um.pdf) by Zilog: + +> NOP +> +> Description: The CPU performs no operation during this machine cycle. + +Sounds just like what we need! To make it even more perfect, the `nop` +instruction is indicated by the byte `0x00` or all zeroes. + +I'll let you think about the implications of this until next time. + diff --git a/pages/2013-01-21-Z80-Tester.md b/pages/2013-01-21-Z80-Tester.md new file mode 100644 index 0000000..a8f28fe --- /dev/null +++ b/pages/2013-01-21-Z80-Tester.md @@ -0,0 +1,172 @@ +layout: post +title: "Z80 Tester" +subtitle: "Bouncing buttons" +tags: [electronics] + +In the [last post](/2013/01/Z80-Information/) I said we only needed two +pieces of support circuits to get a Z80 running, namely a clock and a +reset circuit. + +Let's take a look at the most advanced one first; the clock signal +generator. + +![Bad clock generator](/media/img/bad_clock.png){: .right} + +Clock signal +------------ + +The Z80 needs a 5V square clock signal. + +For testing purposes it's ok to generate the clock signal by hand. The +easiest way to do this requires only a switch and a resistor configured +like the figure on the right. + +Let me just stop you right now and tell you that this won't work. + +Why? Well, take a look at the output in an oscilloscope: + +![Bouncy signal](/media/img/bad_clock_signal1.png) + +Doesn't look so bad, does it? Well, let's take a closer look at that +falling edge to the left. Here it is, zoomed in about 250 times: + +![Bouncy signal](/media/img/bad_clock_signal2.png) + +Now that's not pretty. If you used this clock circuit, for every time +you press the button, the Z80 will receive a dozen pulses or two. That +makes for some very unrepeatable behavior, and repeatability is what +computers are all about. + +![Good clock generator](/media/img/good_clock.png){: .right} + +A better clock signal +--------------------- +Here's a good clock generator. It requires two switches which are pushed +alternately, two pull-up resistors and two NAND gates (e.g. 74HC00). + +This is what's called an S-R-latch (S-R is short for Set-Reset). + +Let's say the clock output is currently HIGH (+5V) and that no switches +are pressed. The upper NAND gate then has two HIGH inputs, which means +its output is LOW (0V). The lower NAND has one LOW input and one HIGH, +which means its output is HIGH. By pushing the top button, one of the +inputs to the top NAND is grounded so that its input is (LOW, HIGH) +which means it outputs HIGH. This means the lower NAND gets the input +(HIGH, HIGH) which makes its output LOW and when the button is released, +the top NAND will have the input (HIGH, LOW) and thus still output HIGH. + +It's a bit simpler to understand if you just think about it than if you +try to read my messy explanation, but you must assume that the clock +signal is either HIGH or LOW before you start thinking. + +![Good clock circuit](/media/img/good_clock_circuit.png){: .left} +Anyway, I built this circuit on a bread board and measured it the same +way as the last one. + +![CLean signal](/media/img/good_clock_signal.png) + +Nice and clean. We've got our clock source. + +Reset switch +------------ +When it comes to reset the Z80 is not as picky as with the clock signal. +In fact, we can use the first attempt at a clock signal for reset. + +The internal reset circuitry of the Z80 depends on the clock signal, +so as long as the clock doesn't move, whatever happens with the reset +signal doesn't matter. + +This fact is important to rember for other reasons too; to perform a +reset, the reset pin must be pulled low for a few clock cycles. + +In other words: To perform a reset, push the reset button, toggle the +clock a handful of times (minimum three), release the reset button. + +That took me a while to figure out and is why you should always read +your datasheets carefully, kids. + +A similar note of caution: Don't leave the clock signal in its LOW state +for any extended periods of time or the Z80 will forget its state. To be +sure, always make the clock HIGH right after making it LOW. You could +add an LED to show its current state. + +Let's wire it up + +Z80 tester +---------- +![Z80 tester wiring](/media/img/z80_tester.png) + +Here's a Z80 tester circuit wired up on my breadboard. + +The connections are as follows: + +- `D0`-`D7` are pulled low through resistors of ~1kΩ. +- `/INT`, `/NMI`, `/WAIT` and `/BUSRQ` are connected to +5V. +- `+5V` and `GND` are connected as labeled. +- `/RESET` is connected to a pull up resistor and a button as described +above. +- `CLK` is connected to an Arduino nano which generates a 500 Hz square +signal (I felt a bit lazy). +- `A0`-`A7` are connected to the logic probes of my oscilloscope. + +But before I power this up, let's think about what we're expecting to see. + +As we release the reset button (after keeping it down for three clock +cycles or more) the Z80 starts to read instructions at address `0x0000`. + +Since all data pins are permanently tied low it will read the value +`0x00` which corresponds to a `NOP` instruction. This means it skips +ahead to address `0x0001` to read its next instruction and so on. + +In other words, we expect the 8 lowest address lines to count upwards +binarily from 0 to 255. Since there are 8 address lines we're not +monitoring, it should make this count 255 times before getting back to +address `0x0000` again. But we won't be able to see the difference +between the counts. + +Ok, let's take a look. + +![Z80 tester running](/media/img/z80_running1.png) +Just like that. This Z80 seems to be working fine. + +All 255 addresses didn't quite fit in this picture, but you can see +address `0xXX00` to the left and `0xXX7B` to the right. + +Scrolling forwards a bit in time we find something interesting. +![Z80 tester running 2](/media/img/z80_running2.png) + +See that thing on `A7`? It's not stable, but is pulsing. The same +behavior can be seen on `A8`-`A15`. But why? + +Dynamic memory refresh, that's why. + +As I described in the last post; right after fetching an instruction, +the Z80 sends a refresh pulse to the memory chips. During this pulse, it +also sends an address on the 7 lowest address lines, i.e. `A0`-`A6`. The +other address lines are pulled low. + +Let's take a closer look at the signals used. + +![Z80 tester running 3](/media/img/z80_running3.png) + +Here I also connected to the oscilloscope +- `/M1` +- `/MREQ` +- `/RD` +- `CLK` + +We can clearly see the instruction fetch cycle. `/M1` goes low, followed +by `/MREQ` and then `/RD`. Then all three goes high while the processor +is decoding the instruction. + +During the decode cycle, we see `/MREQ` go low again. This is the memory +refreshing. I didn't connect the `/RFSH` line to the oscilloscope but, +trust me, it goes low at about the same time. + +Next is the execute cycle, which for the `NOP` instruction is nothing at +all, so the processor jumps right to the next instruction fetch cycle. + + +Ok... so the Z80 is indeed working as expected. + +Next time we'll look at a control panel. diff --git a/pages/2013-02-06-A-Step-Back.md b/pages/2013-02-06-A-Step-Back.md new file mode 100644 index 0000000..e0074db --- /dev/null +++ b/pages/2013-02-06-A-Step-Back.md @@ -0,0 +1,37 @@ +layout: post +title: "A Step Back" +subtitle: "Exactly why I keep this blog" +tags: [osdev] + +I've previously described my normal mode of enjoying the hobby of +operating system development, i.e. restarting from the ground every time +I get some time, and then forgetting everything once school starts. + +That's exactly why I started writing down what I'm doing in this blog. + +The thing is, I didn't really keep to this at the end of summer, and ran +ahead a bit with the programming, thinking I should catch up with the +blogging at a later time. Obviously, I didn't do this... + +When I took a look at the state of my code a week or so ago, I +noticed I hadn't even checked in my changes since August. So that's +what I did, and then I branched off the last commit I blogged about +([756852fc66](https://github.com/thomasloven/os5/tree/756852fc66b80b1e60 +58d74b8dc334ad841ec5ea)) and made that the new master branch. + +For future reference (I'll probably cheat again someday) there were the commands for this: + + git commit -m 'Bad excuse for not checking in before' + git checkout -b new_master OLD_COMMIT_SHA + git merge --strategy=ours master + git checkout master + git merge new_master + +The resulting commit is found at +[f74ec287db](https://github.com/thomasloven/os5/tree/f74ec287db488a7bda5 +4ad75f979ca6b5664feef). +If you take a look at my [commit +list](https://github.com/thomasloven/os5/commits/), though, you'll +notice that I cheated again... I told you I would! + +Anyway. I'll get right on describing what I've been doing... diff --git a/pages/2013-02-06-New-Environment.md b/pages/2013-02-06-New-Environment.md new file mode 100644 index 0000000..4d288eb --- /dev/null +++ b/pages/2013-02-06-New-Environment.md @@ -0,0 +1,177 @@ +layout: post +title: "New Environment" +subtitle: "A bit more and less modern tools" +tags: [osdev] + +Two summers ago, I didn't always have access to my build computer, so I +came up with a convoluted development setup which could be run over an +ssh connection. + +I would edit files locally using some graphical text editor. Then I +would save my files and wait for them to propagate to the build computer +through Dropbox. +Next I would run the build commands through ssh and then test the +results in bochs terminal mode. + +Last summer I started using vim to edit the source directly on the build +computer, which meant I didn't have to wait for Dropbox. +Around the same time I started to find some awesome tools which have +been around for ages. + +Those are, for example [tmux](http://tmux.sourceforge.net/) which is a +terminal multiplexer which runs circles around gnu screen in terms of +usability and features. + +LLVM +---- + +I also started looking at the [llvm](http://llvm.org) compiler suite. +The main reason I've been using a cross compiler is that I'm building +under OSX. OSX has its own executable format (Mach-O something or other), +but I'd like to use gnu elf, because it's well documented and there's +lots of example code about. The gcc bundled with OSX only compiles for +OSX, obviously, but OSX recently started shipping with llvm and clang +instead. + +Clang can apparently be used as a cross compiler whatever way it was +built, though the available documentation is a bit unclear on how +exactly to do this. Come to think of it, the available documentation is +a lot unclear on just about everything. Funny for a compiler which +boasts expressive error messages as a feature... + +Anyway with clang version 3.1 you can compile i386-elf object files through + + > clang -ccc-host-triple i386-pc-linux -c source.c -o object.o +{: .prettyprint .lang-sh} + +`-ccc-host-triple` isn't mentioned even once in the documentation of +clang nor are the possible choices. `i386-elf` which is somewhat of a +standard does not work... + +Since clang version 3.2 `-ccc-host-triple` has apparently been replaced +by `-target`. This change is, of course, not mentioned in the release +notes. + +In short, the llvm project - though I appreciate the thought - is an +excellent example of why you should document your code, kids. + +This being said. If you know of some secret stash of llvm or clang +documentation, please - PLEASE - let me know! + +I still use clang for compiling my kernel, though. Mostly because of the +aforementioned expressive error messages. They really are a nice change +to gcc and in pretty colors too. + +If you run OSX clang 3.1 is installed with the +current version of Xcode. Version 3.2 is installed by +[Homebrew](http://mxcl.github.com/homebrew/). + + > homebrew install llvm +{: .prettyprint .lang-sh} + +Binutils +-------- + +The linker supplied with llvm doesn't read linker scripts - and I didn't +even get it to link my kernel objects together at all anyway - so I +still use gnu binutils cross compiled for i386-elf. + +However, I don't use the compiling process described in an earlier post. +Instead, again, I use Homebrew. + +First of all, to get a working cross target binutils, the brew formula +will have to be changed a bit + + > brew edit binutils + +Change the last configure flag (` --enable-targets=x86_64-elf,arm-none-eabi,m32r`) +to `--target=i386-elf`. I also changed the `--program-prefix` to `i386-elf-`. Save the file and run + + > brew install binutils + +and you're good to go. + +As a bonus, binutils also contains usefull tools like objdump and readelf. + +Qemu +---- + +Up until a few days ago, after compiling my kernel, I mounted an ext2 +image using mac-fuse, copied the kernel binary into it, unmounted the +image and tested it using bochs. +Bochs has a really nice text based interface which works well as long as +the OS is only text based anyway, also a great debugger. Unfortunately, +you can't use both at once, but most of the time you don't need an +actual debugger to find the problems anyway. + +The whole process can be streamlined through some shell scripting and I +had the overhead reduced to almost nothing, I thought... + +Then I decided to take a look at [qemu](http://wiki.qemu.org/Main_Page) +again. I used it once before, but stopped due to the lack of a debugger +and text mode if I recall correctly. I knew back then that it could be +debugged with [gdb](http://www.gnu.org/software/gdb/), but I was on a +windows machine in those days, and... well... don't really want to talk +about it... + +Anyway, I started having some problems with mac-fuse, so I thought +I should take a look at qemu again, since it has built in emulation +of a boot loader and can run a lone kernel binary passed to it as an +argument. So I started to look it up and it turned out to actually have +a text mode (curses mode). + +So I went out on a whim and tried + + > brew info qemu + +By now you should know pretty much what I think of Homebrew, so the +results of that command pretty much sealed the deal. + +Now I run my kernel in qemu through + + > qemu-system-i386 -kernel kernel/kernel -curses + +Qemu also turned out to have a monitor mode which contains some of the +functions I used most often in the bochs debugger, such as printing the +memory map. Further, this could be accessed using telnet from a +different tmux pane. + + #!/bin/bash + tmux split-window -h 'qemu-system-i386 -kernel kernel/kernel -curses -monitor telnet:localhost:4444,server' + tmux select-pane -L + telnet localhost 4444 +{: .prettyprint} + +Finally, I also installed an i386-elf targeted version of gdb - using Homebrew, obviously, with the same trick as for binutils. Gdb is found in a different tap of homebrew, so that will have to be installed first + + > brew tap homebrew/dupes + > brew edit gdb + +Add the flag `--target=i386-elf` to the configure flags, save and + + > brew install gdb + +This will link to `ì386-elf-gdb` and can be run in yet another tmux window. + + #!/bin/bash + tmux split-window -h 'qemu-system-i386 -kernel kernel/kernel -curses -monitor telnet:localhost:4444,server -s -S' + tmux select-pane -L + tmux slit-window -v 'i386-elf-gdb' + tmux select-pane -U + telnet localhost 4444 + +Upon start, gdb will look for a file called `.gdbinit` which in my case contains + + file kernel/kernel + target remote localhost:1234 + +Results +------- + +[![OSDEV build environment](/media/img/osdev_build_env.png)](/media/img/osdev_build_env_full.png) + +Now that's neat! + +The results can also be seen in git commit [0699c20381](https://github.com/thomasloven/os5/tree/0699c203818ec1d018c93b0192fba48ccb6879d8). + + diff --git a/pages/2013-02-09-More-Memory.md b/pages/2013-02-09-More-Memory.md new file mode 100644 index 0000000..eb13443 --- /dev/null +++ b/pages/2013-02-09-More-Memory.md @@ -0,0 +1,127 @@ +layout: post +title: "More Memory" +subtitle: "And processes" +tags: [osdev] + +The kernel has been multithreaded for quite a while, so now it's time to +make it multiprocessing. Here's how I look at processes and threads in +single-processor systems. + +###Thread +A thread or __thread of execution__ is the state of the processor at a +certain point. That is, the thread is made up of + +- processor registers +- instruction pointer +- stack pointer + +By saving those and replacing with other previously saved values, +threads can be switched in and out of execution. Each thread has its +own, unique stack. + +###Process +A process is an isolated collection of threads. That is: + +- A process has one or more threads. +- The threads in a process share memory space +- The threads in one process can not access the memory of the threads +in another process + +There are some exceptions to the third point, but that's another show. + +Each process has an associated memory translation map which can be +switched out to switch the active process. Generally, the current thread +will have to be changed at the same time since its code and data will be +in another memory space. + +The kernel code and data resides in the upper part of memory, from +`0xC0000000` and above and is common to all memory translation maps. +That means that a kernel thread can be switched in without changing the +process, and also that the process can be switched freely while a kernel +thread is running. + +###Synchronizing Memory Translation maps + +The x86 memory management unit (MMU) governs how the processor accesses +memory. When paging is enabled any call to any address during code +execution is translated from a _virtual address_ to a _physical +address_. I usually call the set of translation rules a _memory +translation map_. + +Each process has its own assigned memory translation map. Two processes' +memory translation maps may in unlikely cases map the same physical +memory pages to the same virtual addresses, but the maps are still +considered unique. + +The mapping of the kernel memory space is equal in all maps. This means +that as long as the processor is executing code in the kernel space, +the active memory translation map may be changed without worrying about +corrupting data, since there's no difference between them. It does cause +a problem though. If something changes in the kernel space, the same +change must happen in all memory translation maps. + +The way memory is translated makes the problem a little bit smaller. +Since the x86 family uses two-tier paging and, again, kernel space is +the same for all maps, we can use the same page tables for all maps. +That means we only need to consider changes in the page directory which +happens significantly less frequently (a naïve approximation: 1024 times +less often). + +Still, when a change is made to the page directory which corresponds to +an address in kernel space, the change needs to be propagated to all +page directories in the system. There are a few ways this can be done: + +- Keep track of all memory translation maps and update them all at the +same time when something happens to the kernel space. +- When a new memory translation map is switched in, copy any changes +from the previous one. +- Keep a master memory translation map and update that when a change is +made, then propagate the changes on request. + +The first method sounds like a lot of work. Keeping track of the memory +translation maps isn't very hard - they all belong to a process, and we +need to keep track of all processes anyway. Updating them, however could +take a lot of time. As I write this, I have 164 processes currently +running on my computer. That's 164 memory translation maps that should +be updated, some of which may be currently paged out and written to +disk. + +The second method sounds feasible. During the switch, we are probably +doing things to both memory translation maps anyway, so why not add this +step? It does add some overhead, but shouldn't be too bad. + +The third method also sounds feasible. But how do we know when the +changed part is requested? The answer is page faults. If a page fault +occurs in kernel space and it turns out to be caused by a missing page +directory entry, check the master page directory. If there is an entry +there, add it to the current page directory and you're good to go. + +Unfortunately, this means we can only add new page directory entries and +never change or delete them, because that wouldn't cause a page miss the +next time. Also, all the kernel page tables would need to be kept in +memory at all times and never be paged out. The memory hit isn't too bad +on a modern system, but it seems a bit inelegant now that I think about +it. + +###What to use? + +This brings up one of the points to why I'm keeping this blog. It makes +me think about stuff. + +Before I did the reset described in [a previous +post](/blog/2013/02/A-Step-Back/) I used the second method above. When I +wrote the new code, I came up with the third method and thought I should +try it out. Now I'm starting to have second thoughts, though... + +I'll give it some more thought and we'll see how it turns out. + +###Next step + +Again, I'm starting to ramble and the post is getting long and +embarrassingly unstructured so I'll cut it off here. +What I'll save for the next post is how to keep track of the memory +space for the processes. + +###Usage +The methods described in this post has been implemented in git commit +[fa9e5929ce](https://github.com/thomasloven/os5/tree/fa9e5929ce6adaf62e6a85df284690b31163a4f9) diff --git a/pages/2013-03-05-Two-Small-Projects.md b/pages/2013-03-05-Two-Small-Projects.md new file mode 100644 index 0000000..5b27320 --- /dev/null +++ b/pages/2013-03-05-Two-Small-Projects.md @@ -0,0 +1,55 @@ +layout: post +title: "Two Small Projects" +subtitle: "Audio and Arduino" + +###Breadboard Arduino +I didn't really like the arduino when I first heard about it. It +was vastly overpowered for any task I saw it used for and with the +interpreted coding it seemed little more than an expensive waste of +processor cycles. + +Then I went and bought one anyway, and I am happy to admit that I was +wrong to think it useles. I remember opening the box, and ten minutes +later I had used it to solve a problem which had been bothering me for a +week. Now I'm thinking of getting a third one. + +The one I use the most is an Arduino nano, which can be seen sitting on +my breadboard in this photo from a previous post +![Z80 tester wiring](/media/img/z80_tester.png) + +This placement worked well, but I kept thinking about the big open area +just to the left of the Arduino... + +So, one day I brought out the dremel and... perfect fit! +![Arduino breadboard](/media/img/mini_project_arduino_breadboard2.png) + +To the sides are an IC holder I split in half and soldered on the back. +![Arduino soldering](/media/img/mini_project_arduino_breadboard1.png) + +It was a bit tricky to avoid melting the plastics, but I think it turned +out allright. + +Finally, heres a picture of it in use for studying the timings of an SD +card for my Z80 computer. +![Arduino in use](/media/img/mini_project_arduino_breadboard4.png) + +###Mac mini headset adapter +I use a Mac mini (mid 2011) as my main desktop computer. I wanted +to connect a headset to it for skyping, but found out that the only +connections are Audio out and Line in. + +The Audio out port, however, allows you to connect an +iPhone headset and use its microphone with the computer. +That gave me an idea, and after some searching I found +[this](http://benttronics.blogspot.se/2009/05/audio-breakout-cable-for-i +podiphone.html). + +Once again I heated the soldering iron and got this: +![Headset adapter](/media/img/mini_project_headset_adapter.png) + +Let me tell you, that four-pole connector is one tight fit. + +The top two connectors are wired in parallell and allows me to have both +my speakers and my headset connected at the same time. It's easy enough +to just turn off the speakers when I don't need them and I wont ever +have to dig around behind the computer to connect the headset. diff --git a/pages/2013-06-06-Even-More-Memory.md b/pages/2013-06-06-Even-More-Memory.md new file mode 100644 index 0000000..d0e635d --- /dev/null +++ b/pages/2013-06-06-Even-More-Memory.md @@ -0,0 +1,189 @@ +layout: post +title: "Even More Memory" +subtitle: "And processes again" +tags: [osdev] + +I did say memory was an important part of what the operating system +does. Here's another post on it. + +###Forking a process +By using a system call a process may __fork__ i.e. create a copy of +itself. + +Right after the fork, the entire memory space should look the same to +both the parent and child. However, if one changes something, the change +should not affect the other. + +For example: + + #include + #include + #include + + int main(int argc, char **argv) + { + int variable = 1; + int pid = fork(); + int status; + + if( pid ) + { + // This is the parent + printf("Parent says: %d\n", variable); + variable = 2; + printf("Parent says: %d\n", variable); + waitpid(pid, &status, 0); // Let the child run + printf("Parent says: %d\n", variable); + } else { + // This is the child + printf("Child says: %d\n", variable); + variable = 3; + printf("Child says: %d\n", variable); + } + + return 0; + } +{: .lang-c} + +This simple program should output (assuming the parent is run first and +is not interrupted): + + Parent says: 1 + Parent says: 2 + Child says: 1 + Child says: 3 + Parent says: 2 + +The virtual memory of the X86 architecture allows us to switch out the +entire memory space in one strike, and that allows for this behavior. + +The naive way to implement this functionality is to make a copy of the +entire memory space, page for page, during the fork and assign it to the +child process. However, it is common for a new process to start its life +by performing `execve()` or similar and thus clearing or replacing its +entire memory space. Obviously this would make copying the memory space +just a waste of time. + +A way to prevent this waste is to make all points on the two processes +memory maps point to the same physical memory as long as they only read. +A copy is made only if either process wishes to write to a memory area. +This method is known as _Copy on Write_. + +Now, I never took any courses in data structures and I'm sure there's +better ways of doing this, but here's how I keep track of the memory +areas used and shared between processes. + +###Process memory map + +In the kernel, each process has an associated _memory map_. The memory +map contains information about the _memory areas_ of the process. + +Each memory area describes a part of the process' memory. The size of +the part can go from `0` to the entire memory space. The memory area +structure thus has one field for the starting address of the area and +one for the end address. It also has a field describing the area type +and a flags field. + +Each memory area belong in two doubly linked lists. One is the list of +memory areas belonging to a process. The other list is all copies of the +area. + +Finally, each area has a pointer to its owning process. + +Let's follow a memory area during part of a process' life. + +###Setup +![PROCMM1](/media/img/procmm1.png){: .center .noborder} + +In the figure above we see two processes, _A_ and _B_. +Let's say _A_ is the _init_ process and _B_ is a shell. + +Currently, _A_ has four memory areas and _B_ has three. As you can see, +all the processes memory areas are linked together in a list (blue +arrows). _A_ and _B_ also share one area and the two representations are +linked together in another list (green arrows). The shared areas are +flagged as "Copy on Write" (red color). + +We'll be following the rightmost memory area of process _B_. This area +represents the stack and stretches from `0xBFFFE000` to `0xC0000000`. +In other words, it is two memory pages long (assuming 4kb pages). + +###Forking + +The user types + + > gcc hello_world.c + +into the terminal and the shell program executes the `fork` system call. + +This makes the kernel do a lot of things, one of which is create a new +memory map for the new process. It then clones all memory areas into the +new map. +![PROCMM2](/media/img/procmm2.png){: .center .noborder} + +The write flag of our area is unset and the CoW flag is set. The area is +then copied into the new map and the copies list is updated so that our +area and its copy can keep track of each other. + +###Pushing to stack +Let's say the scheduler returns us to the child process (process _C_) +when the fork is complete. + +The child process does some processing on the user entered command and +during this tries to write a value to the stack. Since the area +containing the stack is read-only this results in a page fault. + +The page fault handler recognizes that the fault was caused by an +attempt to write to a read-only page and by a quick check finds out that +the area in question is marked for CoW, so it decides to make a copy of +it. There's no need to copy both pages, though, so the memory manager +first splits the area in two. + +The same split is made in all copies of the same area. Finally, the area +we want is physically copied and write is enabled on it before control +is returned to the user process. + +![PROCMM3](/media/img/procmm3.png){: .center .noborder} + +A while later, the parent process is scheduled in and it may also wish +to write to the stack. This time the area is already split in two, and +the required area has no copies, so it is just set as read/write and +we're done. +![PROCMM4](/media/img/procmm4.png){: .center .noborder} + +Actually, the parent process will probably perform a `waitpid` syscall +and sleep untill the child has finished, so let's go back to the child. + +###Exiting +When the child process finishes, it frees all memory areas. When a page +marked CoW is requested, the first check performed by the kernel is +wether there actually are any other processes sharing the same area. +Otherwise, it just marks it as read/write and is done. Therefore, all +the child process needs to do is remove its own memory areas from the +list of copies and the parent will take care of the rest. + +###Zero size areas +I said before that an area could have a zero size, i.e. the same start +and end address. + +This is only useful in combination with a certain flag that allows the +area to grow automatically. + +It could for example be used by a stack area which might originally +start at `0xC0000000` and end at `0xC0000000`. If an `uint32_t` is +pushed, the process will try to write to address `0xBFFFFFFC` which +results in a page fault. + +The page fault handler will realize that theres a memory area right +above the address (say less than one page away) and that this area has +the autogrow flag enabled. It will then just expand the area and be +done. + +The pros of this method is that we will never have to guess how large +the stack size should be. It will grow as neede (to an extent) or stay +at zero size if it's not needed. + +###Git +The methods described in this post has been implemented in git commit +[cea5ec765f](https://github.com/thomasloven/os5/tree/cea5ec765ff683dbcf3 +116006c43a195245d9d6e). diff --git a/pages/2013-06-07-System-Calls.md b/pages/2013-06-07-System-Calls.md new file mode 100644 index 0000000..aa7df3f --- /dev/null +++ b/pages/2013-06-07-System-Calls.md @@ -0,0 +1,119 @@ +layout: post +title: "System calls" +subtitle: "Bend the stack to your will" +tags: [osdev] + +System calls is the way user processes communicate to the kernel. Look +at the following program, for example. + + #include + + int main(int argc, char **argv) + { + printf("Hello, world!"); + + return 0; + } +{: .lang-c} + +When you call the program, even before it is started, the shell makes a +couple of system calls such as `fork()` and `exec()`. The program itself +then makes several more system calls before the `write()` and `exit()` +system calls represented by the two lines in the code. + +System calls can be performed in several ways, but one of the most +common is through a special software interrupt with the `int` +instruction. For example, linux and most unix-like hobby kernels I've +studied use `int 0x80`. That's also what I chose to use in my kernel. + +Next is the problem of passing data. The simplest way is using +registers, and that's what most projects seem to use. For this, I chose +a combination of a single register and the processes own stack. + +###Sample system call +Let's look at how `read()` would be implemented. I've not actually +implemented it in my kernel yet, but here's how it would work. + +####User side +First the definition in the c library: + + int read(int file, char *ptr, int len) + { + return _syscall_read(file, ptr, len); + } + +Simply a wrapper for an assembly function: + + [global _syscall_read] + _syscall_read: + mov eax, SYSCALL_READ + int 0x80 + mov [syscall_error], edx + ret +{: .lang-nasm} + +This function puts an identifier for the system call in the `eax` +register and then execute the system call interrupt. + +_Note:_ Here I return the error code through register +`edx`. In the actual code at this point, I used the +register `ebx`. I should have looked up [Calling +Conventions](http://wiki.osdev.org/Calling_Conventions) more carefully. + +Of course, this can be simplified with a macro to + + [global _syscall_read] + DEF_SYSCALL(read, SYSCALL_READ) +{: .lang-nasm} + +####Kernel side + +In the kernel, the system call is caught by the following function: + + registers_t *syscall_handler(registers_t *r) + { + if(syscall_handlers[r->eax]) + r = syscall_handlers[r->eax](r); + else + r->edx = ERR_NOSYSCALL; + + return r; + } + +If the system call is registered correctly in the kernel (through the +macro `KREG_SYSCALL(read, SYSCALL_READ)`), this will pass everything +onto the following function: + + KDEF_SYSCALL(read, r) + { + process_stack stack = init_pstack(); + + r->eax = read((int)stack[0], (char *)stack[1], (int)stack[2]); + r->edx = errno; + + return r; + } + +The `init_pstack()` macro expands to `(unitptr_t *)(r->useresp + 0x4)` +and this lets us read the arguments passed to the system call from where +they are pushed on call. + +Then the `read()` function has the same definition as the library version. + + int read(int file, char *ptr, int len) + { + ... + } + +_Spoiler alert:_ Keeping a version of `read()` (and in fact every +syscall function) inside the kernel will turn out to have some really +cool advantages... + +This works for c compiled with the `cdecl` calling convention. For other +languages or calling conventions, the asm functions will have to be +adjusted. + +###Git +The methods described in this post has been implemented in git commit +[8a26e26163](https://github.com/thomasloven/os5/tree/8a26e26163c15c9d9854554dce9d4fc5ad8baee5). + diff --git a/pages/2013-08-20-Catching-Up.md b/pages/2013-08-20-Catching-Up.md new file mode 100644 index 0000000..6c3c404 --- /dev/null +++ b/pages/2013-08-20-Catching-Up.md @@ -0,0 +1,195 @@ +layout: post +title: "Catching Up" +subtitle: "with a new toolchain" +tags: [osdev] + +Well... I've been bad at updating the blog on my process again... + +Last time I missed updating, I made a branch from an earlier git commit, +and threw away a bit of work and messy code rather than trying to catch +up. + +This time, however, I'm actually quite happy that I didn't write too +much, because I've recently changed a lot of what I would have written +about. + +So instead, I'll describe one of my most recent changes here - a new +cross compiler and a newlib port - and then in subsequent posts go over +chosen parts of the other things I've done. + +So let's jump into it. + +### Why a cross compiler +The be-or-not-to-be of cross compilers has been discussed at +length and it seems every time someone posts a description +on how to build one they are told that you don't need one if +you know how to use your compiler or whatever. For examples, +read +[the osdev wiki - Why do I need a Cross Compiler? talk page](http://wiki.osdev.org/Talk:Why_do_I_need_a_Cross_Compiler%3F) +(I don't recommend it if you're in a bad mood). + +Well, I'm developing on OSX but have chosen to build an X86 kernel +in elf format due to the availability of documentation, support and +expertize. That's reason enough for a cross compiler build of binutils +at least. + +Clang offers excellent support for cross compilation out of the box, so +I didn't use to have a need for a gcc cross compiler as illustrated in +[this post](/blog/2013/02/New-Environment/). As it turns out, however, +compiling newlib with that setup is rather annoying. + +I'm also a fan of clean makefiles. Take a look at this: + + VPATH := ../src + + CC := i586-pc-myos-gcc + + TARGETS := $(shell find ../src -name "*.c") + TARGETS := $(notdir $(TARGETS)) + TARGETS := $(patsubst %.c, %, $(TARGETS)) + + all: $(TARGETS) + + clean: + -rm $(TARGETS) 2>/dev/null +{: .lang-make} + +That's the makefile for the entire `/bin` directory in my os. + +So let's move on... + +### Building newlib and gcc +For my toolchain build, I followed the tutorial at +[the osdev wiki](http://wiki.osdev.org/OS_Specific_Toolchain) with a few +changes. I chose to build everything inside the scope of +[Homebrew](http://brew.sh) to keep track of all files and eventually +make a formula for it. So after applying the patches described in the +post (I even kept the name `i586-pc-myos` since I don't have a working +name for my kernel besides an iteration number...) I did + + export TARGET=i586-pc-myos + export PREFIX=/usr/local/Cellar/osdev/1.0 + # Configure, build and install binutils + brew link osdev + # Configure, build and install gcc and libgcc + brew unlink osdev + brew link osdev + +And that prepared me for building newlib. + +### Building newlib +Now this was an adventure... + +Newlib uses a directory structure that hasn't been supported by +automake and autoconf since a couple of versions. More specifically, +you need automake version 1.12 or earlier and autoconf version 2.64. +Unfortunately, those versions are not available through Homebrew, so ... + + curl -O http://ftp.gnu.org/gnu/automake/automake-1.12.tar.gz + tar -zxf automake-1.12.tar.gz + mkdir -p build-automake + pushd build-automake + ../automake-1.12/configure --prefix=/usr/local/Cellar/automake/1.12 + make all -j + make install + popd + curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz + tar -zxf autoconf-2.64.tar.gz + pushd build-autoconf + ../autoconf-2.64/configure --prefix=/usr/local/Cellar/autoconf/2.64 + make all -j + make install + popd + + brew switch automake 1.12 + brew switch autoconf 2.64 + +Those last two lines tells Homebrew that you want to use those specific +versions for now. + +Now for the neat part. I followed the wiki post and used the +[syscall interface](/blog/2013/06/System-Calls) i've described earlier +but I also wrapped `crt0.S` and `syscalls.c` in + + #ifndef KERNEL_MODE + ... + #endif + +Then I built it all through + + pushd build-newlib + ../newlib/configure --target=$TARGET --prefix=$PREFIX + export CPPFLAGS_FOR_TARGET=-DKERNEL_MODE + make -j + make install + mv $PREFIX/$TARGET/lib/libc.a $PREFIX/$TARGET/lib/libkernel.a + rm -rf * + ../newlib/configure --target=$TARGET --prefix=$PREFIX + export CPPFLAGS_FOR_TARGET= + make -j + make install + popd + +This gives me two versions of the newlib c library. One with all syscalls +defined and one without. The latter is suitable for linking into the +kernel and allows me to use a standard C library with things like +`sprintf` and even a ready made `malloc`. + +"But wait," you say. "Doesn't malloc make an sbrk() syscall? You can't +make a syscall from inside the kernel, can you?" + +Well. Remember [my last post](/blog/2013/06/System-Calls) where I said +that keeping versions of every syscall function inside the kernel would +turn out to have some really cool advantages? Here they are. + +I need an `sbrk` anyway, so all I have to do differently is make it +check whether the request came from a user process or from the kernel +and handle them a slight bit differently (i.e. make sure the `brk` is +above `0xC0000000` for kernel and below for user mode...). + +Similar checks can be made for all syscalls and some doesn't actually +need any changing at all. + +Needless to say, this revelation changed my kernel structure +quite a bit and I entirely threw away my own +[kernel heap manager](/blog/2012/07/Memory-Heap). + +### Using this +Having the cross compiler toolchain and library setup allows me to +compile the kernel using a very simple makefile. + +Somewhat simplified: + + OBJECTS := $(shell find . -name "*.S") + OBJECTS += $(shell find . -name "*.c") + OBJECTS := $(OBJECTS:%.S=%.o) + OBJECTS := $(OBJECTS:%.c=%.o) + + CC := i586-pc-myos-gcc + LDFLAGS := -nostdlib -T linkfile.ld + LDLIBS := -lkernel + + kernel: $(OBJECTS) + $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +and everything else is taken care of by the default rules of gnu make, +including preprocessing and assembling .S files. + +For executables running under my operating system it's even easier + + CC := i586-pc-myos-gcc + +That's all. + +### GAS +On a final note, the automatic rules for building object files out of .S +files runs them through `CC`, which means they are assembled by +`i586-pc-myos-as` which uses AT&T syntax rather than NASM which uses +Intel syntax. I actually converted all my assembly code to AT&T syntax, +but you might want to use the `.intel_syntax` directive instead. + + +### Git +The methods described in this post has been implemented in the directory +`toolchain` of git commit +[f09bd57b8e](https://github.com/thomasloven/os5/tree/f09bd57b8eb8c27607dab8250574c8eaed2939a0/toolchain). diff --git a/pages/2013-08-21-Loading-Elf.md b/pages/2013-08-21-Loading-Elf.md new file mode 100644 index 0000000..02ee697 --- /dev/null +++ b/pages/2013-08-21-Loading-Elf.md @@ -0,0 +1,160 @@ +layout: post +title: "Loading elf" +subtitle: "there's DWARF in my ELF." +tags: [osdev] + +### Elf header format + +Elf files all start with a header which identifies the file and explains +where to find everything. It has the following structure. The +[ELF specification](http://www.skyfree.org/linux/references/ELF_Format.pdf) +gives an excellent description on the meaning and use of each field. + + typedef struct + { + uint8_t identity[16]; + uint16_t type; + uint16_t machine; + uint32_t version; + uint32_t entry; + uint32_t ph_offset; + uint32_t sh_offset; + uint32_t flags; + uint16_t header_size; + uint16_t ph_size; + uint16_t ph_num; + uint16_t sh_size; + uint16_t sh_num; + uint16_t strtab_index; + }__attributes__((packed)) elf_header; + +The first thing we should do is check whether we actually got an +executable ELF file. (In the following code, I'll assume the entire elf +file is located somewhere in memory and that this location is passed to +the `load_elf()` function.) + +To check if the file is an ELF executable we can look at the +identity field. The first four bytes of this filed should always be +`0x7F`,`'E'`,`'L'`,`'F'`. If that's correct, we can look at the `type` +field. For an executable standalone program, this should be `2`. + + int load_elf(uint8_t *data) + { + elf_header *elf = (elf_header *)data; + if(is_elf(elf) != ELF_TYPE_EXECUTABLE) + return -1; + ... + +`is_elf` looks as follows. Note the use of `strncmp` which I can do +because I link [newlib into my kernel](/blog/2013/08/Catching-Up/). + + int is_elf(elf_header *elf) + { + int iself = -1; + + if((elf->identity[0] == 0x7f) && \ + !strncmp((char *)&elf->identity[1], "ELF", 3)) + { + iself = 0; + } + + if(iself != -1) + iself = elf->type; + + return iself; + } + +Should be pretty straight forward. Let's continue. + +For just loading a simple ELF program, we only need to look at the +program headers which are located in a table at offset `ph_offset` in +the file. + + typedef struct + { + uint32_t type; + uint32_t offset; + uint32_t virtual_address; + uint32_t physical_address; + uint32_t file_size; + uint32_t mem_size; + uint32_t flags; + uint32_t align; + }__attributes__((packed)) elf_phead; + +The program headers each tell us about one section of the file, and we +use them to find out what parts of the elf image should be loaded where +in memory. So, the next step would be to go through all program headers +looking for loadable sections and load them into memory. + + ... + elf_phead *phead = (elf_phead)&data[elf->ph_offset]; + uint32_t i; + for(i = 0; i < elf->ph_num; i++) + { + if(phead[i].type == ELF_PT_LOAD) + { + load_elf_segment(data, &phead[i]); + } + } + return 0; + } + +This would also be a good time to update the memory manager information +about the executable. You might want to keep track of the start and end +of code and data for example. + +Anyway, `load_elf_segment()` looks like this + + void load_elf_segment(uint8_t *data, elf_phead *phead) + { + + uint32_t memsize = phead->mem_size; // Size in memory + uint32_t filesize = phead->file_size; // Size in file + uint32_t mempos = phead->virtual_address; // Offset in memory + uint32_t filepos = phead->offset; // Offset in file + + uint32_t flags = MM_FLAG_READ; + if(phead->flags & ELF_PT_W) flags |= MM_FLAG_WRITE; + + new_area(current->proc, mempos, mempos + memsize, \ + flags, MM_TYPE_DATA); + + if(memsize == 0) return; + + memcpy(mempos, &data[filepos], filesize); + memset(mempos + filesize, 0, memsize - filesize); + } + +Let's go through it. + +First we define some helper variables. + +Next we check if the section we're loading should be writable. + +Then we request a new memory area from the [process memory +manager](/blog/2013/06/Even-More-Memory/). + +Finally, we copy as much data as is provided in the file and fill the +rest of the new area with zeros. + +And that's really all you need to do to load an ELF executable. +The only thing left is to jump to `elf->entry` and you're going. + +### Improvements +Of course the entire executable image won't be loaded into memory in the +normal case, but it might be true for e.g. an `init` program or similar +that your bootloaded loads as a module to your kernel. Instead, you +should read the parts you want through your filesystem as you go along. + +Or maybe you shouldn't. It doesn't make sense to load a huge program +into memory all at once. What if it encounters an error and exits with +99% of the code unexecuted? + +Perhaps the process memory manager could be told where to find certain +parts of the program, and load them only when needed? + +### Git +The methods described in this post has been implemented in git commit +[a4ca835d1d](https://github.com/thomasloven/os5/tree/a4ca835d1db61faf214b4b617d38a335ef05d142). + diff --git a/pages/2013-08-22-Virtual-File-System.md b/pages/2013-08-22-Virtual-File-System.md new file mode 100644 index 0000000..364ae84 --- /dev/null +++ b/pages/2013-08-22-Virtual-File-System.md @@ -0,0 +1,94 @@ +layout: post +title: "Virtual File System" +subtitle: "and a weird weird bug." +tags: [osdev] + +I was planning to start this post with talking about how I was not very +satisfied with my VFS layer and how I would like to rewrite it. But then +I rewrote it instead... and ran into a really weird bug. + +### The bug +I'll start with the bug, since it doesn't have anything to do with the +VFS, but perhaps someone could help me if I write it down. + +So, I was happily coding away when I decided to run my emulator as +usual. Since I develop exclusively in a terminal environment right now +my setup for testing is four panes in tmux. + +- One pane runs qemu and displays its output. +- One pane controls the qemu terminal through telnet. +- One pane displays the serial output of qemu. +- One pane runs gdb connected to qemu. + +Qemu is setup to do nothing until I write 'c' in either the terminal or +gdb to allow me to setup breakpoints and such. Only this time, the qemu +pane closed immediately before I could do anything at all. + +I tried again, with the same results. And again in a desperate display +of what Einstein allegedly called madness. + +What was the problem? It obviously couldn't be anything in my code. My +code didn't even have time to start running! + +After a while I reverted my recent changes anyway, and the testing setup +ran flawlessly. + +What? But my code didn't even run! + +I reapplied my changes one at a time and found the line that caused the +problem. + + int i = 0; + +What?? That's it? Declaring a variable? + +Anyway. I changed my code about to do the same thing in another way. +Debugging worked like a charm, but there was some unexpected behavior. +The best way to nail it down seemed to be by printing a short string +whenever a function was run. And qemu crashed + +What??? Does my emulator hate running working code? + +Ok. I've had problems with string before. I ran objdump, commented out +the string and ran objdump again and compare the sections. They were +probably overlapping some page border and causing some problems I didn't +catch with my last linking script update. There really shouldn't be any +problems left, but anyone can be wrong. Nothing obvious, though... but when I ran the emulator again, it +crashed. + +What???? But I commented the problem out. Didn't I? + +Removing the commented line fixed the problem. + +What????? A comment? + +Next I tried running only qemu, without the other panes. It worked like +a clock. Starting the terminal console; no problem. Starting gdb... +crash! Hm... + +Removing the `-ggdb` flag from my compiling worked. `-g1` worked `-g2` +did not... + +I have a `.gdbinit` file in my code root directory, which makes gdb load +debug symbols and attach automatically. It also sets some useful debug +breakpoints, like whenever I encounter unsolvable page faults. It turns +out the breakpoints were the culprit. If I didn't set them, everything +ran fine. + +Now I was getting somewhere. I thought. + +After running both gdb and qemu through gdb and actually plowing through +the DWARF information from `objdump -w`. I finally gave up. + +My conclusion: +This is either a bug in gcc, a bug in gdb or a bug in qemu. To me the +third alternative seems the likeliest by far. +My guess is that there's a but in qemus gdb stubs. + +If you heard about this bug or experienced it yourself or just have any +guesses, please let me know. + +### VFS +Oops.. this grew long... Let's take the VFS some other time, shall we? + + diff --git a/pages/2013-12-11-Virtual-File-System2.md b/pages/2013-12-11-Virtual-File-System2.md new file mode 100644 index 0000000..171d779 --- /dev/null +++ b/pages/2013-12-11-Virtual-File-System2.md @@ -0,0 +1,408 @@ +layout: post +title: "Virtual File System 2" +subtitle: "for real this time." +tags: [osdev] + +Once again, several months have passed since I wrote anything here. +I also worked very little on the kernel during this time, though. So no +losses there, at least. Instead I've been busy with a special side +project that I will write a bit about later and a lot of personal stuff +that you probably don't care about if you're reading those posts. Unless +you're my wife, that is (I got married! :) ). Then again, if you're my +wife you're probably not reading those posts anyway, so I guess the +entire point of this paragraph was to tell you I got married(!). + +Ahem... + +###The virtual filesystem +So, as I said in [my last post](/blog/2013/08/Virtual-File-System/) +I recently rewrote my VFS layer. Although, I must admit I'm not quite satisfied +with it yet... + +... + +Know what? Let's rewrite it again! + +###What I want +First of all: What do I want from the virtual filesystem? + +The VFS should be an abstraction layer for the files used by the kernel +and user processes. The files in this case could be files on a disk, +the disk hardware itself, pipes, files stored in ram, read-only files +generated on-the-fly by the kernel, network connections(?) etc. + +Further, I want the VFS to be independent of any disk file system, e.g. +the VFS shouldn't have user-group-other read-write-execute tuples just +because it's designed with ext2 in mind. It might have those tuples - +I haven't decided yet - but it it does it won't be because ext2 uses +them. Nor will the VFS be designed with ext2 or any other disk file +system in mind. + +The VFS should offer the functions + + open() // Open or create a file + close() // Close a file + read() // Read data from opened file + write() // Write data to opened file + move() // Move a file or directory + link() // Put a file or directory in path tree + unlink() // Remove a file or directory from path tree + stat() // Get more info about a file or directory + isatty() // Returns true if the file is a terminal + mkdir() // Create a directory + readdir() // Get a directory entry + finddir() // Find a file by name from a directory + +for all files and directories regardless of their underlying device or +driver. + +The file system should have a tree structure with a single root. + +Filesystems should be mountable at any path in the tree provided the +path points to a directory or non-existing node within an existing +parent directory. I.e. if the empty directory `/foo`, a filesystem +can be mounted to `/foo` or `/foo/bar` but not to `foo/baz/bar`. If +`/foo` is not empty, it should a filesystem can still be mounted to +it, unless it is already a mountpoint. All contents of `/foo` are then +hidden untill the filesystem is unmounted. Mounting filesystems to +non-directories should not be possible. Mounted filesystems does not +have to have a root directory, but can consist of a single file. + +Those are just some rules for mounting that I thought of pretty much +arbitrarily. I might change my mind later, but this will do for now. + + +###Implementation +The most important data structure of the VFS is the inode. +Each file used by the kernel gets an inode which keeps track of some +important information of it, such as what type of file it is or which +driver controls it. + +Some inodes live in the mount tree, which keeps track of all mounted +filesystems. Looking up a file by absolute path always starts in the +mount tree and is performed by a function called namei (name to inode). + +Example: + +- A user process wants the file `/mnt/floppy/foo/bar.txt` +- `namei` starts at the VFS root / +- `namei` searches for `/mnt` in the VFS tree, finds it and gets it's inode. +- `namei` searches for `/mnt/floppy` in the VFS tree, finds it and gets it's inode. +- `namei` searches for `/mnt/floppy/foo`, which is not found. +- `namei` asks the `/mnt/floppy` inode for `/mnt/floppy/foo` and gets it's inode. +- `namei` asks the `/mnt/floppy/foo` inode for `/mnt/floppy/foo/bar.txt` and gets it's inode. +- `namei` returns the inode for `/mnt/floppy/foo/bar.txt` + +A good starting point for the inode structure might be some pointers to +allow it to be placed in a tree, then. + + + struct vfs_node_st; + typedef vfs_node_t * INODE; + + typedef struct vfs_node_st + { + char name[VFS_NAME_SZ]; + INODE parent; + INODE child; + INODE older, younger; + uint32_t type; + } vfs_node_t; + + + +This does waste a bit of memory, since most inodes that are used by the +system won't be in the VFS tree, but four `size_t` isn't that much, +and it's far from the worst memory thief in this kernel anyway. + +The `type` field in the VFS node struct is used by the VFS tree to make +sure stuff is only mounted onto directories. + +I typedef `INODE` as a pointer to keep the code a bit cleaner and easier +to maintain. + + +Then, we need a way to keep track of the driver, i.e. the functions +called to access the file. To do this, I define a new struct: + + typedef struct vfs_driver_st + { + uint32_t (*open)(INODE, uint32_t); + uint32_t (*close)(INODE); + uint32_t (*read)(INODE, void *, uint32_t, uint32_t); + uint32_t (*write)(INODE, void *, uint32_t, uint32_t); + uint32_t (*link)(INODE, INODE, const char *); + uint32_t (*unlink)(INODE, const char *); + uint32_t (*stat)(INODE, struct stat *st); + uint32_t (*isatty)(INODE); + uint32_t (*mkdir)(INODE, const char *); + dirent_t *(*readdir)(INODE, uint32_t); + INODE (*finddir)(INODE, const char *); + } vfs_driver_t; + +and add `vfs_driver_t *d` to the inode struct. I also added a length +value, a void pointer for arbitrary data used by the drivers and a flags +value - also for use by the drivers. The +inode struct now looks like this: + + typedef struct vfs_node_st + { + char name[VFS_NAME_SZ]; + void *parent; + void *child; + void *older, *younger; + uint32_t type; + vfs_driver_t *d; + void *data; + uint32_t flags; + uint32_t length; + } + +###Vfs functions +Next, I create some wrapper functions to call the driver functions. + + uint32_t vfs_open(INODE ino, uint32_t mode) + { + if(ino->d->open) + return ino->d->open(ino, mode); + return 0; + } + +and similar for all functions except `readdir` and `finddir` which +contain code to handle `.` and `..` for mount roots. + + + dirent_t *vfs_readdir(INODE ino, uint32_t num) + { + if(ino->type & FS_MOUNT) + { + if(num == 0) + { + dirent_t *ret = calloc(1, sizeof(dirent_t)); + ret->ino = ino; + strcpy(ret->name, "."); + return ret; + } else if(num == 1) { + dirent_t *ret = calloc(1, sizeof(dirent_t)); + ret->ino = ino->parent; + strcpy(ret->name, ".."); + return ret; + } + } + if(ino->d->readdir) + return ino->d->readdir(ino, num); + return 0; + } + +  + + INODE vfs_finddir(INODE ino, const char *name) + { + if(ino->type & FS_MOUNT) + { + if(!strcmp(name, ".")) + { + return ino; + } else if(!strcmp(name, "..")) { + return ino->parent; + } + } + if(ino->d->finddir) + return ino->d->finddir(ino, name); + if(ino->d->readdir) + { + // Backup solution + int num = 0; + dirent_t *de; + while(1) + { + de = vfs_readdir(ino, num); + if(!de) + return 0; + if(!strcmp(name, de->name)) + break; + free(de->name); + free(de); + num++; + } + INODE ret = de->ino; + free(de->name); + free(de); + return ret; + } + return 0; + } + +Finally, I needed a function for mounting filesystems in the mount tree +and the `namei` function, which can actually be combined since they both +need to traverse the entire path. + +_Warning:_ Pointer-pointers ahead! + +First: a function for traversing the mount tree as far as possible + + INODE vfs_find_root(char **path) + { + // Find closest point in mount tree + INODE current = vfs_root; + INODE mount = current; + char *name; + while((name = strsep(path, "/"))) + { + current = current->child; + while(current) + { + if(!strcmp(current->name, name)) + { + mount = current; + break; + } + current = current->olderyounger; + } + if(!current) + { + if(*path) + { + *path = *path - 1; + *path[0] = '/'; + } + *path = name; + break; + } + } + + return (INODE)mount; + } + +Pretty self explanatory. No? Well, `strsep` is a library function which +picks out one part of the path at a time and also advances the `path` +pointer. Then, for each part, we look through the children of the node +we're at for one with the right name. If it is not found, the path +pointer is backed up one step and the last node we found is returned. + +The namei/mount function then uses this as a starting point: + + + + INODE vfs_namei_mount(const char *path, INODE root) + { + char *npath = strdup(path); + char *pth = &npath[1]; + // Find closest point in mount tree + INODE current = vfs_find_root(&pth); + char *name; + while(current && (name = strsep(&pth, "/"))) + { + // Go through the path + INODE next = vfs_finddir(current, name); + + if(root) + { + // If we want to mount someting + if(!next) + { + // Create last part of path if it doesn't exist + // But only if it is the last part. + if(pth) + return 0; + next = calloc(1, sizeof(vfs_node_t)); + strcpy(next->name, name); + next->type = FS_DIRECTORY; + } + + // Add path to mount tree + next->parent = current; + next->older = current->child; + current->child = next; + } + + if(!next) + return 0; + if(!current->parent) + free(current); + + current = next; + } + free(npath); + + if(root && current->type == FS_DIRECTORY) + { + // Replace node in mount tree + root->parent = current->parent; + if(root->parent->child == current) + root->parent->child = root; + root->older = current->older; + if(root->older) + root->older->younger = current; + root->younger = current->younger; + if(root->younger) + root->younger->older = current; + strcpy(root->name, current->name); + root->type = FS_MOUNT; + if(current == vfs_root) + vfs_root = root; + + free(current); + } + return current; + } +{: .lang-c} + +Note how `pth` is changed by `vfs_find_root()` to only contain the part +of the path that wasn't found. After that, we ask each node for the next +until we reach the target or a dead end. If the dead end is at the very +last part of the path (`/foo/bar` in the example above) and we want to +mount something a new node is created. Otherwise the function returns. +Also, if the goal is to mount something, each part of the path is added +to the mount tree. Finally, the mounting is performed - if requested and +the final inode is returned. + +I also made two simple wrappers for this function: + + + INODE vfs_namei(const char *path) + { + return vfs_namei_mount(path, 0); + } + + INODE vfs_mount(const char *path, INODE root) + { + return vfs_namei_mount(path, root); + } +{: .lang-c} + +And finally, a function for unmounting file systems: + + + INODE vfs_umount(const char *path) + { + char *npath = strdup(path); + char *pth = &npath[1]; + INODE ino = vfs_find_root(&pth); + if(!ino || pth) + { + free(npath); + return 0; + } + if(ino->child) + { + free(npath); + return 0; + } else { + // Remove node from mount tree + if(ino->parent->child == ino) + ino->parent->child = ino->older; + if(ino->younger) + ino->younger->older = ino->older; + if(ino->older) + ino->older->younger = ino->younger; + free(npath); + return ino; + } + } + +And that's it for now. A lot of code this time, but that's because I +don't want to push my changes to github quite yet, so I can't give you a +commit link. + +Next time, I'll look at some file related system calls. diff --git a/pages/2013-12-12-VFS-syscalls.md b/pages/2013-12-12-VFS-syscalls.md new file mode 100644 index 0000000..24b323d --- /dev/null +++ b/pages/2013-12-12-VFS-syscalls.md @@ -0,0 +1,196 @@ +title: "VFS syscalls" +subtitle: "...so I put wrappers 'round your wrappers..." +tags: [osdev] + +[Last time](/blog/2013/12/Virtual-File-System2/) I started to rewrite +the VFS layer of my hobby kernel - again. This time I'll take a look at +the system call couplings. + +Since a [while](/blog/2013/08/Catching-Up/), I've had a cross compiler +and [newlib](http://sourceware.org/newlib) for my kernel, which means I +have some basic syscall interfaces to start from. + +Newlib requires the following syscalls: + + :::c + int close(int file) + int fstat(int file, struct stat *st) + int isatty(int file) + int link(char *old, char *new) + int lseek(int file, int ptr, int dir) + int open(const char *name, int flags, int mode) + int read(int file, char *ptr, int len) + int stat(const char *file, struct stat *st) + int unlink(char *name) + int write(int file, char *ptr, int len) + +###open and close +Everything starts with `open`, so let's look at that first. + +In order to keep track of the files that are opened by a process, we +need a new data structure, though; the _file descriptor_. + + :::c + typedef struct + { + INODE ino; + uint32_t offset; + uint32_t flags; + uint32_t users; + } file_desc_t; + +The file descriptor keeps track of our position in the file as well as +the mode it was opened in. File descriptors can also be shared between +processes (after a `fork()` for example), and it therefore has a use +counter. Two macros are used to manipulate the use counter + + :::c + #define fd_get(fd) { (fd)->users++ } + #define fd_put(fd) { (fd)->users--; if(!(fd)->users)free(fd) } + +Each process descriptor has an array of pointers to file descriptors + + :::c + file_desc_t *fd[NUM_FILEDES]; + +`open` starts by finding a free file descriptor. It then finds the file, +opens the file and returns the index of the file descriptor it used: + + :::c + int open(const char *name, int flags, int mode) + { + int fd; + + // Find unused file descriptor + process_t *p = current->proc; + int i; + for(i=0; i < NUM_FILEDES; i++) + { + if(p->fd[i]) + continue; + fd = i; + p->fd[fd] = calloc(1, sizeof(file_desc_t)); + fd_get(p->fd[fd]); + break; + } + + // Find file + INODE ino = vfs_namei(name); + // Open file + vfs_open(name, flags); + + // Setup file descriptor + p->fd[fd]->ino = ino; + p->fd[fd]->offset = 0; + p->fd[fd]->flags = flags; + + return fd; + } + +I stripped away all of the sanity checking and error handling code here. +With that code, the function is more than twice as long. + +`close` is even easier: + + :::c + int close(int file) + { + int retval = vfs_close(p->fd[file]->ino); + if(!p->fd[file]->ino->parent) + free(p->fd[file]->ino); + fd_put(p->fd[file]); + p->fd[file] = 0; + + return retval; + } + +I always check if an inode has a parent before freeing it. If it has a +parent, it's part of the vfs mount tree, and should be kept around. + +###read and write +Next, let's look at read. +It's actually really simple (excluding sanity checking and error +handling): + + :::c + int read(int file, char *ptr, int len) + { + process_t *p = current->proc; + INODE node = p->fd[file]->ino; + int ret = vfs_read(node, ptr, len, p->fd[file]->offset); + p->fd[file]->offset += ret; + return ret; + } + +Write is pretty much the same: + + :::c + int write(int file, char *ptr, int len) + { + process_t *p = current->proc; + INODE node = p->fd[file]->ino; + int ret = vfs_write(node, ptr, len, p->fd[file]->offset); + p->fd[file]->offset += ret; + return ret; + } + +###stat, fstat and isatty +`fstat` and `isatty` just passes on the information to the corresponding +vfs functions: + + :::c + int fstat(int file, struct stat *st) + { + process_t *p = current->proc; + INODE node = p->fd[file]->ino; + return vfs_fstat(node, st); + } + + :::c + int isatty(int file) + { + process_t *p = current->proc; + INODE node = p->fd[file]->ino; + return vfs_isatty(node); + } + +`stat` performs a `namei` lookup to get the node instead of taking it +from the process' file descriptor table. + + :::c + int stat(const char *file, struct stat *st) + { + INODE node = vfs_namei(file); + int retval = vfs_fstat(node, st); + if(!node->parent) + free(node); + return retval; + } + +###lseek +The final function I'll look at now is `lseek` which sets the current +position in the file: + + :::c + int lseek(int file, int ptr, int dir) + { + process_t *p = current->proc; + if(dir == SEEK_SET) + { + p->fd[file]->offset = ptr; + } + if(dir == SEEK_CUR) + { + p->fd[file]->offset += ptr; + } + if(dir == SEEK_END) + { + p->fd[file]->offset = p->fd[file]->ino->length + ptr; + } + return p->fd[file]->offset; + } + +I'll leave `link` and `unlink` for now, and come back to them when +I need them (i.e. I wish to implement a user writeable filesystem). + +In the next post, we'll mount an actual filesystem. diff --git a/pages/2013-12-13-Debug-Filesystem.md b/pages/2013-12-13-Debug-Filesystem.md new file mode 100644 index 0000000..18453d1 --- /dev/null +++ b/pages/2013-12-13-Debug-Filesystem.md @@ -0,0 +1,95 @@ +layout: post +title: "The debug file system" +subtitle: "It's still in the kernel!" +tags: [osdev] + +This far in my vfs rewrite, I've made a [vfs mount tree](/blog/2013/12/Virtual-File-System2/) and written some [file operation syscalls](/blog/2013/12/VFS-syscalls/). Now it's time to actually use this, by writing a filesystem that can be mounted and then manipulated through the syscall interface. + +The filesystem I want to start with is what I call the `debug` file. + +It is a single file, which mounts to `/` for now (later `/dev/debug`) +and cannot be read from. Writing to it will print the written text on +the screen. + +Three functions are needed for newlib `fprintf` to be able to write to +it: `stat`, `isatty` and `write`. Those are all rather simple, since +they won't need to keep track of which file we're referencing. + + uint32_t debug_stat(INODE node, struct stat *st) + { + memset(st, 0, sizeof(struct stat)); + st->st_mode = S_IFCHR; + return 0; + } + +I don't care much about the stat for the debug file. Maybe I'll add some +creation time or so later... + + uint32_t debug_isatty(INODE node) + { + return 1; + } + +The debug output is a terminal. + + uint32_t debug_write(INODE node, void *buffer, uint32_t size, uint32_t offset) + { + char *buf = calloc(size + 1, 1); + memcpy(buf, buffer, size); + kdbg_puts(buf); + free(buf); + return size; + } + +`kdbg_puts` is a function I wrote +[a long time ago](/blog/2012/06/Kernel-Debug-Functions/) which prints a +string to the screen. The first two lines are just to make sure that the +data is null-terminated. + +With this, I can define a driver for the "debug device": + + vfs_driver_t debug_driver = + { + 0, // open + 0, // close + 0, // read + debug_write, // write + 0, // link + 0, // unlink + debug_stat, // stat + debug_isatty, // isatty + 0, // mkdir + 0, // readdir + 0 // finddir + }; + +And then write a function to setup the device: + + INODE debug_dev_init() + { + INODE node = calloc(1, sizeof(vfs_node_t)); + strcpy(node->name, "debug"); + node->d = &debug_driver; + node->type = FS_CHARDEV; + return node; + } + +Then, to activate it, all I need to do is add + + vfs_init(); + vfs_mount("/", debug_dev_init()); + +in my kernel boot code. After that I can use the standard library +functions: + + FILE *dbg = fopen("/", "w"); + fprintf(dbg, "Hello, world!\n"); + +or even: + + fopen("/", "r"); + fopen("/", "w"); + printf("Hello, world!\n"); + +That's it for this time. Next time, we'll do some piping! + diff --git a/pages/2013-12-18-Pipes.md b/pages/2013-12-18-Pipes.md new file mode 100644 index 0000000..05d4043 --- /dev/null +++ b/pages/2013-12-18-Pipes.md @@ -0,0 +1,185 @@ +layout: post +title: "Pipes" +subtitle: "... and keyboard." +tags: [osdev] + +In most unix-like systems, pipes can be used to make processes +communicate with each other. To the processes the pipe looks just like +any other file, but when one process tries to read from it, it will get +the data the other process wrote. + +With a couple of hints from the people at #osdev on irc.freenode.net, +I finally got pipes to work - although a bit inefficiently - the way I +wanted a few days ago. + +I implemented pipes as circular buffers, which makes them a perfect +example of the "producer-consumer problem" which is well known in +operating system theory. The schoolbook solution to the problem uses +sleeping processes in roughly the following way: + +Producer/Writer: + +- Write until all bytes are written or until the buffer is full. +- Wake any processes that are sleeping on the buffer. +- If you have more bytes to write, go to sleep on the buffer and then + repeat. + +Consumer/Reader: + +- Read until all bytes are read or until the buffer is empty. +- Wake any processes that are sleeping on the buffer. +- If there were no bytes to read, go to sleep on the buffer and then + repeat. + +In code this translates to + + uint32_t pipe_write(INODE ino, void *buffer, uint32_t size, uint32_t offset) + { + vfs_pipe_t *pipe = (vfs_pipe_t *)ino->data; + char *buf = (char *)buffer; + uint32_t bytes_written = 0; + while(bytes_written < size) + { + while((pipe->write_pos - pipe->read_pos) < pipe->size && bytes_written < size) + { + pipe->buffer[pipe->write_pos % pipe->size] = buf[bytes_written]; + bytes_written++; + pipe->write_pos++; + } + scheduler_wake(&pipe->waiting); + if(bytes_written < size) + { + scheduler_sleep(current, &pipe->waiting); + schedule(); + } + } + return bytes_written; + } + + uint32_t pipe_read(INODE ino, void *buffer, uint32_t size, uint32_t offset) + { + vfs_pipe_t *pipe = (vfs_pipe_t *)ino->data; + char *buf = (char *)buffer; + uint32_t bytes_read = 0; + while(bytes_read == 0) + { + while((pipe->write_pos - pipe->read_pos) > 0 && bytes_read < size) + { + buf[bytes_read] = pipe->buffer[pipe->read_pos % pipe->size]; + bytes_read++; + pipe->read_pos++; + } + scheduler_wake(&pipe->waiting); + if(bytes_read == 0) + { + scheduler_sleep(current, &pipe->waiting); + schedule(); + } + } + return bytes_read; + } + +Of course there should also be: + +- Sanity checking. +- A lock to prevent reading and writing at the same time. +- Handling of the cases where there are no readers or no writers. + +Note that the reader only blocks if no bytes at all have been read, +while the writer blocks if not all bytes have been written. + +Creating a new pipe is a bit special, though. +An ordinary pipe has two ends, one for writing and one for reading. The +best way I found to implement this is to have the pipe represented by +two separate inodes - one that can be written to and one that can be +read from. The `data` field of the `vfs_node_st` struct of the two +inodes point to the same pipe struct. + + typedef struct vfs_pipe + { + char *buffer; + uint32_t size; + uint32_t read_pos; + uint32_t write_pos; + uint32_t readers; + uint32_t writers; + semaphore_t semaphore; + list_head_t waiting; + } vfs_pipe_t; + +The `readers` and `writers` fields are incremented or decremented when the read or +write end respectively are opened or closed... respectively... + +Creating a new pipe (somewhat simplified): + + uint32_t new_pipe(uint32_t size, INODE *nodes) + { + vfs_pipe_t *pipe = calloc(1, sizeof(vfs_pipe_t)); + pipe->buffer = malloc(size); + pipe->size = size; + + nodes[0] = calloc(1, sizeof(vfs_node_t)); + nodes[0]->d = &pipe_driver; + nodes[0]->data = pipe; + nodes[0]->flags = PIPE_READ; + + nodes[1] = calloc(1, sizeof(vfs_node_t)); + nodes[1]->d = &pipe_driver; + nodes[1]->data = pipe; + nodes[1]->flags = PIPE_WRITE; + + return 0; + } + + +###Using pipes +When starting up the keyboard driver, a pipe is created and connected to +`stdin` - the first file descriptor - of the current process. + + void keyboard_init() + { + INODE tmp[2]; + new_pipe(1024, tmp); + + keyboard_pipe = tmp[1]; + vfs_open(keyboard_pipe, O_WRONLY); + + process_t *p = current->proc; + p->fd[0] = calloc(1, sizeof(file_desc_t)); + fd_get(p->fd[0]); + p->fd[0]->ino = tmp[0]; + p->fd[0]->flags = O_RDONLY; + vfs_open(tmp[0], O_RDONLY); + + register_int_handler(IRQ2INT(IRQ_KBD), keyboard_handler); + } + +The keyboard handler (based off +[Brandon Friesen's tutorial](http://www.osdever.net/bkerndev/Docs/keyboard.htm) + writes each decoded key to the pipe: + + registers_t *keyboard_handler(registers_t *r) + { + char code[2]; + + [...] + + while(inb(KBD_STATUS_PORT) & 0x2); + scancode = inb(KBD_DATA_PORT); + code[0] = keyboard_decode(scancode); + code[1] = '\0'; + if(code[0]) + { + vfs_write(keyboard_pipe, (char *)code, 1, 0); + } + + [...] + + } + +At a later stage, I'll probably make the keyboard driver in the kernel +just pass the scancodes to the pipe and have the decoding done by +a terminal process which in turn pipes the decoded keys on to the shell, +and so on... + +Next step is to add an actual filesystem! Of sorts... diff --git a/pages/2014-01-27-TAR-filesystem.md b/pages/2014-01-27-TAR-filesystem.md new file mode 100644 index 0000000..0e4ed52 --- /dev/null +++ b/pages/2014-01-27-TAR-filesystem.md @@ -0,0 +1,224 @@ +layout: post +title: "TAR Filesystem" +subtitle: "Almost a useful system" +tags: [osdev] + +It's finally time to implement an actuall filesystem, and all the hard +work with the VFS framework will pay off. + +For my first filesystem, I chose the tape archive format - also known as +a tarball. It's a bit like what +[James Molloy](http://www.jamesmolloy.co.uk/tutorial_html/8.-The%20VFS%20and%20the%20initrd.html) +did but with support for directories. + +###Tar file format +The tar file format - as the name implies - was designed for storing +files on magnetic tape, which can only be read and written sequentially. +Therefore, there is no index of the files in the archive, but each file +is preceded by a data block in human-readable format. + +In the POSIX standard of 1988, the data block has the following format: + + typedef struct + { + unsigned char name[100]; + unsigned char mode[8]; + unsigned char uid[8]; + unsigned char gid[8]; + unsigned char size[12]; + unsigned char mtime[12]; + unsigned char checksum[8]; + unsigned char type[1]; + unsigned char linkname[100]; + unsigned char tar_indicator[6]; + unsigned char tar_version[2]; + unsigned char owner[32]; + unsigned char group[32]; + unsigned char device_major[8]; + unsigned char device_minor[8]; + unsigned char prefix[155]; + }__attribute__((packed)) tar_header_t; + +The data block is 500 bytes long, but the data starts 512 (one standard +disk sector) bytes after the start of the data block +The data itself is also padded so that the next data block starts at +a 512 byte boundary. + +For historical reasons all numerical values (i.e. `uid`, `gid`, `size`, +`mtime`, `checksum`, `device_major` and `device_minor`) are in __octal__ +ascii format (ascii `'0'` to `'7'`) padded with leading zeroes and +terminated with a `null` character (`0x00`) or space (`0x20`). + +###Reshaping the tree +The TAR format is very good for storing data on tape where read and +write operations are sequential, but it makes less sense once the files +are loaded into ram and you might want to access them randomly. + +Instead, I reshape the file list into a file tree: + + tree_t *build_tar_tree(tar_header_t *tar) + { + ... + while(tar->name[0]) + { + tartree_add_node(tree, tar, (char *)&tar->name); + uint32_t size; + sscanf((char *)&tar->size, "%o", &size); + tar = (tar_header_t *)((size_t)tar + size + 512); + if((size_t)tar % 512) + tar = (tar_header_t *)((uint32_t)tar + 512 - ((uint32_t)tar%512)) + } + ... + } + + void tartree_add_node(tree_t *tree, tar_header_t *tar, char *path) + { + ... + tree_node_t *node = tree->root; + char *p; + for(p = strtok(path, "/"); p; p = strtok(NULL, "/")) + { + int found = 0; + list_t *l; + for_each_in_list(&node->children) + { + ... + if(!strcmp(entry->name, p)) + { + found = 1; + node = tn; + break; + } + } + if(!found) + { + ... + tarfs_entry_t *n = malloc(sizeof(tar_entry_t)); + n->name = strdup(p); + n->tar = tar; + ... + tree_make_child(node, new); + node = new; + } + } + } + +Note that this assumes that the files and directories of the tar archive +are in top-down order, e.g. that `/bin` is before `/bin/echo`, otherwise +strange things happen. Deterministic and expected things, mind you, but +strange. + +###Mounting the filesystem +The tarfs driver makes use of the data field in the vfs node to store +the tar tree. + + INODE tarfs_init(tar_header_t *tar) + { + vfs_node_t *node = calloc(1, sizeof(vfs_node_t)); + strcpy(node->name, "tarfs"); + node->d = &tarfs_driver; + node->type = FS_DIRECTORY; + + tree_t *tar_tree = build_tar_tree(tar); + node->data = tar_tree->root; + free(tar_tree); + + return node; + } + +I then add the following to my kernel initialization function: + + tar_header_t *tarfs_location = assert_higher((tar_header_t *)mods[0].mod_start); + vfs_mount("/", tarfs_init(tarfs_location)); + +where `mods` is the multiboot modules table as loaded by grub. + +###The tarfs driver +Finally, the tarfs driver functions. For now I only need to implement +`read()` and `finddir()`. + + INODE tar_finddir(INODE dir, const char *name) + { + tree_node_t *tn = (tree_node_t *)dir->data; + list_t *l; + for_each_in_list(&tn->children, l) + { + tree_node_t *cn = list_entry(l, tree_node_t, siblings); + ... + if(!strcmp(entry->name, name) + { + INODE node = calloc(1, sizeof(vfs_node_t)); + strcpy(node->name, entry->name); + node->d = &tarfs_driver; + node->data = (void *)cn; + sscanf((char *)&entry->tar->size, "%o", &node->length); + if(entry->tar->type[0] == TAR_TYPE_DIR) + node->type = FS_DIRECTORY; + else + node->type = FS_FILE; + return node; + } + } + return 0; + } + +`Finddir` allocates space for a new inode for each file that is searched +for. It's up to the caller to free the inode when it's done with it. +This should be true for all `finddir` functions, but I think I've missed +it at a few places... Someday I will clean up all my memory leaks. + +Anyway, `finddir` also finds the right node in the tarfs tree and puts +it in the `data` field of the inode. + + uint32_t read_tar(INODE node, void *buffer, uint32_t size, uint32_t offset) + { + tree_node_t *tn = (tree_node_t *)node->data; + tarfs_entry_t *te = (tarfs_entry_t *)tn->item; + tar_header_t *tar = te->tar; + + uint32_t tsz; + sscanf((char *)&tar->size, "%o", &tsz); + if(offset > tsz) return EOF; + + if((size + offset) > tsz) size = tsz - offset; + + offset = offset + (uint32_t)tar + 512; + memcpy(buffer, (void *)offset, size); + if(size == tsz - offset) + ((char *)buffer)[size] = EOF; + + return size; + } + +###Using it +Now, all I need to do in order to make read-only files accessible to my +kernel is put them in a directory and run + + $ tar -cf tarfs.tar tarfs/* + +and then make sure `tarfs.tar` is loaded as a multiboot module by qemu + + $ qemu-system-i386 -kernel kernel -initrd tarfs.tar + +or by adding a line to the grub `menu.lst` file. + + module /boot/tarfs.tar + +###Final note +While writing this post, I got back to polishing this code and added +`readdir` for the tarfs. I also added buffering of inodes, so that if +the same file is asked for twice, the same inode is returned. This meant +I had to add a `flush` function to the driver structure. + +I also rewrote a bit of both `vfs_finddir` and `vfs_readdir`. This in +turn forced me to go back on a design decision. The VFS can now only +mount new devices onto already existing paths (excluding `/`). + +Just in case I'd write something in coming posts that might confuse +you... + +### Git +I finally decided to push upstream, so here's the latest commit: +[843520405e](https://github.com/thomasloven/os5/tree/843520405eb950413c75b2ca2a0ee638f15e7f4e). +It still contains some stuff I haven't written about, though. + diff --git a/pages/2014-01-28-Process-Syscalls.md b/pages/2014-01-28-Process-Syscalls.md new file mode 100644 index 0000000..346b3f3 --- /dev/null +++ b/pages/2014-01-28-Process-Syscalls.md @@ -0,0 +1,265 @@ +layout: post +title: "Process Syscalls" +subtitle: "Almost caught up..." +tags: [osdev] + +I've described my [syscall interface](/blog/2013/06/System-Calls/) previously. I've also described +the [file-related syscalls](/blog/2013/12/VFS-syscalls/). In order to build [newlib](http://wiki.osdev.org/Porting_Newlib), some more +syscalls are required. + +Those are: + + void *sbrk(int incr); + int getpid(); + int fork(); + void _exit(int rc); + int wait(int *status); + int kill(int pid, int sig); + int execve(char *name, char **argv, char **env); + +Let's just go through them one at a time: + +###sbrk +`sbrk` is a bit special, since it actually has two versions - one for +kernel use and one for user space processes. + +The user space one makes use of the [process memory +manager](/blog/2013/06/Even-More-Memory/) to return +a chunk of new memory for the `malloc` functions. + + void *usr_sbrk(int incr) + { + process_t *p = current->proc; + mem_area_t *area = find_including(p, p->mm.data_end); + if(area) + { + if(area->end > (p->mm.data_end + incr)) + { + // The current memory area is large enough + } else { + // Increase memory area + new_area(p, area->end, p->mm.data_end + incr, \ + MM_FLAG_READ | MM_FLAG_WRITE | MM_FLAG_CANSHARE, \ + MM_TYPE_DATA); + } + } else { + // Create a new memory area + new-area(p, p->mm.data_end, p->mm.data_end + incr, \ + MM_FLAG_READ | MM_FLAG_WRITE | MM_FLAG_CANSHARE, \ + MM_TYPE_DATA); + } + p->mm.data_end = p->mm.data_end + incr; + return (void *)(p->mm.data_end - incr); + } + +The kernel space version is just a simple linear allocator + + uintptr_t kmem_top = KERNEL_HEAP_START; + uintptr_t kmem_ptr = KERNEL_HEAP_START; + void *sbrk(int incr) + { + if(kmem_ptr + incr > KERNEL_HEAP_END) + { + // PANIC! + ... + } + while(kmem_top < kmem_ptr + incr) + { + vmm_page_set(kmem_top, vmm_page_val(pmm_alloc_page(), \ + PAGE_PRESENT | PAGE_WRITE)); + kmem_top += PAGE_SIZE; + } + kmem_ptr = kmem_ptr + incr; + return (void *)kmem_ptr - incr; + } + +Hopefully it's obvious why the kernel one is called `sbrk` while the +user one has a different name. + +###getpid +`getpid` is rather obvious: + + int getpid() + { + return current->proc->pid; + } + +###fork +`fork` clones the current process and starts a new thread of execution. + + int fork() + { + process_t *child = fork_process(); + thread_t *ch_thread = list_entry(child->threads.next, thread_t, process_threads); + ch_thread->r.eax = 0; + scheduler_insert(ch_thread); + return child->pid; + } + +###_exit +`_exit` stops a program and wakes up any processes that are sleeping on +it. + + void _exit(int rc) + { + process_t *p = current->proc; + + // Close all open files + int i; + for(i = 0; i < NUM_FILEDES; i++) + { + if(p->fd[i]) + close(i); + } + exit_process(current->proc, rc); + current->state = THREAD_STATE_FINISHED; + schedule(); + } + +`_exit` doesn't return, and in fact `schedule()` will never return as +far as this thread is concerned. +Note that the process still exists. It is not completely destroyed until +its parent process has executed a `wait` syscall. + +###wait +Actually, I didn't quite implement `wait` yet, but instead use +a `waitpid` for now, which is a bit more specific: + + int waitpid(int pid) + { + process_t *proc = get_process(pid); + while(proc->state != PROC_STATE_FINISHED) + { + scheduler_sleep(current, &proc->waiting); + schedule(); + } + int ret = proc->exit_code; + free_process(proc); + return ret; + } + +This _should_ contain a check that process `pid` is a child of the +current process too... + +###kill +I'll let `kill` wait for now. My next post will probably be on signals, +so it'll fit better there anyway. + +###execve +Now, here's the big stuff. + +`execve` launches new programs from the filesystem, so what it has to do +is: + +- Find the correct executable +- Save the arguments +- Save the environmental variables +- Free the user memory space +- Load the executable +- Prepare a new user stack +- Restore the arguments and environment variables + +First of all, the executable is found. If it doesn't exist, we want to +fail as early as possible - before we destroy everything. + + int execve(char *name, char **argv, char **env) + { + INODE executable = vfs_namei(name); + if(!executable) + { + errno = ENOENT; + return -1; + } + ... + +The arguments and environment are null-terminated lists of strings +stored in user space, so they have to be copied into kernel space before +the user space is destroyed: + + ... + usigned int envc = 0; + char **temp_env = 0; + if(env) + { + while(env[envc++]); // Count number of environmental variables + + temp_env = calloc(envc, sizeof(char *)); + unsigned int i = 0; + while(env[i]) + { + temp_env[i] = strdup(env[i]); + i++; + } + } + + // Do the same thing for argv + ... + +Next, Delete all memory from the previous executable and [load the new +one](/blog/2013/08/Loading-Elf/): + + procmm_removeall(current->proc); + load_elf(executable); + current->r.eax = current->r.ebx = current->r.ecx = \ + current->r.edx = 0; + +We need to put the arguments and environment back into the new +executable's user space, so a new stack area is created: + + new_area(current->proc, USER_STACK_TOP, USER_STACK_TOP, \ + MM_FLAG_WRITE | MM_FLAG_GROWSDOWN | MM_FLAG_ADDONUSE, \ + MM_TYPE_STACK); + current->kernel_thread = (registers_t *)current; + uint32_t *pos = (uint32_t *)USER_STACK_TOP; + +Then, copy the environment and arguments onto the stack: + + if(env) + { + pos = pos - envc*sizeof(char *)/sizeof(uint32_t) - 1; + env = (char **)pos; + int i = 0; + while(temp_env[i]) + { + pos = pos - strlen(temp_env[i])/sizeof(uint32_t) - 2; + memcpy(pos, temp_env[i], strlen(temp_env[i])+1); + env[i] = (char *)pos; + i++; + } + env[envc-1] = 0; + } + // Do the same for argc + ... + +And finally, push the argument count, argument list and environment list +onto the stack: + + pos = pos - 3; + pos[0] = (uint32_t)argc - 1; + pos[1] = (uint32_t)argv; + pos[2] = (uint32_t)env; + + current->r.useresp = current->r.ebp = (uint32_t)pos; + current->r.ecx = (uint32_t)pos; + + return 0; + } + +This pushes argc, argv and env as arguments to the executabl. We can +use this to set up the `environ` variable of newlib. The crt0 in newlib +pushes `ecx` to the stack and then calls `_init` which looks like this: + + extern char **environ; + void _init(uint32_t *args) + { + int argc; + char **argv; + if(args) + { + argc = args[0]; + argv = (char **)args[1]; + environ = (char **)args[2]; + } else {...} + + exit(main(argc, argv)); + } diff --git a/pages/2014-01-30-Signals.md b/pages/2014-01-30-Signals.md new file mode 100644 index 0000000..7f63af9 --- /dev/null +++ b/pages/2014-01-30-Signals.md @@ -0,0 +1,180 @@ +layout: post +title: "Signals" +subtitle: "Another rewrite" +tags: [osdev] + +Time for another live rewrite - or at least a restructuring. + +###Signals in newlib + +Newlib has a kind of signals built in without any help from the kernel. +Those signals can't be sent between processes, though, so I'd like to +implement my own. + +I'll just look at `signal` and `kill` and ignore things like +`sigaction` for now. + +First of all, in order to compile newlib with kernel supported signals, +you need the line + + newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" + +in your entry in `newlib/configure.host` as described in [the osdev +wiki](http://wiki.osdev.org/OS_Specific_Toolchain#Signal_handling). + +Then you need the syscalls: + + sig_t signal(int signum, sig_t handler); + int kill(int pid, int sig); + +###Raising signals + +The [posix +specification](http://pubs.opengroup.org/onlinepubs/9699919799/) +contains a lot of rules about how signals should behave in a number of +situations. I probably got a lot of them wrong, but I'll try to fix them +as I go along later. + +The way I chose to implement signals was through a list for each +process. When a signal is sent using `kill` or similar, a `signal_t` + + typedef struct + { + uint32_t sig; + uint32_t sender; + list_head_t queue; + } signal_t; + +is created and added to the processes list: + + int signal_process(int pid, int signum) + { + process_t *p = get_process(pid); + ... + signal_t *signal = calloc(1, sizeof(signal_t)); + signal->sig = signum; + signal->sender = current->proc->pid; + init_list(signal->queue); + append_to_list(p->signal_queue, signal->queue); + + if(p == current->proc) + { + handle_signals(current); + } + return 0; + } + +If the currently running thread is in the process being signalled, we +handle the signals immediately. Otherwise it can wait for a bit. + +`signal_process` is called by the `kill` syscall. + +###The signal syscall + +The `signal` syscall lets the process select how to handle a certain +signal. Each process also contains a table of `sig_t` and the `signal` +syscall calls the following function: + + sig_t switch_handler(int signum, sig_t handler) + { + ... + sig_t old = current->proc->signal_handler[signum]; + current->proc->signal_handler[signum] = handler; + return old; + } + +The cut out part of this function contains code to make sure the handler +of signal 9 (`SIGKILL`) is never changed from `SIG_DFL`. + +###Handling signals + +Signals should be handled as soon as possible, though there's no reason +to let the receiving process skip the line in the scheduler. So as soon +as the process continues running should be soon enough. + +I chose to hook into the my interrupt handler: + + registers_t *idt_handler(registers_t *r) + { + ... + if(int_handlers[r->int_no) + { + ... + registers_t *ret = int_handlers[r->int_no](r); + + if((ret->cs & 0x3) == 0x3) + { + ret = (registers_t *)handle_signals((thread_t *)ret); + ... + } + ... + return ret + } + ... + } + +So, what does `handle_signals` actually do? + +It start by finding the signal queue of the process to which the passed +thread belongs and steps through it one entry at a time. If a signal is +queued and not blocked (actual blocking is not implemented yet) it +checks what the handler for that signal number is. The handler may be +`SIG_IGN`, `SIG_DFL` or a pointer to a function in userspace. + +If the handler is set to `SIG_DFL` the function looks up the correct +default signal handler in a table and calls it. It may be one of the +following: + + void sighandler_ignore(int num) + { + (void)num; + } + void sighandler_terminate(int num) + { + fprintf(stderr,, "Process %x terminated by signal %x\n", \ + current->proc->pid, num); + _exit(num); + } + void sighandler_coredump(int num) + { /* Same as above */ } + void sighandler_stop(int num) + { /* Not implemented yet */ } + void sighandler_continue(int num) + { /* Not implemented yet */ } + +If the handler is a function a new thread is created to handle it: + + ... + sig_t handler = th->proc->signal_handler[signal->sig]; + thread_t *h = new_thread((void (*)(void))handler, 1); + + append_to_list(th->proc->threads, h->process_threads); + h->proc = th->proc; + uint32_t *stack = ((uint32_t *)th->r.useresp; + *--stack = signal->sig; + *--stack = SIGNAL_RETURN_ADDRESS; + h->r.useresp = h->r.ebp = (uint32_t)stack; + remove_from_list(signal->queue); + free(signal); + + scheduler_remove(h); + scheduler_sleep(th, &h->waiting); + scheduler_cheat(h); + schedule(); + } + +This creates a new thread and pushes the signal number (as an argument) +and a return address to the threads stack. It then places the new thread +at the beginning of the schedulers queue and switches to it. + +`SIGNAL_RETURN_ADDRESS` is chosen to cause a page fault when the signal +handler returns. The page fault handler catches this and recognizes the +address so that the thread can be safely destroyed. + +Now the page fault handler can also be setup to send a `SIGSEGV` signal +when a userspace thread page faults. + +###Code + +Git commit +[1ec132c](https://github.com/thomasloven/os5/tree/1ec132ce60ba627e522019d456e0cec993193153) diff --git a/pages/2014-01-31-Debug-Printing.md b/pages/2014-01-31-Debug-Printing.md new file mode 100644 index 0000000..6058cba --- /dev/null +++ b/pages/2014-01-31-Debug-Printing.md @@ -0,0 +1,116 @@ +layout: post +title: "Debug Printing" +subtitle: "Running out of space" +tags: [osdev] + +I still haven't quite caught up with all the stuff I wanted to write +about [back in August](/blog/2013/08/Catching-Up/), but at some point +when I started to write little userspace programs that wrote stuff to +the screen, I thought my kernel debug messages started to get in the +way. + +I'm still not ready to give up debug messages from the kernel, so the +best alternative seemed to be to output them to something else, such as +a serial port. + +Writing to a serial port [is rather +easy](http://wiki.osdev.org/Serial_Ports), so there's no need for me to +go into detail there. I made a few changes to my emulation setup, +though, that made showing the debug messages a bit nicer. + +###Tmux + +I've described how I use tmux with qemu, gdb and telnet +[before](/blog/2013/02/New-Environment/). It was easy to add another +pane which displays the debug information, but one thing at a time. +Here's what I did in a bash script: + + tmux split-window -h 'qemu-system-i386 -kernel build/kernel/kernel -initrd "build/tarfs.tar" -curses -monitor telnet:localhost:4444,server -s -S -serial file:serial.out' + +This opens a new tmux pane with qemu running my kernel and loading +`tarfs.tar` as a multiboot module. The `-monitor` flag starts a telnet +server for controlling the emulator. `-s` starts a gdb server at tcp +port 1234 and `-S` makes the emulator wait for a command before it +starts running the kernel. Finally, the `-serial` flag saves all output +from serial port 1 to a file. + +The next step is: + + tmux split-window -v 'tail -f serial.out | util/colorize.sh' + +which opens up another tmux pane that displays the serial output using +the auto-updating feature of `tail`. The script `colorize.sh` colorizes +certain words of the output: + + #!/usr/bin/env bash + + C_NO=`echo -e "\\033[0m"` + C_RED=`echo -e "\\033[31m"` + C_GREEN=`echo -e "\\033[32m"` + C_YELLOW=`echo -e "\\033[33m"` + C_BLUE=`echo -e "\\033[36m"` + + while read line; do + echo $line | sed \ + -e "s/\(\[info\]\)/${C_BLUE}\1$[C_NO}/" \ + -e "s/\(\[status\]\)/${C_GREEN}\1$[C_NO}/" \ + -e "s/\(\[warning\]\)/${C_YELLOW}\1$[C_NO}/" \ + -e "s/\(\[error\]\)/${C_RED}\1$[C_NO}/" + done + +Next is + + tmux select-pane -L + tmux split-window -v 'i586-elf-gdb' + tmux select-pane -U + telnet localhost 4444 + +Which opens a new pane for the `gdb` debugger and then moves back to the +first pane to open the telnet terminal. + +[![Debug +Printing](/media/img/debug_print.png)](/media/img/debug_print_full.png) + +###Git + +Notice the yellow lines in that screenshot? +The ones that say + + Kernel git data: [5e6074a (dirty)] Fri Mar 7 13:45:31 2014 +0100 + (HEAD, harddrive): Ext2 unlink function. Untested. + Kernel compilation: Mar 7 2014 14:06:27 + +The data for this is stored in a special file called `version.c` + + #include + + char * __kernel_git_hash = GITHASH; + char * __kernel_git_date = GITDATE; + int __kernel_git_dirty = GITDIRTY; + char * __kernel_git_message = GITMESSAGE; + char * __kernel_git_branch = GITBRANCH; + + char * __kernel_build_date = __DATE__; + char * __kernel_build_time = __TIME__; + +which has a special line in the kernel makefile: + + version.o: CFLAGS += -DGITHASH='$(shell git log -1 --pretty="tformat:%h")' \ + -DGITDATE='$(shell git log -1 --pretty="tformat:%cd")' \ + -DGITDIRTY='$(shell [[ -n `git status -s 2> /dev/null` ]] && echo 1 || echo 0)' \ + -DGITMESSATE='$(shell git log -1 --pretty="tformat:%s")' \ + -DGITBRANCH='$(shell git log -1 --pretty="tformat:%d")' + +A few more lines makes sure `version.c` is always recompiled if any +other part of the kernel is: + + kernel: $(kernel_objects) + rm -f version.o + $(MAKE) version.o + $(LINK) + +Obviously, this is a bit simplified. But not much. I might make a post +about my makefiles some day... + +But with this, I've kind of caught up. Neat! Back to programming ahead +of myself! diff --git a/pages/2014-04-15-Dito-Framework.md b/pages/2014-04-15-Dito-Framework.md new file mode 100644 index 0000000..a699a1e --- /dev/null +++ b/pages/2014-04-15-Dito-Framework.md @@ -0,0 +1,169 @@ +layout: post +title: "DITo - Framework" +subtitle: "the Disk Image TOols" +tags: [osdev] + +In my osdeving, I was starting to reach the point where a disk driver +seemed like the obvious next step. This was pretty much entirely unknown +territory for me. In fact, my only experience from disks and filesystems +were from when I got started in osdeving and found some tutorial in pdf +form which described how to write a bootloader in asm that read a kernel +from a FAT12 floppy disk. + +Since then, whenever I needed a disk image for testing, I'd go through +a painful process of finding an image with GRUB preinstalled, mounting +it using a discontinued third party application, copy stuff to it, hope +I would be able to unmount it without the entire computer freezing up +and finally pray that it worked when I started the emulator. In short, +trying to manage a disk image from the command line in OSX sucks. + +That's when I realized I could kill two birds with one stone. By writing +a tool for managing files in a disk image without mounting it, I could +gain understanding and experience of working with filesystems. If I +wrote it well, I would probably be able to reuse much of the code for +my kernel as well. At the time I had just finished my master thesis and +had all but signed the contract for my current employment, so I had some +free time on my hands while the paperwork fell through. + +The result was [DITo - Disk Image +Tools](https://github.com/thomasloven/dito), a c library and set of +applications for creating and handling disk images from the command +line. + +Recently, I actually did copy some of the code from DITo into my kernel. +Immagine my surprise when it actually worked like a charm after changing +only a few function calls. + +I've since realized a couple of mistakes though, and decided to rewrite +some parts from scratch. Let's go! + +###Drive operations + +The basic operations of DITo are reading from or writing to image files +or disk drives. Each drive type has a driver + + typedef struct drive_driver + { + int (*open)(struct drive_t *d, int flags); + int (*close)(struct drive_t *d, int flags); + int (*read)(struct drive_t *d, void *buffer, size_t length, off_t offset); + int (*write)(struct drive_t *d, void *buffer, size_t length, off_t offset); + } drive_driver_t; + +The drive type contains a pointer to the driver and a pointer to some +arbitrary data used by the driver. + + typedef struct drive_t + { + struct drive_driver *d; + void *data; + } drive_t; + +Then there are some wrapper functions for performing the required +operations: + + int drive_open(struct drive_t *d, int flags) + { + if(d->d->open) + return d->d->open(d, flags); + else + return 0; + } + +and simmilar for `drive_close`, `drive_read` and `drive_write`. + +###Filesystem operations + +The next important part of DITo is the filesystem handling. After +thinking about it, the important primitive functions for all file +operations I could think about are all in a filesystem driver struct: + + struct fs_driver + { + INODE (*open)(struct fs_t *fs, const char *path, int flags); + int (*close)(struct fs_t *fs, INODE ino); + int (*read)(struct fs_t *fs, INODE ino, void *buffer, size_t length, off_t offset); + int (*write)(struct fs_t *fs, INODE ino, void *buffer, size_t length, off_t offset); + int (*truncate)(struct fs_t *fs, INODE ino, off_t length); + int (*stat)(struct fs_t *fs, INODE ino, struct stat *st); + + int (*touch)(struct fs_t *fs, const char *path, struct stat *st); + int (*link)(struct fs_t *fs, const char *path1, const char *path2); + int (*unlink)(struct fs_t *fs, const char *path); + dirent_t *(*readdir)(struct fs_t *fs, INODE dir, unsigned int num); + }; + +The `fs_t` type contains a pointer to the driver, a pointer to the drive +and a general data pointer. + + typedef struct fs_t + { + struct fs_driver *driver; + drive_t *d; + void *data; + } fs_t; + +The wrapper functions `fs_open`, `fs_close` and so on work the same way +as the `drive_*` functions. + +The `INODE` type is a pointer to a struct containing a pointer to the +filesystem, a unique inode number and a pointer to arbitrary data. + + struct ino_st + { + fs_t *fs; + unsigned int ino; + void *data; + }; + + typedef struct ino_st * INODE; + +And that's the basic framework. As you probably notice, the same `fs_t` +pointer is passed to most functions twice. Once as `fs` and once as +`ino->fs`. I decided to keep it this way to get the function interface +consistant, and also for the possible sanity check `fs == ino->fs`. + +The idea behind the framework is that the same functions should be +usable for all kinds of filesystems on all kinds of drives. For example, +if I have one image of an FAT floppy disk with a file I want copied to +the ext2 formated second partition of a hard drive image, I could do +someting like this: + + drive_t *fat_disk = image_drive("floppy.img"); + drive_open(fat_disk, READ_FLAG); + drive_t *ext2_disk = image_drive("harddrive.img"); + drive_open(ext2_disk, READ_WRITE_FLAG); + drive_t *ext2_partition = mbr_drive(ext2_disk, 2); + drive_open(ext2_partition, READ_WRITE_FLAG); + + fs_t *fat = fat_fs(fat_disk); + fs_t *ext2 = ext2_fs(ext2_partition); + + INODE source = fs_open(fat, "/path/to/file", READ_FLAG); + struct st *st = malloc(sizeof(struct st)); + fs_struct(fat, source, st); + + fs_touch(ext2, "/new/path", st); + INODE destination = fs_open(ext2, "/new/path", WRITE_FLAG); + + void *buffer = malloc(BUFER_SIZE); + off_t offset = 0; + off_t add = 0; + while(add = fs_read(fat, source, buffer, BUFFER_SIZE, offset)) + { + fs_write(ext2, destination, buffer, BUFFER_SIZE, offset); + offset += add; + } + + fs_close(destination); + fs_close(source); + + drive_close(ext2_partition); + drive_close(fat_disk); + +Which of couse will eventually become its own tool so that the actual +work the end user has to do becomes: + + $ dito-cp floppy.img:/path/to/file harddrive.img:2:/new/path + + diff --git a/pages/2014-04-16-Dito-Drives.md b/pages/2014-04-16-Dito-Drives.md new file mode 100644 index 0000000..2aac81a --- /dev/null +++ b/pages/2014-04-16-Dito-Drives.md @@ -0,0 +1,126 @@ +layout: post +title: "DITo - Drives" +subtitle: "Exploring the MBR" +tags: [osdev] + +Let's write a few drive drivers. + +### Pure image + +The simplest image we'd have to handle is a plain image file, such as +a floppy disk. There's only a single partition and a one-to-one mapping +from the image to the drive. + +First of all, let's think of what data we'd need to store. The filename +might be nice to have, and probably a pointer to the opened file. Would +hate to lose that... + + struct im_data + { + char *filename; + FILE *file; + }; + +The functions required for the driver would then make use of the +c standard library: + + int im_open(drive_t *d, int flags) + { + struct im_data *data = d->data; + data->file = fopen(data->filename, flags); + return 1; + } + int im_close(drive_t *d, int flags) + { + struct im_data *data = d->data; + fclose(data->file); + return 1; + } + int im_read(drive_t *d, void *buffer, size_t length, off_t offset) + { + struct im_data *data = d->data; + fseek(data->file, offset, SEEK_SET); + return fread(buffer, length, 1, data->file); + } + int im_write(drive_t *d, void *buffer, size_t length, off_t offset) + { + struct im_data *data = d->data; + fseek(data->file, offset, SEEK_SET); + return fwrite(buffer, length, 1, data->file); + } + +The function for setting up the drive is equally simple: + + drive_driver_t im_driver = + { + im_open, + im_close, + im_read, + im_write, + }; + + drive_t *image_drive(const char *filename) + { + drive_t *d = calloc(1, sizeof(drive_t)); + struct im_data *data = calloc(1, sizeof(struct im_data)); + + d->driver = &im_driver; + d->data = data; + data->filename = strndup(filename, FILENAME_MAX_LENGTH); + + return d; + } + +As always, I've stripped away all sanity checking and error handling. + +###MBR formated disks + +In order to use a harddrive for different things (like file storage or +swap space), it can be split into several partitions. One standard for +doing this is through a table in the MBR or Master Boot Record of the +disk. + +The MBR starts with 436 bytes of space for a bootloader, then there's a +10 byte disk ID followed by 4 partition table entries. + +The entries of the table has the following structure: + + struct MBR + { + uint8_t boot_indicator; + uint8_t start_chs[3]; + uint8_t system_id; + uint8_t end_chs[3]; + uint32_t start_lba; + uint32_t num_sectors; + }__attribute__((packed)); + +_CHS_ and _LBA_ are different ways of addressing sectors of the disk. + +CHS - or Cylinder Sector Head - addresses the sectors by their physical +location on the disk. The format in this table is first 8 bytes for +the wanted head (two heads per harddrive platter), then 6 bits for the +sector (angle on the platter) and finally 10 bits for the cylinder +(distance from platter center). This method requires knowledge of the +actual physical structure of the drive and maxes out at around 8 GB with +512 byte sectors. + +LBA - or Logical Block Addressing - leaves all that to the drive and +addresses the sectors by a single number. With 512 byte sectors, this is +useful up to about 2 GB. + +For our purposes, the fields `start_lba` and `num_sectors` are all we +need (and `system_id` to check if the partition table entry is used). + +###MBR driver + +The driver for reading from a partition is pretty alike the plain image +driver. Principally, the only difference is that 512 times `start_lba` +has to be added to the offset for reading and writing, and that care +must be taken not to allow reading or writing outside of the partition +boundaries. + +I even wrote the driver to piggyback on a different driver. I.e. the +function for creating the drive object requires a drive object as +argument (as in the [example in the previous +post](/blog/2014/04/Dito-Framework/)). diff --git a/pages/2014-04-17-Dito-Ext2.md b/pages/2014-04-17-Dito-Ext2.md new file mode 100644 index 0000000..f98aaa6 --- /dev/null +++ b/pages/2014-04-17-Dito-Ext2.md @@ -0,0 +1,8 @@ +layout: post +title: "DITo - Ext2" +subtitle: "A beginning..." +tags: [osdev] + +It's finally time to start looking at an actual filesystem. + +I chose to begin with ext2. diff --git a/pages/about-page.md b/pages/about-page.md new file mode 100644 index 0000000..add5c0b --- /dev/null +++ b/pages/about-page.md @@ -0,0 +1,13 @@ +title: About this page +permalink: /about/this-page/ + +I'm not really a ruby kind of guy, but this page runs on +[Jekyll](http://jekyllrb.com/) and [Sass.](http://sass-lang.com/) anyway. + +The color scheme is based on +[Solarized](http://ethanschoonover.com/solarized) and the font is +[DejaVu Serif](http://dejavu-fonts.org). + +Code snippets are displayed using +[google-code-prettify](http://code.google.com/p/google-code-prettify/) with +some custom syntax files by me. diff --git a/pages/about.md b/pages/about.md new file mode 100644 index 0000000..ceb4e89 --- /dev/null +++ b/pages/about.md @@ -0,0 +1,39 @@ +title: About me +permalink: /about/ + +Thomas Lovén +------------ + + +Born in Karlskrona in the south of Sweden. Lived there for 18 years +before doing army service in Eksjö and then moving to Gothenburg for +studying. + +I'm currently 26, newly wed and back in Karlskrona. + +On my free time I play clarinet or tinker with some electronics or +programming project. + +Education +--------- +I have a masters degree in engineering physics with a Complex Adaptive +Systems specialisation from Chalmers University of Technology in +Gothenburg. + +[Complex Adaptive Systems](http://studycas.com) focuses on describing +and analyzing complex or stochastic systems as well as adaptive +problem solving methods. Some courses I have read are Neural Networks, +Biologically Inspired Optimization Algorithms, Dynamical Systems and +Computational Biology. + +[Further details](/about/education/) + +Résumé +------ + +Outdated. Will return after update. + +About the page +-------------- +[Further details](/about/this-page/) + diff --git a/pages/education.md b/pages/education.md new file mode 100644 index 0000000..eb24703 --- /dev/null +++ b/pages/education.md @@ -0,0 +1,79 @@ +title: About me - Education details +permalink: /about/education/ + +Teknisk fysik +------------- + +Teknisk fysik - Engineering physics - is a bachelors programme at Chalmers University of Technology. +Courses are held in Swedish. +Translation and grades can be provided on request. + +I earned my bachelors degree in 2012. + + TDA305 Datorintroduktion 1,5hp + ESS115 Elektriska nät och system 7,5hp + EEF031 Elektromagnetisk fältteori 7,5hp + TIF080 Experimentell fysik 1 - mätteknik 9hp + TIF090 Experimentell fysik 2 - bas 4,5hp + FFY011 Fasta tillståndets fysik 7,5hp + MVE035 Flervariabelanalys 6hp + MVE030 Fourieranalys 6hp + TIF010 Fysiken omkring oss 7,5hp + TMA970 Inledande matematisk analys 6hp + FKA150 Inledande teknisk kommunikation 1,5hp + TIFX02 Kandidatarbete vid Teknisk fysik 15hp + MVE025 Komplex matematisk analys 6hp + FUF040 Kvantfysik 6hp + TMA660 Linjär algebra och geometri 4,5hp + TMA671 Linjär algebra och numerisk analys 7,5hp + TMA976 Matematisk analys, fortsättning 6hp + TMA321 Matematisk statistik 4,5hp + FFM515 Mekanik 1 7,5hp + FFM520 Mekanik 2 6hp + TIF075 Miljöfysik 4,5hp + FFY091 Optik 6hp + TIN211 Programmeringsteknik 6hp + ERE091 Reglerteknik 4,5hp + FUF045 Speciell relativitetsteori 4,5hp + TME055 Strömningsmekanik 4,5hp + FUF050 Subatomär fysik 6hp + FTF140 Termodynamik och statistisk fysik 7,5hp + TIF100 Tillämpad kvantfysik 4,5hp + FFM232 Vektorfält och klassisk fysik 4,5hp +{: .prettyprint .lang-betyg} + +###Bachelors thesis +For our bachelors thesis me, two of my fellow students at Engineering +physics and three students at Elektroteknik - roughly electrics and +electronics - developed, built and tested a wireless charing station for +cellular phones. + +Complex Adaptive Systems +------------------------ + +Complex Adaptive Systems is a masters programme at Chalmers University of Technology. +Courses are held in English +Grades can be provided on request. + +As of January 2013 I have just begun work on my Masters thesis. + + TIN092 Algorithms 7,5hp + FFR135 Artificial neural networks 7,5hp + FFR125 Autonomous agents 7,5hp + FFR141 Complex systems seminar 7,5hp + FFR110 Computational biology 1 7,5hp + TDA351 Cryptography 7,5hp + TIF115 Dynamical systems 7,5hp + TIF160 Humanoid robotics 7,5hp + RRY025 Image processing 7,5hp + MVE370 Matematik och samhälle 7,5hp + FFR120 Simulation of complex systems 7,5hp + FFR105 Stochastic optimization algorithms 7,5hp + MVE080 Vetenskaplig visualisering 7,5hp +{: .prettyprint .lang-betyg} + +__Matematik och samhälle__ translates to __Mathematics and society__. + +__Vetenskaplig visualisering__ translate to __Scientific visualization__. + + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4160ec6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,14 @@ +arrow==0.8.0 +click==6.6 +Flask==0.11.1 +Flask-FlatPages==0.6 +Frozen-Flask==0.13 +itsdangerous==0.24 +Jinja2==2.8 +Markdown==2.6.7 +MarkupSafe==0.23 +Pygments==2.1.3 +python-dateutil==2.5.3 +PyYAML==3.12 +six==1.10.0 +Werkzeug==0.11.11 diff --git a/sitebuilder.py b/sitebuilder.py new file mode 100755 index 0000000..6067a39 --- /dev/null +++ b/sitebuilder.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python +import sys +from os.path import basename +from glob import glob + +from flask import Flask, render_template, send_from_directory +from flask_flatpages import FlatPages +from flask_frozen import Freezer +import arrow + + +DEBUG = True +FLATPAGES_AUTO_RELOAD = DEBUG +FLATPAGES_EXTENSION = '.md' +FLATPAGES_ROOT = 'pages' + +app = Flask(__name__) +app.config.from_object(__name__) +pages = FlatPages(app) +freezer = Freezer(app) + +permalinks = {} +blogposts = [] +tags = set() +for page in pages: + parts = page.path.split('-') + if page.meta.get('permalink', None): + page.meta['url'] = page.meta['permalink'] + else: + page.meta['url'] = '/blog/{}/{}/{}/'.format(parts[0], parts[1], '-'.join(parts[3:])) + date = arrow.get('-'.join(parts[0:3])) + page.meta['date'] = date + page.meta['datestr'] = date.format('D MMM YYYY') + blogposts.append(page) + tags.update(page.meta.get('tags', [])) + permalinks[page.meta['url']] = page +blogposts = sorted(blogposts, key=lambda p: p.meta['date'], reverse=True) + +# Static files +@app.route("/src/") +def scripts(path): + return send_from_directory('src', path) +@app.route("/media/") +def media(path): + return send_from_directory('media', path) +@app.route("/favicon.ico") +def favicon(): + return send_from_directory('src', 'favicon.ico') + + +@app.route("/") +def index(): + return "Hello World!" + +@app.route("/") +def permalink(path): + page = permalinks['/'+path] + if path.startswith('blog/'): + return render_template('post.html', page=page) + return render_template('page.html', page=page) + +@app.route("/blog/") +def blog_default(): + return render_template('blog.html', posts=blogposts, tags=tags) + +@app.route("/blog//") +def tag(tag): + posts = [post for post in blogposts if tag in post.meta.get('tags', [])] + return render_template('blog.html', posts=posts, title=tag, tags=tags) + +if __name__ == "__main__": + if len(sys.argv) > 1 and sys.argv[1] == "build": + freezer.freeze() + else: + app.run() diff --git a/src/.sass-cache/901ce8d2e1ebb81b0d9ec7f3a7bc68cb2ace41f6/site-solarized.scssc b/src/.sass-cache/901ce8d2e1ebb81b0d9ec7f3a7bc68cb2ace41f6/site-solarized.scssc new file mode 100644 index 0000000..307769f Binary files /dev/null and b/src/.sass-cache/901ce8d2e1ebb81b0d9ec7f3a7bc68cb2ace41f6/site-solarized.scssc differ diff --git a/src/Averia-Regular.ttf b/src/Averia-Regular.ttf new file mode 100644 index 0000000..f5e06c1 Binary files /dev/null and b/src/Averia-Regular.ttf differ diff --git a/src/averia-cufon.all-nokern.js b/src/averia-cufon.all-nokern.js new file mode 100644 index 0000000..15211cc --- /dev/null +++ b/src/averia-cufon.all-nokern.js @@ -0,0 +1,4 @@ +Cufon.registerFont({"w":214,"face":{"font-family":"Averia","font-weight":477,"font-stretch":"normal","units-per-em":"420","panose-1":"2 0 6 3 0 0 0 0 0 4","ascent":"327","descent":"-93","x-height":"1","bbox":"-44 -374 432 85","underline-thickness":"20.0977","underline-position":"-29.1211","unicode-range":"U+0020-U+25CA"},"glyphs":{" ":{"w":134},"!":{"d":"42,-23r0,-7r1,-6v0,-10,5,-15,15,-15r5,0r4,0r5,0v3,0,7,2,11,5v4,3,5,7,5,13r1,3r0,5r0,3r0,1r-1,6r0,2v0,10,-5,14,-15,14v-2,1,-4,1,-8,1v-15,0,-22,-7,-22,-20xm44,-267v0,-11,2,-18,6,-21v4,-3,9,-5,17,-5v8,0,14,1,17,4v3,3,5,8,5,15r0,14r-1,2r-1,24r0,5r0,5r0,5r-1,5r0,5r-3,35r0,7r-1,13r0,5v0,5,-1,9,-1,10r0,5v-1,7,-1,12,-1,15r-1,14v0,15,-5,23,-13,23r-4,0v-6,0,-9,-8,-9,-23r-1,-10r0,-2r-2,-30r0,-5r0,-4r-1,-5r0,-13v0,0,-1,-5,-1,-7r0,-5v0,-5,-1,-10,-1,-13r0,-15r-1,-5r0,-7r-1,-15r0,-9r0,-5","w":129},"\"":{"d":"29,-272r0,-2r0,-5v0,-8,1,-13,3,-15v3,-2,7,-4,11,-4r1,0r2,0r5,0r1,0v11,0,16,4,16,13r0,4r0,1r-1,19v0,3,-1,6,-1,8v0,2,-1,4,-1,5r0,4v0,2,-1,3,-1,4r0,5v0,3,-1,4,-1,5r-1,12v0,10,-2,17,-5,23v-2,4,-6,6,-13,6v-7,0,-10,-6,-10,-17r-1,-3r0,-6r0,-1r-1,-11r0,-2r-1,-5r0,-2r0,-8v0,-1,-1,-2,-1,-3xm100,-279v0,-8,1,-14,4,-16v3,-2,7,-3,14,-3r5,0r4,0v7,0,10,4,10,10r0,9r0,1r0,10r-1,8r-1,5v-2,14,-3,24,-3,26r-1,5r0,6r-1,4r0,6v0,13,-4,19,-13,19r-3,0v-6,0,-9,-8,-9,-25r-1,-14r-1,-1r0,-6r0,-1r-1,-8r0,-3r-1,-7r0,-3r-1,-15r0,-3r0,-4","w":166},"#":{"d":"25,-97v0,-6,3,-10,8,-13r6,-2r7,-1r6,-1v7,-2,12,-4,15,-8v5,-7,8,-20,8,-39v0,-5,-1,-8,-3,-10v-2,-2,-5,-3,-10,-4r-6,-1v-6,-1,-10,-1,-12,-2v-5,-2,-7,-5,-7,-10v0,-5,1,-9,4,-11v3,-2,9,-3,20,-5v10,-2,17,-4,20,-7v4,-4,7,-15,10,-32v3,-17,5,-27,6,-29v3,-8,8,-12,13,-12r6,0v5,0,8,3,8,9v0,6,-2,17,-5,32v-3,15,-4,24,-4,27v0,3,1,6,4,7v3,1,9,2,21,2v12,0,19,-1,21,-3v2,-2,4,-12,7,-28v3,-16,6,-27,8,-32v3,-8,9,-12,18,-12v6,0,8,3,8,9v0,1,0,8,-3,22v-3,14,-4,23,-4,29v0,6,1,9,3,11v2,2,8,5,16,7v8,2,12,5,12,9r0,5v0,6,-6,10,-19,12v-13,2,-20,5,-22,7v-6,7,-10,21,-10,45v0,6,7,11,20,12v13,1,20,6,20,12v0,6,-3,11,-8,13v-1,1,-7,2,-17,3v-10,1,-18,4,-21,9v-3,5,-6,15,-9,32v-3,17,-6,27,-7,30v-3,6,-8,9,-14,9v-8,0,-12,-4,-12,-12r9,-55v0,-4,-1,-8,-4,-9v-3,-1,-9,-1,-21,-1v-12,0,-18,1,-21,5v-2,2,-4,12,-8,31v-4,19,-7,30,-10,35v-3,5,-8,8,-14,8v-6,0,-10,-3,-10,-9v0,-1,1,-8,4,-24v3,-16,5,-27,5,-33v0,-6,-2,-10,-6,-12v-17,-9,-26,-14,-26,-15xm92,-113v0,1,3,2,8,2r1,0r6,-1r6,0r3,0r1,-1r11,-1v8,0,13,-1,15,-4v0,-1,2,-5,4,-13r1,-6v1,-3,1,-10,4,-19v3,-9,4,-16,4,-20v0,-2,-4,-3,-12,-3r-6,0r-5,1r-4,0r-8,1r-1,0r-2,0v-7,0,-12,2,-13,5v-8,21,-13,41,-13,59","w":248},"$":{"d":"32,-55v0,-8,4,-11,12,-11v3,0,10,5,21,15v11,10,21,14,28,14v7,0,12,-3,14,-9v2,-6,3,-20,3,-40v0,-20,-2,-33,-5,-38v-3,-5,-11,-11,-24,-19v-13,-8,-23,-16,-29,-23v-11,-12,-16,-27,-16,-43v0,-16,5,-30,14,-42v9,-11,21,-19,35,-24r5,-2v6,-2,11,-4,13,-5v2,-1,5,-6,7,-13v2,-7,5,-11,10,-11v7,0,26,13,57,39v10,8,14,18,14,29v0,6,-3,9,-10,9v-3,0,-10,-4,-19,-11v-9,-7,-18,-11,-26,-11v-2,0,-5,2,-7,6v-2,4,-4,16,-4,36v0,20,1,32,4,36v3,4,12,12,27,21v15,9,26,18,34,28v8,10,12,23,12,40v0,17,-5,32,-15,45v-6,8,-13,15,-19,18v-6,3,-13,6,-21,9v-8,3,-13,6,-16,8v-3,2,-5,7,-7,16v-2,9,-5,13,-11,13v-6,0,-10,-3,-12,-11v-2,-8,-5,-13,-9,-16v-4,-3,-11,-7,-22,-10v-11,-3,-18,-7,-23,-12v-10,-9,-15,-20,-15,-31xm69,-215v0,2,1,5,1,6v0,7,3,15,11,24v8,9,14,13,20,13v2,0,3,-5,3,-15r0,-10r0,-2r0,-2r0,-2r0,-2r-1,-4r0,-2r0,-2v0,-27,0,-42,-1,-42r-1,0r-1,0v-8,0,-15,4,-21,12v-6,8,-10,15,-10,21r0,7xm127,-33v0,3,1,4,3,4v10,0,18,-4,26,-13v8,-9,11,-17,11,-26r0,-7v0,-10,-3,-17,-9,-23v-13,-13,-22,-20,-28,-20v-1,0,-2,8,-2,24r0,26r0,3r0,4r0,3r0,2r0,1r0,2r-1,5r0,2r0,2r0,2r0,4r0,5","w":232},"%":{"d":"29,-209r0,-12v0,-20,6,-36,17,-49v11,-13,24,-19,38,-19r4,0v17,0,31,6,41,19v10,13,15,29,15,47r0,10v0,20,-5,36,-16,51v-11,15,-24,22,-38,22r-9,0v-13,0,-25,-7,-36,-21v-11,-14,-16,-29,-16,-48xm62,-209r0,2r0,4r1,6v0,10,3,19,10,28v4,5,8,7,15,7v7,0,13,-4,18,-13v5,-9,7,-18,7,-26v0,-2,1,-3,1,-4r0,-6r0,-7r0,-1r-1,-7v0,-9,-2,-18,-7,-26v-5,-8,-11,-12,-17,-12v-7,0,-12,4,-18,11v-6,7,-9,17,-9,29r0,2r0,2r0,5r0,6xm72,-1v0,-1,3,-7,9,-18v51,-90,100,-172,149,-247v9,-14,17,-20,25,-20v8,0,13,1,13,4v0,10,-53,97,-157,262v-10,16,-19,23,-27,23v-8,0,-12,-1,-12,-4xm196,-65r0,-5v0,-19,5,-36,14,-51v5,-8,11,-13,19,-18v8,-5,15,-6,22,-6r8,0v15,0,28,6,37,20v9,14,14,29,14,47r0,7v0,3,-1,6,-1,8v0,17,-5,32,-17,45v-12,13,-25,20,-40,20r-4,0r-2,0v-15,0,-27,-6,-36,-20v-9,-14,-14,-29,-14,-47xm229,-63v0,10,3,21,7,31v4,10,10,14,18,14r3,0v7,0,12,-5,17,-14v5,-9,8,-21,8,-33r0,-7r-1,-2r0,-7v0,-9,-3,-18,-8,-26v-5,-8,-11,-12,-16,-12r-3,0v-6,0,-11,4,-16,12v-5,8,-8,17,-8,28r-1,3r0,4r0,9","w":335},"&":{"d":"27,-76r0,-6v0,-22,11,-43,34,-64v14,-13,21,-21,21,-25v0,-2,-2,-10,-7,-24v-5,-14,-8,-24,-8,-32v0,-18,5,-32,15,-43v10,-11,24,-16,40,-16v16,0,30,5,41,16v11,11,17,24,17,41v0,8,-3,23,-8,44v-5,21,-8,35,-8,40v0,5,3,11,8,17v5,6,13,9,21,9v8,0,17,-4,26,-12v9,-8,17,-12,25,-12v8,0,11,3,11,10v0,2,-1,7,-4,12r-4,9v-7,13,-10,26,-10,42v0,8,5,18,16,28v11,10,16,17,16,19v0,5,-6,7,-16,7v-2,0,-6,-1,-14,-2v-8,-1,-14,-1,-22,-1r-25,2r-16,-1v-9,0,-20,2,-33,5v-14,3,-26,5,-38,5v-22,0,-40,-6,-54,-19v-8,-7,-13,-14,-17,-24v-4,-10,-7,-18,-7,-25xm66,-84v0,14,5,27,15,38v10,11,23,16,38,16r8,0v10,0,19,-3,27,-9v8,-6,13,-11,13,-14v0,-1,-11,-15,-32,-42v-21,-27,-32,-41,-34,-41v-8,0,-16,7,-26,20v-6,8,-9,17,-9,27r0,5xm104,-228v0,11,4,23,13,37v4,6,8,9,10,9r0,0v4,0,10,-5,19,-15v9,-10,13,-19,13,-27r1,-5r0,-4r-1,-1r0,-6v0,-6,-3,-12,-8,-17v-5,-5,-10,-8,-16,-8r-5,0v-7,0,-13,3,-18,9v-5,6,-8,14,-8,22r0,6","w":298},"'":{"d":"32,-274r0,-7v0,-10,6,-15,18,-15r6,0v10,0,16,4,16,11r0,9r0,2r-1,6r0,2r-1,8r0,3v0,2,-1,2,-1,6r0,6r-1,8v-1,8,-2,13,-2,14v0,13,-2,22,-6,29v-2,4,-6,5,-13,5v-7,0,-10,-8,-10,-25r0,-7r-1,-8r-2,-14","w":101},"(":{"d":"32,-116r0,-14v0,-20,3,-40,9,-62v10,-37,27,-69,51,-97v12,-14,22,-21,29,-21v7,0,10,2,10,6v0,3,-6,13,-18,33v-12,20,-20,37,-25,52v-10,29,-15,61,-15,96v0,56,12,104,35,141v15,24,23,37,23,39v0,4,-4,7,-11,7v-7,0,-16,-7,-29,-21v-23,-26,-40,-59,-50,-97v-6,-22,-9,-42,-9,-62","w":153},")":{"d":"22,57v0,-1,7,-12,19,-32v12,-20,21,-38,26,-54v9,-29,14,-60,14,-95v0,-55,-11,-101,-34,-138v-16,-25,-24,-39,-24,-40v0,-5,3,-8,8,-8v9,0,18,5,28,17v41,47,62,102,62,165r0,10v0,17,-2,36,-7,55v-10,42,-29,79,-56,109v-11,12,-21,18,-29,18v-5,0,-7,-2,-7,-7","w":152},"*":{"d":"35,-247v0,-8,5,-11,14,-11v4,0,10,3,19,9v9,6,15,8,16,8v1,0,2,0,2,-2r-3,-33v0,-6,2,-11,5,-13v3,-2,9,-3,15,-3v6,0,9,5,9,15v0,2,0,7,-1,15v-1,8,-2,14,-2,19v0,2,1,3,5,3v1,0,5,-2,14,-7v9,-5,16,-8,22,-8v6,0,9,3,9,9v0,6,-3,12,-8,18v-2,2,-6,4,-12,7v-6,3,-9,5,-9,6v0,4,1,7,3,10v7,12,11,20,11,23v0,7,-3,10,-9,10r-20,-3v-2,0,-4,2,-6,6v-2,4,-4,6,-7,6r-8,-1v-4,1,-7,2,-8,2v-2,0,-5,-2,-7,-7v-2,-5,-3,-7,-5,-7r-6,0v-11,1,-18,1,-18,1v-3,0,-4,-4,-4,-12v0,-4,3,-10,9,-15v5,-6,7,-10,7,-15v0,-1,-2,-2,-7,-4v-5,-2,-8,-5,-10,-7v-7,-7,-10,-13,-10,-19","w":191},"+":{"d":"25,-121r0,-7v0,-5,2,-9,6,-10v2,-1,10,-1,23,-1r23,0v18,0,28,-2,29,-4v1,-1,1,-9,1,-24r1,-30v0,-11,0,-18,2,-21v2,-3,6,-6,12,-6r8,0v6,0,9,2,10,6v1,2,1,7,1,16r0,16r0,15v0,0,-1,8,-1,8r0,12v0,5,9,7,26,7r15,0r11,0r15,-1v8,0,12,4,12,11v0,9,-1,14,-4,15v-3,1,-13,2,-30,2r-35,1v-8,0,-11,1,-12,3v-1,2,-2,7,-2,16r0,20r0,7r0,16v0,0,-1,14,-3,17v-2,3,-5,6,-11,6r-8,0v-5,0,-9,-2,-10,-5v-1,-3,-2,-12,-2,-26r1,-22r0,-8v0,-5,1,-10,1,-13v0,-3,-1,-5,-3,-6v-2,-1,-9,-1,-22,-1r-12,0v-5,0,-8,1,-11,1r-8,0r-11,0v-8,0,-12,-3,-12,-10","w":243},",":{"d":"30,51v0,-2,2,-6,6,-11v10,-13,15,-24,15,-33v0,-2,-4,-7,-10,-15v-4,-5,-5,-11,-5,-21v0,-16,7,-24,22,-24r5,0v15,0,22,7,22,22r0,4r0,8v0,19,-5,36,-17,53v-12,17,-22,25,-31,25v-4,0,-7,-2,-7,-8","w":117},"-":{"d":"19,-107r0,-5r0,-1r0,-3r0,-5v0,-5,3,-7,8,-8v5,-1,23,-1,51,-1r46,-1v7,0,11,4,11,12r-1,1v0,11,-2,18,-7,19v-3,1,-23,1,-57,1r-9,0r-7,0r-9,1r-16,0v-7,0,-10,-3,-10,-10","w":152},".":{"d":"33,-20r0,-6r0,-1r0,-2v0,-2,1,-4,1,-4v0,-5,1,-9,5,-13v4,-4,9,-6,15,-6r2,0r6,0v8,0,13,1,16,5v3,4,5,10,5,18r0,7r-1,6v0,5,-1,9,-4,13v-3,4,-10,5,-18,5r-5,0r-7,-1v-4,0,-7,-1,-10,-5v-3,-4,-5,-9,-5,-16","w":116},"\/":{"d":"9,24v0,-1,5,-14,14,-39v46,-127,81,-219,106,-275v5,-12,13,-19,22,-19v9,0,13,1,13,5v0,4,-3,14,-9,30v-10,24,-10,23,-20,49r-5,15v-4,10,-4,11,-7,19r-16,40v-3,7,-3,7,-4,11r-16,41r-10,25r-7,19v-18,45,-26,68,-27,69v-5,10,-11,15,-20,15v-9,0,-14,-2,-14,-5","w":175},"0":{"d":"29,-132r0,-18v0,-17,3,-34,7,-52v9,-36,24,-60,46,-74v11,-7,22,-10,33,-10r11,0v11,0,21,2,32,9v22,13,37,37,45,70v4,18,6,38,6,59r0,4r0,5v0,18,-2,37,-6,56v-4,19,-11,34,-19,46v-8,12,-17,22,-28,29v-11,7,-22,10,-34,10r-7,0v-25,0,-46,-11,-61,-35v-8,-11,-14,-26,-18,-44v-4,-18,-7,-37,-7,-55xm71,-132v0,48,8,80,26,97v6,5,12,9,18,9r4,0v6,0,12,-3,18,-8v6,-5,10,-12,14,-21v9,-21,14,-47,14,-80r0,-17v0,-32,-4,-57,-12,-77v-4,-10,-10,-18,-16,-22v-6,-4,-11,-7,-16,-7r-5,0v-6,0,-12,3,-18,8v-6,5,-11,13,-15,23v-8,21,-12,47,-12,78r0,17","w":236},"1":{"d":"52,-241v0,-4,4,-8,12,-12v28,-16,47,-25,57,-25r4,0v7,0,11,6,13,18v2,12,2,42,2,92v0,50,1,79,2,88v1,9,6,19,12,31v6,12,9,21,9,27v0,6,-4,11,-14,16v-5,3,-14,5,-27,5v-13,0,-22,-2,-28,-5v-13,-7,-20,-13,-20,-20v0,-7,3,-15,9,-24v6,-9,10,-17,12,-25v2,-8,3,-30,3,-65v0,-35,-3,-59,-8,-72v-4,-9,-11,-15,-22,-19v-11,-4,-16,-7,-16,-10","w":220},"2":{"d":"29,-17v0,-10,7,-25,23,-45v7,-9,21,-25,43,-48v22,-23,37,-40,45,-53v8,-13,13,-26,13,-40v0,-14,-5,-25,-13,-33v-8,-8,-19,-12,-31,-12v-12,0,-25,5,-37,14v-2,1,-7,6,-14,13v-7,7,-12,10,-16,10v-8,0,-12,-5,-12,-14v0,-5,2,-10,5,-15v5,-9,12,-18,23,-25v18,-12,37,-17,60,-17v24,0,43,7,57,21v14,14,21,32,21,52v0,20,-7,39,-20,58v-7,10,-24,28,-51,54v-27,26,-41,43,-41,50v0,6,12,9,35,9v16,0,31,0,46,-2v15,-2,22,-3,23,-3v10,0,15,4,15,11r0,5v0,10,-3,16,-10,19v-7,3,-17,5,-33,5r-25,0r-66,-1v-16,0,-26,0,-30,-1v-7,-1,-10,-6,-10,-12","w":231},"3":{"d":"27,-34r0,-4v0,-7,4,-11,14,-11v2,0,9,4,24,11v15,7,30,11,43,11v13,0,25,-5,35,-15v10,-10,15,-22,15,-37v0,-15,-5,-27,-16,-37v-7,-6,-18,-12,-33,-16v-15,-4,-23,-5,-23,-5v-4,-2,-5,-7,-5,-13v0,-5,6,-9,20,-14v14,-5,24,-12,32,-21v8,-9,11,-19,11,-30v0,-23,-13,-34,-41,-34v-10,0,-22,3,-35,10v-13,7,-21,11,-22,11v-6,0,-9,-4,-9,-11v0,-11,8,-21,25,-30v17,-9,36,-13,58,-13v22,0,38,6,50,16v12,10,17,24,17,42v0,17,-7,35,-22,51v-10,11,-14,16,-14,17v0,1,5,4,15,11v23,15,35,34,35,58r0,6v0,11,-2,22,-7,33v-9,21,-26,36,-49,45v-13,5,-26,7,-39,7r-6,0v-17,0,-33,-4,-49,-12v-7,-3,-14,-8,-18,-13v-4,-5,-6,-9,-6,-13","w":231},"4":{"d":"24,-96v0,-6,2,-14,6,-22v12,-24,45,-73,99,-147v9,-13,18,-19,28,-19v10,0,15,3,18,8v1,3,2,11,2,25r0,23r-1,10r0,23r0,14v0,28,2,47,5,56v3,9,8,16,15,21v7,5,10,9,10,12v0,10,-3,17,-8,22v-11,10,-16,16,-16,18r1,10v1,5,1,9,1,13v0,10,-2,18,-6,23v-3,4,-11,6,-22,6r-8,0v-6,0,-11,-2,-14,-8v-3,-6,-5,-14,-5,-23r1,-17v0,-9,-10,-17,-29,-22v-6,-2,-16,-2,-33,-3v-17,-1,-28,-2,-32,-4v-8,-3,-12,-10,-12,-19xm54,-107v0,1,5,2,14,2r30,0r2,0r10,0v1,0,2,-1,4,-1r5,0v8,0,12,-2,13,-7v2,-9,3,-28,3,-60r0,-17r0,-5r1,-23r0,-7v0,-2,1,-2,0,-2v-2,0,-9,8,-20,27v-11,19,-24,39,-39,60v-15,21,-23,32,-23,33","w":236},"5":{"d":"27,-34v0,-9,5,-14,15,-14v2,0,10,4,24,11v14,7,27,11,38,11v18,0,32,-5,42,-17v10,-12,14,-27,14,-45v0,-11,-2,-20,-7,-28v-5,-8,-11,-15,-18,-19v-11,-7,-31,-11,-59,-11v-14,0,-24,-2,-29,-6v-5,-4,-7,-12,-7,-21v0,-9,2,-31,8,-65v2,-14,5,-23,9,-28v4,-5,8,-8,15,-9v7,-1,19,-2,36,-2v17,0,33,-1,47,-2v14,-1,21,-1,22,-1v11,0,16,4,16,12v0,10,-4,16,-13,20v-7,3,-22,5,-46,5v-24,0,-38,2,-43,5v-10,7,-15,20,-15,41v0,7,1,12,3,14v2,2,10,3,24,3v30,0,55,8,73,24v18,16,27,38,27,64v0,29,-9,52,-29,70v-19,17,-43,26,-73,26v-18,0,-34,-4,-50,-12v-16,-8,-24,-16,-24,-26","w":232},"6":{"d":"25,-127r0,-5v0,-21,3,-40,10,-58v13,-37,34,-63,63,-77v17,-8,33,-13,50,-13r5,0v14,0,24,3,30,8v3,2,4,5,4,7v0,6,-9,10,-28,11v-19,1,-35,5,-47,14v-12,9,-20,18,-26,29v-6,11,-8,21,-8,30v0,9,3,14,10,14v1,0,5,-2,14,-4v9,-2,18,-3,28,-3v10,0,19,3,30,8v11,5,20,12,27,21v14,16,20,34,20,55r0,11v0,11,-2,21,-7,32v-5,11,-12,20,-20,27v-14,13,-31,19,-49,19v-18,0,-33,-3,-45,-9v-12,-6,-23,-14,-32,-25v-19,-23,-29,-53,-29,-91r0,-1xm74,-90v0,16,5,31,14,46v8,12,18,18,30,18r3,0r2,0v12,0,21,-6,29,-17v8,-11,12,-25,12,-40r0,-6v0,-19,-5,-34,-13,-46v-8,-12,-19,-18,-31,-18r-3,0v-13,0,-23,5,-31,15v-8,10,-12,22,-12,36r0,12","w":233},"7":{"d":"27,-248v0,-10,1,-16,4,-20v6,-8,16,-12,28,-12r4,0r9,1r15,0r31,0v38,0,62,0,72,2v10,2,15,7,15,14v0,7,-3,18,-10,33r-52,114v-12,26,-20,50,-27,72v-7,22,-11,36,-13,39v-3,7,-8,10,-16,10r-5,0v-5,0,-10,-1,-13,-3v-3,-2,-4,-6,-4,-12v0,-18,12,-52,38,-104v34,-70,52,-109,52,-115v0,-6,-2,-10,-7,-12v-5,-2,-15,-2,-29,-2v-14,0,-25,1,-33,2r-45,7v-10,0,-14,-4,-14,-14","w":230},"8":{"d":"30,-68r0,-9v0,-13,3,-24,9,-34v6,-10,11,-18,18,-24r17,-16v0,-1,-4,-4,-11,-11v-7,-7,-14,-15,-18,-23v-4,-8,-6,-19,-6,-30v0,-22,7,-40,23,-55v16,-15,34,-22,55,-22r5,0v22,0,39,6,53,19v14,13,21,29,21,50v0,18,-8,35,-23,50r-15,17v0,1,2,3,7,6v26,18,39,39,39,64r0,9v0,10,-3,20,-8,31v-10,22,-26,37,-48,44v-11,4,-23,5,-35,5v-24,0,-43,-6,-58,-19v-17,-14,-25,-32,-25,-52xm67,-77v0,14,5,26,16,36v11,10,22,15,35,15r5,0v12,0,23,-5,31,-13v8,-8,13,-18,13,-29r0,-5v0,-15,-7,-29,-21,-42v-14,-13,-29,-19,-43,-19v-8,0,-16,5,-24,16v-8,11,-12,21,-12,32r0,9xm75,-221v0,12,5,22,15,31v13,12,25,18,35,18r3,0v8,0,15,-4,22,-14v7,-10,10,-19,10,-28r0,-4v0,-12,-4,-23,-12,-31v-8,-8,-20,-12,-32,-12r-4,0v-10,0,-18,3,-26,10v-8,7,-11,14,-11,24r0,6","w":233},"9":{"d":"27,-201v0,-25,8,-46,23,-62v14,-15,33,-23,56,-23r5,0v15,0,29,4,41,11v25,15,43,39,52,73v4,14,5,29,5,47v0,41,-12,77,-35,106v-9,12,-21,22,-36,31v-15,9,-31,13,-48,13r-9,0v-14,0,-25,-3,-32,-8v-3,-2,-4,-5,-4,-7v0,-6,9,-9,30,-11v33,-3,58,-17,72,-42v6,-11,9,-21,9,-30v0,-9,-4,-14,-12,-14v-1,0,-3,1,-7,2r-9,2v-6,1,-11,1,-17,1v-11,0,-22,-2,-32,-6v-21,-9,-36,-25,-45,-49v-4,-11,-7,-21,-7,-34xm69,-191v0,16,4,30,13,41v9,11,19,17,31,17r4,0v12,0,22,-5,31,-14v9,-9,13,-22,13,-38r0,-8v0,-19,-4,-35,-14,-47v-10,-12,-20,-19,-32,-19r-4,0v-11,0,-21,6,-29,17v-8,11,-13,25,-13,41r0,10","w":234},":":{"d":"36,-29r0,-1r1,-7v0,-5,1,-10,5,-14v4,-4,10,-5,19,-5v16,0,24,7,24,20r0,6r0,3r0,4r-1,5v0,5,-1,9,-5,12v-4,3,-8,4,-13,4v-2,0,-3,1,-6,1r-7,-1v-4,0,-7,-1,-11,-4v-4,-3,-5,-7,-5,-13v0,-2,-1,-3,-1,-4r0,-6xm36,-172r0,-5r1,-6v0,-6,2,-10,6,-13v4,-3,8,-5,15,-5r6,0v8,0,13,2,16,6v3,4,5,8,5,13r1,6r0,5r-1,3r-1,5v0,4,-1,7,-4,10v-3,3,-7,6,-12,6r-3,0r-4,0r-1,0r-7,0v-4,0,-8,-2,-11,-5v-3,-3,-5,-7,-5,-13v0,-1,-1,-3,-1,-7","w":119},";":{"d":"35,45v0,-2,1,-5,4,-8v3,-4,6,-8,10,-14v4,-6,6,-13,6,-22v0,-1,-3,-5,-8,-11v-5,-6,-7,-15,-7,-24v0,-16,8,-24,22,-24r5,0v8,0,13,2,17,6v4,4,6,11,6,22r0,5v0,17,-5,33,-13,46v-14,22,-25,33,-36,33v-4,0,-6,-3,-6,-9xm39,-177r1,-1r0,-4v0,-2,1,-3,1,-4v0,-5,1,-8,5,-11v4,-3,7,-5,12,-5r5,-1r4,0v15,0,22,7,22,20r1,5v0,11,-2,18,-5,23v-3,5,-11,7,-22,7r-7,-1v-4,0,-9,-2,-12,-6v-3,-4,-5,-11,-5,-22","w":123},"<":{"d":"26,-125v0,-7,6,-14,17,-20v101,-55,155,-82,162,-82v3,0,5,3,5,10v0,10,-5,18,-16,26v-6,4,-29,16,-67,36v-38,20,-57,31,-57,32v0,2,18,10,52,28v34,18,56,30,65,36v15,10,23,20,23,31v0,6,-2,9,-5,9v-3,0,-9,-2,-17,-7r-145,-78v0,0,-17,-14,-17,-21","w":240},"=":{"d":"24,-85r0,-10v0,-5,3,-8,10,-9r92,0r84,-1v8,0,11,3,11,9r0,10v0,6,-3,8,-9,9v-3,0,-33,1,-91,1r-36,0r-50,0v-8,0,-11,-3,-11,-9xm24,-162r0,-9v0,-6,2,-9,7,-10v3,0,34,-1,95,-1r82,0v9,0,13,3,13,9r0,8v0,6,-1,9,-4,10v-3,1,-14,2,-34,2r-20,0r-57,-1r-73,1v-6,0,-9,-3,-9,-9","w":243},">":{"d":"31,-30v0,-10,7,-20,21,-29r66,-35v0,0,53,-28,53,-30r-57,-31v0,0,-59,-31,-65,-35v-12,-8,-18,-18,-18,-29v0,-6,2,-9,5,-9v4,0,11,3,23,10v15,9,30,17,44,24r43,22v29,14,47,24,55,29v8,5,12,10,12,17v0,7,-3,13,-10,18v-7,5,-27,15,-60,32r-76,41v0,0,-28,15,-30,15r-3,0v-2,0,-3,-3,-3,-10","w":239},"?":{"d":"25,-243r0,-4v0,-10,8,-19,22,-29v14,-10,30,-14,48,-14r8,0v8,0,18,1,28,5v10,4,17,9,24,16v13,13,20,29,20,47v0,14,-3,27,-9,38v-6,11,-16,22,-29,35v-13,13,-22,21,-25,26v-3,5,-5,13,-6,24v-1,11,-5,17,-11,17r-3,0v-10,0,-16,-10,-16,-30v0,-15,10,-33,28,-54v18,-21,27,-40,27,-55v0,-10,-3,-18,-9,-25v-6,-7,-14,-10,-25,-10v-11,0,-20,4,-30,11v-16,12,-25,18,-27,18v-10,0,-15,-5,-15,-16xm66,-21r0,-6r1,-3r0,-4v0,-5,2,-9,6,-12v4,-3,9,-4,18,-4v2,0,4,1,7,1v3,0,6,1,10,4v4,3,6,8,6,15r0,5r0,4r0,1r0,4v0,5,-2,9,-5,12v-3,3,-6,5,-11,5r-6,1r-4,0v-14,0,-22,-7,-22,-23","w":199},"@":{"d":"29,-115r0,-12v0,-19,4,-39,13,-60v9,-21,21,-38,37,-53v16,-15,33,-26,51,-32v18,-6,36,-9,55,-9v37,0,68,11,92,33v11,10,20,23,27,38v7,15,10,30,10,45r0,12v0,11,-2,23,-7,37v-5,14,-11,26,-19,35v-8,9,-16,16,-24,20v-8,4,-17,6,-25,6v-8,0,-15,-2,-21,-6r-6,-5r-5,-3v-3,0,-10,2,-21,7v-11,5,-21,7,-30,7v-14,0,-26,-6,-35,-18v-7,-10,-10,-23,-10,-41v0,-18,6,-34,19,-49v13,-15,26,-23,41,-23r8,1r15,2r8,-1r15,-4v6,0,10,2,12,4v2,2,4,6,4,12v0,6,0,16,-2,31v-2,15,-3,26,-3,33v0,7,1,13,4,17v3,4,7,6,11,6v5,0,10,-2,16,-7v5,-4,10,-9,14,-15v10,-15,15,-33,15,-54v0,-12,-2,-23,-7,-36v-5,-13,-12,-23,-22,-32v-10,-9,-19,-16,-31,-21v-12,-5,-26,-7,-40,-7v-8,0,-18,0,-27,2v-26,5,-49,18,-68,39v-10,11,-18,26,-25,42v-7,16,-10,36,-10,58v0,22,6,44,18,64v12,20,27,34,48,44v17,8,35,13,54,13v19,0,40,-5,62,-13v13,-5,21,-8,25,-8v2,0,2,1,2,2v0,3,-3,7,-8,11v-5,4,-14,8,-25,13v-21,8,-42,13,-63,13v-39,0,-71,-11,-96,-34v-14,-13,-26,-29,-34,-48v-8,-19,-12,-37,-12,-56xm132,-102r0,1v0,11,3,19,7,25v4,6,10,9,17,9v10,0,21,-8,31,-24v14,-22,21,-42,21,-63r0,-8v0,-7,-1,-11,-5,-15v-4,-4,-8,-6,-15,-6v-12,0,-24,8,-37,25v-13,17,-19,36,-19,56","w":340},"A":{"d":"21,-34v0,-6,2,-14,7,-21v10,-15,25,-52,46,-110v21,-58,32,-92,35,-99v7,-16,16,-25,27,-25r5,0v10,0,18,9,26,25v4,8,16,40,36,97v20,57,33,92,41,106v8,14,12,23,12,27v0,11,-4,18,-12,22v-4,2,-12,4,-25,4v-7,0,-13,-3,-17,-9v-2,-2,-3,-7,-4,-13v-1,-6,-2,-11,-3,-15v-6,-21,-12,-34,-18,-39v-6,-5,-21,-7,-46,-7v-25,0,-40,2,-45,7v-5,5,-10,17,-15,36v-2,6,-3,13,-4,20v-1,7,-3,11,-4,13v-2,5,-7,7,-16,7v-17,0,-26,-8,-26,-26xm97,-118v0,2,4,3,13,3r2,0r20,0v23,0,35,-2,35,-4v0,-7,-6,-28,-17,-64r-17,-53r-3,8v-22,66,-33,103,-33,110","w":276},"B":{"d":"37,-280v0,-5,3,-8,10,-9v7,-1,24,-2,51,-2r33,0v41,0,69,13,81,39v4,9,6,19,6,31v0,21,-8,38,-25,52v-9,7,-13,11,-13,12v0,1,2,3,7,5v14,7,25,16,33,27v8,11,13,24,13,39v0,27,-10,49,-30,64v-9,7,-20,12,-32,15v-12,3,-30,4,-53,4r-19,0r-4,0v-25,0,-40,0,-47,-1v-7,-1,-10,-5,-10,-10v0,-3,1,-7,4,-14v3,-7,4,-13,5,-20v1,-7,1,-21,1,-44r0,-20r0,-10r-1,-20v0,-10,-1,-18,-1,-25r1,-20r0,-5r0,-10r0,-5r0,-10v0,-16,0,-27,-1,-33v-1,-6,-2,-11,-5,-17v-3,-6,-4,-11,-4,-13xm87,-83v0,25,2,38,4,42v2,4,8,6,18,6v2,0,5,1,6,1r12,0v21,0,37,-5,48,-13v11,-8,16,-19,16,-33r0,-6v0,-17,-6,-30,-19,-38v-13,-8,-32,-13,-56,-13r-2,0v-13,0,-20,1,-23,3v-3,2,-4,7,-4,16r0,35xm87,-185v0,7,1,11,3,13v2,2,7,3,15,3r7,0r1,0r10,-1r4,0v15,0,28,-4,38,-13v10,-9,14,-20,14,-32r0,-5v0,-12,-4,-22,-14,-29v-10,-7,-23,-10,-38,-10r-8,0v-15,0,-24,2,-27,6v-3,4,-4,18,-4,42r0,11r-1,7r0,8","w":261},"C":{"d":"23,-142r0,-7v0,-18,3,-36,9,-53v13,-37,36,-62,67,-76v16,-7,32,-11,50,-11r6,0v9,0,23,2,40,5v17,3,27,6,32,8v5,2,9,8,14,15v5,7,8,16,8,25v0,9,-4,13,-12,13v-3,0,-9,-3,-20,-11v-11,-8,-21,-14,-31,-18v-10,-4,-22,-6,-34,-6v-25,0,-45,10,-61,32v-15,21,-23,49,-23,84v0,14,3,29,7,44v8,29,25,49,49,60v10,4,21,6,34,6v13,0,27,-4,43,-11v4,-2,11,-5,21,-11v10,-6,17,-9,22,-9v5,0,8,4,8,10v0,4,-2,10,-7,17v-5,7,-12,13,-23,19v-21,12,-43,17,-68,17r-7,0v-36,0,-66,-14,-91,-42v-22,-25,-33,-58,-33,-100","w":273},"D":{"d":"38,-13v0,-2,1,-7,4,-13v3,-6,4,-13,6,-20v2,-7,3,-20,3,-38r0,-5r0,-10r0,-10r0,-44v0,-44,0,-72,-1,-83v-1,-11,-4,-21,-7,-29v-3,-8,-5,-12,-5,-13v0,-5,2,-8,7,-9v5,-1,16,-2,33,-2r13,0r5,-1r27,0v23,0,42,2,58,7v16,5,30,14,43,27v13,13,22,27,29,45v7,18,11,37,11,55r0,16r0,1v0,19,-4,37,-12,57v-15,37,-41,61,-78,73v-15,5,-34,8,-59,8r-23,0v-21,0,-34,-2,-42,-3v-8,-1,-12,-4,-12,-9xm93,-53v0,9,1,14,5,16v5,3,13,5,23,5r9,0v25,0,45,-10,60,-28v9,-11,15,-23,20,-38v5,-15,7,-29,7,-44r0,-11v0,-17,-3,-33,-8,-47v-15,-40,-43,-60,-81,-60v-22,0,-32,4,-34,12v0,1,-1,5,-1,14r0,16r1,7r0,6r0,6r0,94r0,4r0,6r-1,32r0,10","w":292},"E":{"d":"32,-25v0,-4,2,-9,5,-17v3,-8,6,-20,8,-35v2,-15,2,-41,2,-76v0,-35,-1,-57,-2,-68v-1,-11,-3,-21,-7,-31v-4,-10,-5,-16,-5,-16v0,-6,4,-11,14,-13v24,-5,62,-7,113,-7v23,0,37,2,42,5v8,4,11,11,11,23v0,7,-4,10,-14,10r-28,-5v-11,-2,-25,-2,-41,-2v-16,0,-26,3,-31,9v-7,8,-10,27,-10,57v0,12,11,18,32,18v7,0,16,-2,26,-4v10,-2,16,-3,17,-3v8,0,15,4,19,11v2,3,2,9,2,18v0,9,-1,16,-5,21v-4,5,-7,7,-12,7v-5,0,-12,-2,-21,-4v-9,-2,-18,-3,-28,-3v-10,0,-17,1,-23,5v-6,4,-9,10,-9,20v0,29,3,49,9,60v5,8,16,12,32,12v16,0,28,-1,37,-2v9,-1,17,-3,27,-5v10,-2,16,-3,20,-3v6,0,9,4,9,13v0,9,-3,17,-12,21v-9,4,-29,6,-59,6r-15,0v-45,0,-75,-1,-89,-6v-9,-3,-14,-8,-14,-16","w":245},"F":{"d":"33,-29r0,-4v0,-2,2,-7,5,-14v3,-7,6,-14,7,-21v1,-7,2,-19,2,-38r0,-35r0,-19r0,-6r0,-22v0,-24,-3,-44,-7,-58v-4,-14,-6,-22,-6,-24v0,-11,26,-16,78,-16r12,-1r45,0v18,0,30,1,35,3v8,3,11,11,11,21r0,5v0,7,-4,10,-12,10r-32,-7v-16,-2,-30,-3,-41,-3v-19,0,-30,3,-34,10v-5,10,-7,29,-7,56v0,15,9,23,27,23v6,0,13,-1,21,-3r9,-2v5,-1,8,-2,10,-2v9,0,15,5,21,14v3,6,5,13,5,24v0,11,-4,17,-15,17v-3,0,-7,0,-11,-1r-10,-3v-4,-1,-10,-1,-20,-1v-16,0,-25,3,-30,10v-5,7,-8,18,-8,34v0,10,1,21,3,35r5,25v0,10,-9,15,-26,15r-6,0v-9,0,-16,-1,-22,-5v-6,-4,-9,-10,-9,-17","w":231},"G":{"d":"22,-138r0,-9v0,-19,4,-38,11,-57v7,-19,18,-35,30,-47v25,-26,56,-38,94,-38v32,0,57,4,75,12v7,3,13,9,17,16v4,7,6,14,6,20v0,10,-4,15,-11,15v-3,0,-11,-4,-22,-11v-11,-7,-22,-12,-31,-15v-9,-3,-20,-5,-33,-5v-26,0,-48,11,-65,32v-15,20,-22,48,-22,86v0,13,2,27,7,41v9,28,24,46,46,57v11,5,23,8,37,8v14,0,25,-4,35,-13v10,-9,14,-18,14,-30v0,-12,-3,-23,-11,-33v-8,-10,-11,-17,-11,-18v0,-8,12,-11,38,-11v14,0,25,1,32,4v7,3,10,6,10,11v0,5,-4,30,-11,73v-2,12,-4,20,-8,24v-4,4,-10,8,-20,10v-10,2,-21,5,-32,8v-11,3,-22,6,-32,7r-16,1v-19,0,-36,-4,-52,-11v-30,-14,-52,-38,-64,-69v-7,-18,-11,-37,-11,-58","w":295},"H":{"d":"28,-266v0,-5,1,-9,3,-11v3,-5,9,-7,17,-7r8,0v26,0,38,8,38,24r-5,26v-2,11,-3,24,-3,40v0,16,5,26,13,30v6,3,23,4,49,4v26,0,42,-1,48,-6v6,-5,8,-19,8,-43v0,-14,-1,-25,-3,-34v-2,-9,-3,-14,-3,-15v0,-15,14,-23,41,-23v19,0,28,7,28,20v0,3,-1,6,-3,12v-2,6,-3,10,-4,14v-2,7,-3,37,-3,91v0,54,1,83,2,89v1,6,3,12,6,20v3,8,5,13,5,16v0,3,-1,7,-4,10v-3,3,-8,4,-17,4r-7,0v-24,0,-36,-8,-36,-25r3,-13v3,-14,4,-35,4,-63v0,-15,-4,-25,-12,-29v-8,-4,-25,-5,-51,-5v-26,0,-41,2,-47,7v-6,5,-9,19,-9,43v0,20,1,34,3,43v2,9,3,14,3,15v0,15,-12,23,-38,23v-10,0,-18,-1,-23,-4v-5,-3,-8,-8,-8,-15v0,-3,1,-8,4,-14v3,-6,5,-13,6,-18v1,-5,0,-31,0,-78v0,-47,0,-77,-1,-87v-1,-10,-4,-20,-7,-28","w":298},"I":{"d":"31,-17r0,-3v0,-3,2,-9,6,-17v4,-8,8,-16,9,-24v1,-8,2,-37,2,-85v0,-48,-1,-76,-2,-84v-1,-8,-4,-17,-8,-25v-4,-8,-7,-14,-7,-18v0,-12,11,-17,33,-17r15,0v9,0,16,1,22,4v6,3,9,7,9,12r0,3v0,3,-2,8,-7,17v-5,9,-8,16,-9,25v-1,9,-2,37,-2,85v0,48,1,75,2,83v1,8,3,16,8,24v5,8,7,14,7,18v0,4,-2,8,-6,12v-4,4,-11,5,-19,5r-26,0v-8,0,-15,-2,-20,-5v-5,-3,-7,-6,-7,-10","w":139},"J":{"d":"8,-25v0,-11,6,-16,16,-16v4,0,10,2,18,6v8,4,15,6,22,6v9,0,16,-4,23,-11v6,-7,12,-18,16,-32v4,-14,6,-39,6,-75v0,-36,-1,-58,-3,-69v-2,-11,-5,-22,-10,-32v-5,-10,-7,-17,-7,-20v0,-15,12,-22,36,-22r10,0v9,0,15,3,20,7v5,4,8,9,8,14v0,4,-1,11,-4,23v-3,12,-5,24,-6,38v-1,14,-1,38,-1,72v0,34,-1,57,-3,71v-5,31,-17,52,-37,64v-13,8,-26,12,-41,12r-5,0v-15,0,-28,-3,-40,-10v-12,-7,-18,-15,-18,-26","w":192},"K":{"d":"37,-267v0,-8,2,-14,6,-17v4,-3,11,-4,20,-4r7,0v10,0,17,2,22,6v5,4,8,8,8,12v0,4,-1,8,-2,13r-1,6v-2,7,-4,15,-5,23v-1,8,-2,19,-2,34v0,15,3,22,9,22v7,0,23,-15,49,-46v14,-17,25,-34,32,-49v3,-7,6,-12,10,-15v4,-3,11,-5,20,-5v15,0,23,3,23,10v0,2,-14,19,-43,52v-29,33,-43,53,-43,61v0,6,16,32,49,79v11,16,24,32,37,48v13,16,20,25,20,26v0,6,-9,8,-25,8v-16,0,-28,-4,-35,-11v-1,-1,-7,-10,-17,-28v-10,-18,-21,-36,-34,-54v-13,-18,-23,-26,-31,-26v-5,0,-10,3,-13,11v-3,8,-6,18,-6,30v0,12,2,24,4,35v2,11,3,19,3,23v0,4,-2,9,-8,14v-6,5,-14,7,-25,7v-11,0,-19,-2,-23,-5v-4,-3,-5,-9,-5,-17r1,-6r3,-6v1,-4,2,-8,3,-13v1,-5,1,-17,1,-39r-1,-42r0,-16r0,-8v0,-6,-1,-12,-1,-17v0,-8,1,-8,1,-24r1,-25v0,-12,-2,-23,-5,-32v-3,-9,-4,-14,-4,-15","w":275},"L":{"d":"30,-272v0,-7,3,-11,8,-15v3,-2,7,-3,12,-3r10,0v12,0,21,2,28,6v7,4,11,9,11,16v0,3,-2,8,-5,17v-3,9,-5,18,-6,29v-1,11,-1,42,-1,91v0,49,0,78,3,84v4,9,14,13,30,13v16,0,32,-1,45,-5v2,-1,9,-3,20,-7v11,-4,16,-6,19,-6v9,0,14,6,14,19v0,13,-2,21,-8,24v-6,3,-22,6,-47,6r-10,0r-15,0r-6,0r-47,0v-21,0,-35,-1,-42,-3v-7,-2,-10,-8,-10,-15v0,-3,1,-7,2,-11v4,-14,6,-30,6,-46r1,-5r0,-11r0,-47r0,-45v0,-27,0,-42,-1,-48v-1,-6,-3,-13,-6,-21v-3,-8,-5,-14,-5,-17","w":230},"M":{"d":"26,-24v0,-3,2,-11,5,-21v3,-10,6,-26,8,-48v2,-22,3,-50,3,-84v0,-34,0,-56,-1,-67r-1,-10r-3,-16v0,-8,5,-11,15,-11v22,0,40,9,53,28v6,9,18,36,36,80v18,44,28,68,30,71r4,7v3,0,15,-23,35,-71v20,-48,34,-76,40,-86v6,-10,14,-17,22,-22v8,-5,16,-8,23,-8v14,0,20,5,20,14r0,8r-3,19v-1,9,-1,32,-1,70v0,56,2,95,7,117r8,24r0,7r-3,6v-5,6,-12,8,-22,8v-10,0,-18,-3,-24,-9v-6,-6,-9,-13,-9,-21r1,-8r1,-9v1,-9,1,-30,1,-63v0,-59,-3,-88,-8,-88v-3,0,-16,26,-37,79v-21,53,-33,82,-36,87v-6,11,-12,17,-20,17v-7,0,-13,-6,-19,-19v-3,-7,-15,-36,-35,-88v-20,-52,-32,-78,-36,-78v-5,0,-8,46,-8,137v0,7,1,14,1,20r1,16v0,17,-10,26,-28,26v-5,0,-10,-1,-14,-4v-4,-3,-6,-7,-6,-10","w":353},"N":{"d":"26,-15v0,-4,2,-10,6,-19v4,-9,6,-18,7,-28v1,-10,2,-38,2,-83v0,-45,-1,-70,-1,-78v0,-13,-2,-25,-5,-34v-3,-9,-4,-14,-4,-15v0,-7,5,-11,15,-11v20,0,39,10,56,30v7,8,28,38,64,91v36,53,55,79,57,79v3,0,5,-17,5,-49v0,-58,-1,-91,-2,-100r-6,-34v0,-7,2,-12,6,-15v4,-3,10,-4,19,-4v9,0,16,2,20,6v4,4,6,9,6,15v0,6,-1,13,-4,24v-3,11,-5,21,-6,31v-1,10,-2,44,-2,102v0,58,0,88,-1,91v-2,6,-7,9,-16,9v-9,0,-21,-9,-34,-25v-13,-16,-37,-49,-70,-100v-33,-51,-53,-76,-60,-76v-3,0,-4,16,-4,49r0,18r0,9r0,26v0,20,2,35,4,49v2,14,3,21,3,22v0,9,-3,16,-10,22v-7,6,-14,9,-24,9r-8,0v-8,0,-13,-4,-13,-11","w":298},"O":{"d":"34,-134r0,-15v0,-20,5,-39,12,-59v14,-38,36,-64,65,-78v13,-6,28,-9,44,-9r9,0r1,0v15,0,29,4,43,12v28,16,47,40,58,72v6,19,9,38,9,59r0,5v0,42,-10,77,-32,106v-11,14,-24,25,-39,33v-15,8,-30,11,-46,11r-9,0v-32,0,-59,-13,-81,-39v-11,-12,-19,-27,-25,-46v-6,-19,-9,-36,-9,-52xm80,-143v0,33,6,60,20,83v6,9,13,18,22,24v9,6,19,9,29,9r6,0v10,0,19,-3,28,-9v9,-6,18,-15,24,-25v12,-21,18,-45,18,-73r0,-19v0,-30,-6,-55,-20,-78v-6,-10,-14,-19,-24,-25v-9,-6,-19,-8,-30,-8v-22,0,-39,10,-52,31v-6,10,-11,23,-15,38v-4,15,-6,32,-6,52","w":306},"P":{"d":"32,-18v0,-4,1,-11,4,-18v3,-7,5,-15,6,-23v1,-8,1,-20,1,-34r0,-26r1,-14r0,-5r0,-9r1,-19v0,-9,1,-16,1,-19r1,-36v0,-19,-1,-32,-3,-39v-2,-7,-2,-12,-2,-15v0,-4,4,-7,12,-8v22,-3,47,-6,76,-6r14,0v23,0,43,6,57,17v8,6,14,14,18,24v4,10,6,20,6,32v0,25,-9,46,-27,64v-8,8,-17,13,-26,17v-9,4,-20,7,-34,10v-14,3,-25,7,-31,11v-13,8,-19,20,-19,36v0,5,2,13,5,24v3,11,5,19,5,22v0,9,-5,16,-14,23v-6,4,-15,7,-26,7r-8,-1v-6,0,-11,-1,-14,-4v-3,-3,-4,-7,-4,-11xm89,-158v0,8,6,13,18,13r7,0v18,0,33,-5,45,-16v12,-11,18,-26,18,-44r0,-8v0,-14,-4,-26,-13,-34v-9,-8,-21,-12,-34,-12r-9,0r-1,0r-10,1v-9,0,-15,3,-17,9v-2,6,-4,26,-4,58r0,4r0,4r0,4r0,3r0,4r0,4r0,5r0,5","w":247},"Q":{"d":"34,-158r0,-6v0,-17,3,-33,8,-49v10,-32,29,-55,56,-69v15,-8,32,-12,49,-12r11,0v34,0,63,17,87,50v18,24,26,57,26,101v0,19,-3,37,-9,55v-6,18,-14,34,-23,48v-9,14,-14,22,-14,25v0,5,9,14,25,25v16,11,25,18,25,20r0,1v0,4,-4,6,-12,6r-13,0v-25,0,-54,-6,-85,-17v-31,-11,-56,-25,-75,-43v-19,-18,-33,-39,-42,-63v-9,-24,-14,-47,-14,-72xm79,-142v0,31,6,56,19,77v7,11,16,19,25,25v9,6,18,8,26,8v8,0,16,-2,20,-6v2,-1,4,-5,7,-11v3,-6,7,-11,10,-14v3,-3,8,-7,15,-13v7,-6,10,-9,11,-10v10,-14,15,-35,15,-64r0,-8v0,-30,-6,-54,-20,-75v-14,-20,-32,-31,-53,-31v-20,0,-37,9,-51,28v-7,9,-13,21,-18,36v-5,15,-6,29,-6,43r0,15","w":308},"R":{"d":"39,-25r0,-5v0,-2,2,-8,5,-15v3,-7,5,-13,5,-18r0,-46r2,-96v0,-28,-1,-44,-2,-50r-6,-24v0,-6,4,-9,12,-10v8,-1,23,-2,47,-2r18,0v34,0,59,6,74,17v9,6,15,14,20,25v5,11,7,23,7,36v0,23,-10,43,-29,61v-10,10,-15,15,-15,18v0,6,6,21,19,44v13,23,23,38,28,45v13,17,19,27,19,30r0,4v0,4,-7,6,-20,6v-13,0,-23,-5,-31,-14v-4,-4,-10,-16,-21,-38v-11,-22,-20,-37,-28,-47v-8,-10,-17,-15,-28,-15v-7,0,-12,4,-17,14v-2,5,-4,11,-4,19v0,11,2,27,7,45v2,6,3,11,3,14v0,7,-3,12,-9,16v-6,4,-12,6,-19,6r-5,0v-21,0,-32,-6,-32,-20xm89,-165v0,7,6,10,16,10r10,0v19,0,35,-4,47,-14v12,-10,19,-23,19,-38r0,-9v0,-12,-5,-22,-14,-30v-9,-8,-20,-12,-34,-12r-12,0v-12,0,-20,2,-24,5v-4,3,-6,9,-6,18r0,4r0,5r0,2r0,4r0,5r0,4r-1,24r0,3r-1,7r0,12","w":270},"S":{"d":"22,-50r0,-6v0,-9,4,-14,12,-14v4,0,10,4,20,13v10,9,20,16,29,21v9,5,22,7,36,7v14,0,25,-4,35,-12v10,-8,15,-19,15,-34v0,-11,-7,-22,-19,-32v-7,-6,-24,-15,-49,-27v-25,-12,-44,-23,-55,-35v-11,-12,-17,-28,-17,-47v0,-22,8,-40,25,-54v17,-14,39,-21,67,-21v28,0,49,4,61,12v6,4,11,8,14,15v3,7,5,13,5,18v0,12,-4,18,-13,18v-3,0,-9,-4,-18,-11v-9,-7,-18,-13,-27,-17v-9,-4,-18,-5,-29,-5v-11,0,-22,3,-31,10v-9,7,-13,16,-13,28v0,12,5,22,16,31v8,6,24,15,50,27v26,12,44,22,54,33v14,14,21,30,21,48r0,7v0,9,-1,18,-5,28v-4,10,-11,18,-19,26v-18,16,-41,24,-71,24v-8,0,-21,-2,-39,-5v-18,-3,-29,-6,-34,-9v-5,-3,-9,-7,-14,-15v-5,-8,-7,-15,-7,-22","w":233},"T":{"d":"22,-256r0,-5v0,-11,3,-18,10,-23v4,-3,15,-4,32,-4r11,-1r102,0v22,0,36,0,40,2v9,3,13,11,13,24r0,5v0,11,-3,17,-9,17v-3,0,-9,-2,-20,-6v-11,-4,-21,-5,-28,-5v-10,0,-18,3,-21,11v-3,7,-4,21,-4,42r0,12r-1,35r0,38v0,36,2,60,6,72v4,12,6,20,6,23v0,6,-4,11,-12,15v-4,2,-12,3,-24,3v-12,0,-20,-2,-25,-5v-5,-3,-8,-9,-8,-17v0,-2,2,-6,5,-14v3,-8,5,-16,6,-25v1,-9,2,-39,2,-88v0,-49,-1,-78,-3,-85v-2,-7,-4,-12,-8,-14v-4,-2,-8,-3,-14,-3v-7,0,-16,2,-27,6v-11,4,-18,5,-21,5v-6,0,-8,-5,-8,-15","w":250},"U":{"d":"31,-242v-3,-7,-5,-13,-5,-19v0,-8,3,-15,9,-21v3,-3,9,-5,16,-5r7,0v11,0,19,3,24,6v5,3,8,8,8,16r-5,29v-1,11,-2,26,-2,43r0,7r0,15r-1,16r0,15v0,44,5,73,14,87v7,10,14,17,23,20v9,3,19,6,30,6v11,0,22,-3,32,-9v10,-6,17,-13,23,-24v9,-16,14,-48,14,-96r-1,-38v0,-23,-1,-41,-3,-54v-2,-13,-2,-20,-2,-22v0,-11,10,-17,30,-17v6,0,12,3,16,8v4,5,6,11,6,16v0,5,-2,12,-5,21v-3,9,-6,17,-7,25v-1,8,-1,30,-1,64v0,34,-1,59,-3,74v-2,15,-8,29,-17,42v-18,26,-47,39,-88,39v-41,0,-71,-14,-88,-42v-7,-12,-12,-26,-14,-42v-2,-16,-3,-42,-3,-79v0,-37,0,-59,-1,-64v-1,-5,-3,-10,-6,-17","w":288},"V":{"d":"14,-269v0,-7,2,-11,7,-14v3,-2,9,-2,18,-2v9,0,17,1,23,4v6,3,11,8,13,13v2,5,4,12,5,20v1,8,3,16,5,25v2,9,11,36,28,84v17,48,26,72,28,72v2,0,11,-24,28,-71v17,-47,27,-76,30,-85v4,-13,5,-23,6,-31v1,-8,2,-13,3,-16v4,-10,13,-15,28,-15v9,0,15,1,18,4v3,3,4,6,4,11v0,7,-3,15,-10,26v-7,11,-24,51,-50,119v-26,68,-39,102,-39,103v-6,14,-14,20,-24,20v-10,0,-18,-7,-24,-21v-3,-7,-17,-42,-41,-107v-24,-65,-39,-103,-46,-113v-7,-10,-10,-19,-10,-26","w":269},"W":{"d":"23,-259v0,-14,6,-22,16,-22v14,0,23,6,29,18v3,5,6,16,9,32v3,16,9,38,15,63v13,52,22,78,27,78v3,0,11,-25,25,-77r21,-88v6,-14,15,-21,26,-21v11,0,20,7,26,20v3,6,6,17,9,31v3,14,10,40,22,77v12,37,18,55,19,55v5,0,14,-25,27,-74v5,-19,11,-37,15,-56v4,-19,6,-30,8,-34v5,-13,14,-19,26,-19v9,0,14,7,14,21v0,7,-3,16,-8,30v-5,14,-9,22,-10,27r-18,68v-13,48,-22,75,-25,84v-3,9,-8,16,-13,20v-5,4,-10,7,-14,7v-10,0,-19,-11,-29,-33v-7,-15,-17,-42,-29,-81v-12,-39,-20,-59,-22,-59v-2,0,-9,21,-22,62v-13,41,-23,69,-29,83v-9,20,-18,31,-28,31v-4,0,-9,-1,-13,-5v-6,-5,-10,-12,-13,-19v-2,-7,-7,-20,-12,-40v-15,-54,-26,-97,-35,-126v-9,-29,-14,-46,-14,-53","w":377},"X":{"d":"26,-14v0,-5,4,-12,13,-22v9,-10,19,-23,29,-39v27,-42,40,-66,40,-71v0,-3,-8,-18,-24,-45v-16,-27,-28,-47,-38,-60v-10,-13,-15,-22,-15,-26v0,-4,2,-6,6,-8v4,-2,13,-3,29,-3v16,0,27,4,32,12v1,2,3,7,4,14v1,7,4,15,8,24v16,33,25,50,28,50v5,0,17,-17,35,-51v5,-9,8,-18,10,-27v2,-9,4,-15,5,-16v4,-5,12,-7,23,-7v18,0,27,4,27,11v0,1,-12,20,-37,57v-25,37,-37,59,-37,68v0,5,8,21,26,50v18,29,31,50,41,63v10,13,14,20,14,23r0,5v0,7,-8,10,-23,10r-7,0v-17,0,-28,-4,-34,-11v-2,-3,-4,-8,-6,-17v-2,-9,-5,-17,-10,-26v-19,-37,-31,-56,-34,-56v-6,0,-18,20,-38,58v-4,8,-8,17,-10,27v-2,10,-3,15,-4,16v-4,6,-16,9,-36,9v-12,0,-17,-4,-17,-12","w":270},"Y":{"d":"22,-276v0,-4,2,-7,7,-9v5,-2,14,-3,27,-3v13,0,23,3,29,11v1,2,3,8,5,18v2,10,7,23,13,35v20,42,31,62,34,62v3,0,10,-13,23,-39v13,-26,20,-41,22,-47v2,-6,4,-11,5,-18v1,-7,1,-11,2,-12v4,-7,14,-10,29,-10v15,0,23,3,23,11v0,4,-4,11,-12,22v-8,11,-19,30,-35,58v-16,28,-27,48,-32,61v-5,13,-8,33,-8,59v0,12,1,21,2,26v1,5,3,10,5,16v2,6,3,9,3,12v0,8,-3,13,-8,17v-5,4,-13,6,-21,6r-11,0v-9,0,-15,-2,-19,-4v-6,-4,-8,-10,-8,-18v0,-2,2,-8,6,-18v4,-10,6,-25,6,-45v0,-20,-2,-35,-6,-44v-4,-9,-14,-29,-30,-59v-16,-30,-29,-52,-38,-64v-9,-12,-13,-20,-13,-24","w":261},"Z":{"d":"21,-17v0,-10,25,-50,73,-121v48,-71,72,-109,72,-114v0,-5,-9,-7,-28,-7v-27,0,-53,3,-78,10v-12,3,-19,5,-21,5v-8,0,-12,-5,-12,-17v0,-12,6,-20,19,-24v6,-2,30,-3,70,-3r7,0r15,0v42,0,66,1,73,2v11,2,16,5,16,11v0,9,-5,23,-17,41r-72,104v0,0,-55,79,-55,84v0,5,2,9,6,11v4,2,15,3,33,3v25,0,51,-4,78,-12v10,-3,17,-5,21,-5v8,0,13,6,13,18v0,12,-7,19,-20,24v-8,3,-30,5,-67,5r-76,0v-22,0,-35,-2,-41,-4v-6,-2,-9,-6,-9,-11","w":252},"[":{"d":"42,-36r0,-5r0,-6r0,-25r0,-11r0,-46v0,-103,1,-159,3,-166v2,-7,8,-11,16,-13v8,-2,24,-2,48,-2r9,0v8,0,11,2,11,7v0,8,-7,14,-21,18v-14,4,-23,10,-26,18v-3,8,-4,55,-4,142v0,87,1,136,3,144v2,8,10,14,25,18v15,4,22,10,22,16v0,6,-4,9,-12,9r-14,0r-5,0v-31,0,-48,-3,-51,-10v-3,-7,-4,-36,-4,-88","w":149},"\\":{"d":"12,-304v0,-3,3,-4,9,-4r7,0v7,0,14,6,19,18r107,276v8,20,13,33,13,36v0,3,-5,5,-16,5v-7,0,-15,-9,-22,-25r-25,-66r-27,-70v-1,-3,-1,-2,-33,-84v-21,-54,-32,-83,-32,-86","w":177},"]":{"d":"22,56v0,-8,7,-14,21,-18v14,-4,24,-9,26,-17v2,-8,3,-57,3,-144v0,-87,-1,-135,-3,-144v-2,-9,-10,-15,-25,-19v-15,-4,-22,-9,-22,-15r0,-3v0,-4,3,-6,11,-6r14,0v28,0,44,2,50,6v6,4,9,14,9,32r0,10r0,92r0,21r0,103v0,59,-1,91,-5,98v-4,7,-21,10,-51,10r-4,1r-14,0v-7,0,-10,-2,-10,-7","w":148},"^":{"d":"23,-151v0,-2,3,-9,8,-17v10,-16,22,-36,36,-62r12,-21v8,-14,14,-25,18,-31v4,-6,10,-9,16,-9r3,0v6,0,13,6,20,17v2,3,22,40,62,111v4,7,5,11,5,13v0,2,-4,3,-13,3v-9,0,-17,-6,-25,-17v-3,-4,-13,-19,-28,-47v-15,-28,-23,-41,-24,-41v-3,0,-10,13,-24,39v-14,26,-24,44,-31,52v-7,8,-15,13,-23,13v-8,0,-12,-1,-12,-3","w":225},"_":{"d":"2,38v0,-4,15,-7,46,-7r19,0r3,0r147,1v6,0,9,3,9,8r0,9v0,4,-12,6,-36,6r-45,0r-32,0r-75,0r-25,0v-8,0,-11,-3,-11,-8r0,-9","w":227},"`":{"d":"32,-298v0,-4,5,-6,15,-6r6,0v10,0,17,3,23,10v23,26,34,44,34,54v0,3,-2,4,-7,4r-4,0v-7,0,-16,-5,-28,-15v-26,-23,-39,-39,-39,-47","w":157},"a":{"d":"24,-54v0,-16,7,-30,21,-42v9,-8,21,-14,36,-19v6,-2,14,-4,24,-7v10,-3,18,-5,21,-7v7,-4,11,-11,11,-20v0,-9,-4,-16,-10,-22v-6,-6,-14,-8,-24,-8v-10,0,-22,4,-35,13v-13,9,-21,13,-26,13v-9,0,-14,-4,-14,-14v0,-10,8,-19,25,-27v17,-8,34,-13,52,-13r6,0v22,0,38,6,49,18v11,12,16,29,16,53r-2,62v0,16,2,27,4,33v0,1,2,3,5,9v3,6,5,10,5,14v0,10,-8,15,-26,15v-5,0,-11,-2,-17,-6v-6,-4,-11,-6,-13,-6v-2,0,-9,3,-21,8v-12,5,-22,8,-32,8r-5,0v-17,0,-29,-5,-37,-15v-8,-10,-13,-24,-13,-40xm60,-51v0,7,2,13,7,17v5,4,10,7,16,7v1,0,4,-1,5,-1v15,0,28,-5,38,-17v7,-8,11,-22,11,-40r0,-9v0,-6,-2,-8,-6,-8v-19,0,-37,6,-54,18v-11,8,-17,17,-17,28r0,5"},"b":{"d":"27,-282v0,-5,2,-9,6,-12v4,-3,10,-5,19,-5v9,0,16,2,19,6v3,4,4,13,4,26r0,28r0,19v0,10,1,17,2,20v1,3,5,5,11,5v2,0,6,-1,15,-3v9,-2,18,-4,28,-4v10,0,19,3,30,9v11,6,19,14,27,25v13,18,20,41,20,69v0,28,-7,51,-21,69v-7,9,-15,16,-25,21v-10,5,-21,8,-31,8r-4,0v-6,0,-15,-2,-28,-6v-13,-4,-19,-6,-21,-6v-2,0,-5,0,-9,2v-4,2,-8,2,-13,2v-5,0,-8,-2,-11,-6v-3,-4,-4,-24,-4,-60r0,-14r0,-25r-1,-9r0,-20r-2,-47r-1,-14r0,-18v0,-15,-2,-28,-5,-38v-3,-10,-5,-17,-5,-22xm81,-102v0,27,2,45,7,55v3,5,7,10,13,14v6,4,12,6,18,6r4,0v12,0,23,-7,31,-22v8,-15,12,-32,12,-53r0,-7v0,-19,-4,-36,-12,-50v-8,-14,-18,-20,-30,-20v-8,0,-15,2,-21,6v-6,4,-12,10,-16,18v-4,8,-6,22,-6,44r0,9","w":232},"c":{"d":"19,-96r0,-5v0,-28,7,-52,23,-71v19,-22,43,-34,72,-34r5,0v20,0,36,5,50,13v10,6,15,13,15,23v0,3,-1,7,-4,10v-3,3,-6,5,-10,5v-4,0,-11,-4,-23,-12v-12,-7,-22,-11,-32,-11v-18,0,-32,8,-41,22v-9,14,-14,32,-14,53v0,21,6,38,17,52v5,6,10,10,17,14v7,4,15,6,23,6v10,0,22,-3,34,-8v14,-6,24,-10,27,-10v6,0,9,3,9,8v0,10,-8,19,-24,28v-16,9,-32,13,-48,13r-9,0v-10,0,-22,-2,-33,-7v-23,-10,-38,-27,-47,-51v-5,-12,-7,-25,-7,-38","w":205},"d":{"d":"30,-92r0,-6v0,-31,9,-57,27,-78v16,-20,37,-30,62,-30v0,0,3,1,8,1r11,0v8,0,13,-1,16,-4v3,-3,4,-9,4,-20v0,-14,-1,-25,-3,-33v-2,-8,-3,-13,-3,-15v0,-6,2,-11,7,-15v5,-4,13,-5,23,-5v10,0,16,4,18,10v1,4,2,21,2,54r0,23r0,10r0,5v0,3,-1,6,-1,9r0,10v0,10,-1,9,-1,14r-1,30v-1,29,-2,49,-2,63v0,7,1,12,1,15v1,8,2,15,3,21v1,6,2,11,2,14v0,7,-7,11,-20,11v-6,0,-12,-1,-18,-4v-6,-3,-11,-5,-14,-5v-3,0,-9,3,-20,8v-11,5,-21,8,-31,8v-21,0,-37,-7,-49,-21v-14,-17,-21,-40,-21,-70xm70,-99v0,19,4,35,11,49v7,14,17,21,29,21r7,0v4,0,10,-2,17,-6v7,-4,11,-8,14,-14v6,-12,9,-32,9,-59r0,-6r0,-3r0,-5r0,-6v0,-17,-4,-30,-11,-40v-7,-10,-16,-15,-27,-15r-6,0v-12,0,-23,7,-31,22v-8,15,-12,32,-12,52r0,10","w":237},"e":{"d":"23,-97v0,-31,9,-57,28,-79v8,-9,19,-17,31,-23v12,-6,26,-8,39,-8r5,0v20,0,35,7,47,20v12,13,19,29,19,48v0,11,-5,20,-14,24v-7,3,-24,6,-50,8v-26,2,-43,3,-48,5v-11,3,-16,10,-16,20v0,13,5,24,15,34v10,10,23,16,38,16v10,0,21,-2,34,-7v20,-8,31,-12,32,-12v6,0,9,3,9,8v0,10,-9,19,-25,28v-16,9,-33,14,-49,14v-30,0,-53,-9,-69,-26v-18,-18,-26,-41,-26,-70xm64,-134v0,3,4,5,11,5r10,0r1,0r21,0v31,0,47,-3,47,-8v0,-11,-4,-21,-11,-29v-7,-8,-17,-13,-28,-13r-7,0v-2,0,-3,1,-4,1v-10,0,-18,4,-27,14v-9,10,-13,20,-13,30","w":215},"f":{"d":"24,-187v0,-1,6,-9,17,-24v3,-4,6,-14,10,-29v4,-15,9,-27,15,-35v13,-16,31,-24,51,-24r4,0v8,0,17,1,24,4v7,3,11,8,11,13v0,11,-6,17,-18,17r-22,-3v-8,0,-14,3,-19,9v-5,6,-7,15,-7,27v0,12,5,22,17,30v12,8,18,14,18,19v0,4,-4,8,-12,11v-8,3,-14,10,-18,19v-4,9,-6,34,-6,74v0,14,1,23,2,28v1,5,2,11,4,17v2,6,2,10,2,14v0,13,-10,19,-31,19r-5,0v-7,0,-12,-3,-17,-8v-5,-5,-7,-12,-7,-19r8,-33v1,-11,2,-26,2,-48v0,-22,-2,-37,-4,-45v-2,-8,-6,-15,-11,-20v-5,-5,-8,-9,-8,-13","w":152},"g":{"d":"34,-118r0,-6v0,-28,8,-51,23,-68v14,-16,33,-24,56,-24v10,0,17,1,23,3v6,2,11,5,16,8v5,3,8,4,9,4v1,0,4,-1,7,-3v3,-2,6,-3,11,-3v5,0,9,1,13,4v4,3,5,8,5,16v0,8,-1,20,-3,37v-2,16,-3,33,-3,50v0,14,1,27,2,41r2,22v1,11,2,18,2,22r0,11v0,23,-8,42,-23,57v-16,16,-37,24,-62,24r-6,0v-17,0,-33,-4,-49,-13v-12,-7,-18,-14,-18,-22v0,-7,5,-11,15,-11v2,0,10,3,24,7v14,4,26,6,34,6v16,0,28,-5,38,-15v10,-10,15,-26,15,-45v0,-4,-1,-6,-4,-6r-18,7v-8,3,-17,5,-25,5v-11,0,-21,-2,-32,-7v-21,-9,-36,-27,-44,-53v-5,-18,-8,-34,-8,-48xm74,-109v0,18,3,34,12,47v9,13,18,20,27,20v13,0,24,-6,32,-17v8,-11,13,-23,13,-40r0,-21v0,-16,-4,-30,-11,-45v-2,-4,-5,-10,-11,-14v-6,-4,-11,-6,-15,-6r-5,0v-9,0,-19,6,-28,17v-9,11,-14,24,-14,39r0,20","w":235},"h":{"d":"30,-283v0,-6,6,-9,19,-9v13,0,22,4,25,11v3,7,4,23,4,49v0,26,4,39,10,39v0,0,6,-3,18,-7v12,-4,23,-6,32,-6v9,0,19,2,28,7v9,5,17,13,23,24v6,11,9,38,9,84v0,22,1,38,4,48v3,10,5,17,5,19v0,8,-2,13,-6,16v-4,3,-11,4,-20,4v-9,0,-15,-1,-19,-5v-4,-4,-6,-9,-6,-17r0,-5v2,-20,3,-44,3,-71r0,-7r0,-10v0,-20,-3,-33,-7,-40v-5,-8,-12,-12,-22,-12v-10,0,-18,2,-25,8v-7,6,-12,13,-17,23v-5,10,-7,28,-7,56v0,17,1,31,3,41v2,10,3,16,3,18v0,7,-2,12,-7,16v-5,4,-12,6,-21,6v-9,0,-15,-1,-20,-3v-5,-2,-7,-9,-7,-18v0,-1,1,-6,3,-15v2,-9,3,-19,4,-27v1,-12,2,-25,2,-40v0,-9,-1,-18,-1,-28v-1,-27,-1,-43,-1,-47r-1,-13v-1,-12,-1,-23,-1,-35v0,-19,-2,-32,-4,-40v-2,-8,-3,-13,-3,-14","w":236},"i":{"d":"27,-193v0,-3,2,-5,5,-8v3,-3,13,-5,30,-5r5,0v7,0,11,5,12,13v0,3,1,16,1,37r0,39r-1,6r0,8r1,25r0,12v0,0,2,14,6,25v4,11,6,18,6,20v0,13,-10,19,-30,19r-8,0v-10,0,-17,-1,-21,-4v-4,-3,-6,-8,-6,-15v0,-2,2,-7,5,-15v3,-8,5,-16,6,-24v1,-8,1,-24,1,-48v0,-24,0,-40,-1,-48v-1,-8,-4,-15,-7,-22v-3,-7,-4,-12,-4,-15xm34,-266r0,-5r1,-6v0,-4,2,-8,5,-11v3,-3,8,-5,13,-5r2,-1r6,0r5,0r5,1v9,0,13,6,13,18r0,6v0,7,-2,11,-6,15v-4,4,-7,6,-12,6v-1,0,-3,1,-6,1r-6,0r-6,-1v-9,0,-14,-6,-14,-18","w":117},"j":{"d":"-9,66v0,-5,2,-9,7,-12v2,-1,6,-2,16,-4v10,-2,17,-6,21,-11v6,-8,9,-23,9,-45r1,-8r0,-8r0,-8r0,-40v0,-32,-1,-54,-2,-66v-1,-12,-3,-23,-6,-34v-3,-11,-5,-19,-5,-23v0,-8,11,-11,35,-11v8,0,13,3,16,12v2,6,3,18,3,36r0,122r0,3r0,8r-1,16v0,28,-6,50,-18,65v-6,8,-13,14,-22,18v-9,4,-18,6,-26,6r-7,0v-8,0,-13,-1,-16,-4v-3,-3,-5,-7,-5,-12xm40,-269r0,-1r1,-4v0,-6,2,-11,6,-15v4,-4,12,-5,22,-5v13,0,20,5,20,15v1,2,0,5,0,9r0,7v0,4,-3,8,-6,11v-3,3,-7,6,-12,6r-4,0r-4,1v-9,0,-15,-2,-18,-6v-3,-4,-5,-9,-5,-18","w":119},"k":{"d":"26,-289v0,-6,7,-9,22,-9v15,0,24,4,26,14v1,4,1,23,1,59r0,7r0,14r0,27v0,32,2,48,7,48v7,0,18,-8,32,-24v5,-6,11,-13,16,-21v5,-8,10,-14,13,-16v7,-5,16,-7,29,-7v13,0,19,2,19,6v0,3,-10,13,-29,31v-19,18,-28,31,-28,39v0,8,12,28,36,60v6,9,15,18,25,28v10,10,16,17,16,22v0,5,-7,7,-19,7r-6,0v-14,0,-26,-4,-33,-12r-26,-41v-16,-24,-26,-36,-30,-36v-9,0,-13,8,-13,25r3,33v0,7,-3,12,-8,17v-5,5,-13,7,-23,7v-10,0,-15,-1,-18,-2v-5,-2,-8,-8,-8,-17v0,-2,1,-5,1,-8r0,-5v2,-15,3,-29,3,-41r1,-14r0,-21r0,-21r0,-21v0,-42,-1,-68,-1,-78v0,-12,-1,-22,-4,-31v-3,-9,-4,-15,-4,-19","w":223},"l":{"d":"28,-288v0,-8,12,-11,34,-11r1,0v10,0,15,4,17,14r0,57r0,73r1,19r0,23v0,16,1,31,3,44v2,13,5,23,9,32v4,9,5,14,5,17v0,7,-2,11,-6,14v-4,3,-13,5,-27,5v-21,0,-32,-6,-32,-20r4,-23v1,-8,1,-19,1,-31r0,-7r0,-8r1,-19r0,-23r0,-12v0,-59,0,-92,-1,-99v-1,-9,-2,-18,-5,-26v-3,-8,-5,-15,-5,-19","w":123},"m":{"d":"26,-30v0,-5,0,-12,3,-21v3,-9,4,-19,5,-29v1,-10,1,-27,1,-50r1,-53v0,-8,5,-12,14,-12v4,0,11,2,20,6v9,4,17,7,23,7r6,-2r13,-5v9,-3,17,-4,25,-4v15,0,29,5,42,15v5,4,9,5,11,5v2,0,9,-5,23,-14v14,-9,26,-13,37,-13r7,0v10,0,19,2,27,8v8,6,14,14,18,24v4,10,6,23,7,41r1,9r0,18r1,17v0,10,2,20,4,29v2,9,4,15,4,17v0,11,-2,18,-7,23v-5,5,-14,8,-25,8v-6,0,-10,-2,-12,-7v-1,-2,-1,-10,-1,-22r-1,-65v0,-24,-4,-41,-9,-52v-5,-11,-15,-16,-29,-16v-7,0,-13,2,-18,7v-5,5,-9,11,-12,19v-5,16,-7,41,-7,75v0,5,1,12,2,20v1,8,2,14,2,16v0,13,-10,19,-32,19v-11,0,-18,-1,-22,-4v-4,-3,-6,-6,-6,-9v0,-3,1,-9,2,-18v1,-9,2,-25,2,-49v0,-24,-1,-43,-5,-57v-4,-14,-11,-21,-22,-21v-7,0,-15,3,-23,8v-8,5,-14,14,-18,25v-4,11,-5,41,-5,91v0,19,-1,28,-1,29v-2,7,-8,10,-18,10v-10,0,-18,-3,-22,-8v-4,-5,-6,-10,-6,-15","w":343},"n":{"d":"23,-21v0,-5,2,-12,5,-20v3,-8,4,-19,5,-32v1,-18,2,-35,2,-50v0,-7,-1,-14,-1,-20v-1,-20,-1,-33,-2,-37v-1,-4,-1,-7,-1,-8v0,-7,7,-11,23,-11v6,0,12,4,19,9v7,5,12,8,15,8v3,0,8,-2,14,-5v6,-3,12,-6,19,-9v7,-3,16,-4,26,-4v37,0,56,23,56,70v0,4,1,17,2,38v1,21,2,33,4,39v4,13,7,20,7,22v0,8,-2,14,-6,17v-4,3,-11,5,-22,5v-11,0,-17,-3,-21,-7v-2,-2,-3,-8,-3,-17r0,-5v0,-1,1,-3,1,-9r0,-21v0,-39,-3,-66,-9,-80v-3,-7,-6,-14,-12,-18v-6,-4,-13,-6,-21,-6v-8,0,-16,1,-23,6v-7,5,-12,10,-15,16v-7,12,-10,37,-10,76v0,13,1,24,2,31v1,7,2,12,2,14v0,15,-11,22,-31,22v-9,0,-15,-1,-19,-3v-4,-2,-6,-6,-6,-11","w":237},"o":{"d":"29,-97r0,-11v0,-14,3,-28,8,-41v10,-26,26,-45,48,-56v10,-5,22,-8,36,-8v27,0,48,10,64,30v15,20,23,44,23,73r0,4v0,28,-8,53,-23,74v-8,11,-18,19,-30,25v-12,6,-24,8,-35,8r-9,0v-21,0,-40,-9,-57,-27v-7,-7,-12,-17,-17,-30v-5,-13,-8,-27,-8,-41xm70,-100r0,7v0,18,5,33,15,47v10,14,20,21,31,21v17,0,29,-8,37,-23v8,-15,12,-32,12,-51r0,-10v0,-19,-4,-36,-13,-53v-3,-7,-9,-12,-15,-16v-6,-4,-12,-6,-17,-6r-6,0v-12,0,-22,6,-31,21v-9,15,-13,31,-13,50r0,13","w":232},"p":{"d":"28,51v4,-10,6,-16,7,-21v1,-5,2,-20,4,-44v2,-24,2,-43,2,-57r1,-10r0,-10r0,-5r0,-10r1,-20v0,-25,-2,-43,-4,-52v-2,-9,-4,-14,-4,-14v0,-8,7,-12,19,-12v7,0,13,2,19,5v6,3,13,5,18,5r20,-10v9,-4,18,-5,26,-5r5,0v9,0,17,2,26,6v9,4,16,11,23,19v13,16,19,37,19,63r0,10v0,14,-3,29,-9,43v-11,28,-28,46,-51,55v-9,4,-22,5,-36,5v-14,0,-24,2,-29,6v-5,4,-8,9,-8,17v0,6,2,13,5,21v3,8,5,16,5,21v0,5,-2,10,-8,14v-6,4,-13,7,-22,7r-5,0v-10,0,-16,-2,-20,-5v-4,-3,-6,-7,-6,-12v0,-3,1,-7,2,-10xm82,-95r0,2r0,6r1,11v0,13,3,24,10,33v7,9,15,13,25,13r4,0r1,0v13,0,24,-7,32,-22v8,-15,12,-32,12,-50r0,-14v0,-18,-4,-34,-12,-46v-8,-12,-18,-18,-29,-18r-3,0v-11,0,-20,5,-28,15v-8,10,-12,23,-12,39r-1,4r0,7r0,13r0,7","w":234},"q":{"d":"29,-107r0,-11v0,-26,8,-49,25,-68v7,-8,15,-14,25,-19v9,-5,19,-7,29,-7v9,0,19,2,30,6v16,6,25,8,27,8r2,-1r6,-3v4,-2,7,-2,10,-2v7,0,12,5,15,15v0,2,1,22,1,61r1,44r0,10r0,5r0,10r1,9r0,15r1,14r0,25v0,0,1,14,2,19v1,5,3,11,6,17v3,6,4,13,4,20v0,7,-2,11,-8,14v-6,3,-13,5,-23,5v-18,0,-28,-8,-28,-22v0,-1,2,-6,4,-16v2,-10,3,-18,3,-26v0,-8,0,-13,-2,-15v-5,-5,-13,-8,-24,-8r-29,2v-10,0,-20,-3,-30,-8v-20,-11,-34,-29,-42,-53v-4,-14,-6,-27,-6,-40xm70,-102v0,19,4,35,12,50v8,15,19,22,30,22r6,0v11,0,19,-5,27,-15v8,-10,12,-26,12,-44r1,-6r0,-12r0,-11v0,-45,-12,-67,-37,-67r-8,0v-4,0,-9,2,-15,6v-6,4,-12,9,-16,17v-8,15,-12,31,-12,48r0,12","w":236},"r":{"d":"26,-18v0,-4,1,-10,4,-17v3,-7,4,-14,5,-22v1,-8,1,-24,1,-46v0,-34,-1,-56,-4,-65v-3,-9,-4,-16,-4,-19v0,-9,9,-13,27,-13v9,0,15,2,18,4v3,2,6,6,8,10v2,4,4,6,6,6v1,0,6,-4,16,-11v10,-7,19,-11,27,-11v17,0,25,7,25,22v0,11,-6,17,-19,17r-20,-1v-25,0,-38,26,-38,78v0,17,2,31,5,42v3,11,5,17,5,20v0,7,-3,13,-9,17v-6,4,-14,5,-25,5r-11,0v-6,0,-10,-2,-13,-5v-3,-3,-4,-7,-4,-11","w":166},"s":{"d":"20,-38v0,-10,3,-14,10,-14v2,0,10,4,24,13v14,9,30,14,45,14v8,0,15,-3,21,-8v6,-5,9,-12,9,-20v0,-8,-5,-16,-15,-23v-4,-2,-16,-8,-35,-16v-19,-8,-32,-17,-41,-26v-9,-9,-13,-20,-13,-35v0,-15,7,-27,19,-38v12,-11,27,-16,46,-16r6,0v21,0,37,2,48,7v11,5,16,14,16,27v0,8,-3,12,-10,12v-1,0,-9,-3,-22,-10v-13,-7,-24,-10,-34,-10v-10,0,-18,2,-23,7v-5,5,-8,11,-8,18v0,7,5,14,14,20v5,3,16,8,35,16v19,8,31,15,39,22v12,10,18,24,18,40v0,16,-7,31,-20,42v-13,11,-29,17,-50,17r-5,0v-23,0,-41,-3,-54,-9v-6,-3,-12,-6,-15,-12v-3,-6,-5,-12,-5,-18","w":188},"t":{"d":"18,-190v0,-5,3,-9,8,-11v9,-4,14,-8,16,-10v2,-2,3,-9,6,-19v3,-10,5,-18,7,-21v4,-7,9,-10,15,-10v6,0,9,2,11,5v2,3,5,9,7,19v2,10,5,17,9,21v4,4,10,8,20,10v10,2,14,7,14,13v0,7,-5,13,-17,16v-12,3,-19,8,-22,15v-4,10,-5,29,-5,58v0,29,2,48,7,56v5,8,12,13,24,15v12,2,18,6,18,12v0,6,-3,10,-8,13v-8,5,-17,7,-29,7v-22,0,-37,-9,-45,-27v-5,-12,-8,-37,-8,-76r-1,-9r0,-8r0,-17v0,-12,-2,-22,-5,-29v-2,-4,-7,-7,-13,-10v-6,-3,-9,-8,-9,-13","w":155},"u":{"d":"22,-188r0,-4v0,-6,6,-10,17,-10r5,0v13,0,21,5,24,14v2,7,4,25,4,57r0,23v0,4,1,7,1,11v0,23,3,39,9,50v6,11,16,16,29,16v7,0,14,-2,21,-6v7,-4,13,-9,18,-17v7,-12,11,-34,11,-67v0,-11,-1,-23,-2,-37v-1,-14,-3,-21,-3,-22v0,-7,3,-13,8,-16v5,-3,15,-5,29,-5v4,0,6,2,8,5v2,3,3,14,3,30r-3,75v0,23,1,39,3,48r3,9v1,5,2,7,2,8r0,5v0,2,-1,5,-4,7v-5,4,-14,6,-27,6v-4,0,-9,-2,-14,-6v-5,-4,-9,-5,-11,-5v-2,0,-9,3,-21,9v-12,6,-22,9,-32,9r-5,0v-11,0,-22,-3,-31,-8v-9,-5,-17,-14,-23,-25v-6,-11,-9,-36,-9,-76v0,-31,-1,-51,-5,-61v-4,-10,-5,-15,-5,-17","w":234},"v":{"d":"12,-190v0,-9,6,-13,17,-13r4,0v16,0,27,5,32,15v1,2,3,10,6,23v3,13,9,35,20,65v11,30,17,45,19,45v3,0,13,-24,29,-70v8,-24,13,-41,15,-50v2,-9,2,-14,3,-16v4,-8,11,-12,20,-12r9,0v10,0,15,3,15,11v0,6,-2,13,-7,21v-11,19,-24,47,-38,84v-14,37,-24,60,-28,68v-6,12,-13,18,-22,18v-9,0,-17,-6,-22,-16v-3,-7,-12,-29,-27,-68v-15,-39,-28,-67,-38,-84v-5,-8,-7,-15,-7,-21","w":212},"w":{"d":"16,-180r0,-5v0,-11,6,-16,19,-16v13,0,22,6,27,18v2,5,4,14,7,27v3,13,6,24,8,33v10,36,17,55,21,55v5,0,12,-18,22,-52v2,-6,5,-17,8,-34v3,-17,5,-27,7,-30v5,-9,14,-14,28,-14v7,0,13,5,18,17v2,6,6,14,8,24v2,10,5,22,8,33v10,37,17,56,21,56v5,0,12,-17,22,-50v4,-12,7,-26,10,-41v3,-15,5,-24,7,-27v5,-10,11,-15,20,-15v11,0,16,7,16,18v0,6,-2,14,-7,25v-5,11,-13,32,-23,61r-10,31v-8,23,-11,35,-12,37v-6,14,-14,21,-23,21v-9,0,-17,-7,-24,-22v-4,-8,-11,-27,-21,-57v-10,-30,-17,-45,-19,-45v-1,0,-7,15,-17,44v-10,30,-19,50,-25,62v-6,12,-13,17,-20,17v-4,0,-9,-2,-14,-6v-4,-4,-8,-9,-11,-15v-3,-6,-9,-25,-18,-55v-9,-30,-17,-53,-23,-66v-6,-13,-10,-23,-10,-29","w":308},"x":{"d":"20,-8v0,-1,10,-15,31,-44v21,-29,31,-45,31,-50v0,-5,-8,-20,-26,-46r-32,-45v0,-4,2,-8,5,-10v3,-2,11,-2,24,-2r5,0v12,0,20,3,24,9v1,2,2,5,4,11v2,6,4,12,7,17v10,19,16,28,19,28v4,0,11,-10,21,-28v4,-6,6,-13,8,-19v2,-6,2,-10,4,-12v3,-4,12,-6,25,-6v13,0,19,2,19,6v0,3,-10,17,-28,41v-18,24,-27,40,-27,48v0,3,6,14,19,34v13,20,23,35,31,44v8,9,12,15,12,19r0,3v0,6,-8,9,-24,9v-16,0,-26,-2,-30,-5v-4,-3,-7,-9,-9,-15v-2,-6,-4,-11,-6,-16v-12,-25,-21,-38,-25,-38v-3,0,-11,11,-23,33v-3,6,-6,13,-8,20v-2,7,-4,12,-5,13v-4,6,-13,8,-30,8v-10,0,-16,-3,-16,-7","w":215},"y":{"d":"21,-186r0,-5v0,-3,2,-5,6,-8v4,-3,9,-4,16,-4v16,0,26,5,31,16v0,0,1,6,4,18v3,12,9,33,19,60v10,27,15,41,16,41v4,0,13,-21,26,-63v6,-20,10,-35,11,-45v1,-10,2,-16,3,-18v3,-8,11,-11,23,-11v12,0,18,4,18,13v0,2,-6,18,-18,47v-2,6,-13,33,-30,82v-17,49,-29,82,-37,97v-15,31,-34,46,-56,46v-7,0,-14,-1,-18,-4v-4,-3,-6,-7,-6,-11v0,-7,6,-13,18,-17v12,-4,21,-10,27,-18v9,-12,14,-26,14,-41v0,-11,-7,-34,-22,-71r-26,-62v-13,-26,-19,-40,-19,-42"},"z":{"d":"18,-12v0,-8,4,-16,9,-24v5,-8,22,-32,52,-72v30,-40,44,-61,44,-65v0,-3,-7,-5,-21,-5v-14,0,-27,1,-38,3r-5,1r-9,2v-8,2,-13,3,-16,3v-8,0,-11,-6,-11,-16v0,-7,2,-11,7,-15v5,-4,10,-6,18,-6r5,0r5,0r49,1v39,0,61,0,66,1v5,1,7,5,7,12v0,10,-17,37,-52,81v-35,44,-52,69,-52,76v0,4,8,5,22,5v21,0,40,-2,60,-7v6,-2,11,-3,15,-3v8,0,12,5,12,15v0,6,-1,11,-4,14v-3,3,-6,6,-12,7v-6,1,-30,2,-73,2r-11,0r-38,0v-19,0,-29,-3,-29,-10","w":202},"{":{"d":"25,-124v0,-5,4,-10,13,-14v9,-4,15,-11,19,-17v4,-6,6,-18,6,-36r-2,-46v0,-35,13,-58,37,-68v10,-4,20,-7,32,-7v5,0,8,2,8,5v0,6,-4,13,-14,21v-10,8,-17,14,-19,18v-4,8,-6,22,-6,42r1,36v0,16,-2,27,-6,35v-4,8,-8,14,-11,17v-3,3,-8,6,-12,9v-4,3,-6,4,-6,5r14,11v6,5,11,11,15,20v4,9,5,23,5,43r0,16r0,14v0,17,1,29,4,36v4,8,10,16,20,23v10,7,15,14,15,21v0,3,-4,5,-12,5v-8,0,-17,-2,-27,-5v-10,-3,-18,-10,-24,-18v-9,-12,-14,-30,-14,-57r2,-47v0,-14,-3,-24,-7,-31v-4,-7,-11,-12,-19,-16v-8,-4,-12,-10,-12,-15","w":161},"|":{"d":"57,-104r0,-119v0,-47,0,-74,1,-79v1,-5,5,-8,12,-8r7,0v6,0,9,4,10,11v1,5,1,27,1,69r0,137v0,95,0,145,-1,153v-1,8,-5,12,-12,12r-7,0v-7,0,-11,-5,-11,-15r0,-16r0,-49r0,-5r0,-74r0,-17","w":144},"}":{"d":"24,61v0,-7,5,-13,15,-21v10,-8,17,-15,20,-22v3,-7,5,-22,5,-42r-1,-15r0,-23v0,-23,9,-42,25,-54r3,-2v5,-3,7,-5,7,-5v0,-1,-2,-3,-6,-5v-11,-7,-18,-17,-22,-26v-4,-9,-6,-24,-6,-46r1,-41v0,-10,-2,-19,-6,-25v-4,-6,-10,-13,-20,-20v-10,-7,-14,-14,-14,-21v0,-3,2,-5,7,-5r5,0v9,0,18,2,27,6v9,4,16,9,22,16v10,12,14,32,14,62r-1,42v0,14,2,25,6,31v4,6,9,12,18,17v9,5,14,9,14,14v0,5,-5,10,-14,15v-9,5,-15,12,-19,19v-4,7,-6,20,-6,38r2,42v0,37,-14,60,-40,70v-9,3,-17,5,-25,5v-8,0,-11,-1,-11,-4","w":160},"~":{"d":"23,-118r0,-5v0,-10,5,-20,17,-31v12,-11,24,-16,36,-16r5,0v11,0,27,5,47,16v20,11,33,16,41,16v8,0,16,-4,26,-14v10,-10,16,-14,18,-14v7,0,10,4,10,11v0,11,-6,21,-17,32v-11,11,-23,17,-36,17r-5,0v-10,0,-25,-6,-45,-17v-20,-11,-34,-16,-42,-16v-8,0,-17,5,-27,15v-10,10,-16,14,-18,14v-7,0,-10,-2,-10,-8","w":245},"\u00a0":{"w":134},"\u00a1":{"d":"42,-204r0,-4r1,-5v0,-4,2,-7,5,-10v3,-3,7,-4,13,-4r6,-1r4,0r7,1v11,0,16,4,16,14v0,1,1,2,1,5r0,6v0,5,-1,10,-4,14v-3,4,-8,5,-14,5r-4,1r-2,0r-3,0r0,0r-5,-1r-5,0v-10,0,-15,-6,-15,-16xm47,31r0,-2r1,-22v0,-5,1,-10,1,-14r1,-18r0,-10r1,-12r0,-5v1,-7,1,-12,1,-15r1,-11v1,-10,2,-17,2,-22r0,-12r0,-13v0,-14,5,-21,13,-21r2,0v8,0,12,9,12,28r0,11v0,4,1,4,1,8r0,6r0,5v1,9,2,15,2,18r1,22v1,7,1,12,1,15r0,15r1,12r0,3r1,5r0,12r1,9r0,12r0,9v0,7,-1,13,-4,16v-3,3,-9,6,-17,6r-4,0v-7,0,-11,-2,-14,-5v-3,-3,-4,-8,-4,-16r0,-14","w":137},"\u00a2":{"d":"39,-113r0,-5v0,-13,2,-27,6,-40v4,-13,11,-24,18,-33v7,-9,19,-16,35,-23v16,-7,27,-12,29,-14v2,-2,5,-7,10,-15v5,-8,8,-13,11,-13v5,0,10,4,13,12v3,8,9,17,17,28v8,11,13,19,13,25v0,9,-5,13,-14,13v-2,0,-6,-1,-12,-4v-6,-3,-11,-5,-14,-5v-7,0,-12,6,-15,19v-8,36,-11,66,-11,91v0,8,1,13,5,18v4,5,9,7,14,7v5,0,12,-1,21,-4v9,-3,14,-4,15,-4v6,0,10,3,10,9v0,6,-7,12,-21,21v-14,9,-24,16,-29,22v-13,14,-20,22,-22,22r-2,0v-2,0,-5,-3,-8,-9v-3,-6,-13,-18,-30,-37r-27,-30v-8,-14,-12,-32,-12,-51xm76,-121r1,2v0,15,2,28,6,38v7,17,14,25,20,25r1,0r1,0v4,0,6,-3,6,-10r0,-5v0,-2,1,-4,1,-5r0,-8r1,-7r0,-5r1,-6r0,-7r0,-6r5,-34r6,-36r0,-4v0,-6,-1,-9,-4,-9r-3,0v-10,0,-20,8,-30,25v-8,12,-12,30,-12,52","w":233},"\u00a3":{"d":"34,-142v0,-4,1,-8,3,-10r8,-8v0,0,5,-5,6,-7v1,-2,3,-14,7,-36v4,-22,11,-39,19,-50v17,-22,40,-33,69,-33r7,0v15,0,28,2,38,8v10,6,15,13,15,20v0,10,-5,14,-15,14v-2,0,-9,-2,-19,-5v-10,-3,-18,-4,-24,-4v-15,0,-26,6,-34,17v-8,11,-12,25,-12,39v0,14,2,23,6,27v4,4,13,9,26,13v13,4,20,9,20,15v0,6,-6,11,-19,15v-13,4,-21,9,-25,15v-10,15,-15,35,-15,60v0,6,2,10,7,13v5,3,14,5,25,5v7,0,16,-2,26,-3v25,-4,39,-5,41,-5v15,0,22,6,22,17v0,9,-3,15,-11,19v-8,4,-17,7,-29,7r-14,0v-4,0,-17,-1,-38,-3v-21,-2,-39,-3,-53,-3r-20,1v-15,0,-22,-4,-22,-12v0,-6,3,-14,11,-24v9,-11,15,-21,19,-30v4,-9,5,-18,5,-28v0,-10,-1,-17,-3,-20v-2,-3,-7,-8,-15,-12v-8,-4,-12,-8,-12,-12","w":239},"\u00a4":{"d":"36,-52v0,-2,4,-7,11,-16v7,-9,11,-14,11,-17v0,-3,-1,-7,-3,-12v-2,-5,-4,-11,-6,-17v-2,-6,-2,-14,-2,-24v0,-10,1,-21,5,-33v4,-12,6,-19,6,-20v0,-4,-4,-9,-11,-17v-7,-8,-11,-13,-11,-16v0,-3,2,-7,6,-11v4,-4,7,-6,10,-6v3,0,7,4,14,11v7,7,13,10,18,10v1,0,4,-1,9,-3v5,-2,9,-3,14,-5v5,-2,11,-3,19,-3v8,0,18,2,28,6v10,4,16,5,17,5v3,0,8,-4,15,-11v7,-7,11,-10,14,-10v3,0,6,2,9,6v3,4,5,7,5,9v0,2,-4,8,-11,16v-7,8,-11,14,-11,18r7,25v2,9,4,18,4,27v0,9,-1,18,-4,27v-5,17,-8,25,-8,26v0,3,4,8,11,16v7,8,11,14,11,17v0,3,-2,7,-6,11v-4,4,-6,6,-9,6v-3,0,-7,-4,-14,-11v-7,-7,-13,-11,-18,-11v-1,0,-5,1,-9,3v-12,5,-24,8,-35,8v-9,0,-17,-2,-26,-5r-7,-3v-4,-2,-7,-2,-10,-2v-3,0,-8,3,-15,10v-7,7,-12,11,-14,11v-2,0,-6,-2,-9,-6v-3,-4,-5,-7,-5,-9xm74,-140r0,2v0,18,4,33,14,44v10,11,21,17,33,17r7,0v13,0,25,-6,34,-18v9,-12,14,-27,14,-45v0,-18,-5,-34,-15,-45v-10,-11,-21,-17,-34,-17r-4,0r-1,0v-13,0,-25,6,-34,18v-9,12,-14,27,-14,44","w":247},"\u00a5":{"d":"32,-267v0,-7,3,-11,8,-14v5,-3,12,-5,19,-5v14,0,23,4,27,10r3,15v0,0,6,23,13,40v15,39,25,58,29,58v3,0,12,-18,27,-55v8,-19,12,-33,13,-42v1,-9,1,-14,2,-16v3,-6,11,-9,23,-9v12,0,19,4,19,12r0,5r-23,41v-13,23,-19,41,-19,52v0,6,3,12,9,18v6,6,8,11,8,13v0,4,-6,8,-17,14v-11,6,-17,12,-17,17v0,5,5,9,15,13v13,5,20,10,20,12v0,2,-6,7,-19,15v-13,8,-20,16,-20,26r5,26v0,14,-12,21,-35,21r-7,0v-7,0,-13,-1,-18,-5v-5,-4,-7,-7,-7,-12v0,-5,1,-10,2,-15v1,-5,2,-9,2,-9v0,-7,-2,-12,-6,-17v-4,-5,-9,-10,-18,-16v-9,-6,-14,-9,-14,-13v0,-2,6,-6,17,-10v11,-4,17,-10,17,-16v0,-5,-5,-10,-16,-16v-11,-6,-17,-10,-17,-13v0,-3,2,-7,8,-14v6,-7,8,-14,8,-20v0,-6,-7,-23,-21,-49v-14,-26,-20,-40,-20,-42","w":246},"\u00a6":{"d":"58,-60r0,-9v0,-9,1,-13,2,-15v1,-2,5,-3,10,-3r8,0v7,0,10,2,10,7r0,3r0,4r0,3r0,15r0,3r0,45r0,6r0,32r0,6r0,7v0,8,0,12,-1,14v-1,2,-5,3,-10,3r-8,0v-6,0,-9,-2,-10,-7v0,-3,-1,-17,-1,-42r0,-64r0,-8xm58,-170r0,-24r0,-2r0,-52r0,-5r0,-35v0,-10,3,-14,10,-14r10,0v7,0,10,5,10,14r0,27r0,2r0,70r0,7r0,11v0,8,-1,12,-2,14v-1,2,-4,3,-9,3r-9,0v-7,0,-10,-5,-10,-16","w":151},"\u00a7":{"d":"42,-137r0,-6v0,-9,4,-19,10,-31v6,-12,10,-19,10,-20v0,-2,-3,-8,-9,-20v-3,-7,-4,-16,-4,-25v0,-15,6,-28,18,-40v12,-12,28,-17,47,-17r7,0v17,0,31,3,44,10v13,7,19,15,19,24v0,9,-5,14,-15,14v-2,0,-8,-4,-18,-12v-10,-8,-20,-11,-31,-11v-11,0,-20,3,-26,9v-6,6,-10,13,-10,21v0,8,5,16,13,24v4,4,14,11,32,23v18,12,31,24,40,36v9,12,15,26,15,43v0,11,-2,20,-7,29v-1,1,-1,1,-6,10v-3,6,-5,10,-5,12v0,2,2,10,7,21v4,9,6,18,6,27v0,9,-3,18,-7,27v-4,8,-9,14,-15,19v-13,11,-29,17,-47,17r-7,0v-15,0,-29,-4,-41,-11v-12,-7,-18,-15,-18,-23v0,-9,4,-14,13,-14v3,0,10,3,19,11v9,8,20,12,31,12v11,0,20,-3,27,-9v7,-6,10,-13,10,-22v0,-9,-3,-17,-9,-23v-6,-6,-18,-16,-37,-29v-19,-13,-33,-26,-42,-38v-9,-12,-14,-25,-14,-38xm72,-145v0,11,5,22,16,33v26,28,44,43,53,43r2,0v2,0,5,-3,10,-8v5,-5,7,-11,7,-18r0,-7v0,-9,-4,-17,-13,-26v-32,-32,-52,-48,-61,-48v-2,0,-5,3,-9,8v-4,5,-5,12,-5,23","w":229},"\u00a8":{"d":"34,-275r0,-3r0,0r1,-6r0,-1v0,-9,4,-14,12,-14v4,-1,7,-1,9,-1r1,0v11,0,17,5,17,14r1,7r0,5r0,6v0,9,-5,14,-14,14v-2,1,-4,1,-7,1r-8,-2v-7,0,-11,-4,-11,-13r-1,-4r0,-1r0,-2xm116,-275r0,-3r1,0r0,-6v0,-1,1,-1,1,-1v0,-9,4,-14,13,-14r4,-1r6,0v11,0,16,6,16,16r1,5r0,5v0,13,-5,20,-14,20v-2,1,-5,1,-9,1r-6,-1v-8,0,-11,-4,-11,-13r-1,-2","w":183},"\u00a9":{"d":"33,-136r0,-10v0,-16,3,-33,9,-50v6,-17,15,-32,27,-46v12,-14,27,-24,43,-32v16,-8,32,-12,49,-12r9,0r1,0v15,0,30,3,45,11v29,14,50,37,62,69v7,19,11,38,11,58r0,10v0,19,-4,37,-10,54v-14,36,-36,61,-67,75v-16,7,-32,11,-48,11r-4,0v-17,0,-33,-4,-49,-11v-16,-7,-29,-17,-41,-30v-12,-13,-20,-27,-27,-44v-7,-17,-10,-35,-10,-53xm53,-138v0,16,3,31,9,46v6,15,13,29,23,40v10,11,22,20,35,26v13,6,26,10,39,10r7,0v12,0,25,-4,39,-10v14,-6,26,-15,37,-28v20,-24,30,-52,30,-84r0,-8v0,-16,-3,-31,-9,-47v-6,-16,-14,-30,-25,-41v-11,-11,-21,-19,-34,-25v-13,-6,-25,-9,-37,-9r-8,0v-13,0,-25,3,-38,9v-27,13,-48,35,-59,66v-6,16,-9,31,-9,46r0,9xm85,-136r0,-9v0,-10,2,-21,6,-32v8,-22,23,-38,44,-46v9,-4,18,-5,26,-5r8,0v17,0,29,2,39,7v10,5,15,13,15,26v0,5,-3,8,-8,8v-2,0,-7,-4,-16,-11v-9,-7,-20,-10,-33,-10v-13,0,-23,6,-32,18v-9,12,-13,29,-13,50v0,21,5,36,15,47v10,11,22,15,37,15v8,0,17,-2,26,-8v9,-6,16,-9,20,-9v4,0,6,2,6,6v0,8,-6,15,-18,22v-12,7,-25,11,-39,11r-8,0v-20,0,-38,-7,-52,-22v-7,-7,-13,-17,-17,-27v-4,-10,-6,-20,-6,-31","w":323},"\u00aa":{"d":"24,-190v0,-19,13,-33,39,-42v3,-1,7,-2,13,-4v6,-2,11,-4,14,-6v3,-2,6,-5,6,-10v0,-5,-2,-10,-6,-13v-4,-3,-9,-5,-16,-5v-7,0,-14,2,-22,7v-8,5,-15,8,-18,8v-7,0,-10,-3,-10,-9v0,-6,5,-12,16,-17v11,-5,24,-8,39,-8v15,0,26,3,34,10v8,7,13,17,13,30r-1,12r-1,9r0,6v-1,8,-1,14,-1,16r0,6r0,6v0,6,1,11,4,15v3,4,5,7,5,10v0,8,-7,12,-21,12v-2,0,-6,-1,-10,-4v-4,-3,-7,-4,-9,-4v-2,0,-6,2,-13,5v-7,3,-13,4,-18,4r-6,0v-9,0,-16,-2,-22,-8v-6,-6,-9,-15,-9,-26xm49,-189v0,7,3,11,10,11r4,1r2,0v2,0,4,-1,7,-1v3,0,8,-2,14,-7v6,-5,8,-9,8,-13r1,-2r1,-4r0,-2r0,-4r0,-7v0,-3,-2,-4,-5,-4v-3,1,-6,1,-8,1v-8,0,-16,3,-23,9v-7,6,-11,12,-11,18r0,4","w":154},"\u00ab":{"d":"26,-112v0,-1,12,-15,35,-43v23,-28,38,-42,44,-42v6,0,9,1,9,6r0,2v0,3,-5,12,-16,27v-11,15,-19,26,-26,34v-7,8,-10,13,-10,15v0,2,8,15,26,37v18,22,26,36,26,42v0,4,-3,7,-9,7v-6,0,-18,-11,-37,-33v-28,-34,-42,-51,-42,-52xm106,-112v0,-3,11,-17,35,-44v24,-27,37,-40,42,-40v7,0,10,2,10,7v0,6,-9,19,-26,41v-17,22,-25,34,-25,36v0,2,8,13,25,35v17,22,26,36,26,41v0,5,-2,8,-8,8v-6,0,-20,-13,-44,-40v-24,-27,-35,-41,-35,-44","w":215},"\u00ac":{"d":"21,-146r0,-6v0,-4,2,-6,6,-6r3,0r3,0r87,1v63,0,95,0,98,1v6,2,9,20,9,53r0,7r0,12r0,6r2,24r0,3v0,4,-2,6,-6,6v-11,0,-17,-3,-20,-8v-3,-5,-5,-17,-5,-37v0,-20,-4,-32,-11,-36v-4,-2,-28,-3,-76,-3v-48,0,-73,0,-77,-1v-8,-2,-13,-6,-13,-16","w":251},"\u00ad":{"d":"22,-102r0,-10v0,-9,2,-14,6,-15v4,-1,23,-2,55,-2r46,-1v8,0,13,4,13,10r0,6r0,1v0,10,-2,16,-7,17v-5,1,-23,2,-56,2r-11,0r-17,0r-17,0v-8,0,-12,-3,-12,-8","w":163},"\u00ae":{"d":"42,-146r0,-8v0,-17,2,-35,8,-51v6,-16,14,-30,24,-42v21,-26,46,-39,76,-39r12,0v14,0,26,3,39,10v25,14,42,35,52,63v7,20,10,37,10,52r0,8v0,34,-11,63,-33,86v-22,23,-49,35,-80,35r-11,0v-24,0,-46,-10,-66,-32v-21,-22,-31,-50,-31,-82xm59,-150v0,28,9,52,27,72v8,9,17,16,28,21v11,5,22,8,33,8r6,0v11,0,23,-3,34,-8v11,-5,21,-14,30,-24v9,-10,16,-22,21,-36v5,-14,8,-27,8,-41r0,-7v0,-13,-2,-26,-7,-39v-9,-25,-25,-43,-46,-54v-11,-6,-23,-9,-35,-9r-6,0v-11,0,-23,3,-34,9v-11,6,-21,14,-30,24v-9,10,-16,22,-21,36v-5,14,-8,28,-8,41r0,7xm101,-103r4,-13v1,-3,0,-9,0,-19r1,-25r1,-20r1,-19v0,-10,0,-17,-1,-21v-1,-4,-2,-7,-2,-7v0,-4,13,-6,37,-6r5,-1v18,0,32,3,41,10v9,7,13,17,13,32v0,8,-4,16,-11,26v-7,10,-10,14,-10,15r15,28v2,3,4,9,9,16v5,7,7,12,7,14v0,4,-3,5,-10,5v-7,0,-12,-1,-15,-3v-3,-2,-9,-12,-19,-29v-7,-12,-14,-18,-20,-18v-8,0,-13,7,-13,19v0,4,1,8,2,12v1,4,2,8,2,10v0,7,-4,10,-12,10v-8,0,-15,-1,-19,-3v-4,-2,-6,-6,-6,-13xm129,-173v0,6,2,9,6,9r8,0r1,0r11,-1r4,-1v6,0,12,-2,16,-7v4,-5,6,-10,6,-14r0,-2v0,-7,-3,-14,-8,-18v-5,-4,-13,-6,-24,-6r-1,0v-9,0,-14,1,-16,3v-2,2,-3,10,-3,24r0,13","w":291},"\u00af":{"d":"17,-277r0,-10v0,-5,24,-7,70,-7r65,0v7,0,11,2,11,7r0,10v0,5,-24,7,-73,7r-60,0v-8,0,-13,-2,-13,-7","w":179},"\u00b0":{"d":"25,-235r0,-9v0,-13,6,-25,18,-35v12,-10,24,-15,37,-15r9,0v13,0,25,5,36,15v11,10,16,21,16,36v0,15,-6,27,-17,38v-11,11,-25,16,-40,16r-7,0v-13,0,-25,-5,-36,-15v-11,-10,-16,-20,-16,-31xm54,-238v0,8,3,16,8,22v5,6,11,10,16,10r2,0r4,0r5,0v4,0,10,-4,15,-10v5,-6,8,-12,8,-19r0,-6r0,-9v0,-7,-3,-12,-9,-18v-6,-6,-11,-9,-15,-9r-5,0v-7,0,-14,3,-20,9v-6,6,-9,14,-9,23r0,7","w":180},"\u00b1":{"d":"26,-151v0,-7,3,-11,7,-12v2,-1,15,-1,38,-1v23,0,36,-1,38,-3v2,-2,4,-12,4,-31v0,-19,1,-30,2,-32v1,-2,5,-3,11,-3r8,0v5,0,9,1,10,4v1,3,1,13,1,32v0,19,2,30,6,32v2,1,14,1,37,1v23,0,36,0,39,1v3,1,5,5,5,12v0,7,-2,12,-6,13v-4,1,-17,1,-40,1v-23,0,-34,1,-36,2v-3,2,-5,12,-5,31v0,19,-1,30,-2,32v-1,2,-7,4,-15,4v-8,0,-13,-1,-14,-4v-1,-3,-1,-14,-1,-32v0,-18,-2,-28,-4,-30v-2,-2,-14,-3,-38,-3v-24,0,-37,0,-40,-1v-3,-1,-5,-6,-5,-13xm26,-13r0,-4r1,-2v0,-6,2,-10,7,-11v3,0,23,-1,61,-1r124,0v8,0,12,4,12,11r0,4r0,2v0,6,-2,9,-5,10v-3,1,-19,1,-47,1r-141,0v-8,0,-12,-3,-12,-10","w":254},"\u00b2":{"d":"24,-154v0,-6,3,-13,10,-21v7,-8,17,-18,30,-30v13,-12,22,-22,27,-29v5,-7,8,-15,8,-22v0,-7,-2,-14,-6,-18v-4,-4,-11,-6,-18,-6v-7,0,-16,3,-25,10v-9,7,-15,10,-18,10v-5,0,-8,-3,-8,-9r0,-3v0,-8,8,-16,22,-23v11,-5,22,-8,36,-8v14,0,25,4,34,12v9,8,14,19,14,33v0,9,-3,17,-9,26v-6,9,-17,20,-34,34v-17,14,-25,23,-25,27v0,3,9,5,27,5v6,0,13,-1,22,-2v9,-1,14,-2,15,-2v6,0,9,4,9,11r0,3v0,9,-6,13,-19,13r-3,0r-39,0v-25,0,-39,-1,-42,-1v-5,-1,-8,-4,-8,-10","w":164},"\u00b3":{"d":"23,-162r0,-2v0,-6,3,-8,10,-8v3,0,8,1,17,5v9,4,18,7,25,7v8,0,15,-3,21,-9v5,-5,7,-11,7,-19v0,-8,-2,-14,-7,-18v-5,-4,-13,-7,-23,-9v-10,-2,-16,-6,-16,-12v0,-3,4,-7,13,-10v9,-3,15,-8,19,-12v4,-4,6,-10,6,-17v0,-10,-8,-15,-25,-15v-5,0,-11,2,-20,6v-9,4,-14,5,-16,5v-4,0,-6,-2,-6,-8v0,-6,5,-12,15,-17v10,-5,23,-7,38,-7v30,0,46,9,46,30v0,12,-6,23,-17,33v-5,5,-8,7,-8,8v0,1,4,4,10,7v6,3,12,7,16,13v4,6,7,13,7,25v0,12,-6,22,-17,32v-11,10,-27,14,-47,14r-4,0v-11,0,-21,-2,-30,-7v-9,-5,-14,-10,-14,-15","w":164},"\u00b4":{"d":"52,-242v0,-4,12,-21,35,-51v7,-8,16,-13,28,-13r5,0v9,0,13,2,13,6v0,8,-15,24,-45,48v-11,8,-19,13,-25,13r-7,0v-3,0,-4,-1,-4,-3","w":168},"\u00b5":{"d":"31,-179r0,-5v0,-9,5,-13,15,-13v13,0,21,3,25,11v2,5,3,27,3,66v0,39,1,63,4,71v3,8,7,15,12,19v5,4,11,5,18,5v7,0,14,-2,21,-7v7,-5,12,-12,16,-22v4,-10,6,-33,6,-69r1,-12r0,-24v0,0,2,-20,6,-25v4,-5,10,-9,19,-9v9,0,16,5,18,14v1,5,2,23,2,56v0,33,0,53,1,60v1,7,3,14,6,21v3,7,4,12,4,14v0,12,-7,18,-20,18v-7,0,-14,-3,-21,-7v-7,-4,-11,-7,-13,-7v-2,0,-6,2,-12,4r-10,4v-3,2,-7,4,-13,6v-6,2,-17,3,-33,3v-5,0,-8,3,-10,9v-2,6,-3,16,-3,32v0,16,-2,27,-6,32v-4,5,-9,8,-17,8r-5,0r0,0v-5,0,-9,-1,-11,-6v-2,-5,-3,-12,-3,-23v0,-5,1,-10,1,-16v2,-39,4,-76,4,-110v0,-34,-1,-60,-3,-77","w":235},"\u00b6":{"d":"41,-206r0,-8v0,-12,3,-24,9,-36v6,-12,13,-21,22,-27v13,-9,36,-14,68,-14r14,0v25,0,41,3,46,7r2,3v0,5,-2,14,-6,25v-4,11,-5,23,-5,35v0,12,1,28,2,50v2,33,2,66,2,99r0,81r1,24v0,11,-4,17,-12,17v-5,0,-8,-5,-10,-15v-2,-10,-2,-34,-2,-73r-1,-60v0,-18,-1,-40,-2,-66v-1,-26,-2,-44,-2,-54v0,-10,-1,-16,-2,-18v-1,-2,-5,-3,-12,-3v-7,0,-10,1,-11,4v0,0,-1,6,-1,18r0,25r1,22v0,33,-1,63,-2,89v-1,26,-2,48,-2,66v0,18,-1,33,-3,44v-2,11,-6,16,-12,16v-6,0,-9,-3,-11,-11v-2,-8,-2,-41,-2,-99v0,-24,-3,-40,-6,-49v-3,-9,-11,-17,-23,-25v-12,-8,-21,-16,-26,-24v-9,-14,-14,-28,-14,-43","w":247},"\u00b7":{"d":"45,-126r0,-6r0,-4r1,-5v0,-5,2,-8,6,-11v4,-3,10,-5,18,-5v2,0,4,1,5,1v12,0,18,8,18,25r0,4r-1,7v0,5,-2,10,-5,13v-3,3,-7,5,-11,5r-6,1v-10,0,-17,-2,-20,-6v-3,-4,-5,-11,-5,-19","w":132},"\u00b8":{"d":"47,76v0,-7,5,-10,13,-10v19,0,29,-6,29,-18v0,-4,-3,-8,-10,-11v-7,-3,-11,-8,-11,-12v0,-4,4,-12,9,-22v2,-4,6,-6,14,-6v4,0,6,1,6,4r-3,13v0,1,5,4,13,11v8,7,13,15,13,25v0,10,-5,18,-14,24v-9,6,-20,9,-35,9r-9,0v-10,0,-15,-2,-15,-7","w":168},"\u00b9":{"d":"37,-278v0,-4,2,-7,7,-9v18,-9,31,-14,40,-14v5,0,8,3,9,9v1,6,3,24,3,55v0,31,0,48,1,53v1,5,5,10,10,16v5,6,7,12,7,17v0,7,-9,11,-26,11r-14,0v-9,0,-17,-3,-24,-7v-2,-2,-4,-4,-4,-8v0,-4,3,-8,8,-14v5,-6,9,-11,10,-15v1,-4,2,-16,2,-35r-1,-20v0,-10,-1,-17,-4,-21v-3,-4,-7,-7,-14,-10v-7,-3,-10,-5,-10,-8","w":158},"\u00ba":{"d":"22,-210r0,-7v0,-21,7,-38,20,-52v13,-14,29,-21,49,-21v14,0,26,5,35,15v9,10,14,22,14,37r0,11v0,19,-6,36,-18,50v-12,14,-29,22,-47,22r-6,0v-14,0,-25,-6,-34,-16v-9,-10,-13,-24,-13,-39xm55,-217r0,7v0,10,3,19,8,26v5,7,11,10,17,10r4,0v7,0,13,-4,17,-13v4,-9,7,-19,7,-32r0,-7v0,-13,-2,-23,-7,-32v-5,-9,-10,-14,-17,-14r-5,0v-8,0,-14,4,-18,13v-4,9,-6,18,-6,29r0,13","w":160},"\u00bb":{"d":"31,-36v0,-5,12,-24,38,-57v9,-11,13,-18,13,-19v0,-1,-8,-14,-25,-36v-17,-22,-26,-36,-26,-41v0,-5,2,-8,7,-8r2,0v6,0,20,15,43,42v23,27,34,41,34,42v0,3,-12,18,-36,45v-24,27,-38,39,-42,39v-6,0,-8,-2,-8,-7xm109,-35v0,-5,9,-19,27,-42v18,-23,26,-34,26,-35v0,-1,-4,-7,-13,-19r-4,-6r-8,-9v-2,-3,-3,-5,-4,-6v-16,-21,-23,-34,-23,-39v0,-4,2,-7,7,-7v5,0,20,14,44,41v24,27,36,42,36,44v0,5,-12,20,-37,46v-25,26,-39,40,-42,40v-6,0,-9,-3,-9,-8","w":215},"\u00bc":{"d":"41,-271v18,-10,30,-16,39,-16v5,0,9,4,10,11v1,7,2,25,2,53v0,28,0,44,1,48v1,4,2,9,6,17v4,8,6,14,6,18v0,8,-8,12,-26,12r-4,0v-9,0,-16,-1,-21,-5v-4,-3,-7,-7,-7,-12v0,-4,1,-7,4,-11v4,-5,6,-10,8,-14v2,-4,3,-11,3,-21r0,-19r0,-9v0,-10,-3,-19,-9,-28v-2,-3,-6,-6,-11,-9v-5,-3,-8,-5,-8,-8v0,-2,3,-4,7,-7xm70,1v0,-2,3,-8,10,-20v56,-99,106,-183,150,-250v6,-10,14,-14,21,-14v7,0,10,0,10,2v0,7,-53,98,-160,270v-6,10,-13,14,-20,14v-7,0,-11,0,-11,-2xm190,-53v0,-6,15,-29,46,-71v16,-22,26,-33,30,-33r7,0v7,0,11,2,12,7v1,3,1,6,1,10v0,2,-1,3,-1,5r0,12r-1,11v0,24,1,39,3,44v2,5,4,9,7,11v6,4,9,6,9,7v0,9,-1,15,-5,17v-6,4,-8,7,-8,9v1,5,0,9,0,11v0,8,-1,12,-5,14v-4,2,-8,4,-15,4v-2,0,-5,-1,-7,-1v-7,0,-11,-7,-11,-21r1,-6v0,-2,-2,-4,-5,-6v-9,-5,-20,-7,-31,-7v-11,0,-19,-1,-22,-4v-3,-3,-5,-7,-5,-13xm211,-58v0,1,0,1,1,1r21,0r1,0r16,-1r2,0v3,0,5,-12,5,-37r0,-2r0,-2r0,-3r0,-2r0,-3r0,-2r1,-3r0,-8r-1,0r-9,12r-11,16r-1,1r-1,1r-3,4r-1,2r-4,5v-1,1,-3,5,-8,11v-5,6,-8,9,-8,10","w":332},"\u00bd":{"d":"31,-265v0,-3,3,-7,8,-9v20,-9,34,-14,39,-14v5,0,8,4,9,11v1,7,2,26,2,54v0,28,0,44,1,49v1,5,3,10,7,16v4,6,6,12,6,16v0,4,-1,7,-4,9v-4,4,-10,5,-16,5r-16,0v-6,0,-12,-2,-18,-7v-3,-2,-4,-5,-4,-9v0,-4,2,-8,5,-14v4,-6,5,-11,7,-15v2,-4,2,-15,2,-31v0,-16,-1,-28,-4,-35v-3,-7,-7,-13,-14,-17v-7,-4,-10,-7,-10,-9xm65,-1v0,-8,52,-96,156,-264v8,-13,16,-19,23,-19v7,0,11,1,11,4v0,8,-52,97,-158,267v-7,11,-14,15,-20,15v-8,0,-12,0,-12,-3xm199,-4r0,-2v0,-9,10,-24,31,-44v21,-20,34,-34,38,-40v4,-6,6,-13,6,-21v0,-8,-2,-14,-7,-18v-5,-4,-11,-6,-18,-6v-7,0,-15,4,-24,11v-9,7,-14,10,-15,10v-6,0,-9,-4,-9,-11v0,-7,5,-15,16,-22v11,-7,23,-10,37,-10r4,0v14,0,25,4,34,12v9,8,14,17,14,29v0,12,-4,22,-10,31v-6,9,-18,19,-34,33v-16,14,-25,23,-25,27v0,2,6,4,19,4v13,0,22,0,30,-1v8,-1,12,-2,13,-2v7,0,10,5,10,13v0,9,-6,14,-18,14r-11,0r-30,-1v-34,0,-51,-2,-51,-6","w":332},"\u00be":{"d":"28,-149r0,-3v0,-5,3,-8,11,-8v3,0,8,3,16,7v8,4,17,6,25,6v8,0,15,-3,20,-8v5,-5,7,-12,7,-20v0,-15,-10,-23,-30,-26v-11,-2,-16,-6,-16,-12v0,-4,4,-8,12,-10v17,-5,26,-15,26,-28v0,-4,-2,-8,-6,-11v-4,-3,-9,-5,-15,-5v-6,0,-14,2,-23,6v-9,4,-14,6,-15,6v-5,0,-7,-2,-7,-8v0,-6,5,-12,15,-17v10,-5,22,-8,37,-8v30,0,45,12,45,35v0,10,-6,19,-16,28v-5,5,-7,7,-7,8v0,1,2,2,8,5v15,8,23,19,23,34r0,4v0,14,-7,26,-19,34v-12,8,-26,13,-41,13v-15,0,-27,-2,-36,-7v-9,-5,-14,-10,-14,-15xm82,0v0,-1,3,-7,9,-18v54,-96,106,-180,153,-252v6,-9,11,-13,17,-13v9,0,13,1,13,3v0,1,-3,7,-9,18v-66,113,-116,195,-149,246v-8,13,-15,19,-21,19v-9,0,-13,-1,-13,-3xm200,-54v0,-9,21,-40,63,-93v5,-6,11,-10,18,-10v7,0,11,2,13,5r0,38v0,0,1,41,2,46v1,5,5,9,10,12v5,3,7,6,7,7v0,8,-2,13,-5,16v-6,4,-8,7,-8,8v1,5,0,11,0,15v0,4,0,7,-3,10v-3,3,-8,4,-16,4r-5,1r-2,0v-8,0,-12,-6,-12,-19r0,-5v0,-3,1,-5,1,-6v0,-1,-2,-2,-4,-3v-11,-5,-21,-8,-32,-8v-11,0,-18,-1,-22,-4v-4,-3,-5,-8,-5,-14xm221,-58v0,1,2,2,5,2r6,0r1,-1r8,0v14,0,21,0,23,-2v2,-2,3,-8,3,-19r0,-18r0,-2r0,-3r0,-2r0,-3r0,-1r0,-1r1,-4r0,-7v0,-1,-1,-1,-1,-1r-9,12r-11,16r-1,1r0,1r-1,0r-5,8v-1,2,-5,6,-11,13v-6,7,-8,10,-8,11","w":338},"\u00bf":{"d":"26,-8v0,-24,12,-45,35,-66v16,-14,26,-25,31,-31v5,-6,7,-16,7,-30v0,-8,3,-12,9,-12v7,0,12,2,15,7v3,5,5,12,5,23v0,11,-3,20,-8,28v-5,8,-13,18,-23,29v-10,11,-17,20,-21,28v-4,8,-6,16,-6,26v0,10,3,18,10,24v7,6,16,10,26,10v10,0,22,-4,33,-11v11,-7,19,-11,25,-11v8,0,12,4,12,14r0,3v0,9,-7,18,-22,26v-15,8,-31,13,-46,13r-11,0v-18,0,-35,-7,-49,-20v-14,-13,-22,-30,-22,-50xm90,-204r0,-6r0,-1r0,-4v0,-5,2,-9,5,-12v3,-3,8,-5,14,-5r6,0v1,0,3,1,6,1v3,0,7,2,10,5v4,4,5,9,5,16r1,5v0,10,-2,17,-5,21v-3,4,-9,5,-17,5v-8,0,-15,-2,-19,-5v-4,-3,-5,-7,-5,-12r-1,-3r0,-5","w":204},"\u00c0":{"d":"20,-36v0,-5,3,-10,8,-17v5,-7,10,-17,16,-29v6,-12,18,-45,37,-98v19,-53,29,-80,30,-81v7,-13,15,-20,25,-20r6,0v11,0,19,8,27,23v5,11,18,42,35,92v17,50,30,84,40,102v2,4,6,9,10,14v4,5,6,11,6,16v0,5,-5,12,-14,19v-4,3,-11,5,-20,5r-5,0v-11,0,-18,-4,-22,-9v-1,-2,-2,-6,-3,-13v-1,-7,-1,-12,-2,-14v-4,-22,-10,-36,-16,-42v-6,-6,-22,-9,-46,-9v-24,0,-39,3,-44,8v-5,5,-10,18,-14,39r-5,33v-2,4,-9,6,-21,6v-6,0,-12,-3,-18,-9v-6,-6,-10,-11,-10,-16xm84,-363r0,-2v0,-4,5,-6,14,-6r6,0r3,0v8,0,15,3,22,9v7,6,18,20,34,40v4,5,6,9,6,12v0,2,-3,2,-8,2v-10,0,-20,-3,-30,-11v-31,-24,-47,-39,-47,-44xm99,-118v0,2,5,4,13,4r45,0v2,0,4,-1,7,-1v3,0,4,-1,4,-3v0,-11,-10,-47,-30,-107v-2,-6,-3,-9,-4,-9r-19,62v-10,30,-16,49,-16,54","w":277},"\u00c1":{"d":"21,-35v0,-2,3,-11,12,-26v9,-15,20,-40,33,-75v13,-35,22,-63,28,-80v6,-17,10,-30,15,-40v5,-10,10,-16,15,-20v5,-4,11,-6,18,-6v7,0,13,3,17,7v4,4,8,11,12,20v4,9,12,28,21,55v9,27,15,44,18,51v23,58,37,90,42,97v5,7,8,12,8,16v0,8,-7,16,-18,22v-4,2,-11,3,-22,3v-11,0,-17,-3,-21,-8v-1,-2,-2,-6,-3,-13v-1,-7,-1,-12,-2,-15v-4,-21,-10,-35,-16,-41v-6,-6,-22,-9,-46,-9v-24,0,-40,2,-45,8v-5,6,-10,19,-14,39r-4,33v-2,5,-8,7,-16,7v-8,0,-14,-2,-19,-5v-9,-7,-13,-13,-13,-20xm99,-118v0,2,5,3,15,3r10,0r14,0r19,0v7,0,11,-1,11,-4v0,-11,-10,-46,-30,-105v-2,-7,-4,-11,-4,-11v0,0,-1,4,-3,10v-21,62,-32,98,-32,107xm113,-313r0,-1v0,-3,3,-7,9,-14r16,-19v0,0,10,-13,16,-18v6,-5,15,-8,26,-8v11,0,17,2,17,6r0,2v0,8,-15,23,-46,43v-12,8,-23,12,-33,12v-3,0,-5,-1,-5,-3","w":277},"\u00c2":{"d":"19,-36v0,-4,2,-10,7,-17v5,-7,9,-16,14,-25v5,-9,13,-29,25,-61v12,-32,20,-58,27,-78v7,-20,13,-35,18,-45v7,-14,17,-20,29,-20v12,0,22,7,29,23v1,2,13,34,35,95v22,61,38,97,45,107v7,10,11,18,11,21v0,6,-5,13,-14,20v-5,3,-12,5,-24,5v-12,0,-19,-3,-23,-9v-2,-2,-2,-6,-3,-12v-1,-6,-1,-10,-2,-15v-4,-22,-10,-36,-16,-42v-6,-6,-22,-9,-47,-9v-25,0,-39,3,-44,9v-5,6,-10,18,-14,38r-5,33v-2,5,-8,7,-16,7r-4,0v-7,0,-13,-3,-19,-9v-6,-6,-9,-12,-9,-16xm76,-313v0,-8,14,-24,41,-49v7,-6,15,-9,23,-9v8,0,16,3,22,9v28,25,41,41,41,49v0,2,-4,3,-12,3v-8,0,-18,-4,-27,-12v-15,-14,-24,-21,-26,-21v-2,0,-10,7,-24,21v-9,9,-19,13,-30,13v-5,0,-8,-2,-8,-4xm98,-119v0,2,2,3,7,3r7,1r43,0r5,0v5,0,7,-2,7,-5v0,-10,-11,-45,-31,-105v-2,-6,-3,-10,-4,-10r-19,63v-10,30,-15,48,-15,53","w":276},"\u00c3":{"d":"18,-36v0,-4,3,-11,9,-20v6,-9,17,-32,31,-68v14,-36,25,-65,32,-87v7,-22,14,-37,18,-46v4,-9,9,-16,14,-20v5,-4,11,-5,18,-5v11,0,21,8,28,23v1,2,13,34,35,95v22,61,38,97,45,107v7,10,11,17,11,20v0,7,-4,14,-14,20v-5,3,-14,5,-25,5v-11,0,-19,-3,-23,-8v0,0,-2,-10,-5,-29v-3,-19,-9,-32,-15,-39v-6,-7,-22,-11,-46,-11v-24,0,-40,4,-45,9v-5,5,-10,18,-14,38r-5,33v-2,5,-8,7,-16,7r-4,0v-7,0,-13,-3,-19,-9v-6,-6,-10,-11,-10,-15xm71,-321v0,-9,5,-17,13,-26v8,-9,16,-14,25,-14r9,0v6,0,14,3,26,9v12,6,21,9,26,9v5,0,10,-3,15,-9v5,-6,10,-8,15,-8v5,0,8,2,8,6r0,3v0,8,-5,16,-13,24v-9,8,-17,12,-25,12r-3,0v-7,0,-16,-3,-29,-9v-13,-6,-22,-9,-27,-9v-5,0,-10,3,-16,9v-6,6,-11,9,-16,9v-5,0,-8,-2,-8,-6xm98,-119v0,2,3,3,7,3r1,0r1,0r47,0v8,0,12,-1,12,-3v0,-11,-10,-47,-30,-107r-3,-9v0,0,-1,3,-3,8v-21,63,-32,99,-32,108","w":276},"\u00c4":{"d":"19,-33v0,-5,3,-14,11,-25v8,-11,18,-36,32,-73v14,-37,24,-65,30,-84v6,-19,12,-32,16,-42v4,-10,9,-16,14,-20v5,-4,12,-5,19,-5v11,0,20,8,28,23v5,9,15,40,33,91v18,51,31,86,41,104v1,2,4,7,9,13v5,6,7,11,7,16v0,8,-6,15,-17,21v-4,2,-11,3,-23,3v-12,0,-20,-3,-23,-10r-4,-30v-4,-18,-9,-31,-15,-37v-6,-6,-21,-10,-46,-10v-25,0,-39,3,-44,8v-5,5,-10,19,-15,40r-4,33v-2,5,-8,7,-16,7v-8,0,-14,-2,-19,-5v-9,-7,-14,-13,-14,-18xm80,-335r0,-6r1,-7v0,-9,5,-14,15,-14r4,0r3,0r6,1v7,0,11,4,11,12r0,3r0,2r0,2r0,3r0,0r0,6v0,1,-1,1,-1,1v0,10,-5,15,-14,15r-3,0r-7,0r-3,0v-7,0,-11,-4,-11,-11v0,-1,-1,-2,-1,-3r0,-4xm99,-119v0,3,4,4,14,4r42,0v8,0,12,-2,12,-4v0,-11,-10,-47,-30,-107v-2,-6,-4,-9,-4,-9r-7,22r-8,26r-8,27r-6,20v-4,11,-5,18,-5,21xm160,-332r0,-7r0,-6v0,-5,2,-9,6,-12v4,-3,7,-4,11,-4r3,-1r4,0v2,1,4,2,6,2v7,0,10,3,10,11v1,2,1,3,1,4r0,5v0,16,-5,24,-15,24v-2,1,-4,1,-9,1r-6,-1v-8,0,-11,-5,-11,-16","w":276},"\u00c5":{"d":"18,-27v0,-3,6,-12,16,-28v5,-8,15,-31,29,-68v14,-37,24,-65,30,-84v12,-36,22,-57,30,-63v5,-4,10,-6,18,-6v11,0,21,8,28,23v7,15,15,34,22,56v7,22,17,49,30,82v13,33,22,56,30,68v8,12,11,18,11,18v0,5,-4,10,-12,15v-8,5,-17,6,-28,6v-11,0,-18,-2,-23,-6v-3,-2,-4,-8,-4,-17v0,-9,-2,-19,-5,-32v-3,-13,-8,-21,-14,-26v-6,-5,-20,-8,-44,-8v-24,0,-39,3,-44,9v-3,4,-7,12,-11,24v-4,12,-5,23,-5,33r0,4r0,6v0,5,-1,9,-4,11v-3,2,-8,3,-17,3v-9,0,-17,-3,-26,-10v-4,-3,-7,-7,-7,-10xm100,-336r0,-4v0,-9,4,-17,13,-24v9,-7,18,-9,28,-9r5,0v9,0,18,2,26,8v8,6,11,13,11,21r0,6v0,7,-4,14,-12,21v-8,7,-16,10,-27,10r-9,0v-8,0,-16,-2,-24,-8v-8,-6,-11,-13,-11,-21xm100,-117v0,2,5,3,15,3r34,0v12,0,18,-2,18,-5v0,-11,-10,-46,-29,-103v-2,-7,-4,-11,-4,-11r-11,35r-10,34r-4,12r-1,4r-1,3r0,3r-1,3r-1,3r-1,4r-4,13r0,2xm124,-337r1,5v0,2,1,4,4,8v3,4,5,6,7,6r6,0v5,0,9,-2,12,-6v3,-4,5,-7,5,-10r0,-5r0,-3r0,-1r0,-2r0,-4v0,0,-2,-5,-5,-8v-3,-3,-8,-5,-13,-5v-5,0,-9,2,-12,6v-3,4,-5,8,-5,11r0,3r0,5","w":277},"\u00c6":{"d":"25,-32v0,-5,8,-18,23,-38v11,-15,33,-58,66,-128v6,-13,12,-28,17,-44v5,-16,10,-25,13,-28v8,-9,30,-14,66,-14r40,0v39,0,64,3,75,6v11,3,17,10,17,20v0,6,-5,9,-13,9r-5,-1r-14,-3v-10,-2,-23,-3,-40,-3v-17,0,-28,3,-33,8v-8,8,-12,22,-12,40v0,18,2,29,6,32v5,4,10,5,18,5v5,0,11,0,17,-2r7,-2v6,-2,11,-3,13,-3v7,0,11,3,16,8v5,5,7,13,7,24v0,11,0,18,-3,21v-3,3,-8,4,-13,4v-1,0,-5,-1,-14,-4v-9,-3,-17,-4,-23,-4v-15,0,-25,3,-30,8v-5,5,-8,17,-8,35v0,18,4,31,12,39v5,5,13,8,26,8v10,0,22,-2,37,-5v4,-1,10,-2,18,-5v8,-3,14,-4,17,-4v9,0,14,6,14,18v0,12,-7,21,-21,24v-14,3,-37,5,-70,5v-33,0,-52,-1,-58,-2v-11,-3,-17,-6,-17,-12r0,-5r2,-6r2,-7v1,-6,2,-15,2,-25v0,-10,-1,-18,-4,-23v-5,-7,-14,-11,-27,-11v-25,0,-41,4,-49,13r-6,8v-5,7,-10,17,-17,31r-13,26r-1,4v-2,4,-7,6,-13,6v-6,0,-12,-3,-18,-8v-6,-5,-9,-10,-9,-15xm114,-130v0,2,7,2,23,2r16,1v2,0,4,-1,5,-1v9,0,13,-1,15,-5v1,-2,2,-10,2,-24r1,-43r0,-47v0,-3,-1,-5,-2,-5v-2,0,-7,8,-15,23v-30,56,-45,89,-45,99","w":375},"\u00c7":{"d":"19,-133r0,-15v0,-19,3,-39,10,-58v7,-19,16,-35,29,-48v13,-13,27,-22,42,-28v15,-6,31,-9,48,-9v17,0,34,2,51,5v17,3,26,6,29,8v6,4,12,9,16,18v4,9,7,18,7,29v0,11,-3,15,-10,15v-2,0,-9,-4,-20,-14v-24,-20,-47,-30,-71,-30v-24,0,-44,10,-59,30v-15,20,-22,48,-22,84v0,55,16,91,47,108v11,6,24,9,37,9v20,0,41,-7,65,-21v17,-10,26,-15,27,-15v6,0,9,2,9,7r0,5v0,3,-4,9,-11,18v-7,9,-15,17,-25,22v-21,12,-42,18,-65,18v2,1,3,4,3,10v0,2,4,5,11,12v7,7,11,14,11,22r0,3v0,9,-5,17,-13,23v-8,6,-20,10,-35,10r-5,-1r-4,0v-9,0,-14,-2,-14,-6r0,-3v0,-5,4,-8,13,-8v9,0,16,-1,20,-4v4,-3,7,-7,7,-12v0,-5,-3,-9,-8,-13v-5,-4,-8,-9,-8,-14v0,-5,3,-10,7,-16v1,-1,2,-2,4,-3v-34,-1,-63,-14,-86,-38v-12,-12,-20,-27,-27,-45v-7,-18,-10,-36,-10,-55","w":276},"\u00c8":{"d":"32,-27v0,-3,1,-8,6,-15v5,-7,9,-19,11,-34v2,-15,3,-40,3,-74v0,-34,-1,-58,-3,-71v-2,-13,-4,-22,-7,-27r-3,-5r-3,-5v-3,-5,-4,-8,-4,-10v0,-6,5,-10,15,-12v24,-5,54,-7,91,-7r31,0v18,0,30,2,36,6v6,4,10,12,10,24v0,7,-3,11,-9,11v-2,0,-5,-1,-11,-3v-6,-2,-13,-4,-23,-6v-10,-2,-26,-3,-47,-3v-13,0,-21,5,-26,14v-6,11,-8,28,-8,51v0,6,2,11,7,14v5,3,12,4,21,4v9,0,18,-1,28,-4v10,-3,15,-5,16,-5v13,0,19,12,19,36v0,19,-6,29,-17,29v-1,0,-7,-2,-17,-5v-10,-3,-21,-5,-31,-5v-10,0,-18,3,-22,7v-4,4,-7,11,-7,19v0,30,4,49,12,60v5,7,16,10,34,10v18,0,31,0,41,-3v10,-3,19,-5,27,-8v8,-3,12,-5,15,-5v5,0,8,5,8,15v0,10,-4,18,-13,23v-9,5,-26,7,-52,7r-24,0v-43,0,-72,-2,-90,-7v-9,-3,-14,-9,-14,-16xm71,-365r0,-1v0,-4,5,-6,14,-6r4,0v10,0,19,3,27,10v8,7,19,20,34,39v3,4,5,8,5,11v0,2,-1,3,-4,3r-5,0v-9,0,-20,-4,-31,-13v-29,-23,-44,-37,-44,-43","w":248},"\u00c9":{"d":"32,-27v0,-2,2,-8,7,-15v5,-7,7,-15,9,-24v4,-23,6,-51,6,-84v0,-50,-3,-83,-10,-96r-6,-10v-3,-5,-5,-7,-5,-9v0,-6,5,-11,15,-13v28,-5,60,-8,97,-8r16,0v23,0,37,2,43,5v8,4,11,13,11,25v0,7,-3,10,-8,10r-30,-8v-13,-3,-30,-4,-51,-4v-13,0,-22,4,-27,13v-6,11,-9,28,-9,51v0,6,2,11,7,14v5,3,12,5,21,5v9,0,18,-2,27,-5v9,-3,15,-4,16,-4v5,0,9,3,13,8v4,5,6,15,6,28v0,20,-6,30,-17,30v-1,0,-6,-1,-16,-4v-10,-3,-20,-5,-31,-5v-20,0,-29,8,-29,25v0,29,4,49,12,60v5,7,17,11,34,11v25,0,47,-4,66,-11v10,-4,16,-5,18,-5v5,0,7,4,7,14v0,10,-4,17,-13,22v-9,5,-26,8,-51,8r-24,0v-40,0,-70,-3,-90,-9v-9,-3,-14,-8,-14,-15xm99,-312v0,-3,2,-8,7,-14v14,-18,24,-30,28,-33v11,-9,22,-13,33,-13v11,0,16,2,16,5r0,3v0,5,-18,20,-52,47v-7,5,-15,8,-26,8v-4,0,-6,-1,-6,-3","w":248},"\u00ca":{"d":"32,-26v0,-3,3,-8,7,-16v4,-8,8,-19,10,-33v2,-14,3,-41,3,-80v0,-39,-1,-66,-5,-81v-1,-6,-5,-11,-9,-18v-4,-7,-6,-12,-6,-14v0,-6,5,-10,15,-12v24,-5,56,-7,98,-7r24,0v18,0,29,2,36,6v7,4,10,12,10,24v0,7,-2,11,-8,11v-2,0,-8,-2,-15,-4v-7,-2,-15,-3,-23,-5v-8,-2,-20,-3,-36,-3v-16,0,-26,3,-31,9v-8,9,-12,28,-12,56v0,6,2,11,7,14v5,3,12,4,21,4v9,0,18,-1,28,-4v10,-3,16,-5,17,-5v5,0,9,3,13,8v4,5,6,14,6,27v0,20,-6,30,-17,30v-1,0,-6,-2,-17,-5v-11,-3,-22,-5,-32,-5v-19,0,-28,9,-28,25v0,30,3,50,11,60v5,7,17,11,35,11v18,0,30,-2,40,-4v10,-2,19,-5,27,-8v8,-3,13,-4,16,-4v5,0,8,4,8,13v0,14,-7,23,-20,28v-8,3,-25,4,-52,4r-8,0v-47,0,-80,-2,-99,-7v-9,-3,-14,-8,-14,-15xm63,-314v0,-7,14,-23,42,-49v6,-5,13,-8,21,-8v8,0,15,2,20,6v2,2,14,15,38,41v4,4,5,8,5,10v0,2,-4,3,-12,3v-8,0,-16,-4,-26,-12r-15,-13v-5,-5,-8,-8,-9,-8v-1,0,-8,6,-21,17v-13,11,-23,17,-30,17r-5,0v-5,0,-8,-2,-8,-4","w":248},"\u00cb":{"d":"30,-26v0,-3,3,-7,7,-15v4,-8,8,-20,10,-35v2,-15,3,-41,3,-79v0,-38,-1,-65,-5,-80v-1,-6,-4,-12,-8,-19v-4,-7,-6,-11,-6,-13v0,-6,5,-11,15,-13v24,-5,57,-7,98,-7r16,0v23,0,37,2,44,6v7,4,10,12,10,24v0,7,-2,11,-8,11v-2,0,-7,-1,-14,-3v-7,-2,-15,-4,-23,-6v-8,-2,-23,-3,-44,-3v-13,0,-23,5,-28,15v-5,10,-8,27,-8,50v0,12,11,18,32,18v7,0,15,-1,24,-4v9,-3,15,-5,17,-5v8,0,13,5,17,14v2,4,2,11,2,22v0,20,-6,29,-17,29r0,0v-1,0,-7,-1,-17,-4v-10,-3,-20,-5,-31,-5v-19,0,-30,8,-30,25v0,30,4,49,12,60v5,7,16,11,34,11v24,0,47,-4,66,-11v9,-3,15,-5,18,-5v5,0,8,4,8,13v0,14,-7,23,-20,28v-8,3,-30,4,-65,4v-35,0,-64,-2,-88,-6v-14,-2,-21,-8,-21,-17xm65,-334r0,-7r1,-5v0,-5,2,-8,5,-11v3,-3,8,-5,13,-5r5,0r5,1v7,0,11,5,11,13v1,2,1,5,1,10r-1,6v0,10,-5,15,-15,15r-3,1r-6,0r0,0r-4,-1v-8,0,-12,-6,-12,-17xm145,-335r0,-4v0,-14,7,-22,21,-22r5,0v10,0,15,4,15,13r0,3r0,2r0,2r0,3r0,6v0,5,-2,8,-5,11v-3,3,-6,5,-10,5r-3,1r-6,0v-10,0,-16,-4,-16,-11v-1,-2,-1,-3,-1,-4r0,-5","w":247},"\u00cc":{"d":"17,-366r0,-1v0,-4,5,-6,14,-6r4,0v10,0,19,2,25,8v6,6,18,19,34,40v5,6,7,10,7,13v0,1,-2,3,-7,3v-10,0,-20,-4,-28,-10v-32,-25,-49,-41,-49,-47xm30,-273v0,-5,1,-8,4,-10v6,-5,16,-7,29,-7r18,0v10,0,17,1,23,4v6,3,9,6,9,10v0,4,-2,10,-8,19v-6,9,-10,19,-11,28v-1,9,-2,38,-2,86v0,48,1,76,3,85v2,9,6,16,11,23v5,7,7,12,7,15v0,5,-1,9,-4,11v-5,5,-15,7,-28,7r-19,0v-21,0,-32,-6,-32,-18v0,-1,3,-7,8,-15v5,-8,10,-18,11,-27v1,-9,1,-37,1,-83v0,-46,-1,-75,-2,-85v-1,-10,-4,-19,-10,-27v-6,-8,-8,-14,-8,-16","w":143},"\u00cd":{"d":"31,-273v0,-5,1,-8,4,-10v6,-5,16,-7,29,-7r22,0v9,0,16,1,21,4v5,3,7,7,7,11v0,4,-4,10,-9,18v-5,8,-9,17,-10,28v-1,11,-2,39,-2,87v0,48,0,76,2,85v2,9,6,16,11,22v5,6,7,12,7,16v0,4,-1,8,-4,10v-6,5,-14,7,-24,7r-26,0v-11,0,-19,-2,-24,-7v-2,-2,-4,-5,-4,-8v0,-5,3,-11,9,-19v4,-6,7,-14,9,-23v2,-9,2,-38,2,-86v0,-48,-1,-76,-2,-86v-1,-10,-5,-18,-10,-26v-5,-8,-8,-13,-8,-16xm44,-313v0,-2,5,-10,15,-23v10,-13,19,-22,26,-28v7,-6,16,-9,27,-9v11,0,16,2,16,6v0,6,-15,22,-47,47v-9,7,-17,11,-25,11v-8,0,-12,-2,-12,-4","w":143},"\u00ce":{"d":"11,-314v0,-8,14,-24,41,-49v6,-5,13,-8,22,-8v9,0,15,2,21,8v27,27,41,43,41,48r0,1v0,2,-4,3,-12,3v-8,0,-18,-5,-31,-16v-13,-11,-20,-16,-21,-16r-14,11r-5,4v-2,2,-3,4,-4,4v-12,9,-21,13,-28,13v-7,0,-10,-1,-10,-3xm32,-272v0,-12,10,-18,32,-18r23,0v11,0,19,2,24,7v2,2,3,5,3,8v0,5,-2,11,-8,19v-5,6,-8,15,-10,25v-2,10,-2,39,-2,85v0,46,1,74,2,84v1,10,4,19,10,27v6,8,8,13,8,15v0,5,-1,9,-4,11v-5,5,-15,7,-28,7r-18,0v-10,0,-18,-1,-24,-4v-6,-3,-8,-6,-8,-11v0,-5,3,-11,8,-18v5,-7,9,-16,10,-26v1,-10,2,-39,2,-86v0,-47,0,-75,-2,-84v-2,-9,-5,-18,-10,-26v-5,-8,-8,-12,-8,-15","w":145},"\u00cf":{"d":"14,-335r0,-5r0,-1r0,-4v0,-11,5,-16,15,-16r5,-1r3,0r6,1v7,0,11,6,11,18r0,5r-1,6v0,10,-5,16,-15,16r-4,0r-3,0r-7,-1v-6,0,-9,-4,-9,-10v-1,-2,-1,-3,-1,-3r0,-5xm32,-271r0,-3v0,-5,2,-8,8,-11v6,-3,13,-4,23,-4r23,0v19,0,29,6,29,17v0,3,-3,9,-8,16v-5,7,-10,16,-11,27v-1,11,-2,40,-2,88v0,48,0,76,2,84v2,8,6,16,11,23v5,7,8,13,8,18v0,10,-12,15,-35,15r-15,0v-22,0,-33,-5,-33,-17v0,-3,3,-9,8,-16v5,-7,9,-17,10,-27v1,-10,2,-39,2,-86v0,-47,-1,-76,-2,-84v-1,-8,-5,-17,-10,-25v-5,-8,-8,-14,-8,-15xm93,-337r0,-1r0,-1r0,-3r1,-4v0,-9,5,-15,15,-15r4,0r5,0r4,0v7,0,11,4,11,11v1,2,1,4,1,4r0,5r0,3r0,1r-1,5r0,2v0,5,-1,8,-5,11v-4,3,-8,4,-13,4r-6,0r-1,0r-1,0v-1,0,-1,-1,-2,-1v-8,0,-12,-7,-12,-21","w":145},"\u00d0":{"d":"29,-149v0,-5,1,-9,3,-11v2,-2,6,-4,12,-5v6,-1,9,-3,11,-6v2,-3,3,-13,3,-31v0,-28,-2,-48,-8,-60v-6,-12,-9,-18,-9,-19v0,-6,20,-9,59,-9r29,0v23,0,43,3,59,10v16,7,30,17,42,31v12,14,20,28,25,44v5,16,7,35,7,57r0,11v0,20,-4,39,-11,57v-7,18,-17,34,-30,46v-13,12,-27,21,-42,26v-15,5,-35,8,-61,8r-15,0r-9,0v-26,0,-41,-1,-46,-2v-5,-1,-8,-4,-8,-9v0,-2,2,-5,6,-12v8,-13,12,-36,12,-68r0,-10r0,-15v0,-6,-1,-11,-3,-13v-2,-2,-6,-4,-12,-5v-6,-1,-10,-3,-12,-5v-2,-2,-2,-5,-2,-10xm97,-241v0,36,2,58,7,66v3,4,10,7,23,9v13,2,20,3,22,4v5,2,8,7,8,13v0,6,-2,10,-6,12v-2,1,-9,2,-22,4v-13,2,-21,6,-24,11v-5,9,-8,34,-8,74v0,7,2,11,5,14v3,3,10,4,23,4v13,0,25,-4,38,-9v24,-11,42,-31,52,-63v5,-16,8,-32,8,-49v0,-33,-11,-61,-33,-83v-18,-18,-41,-26,-70,-26v-9,0,-16,1,-19,3v-3,2,-4,7,-4,16","w":297},"\u00d1":{"d":"23,-18v0,-2,2,-6,7,-14v5,-8,9,-16,10,-24v1,-8,2,-36,2,-86v0,-50,0,-80,-1,-89v-1,-9,-4,-18,-7,-28v-3,-10,-5,-15,-5,-15v0,-5,5,-8,13,-8v25,0,45,9,62,29v2,2,22,32,59,88v37,56,57,83,60,83v1,0,2,-12,2,-38v0,-20,0,-48,-1,-84v-1,-24,-2,-40,-4,-49r-2,-6v-2,-6,-3,-10,-3,-13v0,-3,2,-6,5,-9v3,-3,9,-5,18,-5r8,0v7,0,12,2,17,6v5,4,7,9,7,13v0,4,-1,11,-5,21v-4,10,-7,21,-8,32v-1,11,-1,45,-1,100v0,55,0,85,-1,89v-2,9,-6,14,-12,14v-14,0,-28,-10,-44,-30v-6,-8,-27,-38,-63,-92v-36,-54,-55,-81,-57,-81v-4,0,-6,16,-6,47v0,57,1,95,5,111v4,16,5,24,5,25v0,8,-4,15,-12,19v-8,4,-18,6,-30,6v-12,0,-18,-4,-18,-12xm81,-321r0,-3v0,-9,6,-19,17,-29v6,-6,14,-9,22,-9v8,0,19,4,33,10v14,6,21,10,23,10v7,0,13,-4,19,-10v6,-6,11,-10,15,-10r3,0v4,0,5,1,5,4r0,5v0,10,-5,20,-16,29v-7,6,-15,8,-24,8v-9,0,-18,-2,-28,-8v-13,-7,-22,-10,-27,-10v-5,0,-11,3,-18,9v-7,6,-13,10,-17,10v-4,0,-7,-2,-7,-6","w":297},"\u00d2":{"d":"37,-146v0,-42,11,-77,31,-105v21,-30,49,-45,84,-45r5,0v14,0,28,4,42,10v14,6,26,16,36,29v21,28,32,62,32,104r0,5v0,46,-12,83,-35,112v-9,11,-20,20,-33,27v-13,7,-28,11,-46,11v-36,0,-65,-14,-86,-42v-20,-26,-30,-62,-30,-106xm82,-146v0,36,6,65,19,87v6,10,13,18,22,24v9,6,18,9,27,9r5,0v9,0,17,-2,25,-7v8,-5,16,-13,22,-23v13,-21,20,-48,20,-80r0,-12v0,-35,-7,-63,-22,-87v-6,-10,-13,-17,-22,-22v-8,-5,-17,-7,-27,-7v-20,0,-36,11,-49,32v-13,21,-20,50,-20,86xm97,-365r0,-2v0,-4,5,-6,14,-6r5,0v10,0,20,4,29,12v5,5,15,17,31,37v4,5,6,9,6,11v0,2,-1,4,-5,4r-5,0v-8,0,-17,-5,-28,-12v-31,-22,-47,-36,-47,-44","w":301},"\u00d3":{"d":"37,-139r1,-6r0,-5v0,-18,2,-36,8,-55v12,-40,34,-67,65,-81v13,-6,28,-9,45,-9v33,0,60,13,80,39v21,27,31,61,31,103r0,6v0,20,-3,38,-8,57v-5,19,-14,35,-24,49v-10,14,-22,24,-36,32v-14,8,-29,12,-44,12r-8,0v-32,0,-59,-13,-79,-39v-21,-27,-31,-61,-31,-103xm82,-142v0,35,7,63,21,85v13,21,29,31,49,31v31,0,53,-20,64,-62v4,-16,7,-34,7,-52r0,-8v0,-17,-2,-33,-6,-48v-7,-28,-19,-49,-36,-60v-8,-6,-18,-8,-28,-8v-21,0,-38,10,-50,30v-14,23,-21,50,-21,81r0,11xm125,-312v0,-4,2,-9,7,-15v15,-20,27,-32,34,-38v7,-6,17,-8,28,-8r6,0v7,0,10,2,10,6r0,1v0,8,-16,23,-48,45v-10,7,-20,11,-31,11v-4,0,-6,0,-6,-2","w":301},"\u00d4":{"d":"36,-135r0,-15v0,-19,3,-37,9,-56v6,-19,14,-36,25,-49v22,-27,49,-40,81,-40r5,0v15,0,30,3,44,10v14,7,26,18,36,31v10,13,17,28,22,46v5,18,8,36,8,55r0,5v0,42,-10,77,-30,105v-10,13,-22,24,-36,32v-14,8,-30,12,-49,12r-5,0v-31,0,-56,-11,-76,-35v-11,-13,-19,-28,-25,-46v-6,-18,-9,-37,-9,-55xm81,-147v0,53,12,89,37,109v10,8,20,12,30,12r6,0v8,0,17,-2,25,-7v8,-5,16,-13,22,-23v13,-21,20,-48,20,-80r0,-16v0,-15,-2,-30,-6,-45v-8,-28,-20,-48,-36,-58v-9,-6,-18,-9,-28,-9v-22,0,-38,11,-51,33v-13,22,-19,50,-19,84xm88,-314v0,-2,2,-6,6,-10r37,-41v5,-5,13,-7,21,-7v8,0,16,3,21,8v28,26,42,42,42,50v0,2,-4,3,-12,3v-8,0,-17,-4,-26,-12v-16,-14,-24,-20,-25,-20v-2,0,-11,6,-25,19v-9,9,-18,13,-26,13v-8,0,-13,-1,-13,-3","w":300},"\u00d5":{"d":"36,-135r0,-15v0,-19,3,-38,9,-57v12,-37,32,-63,60,-78v14,-7,30,-11,47,-11r4,0v16,0,31,4,44,11v13,7,24,15,34,27v10,12,17,28,23,46v6,18,9,38,9,59r0,5v0,42,-10,78,-30,106v-10,14,-22,24,-36,32v-14,8,-31,12,-49,12r-5,0v-31,0,-56,-11,-76,-35v-11,-12,-19,-28,-25,-47v-6,-19,-9,-37,-9,-55xm81,-139v0,15,2,31,6,46v8,30,20,50,38,60v8,5,17,7,26,7r3,0r1,0v8,0,15,-2,23,-7v17,-9,29,-28,37,-56v4,-15,6,-30,6,-44r0,-19v0,-16,-2,-31,-6,-46v-8,-29,-21,-48,-38,-59v-8,-5,-16,-8,-26,-8v-10,0,-19,3,-28,8v-9,5,-17,14,-23,25v-13,22,-19,47,-19,78r0,15xm84,-325v0,-9,6,-20,17,-29v7,-6,14,-8,22,-8r5,0v5,0,15,3,28,9v13,6,20,9,25,9v5,0,11,-3,17,-9v6,-6,12,-9,16,-9v4,0,7,2,7,6r0,3v0,8,-4,17,-13,25v-9,8,-18,12,-27,12v-9,0,-19,-3,-32,-9v-13,-6,-21,-9,-26,-9v-5,0,-10,2,-16,8v-6,6,-11,9,-16,9v-5,0,-7,-2,-7,-7r0,-1","w":300},"\u00d6":{"d":"36,-140r0,-5v0,-22,3,-41,9,-60v6,-19,13,-34,22,-46v22,-30,52,-45,89,-45v33,0,60,15,81,43v9,12,16,27,21,45v5,18,8,36,8,56r0,5v0,42,-10,77,-30,105v-10,14,-23,25,-37,33v-14,8,-29,12,-44,12r-9,0v-16,0,-30,-4,-44,-11v-27,-14,-46,-37,-57,-72v-6,-18,-9,-39,-9,-60xm81,-142v0,34,7,62,21,85v13,21,30,31,50,31v22,0,39,-11,51,-32v12,-21,19,-49,19,-82r0,-8v0,-31,-6,-57,-18,-80v-6,-11,-14,-21,-23,-27v-9,-6,-17,-9,-26,-9r-6,0v-9,0,-19,3,-27,9v-8,6,-15,13,-21,23v-13,21,-20,48,-20,82r0,8xm92,-336r0,-5r0,-1r1,-4v0,-11,4,-16,14,-16r5,0v9,0,16,1,18,5v2,4,3,9,3,16r0,1r0,1r-1,5r0,3v0,4,-3,7,-6,10v-3,3,-8,4,-13,4r-4,0v-3,-1,-5,-1,-6,-1v-6,0,-9,-3,-9,-10v0,-1,-1,-2,-1,-3xm172,-336r0,-3r0,-6v0,-4,2,-9,5,-12v3,-3,10,-5,19,-5r5,1v8,0,12,4,12,13v1,2,1,6,1,11r-1,6v0,4,-1,8,-4,11v-3,3,-8,5,-12,5r-4,0r-4,0v-11,0,-16,-4,-16,-13r-1,-1r0,0r0,-7","w":300},"\u00d7":{"d":"36,-58v0,-2,12,-13,34,-33v22,-20,33,-30,33,-32v0,-2,-11,-12,-33,-31v-22,-19,-33,-30,-33,-34v0,-2,2,-6,7,-10v5,-4,9,-6,12,-6v3,0,16,10,38,30v22,20,34,29,35,29v1,0,12,-9,34,-29v22,-20,36,-30,40,-30v2,0,6,2,10,6v4,4,7,7,7,10v0,3,-12,13,-34,33v-22,20,-33,30,-33,32v0,1,11,11,33,31v22,20,33,32,33,35v0,2,-2,5,-7,9v-5,4,-8,6,-11,6v-3,0,-15,-10,-38,-30v-23,-20,-35,-30,-36,-30v-1,0,-13,10,-35,30v-22,20,-35,30,-38,30v-3,0,-7,-2,-11,-6v-4,-4,-7,-8,-7,-10","w":256},"\u00d8":{"d":"35,-119r0,-11v0,-21,3,-41,10,-63v7,-22,18,-40,31,-55v14,-15,28,-26,43,-33v15,-7,32,-11,50,-11v11,0,21,2,32,4v16,3,26,5,29,5v3,0,8,-2,14,-7v6,-5,11,-8,13,-8r3,0v4,0,6,3,6,9v0,3,-2,9,-6,16v-4,7,-7,13,-7,17v0,4,2,11,6,19v4,8,7,17,10,28v3,11,5,24,5,39r0,11v0,22,-5,44,-12,65v-7,21,-17,38,-30,53v-25,28,-57,42,-97,42v-8,0,-19,-1,-31,-4v-12,-3,-19,-5,-24,-5v-5,0,-11,3,-17,9v-6,6,-11,8,-16,8v-5,0,-7,-3,-7,-9v0,-2,3,-7,8,-16v5,-9,7,-17,7,-23v0,-1,-2,-6,-6,-16v-4,-10,-6,-16,-7,-18v-5,-16,-7,-32,-7,-46xm76,-131v0,23,2,39,8,50v1,2,2,4,3,4v2,0,10,-12,25,-35v22,-35,23,-35,55,-81v22,-31,32,-47,32,-48v0,-6,-3,-11,-10,-16v-7,-5,-16,-7,-24,-7r-6,0v-11,0,-21,3,-32,10v-20,13,-35,34,-44,63v-5,16,-7,30,-7,43r0,6r0,11xm109,-50v0,6,4,12,12,17v8,5,17,7,26,7r4,0v10,0,21,-3,32,-9v20,-11,35,-31,44,-63v4,-15,7,-32,7,-52r0,-6v0,-22,-4,-39,-10,-53v-1,-2,-2,-4,-3,-4v-1,0,-19,27,-56,80v-37,53,-56,80,-56,83","w":304},"\u00d9":{"d":"23,-263v0,-5,3,-11,8,-16v5,-5,11,-8,18,-8v15,0,26,1,33,4v6,3,9,8,9,15v0,3,0,7,-1,11v-2,6,-3,10,-4,15v-3,12,-4,43,-4,91v0,48,4,80,13,95v6,11,14,18,23,22v9,4,19,6,30,6v25,0,43,-10,54,-31v8,-16,13,-49,13,-98r-1,-38v0,-27,-1,-46,-4,-57v-3,-11,-4,-18,-4,-20v0,-5,2,-8,7,-11v5,-3,11,-4,21,-4v10,0,17,2,20,4v7,5,10,10,10,15v0,5,-2,11,-6,19v-4,8,-7,15,-8,22v-1,7,-2,30,-2,70v0,40,-1,68,-4,83v-6,33,-25,55,-55,67v-14,5,-29,8,-48,8v-19,0,-36,-4,-51,-11v-27,-13,-43,-37,-48,-74v-2,-15,-3,-42,-3,-80v0,-38,-1,-59,-2,-64v-1,-5,-3,-11,-7,-18v-4,-7,-7,-12,-7,-17xm89,-366v0,-3,6,-5,16,-5v10,0,20,4,31,12v3,2,13,14,31,34v4,5,6,9,6,13v0,2,-2,3,-6,3r-6,-1v-8,0,-19,-4,-31,-14v-27,-21,-41,-35,-41,-42","w":287},"\u00da":{"d":"30,-247v-4,-6,-6,-12,-6,-17v0,-6,3,-10,8,-15v6,-5,11,-9,18,-9v15,0,26,2,32,5v6,3,10,8,10,15r-6,28v-2,10,-3,24,-3,42r0,8v0,3,-1,8,-1,15r0,15r0,15v0,44,4,74,13,89v11,18,30,28,56,28v10,0,19,-3,29,-8v10,-5,17,-12,23,-23v8,-16,13,-49,13,-98r-1,-38v0,-27,-1,-46,-4,-57v-3,-11,-5,-18,-5,-22v0,-9,11,-14,32,-14v7,0,13,2,18,6v5,4,8,8,8,13v0,5,-2,11,-6,19v-4,8,-7,15,-8,22v-1,7,-2,31,-2,71v0,40,-1,67,-4,82v-6,33,-25,56,-55,68v-13,5,-29,7,-48,7v-41,0,-69,-14,-86,-43v-6,-11,-11,-24,-13,-40v-2,-16,-3,-43,-3,-82v0,-39,0,-60,-1,-65v-1,-5,-4,-11,-8,-17xm120,-313r0,-1v0,-8,12,-24,36,-45v10,-9,22,-13,36,-13v8,0,12,1,12,5r0,1v0,6,-15,21,-45,44v-10,8,-21,12,-32,12v-5,0,-7,-1,-7,-3","w":288},"\u00db":{"d":"23,-264v0,-5,3,-10,8,-15v5,-5,12,-8,19,-8v15,0,26,1,32,4v6,3,9,9,9,16v0,3,0,6,-1,10v-5,16,-8,50,-8,101v0,51,5,85,14,100v6,10,13,18,22,22v9,4,20,6,33,6v13,0,23,-3,32,-9v9,-6,15,-13,20,-22v9,-16,13,-48,13,-96v0,-19,-1,-39,-2,-63v-1,-16,-3,-28,-5,-38v-2,-10,-3,-14,-3,-16v0,-10,9,-16,28,-16v10,0,17,2,22,6v5,4,8,9,8,14v0,5,-2,11,-6,19v-4,8,-7,16,-8,23v-1,7,-2,30,-2,67v0,37,-2,64,-4,79v-5,34,-21,57,-49,70v-15,7,-32,11,-52,11v-60,0,-94,-28,-102,-85v-2,-13,-2,-40,-2,-79v0,-39,-1,-61,-2,-66v-1,-5,-3,-11,-7,-17v-4,-6,-7,-13,-7,-18xm83,-314v0,-7,13,-23,41,-49v5,-5,13,-8,21,-8v8,0,15,3,21,8v29,24,43,40,43,48v0,2,-4,3,-12,3v-8,0,-16,-4,-26,-12v-16,-13,-24,-20,-25,-20v-1,0,-10,7,-25,21v-9,8,-18,12,-26,12r-4,0v-6,0,-8,-1,-8,-3","w":287},"\u00dc":{"d":"29,-246v-4,-6,-6,-12,-6,-17v0,-6,3,-11,8,-16v5,-5,12,-8,19,-8v15,0,26,2,32,5v6,3,10,8,10,15r-6,22v-3,16,-4,47,-4,95v0,48,4,81,13,96v6,10,15,17,24,21v9,4,19,6,30,6v11,0,21,-3,31,-8v10,-5,17,-13,23,-24v8,-15,13,-45,13,-90r-1,-38v0,-26,-2,-47,-5,-64r-1,-6r-1,-5v-1,-4,-2,-8,-2,-12v0,-9,11,-13,33,-13r0,0v7,0,13,2,18,6v5,4,7,8,7,14v0,5,-2,11,-5,17v-5,9,-8,17,-9,24v-1,7,-1,30,-1,70v0,40,-2,68,-5,83v-7,34,-25,57,-55,68v-13,5,-29,7,-48,7v-19,0,-36,-4,-51,-11v-15,-7,-27,-17,-35,-31v-8,-14,-12,-29,-14,-45v-2,-16,-2,-43,-2,-80v0,-37,-1,-59,-2,-64v-1,-5,-4,-11,-8,-17xm86,-334r0,-6r1,-7v0,-9,5,-14,14,-14v2,-1,4,0,7,0r1,0v11,0,17,4,17,13v1,2,1,7,1,13v0,6,-2,11,-5,14v-3,3,-6,5,-10,5r-5,0r-5,0v-10,0,-15,-4,-15,-13v0,-1,-1,-2,-1,-5xm166,-336r0,-1r0,-2r1,-4r0,-2v0,-10,4,-14,13,-14r1,-1r5,0r2,0r1,0r5,0v1,0,2,1,3,1v6,0,9,3,9,10r1,7r0,1r0,3r0,0r0,1r-1,6v0,5,-1,9,-5,12v-4,3,-8,4,-13,4r-6,0v-10,0,-15,-4,-15,-12v-1,-2,-1,-5,-1,-9","w":287},"\u00dd":{"d":"26,-276v0,-9,9,-14,27,-14r5,0v15,0,26,3,32,9v4,3,5,9,5,19v0,10,11,39,33,87v4,9,6,14,7,14v6,0,16,-16,28,-47v12,-31,18,-52,18,-61v0,-9,2,-15,7,-17v5,-2,14,-4,27,-4v13,0,20,4,20,12v0,3,-6,13,-18,29v-4,5,-14,22,-29,52v-15,30,-25,50,-29,61v-4,11,-6,26,-6,45v0,19,1,32,2,38v1,6,3,12,6,18v3,6,5,11,5,15v0,4,-2,9,-7,13v-5,4,-12,6,-21,6r-16,0v-8,0,-16,-1,-21,-4v-5,-3,-8,-7,-8,-11v0,-4,2,-10,5,-17v3,-7,6,-13,8,-20v2,-7,3,-20,3,-38v0,-18,-5,-37,-14,-57v-9,-20,-20,-41,-31,-62v-11,-21,-18,-33,-20,-36v-12,-18,-18,-28,-18,-30xm113,-311v-4,0,-5,-1,-5,-3v0,-2,2,-6,6,-11v15,-19,25,-31,33,-38v8,-7,17,-10,27,-10r2,0v11,0,16,1,16,4r0,3v0,5,-15,19,-47,44v-9,7,-20,11,-32,11","w":261},"\u00de":{"d":"34,-17v0,-3,2,-9,7,-17v5,-8,8,-18,9,-27v3,-28,5,-62,5,-101v0,-39,-1,-63,-3,-72v-2,-9,-5,-17,-9,-25v-4,-8,-6,-13,-6,-15v0,-9,7,-13,21,-13r9,0v11,0,21,2,29,7v8,5,12,11,12,18r-2,7v0,6,5,11,13,14v1,0,7,1,19,3v12,2,22,3,32,6v10,3,19,9,27,16v8,7,15,16,20,26v5,10,7,22,7,35v0,27,-10,49,-29,66v-10,9,-21,15,-32,18v-11,3,-21,5,-31,7v-10,2,-16,4,-19,6v-7,5,-11,11,-11,18v0,1,1,3,3,7v2,4,3,6,3,9v0,6,-4,10,-11,14v-8,4,-16,6,-26,6r-9,0v-19,0,-28,-4,-28,-13xm95,-107v0,8,5,12,14,12r13,1v17,0,31,-5,42,-15v11,-10,16,-23,16,-38r1,-4r0,-4r0,-3v0,-16,-5,-27,-15,-36v-10,-9,-22,-13,-37,-13r-11,0v-12,0,-18,3,-20,8v-1,2,-2,12,-2,29r0,30r0,2r0,4r0,6r0,3r0,2r0,4r-1,1r0,4r0,7","w":252},"\u00df":{"d":"23,-12v0,-3,2,-8,6,-15v4,-7,6,-13,7,-20v1,-7,1,-22,1,-44v0,-22,-1,-42,-3,-61v-2,-19,-3,-29,-3,-30v0,-9,3,-24,9,-44v6,-20,11,-34,18,-42v7,-8,16,-15,27,-21v11,-6,23,-8,38,-8v22,0,39,5,51,17v12,12,18,26,18,42v0,11,-4,25,-13,40v-9,15,-14,25,-14,31v0,6,6,14,18,26v12,12,22,23,28,33v6,10,9,21,9,34v0,20,-6,37,-19,50v-7,7,-15,13,-25,17v-11,4,-21,6,-29,6v-8,0,-16,-2,-22,-6v-5,-3,-7,-7,-7,-12v0,-6,7,-10,20,-11v13,-1,23,-6,31,-13v8,-7,11,-17,11,-28v0,-11,-2,-21,-7,-28v-5,-7,-10,-14,-17,-20r-12,-10r-10,-10v-6,-7,-9,-15,-9,-23v0,-8,5,-20,15,-35v10,-15,14,-29,14,-39v0,-10,-3,-18,-9,-23v-6,-5,-13,-9,-21,-9v-8,0,-16,3,-24,9v-8,6,-14,17,-18,32v-4,15,-7,56,-7,124r0,33r1,31v0,11,-2,19,-6,24v-7,8,-16,13,-28,13v-12,0,-19,-4,-19,-10","w":241},"\u00e0":{"d":"30,-51r0,-4v0,-16,7,-31,21,-43v8,-7,20,-13,36,-18v2,-1,9,-3,20,-6v11,-3,19,-6,23,-8v6,-4,10,-10,10,-19v0,-9,-3,-16,-10,-21v-7,-5,-15,-8,-25,-8v-10,0,-20,4,-32,12v-12,8,-21,11,-27,11v-9,0,-13,-5,-13,-15v0,-9,10,-18,29,-26v15,-6,29,-10,44,-10v27,0,46,7,58,21v9,11,14,29,14,55r-2,60v0,13,0,21,2,25v2,4,4,8,7,13v3,5,5,9,5,13v0,3,-1,6,-4,8v-6,5,-12,7,-19,7v-6,0,-12,-2,-19,-6v-7,-4,-11,-5,-14,-5v-3,0,-10,2,-21,7v-11,5,-20,8,-28,8r-4,0v-15,0,-26,-4,-36,-13v-10,-9,-15,-22,-15,-38xm56,-290v0,-3,4,-5,11,-5r2,-1r5,0v10,0,18,3,25,9v7,6,15,16,24,30v9,14,14,22,14,24v0,2,-4,2,-11,2v-7,0,-14,-3,-22,-9v-32,-25,-48,-41,-48,-50xm64,-50v0,6,2,12,6,16v4,4,10,6,17,6r5,0v13,0,24,-4,33,-13v10,-10,14,-23,14,-38r1,-6r0,-7v0,-5,-3,-8,-7,-8r-6,1v-17,0,-33,5,-47,16v-11,8,-16,20,-16,33","w":217},"\u00e1":{"d":"30,-51r0,-4v0,-16,7,-31,21,-43v8,-7,21,-13,36,-18v2,-1,9,-3,20,-6v11,-3,20,-6,25,-9v5,-3,8,-9,8,-17v0,-8,-3,-15,-9,-21v-6,-6,-15,-9,-25,-9v-10,0,-21,4,-33,12v-12,8,-20,11,-26,11v-9,0,-14,-5,-14,-15v0,-9,10,-17,29,-26v14,-7,31,-10,51,-10v20,0,36,5,48,17v6,6,10,13,13,21v3,8,4,18,4,33r-3,65v0,13,1,21,3,25v2,4,4,9,7,13v3,5,5,8,5,12v0,3,-1,6,-4,8v-6,5,-12,7,-19,7v-6,0,-13,-2,-20,-5v-7,-4,-11,-5,-14,-5v-3,0,-9,2,-20,7v-11,5,-21,7,-32,7r-5,0v-13,0,-24,-5,-33,-14v-9,-9,-13,-21,-13,-36xm64,-52v0,7,3,13,7,17v5,5,9,7,15,7v1,0,3,-1,4,-1v13,0,24,-3,34,-12v10,-9,14,-20,14,-32r1,-2r0,-9r0,-10v0,-4,-2,-6,-6,-6r-7,1v-15,0,-30,5,-46,16v-11,7,-16,17,-16,31xm83,-234v0,-3,5,-10,14,-22r8,-11v10,-12,15,-19,15,-19v8,-7,16,-10,26,-10r4,0v9,0,14,2,14,5r0,1v0,5,-16,21,-48,49v-8,7,-17,10,-27,10v-5,0,-6,-1,-6,-3","w":217},"\u00e2":{"d":"27,-52r0,-5v0,-30,22,-52,66,-64v18,-5,30,-8,34,-10v6,-4,10,-10,10,-19v0,-9,-3,-16,-10,-21v-7,-5,-15,-7,-25,-7v-10,0,-20,3,-32,11v-12,8,-21,11,-27,11v-9,0,-13,-4,-13,-13v0,-9,8,-18,24,-26v16,-8,31,-12,47,-12r11,0v10,0,19,3,28,6v9,3,16,8,22,15v9,11,14,27,14,50r-1,24r-1,9v-1,16,-1,29,-1,38v0,9,1,15,3,19v2,4,4,8,7,13v3,5,5,8,5,12v0,3,-1,6,-3,8v-5,4,-12,7,-19,7v-7,0,-15,-2,-21,-5v-6,-3,-11,-6,-14,-6v-3,0,-9,3,-20,8v-11,5,-21,7,-29,7r-4,0v-14,0,-26,-4,-36,-13v-10,-9,-15,-21,-15,-37xm45,-236v0,-2,13,-19,39,-50v5,-6,13,-9,22,-9v9,0,16,3,22,9v26,26,40,43,40,51v0,2,-4,3,-12,3v-8,0,-16,-4,-26,-13r-11,-11r-13,-11v-2,0,-9,6,-23,20v-9,9,-18,15,-26,15v-8,0,-12,-2,-12,-4xm62,-50v0,6,1,11,6,15v5,4,13,6,23,6v10,0,20,-4,30,-13v10,-9,15,-20,15,-33r0,-2r1,-6r0,-4r0,-4v0,-6,-3,-9,-7,-9v-19,0,-36,5,-51,15v-12,8,-17,18,-17,30r0,5"},"\u00e3":{"d":"27,-53r0,-4v0,-16,7,-31,21,-43v8,-7,20,-13,36,-18v2,-1,10,-3,21,-6v11,-3,19,-6,22,-8v6,-4,9,-10,9,-19v0,-9,-3,-15,-10,-20v-7,-5,-14,-8,-24,-8v-10,0,-20,4,-32,12v-12,8,-21,11,-27,11v-9,0,-14,-5,-14,-14v0,-9,9,-17,25,-25v16,-8,33,-12,52,-12r6,0v10,0,19,2,28,6v9,4,17,9,22,15v9,11,13,29,13,55r-2,60v0,12,1,20,3,24v2,4,4,9,7,13v4,5,5,8,5,12v0,3,-1,6,-4,8v-6,5,-12,7,-19,7v-6,0,-13,-2,-20,-5v-7,-4,-12,-5,-15,-5r-23,8v-11,4,-21,6,-29,6v-15,0,-26,-4,-36,-13v-10,-9,-15,-21,-15,-37xm39,-245v0,-10,4,-19,13,-27v9,-8,17,-12,26,-12v9,0,19,3,30,9v11,6,20,9,25,9v5,0,11,-3,17,-9v6,-6,11,-9,16,-9v5,0,7,3,7,8v0,9,-4,18,-12,26v-8,8,-17,12,-26,12v-8,0,-19,-3,-32,-9v-13,-6,-21,-10,-26,-10v-5,0,-10,3,-15,9v-5,6,-11,9,-16,9v-5,0,-7,-2,-7,-6xm62,-49v0,5,2,9,6,13v4,4,11,7,20,7v2,0,4,-1,6,-1v11,0,21,-5,29,-14v8,-9,12,-19,12,-30r1,-2r0,-9r0,-9v0,-4,-3,-6,-8,-6r-6,0v-14,0,-29,5,-45,16v-11,7,-15,17,-15,28r0,7"},"\u00e4":{"d":"27,-51r0,-5v0,-28,19,-48,57,-61v2,-1,9,-3,20,-6v11,-3,20,-6,25,-9v5,-3,8,-8,8,-16v0,-8,-3,-15,-9,-21v-6,-6,-13,-9,-24,-9v-11,0,-22,3,-34,11v-12,8,-21,11,-27,11v-9,0,-13,-5,-13,-15v0,-8,7,-16,23,-24v16,-8,32,-12,47,-12v15,0,28,2,38,5v10,3,17,9,23,16v9,11,14,30,14,56r-1,18r0,10v-1,14,-1,24,-1,33r0,4v0,10,0,16,1,18v2,5,5,9,8,14v4,5,6,9,6,13v0,3,-1,6,-4,8v-6,5,-13,7,-20,7v-6,0,-12,-2,-19,-5v-7,-4,-12,-6,-14,-6v-2,0,-9,3,-21,8v-12,5,-24,7,-36,7v-12,0,-22,-5,-32,-13v-10,-8,-15,-20,-15,-37xm47,-263r1,-6v0,-10,5,-15,14,-15v2,-1,3,-1,7,-1r1,1r5,0r1,0v7,0,11,6,11,17r0,7r-1,7v0,9,-4,13,-13,13r-3,1r-1,0r-3,0r0,0r-1,0r-2,0r-6,-2v-6,0,-9,-4,-9,-12v-1,-2,-1,-6,-1,-10xm62,-50v0,6,1,11,6,15v5,4,10,6,16,6r6,0v11,0,21,-4,31,-13v10,-9,14,-18,14,-30v0,-2,1,-4,1,-5r1,-7r0,-8v0,-5,-3,-8,-7,-8v-21,0,-39,6,-53,17v-11,8,-15,17,-15,27r0,6xm125,-259r0,-1r1,-6r0,-1v0,-10,4,-15,12,-15v2,-1,3,-1,4,-1r4,0v8,0,13,1,16,4v3,3,4,9,4,18r0,1r-1,6v0,4,-2,9,-5,12v-3,3,-8,4,-14,4r-5,0r-5,-1v-7,0,-10,-3,-10,-11r-1,-4r0,-2r0,-3"},"\u00e5":{"d":"27,-48r0,-5v0,-18,8,-32,24,-45v9,-7,23,-14,44,-20v21,-6,31,-10,32,-10v6,-4,10,-10,10,-18v0,-8,-3,-15,-9,-21v-6,-6,-14,-9,-24,-9v-10,0,-21,4,-34,12v-13,8,-22,11,-27,11v-9,0,-14,-5,-14,-14v0,-9,9,-17,25,-25v16,-8,32,-12,47,-12r10,0v10,0,20,2,29,6v9,4,16,8,21,14v9,11,14,29,14,52r-3,65v0,13,1,21,3,25v2,4,5,8,8,12v4,5,5,8,5,12v0,3,-1,6,-4,8v-6,5,-13,8,-20,8v-6,0,-12,-2,-19,-5v-8,-4,-13,-6,-15,-6v-2,0,-9,2,-20,7v-11,5,-20,8,-28,8r-9,0v-13,0,-24,-5,-33,-14v-9,-9,-13,-21,-13,-36xm61,-53v0,9,2,15,7,19v5,4,9,7,15,7r5,0v11,0,22,-5,32,-14v10,-9,15,-19,15,-32r0,-1r1,-2r0,-11r0,-3v0,-6,-2,-9,-7,-9r-6,1v-17,0,-31,5,-43,14v-12,9,-19,19,-19,28r0,3xm64,-264r0,-6v0,-8,4,-15,12,-22v8,-7,17,-11,28,-11r7,0v10,0,18,3,26,10v8,7,11,15,11,24v0,9,-4,18,-12,25v-8,7,-18,11,-30,11v-12,0,-22,-3,-30,-9v-8,-6,-12,-13,-12,-22xm87,-267v0,6,2,11,5,15v3,4,6,6,9,6r3,1r3,0v4,0,8,-2,12,-6v4,-4,5,-10,5,-19r0,-6v0,-3,-3,-6,-6,-9v-3,-3,-7,-6,-12,-6v-5,0,-10,3,-13,7v-3,4,-5,7,-5,10r-1,3r0,4"},"\u00e6":{"d":"20,-61v0,-16,8,-31,24,-43v10,-8,23,-13,37,-17v4,-1,11,-2,22,-4v11,-2,19,-4,24,-7v5,-3,8,-7,8,-15v0,-8,-3,-14,-10,-19v-7,-5,-15,-7,-25,-7v-10,0,-21,4,-32,12v-11,8,-20,12,-26,12v-6,0,-10,-5,-10,-14v0,-8,8,-15,23,-22v15,-7,30,-10,45,-10v15,0,29,3,43,8v14,5,21,8,21,8r20,-9v0,0,24,-8,34,-8r7,0v12,0,22,2,32,6v20,9,34,23,42,41v4,9,6,17,6,24v0,12,-5,20,-13,23v-5,2,-21,3,-49,5v-28,2,-43,3,-45,3v-11,2,-16,8,-16,18v0,10,4,18,13,27v9,9,19,12,31,12v12,0,25,-2,41,-8v16,-6,25,-8,26,-8v5,0,8,2,8,7v0,9,-7,17,-21,25v-14,8,-29,11,-45,11r-7,0v-19,0,-37,-5,-51,-14v-14,-9,-22,-14,-23,-14v-1,0,-6,4,-16,10v-10,6,-19,10,-28,13v-9,3,-21,4,-36,4v-15,0,-28,-5,-38,-15v-10,-10,-16,-22,-16,-35xm63,-50v0,6,2,10,7,14v5,4,10,6,15,6r9,0v9,0,20,-4,31,-14v7,-6,11,-15,11,-25r0,-2r0,-2r1,-4r0,-3r0,-1r0,-2r0,-5v0,-8,-2,-11,-8,-11r-3,0r-1,0v-18,0,-34,6,-47,16v-10,7,-15,16,-15,27r0,6xm181,-132v0,4,3,5,10,5r5,0r1,0r24,-1v27,0,40,-2,40,-8r0,-5v0,-2,-1,-3,-1,-5v0,-8,-4,-15,-11,-21v-7,-6,-14,-10,-22,-10r-6,0v-11,0,-20,5,-28,14v-8,9,-12,20,-12,31","w":321},"\u00e7":{"d":"19,-99v0,-29,8,-53,23,-72v9,-11,18,-20,30,-25v12,-5,24,-8,36,-8r9,0v18,0,34,4,47,12v13,8,20,16,20,27v0,11,-4,17,-11,17v-6,0,-15,-5,-27,-14v-12,-9,-24,-13,-35,-13v-7,0,-15,2,-22,6v-7,4,-13,11,-18,21v-5,10,-8,26,-8,48v0,22,5,39,16,51v11,12,26,19,44,19v8,0,19,-4,32,-9v13,-5,22,-8,25,-8v5,0,7,3,7,9v0,9,-10,19,-28,28v-15,8,-29,12,-45,12v4,0,6,4,6,11v0,2,4,6,11,12v7,6,10,12,10,19r0,5v0,9,-4,16,-12,23v-8,7,-18,10,-29,10r-8,0v-2,0,-4,-1,-5,-1v-11,0,-16,-1,-16,-6r0,-3v0,-5,4,-8,13,-8v9,0,16,-2,20,-5v4,-3,5,-7,5,-11v0,-4,-2,-8,-7,-12v-5,-4,-7,-7,-7,-11v0,-8,2,-14,6,-19v2,-2,5,-4,9,-4v-28,0,-51,-10,-68,-30v-15,-18,-23,-42,-23,-71","w":206},"\u00e8":{"d":"24,-93r0,-5v0,-30,10,-55,30,-76v9,-10,20,-17,32,-22v12,-5,25,-8,37,-8r4,0v18,0,33,6,45,17v12,11,19,26,19,44r0,5v0,13,-4,21,-12,25v-5,3,-22,5,-50,8v-28,3,-45,5,-50,7v-9,3,-14,9,-14,18v0,13,5,24,15,34v10,10,23,15,39,15v11,0,23,-2,36,-7v15,-5,24,-7,28,-7v5,0,8,2,8,8v0,8,-7,16,-22,24v-15,8,-32,12,-53,12r-5,0r-1,0v-11,0,-23,-2,-34,-7v-22,-9,-38,-25,-46,-48v-5,-12,-6,-25,-6,-37xm59,-290v0,-4,6,-6,18,-6v12,0,22,4,29,12v23,26,34,44,34,51v0,2,-3,2,-10,2v-7,0,-15,-4,-24,-11v-31,-24,-47,-40,-47,-48xm67,-131v0,3,4,5,12,5r9,0r1,0r51,-2r4,-1v6,0,9,-2,9,-7r0,-3v0,-11,-4,-20,-11,-27v-7,-7,-17,-11,-29,-11v-12,0,-23,4,-32,13v-9,9,-14,20,-14,33"},"\u00e9":{"d":"24,-93r0,-5v0,-15,3,-30,9,-44v12,-27,31,-45,57,-55v12,-5,25,-7,41,-7v16,0,30,6,42,18v12,12,18,28,18,48v0,12,-4,20,-12,24v-8,4,-23,6,-48,8v-25,2,-42,4,-49,6v-11,3,-16,10,-16,20v0,15,5,26,16,35v11,9,24,14,40,14v8,0,20,-3,34,-8v14,-5,22,-7,26,-7v5,0,8,3,8,9v0,9,-8,17,-24,24v-16,7,-33,11,-51,11r-4,0v-25,0,-46,-9,-63,-26v-8,-8,-14,-17,-18,-29v-4,-12,-6,-24,-6,-36xm67,-130v0,3,3,5,10,5r15,0r1,-1r16,0v29,0,43,-3,43,-9r0,-7v0,-10,-3,-18,-11,-25v-8,-7,-16,-11,-25,-11r-7,0v-11,0,-20,5,-29,15v-9,10,-13,21,-13,33xm87,-233r0,-2v0,-6,11,-23,34,-49v7,-8,16,-12,26,-12r2,0r4,0v10,0,15,2,15,5r0,2v0,5,-17,21,-49,49v-7,6,-14,9,-22,9r-5,0v-4,0,-5,0,-5,-2"},"\u00ea":{"d":"23,-93r0,-5v0,-14,3,-27,8,-41v5,-13,12,-25,21,-34v21,-21,44,-31,71,-31r5,0v18,0,33,6,45,18v12,12,18,26,18,44r0,4v0,13,-4,21,-12,25v-6,3,-22,6,-47,8v-25,2,-42,3,-50,5v-11,3,-17,9,-17,19v0,15,6,27,17,36v11,9,24,14,40,14v8,0,19,-3,33,-8v14,-5,24,-7,28,-7v5,0,7,3,7,9v0,8,-7,16,-22,24v-15,8,-31,12,-48,12v-17,0,-31,-2,-42,-6v-23,-8,-39,-25,-48,-50v-4,-12,-7,-24,-7,-36xm52,-235v0,-2,1,-5,5,-10v17,-22,29,-36,35,-42v6,-6,13,-9,21,-9v8,0,15,4,22,10v7,6,14,15,24,28v10,13,15,21,15,23v0,2,-4,3,-12,3v-8,0,-16,-5,-25,-14v-15,-15,-23,-22,-24,-22v-1,0,-8,6,-20,18v-12,12,-22,18,-30,18v-8,0,-11,-1,-11,-3xm67,-131v0,3,4,4,11,4r11,0r1,0r20,-1v29,0,43,-3,43,-9r0,-1r-1,-7v0,-9,-3,-16,-11,-23v-8,-7,-16,-10,-24,-10r-8,0v-8,0,-16,4,-26,12v-10,8,-15,18,-15,29r-1,3r0,3"},"\u00eb":{"d":"21,-96v0,-30,9,-56,28,-76v9,-9,20,-17,32,-23v12,-6,25,-9,37,-9r8,0v18,0,32,6,44,18v12,12,18,26,18,44r0,5v0,12,-4,19,-13,24v-5,3,-22,5,-50,8v-28,3,-44,5,-50,7v-8,3,-13,9,-13,19v0,14,7,27,20,37v9,7,22,11,39,11v6,0,16,-2,31,-7v15,-5,24,-8,26,-8v6,0,10,4,10,11v0,9,-8,16,-25,23v-17,7,-33,11,-49,11v-44,0,-73,-19,-87,-57v-4,-12,-6,-24,-6,-38xm51,-258r0,-5r1,-1r0,-6v0,-10,7,-14,19,-14r3,0v11,0,17,4,17,13v1,2,0,5,0,10r0,1r0,2r-1,6v0,8,-4,12,-13,12r-4,1r-5,0r-1,0r-1,0v-1,0,-2,-1,-2,-1v-8,0,-12,-3,-12,-12v0,-1,-1,-3,-1,-6xm65,-131v0,3,1,4,6,4r2,1r11,0r1,0r23,-1v28,0,42,-2,42,-7r0,-6v0,-9,-3,-18,-10,-26v-7,-8,-16,-12,-27,-12r-5,0v-12,0,-22,5,-31,15v-9,10,-12,20,-12,32xm129,-257r0,-5r1,-6v0,-5,2,-8,5,-11v3,-3,7,-4,12,-4r6,0v11,0,16,4,16,13r1,4r0,7r-1,5r0,2v0,9,-5,13,-14,13r-2,1r-2,0r-3,0r-1,0v-7,0,-11,-2,-14,-5v-3,-3,-4,-8,-4,-14","w":211},"\u00ec":{"d":"11,-291v0,-4,4,-6,13,-6r6,0v1,0,2,1,3,1v9,0,17,4,24,12v23,26,34,43,34,50v0,2,-2,3,-5,3r-5,0v-8,0,-15,-3,-23,-10v-31,-27,-47,-44,-47,-50xm31,-19v0,-2,1,-7,4,-12r5,-8v4,-8,5,-18,5,-28r1,-9r0,-45v0,-18,-1,-30,-2,-37v-2,-7,-4,-14,-8,-20v-4,-6,-6,-11,-6,-15v0,-4,2,-5,5,-7v5,-2,16,-4,31,-4r5,0v8,0,11,4,13,11v0,2,1,22,1,60v0,38,0,62,1,71v1,9,4,17,8,26v4,9,5,15,5,18v0,3,-2,7,-6,11v-4,4,-11,5,-20,5r-16,0v-18,0,-26,-5,-26,-17","w":127},"\u00ed":{"d":"31,-194v0,-7,12,-10,36,-10r5,0v8,0,12,4,13,11v0,2,1,15,1,39r0,57r0,9r0,14v0,10,1,18,3,24v2,6,4,12,7,17v3,5,4,10,4,15v0,5,-3,9,-10,13v-4,2,-10,4,-19,4r-11,0r-1,0v-9,0,-16,-1,-20,-4v-5,-3,-7,-7,-7,-12v0,-5,2,-9,6,-16v3,-6,5,-13,7,-20v2,-7,2,-24,2,-52v0,-28,-1,-45,-2,-52v-1,-7,-4,-14,-8,-21v-4,-7,-6,-13,-6,-16xm38,-234v0,-3,3,-8,9,-15v6,-7,11,-15,16,-23v5,-8,10,-12,13,-15v7,-6,16,-10,27,-10v11,0,16,2,16,5r0,2v0,8,-16,25,-48,50v-8,6,-16,9,-23,9r-4,0v-4,0,-6,-1,-6,-3","w":127},"\u00ee":{"d":"3,-236v0,-5,13,-23,40,-52v5,-5,11,-8,19,-8v8,0,15,3,20,7v5,4,13,14,24,29v11,15,17,23,17,25v0,2,-3,3,-8,3r-5,0v-7,0,-16,-6,-28,-18v-12,-12,-19,-18,-20,-18v-1,0,-7,6,-19,18v-12,12,-21,17,-29,17r-1,0v-6,0,-10,-1,-10,-3xm30,-20v0,-2,2,-6,4,-11r6,-11v3,-8,5,-17,5,-24r0,-14r0,-8r0,-21v0,-25,-1,-42,-2,-49v-1,-7,-4,-13,-8,-20v-4,-6,-6,-12,-6,-16v0,-4,2,-7,7,-8v7,-2,16,-3,28,-3r5,0v8,0,13,4,14,11r0,63v0,0,1,64,2,72v1,8,3,15,7,22v4,7,6,14,6,19v0,5,-4,9,-12,13v-3,2,-11,3,-23,3v-12,0,-21,-1,-26,-4v-5,-3,-7,-7,-7,-14","w":125},"\u00ef":{"d":"5,-258r0,-5r1,-7v0,-9,5,-14,14,-14v2,-1,3,0,7,0r1,0r5,0r1,1v7,0,10,3,10,11v0,0,1,2,1,5r0,7r-1,6v0,5,-2,8,-5,11v-3,3,-9,4,-17,4r-6,-1v-7,0,-10,-4,-10,-12v0,-1,-1,-3,-1,-6xm29,-194v0,-7,12,-11,36,-11r5,0v7,0,11,3,13,9v1,2,1,23,1,62v0,39,0,62,1,71v1,9,4,18,8,27v4,9,5,14,5,15v0,7,-3,12,-10,16v-4,2,-11,3,-22,3r-7,0v-10,0,-17,-1,-22,-4v-5,-3,-7,-7,-7,-13v0,-2,1,-7,5,-14v4,-7,7,-14,8,-21v1,-7,2,-25,2,-52v0,-27,-1,-45,-2,-52v-1,-7,-4,-14,-8,-21v-4,-7,-6,-11,-6,-15xm81,-258r0,-4r1,-6v0,-5,2,-9,6,-12v4,-3,8,-4,15,-4v12,0,18,4,18,13v0,1,1,3,1,6r0,5v0,15,-7,22,-19,22r-5,0r-6,-1v-7,0,-9,-4,-9,-11v-1,-2,-1,-2,-1,-3","w":124},"\u00f0":{"d":"31,-79r0,-6v0,-16,3,-31,8,-46v5,-15,13,-27,23,-37v14,-14,31,-23,50,-26v19,-3,28,-6,28,-11v0,-8,-5,-15,-14,-22v-5,-4,-12,-6,-21,-6v-7,1,-12,1,-16,1v-9,0,-13,-2,-13,-7v0,-3,1,-6,5,-11v4,-5,6,-9,6,-13v0,-4,-3,-9,-9,-14v-6,-6,-10,-10,-10,-13v0,-4,4,-6,14,-6v5,0,13,2,24,7v11,5,19,8,26,8r27,-4v8,0,13,3,13,9v0,2,-1,6,-4,11v-3,5,-5,10,-5,14v0,4,5,14,13,27v18,30,26,60,26,93r0,12r0,1v0,16,-2,32,-6,47v-8,30,-24,52,-46,64v-13,7,-26,11,-40,11r-6,0v-21,0,-38,-8,-52,-24v-14,-16,-21,-36,-21,-59xm72,-91v0,19,4,35,12,48v8,13,18,20,30,20r4,0v13,0,23,-7,31,-21v8,-14,11,-30,11,-50r0,-12v0,-20,-3,-35,-9,-46v-8,-14,-20,-21,-35,-21r-2,0v-12,0,-22,6,-30,19v-8,13,-12,30,-12,53r0,10","w":230},"\u00f1":{"d":"22,-22v0,-4,1,-9,4,-14v3,-5,5,-9,6,-13v3,-13,4,-31,4,-54v0,-34,-1,-55,-4,-65v-3,-10,-4,-16,-4,-18v0,-7,9,-11,27,-11v7,0,13,3,19,7v6,4,9,6,10,6v1,0,7,-3,20,-10v13,-7,26,-10,38,-10v10,0,19,2,28,7v8,4,15,10,20,18v8,13,12,35,12,67v0,32,1,51,2,57v1,6,4,11,8,17v4,6,5,11,5,15v0,4,-2,8,-5,11v-3,3,-8,5,-13,5v-27,0,-40,-7,-40,-20r3,-22v1,-8,1,-25,1,-50v0,-25,-2,-42,-5,-52v-3,-10,-8,-16,-13,-20v-5,-4,-11,-6,-19,-6v-8,0,-16,3,-23,7v-7,4,-13,11,-17,19v-6,13,-10,36,-10,70v0,13,1,25,3,34v2,9,3,15,3,19v0,6,-4,11,-12,14v-8,3,-17,5,-30,5v-13,0,-18,-4,-18,-13xm52,-244v0,-11,7,-23,19,-33v6,-5,12,-7,20,-7v9,0,20,3,31,9v12,6,20,9,25,9v5,0,11,-3,17,-9v6,-6,11,-9,16,-9v5,0,7,3,7,8v0,9,-6,18,-17,28v-6,6,-13,9,-21,9v-8,0,-19,-4,-32,-10v-13,-6,-22,-9,-26,-9v-4,0,-9,4,-15,10v-6,6,-11,9,-14,9r-3,0v-5,0,-7,-1,-7,-5","w":237},"\u00f2":{"d":"32,-95r0,-11v0,-13,3,-26,7,-39v9,-27,24,-46,46,-57v10,-5,19,-7,30,-7r6,0v23,0,42,10,58,28v7,8,13,18,17,31v4,13,7,25,7,36r0,14v0,28,-8,52,-24,72v-7,9,-15,16,-26,22v-11,6,-21,8,-33,8r-9,0v-11,0,-22,-3,-32,-8v-19,-10,-32,-27,-40,-50v-4,-13,-7,-26,-7,-39xm64,-290v0,-4,5,-6,16,-6v11,0,22,4,30,11v1,1,2,2,5,6r9,12r14,20v5,6,7,11,7,14v0,2,-2,2,-6,2r-4,0v-7,0,-14,-3,-23,-10v-32,-25,-48,-41,-48,-49xm72,-98v0,20,5,38,13,52v8,14,18,22,31,22r5,0v11,0,21,-6,29,-19v8,-13,12,-28,12,-46r1,-5r0,-15v0,-19,-5,-35,-13,-49v-8,-14,-18,-22,-30,-22r-6,0v-11,0,-21,7,-29,20v-8,13,-12,28,-12,45r-1,5r0,12","w":230},"\u00f3":{"d":"31,-95r0,-7r0,-4v0,-15,3,-29,8,-42v10,-27,26,-44,48,-54v10,-4,20,-7,32,-7v24,0,45,9,60,27v8,9,13,20,17,33v4,13,6,26,6,38r0,7r0,3v0,28,-8,52,-24,72v-7,9,-16,17,-27,23v-11,6,-22,8,-33,8r-6,0r-3,0v-11,0,-22,-3,-32,-8v-18,-10,-32,-27,-40,-50v-4,-12,-6,-25,-6,-39xm71,-103r1,3r0,6r0,6v0,17,4,31,13,44v9,13,19,20,30,20r5,0v11,0,21,-7,29,-21v8,-14,13,-30,13,-51r0,-10v0,-21,-5,-39,-13,-53v-8,-14,-19,-21,-33,-21v-14,0,-25,7,-33,21v-8,14,-12,33,-12,56xm90,-233v0,-3,5,-11,14,-25v9,-14,17,-24,24,-30v7,-6,16,-9,27,-9v11,0,17,2,17,6v0,5,-16,22,-47,50v-8,7,-17,10,-25,10r-4,0v-4,0,-6,0,-6,-2","w":229},"\u00f4":{"d":"35,-60v-4,-14,-6,-27,-6,-41v0,-14,2,-28,6,-42v4,-13,10,-25,18,-35v8,-10,17,-17,28,-23v11,-6,21,-9,32,-9r6,0v25,0,45,10,60,30v15,19,22,41,22,67r0,8v0,14,-2,28,-6,42v-4,14,-11,26,-19,35v-18,19,-39,29,-65,29v-11,0,-22,-2,-32,-7v-21,-10,-36,-28,-44,-54xm55,-236v0,-2,2,-5,6,-10v23,-27,35,-42,36,-43v5,-5,10,-7,17,-7r4,0v7,0,14,3,19,8v27,27,40,45,40,52v0,3,-3,4,-11,4v-8,0,-16,-4,-26,-13r-14,-14v0,0,-9,-8,-10,-8v-1,0,-7,4,-15,12v-8,8,-14,15,-19,18v-5,3,-10,4,-17,4v-7,0,-10,-1,-10,-3xm70,-101r0,3v0,22,4,39,13,53v9,14,18,21,30,21r6,0v12,0,22,-7,30,-21v8,-14,12,-30,12,-49r0,-15v0,-19,-5,-36,-13,-50v-8,-14,-18,-22,-31,-22r-5,0v-12,0,-22,7,-30,21v-8,14,-12,31,-12,50r0,9","w":228},"\u00f5":{"d":"29,-96r0,-10v0,-28,9,-54,26,-75v7,-8,16,-15,26,-20v10,-5,21,-8,32,-8r6,0v22,0,41,7,56,24v7,8,13,18,18,31v5,13,8,25,8,38r0,14v0,14,-3,27,-7,40v-9,26,-24,44,-44,55v-10,6,-21,8,-33,8r-9,0v-11,0,-22,-3,-32,-8v-19,-10,-32,-27,-40,-50v-4,-13,-7,-26,-7,-39xm49,-245v0,-9,4,-17,12,-26v8,-9,16,-13,25,-13r7,0v5,0,14,3,26,9v12,6,21,9,26,9v5,0,9,-3,15,-9v6,-6,11,-9,16,-9v5,0,7,1,7,4r0,4v0,9,-6,18,-16,28v-7,6,-14,9,-22,9r-4,0v-6,0,-15,-3,-28,-9v-13,-6,-22,-9,-26,-9v-4,0,-9,3,-15,9v-6,6,-11,9,-16,9v-5,0,-7,-2,-7,-6xm70,-106r0,3v0,24,4,43,12,57v8,14,19,21,31,21r6,0v12,0,21,-7,29,-21v8,-14,12,-30,12,-49r0,-15v0,-21,-4,-38,-13,-51v-9,-13,-20,-20,-33,-20v-13,0,-24,7,-32,21v-8,14,-12,31,-12,54","w":227},"\u00f6":{"d":"30,-95r0,-11v0,-28,7,-52,23,-72v8,-10,18,-18,29,-23v11,-5,21,-8,31,-8r6,0r3,0r1,0v11,0,20,3,30,8v19,10,33,27,41,50v4,13,6,25,6,39r0,11v0,28,-8,52,-24,72v-8,10,-16,18,-26,23v-10,5,-22,8,-33,8r-9,0v-11,0,-22,-3,-32,-8v-10,-5,-19,-13,-27,-23v-13,-18,-19,-40,-19,-66xm57,-259r0,-3r0,-1r0,-2r1,-7v0,-8,5,-11,13,-11r5,-1r4,0r6,1v7,0,11,6,11,18r0,3r0,3r-1,4v0,10,-5,15,-13,15v-2,1,-5,1,-9,1r-1,0r-1,0v-2,-1,-4,-1,-5,-1v-6,0,-9,-4,-9,-12r0,-1r0,0xm70,-101v0,22,4,40,12,55v8,15,20,22,34,22v14,0,25,-7,33,-21v8,-14,11,-32,11,-54r0,-5v0,-22,-4,-40,-12,-55v-8,-15,-19,-21,-31,-21r-3,0r-2,0v-12,0,-22,7,-30,21v-8,14,-12,31,-12,51r0,7xm135,-256r0,-7v0,-6,1,-12,4,-15v3,-3,7,-5,11,-5r3,-1r6,0v2,1,3,1,5,1v7,0,12,6,12,18r0,6r-1,6v0,9,-4,14,-13,14r-7,2r-2,0r-6,-1v-8,0,-12,-6,-12,-18","w":227},"\u00f7":{"d":"28,-120r0,-8v0,-6,3,-10,8,-11v5,-1,38,0,98,0r61,-1v20,0,32,1,34,2v2,1,4,4,4,9v0,1,-1,3,-1,5v0,8,-2,11,-6,12v-4,1,-37,1,-99,1r-35,0r-19,0v-24,0,-37,0,-40,-1v-3,-1,-5,-4,-5,-8xm106,-50r0,-5v0,-5,1,-8,5,-11v4,-3,9,-4,17,-4r4,0v8,0,15,2,18,5v3,3,5,7,5,11v0,1,1,2,1,5r-1,1r0,1r0,3v0,3,-1,6,-4,9v-3,3,-8,5,-13,5r-3,1r-1,0r-3,0r-1,0r-1,0r-1,0r-3,0r-5,-1v-10,0,-14,-5,-14,-15r0,-3r0,-2xm106,-205r1,-5v0,-9,5,-14,16,-14r0,0r1,0r6,-1r2,0r0,0r5,1r2,0v5,0,8,1,11,5v3,4,5,9,5,17r-1,1r0,3v0,10,-5,15,-16,15v-2,1,-6,0,-10,0r-6,0v-10,0,-15,-5,-15,-15v0,-2,-1,-4,-1,-7","w":254},"\u00f8":{"d":"32,-84r0,-8v0,-14,3,-29,8,-43v11,-29,28,-50,54,-62v11,-5,25,-7,40,-7r34,2v6,0,10,-1,13,-4v8,-7,13,-10,15,-10v6,0,9,4,9,11v0,2,-2,5,-6,11v-4,6,-5,10,-5,13v0,3,1,7,4,14v3,7,6,13,8,20v2,7,3,18,3,33v0,15,-3,30,-8,45v-5,15,-14,28,-24,39v-10,11,-21,19,-33,23v-12,4,-26,6,-42,6r-27,-2v-7,0,-13,2,-19,7v-6,5,-10,8,-12,8v-6,0,-9,-3,-9,-7v0,-4,2,-10,6,-16v4,-6,6,-11,6,-14v0,-3,-1,-7,-4,-13v-3,-6,-6,-12,-8,-19v-2,-7,-3,-16,-3,-27xm71,-92r0,2r0,4r1,8v0,11,2,16,5,16r0,0r22,-30v33,-47,49,-73,49,-75v0,-3,-2,-5,-6,-8v-4,-3,-8,-4,-14,-4r-6,0v-5,0,-12,2,-19,6v-7,4,-13,10,-18,18v-10,16,-14,35,-14,58r0,5xm93,-37v0,2,2,4,6,7v4,3,8,5,13,5r3,0r3,0r2,0v13,0,25,-7,35,-21v10,-14,16,-31,16,-54r0,-12r0,-5r-1,-7v0,-13,-2,-19,-6,-19r-1,0v-1,0,-12,17,-35,50v-23,33,-35,52,-35,54r0,2","w":234},"\u00f9":{"d":"21,-189v0,-7,5,-11,16,-11v15,0,25,3,30,8v5,5,7,18,7,39r0,11r1,18v0,36,2,60,7,73v6,15,16,22,31,22v7,0,15,-2,22,-6v7,-4,12,-9,16,-17v6,-12,10,-32,10,-57v0,-12,-1,-24,-2,-38r-5,-31v0,-14,13,-21,39,-21v4,0,7,1,8,4v1,3,2,12,2,26r-2,79v0,24,1,41,5,51v4,10,6,16,6,18v0,2,-1,4,-3,6v-5,5,-12,7,-21,7v-9,0,-18,-2,-24,-6v-6,-4,-9,-7,-11,-7v-2,0,-4,1,-8,3r-5,3v-14,9,-28,14,-40,14v-25,0,-43,-10,-54,-29v-7,-13,-10,-39,-10,-80v0,-32,-3,-52,-8,-62v-5,-10,-7,-15,-7,-17xm64,-289r0,-2v0,-3,4,-5,12,-5r5,0v10,0,19,4,26,10v1,1,11,13,30,38v5,6,7,11,7,14v0,2,-2,3,-6,3r-4,0v-7,0,-14,-4,-22,-10v-32,-25,-48,-40,-48,-48","w":236},"\u00fa":{"d":"26,-176v-3,-6,-5,-10,-5,-14v0,-6,5,-9,15,-9v18,0,30,3,34,11v3,6,5,27,5,63v0,36,2,61,7,74v5,15,15,22,31,22v7,0,14,-2,21,-6v7,-4,13,-9,17,-17v7,-12,10,-31,10,-56v0,-12,-1,-25,-2,-39r-5,-31v0,-7,3,-13,9,-16v6,-3,15,-5,29,-5v5,0,8,1,9,4v2,3,3,10,3,22v0,11,-1,25,-2,43v-1,11,-1,25,-1,41v0,24,1,40,5,50v4,10,5,15,5,16v0,10,-10,15,-29,15v-7,0,-13,-2,-18,-7v-5,-5,-9,-7,-11,-7v-2,0,-4,1,-8,3r-4,3v-5,3,-9,5,-10,6v-11,6,-21,8,-31,8r-5,0v-11,0,-21,-3,-29,-8v-8,-5,-14,-12,-19,-20v-7,-12,-11,-33,-11,-64v0,-31,-1,-51,-3,-60v-2,-9,-4,-16,-7,-22xm92,-234v0,-7,12,-23,36,-50v7,-8,15,-12,25,-12r2,-1r6,0v8,0,12,2,12,6v0,8,-16,25,-48,50v-9,7,-17,10,-26,10v-4,0,-7,-1,-7,-3","w":236},"\u00fb":{"d":"19,-190v0,-7,5,-10,15,-10v18,0,30,3,34,11v3,5,4,26,4,62v0,36,3,61,8,75v5,15,16,22,31,22v7,0,14,-2,21,-6v7,-4,13,-9,17,-17v7,-13,10,-35,10,-68v0,-14,-2,-26,-4,-37v-2,-11,-3,-18,-3,-21v0,-14,12,-21,38,-21v5,0,8,2,9,5v1,3,3,11,3,28r-3,76v0,25,1,41,5,51v4,10,6,15,6,17v0,9,-10,14,-30,14v-6,0,-11,-2,-17,-7v-6,-5,-9,-6,-11,-6v-2,0,-5,1,-9,3r-4,2v-5,3,-9,5,-10,6v-10,5,-21,8,-31,8r-5,0v-9,0,-18,-2,-27,-7v-9,-5,-17,-12,-23,-23v-6,-11,-9,-32,-9,-63v0,-31,0,-51,-2,-59v-2,-8,-5,-15,-8,-21v-3,-6,-5,-11,-5,-14xm55,-236v0,-2,2,-5,5,-9v21,-25,34,-40,38,-44v4,-4,10,-7,18,-7v8,0,15,4,21,9v6,5,14,14,24,28v10,14,16,22,16,24v0,2,-3,2,-11,2v-8,0,-18,-5,-31,-17v-13,-12,-20,-18,-21,-18v-1,0,-9,7,-23,21v-9,9,-17,13,-25,13v-8,0,-11,0,-11,-2","w":234},"\u00fc":{"d":"21,-189v0,-7,5,-10,16,-10v15,0,25,3,30,8v5,5,7,18,7,39r0,11r1,17v0,37,2,62,7,74v6,15,17,22,32,22v7,0,14,-2,21,-6v7,-4,13,-10,17,-18v6,-12,10,-30,10,-55v0,-12,-1,-25,-3,-40r-4,-31v0,-7,3,-13,9,-16v6,-3,15,-5,29,-5v5,0,8,1,9,4v1,3,2,12,2,25r0,20v0,2,-1,6,-1,11r0,5v-1,14,-2,29,-2,46v0,24,2,40,6,50v4,10,5,16,5,18v0,2,-1,4,-3,6v-4,4,-13,7,-26,7v-6,0,-12,-3,-18,-7v-6,-4,-10,-6,-12,-6v-2,0,-5,1,-11,5v-16,10,-30,14,-42,14r-6,0v-11,0,-21,-2,-29,-8v-8,-6,-15,-12,-19,-20v-7,-13,-11,-39,-11,-80v0,-31,-2,-52,-7,-62v-5,-10,-7,-16,-7,-18xm58,-257r0,-7r1,-5v0,-10,5,-14,14,-14r5,-1r4,0v11,0,17,6,17,18r0,6r-2,8v0,9,-6,13,-19,13r-4,0r-1,0r-2,0v-8,0,-13,-7,-13,-18xm137,-258r0,-5r1,-7v0,-9,5,-13,14,-13v2,-1,5,-1,9,-1r6,1v7,0,10,4,10,12r0,4r0,7r0,5r0,4v0,0,-1,4,-4,7v-3,3,-7,5,-13,5r-7,0v-10,0,-15,-3,-15,-11v-1,-2,0,-4,0,-4","w":235},"\u00fd":{"d":"24,-189v0,-8,10,-13,31,-13v12,0,20,5,24,14v2,3,3,10,4,21v1,11,3,23,7,37v13,47,20,70,22,70v5,0,13,-23,25,-67v6,-23,9,-42,9,-57v0,-12,8,-19,22,-19v8,0,13,1,17,3v4,2,5,6,5,11v0,5,-2,13,-8,24v-6,11,-11,23,-15,36v-30,93,-50,148,-58,164v-17,32,-37,48,-58,48r0,0r-5,0v-14,0,-22,-4,-22,-11v0,-5,2,-10,5,-13v3,-3,11,-6,21,-9v10,-3,18,-9,24,-16v10,-12,15,-25,15,-41v0,-8,-7,-32,-22,-72v-15,-40,-24,-62,-26,-66v-12,-25,-17,-40,-17,-44xm85,-235v0,-7,12,-23,35,-50v7,-8,16,-13,27,-13r5,0v9,0,13,2,13,6v0,8,-15,24,-46,48v-10,8,-20,12,-29,12v-4,0,-5,-1,-5,-3","w":213},"\u00fe":{"d":"30,-274v0,-7,6,-11,19,-11r5,0v13,0,21,4,24,11v2,4,3,18,3,41v0,23,3,35,8,35v2,0,3,-1,6,-2r4,-1v11,-5,22,-7,34,-7v12,0,23,2,33,8v10,6,18,14,24,23v13,18,19,40,19,68v0,32,-8,59,-24,80v-7,9,-16,16,-26,22v-10,6,-22,9,-34,9r-15,0v-7,0,-14,1,-19,5v-5,4,-7,9,-7,15v0,6,1,14,5,21v4,7,5,12,5,17v0,5,-3,8,-11,12v-8,4,-17,6,-27,6r-5,0v-8,0,-14,-1,-17,-3v-3,-2,-3,-6,-3,-9v0,-3,0,-7,3,-13v3,-6,5,-12,6,-17v5,-18,8,-66,8,-142r0,-18r-1,-6r0,-12r0,-36v0,-15,-1,-30,-3,-46v-2,-16,-4,-25,-5,-29xm86,-92r0,3r1,17r0,4v0,13,3,22,9,30v6,8,14,12,24,12r7,0v11,0,22,-6,30,-20v8,-14,12,-33,12,-57r0,-2r0,-12v0,-15,-4,-29,-12,-41v-8,-12,-19,-18,-30,-18r-5,0v-11,0,-20,6,-28,18v-5,7,-7,21,-7,38r-1,4r0,4r0,12r0,8","w":238},"\u00ff":{"d":"26,-186v0,-6,3,-10,7,-12v4,-2,12,-3,23,-3v11,0,20,5,24,13v2,3,3,9,4,20v1,11,6,31,14,61v8,30,13,45,15,45v5,0,13,-23,26,-69v5,-20,8,-35,8,-46v0,-11,2,-17,5,-20v3,-3,8,-5,15,-5r5,0v13,0,19,5,19,14v0,4,-3,12,-9,23v-6,11,-10,23,-14,35v-36,103,-55,158,-59,165v-8,15,-17,26,-27,34v-10,8,-20,11,-29,11v-17,0,-26,-4,-26,-13v0,-8,6,-13,19,-17v13,-4,22,-10,28,-17v10,-12,16,-25,16,-40v0,-10,-7,-34,-22,-74v-15,-40,-23,-61,-24,-63v-12,-26,-18,-40,-18,-42xm54,-257r0,-4r1,-7v0,-9,4,-14,13,-14v2,-1,5,-1,8,-1r0,0v11,0,17,5,17,14r1,3r0,1r0,3r0,3r0,1r0,1r-2,7v0,8,-6,13,-18,13r-2,0v-11,0,-17,-4,-17,-13v0,-1,-1,-4,-1,-7xm134,-255r0,-7v0,-7,1,-12,4,-15v3,-3,6,-5,10,-5r6,-1r1,0r5,1r1,0v8,0,11,4,11,12r1,1r0,1r0,7r0,1r0,1r0,6v0,5,-2,9,-6,12v-4,3,-8,4,-15,4v-7,0,-12,-2,-15,-5v-3,-3,-3,-7,-3,-13","w":215},"\u0131":{"d":"30,-17v0,-2,1,-7,5,-14v4,-7,7,-14,8,-22v1,-8,2,-25,2,-52v0,-27,-2,-44,-3,-51v-2,-7,-4,-14,-8,-20v-4,-6,-5,-11,-5,-15v0,-4,2,-8,7,-9v6,-2,15,-2,26,-2r5,-1v8,0,13,3,15,9v1,2,1,16,1,41r0,66r1,9r0,12v0,0,1,11,2,16v1,5,4,10,7,17v3,7,5,13,5,18v0,5,-5,9,-13,13v-3,2,-10,3,-21,3r-6,0v-19,0,-28,-6,-28,-18","w":125},"\u0141":{"d":"25,-120v0,-5,4,-11,11,-19v7,-8,12,-15,14,-21v2,-6,3,-18,3,-37v0,-19,-1,-31,-3,-37v-2,-6,-5,-12,-8,-19v-3,-7,-4,-12,-4,-16v0,-4,1,-7,4,-10v5,-5,12,-7,22,-7r6,0v24,0,35,7,35,22v0,1,-1,4,-2,9r-4,15v-3,10,-4,19,-4,26v0,7,1,13,4,17v2,4,7,6,14,6v1,0,3,-1,8,-3v5,-2,10,-3,13,-3v7,0,10,4,10,11v0,6,-7,15,-21,27v-14,12,-22,21,-25,27v-3,6,-5,21,-5,44v0,23,2,39,7,46v5,7,15,10,32,10v17,0,34,-3,53,-10v19,-7,30,-10,32,-10v8,0,12,7,12,22r0,6v0,10,-4,16,-11,19v-4,2,-15,2,-33,2r-13,0r-13,1r-66,0v-21,0,-35,-1,-42,-3v-7,-2,-11,-7,-11,-13v0,-3,1,-8,3,-14v2,-6,3,-12,5,-18v2,-6,3,-16,3,-30v0,-14,-1,-21,-2,-23v-1,-2,-5,-4,-10,-4v-5,0,-9,-1,-11,-3v-2,-2,-3,-5,-3,-10","w":244},"\u0142":{"d":"21,-128v0,-6,3,-12,9,-18v11,-12,17,-19,19,-24v2,-5,2,-16,2,-34v0,-29,-1,-49,-6,-60v-5,-11,-7,-17,-7,-18v0,-5,2,-9,6,-11v4,-2,10,-4,20,-4r8,0v6,0,10,2,13,6v3,4,4,13,4,27r0,4r0,9r1,9r0,21v0,0,0,13,2,17v2,4,5,7,9,7r14,-3v4,0,7,3,7,9v0,6,-4,14,-13,23v-9,9,-15,16,-17,22v-2,6,-3,17,-3,32v0,15,0,30,3,44v3,14,7,26,11,34v4,8,6,15,6,19v0,4,-2,7,-7,11v-5,4,-12,6,-20,6r-9,0v-19,0,-28,-8,-28,-22r3,-24v1,-6,1,-16,1,-31v0,-15,-1,-25,-3,-29v-2,-4,-8,-7,-15,-10v-7,-3,-10,-6,-10,-12","w":143},"\u0152":{"d":"36,-146v0,-22,3,-41,9,-59v11,-34,32,-58,61,-72v16,-8,32,-12,48,-12r9,0v12,0,24,1,37,3v14,2,26,2,38,2v7,0,14,0,21,-1v16,-2,30,-3,42,-3r2,0v12,0,24,4,35,9v11,5,17,11,17,17v0,3,-9,4,-27,4r-7,0r-11,0v-27,0,-44,4,-52,11v-8,8,-13,23,-13,46v0,16,7,25,21,25v6,0,14,-1,22,-3v8,-2,14,-4,16,-4v10,0,16,4,20,12v2,4,4,12,4,22v0,10,-2,18,-5,22v-3,4,-8,6,-12,6v-4,0,-11,-2,-19,-4v-8,-2,-17,-4,-25,-4v-17,0,-25,9,-25,26v0,30,4,49,12,58v6,7,20,10,42,10v13,0,25,-1,36,-2v11,-1,18,-2,20,-2v7,0,11,1,11,4v0,6,-7,13,-20,20v-13,7,-26,10,-40,10r-8,0v-1,0,-11,-1,-31,-3v-20,-2,-32,-2,-38,-2v-6,0,-16,0,-31,2v-15,2,-29,2,-44,2v-15,0,-30,-3,-45,-10v-15,-7,-28,-16,-39,-29v-11,-13,-19,-27,-24,-44v-5,-17,-7,-35,-7,-57xm77,-146v0,34,7,62,20,84v6,10,13,17,22,23v9,6,18,9,28,9r5,0v15,0,25,-5,31,-15v8,-14,12,-40,12,-77r0,-6r1,-7r0,-6r0,-7r0,-4r0,-6r-1,-7r0,-16v0,-31,-4,-53,-11,-66v-6,-10,-17,-16,-31,-16r-5,0v-9,0,-18,3,-27,8v-9,5,-17,14,-23,24v-14,23,-21,51,-21,85","w":396},"\u0153":{"d":"22,-105r0,-6r0,-1v0,-10,2,-20,6,-31v8,-22,23,-37,44,-47v12,-6,26,-9,41,-9r6,0v18,0,35,6,50,17v9,6,14,9,16,9v2,0,6,-2,13,-7v16,-12,34,-18,54,-18v25,0,44,7,59,21v15,14,22,31,22,49v0,12,-6,20,-15,24v-6,2,-23,5,-50,6v-27,1,-42,2,-46,3v-8,2,-12,8,-12,17v0,9,5,18,14,27v9,9,20,14,34,14v10,0,22,-2,34,-7v20,-8,30,-11,31,-11v4,0,7,2,7,7v0,8,-7,17,-22,25v-15,8,-30,12,-46,12v-23,0,-41,-5,-54,-13v-13,-8,-19,-12,-20,-12v-4,0,-8,1,-12,4v-12,8,-18,12,-19,12v-12,6,-25,9,-40,9v-28,0,-51,-9,-69,-27v-18,-18,-26,-40,-26,-67xm71,-105r0,2v0,23,4,43,13,56v9,13,20,20,32,20v12,0,22,-6,30,-19v8,-13,11,-29,11,-50r0,-14v0,-20,-3,-37,-11,-51v-8,-14,-17,-20,-29,-20r-5,0v-10,0,-20,6,-29,19v-9,13,-12,30,-12,52r0,5xm208,-134v0,3,4,5,11,5r18,0r2,0r38,-1r5,-1v6,0,9,-2,9,-7r0,-2r0,-2r-1,-4v0,-8,-3,-15,-11,-22v-8,-7,-16,-10,-25,-10r-5,0v-10,0,-20,5,-28,13v-8,8,-13,16,-13,25r0,3r0,3","w":348},"\u0160":{"d":"21,-51v0,-13,3,-20,11,-20v4,0,11,5,21,14v10,9,21,16,31,21v10,5,22,7,36,7v14,0,26,-4,36,-12v10,-8,14,-17,14,-28v0,-16,-6,-29,-19,-39v-7,-5,-24,-14,-51,-26v-27,-12,-45,-24,-56,-36v-11,-12,-16,-28,-16,-48v0,-9,3,-18,7,-28v4,-10,11,-19,20,-26v15,-12,35,-18,59,-18r7,0v5,0,13,0,22,2v9,2,17,4,25,5v8,1,14,3,18,5v11,7,16,17,16,33v0,12,-5,18,-13,18v-3,0,-9,-4,-18,-12v-9,-8,-18,-13,-27,-17v-9,-4,-19,-6,-31,-6v-12,0,-22,3,-31,10v-9,7,-14,16,-14,27v0,14,7,26,21,36v7,5,24,13,49,24v25,11,42,20,50,29v8,9,14,17,18,26v4,9,5,20,5,32v0,22,-8,41,-25,56v-17,15,-39,22,-65,22r-8,0v-3,0,-15,-2,-36,-5v-21,-3,-33,-6,-36,-8v-5,-3,-10,-9,-14,-16v-4,-7,-6,-14,-6,-22xm56,-369v0,-2,3,-3,11,-3v9,0,21,5,34,17v12,10,18,16,19,16v1,0,5,-4,12,-10v7,-6,10,-10,12,-11v10,-8,19,-12,27,-12v8,0,11,1,11,3v0,2,-1,5,-5,9v-16,19,-29,33,-39,42v-4,4,-9,5,-14,5r0,0r-9,0v-6,0,-13,-3,-18,-8v-27,-25,-41,-41,-41,-48","w":234},"\u0161":{"d":"20,-35r0,-5v0,-10,4,-15,12,-15v2,0,7,3,14,8v7,5,13,8,16,10v12,7,23,11,34,11v11,0,20,-3,26,-8v6,-5,9,-12,9,-20v0,-8,-6,-15,-16,-22v-2,-2,-13,-7,-33,-16v-20,-9,-36,-18,-44,-26v-8,-8,-12,-21,-12,-36v0,-15,7,-27,19,-37v12,-10,29,-15,51,-15v22,0,39,3,51,8v9,4,14,13,14,27v0,9,-3,13,-10,13v-2,0,-10,-4,-23,-12v-13,-8,-27,-11,-41,-11v-7,0,-13,2,-18,6v-5,4,-8,11,-8,18v0,7,4,13,11,18v7,5,21,12,39,19v18,7,31,14,39,21v12,11,18,24,18,40v0,16,-6,30,-19,41v-13,11,-31,16,-54,16v-23,0,-42,-3,-58,-9v-11,-4,-17,-12,-17,-24xm35,-293v0,-2,4,-3,12,-3v8,0,17,5,27,15v14,14,21,21,23,21v2,0,7,-4,15,-13v8,-9,14,-15,18,-18v4,-3,10,-4,17,-4v7,0,10,1,10,3v0,2,-5,9,-15,22v-10,13,-17,22,-24,28v-7,6,-14,9,-22,9v-8,0,-14,-1,-19,-6v-1,-1,-12,-16,-36,-44v-4,-5,-6,-8,-6,-10","w":188},"\u0178":{"d":"24,-273v0,-7,2,-12,8,-14v4,-2,13,-2,27,-2v14,0,24,3,29,10v2,3,3,8,4,16v1,8,2,17,6,26v19,49,32,73,38,73v5,0,18,-26,40,-79v3,-7,5,-15,7,-24r3,-14v3,-6,11,-9,24,-9r6,0v14,0,21,4,21,12r0,4v0,2,-6,11,-17,25v-4,5,-11,18,-23,39v-12,21,-22,41,-31,60v-9,19,-13,38,-13,57v0,19,0,32,1,37v1,5,3,12,6,19v3,7,4,11,4,14v0,7,-3,13,-10,17v-5,3,-12,4,-20,4r-16,0v-7,0,-13,-1,-18,-5v-5,-4,-6,-9,-6,-15v0,-2,2,-7,5,-14v3,-7,5,-14,7,-22v2,-8,2,-21,2,-37v0,-16,-4,-35,-14,-55r-30,-59v0,0,-17,-31,-21,-36v-13,-17,-19,-26,-19,-28xm73,-340r1,-6v0,-4,2,-8,5,-11v3,-3,6,-5,10,-5v2,-1,4,-1,4,-1r6,0v10,0,15,4,15,12v0,1,1,4,1,7r0,4v0,7,-1,13,-5,17v-4,4,-10,6,-19,6r-6,-1v-7,0,-11,-5,-11,-13v-1,-2,-1,-5,-1,-9xm153,-338r0,-2r1,0r0,-6r0,-1v0,-9,5,-14,15,-14v1,0,2,-1,5,-1r6,0r5,1v7,0,10,3,10,11v1,2,1,3,1,4r0,8v0,7,-1,12,-5,16v-4,4,-8,5,-12,5r-4,1r-5,0v-2,-1,-3,-1,-5,-1v-7,0,-11,-5,-11,-14r0,-3r0,-2","w":260},"\u017d":{"d":"21,-19v0,-10,24,-50,72,-119v48,-69,72,-106,72,-112v0,-6,-10,-9,-31,-9v-28,0,-52,3,-72,10v-12,4,-19,7,-23,7v-8,0,-12,-7,-12,-20v0,-13,6,-20,18,-24v5,-2,34,-3,85,-3r52,0v18,0,29,1,34,3v5,2,8,6,8,12v0,11,-24,51,-72,119v-48,68,-71,105,-71,112v0,7,11,10,33,10v22,0,39,-1,51,-4v12,-3,23,-6,32,-9v9,-3,17,-6,21,-6v4,0,8,2,10,5v2,3,3,8,3,15v0,7,-3,12,-7,17v-4,5,-10,7,-17,9v-7,2,-35,3,-84,3r-54,0v-22,0,-35,-2,-40,-4v-5,-2,-8,-6,-8,-12xm64,-370v0,-3,5,-4,13,-4v8,0,18,5,30,16v12,11,19,16,21,16v0,0,9,-6,24,-19v10,-9,20,-13,31,-13v6,0,8,1,8,3r0,1v0,5,-15,21,-44,48v-5,5,-12,7,-20,7v-8,0,-14,-2,-19,-6v-30,-27,-44,-43,-44,-49","w":250},"\u017e":{"d":"20,-14r0,-4v0,-6,17,-32,52,-80v35,-48,52,-72,52,-74v0,-5,-7,-7,-21,-7v-14,0,-25,0,-32,2r-21,6v0,0,-12,3,-15,3v-7,0,-11,-6,-11,-17v0,-15,7,-22,22,-22r10,0r6,0r43,0v40,0,62,1,65,2v5,1,8,5,8,11v0,9,-17,36,-51,82v-34,46,-52,70,-52,73v0,5,8,7,23,7v19,0,36,-2,52,-7r9,-3v7,-2,12,-3,15,-3v7,0,10,5,10,15v0,10,-3,16,-8,20v-5,4,-15,6,-29,6r-5,0r-50,-1r-44,1v-19,0,-28,-4,-28,-10xm41,-297v0,-3,5,-4,13,-4v8,0,17,4,26,13v15,15,22,22,23,22v1,0,8,-5,20,-17v12,-12,22,-18,30,-18v8,0,12,1,12,3v0,9,-14,26,-43,52v-5,5,-11,8,-19,8v-8,0,-13,-3,-18,-7v-29,-27,-44,-43,-44,-52","w":201},"\u0192":{"d":"5,54v0,-13,6,-20,20,-21v7,0,13,0,16,-2v8,-4,14,-10,18,-19v4,-9,9,-28,14,-59v5,-31,7,-57,7,-77v0,-8,-2,-16,-7,-27v-5,-11,-7,-18,-7,-20v0,-2,3,-7,11,-14v8,-7,14,-13,18,-21r9,-27v0,0,12,-30,19,-38v14,-17,30,-26,49,-26v11,0,20,2,28,5v8,3,11,6,11,11v0,12,-6,18,-18,18r-17,-3v-10,0,-18,5,-25,14v-7,9,-10,21,-10,38v0,8,1,14,3,18v2,4,8,9,15,13v7,4,10,7,10,10v0,5,-6,11,-17,18v-11,7,-18,15,-22,24v-2,4,-7,28,-15,72v-8,44,-17,73,-24,86v-7,13,-16,23,-26,29v-10,6,-20,8,-31,8r-5,0v-8,0,-14,0,-18,-3v-4,-3,-6,-5,-6,-7","w":223},"\u02c6":{"d":"26,-248v0,-4,15,-20,44,-49v6,-6,14,-10,22,-10v8,0,16,3,23,10v28,26,42,42,42,49v0,3,-4,4,-12,4r-2,0v-8,0,-18,-5,-31,-17v-13,-12,-20,-17,-22,-17v-2,0,-8,5,-20,17v-12,12,-21,17,-29,17r-5,0v-7,0,-10,-1,-10,-4","w":183},"\u02c7":{"d":"33,-300v0,-3,3,-5,11,-5v8,0,19,6,34,19r22,19r26,-23v11,-10,21,-15,31,-15v6,0,9,2,9,4v0,7,-15,25,-46,53v-7,6,-14,9,-21,9v-8,0,-15,-3,-23,-10v-29,-27,-43,-44,-43,-51","w":197},"\u02c9":{"d":"30,-262r0,-6v0,-7,1,-11,3,-12v2,-1,22,-1,60,-1r54,0v5,0,8,3,8,8r0,9v0,7,-2,11,-5,11r-73,0r-29,0r-6,1v-8,0,-12,-3,-12,-10","w":184},"\u02d8":{"d":"28,-294v0,-3,3,-6,9,-6v6,0,12,4,18,11v6,7,12,12,17,15v5,3,13,4,24,4v11,0,19,-5,27,-13v11,-12,19,-17,23,-17r3,0v4,0,6,1,6,4v0,13,-6,25,-19,36v-13,11,-28,16,-42,16r-9,0v-14,0,-27,-5,-39,-16v-12,-11,-18,-22,-18,-34","w":182},"\u02d9":{"d":"64,-268r0,-5v0,-7,2,-13,6,-17v4,-4,7,-6,12,-6r5,-1r7,0v12,0,17,5,17,16r1,5r0,4v0,2,-1,3,-1,4v0,5,-1,9,-5,13v-4,4,-7,5,-12,5v-2,1,-6,1,-10,1r-6,-1v-8,0,-13,-4,-13,-12","w":175},"\u02da":{"d":"47,-280v0,-10,4,-19,12,-27v8,-8,17,-12,28,-12r8,0v8,0,17,3,24,10v7,7,11,14,11,23r0,6v0,8,-4,16,-12,24v-8,8,-18,12,-29,12r-5,0v-10,0,-19,-3,-26,-10v-7,-7,-11,-16,-11,-26xm70,-278r0,1r1,4v0,3,1,6,4,10v3,4,7,6,11,6v6,0,11,-3,15,-8v4,-5,6,-11,6,-19r-1,-6v0,-2,-2,-5,-5,-9v-3,-4,-6,-6,-9,-6r-5,0r-3,0v0,0,-4,3,-8,7v-4,4,-6,10,-6,16r0,4","w":173},"\u02db":{"d":"57,43v0,-11,4,-21,13,-32v9,-11,16,-16,23,-16r4,0v5,0,7,2,7,5r-10,16v-4,7,-6,13,-6,19v0,13,8,20,26,20v11,0,16,3,16,9v0,4,-2,6,-6,9v-4,3,-9,5,-16,5r-13,0r-4,0v-8,0,-16,-4,-23,-10v-7,-6,-11,-14,-11,-25","w":171},"\u02dc":{"d":"24,-262v0,-7,5,-15,15,-23v10,-8,19,-11,27,-11v8,0,19,3,33,9v14,6,23,10,28,10v5,0,11,-3,17,-9v6,-6,12,-8,17,-8v5,0,7,2,7,7v0,9,-5,17,-14,25v-9,8,-19,12,-28,12r-3,0v-7,0,-16,-3,-29,-9v-13,-6,-23,-10,-30,-10v-4,0,-9,3,-15,9v-6,6,-13,8,-19,8v-4,0,-6,-3,-6,-10","w":192},"\u02dd":{"d":"34,-249v0,-2,6,-12,16,-29v10,-17,16,-26,17,-27v7,-7,15,-10,25,-10r1,0v10,0,15,2,15,6v0,3,-1,7,-5,12v-16,20,-29,33,-37,41v-9,8,-16,11,-22,11r-3,0v-5,0,-7,-2,-7,-4xm102,-248v0,-3,2,-7,6,-12v4,-5,8,-12,15,-23v7,-11,11,-18,13,-21v6,-7,14,-10,23,-10r6,0r3,0v6,0,8,2,8,5v0,2,-2,6,-5,10v-23,27,-37,42,-43,47v-6,5,-11,7,-16,7v-6,0,-10,-1,-10,-3","w":186},"\u03a9":{"d":"27,-28r0,-7v0,-6,2,-9,6,-9r5,1r14,4v7,2,16,3,25,3v9,0,14,-2,14,-7v0,-4,-5,-13,-16,-26v-11,-13,-19,-25,-23,-34v-11,-22,-15,-42,-15,-61v0,-40,12,-71,36,-95v24,-24,55,-36,93,-36v35,0,63,11,86,32v24,22,36,52,36,91v0,33,-12,64,-35,93v-16,20,-23,31,-23,32v0,7,5,10,14,10v9,0,19,-1,29,-4v10,-3,15,-4,17,-4v3,0,5,4,5,12v0,8,-4,15,-13,21v-9,6,-22,9,-42,9v-20,0,-34,-1,-41,-4v-7,-3,-10,-7,-10,-12v0,-11,5,-25,16,-43v18,-29,28,-47,31,-54v6,-16,9,-32,9,-49v0,-12,-2,-24,-5,-36v-7,-27,-20,-46,-41,-56v-11,-5,-22,-7,-35,-7v-26,0,-47,9,-62,29v-14,19,-22,42,-22,72v0,20,4,39,11,56v2,6,9,20,21,40v12,20,18,35,18,44v0,9,-3,13,-10,16v-7,3,-18,4,-34,4r-10,0v-15,0,-25,-1,-32,-5v-11,-6,-17,-13,-17,-20","w":322},"\u03bc":{"d":"37,26r1,-13v1,-18,1,-27,1,-27r1,-27v1,-18,1,-29,1,-33r0,-14r0,-13r1,-14r0,-20v0,-4,-1,-11,-1,-19r-1,-25v0,-11,2,-18,5,-21v3,-3,8,-4,18,-4v10,0,15,3,18,9v3,6,4,18,4,36r0,13r-2,55v0,21,3,37,9,46v6,9,17,14,31,14v8,0,15,-3,23,-9v8,-6,14,-16,18,-29v4,-13,7,-45,7,-96v0,-13,1,-21,4,-26v5,-7,10,-10,18,-10v8,0,13,1,16,6v3,5,5,15,5,31r-3,79v0,15,2,27,5,35r5,13v2,6,4,9,4,12v0,12,-7,19,-22,19v-6,0,-13,-2,-20,-6v-7,-4,-13,-6,-17,-6v-4,0,-13,3,-26,8v-13,5,-26,8,-42,8v-8,0,-14,3,-16,9v-1,3,-2,11,-3,26v-1,15,-3,25,-7,32v-4,7,-9,10,-17,10v-8,0,-12,-1,-14,-4v-3,-5,-5,-15,-5,-31v0,-4,1,-9,1,-14","w":260},"\u03c0":{"d":"26,-175v0,-10,8,-18,26,-23v18,-5,50,-7,96,-7r12,0r19,0r31,-1v18,0,27,3,27,11r0,4v0,6,-4,12,-13,19v-9,7,-16,15,-19,23v-3,8,-4,24,-4,48v0,24,1,40,3,48v2,8,6,15,11,20v5,5,8,8,8,11v0,3,-2,6,-6,9v-4,3,-10,5,-21,5v-11,0,-19,-7,-25,-20v-6,-13,-10,-33,-10,-61r3,-56v0,-10,-2,-17,-7,-21v-5,-4,-15,-6,-29,-6v-14,0,-23,4,-25,11r-8,64v-4,32,-7,52,-10,62v-3,10,-6,17,-9,21v-3,4,-8,6,-15,6v-9,0,-14,-3,-14,-10r11,-51v4,-23,6,-45,6,-65v0,-16,-7,-25,-21,-27v-8,-1,-13,-3,-15,-4v-2,-1,-2,-5,-2,-10","w":265},"\u2013":{"d":"16,-111r0,-10v0,-5,2,-8,5,-9v3,-1,11,-2,24,-2r134,0v15,0,24,0,27,1v3,1,5,4,5,9r0,6v0,6,-1,10,-4,11v-3,1,-10,2,-22,2r-61,0r-30,0r-52,0v-17,0,-26,-3,-26,-8","w":227},"\u2014":{"d":"14,-113r0,-7v0,-5,3,-9,9,-10v6,-1,35,-2,86,-2r15,0r4,1r65,0r160,0v8,1,11,5,11,11v0,9,-1,14,-3,15v-2,1,-6,2,-11,2v-5,0,-60,1,-166,1r-7,0r-23,0r-84,0v-28,0,-44,0,-48,-1v-5,-1,-8,-4,-8,-10","w":377},"\u2018":{"d":"47,-226r0,-2v0,-15,3,-28,9,-39v6,-11,13,-20,20,-25v7,-5,13,-9,17,-9v4,0,5,2,5,6v0,4,-1,7,-5,12v-9,12,-14,23,-14,33v0,1,3,5,9,12v6,7,9,16,9,25v0,15,-7,22,-21,22r-4,0v-9,0,-16,-2,-20,-7v-4,-5,-5,-14,-5,-28","w":130},"\u2019":{"d":"33,-196r0,-3v0,0,2,-5,9,-15v7,-10,10,-18,10,-25v0,-1,-3,-5,-8,-13v-5,-8,-8,-17,-8,-25v0,-16,7,-23,21,-23r6,0v7,0,12,2,16,5v4,3,6,10,6,20r0,11v0,3,-1,6,-1,8v0,14,-5,29,-16,44v-11,15,-20,21,-28,21r-3,0v-3,0,-4,-2,-4,-5","w":130},"\u201a":{"d":"33,45r9,-15v0,0,9,-19,9,-26v0,-2,-2,-5,-4,-8v-2,-3,-4,-8,-6,-12v-2,-4,-3,-10,-3,-18v0,-8,2,-13,5,-17v3,-4,8,-6,13,-6r6,0v8,0,13,2,17,5v4,3,6,9,6,17r0,10r-1,1r0,5r0,6v0,12,-5,26,-15,42v-10,16,-19,25,-28,25r-3,0v-4,0,-5,-3,-5,-9","w":120},"\u201c":{"d":"46,-224r0,-8v0,-15,3,-30,12,-44v5,-8,11,-15,18,-19v7,-5,11,-7,15,-7v4,0,6,3,6,8v0,1,-4,7,-10,16v-6,9,-9,17,-9,24v0,6,2,10,7,14v7,6,10,15,10,28v0,13,-6,20,-20,20r-6,0v-8,0,-14,-2,-18,-7v-4,-5,-5,-13,-5,-25xm125,-221r0,-12v0,-2,1,-4,1,-5v0,-14,4,-27,13,-39v12,-17,22,-25,30,-25v4,0,5,1,5,5v0,3,-2,8,-5,12v-10,12,-15,24,-15,33v0,4,2,7,5,10r6,6v5,8,7,15,7,22v0,14,-6,22,-19,22r-6,0v-15,0,-21,-9,-21,-26","w":195},"\u201d":{"d":"27,-197r0,-3v0,0,4,-5,10,-15v6,-10,9,-18,9,-26v0,-1,-3,-6,-10,-16v-4,-5,-6,-12,-6,-21v0,-9,3,-15,7,-18v4,-3,9,-5,18,-5v9,0,15,2,19,6v4,4,6,12,6,27r-1,2r0,8v0,15,-6,29,-17,44v-11,15,-21,23,-29,23v-4,0,-6,-2,-6,-6xm105,-196r0,-3v0,-2,2,-4,6,-9v4,-5,6,-8,7,-10v5,-8,8,-15,8,-23v0,-1,-3,-5,-8,-12v-5,-7,-8,-15,-8,-25v0,-15,7,-23,20,-23r6,0v8,0,13,2,16,6v3,4,4,11,4,21r0,7v0,15,-3,28,-10,41v-7,13,-14,22,-21,27v-7,5,-12,8,-15,8v-3,0,-5,-2,-5,-5","w":195},"\u201e":{"d":"49,45v0,-2,2,-5,5,-10v3,-5,6,-8,6,-9v4,-8,6,-15,6,-21v0,-4,-1,-7,-3,-10r-5,-7v-3,-6,-5,-13,-5,-21v0,-8,2,-14,5,-18v3,-4,10,-6,19,-6v9,0,16,1,20,5v3,-4,8,-5,16,-5v8,0,14,1,17,4v3,3,5,8,5,15r1,3r0,6r0,1r0,2r-1,8v0,12,-3,24,-10,37v-7,13,-13,21,-19,26v-6,5,-11,8,-13,8r-2,0v-3,0,-5,-2,-5,-6r0,-3v0,-1,1,-4,5,-9v9,-12,14,-22,14,-31r-5,-10v-2,10,-5,20,-11,29v-12,20,-24,30,-34,30v-4,0,-6,-3,-6,-8","w":187},"\u2020":{"d":"40,-192v0,-7,1,-12,4,-14v3,-2,8,-3,15,-3r27,1v8,0,12,-4,12,-14r-4,-51v0,-8,1,-14,4,-17v3,-3,8,-4,16,-4v8,0,13,1,15,5v2,4,2,10,2,19r-3,51v0,8,5,12,15,12r26,-3v11,0,17,6,17,16v0,7,-2,12,-7,15v-5,3,-13,4,-24,4v-11,0,-19,2,-22,7v-3,5,-4,19,-4,40r1,25r-1,5r0,10r0,6r0,10r-1,11r0,26r0,34v0,18,-1,28,-2,33v-2,7,-7,11,-14,11v-7,0,-12,-4,-13,-13v-1,-7,-2,-29,-2,-67r-1,-48r0,-10r0,-11r0,-8r0,-17r0,-14v0,-13,-2,-22,-6,-25v-4,-3,-11,-5,-22,-5v-19,0,-28,-6,-28,-17","w":226},"\u2021":{"d":"41,-201v0,-10,7,-15,20,-15r22,1v6,0,10,-1,12,-3v2,-2,3,-9,3,-18r-3,-39v0,-8,1,-13,4,-16v3,-3,9,-4,16,-4v7,0,11,2,13,5v2,3,3,9,3,18r-2,39v0,7,1,13,3,15v2,2,7,3,14,3r22,-1v11,0,17,4,17,12v0,8,-2,13,-6,16v-4,3,-12,4,-23,4v-11,0,-17,2,-21,5v-4,3,-6,11,-6,23v0,32,4,54,10,67v3,6,8,10,17,11v9,1,14,3,16,4v4,2,6,6,6,12v0,6,-2,10,-6,13v-4,3,-11,5,-21,6v-10,1,-16,3,-19,6v-3,3,-4,10,-4,22r2,39v0,8,-1,15,-3,18v-2,3,-7,5,-14,5v-7,0,-12,-2,-14,-6v-2,-4,-3,-10,-3,-18r2,-46v0,-6,-1,-11,-4,-14v-3,-3,-10,-5,-19,-6v-9,-1,-16,-4,-20,-7v-4,-3,-6,-8,-6,-14v0,-7,6,-11,17,-13v11,-2,19,-7,22,-14v6,-14,10,-36,10,-68v0,-10,-1,-16,-4,-19v-3,-3,-12,-5,-28,-5v-16,0,-25,-6,-25,-18","w":227},"\u2022":{"d":"48,-135r0,-6v0,-14,5,-27,15,-38v10,-11,20,-16,32,-16r7,0v13,0,23,6,33,17v10,11,15,25,15,41v0,16,-5,29,-15,40v-10,11,-21,17,-33,17r-6,0v-12,0,-23,-5,-33,-16v-10,-11,-15,-24,-15,-39","w":196},"\u2026":{"d":"40,-36r0,-5r1,-1r0,-4v0,-7,3,-12,7,-16v4,-4,10,-5,18,-5v16,0,23,6,23,19r1,6r0,3r-1,7v0,5,-1,10,-5,14v-4,4,-8,6,-13,6r-6,0r-2,0r-1,0r-4,0v-5,0,-10,-2,-13,-6v-3,-4,-5,-10,-5,-18xm161,-38v0,-11,2,-17,6,-22v4,-5,11,-7,20,-7v9,0,15,3,18,7v3,4,5,9,5,16r0,8r0,4v0,6,-3,11,-7,15v-4,4,-10,5,-16,5r-4,0r-6,-1v-4,0,-7,-2,-10,-5v-3,-3,-5,-7,-5,-12r0,-3xm282,-34r0,-8v0,-2,1,-3,1,-4v0,-6,2,-12,6,-15v4,-3,9,-5,14,-5r5,-1r1,0r1,0v14,0,21,6,21,19r1,6r0,4r-1,6v0,5,-2,9,-5,13v-3,4,-8,6,-13,6r-6,1r-3,0v-14,0,-22,-7,-22,-22","w":368},"\u2030":{"d":"34,-218r0,-5v0,-20,4,-38,15,-53v5,-6,11,-12,18,-16v7,-4,15,-6,22,-6v2,0,2,1,4,1v15,0,27,6,36,19v9,13,14,29,14,48r0,5v0,20,-4,38,-14,52v-11,15,-24,23,-41,23r-5,0v-14,0,-25,-7,-35,-19v-10,-12,-14,-29,-14,-49xm67,-210v0,11,2,20,6,28v4,8,9,11,15,11r2,0v6,0,12,-5,18,-13v6,-8,8,-18,8,-29r1,-6r0,-4r0,-4r0,-2r0,-1r0,-6r-1,-7v0,-7,-2,-14,-6,-20v-4,-6,-10,-9,-17,-9v-7,0,-14,5,-19,15v-5,10,-7,22,-7,35r0,12xm68,-6v0,-9,54,-100,162,-270v8,-12,15,-18,23,-18v8,0,12,1,12,4v0,6,-53,95,-160,267v-9,14,-17,22,-25,22v-8,0,-12,-2,-12,-5xm184,-62r0,-12v0,-19,6,-36,16,-51v10,-15,23,-22,38,-22r6,0v14,0,25,6,35,18v10,12,14,28,14,47r0,10v0,21,-5,38,-16,52v-11,14,-23,21,-37,21r-8,0v-12,0,-23,-7,-33,-19v-10,-12,-15,-26,-15,-44xm213,-64r1,1r0,8v0,7,3,14,7,22v4,8,9,12,14,12r5,0v6,0,12,-4,16,-13v4,-9,6,-17,6,-25r0,-4r1,-7r0,-9r0,-1r-1,-7v0,-8,-2,-15,-6,-23v-4,-8,-10,-11,-15,-11r-4,0v-5,0,-10,3,-15,11v-5,8,-7,16,-7,25r-1,4r-1,8r0,9xm323,-61r0,-12v0,-21,6,-38,17,-52v11,-14,24,-21,40,-21v16,0,28,6,38,18v10,12,14,27,14,47r0,7v0,21,-5,39,-16,54v-11,15,-24,22,-40,22r-6,0v-13,0,-25,-6,-34,-19v-9,-13,-13,-27,-13,-44xm356,-63r0,1r0,6v0,2,1,3,1,4v0,7,2,14,6,21v4,7,10,10,17,10v7,0,12,-5,17,-13v5,-8,7,-17,7,-26v0,-2,1,-3,1,-4r0,-8r0,-6r0,-1r-1,-8v0,-9,-2,-17,-7,-24v-5,-7,-10,-11,-17,-11v-7,0,-12,5,-17,13v-5,8,-7,17,-7,27r0,2r0,1r0,5r0,11","w":449},"\u2039":{"d":"25,-113v0,-2,12,-17,37,-45v25,-28,41,-42,46,-42r2,0v5,0,7,3,7,8v0,5,-9,19,-27,42v-18,23,-26,35,-26,37v0,1,8,13,26,35v18,22,27,37,27,43v0,6,-3,9,-8,9r-2,0v-6,0,-22,-14,-46,-41v-24,-27,-36,-43,-36,-46","w":148},"\u203a":{"d":"31,-35v0,-6,9,-20,27,-42v18,-22,27,-33,27,-35v0,-2,-9,-14,-27,-36v-18,-22,-26,-37,-26,-43v0,-6,3,-9,9,-9v6,0,21,14,45,41v24,27,36,43,36,47v0,4,-12,19,-37,46v-25,27,-40,40,-45,40r-1,0v-5,0,-8,-3,-8,-9","w":147},"\u2044":{"d":"-44,3v0,-2,2,-7,7,-16r75,-132r75,-131v7,-11,14,-17,21,-17v7,0,11,1,11,4v0,1,-51,93,-155,276v-7,13,-15,20,-22,20v-8,0,-12,-1,-12,-4","w":101},"\u20ac":{"d":"23,-168v0,-4,4,-9,11,-16v7,-7,16,-18,27,-35v19,-29,40,-48,63,-56v12,-4,25,-6,37,-6v39,0,58,10,58,30v0,8,-4,12,-12,12v-1,0,-7,-2,-18,-4v-11,-2,-18,-4,-23,-4v-13,0,-25,4,-35,11v-10,7,-15,15,-15,22v0,7,2,12,6,15v4,3,11,6,22,8v11,2,18,3,21,4v7,3,10,7,10,12v0,5,-5,8,-14,10v-5,1,-17,3,-35,4v-18,1,-29,3,-31,4v-5,2,-8,7,-8,13v0,6,4,10,12,12v2,1,7,1,14,2r7,0v28,2,43,7,43,13v0,6,-4,11,-12,14r-6,2r-7,2r-6,1v-9,2,-15,6,-19,9v-4,3,-6,8,-6,15v0,9,7,17,19,25v12,8,26,12,41,12v7,0,16,-1,27,-3v11,-2,18,-3,20,-3v7,0,10,2,10,6v0,10,-7,18,-20,25v-13,7,-30,11,-52,11v-25,0,-47,-8,-66,-24v-9,-8,-16,-16,-20,-24v-4,-8,-10,-17,-14,-27v-4,-10,-6,-15,-8,-18v-2,-3,-6,-6,-12,-10v-6,-4,-8,-10,-8,-15v0,-2,3,-5,9,-10v6,-5,8,-7,8,-9v0,-7,-1,-13,-5,-17r-5,-3r-4,-2v-2,-2,-4,-4,-4,-8","w":253},"\u2122":{"d":"22,-276v0,-9,3,-14,9,-16v3,-1,19,-1,47,-1r36,0v7,0,13,1,16,3v3,2,4,7,4,15v0,8,-2,11,-6,11r-7,-2r-2,-1v-6,-2,-12,-3,-18,-3v-5,0,-7,4,-9,12v-1,4,-1,16,-1,37r0,42v0,0,2,13,4,19v2,6,4,10,4,12v0,6,-4,8,-12,8r-17,0v-9,0,-13,-3,-13,-10v0,-2,0,-4,2,-7v2,-3,2,-7,3,-9v2,-5,3,-21,3,-48v0,-27,0,-43,-1,-46v-2,-7,-6,-10,-11,-10v-4,0,-9,1,-16,4v-7,3,-11,4,-11,4v-3,0,-4,-5,-4,-14xm161,-153v0,0,1,-4,3,-10v4,-10,5,-28,5,-53r0,-43r-5,-24v0,-4,5,-6,14,-6v14,0,24,5,31,16v2,4,8,18,19,43r16,38v2,0,8,-12,18,-37v10,-25,17,-40,20,-44v7,-10,17,-16,30,-16v8,0,12,2,12,7r-2,9v-1,8,-2,22,-2,43v0,31,1,51,4,61v3,10,4,15,4,17v0,5,-5,7,-16,7v-13,0,-19,-6,-19,-20r1,-5r0,-5v1,-8,1,-22,1,-42v0,-20,-2,-30,-5,-30v-2,0,-7,15,-18,42v-11,27,-17,43,-20,47v-3,4,-6,7,-11,7v-5,0,-13,-17,-26,-49v-13,-32,-20,-48,-22,-48v-3,0,-4,17,-4,52r0,18r1,19v0,9,-6,13,-18,13v-8,0,-11,-2,-11,-7","w":354},"\u2202":{"d":"31,-75v0,-14,3,-28,9,-41v18,-41,48,-62,88,-62v5,0,11,1,19,3v8,2,13,3,14,3v8,0,11,-6,11,-19v0,-22,-5,-39,-17,-52v-12,-13,-27,-19,-45,-19v-6,0,-12,1,-19,2v-7,1,-13,2,-19,2v-7,0,-10,-4,-10,-11v0,-5,6,-9,17,-14v11,-5,22,-8,32,-8r5,0v28,0,50,13,67,38v14,22,21,52,21,90v0,19,-2,39,-7,59v-5,20,-12,37,-22,53v-21,33,-48,49,-80,49v-20,0,-36,-6,-47,-19v-11,-13,-17,-31,-17,-54xm74,-66r0,7v0,9,2,17,7,24v5,7,11,10,19,10v12,0,25,-10,38,-30v19,-30,29,-54,29,-73v0,-26,-13,-39,-39,-39r-5,0v-12,0,-24,10,-34,29v-10,19,-15,41,-15,64r0,8","w":231},"\u2206":{"d":"29,-10v0,-7,3,-20,11,-39r80,-216v6,-16,14,-24,22,-24v7,0,13,6,19,20v3,7,27,76,73,207v9,27,14,43,14,49v0,5,-4,8,-12,9v-8,1,-44,1,-104,1r-48,1r-31,0v-16,0,-24,-3,-24,-8xm67,-35v0,3,6,5,17,5r66,0v31,0,47,-2,47,-7v0,-7,-6,-27,-18,-61v-12,-34,-22,-65,-31,-94v-9,-29,-13,-43,-14,-43r-7,20r-51,150v0,0,-9,27,-9,30","w":274},"\u220f":{"d":"29,-284v0,-6,7,-10,20,-12v13,-2,40,-3,80,-3r100,0v22,0,37,2,46,4v9,2,13,6,13,11v0,2,-1,5,-4,11v-8,17,-13,36,-16,55v-3,19,-5,52,-5,97r-1,59v0,30,1,48,3,54v2,6,4,13,8,19v4,6,7,11,7,13v0,6,-5,11,-13,16v-8,5,-17,6,-25,6v-8,0,-15,-1,-20,-5v-5,-4,-7,-9,-7,-16r1,-7r1,-7r1,-8v2,-14,4,-50,4,-107r0,-20r0,-20r1,-50v0,-41,-3,-63,-10,-69v-5,-4,-20,-6,-46,-6v-26,0,-43,1,-51,2v-8,1,-14,5,-17,10v-4,8,-6,36,-6,84r1,20r0,60v0,43,0,69,1,80v1,11,2,19,3,25r3,14v0,7,-3,12,-8,15v-5,3,-12,5,-20,5v-8,0,-16,-1,-24,-6v-8,-5,-12,-10,-12,-16v0,-2,2,-7,6,-14v4,-7,8,-16,9,-26v1,-10,2,-29,2,-56r0,-10r0,-20r0,-10r0,-46r0,-4v0,-22,-2,-40,-4,-52v-3,-20,-8,-36,-13,-49v-5,-13,-8,-19,-8,-21","w":316},"\u2211":{"d":"26,30v0,-8,17,-35,52,-80v35,-45,51,-69,51,-72v0,-7,-16,-33,-49,-78v-33,-45,-49,-74,-49,-83v0,-7,6,-11,18,-14v6,-1,24,-2,51,-2r35,0r68,1v28,0,42,10,42,30v0,8,-2,11,-7,11v-4,0,-9,-1,-17,-4v-8,-3,-13,-4,-17,-5v-14,-3,-32,-4,-57,-4r-17,-1v-25,0,-38,3,-38,8v0,5,15,27,42,64v27,37,41,59,41,65v0,6,-16,30,-46,69v-30,39,-46,61,-46,66v0,6,4,10,12,12v5,1,19,1,43,1v40,0,68,-2,86,-8v10,-3,17,-5,21,-5v6,0,9,3,9,11v0,11,-4,21,-13,27v-9,6,-23,10,-41,10r-34,1r-44,0r-35,0v-25,0,-41,-1,-49,-4v-8,-3,-12,-8,-12,-16","w":277},"\u2212":{"d":"23,-115r0,-10v0,-7,3,-11,10,-11r180,0v8,0,12,3,12,8r0,11v0,7,-5,10,-13,10r-180,0v-7,0,-9,-3,-9,-8","w":247},"\u2219":{"d":"33,-126r0,-6r0,-7v0,0,2,-7,6,-11v4,-4,8,-7,14,-7v2,-1,4,-1,5,-1r6,0v17,0,25,9,25,26r0,6v0,7,-2,12,-6,17v-4,5,-9,8,-16,8r-4,1r-5,0v-9,0,-16,-3,-20,-8v-4,-5,-5,-11,-5,-18","w":121},"\u221a":{"d":"21,-144v0,-5,1,-9,5,-12v11,-8,22,-12,35,-12v8,0,15,4,20,11r26,50v0,0,26,47,30,47v4,0,15,-29,30,-88v15,-59,28,-101,38,-127v10,-26,18,-45,26,-58v8,-13,16,-19,24,-19v5,0,8,3,8,9v0,2,-6,16,-18,44v-12,28,-21,48,-26,64v-5,16,-16,56,-33,120v-17,64,-26,100,-28,106v-5,14,-10,21,-16,21r-4,0v-7,0,-15,-9,-25,-25v-6,-10,-17,-32,-33,-69v-16,-37,-27,-55,-33,-55r-4,0r-5,1r-5,0v-8,0,-12,-3,-12,-8","w":268},"\u221e":{"d":"29,-129v0,-18,6,-33,18,-45v12,-12,30,-18,50,-18v17,0,34,8,50,23v11,10,17,16,19,16v0,0,4,-5,13,-13v9,-8,18,-14,27,-19v9,-5,22,-8,37,-8v15,0,29,5,42,17v13,12,18,28,18,50v0,16,-6,31,-18,43v-12,12,-27,19,-44,19r-7,0v-17,0,-35,-8,-53,-25v-10,-10,-16,-15,-17,-15v-1,0,-4,3,-9,8r-13,13v-13,12,-30,18,-49,18r0,0v-19,0,-35,-7,-47,-19v-12,-12,-17,-27,-17,-45xm50,-125v0,9,5,17,14,24v9,7,17,11,26,11r7,0v6,0,17,-4,32,-14v15,-10,22,-18,22,-25v0,-7,-9,-16,-27,-27v-11,-7,-19,-10,-26,-10r-4,0v-11,0,-21,4,-30,12v-9,8,-14,16,-14,24r0,5xm175,-126v0,8,8,17,23,29v9,7,18,11,26,11r6,0v10,0,19,-5,27,-14v8,-9,12,-18,12,-28r0,-6v0,-10,-4,-18,-11,-26v-7,-8,-15,-12,-25,-12r-5,0v-10,0,-19,4,-29,13v-16,14,-24,25,-24,33","w":319},"\u222b":{"d":"21,45v0,-3,1,-7,5,-10v4,-3,8,-4,13,-4r18,4v11,0,18,-12,21,-35v1,-10,2,-41,2,-90r0,-121v0,-84,22,-126,65,-126v9,0,17,1,22,5v6,4,9,8,9,13v0,3,-1,6,-4,10v-3,4,-9,7,-15,7r-19,-4v-5,0,-8,3,-12,9v-4,6,-7,14,-8,25v-1,11,-1,57,-1,138v0,81,-3,132,-9,150v-6,18,-14,31,-23,39v-9,8,-20,11,-31,11v-11,0,-19,-2,-25,-6v-6,-4,-8,-8,-8,-11r0,-4","w":193},"\u2248":{"d":"26,-73v0,-11,8,-22,24,-32v11,-7,21,-11,32,-11r5,0v10,0,25,5,47,15v22,10,36,15,44,15v8,0,17,-4,28,-12v11,-8,17,-12,19,-12v6,0,9,5,9,13v0,8,-6,17,-18,27v-12,10,-25,15,-38,15v-13,0,-30,-5,-51,-15v-21,-10,-36,-15,-45,-15v-9,0,-17,4,-27,12v-10,8,-16,12,-19,12v-6,0,-10,-4,-10,-12xm26,-153r0,-2v0,-9,7,-19,20,-28v13,-9,25,-13,38,-13r4,0v10,0,25,5,46,15v21,10,35,14,43,14v8,0,16,-2,24,-8v3,-2,7,-5,11,-9v4,-4,7,-6,10,-7v3,-1,5,1,8,3v3,2,4,6,4,10v0,8,-6,16,-18,26v-12,10,-25,15,-37,15r-7,0v-11,0,-26,-5,-45,-15v-19,-10,-34,-15,-43,-15v-9,0,-17,3,-25,9v-14,11,-22,15,-22,15v-7,0,-11,-3,-11,-10","w":252},"\u2260":{"d":"29,-86v0,-5,4,-9,13,-11v4,-1,14,-1,30,-1v16,0,27,-3,32,-8v12,-13,19,-23,19,-34v0,-3,-13,-5,-39,-5v-26,0,-41,-1,-45,-2v-7,-2,-10,-7,-10,-15v0,-8,3,-13,9,-14v4,-1,20,-2,47,-2v27,0,44,-2,52,-7v5,-3,11,-12,18,-27v7,-15,14,-22,20,-22v8,0,12,2,12,8v0,4,-2,11,-5,19v-3,8,-5,13,-5,14v0,5,2,7,6,9v4,2,10,3,18,3v8,0,15,1,18,4v3,3,5,8,5,17v0,5,-5,9,-14,11v-4,1,-14,1,-30,1v-16,0,-28,3,-33,8v-12,14,-18,25,-18,35v0,3,13,4,39,4v26,0,41,1,45,2v7,2,11,7,11,15v0,8,-3,12,-9,13v-6,1,-21,2,-48,2v-27,0,-44,2,-52,7v-5,3,-11,13,-18,28v-7,15,-13,22,-19,22r-5,0v-5,0,-8,-4,-8,-12v0,-2,2,-7,5,-15v3,-8,4,-14,4,-16v0,-5,-5,-9,-14,-10v-15,-2,-23,-3,-25,-4v-5,-3,-6,-9,-6,-17","w":252},"\u2264":{"d":"25,-12v0,-8,2,-13,4,-14v3,-2,6,-2,12,-2v2,0,5,1,8,1r78,1v54,0,84,1,90,2v4,1,6,4,6,10r0,8v0,7,-5,10,-13,10r-20,0r-6,0r-14,0r-14,0r-11,-1r-14,0r-9,0v-52,0,-82,-1,-89,-2v-5,-1,-8,-5,-8,-13xm28,-151v0,-7,5,-13,16,-19r38,-19v2,-1,9,-4,19,-9r7,-3r50,-24v11,-5,11,-4,31,-14v13,-6,21,-10,24,-10v3,0,4,4,4,10v0,10,-7,19,-20,27v-13,8,-37,20,-73,36v-36,16,-53,24,-53,25v0,1,18,10,54,26v36,16,61,27,73,35v12,8,19,17,19,28v0,6,-2,10,-5,10r-82,-38v0,0,-85,-40,-92,-44v-7,-4,-10,-10,-10,-17","w":245},"\u2265":{"d":"27,-8r0,-4r0,-2v0,-6,2,-9,7,-10v7,-1,39,-2,94,-2r82,-2v9,0,14,3,14,9r0,10v0,6,-3,9,-9,9r-16,0r-23,1r-11,0r-12,0r-11,0r-12,0r-14,1r-9,0r-7,0r-9,0r-6,0r-16,1r-29,0v-9,0,-13,-4,-13,-11xm33,-237r0,-3v0,-6,2,-9,6,-9v2,0,8,4,19,9r73,35r76,36v9,5,13,11,13,17r0,4v0,6,-3,10,-10,14v-2,1,-22,11,-61,29v-39,18,-67,30,-83,39v-16,9,-25,13,-27,13v-4,0,-6,-4,-6,-12v0,-8,7,-17,19,-24v12,-7,36,-18,72,-35r54,-25r-60,-30r-67,-33v-12,-8,-18,-16,-18,-25","w":245},"\u25ca":{"d":"35,-143v0,-2,5,-13,16,-34r36,-69v13,-25,21,-39,24,-44v3,-5,6,-6,12,-6v6,0,12,5,18,16v47,83,70,127,70,135v0,5,-24,51,-72,139v-5,10,-11,15,-17,15v-6,0,-11,-4,-16,-13v-48,-84,-71,-131,-71,-139xm66,-146v0,1,15,34,46,99r6,12r2,5v2,4,4,6,4,6r16,-33r7,-17r6,-12r9,-20r12,-24v4,-8,5,-12,5,-13v0,-1,-16,-34,-47,-99r-9,-21v-1,0,-4,6,-9,17r-12,26r-3,4r-3,8r-14,29v-1,2,-1,5,-3,8r-3,4v-7,13,-10,20,-10,21","w":244}}}); +Cufon.registerFont({"w":238,"face":{"font-family":"Averia","font-weight":666,"font-stretch":"normal","units-per-em":"420","panose-1":"2 0 6 3 0 0 0 0 0 4","ascent":"327","descent":"-93","x-height":"3","bbox":"-46 -378 448 87","underline-thickness":"20.0977","underline-position":"-29.1211","unicode-range":"U+0020-U+25CA"},"glyphs":{" ":{"w":134},"!":{"d":"40,-261r0,-9v0,-10,3,-16,7,-19v4,-3,12,-5,22,-5r4,0v9,0,15,2,18,5v3,3,5,10,5,19r0,12r0,2r-1,20r-1,7r0,5r0,8r-5,51v-3,33,-3,49,-3,51v0,12,-2,19,-5,23v-3,4,-8,6,-15,6v-7,0,-11,-2,-13,-6v-4,-8,-5,-24,-5,-47r-1,-13r-1,-18r-1,-7r-1,-15r0,-5v0,-5,-1,-9,-1,-11r0,-5v0,-3,-1,-5,-1,-7r0,-6r-1,-10r0,-2r0,-10r-1,-2r0,-12xm42,-30r0,-4r1,-8v0,-5,2,-8,5,-11v3,-3,9,-5,16,-5v7,0,14,2,20,6v6,4,8,12,8,23r1,4r0,6r-1,10v0,8,-6,12,-16,12r-5,1v-9,0,-15,-3,-20,-7v-5,-4,-8,-10,-8,-17r0,-5","w":134},"\"":{"d":"28,-274r0,-8v0,-6,2,-10,5,-13v3,-3,9,-3,16,-3r8,0r4,0v9,0,13,5,13,15r0,5r0,1r0,5r-1,7r0,6v-1,7,-2,12,-2,14v0,25,-2,44,-8,56v-2,5,-8,8,-16,8v-8,0,-12,-6,-12,-17v-1,-5,-1,-9,-1,-11r-1,-14v-1,-7,-2,-11,-2,-14r0,-6r-1,-6r0,-1r0,-2r-1,-6r0,-2xm107,-276r0,-6v0,-6,1,-10,4,-13v3,-3,9,-3,17,-3r6,0v12,0,19,4,19,14r0,7r-1,2r0,6r-1,15v-1,4,-1,6,-1,7v0,26,-3,45,-9,58v-2,5,-7,8,-15,8v-8,0,-13,-6,-13,-17v-1,-4,0,-8,0,-10v-1,-6,-1,-5,-1,-9r-2,-18v-1,-6,-2,-11,-2,-13","w":181},"#":{"d":"24,-92v0,-8,1,-14,4,-17v3,-3,9,-6,19,-7v10,-1,16,-3,18,-7v4,-7,6,-16,6,-26v0,-10,-1,-15,-2,-17v-1,-2,-5,-3,-13,-5v-8,-2,-13,-2,-14,-3v-4,-2,-5,-7,-5,-14v0,-7,2,-11,5,-13v3,-2,9,-4,18,-6v9,-2,15,-4,18,-7v3,-3,6,-14,10,-32v4,-18,6,-28,7,-29v3,-5,11,-7,22,-7v6,0,9,3,9,9v0,4,-1,12,-4,28v-3,16,-4,25,-4,26v0,7,7,10,23,10v8,0,13,-2,15,-5v0,0,3,-9,6,-27v3,-18,6,-27,8,-31v3,-6,9,-9,18,-9v9,0,13,2,13,7v0,2,-1,9,-3,21v-2,12,-4,21,-4,27v0,6,1,10,3,12v2,2,8,5,15,8v7,3,10,6,10,10r0,5v0,5,-3,10,-8,14v-2,1,-7,3,-16,5v-9,2,-14,4,-17,9v-3,5,-5,17,-5,36v0,5,4,8,11,9v11,2,16,4,17,4v4,2,7,6,7,13v0,7,-3,12,-8,15v-1,1,-6,3,-15,4v-9,1,-16,4,-19,7v-3,3,-7,14,-10,32v-3,18,-6,28,-7,30v-3,6,-10,9,-21,9v-7,0,-11,-2,-11,-7v0,-3,2,-14,5,-31v3,-17,5,-27,5,-29v0,-5,-9,-8,-26,-8v-8,0,-12,3,-14,7v0,1,-2,9,-5,26v-3,17,-6,28,-8,33v-3,7,-9,11,-18,11v-9,0,-14,-5,-14,-13r4,-20v2,-12,4,-21,4,-28v0,-5,-1,-8,-2,-10v-1,-2,-5,-5,-14,-8v-9,-3,-13,-6,-13,-11xm96,-116r0,1r0,0v0,1,1,2,3,2r5,0r1,-1r5,0r5,0v3,-1,6,-1,7,-1r7,-1r2,0v7,0,10,-7,10,-18r0,-3r3,-12v0,-2,0,-6,2,-12v2,-6,3,-8,3,-10v0,-2,-1,-3,-3,-3r-5,0r-11,-1r-1,1r-6,0r-7,1v-7,0,-11,4,-11,12v0,5,-2,12,-5,23v-3,11,-4,19,-4,22","w":245},"$":{"d":"27,-44v0,-8,2,-13,5,-16v3,-3,7,-5,11,-5v4,0,13,5,24,14v11,9,21,14,30,14v5,0,8,-3,10,-9v2,-6,3,-18,3,-37v0,-19,-3,-31,-7,-36v-2,-3,-11,-9,-28,-19v-17,-10,-29,-21,-35,-31v-6,-10,-9,-23,-9,-38v0,-15,5,-29,15,-41v6,-8,14,-14,24,-19v3,-2,9,-3,18,-6v9,-3,14,-5,16,-7v2,-2,5,-7,7,-15v2,-8,5,-12,11,-12v5,0,9,2,12,5r3,3r4,8v3,5,8,8,14,11v18,8,29,15,34,20v5,5,8,10,8,17v0,7,-2,12,-5,15v-3,3,-7,5,-11,5v-4,0,-11,-4,-20,-11v-9,-7,-16,-10,-21,-10v-5,0,-9,3,-11,9v-2,6,-2,20,-2,39v0,9,2,16,5,21v3,5,13,12,29,22v31,19,47,41,47,66r0,7v0,18,-6,34,-18,47v-7,7,-13,13,-20,16v-7,3,-15,6,-23,9v-8,3,-14,5,-16,7v-2,2,-4,8,-6,18v-2,10,-5,14,-12,14v-6,0,-11,-3,-13,-10v-4,-9,-6,-14,-8,-16v-6,-5,-14,-9,-26,-13v-12,-4,-20,-8,-25,-13v-9,-8,-14,-15,-14,-23xm74,-213v0,9,3,17,10,25v7,8,13,12,18,12v2,0,3,-5,3,-16r0,-11r-1,-5r0,-2r0,-2r0,-5r0,-2r0,-7r0,-2r0,-4r0,-2r0,-1r0,-2r0,-2r1,-3v0,-4,-1,-5,-2,-5v-7,0,-14,3,-20,10v-6,7,-9,15,-9,24xm131,-39v0,5,1,8,3,8v7,0,14,-4,20,-11v6,-7,10,-15,10,-23r0,-8v0,-8,-4,-16,-11,-24v-7,-8,-13,-12,-18,-12v-2,0,-3,7,-3,22r0,25r0,3r0,7r0,2r0,2r0,2r0,4","w":237},"%":{"d":"30,-209r0,-12v0,-19,7,-37,19,-52v10,-12,22,-18,38,-18r5,0v17,0,31,6,42,19v11,13,16,29,16,50r0,5v0,20,-5,37,-15,53v-5,7,-11,13,-19,18v-8,5,-15,7,-22,7r-9,0v-15,0,-27,-7,-38,-21v-11,-14,-17,-30,-17,-49xm68,-209r0,2r1,6v0,8,2,16,6,23v4,7,10,11,16,11v6,0,10,-4,15,-12v5,-8,7,-19,7,-31r0,-10r0,-4r-1,-5v0,-9,-2,-17,-7,-23v-5,-6,-9,-9,-13,-9r-3,0r-1,0v-4,0,-7,3,-12,9v-5,7,-8,16,-8,28r0,6r0,9xm76,-1v0,-1,2,-5,6,-12v30,-57,81,-141,152,-254v9,-14,19,-21,29,-21v10,0,14,1,14,3v0,3,-1,8,-5,15v-48,85,-100,169,-153,253v-9,14,-18,22,-28,22v-10,0,-15,-2,-15,-6xm204,-62r0,-12v0,-20,6,-37,17,-51v11,-14,26,-21,43,-21r4,0v15,0,28,6,39,19v11,13,16,30,16,53r0,5v0,21,-5,39,-17,53v-12,14,-27,21,-45,21r-2,0v-15,0,-28,-6,-39,-19v-11,-13,-16,-29,-16,-48xm242,-66r0,1r1,11r0,1r0,1r0,0r0,1v0,7,2,12,7,19v5,7,10,11,15,11r2,0v6,0,11,-5,15,-14v4,-9,6,-18,6,-29r0,-10r0,-1r-1,-7v0,-10,-2,-18,-7,-24v-5,-6,-9,-10,-13,-10r-4,0v-4,0,-8,4,-13,10v-5,6,-7,15,-7,24r0,2r-1,11r0,3","w":346},"&":{"d":"25,-75r0,-6v0,-22,12,-44,35,-65v13,-12,19,-21,19,-26v0,-1,-3,-10,-10,-27v-4,-11,-6,-22,-6,-31v0,-16,6,-29,17,-40v11,-11,26,-16,44,-16v18,0,33,6,45,17v12,11,18,27,18,48v0,4,-2,11,-5,22v-3,11,-5,22,-6,34v-1,12,-2,18,-2,19v0,8,2,14,6,18v5,4,10,6,16,6v7,0,15,-3,23,-10v10,-8,20,-12,31,-12v11,0,17,5,17,13v0,3,-4,11,-11,25v-7,14,-11,25,-11,35v0,10,7,20,19,31v12,11,18,17,18,18v0,8,-9,12,-27,12r-16,-3v0,0,-23,-3,-35,-3r-32,0v-1,0,-8,2,-23,5v-15,3,-27,5,-36,5r-13,0v-19,0,-35,-6,-50,-19v-8,-7,-15,-16,-19,-25v-4,-9,-6,-18,-6,-25xm74,-83v0,13,5,24,16,34v11,10,23,15,38,15v9,0,18,-4,28,-11v4,-3,7,-5,7,-7v0,-2,-10,-16,-30,-40v-20,-24,-31,-37,-32,-37v-6,0,-12,4,-18,12v-6,8,-9,17,-9,25r0,9xm111,-229r0,1r0,4v0,6,5,17,13,30v3,5,6,7,9,7v3,0,8,-4,15,-12v7,-8,10,-18,10,-27r0,-7v0,-7,-2,-13,-6,-19v-4,-6,-10,-9,-16,-9r-4,0v-6,0,-11,3,-15,9v-4,6,-6,12,-6,18r0,5","w":308},"'":{"d":"32,-276r0,-4v0,-6,0,-10,2,-12v4,-4,9,-6,17,-6r9,0v7,0,11,2,14,4v3,2,5,6,5,11r0,9r-1,1r0,6r-1,8r0,6v0,3,-1,5,-1,6v0,25,-3,44,-9,58v-2,6,-7,9,-16,9v-8,0,-12,-6,-12,-16v-1,-5,-1,-9,-1,-11r-1,-16v-1,-4,-1,-6,-1,-7r-1,-11v-1,-5,-2,-9,-2,-11r0,-4","w":109},"(":{"d":"31,-114r0,-19v0,-18,3,-37,8,-58v11,-43,29,-79,56,-107v11,-12,21,-17,29,-17v8,0,12,3,12,9v0,4,-5,15,-17,34v-12,19,-22,37,-27,54v-9,28,-13,60,-13,95v0,56,11,102,34,140v15,26,23,39,23,41v0,6,-5,9,-13,9v-8,0,-19,-6,-32,-20v-25,-26,-42,-61,-53,-105v-5,-20,-7,-39,-7,-56","w":157},")":{"d":"22,60v0,-3,6,-15,18,-35v12,-20,21,-42,28,-64v7,-22,11,-51,11,-85v0,-56,-11,-101,-33,-138v-16,-27,-24,-41,-24,-42v0,-7,4,-11,10,-11r3,0v8,0,18,7,31,21v25,27,43,63,54,108v4,19,6,36,6,51r0,19v0,16,-2,35,-7,55v-10,43,-28,79,-56,110v-11,12,-21,19,-29,19v-8,0,-12,-3,-12,-8","w":157},"*":{"d":"34,-244v0,-8,5,-13,15,-13v4,0,10,2,19,6v9,4,14,7,16,7v2,0,2,-1,2,-3r-4,-30v0,-6,2,-9,5,-11v3,-2,9,-3,17,-3v8,0,13,5,13,13v0,5,-1,10,-2,17v-1,7,-3,11,-3,13v0,2,1,2,3,2r14,-6v0,0,15,-6,18,-6v11,0,16,3,16,11v0,12,-5,20,-14,24v-9,4,-14,8,-14,14r6,9v0,0,6,13,6,21v0,6,-8,9,-22,9v-3,0,-6,1,-10,4v-4,3,-7,4,-8,4r-13,-3v-5,2,-8,2,-9,2v-1,0,-4,-1,-9,-3v-2,-2,-3,-3,-5,-3r-12,0v-6,0,-10,-1,-11,-2v-1,-1,-2,-5,-2,-11v0,-6,3,-11,7,-15v4,-4,6,-9,6,-13v0,-2,-4,-6,-12,-11v-8,-5,-13,-13,-13,-23","w":195},"+":{"d":"30,-114r0,-16v0,-7,2,-11,5,-12v3,-1,14,-2,34,-2v20,0,31,-1,32,-2v1,-1,2,-13,2,-37v0,-24,0,-38,2,-40v2,-2,8,-3,18,-3v10,0,15,1,16,4v1,3,2,16,2,40v0,24,0,35,2,36v2,1,13,1,35,1v22,0,33,2,33,7r0,12v0,11,-1,18,-4,19v-3,1,-16,2,-36,2v-20,0,-30,0,-31,1v-1,1,-1,14,-1,38v0,24,-1,36,-1,38v-1,5,-7,7,-17,7r-7,0v-6,0,-10,-2,-11,-4v-1,-2,-1,-15,-1,-39v0,-24,0,-37,-2,-38v-2,-1,-12,-2,-31,-2v-19,0,-31,0,-34,-1v-3,-1,-5,-4,-5,-9","w":243},",":{"d":"27,52v0,-2,1,-4,5,-9v4,-5,8,-10,12,-16v4,-6,6,-12,6,-20v0,-2,-1,-5,-4,-8v-3,-3,-5,-5,-7,-10v-2,-5,-4,-12,-4,-23v0,-18,11,-27,31,-27v11,0,18,2,21,7v3,5,5,12,5,22r0,5v0,20,-4,37,-12,51v-8,14,-18,25,-29,33v-6,4,-11,6,-16,6v-5,0,-8,-2,-8,-8r0,-3","w":122},"-":{"d":"18,-102r0,-11r0,-1v0,-11,3,-18,8,-19v5,-1,23,-1,54,-1r48,-1v7,0,10,2,10,7r0,10v0,12,-2,19,-6,21v-4,2,-23,3,-57,3r-18,0r-20,1r-10,0v-6,0,-9,-3,-9,-9","w":156},".":{"d":"30,-25r0,-6v0,-8,2,-15,6,-20v4,-5,11,-8,18,-8r3,0r6,0v10,0,18,2,23,7v5,5,6,11,6,21r0,7v0,17,-7,25,-22,25r-1,1r-1,0r-8,0v-10,0,-17,-2,-22,-6v-5,-4,-8,-11,-8,-21","w":121},"\/":{"d":"8,26v0,-4,2,-12,7,-25r70,-181v21,-57,36,-96,45,-117v5,-11,12,-17,21,-17r7,0v9,0,14,2,14,6v0,4,-8,25,-23,65r-56,145v-22,57,-36,95,-43,112v-5,11,-12,17,-21,17r-7,0v-9,0,-14,-1,-14,-5","w":181},"0":{"d":"28,-138r0,-5v0,-41,8,-75,23,-102v8,-13,18,-23,30,-31v12,-8,24,-12,37,-12r7,0r1,0v13,0,25,4,36,11v22,14,37,38,45,71v4,18,6,37,6,56r0,9v0,22,-3,43,-8,61v-10,36,-26,61,-49,74v-10,6,-21,9,-33,9r-8,0v-26,0,-47,-13,-64,-40v-15,-24,-23,-57,-23,-101xm81,-140v0,53,8,88,24,102v4,4,8,5,12,5r4,0v10,0,18,-7,25,-22v8,-18,12,-40,12,-65r0,-6r0,-10r0,-19v0,-32,-3,-55,-10,-72v-7,-17,-17,-25,-28,-25v-11,0,-21,9,-28,25v-7,16,-11,39,-11,66r0,9r0,12","w":240},"1":{"d":"49,-241r0,-3v0,-5,4,-10,13,-14v32,-16,53,-24,64,-24v11,0,17,5,19,15v2,7,2,37,2,91v0,54,1,86,3,95v2,9,5,19,12,30v7,11,11,22,11,31v0,5,-4,10,-11,14v-7,4,-14,6,-23,6r-24,0v-12,0,-22,-2,-32,-7v-10,-5,-15,-11,-15,-18v0,-7,4,-16,11,-26v7,-10,12,-19,14,-26v2,-7,3,-27,3,-61v0,-34,-2,-57,-7,-69v-3,-7,-10,-14,-22,-19v-12,-5,-18,-10,-18,-15","w":226},"2":{"d":"28,-21v0,-8,4,-19,14,-32v10,-13,25,-32,47,-55v22,-23,37,-41,46,-54v9,-13,13,-26,13,-39v0,-13,-4,-23,-11,-30v-7,-7,-15,-11,-26,-11v-11,0,-22,4,-34,13v-21,15,-32,22,-34,22v-6,0,-10,-1,-12,-4v-2,-3,-3,-8,-3,-14v0,-6,2,-13,6,-20v4,-7,11,-14,20,-20v18,-12,39,-18,61,-18r6,0v11,0,22,2,32,6v21,8,35,21,43,41v3,9,6,19,6,31v0,17,-7,35,-19,53v-8,12,-25,29,-50,53v-25,24,-38,39,-38,46v0,6,9,9,28,9v10,0,23,-1,38,-3v21,-2,32,-3,36,-3v8,0,12,6,12,17v0,11,-3,19,-8,24v-5,5,-14,8,-28,8r-6,0r-12,-1r-13,0r-26,0r-32,-1r-6,0r-22,0v0,0,-16,-1,-20,-2v-6,-2,-8,-8,-8,-16","w":235},"3":{"d":"24,-35v0,-5,2,-8,5,-12v3,-4,7,-6,13,-6v6,0,16,3,30,10v14,7,26,10,37,10v11,0,20,-4,28,-10v11,-9,16,-21,16,-35v0,-24,-11,-39,-33,-46r-31,-7v-6,-3,-9,-8,-9,-16v0,-6,7,-12,20,-18v27,-11,40,-29,40,-52v0,-7,-3,-13,-9,-18v-6,-5,-14,-8,-24,-8v-10,0,-22,3,-36,10v-14,7,-21,10,-24,10v-9,0,-14,-4,-14,-12v0,-14,6,-24,20,-32v18,-10,39,-16,65,-16v26,0,44,6,57,16v13,10,19,24,19,41v0,18,-7,35,-21,51r-16,18v0,2,5,6,15,12v24,14,35,33,35,57r0,6v0,13,-3,27,-9,38v-17,33,-49,49,-97,49r-1,0v-22,0,-39,-3,-54,-11v-15,-8,-22,-18,-22,-29","w":235},"4":{"d":"24,-96v0,-10,5,-24,16,-42v25,-41,53,-84,85,-128v10,-14,21,-20,33,-20v13,0,21,2,24,7v2,2,3,11,3,25r0,5v0,3,-1,6,-1,9r-1,44v0,35,2,56,4,64v2,8,4,14,8,18r16,17v0,14,-2,23,-7,29v-9,11,-13,18,-13,22r0,7r0,8v0,13,-3,22,-8,26v-5,4,-16,7,-33,7r-8,0v-6,0,-11,-4,-14,-10v-3,-6,-5,-14,-5,-24r2,-17v0,-2,-1,-3,-4,-5v-11,-7,-19,-10,-24,-11v-5,-1,-15,-3,-29,-4v-14,-1,-23,-2,-28,-4v-11,-5,-16,-13,-16,-23xm62,-111v0,1,4,2,13,2r7,0r9,0v22,0,33,-2,36,-5v3,-3,4,-22,4,-56r0,-4r0,-2r0,-3r0,-1r0,-4r1,-18r0,-3r0,-5v0,-4,0,-6,-1,-6v-1,0,-6,8,-17,26v-11,18,-22,35,-34,52v-12,17,-18,26,-18,27","w":240},"5":{"d":"24,-30v0,-14,7,-21,21,-21v4,0,12,3,26,10v14,7,25,10,33,10v16,0,29,-5,38,-15v9,-10,14,-21,14,-33r0,-1v0,-22,-6,-37,-20,-47v-11,-8,-29,-11,-54,-11r-6,0r-12,0v-10,0,-16,-3,-20,-9v-4,-6,-6,-14,-6,-24v0,-10,2,-33,8,-68v2,-14,5,-23,9,-28v4,-5,9,-8,17,-10v8,-2,20,-2,35,-2v20,0,36,-1,48,-2v10,-1,18,-1,24,-1v7,0,12,0,14,1v5,2,6,6,6,12v0,14,-4,23,-13,28v-6,3,-22,5,-48,5v-26,0,-43,2,-48,7v-8,7,-11,18,-11,33v0,7,2,10,4,12v2,2,9,3,21,3v12,0,26,2,41,7v27,8,45,23,55,45v5,11,8,23,8,33r0,7v0,14,-4,27,-9,39v-17,37,-48,56,-96,56v-22,0,-41,-4,-56,-12v-15,-8,-23,-16,-23,-24","w":235},"6":{"d":"25,-128r0,-10v0,-19,4,-38,12,-57v15,-36,39,-61,70,-75v16,-7,32,-11,46,-11r9,0v9,0,17,2,23,5v6,3,8,7,8,12v0,5,-3,10,-9,12v-6,2,-16,5,-32,7v-27,4,-47,17,-58,39v-3,6,-5,12,-5,19v0,8,5,12,14,12r20,-1v12,0,24,2,35,7v22,9,36,25,45,47v5,12,8,24,8,35r0,10v0,9,-2,18,-6,29v-4,11,-9,19,-17,27v-15,15,-32,23,-53,23r-10,0v-14,0,-27,-4,-40,-11v-25,-14,-42,-36,-51,-66v-6,-18,-9,-35,-9,-53xm84,-88v0,14,4,27,11,39v7,12,16,18,25,18r5,0v10,0,18,-6,24,-17v6,-11,9,-24,9,-40r0,-2v0,-16,-3,-30,-10,-41v-7,-11,-16,-16,-27,-16v-11,0,-19,4,-26,12v-7,8,-10,19,-10,31r-1,4r0,12"},"7":{"d":"25,-245r0,-4v0,-10,2,-17,5,-21v6,-8,14,-13,22,-13r5,0r33,3r36,-1v37,0,61,1,70,3v9,2,14,7,14,16v0,9,-2,19,-7,30r-53,115v-8,17,-16,39,-25,66v-9,27,-14,41,-14,42v-5,10,-13,15,-24,15r-5,0v-8,0,-14,-1,-17,-3v-3,-2,-5,-8,-5,-16v0,-8,15,-43,45,-107v30,-64,44,-97,44,-102v0,-5,-2,-9,-6,-11v-4,-2,-13,-2,-27,-2v-20,0,-39,2,-58,7v-8,2,-14,3,-20,3v-9,0,-13,-7,-13,-20","w":233},"8":{"d":"30,-70v0,-14,2,-26,7,-35v5,-9,12,-19,22,-29v10,-10,14,-14,14,-15v0,-1,-2,-2,-6,-5v-4,-3,-8,-7,-11,-10v-3,-3,-7,-9,-11,-17v-4,-8,-7,-18,-7,-29v0,-22,9,-42,25,-58v7,-7,16,-12,26,-16v10,-4,22,-7,33,-7r9,0v19,0,36,6,50,19v14,13,21,28,21,49v0,12,-2,23,-7,32v-5,9,-11,17,-18,24v-7,7,-11,11,-11,12v0,1,3,3,8,7v5,4,10,8,14,12v4,4,9,10,14,19v5,9,8,19,8,31r0,9v0,11,-3,23,-9,34v-17,33,-46,49,-86,49r0,0v-24,0,-45,-6,-60,-19v-17,-14,-25,-34,-25,-57xm80,-77v0,13,3,24,11,34v8,10,18,14,29,14r6,0v9,0,17,-4,24,-12v7,-8,11,-19,11,-31r0,-1v0,-13,-5,-25,-13,-34v-13,-14,-26,-21,-39,-21v-6,0,-14,7,-22,20v-5,8,-7,18,-7,31xm87,-216v0,10,4,20,13,30v9,10,18,15,28,15r1,0v5,0,11,-4,17,-13v6,-9,9,-20,9,-32v0,-12,-3,-22,-10,-29v-7,-7,-14,-11,-23,-11r-6,0v-7,0,-14,4,-20,11v-6,7,-9,15,-9,24r0,5"},"9":{"d":"27,-197r0,-5v0,-23,6,-43,20,-58v7,-8,16,-14,26,-19v10,-5,21,-7,32,-7r5,0v29,0,53,12,72,36v10,12,18,27,23,44v5,17,7,35,7,54r0,5v0,19,-2,38,-9,56v-14,38,-37,64,-69,78v-18,8,-36,12,-52,12r-4,0v-24,0,-37,-6,-37,-19v0,-5,4,-8,11,-11v4,-2,14,-4,30,-6v26,-3,45,-13,57,-31v6,-9,9,-18,9,-26v0,-8,-5,-13,-17,-13r-17,0v-11,0,-22,-2,-33,-7v-23,-10,-38,-26,-47,-48v-5,-12,-7,-24,-7,-35xm79,-191v0,13,3,26,10,37v7,11,15,17,25,17r6,0v9,0,17,-4,24,-12v7,-8,10,-19,10,-34r0,-11r0,-5v0,-14,-4,-26,-12,-37v-8,-11,-16,-16,-24,-16r-6,0v-9,0,-18,5,-24,16v-6,11,-9,22,-9,36r0,9","w":237},":":{"d":"31,-29r0,-6v0,-2,1,-4,1,-5v0,-7,2,-12,7,-15v5,-4,11,-5,18,-5r5,-1r1,1v9,0,17,1,22,5v5,4,9,13,9,27v0,18,-8,26,-24,26r-2,1r-7,0r-1,0v-10,0,-16,-2,-21,-6v-5,-4,-7,-10,-7,-17xm31,-171r0,-5v0,-16,7,-24,21,-24v1,0,2,-1,3,-1r4,0r3,0v21,0,31,11,31,31v0,11,-2,19,-6,23v-4,4,-10,6,-19,6r-7,0r-5,0v-6,0,-12,-3,-17,-7v-5,-4,-7,-10,-7,-18","w":124},";":{"d":"30,47v0,-1,1,-3,5,-8v4,-5,6,-9,8,-12v5,-8,9,-16,9,-24v0,-2,-2,-6,-5,-9v-3,-3,-4,-6,-5,-7v-3,-6,-5,-13,-5,-22v0,-9,1,-16,5,-21v4,-5,11,-8,21,-8r8,1v7,0,13,2,17,6v4,4,6,10,6,20r0,9v0,19,-5,36,-14,50v-9,14,-18,24,-28,31v-5,3,-10,5,-15,5v-5,0,-7,-4,-7,-11xm34,-171r0,-5v0,-8,2,-14,6,-19v4,-5,9,-7,17,-7r3,0r7,-1v2,0,5,1,7,1v8,0,13,2,17,7v4,5,6,11,6,18r0,7r0,3v0,7,-3,14,-7,18v-4,4,-10,6,-17,6r-11,0r-3,0v-7,0,-12,-2,-17,-6v-5,-4,-7,-10,-7,-18","w":127},"<":{"d":"27,-121v0,-9,5,-16,14,-21v9,-5,22,-12,40,-21r40,-21r51,-27v0,0,32,-17,35,-17v4,0,5,4,5,12v0,13,-5,24,-16,32v-5,4,-26,15,-62,33v-36,18,-53,28,-53,29v0,1,18,10,54,29v36,19,57,30,63,34v9,7,14,15,14,26v0,11,-1,16,-4,16v-5,0,-14,-4,-26,-11v-12,-7,-38,-20,-77,-39v-39,-19,-62,-30,-68,-34v-6,-4,-10,-11,-10,-20","w":245},"=":{"d":"24,-80r0,-8v0,-8,2,-13,6,-14r95,0r87,0v7,0,11,3,11,9r0,15v0,6,-2,10,-8,10r-38,0r-74,0r-27,0r-44,0v-6,0,-8,-4,-8,-12xm24,-157r0,-15v0,-6,2,-9,6,-10v5,-1,22,-1,49,-1r96,0v26,0,41,0,44,1v3,1,4,6,4,14r0,4v0,9,-1,15,-4,16v-3,1,-20,1,-49,1r-94,0v-27,0,-41,0,-46,-1v-4,-1,-6,-3,-6,-9","w":243},">":{"d":"32,-215v0,-8,2,-12,5,-12v4,0,35,15,93,47v7,4,19,10,37,19v18,9,31,16,38,20v7,4,11,12,11,21v0,9,-4,16,-13,21v-31,18,-66,37,-104,55v-38,18,-58,28,-59,28r-3,0v-3,0,-5,-6,-5,-16v0,-10,4,-19,13,-25v9,-6,31,-18,67,-36v36,-18,53,-27,53,-28v0,-2,-18,-11,-55,-30v-37,-19,-56,-30,-60,-32v-12,-8,-18,-19,-18,-32","w":244},"?":{"d":"23,-248v0,-11,6,-21,20,-30v14,-9,32,-13,54,-13r4,0v23,0,42,7,57,20v15,13,22,30,22,49v0,17,-5,34,-15,49v-5,7,-12,16,-25,28v-13,12,-20,20,-22,23v-2,3,-4,9,-5,17v-1,8,-3,14,-5,16v-2,2,-5,4,-11,4v-15,0,-23,-9,-23,-28v0,-10,1,-20,5,-28v4,-8,10,-16,19,-26v9,-10,14,-17,17,-22v7,-11,10,-22,10,-31v0,-9,-2,-16,-7,-21v-5,-5,-12,-8,-20,-8v-8,0,-17,5,-28,13v-11,8,-19,12,-26,12v-7,0,-12,-2,-16,-6v-4,-4,-5,-11,-5,-18xm61,-24r0,-6r1,-6v0,-5,1,-8,5,-12v4,-4,9,-6,16,-6r6,0r6,0r5,0v7,0,14,3,18,7v4,4,6,11,6,21r0,1v0,17,-7,25,-22,25r-6,1r-6,0v-2,0,-5,-1,-6,-1v-8,0,-13,-2,-17,-7v-4,-5,-6,-10,-6,-17","w":205},"@":{"d":"28,-121v0,-20,4,-41,12,-60v8,-19,18,-36,32,-50v30,-31,69,-46,116,-46v38,0,69,12,94,37v11,11,19,23,25,37v6,15,9,31,9,47v0,14,-3,29,-8,44v-9,26,-23,44,-43,53v-8,4,-17,5,-25,5v-8,0,-15,-1,-21,-4r-7,-4r-5,-3v-5,0,-13,2,-23,6v-11,5,-20,7,-29,7v-13,0,-24,-5,-33,-15v-8,-9,-12,-21,-12,-35v0,-14,2,-26,7,-38v10,-22,25,-36,47,-39v22,-3,41,-5,57,-5v5,0,8,2,11,6v3,4,4,10,4,21r-1,9r-1,9v-1,13,-2,23,-2,32v0,9,3,15,7,18r5,2v9,0,18,-6,27,-19v9,-13,13,-30,13,-51v0,-11,-2,-22,-7,-35v-5,-13,-13,-24,-22,-32v-9,-8,-19,-14,-30,-18v-11,-4,-25,-7,-41,-7v-16,0,-32,4,-46,10v-32,14,-55,38,-67,72v-6,16,-8,33,-8,51r0,2v0,18,3,33,9,48v12,30,32,51,60,62v15,6,30,9,45,9v15,0,27,-1,35,-3v8,-2,16,-5,24,-8v8,-3,14,-4,18,-4v5,0,7,1,7,5v0,7,-10,14,-31,21v-21,7,-41,10,-59,10r-11,0v-17,0,-35,-4,-53,-12v-36,-16,-59,-44,-72,-82v-5,-15,-7,-33,-7,-53xm140,-98r1,8v0,6,2,12,5,16v3,4,6,6,9,6r3,0v10,0,20,-8,30,-24v10,-16,15,-31,15,-44r1,-16r0,-1v0,-14,-5,-21,-13,-21r-3,0v-11,0,-21,7,-32,22v-11,15,-16,30,-16,48r0,6","w":338},"A":{"d":"21,-33v0,-9,3,-17,8,-25v5,-8,10,-17,13,-25r23,-63r31,-87v8,-23,12,-36,14,-39v6,-12,17,-19,31,-19v7,0,13,2,18,5v5,3,9,8,12,14v3,6,15,41,36,103v21,62,35,98,42,108v7,10,10,18,10,24v0,12,-5,21,-14,27v-5,3,-15,5,-29,5v-14,0,-22,-2,-26,-7v0,-1,-2,-10,-4,-27v-2,-17,-6,-29,-11,-34v-5,-5,-21,-8,-44,-8v-23,0,-37,3,-41,8v-4,5,-8,16,-11,33v-3,17,-6,25,-7,27v-3,5,-8,7,-18,7v-10,0,-17,-1,-22,-5v-8,-6,-11,-13,-11,-22xm104,-116v0,2,2,4,7,4r2,0r1,0r12,-1r13,0v14,0,21,-1,21,-3v0,-3,-2,-9,-5,-19r-1,-6r-12,-51r-8,-32r-19,71v-1,5,-3,12,-6,22v-3,10,-5,15,-5,15","w":282},"B":{"d":"35,-13v0,-4,2,-10,5,-17v3,-7,5,-12,6,-17v1,-5,1,-14,1,-28v0,-12,0,-27,-1,-45r-1,-26r-1,-9r1,-16v0,-10,1,-15,1,-15r0,-10r0,-15v0,-15,0,-25,-1,-31v-1,-6,-4,-13,-6,-20v-2,-7,-4,-12,-4,-16v0,-4,3,-7,8,-9v5,-2,15,-3,29,-3r4,0r10,0r4,-1r10,0r23,0v20,0,36,1,47,4v24,6,40,18,49,38v4,8,6,19,6,30v0,11,-3,22,-8,31v-5,9,-11,16,-19,23v-8,7,-12,10,-12,11v0,1,3,1,8,4v5,3,9,6,14,9v5,3,10,8,15,14v10,12,15,27,15,42r0,5v0,24,-10,43,-29,59v-17,14,-41,21,-74,21r-38,1r-5,0v-24,0,-39,-1,-45,-2v-8,-2,-12,-6,-12,-12xm99,-88v0,26,2,41,4,45v2,4,10,6,23,6r6,0v16,0,29,-4,38,-12v9,-8,14,-21,14,-35v0,-14,-5,-26,-15,-35v-10,-9,-24,-13,-42,-13r-7,0v-9,0,-14,1,-17,3v-3,2,-4,6,-4,14r0,27xm99,-188v0,8,1,13,3,15v2,2,5,4,11,4r10,0v16,0,29,-5,37,-13v8,-8,13,-18,13,-28r0,-8v0,-9,-3,-17,-11,-25v-8,-8,-19,-11,-33,-11r-8,0r-4,0r-4,0v-8,0,-13,4,-13,12r0,2r0,1r-1,8r0,4r0,5r0,20r0,4r0,10","w":268},"C":{"d":"21,-142r0,-1v0,-21,3,-40,9,-58v13,-37,35,-62,65,-76v17,-8,36,-13,55,-13r7,0v34,0,57,3,70,9v5,2,10,7,15,15v5,8,8,15,8,22v0,16,-6,23,-17,23v-2,0,-8,-2,-16,-7v-8,-5,-15,-10,-19,-12v-15,-8,-29,-12,-43,-12v-12,0,-23,3,-34,10v-17,10,-29,27,-36,50v-4,14,-6,30,-6,46v0,33,7,59,21,78v14,19,34,28,58,28v12,0,27,-3,46,-12v19,-9,30,-13,33,-13v3,0,6,1,10,4v4,3,6,7,6,11v0,4,-1,7,-4,12v-7,10,-16,18,-26,23v-20,10,-42,15,-67,15r-7,0r-1,0v-21,0,-39,-3,-55,-11v-31,-15,-53,-41,-64,-76v-5,-16,-8,-34,-8,-55","w":272},"D":{"d":"35,-12r0,-4v0,-1,2,-5,5,-12v3,-7,5,-15,7,-22v2,-7,3,-20,3,-39r0,-5r0,-10r0,-6r0,-35r0,-10v0,-41,0,-67,-2,-78v-2,-11,-3,-21,-7,-29v-4,-8,-6,-13,-6,-16v0,-6,4,-10,12,-11v8,-1,25,-2,55,-2r24,0v25,0,45,3,61,9v33,13,56,36,69,72v7,18,10,37,10,57r0,10v0,20,-3,41,-11,60v-8,19,-18,35,-30,47v-25,24,-57,36,-97,36r-46,1v-19,0,-32,-1,-38,-3v-6,-2,-9,-5,-9,-10xm103,-59v0,9,1,14,5,17v4,3,10,5,19,5r5,0v22,0,41,-10,55,-29v14,-20,21,-46,21,-78r0,-7v0,-31,-7,-57,-22,-76v-14,-18,-32,-27,-55,-27r-3,0v-11,0,-18,2,-21,5v-3,3,-4,10,-4,21r0,9r0,3r0,14r0,3r0,15r0,9r0,54r0,9r0,18r0,3r0,6r0,12r0,14","w":297},"E":{"d":"31,-270v0,-6,4,-11,15,-13v20,-4,48,-6,82,-6r24,0r8,0v28,0,45,2,50,5v8,5,13,12,13,23v0,11,-4,17,-13,17v-1,0,-7,-1,-16,-3r-18,-3v-13,-2,-26,-3,-41,-3v-15,0,-25,4,-29,12v-6,11,-8,26,-8,46v0,8,2,13,5,15v3,2,9,4,18,4v9,0,18,-1,26,-4v8,-3,13,-5,15,-5v10,0,18,3,22,10v3,4,4,14,4,28v0,20,-6,30,-17,30v-6,0,-13,-1,-22,-4v-9,-3,-17,-4,-26,-4v-9,0,-16,2,-20,5v-4,3,-6,10,-6,21v0,24,3,41,10,52v4,6,13,9,28,9v22,0,43,-3,64,-9v8,-2,13,-3,16,-3v9,0,14,5,14,14v0,15,-6,25,-17,29v-9,4,-28,6,-58,6r-24,0v-37,0,-64,-2,-82,-7v-11,-3,-17,-10,-17,-19v0,-5,1,-10,4,-17v4,-9,7,-20,9,-34v2,-14,3,-39,3,-74v0,-35,-1,-57,-3,-68v-2,-11,-4,-21,-8,-30v-4,-9,-5,-16,-5,-20","w":248},"F":{"d":"30,-33v0,-3,2,-8,6,-17v4,-9,8,-20,9,-31v1,-11,1,-34,1,-68v0,-34,-1,-57,-2,-69v-1,-12,-3,-20,-4,-24v-2,-5,-3,-9,-5,-14v-2,-5,-3,-8,-3,-12v0,-6,3,-11,9,-13v14,-5,34,-7,58,-7r6,0v17,-1,28,-1,33,-1r33,0v21,0,35,2,41,6v6,4,10,13,10,27v0,9,-5,14,-14,14r-34,-7v-14,-2,-26,-3,-36,-3v-18,0,-28,3,-32,11v-6,12,-9,27,-9,48r0,2v0,7,3,12,9,15v5,2,10,3,16,3v5,0,10,0,15,-2v11,-4,20,-6,24,-6v8,0,13,3,18,11v5,8,7,17,7,27v0,10,-2,18,-5,22v-3,4,-8,6,-16,6v-2,0,-6,-1,-12,-3v-6,-2,-15,-3,-26,-3v-11,0,-19,3,-23,8v-4,5,-6,15,-6,29v0,14,0,25,2,32r6,21v0,0,4,13,4,17v0,8,-8,11,-23,11r-6,0v-19,0,-32,-2,-40,-7v-8,-5,-11,-13,-11,-23","w":236},"G":{"d":"22,-135r0,-9v0,-42,12,-76,38,-105v11,-13,26,-24,43,-31v17,-7,35,-10,55,-10r8,0v2,0,20,2,54,6v8,1,14,3,20,6v6,3,10,9,14,16v4,7,5,14,5,21v0,7,-2,11,-5,14v-3,3,-7,5,-10,5v-3,0,-10,-3,-21,-10v-11,-7,-22,-12,-31,-15v-9,-3,-20,-5,-32,-5v-23,0,-42,8,-56,25v-8,9,-14,20,-18,34v-4,14,-6,29,-6,46v0,30,6,56,19,75v7,11,16,19,27,25v11,6,22,9,33,9v11,0,20,-3,28,-10v8,-7,12,-16,12,-26v0,-9,-3,-19,-9,-30v-7,-13,-10,-20,-10,-22v0,-5,5,-7,14,-10v9,-3,21,-4,36,-4v31,0,47,6,47,18v0,14,-4,39,-13,73v-3,10,-7,17,-12,22v-5,5,-21,11,-46,18v-25,7,-42,10,-50,10r-8,0v-16,0,-32,-3,-48,-9v-16,-6,-30,-16,-42,-29v-12,-13,-21,-29,-27,-46v-6,-17,-9,-35,-9,-52","w":298},"H":{"d":"30,-29v0,-4,2,-9,5,-16v3,-7,5,-14,6,-21v1,-7,2,-32,2,-75v0,-43,-1,-71,-3,-83v-2,-12,-4,-22,-8,-29v-3,-7,-5,-12,-5,-17v0,-5,2,-9,5,-12v4,-4,10,-6,18,-6r8,0v19,0,31,2,38,5v7,3,11,8,11,14v0,4,-1,9,-3,17v-2,8,-4,15,-5,22v-1,7,-2,22,-2,44v0,11,5,17,14,20v5,2,19,2,40,2v21,0,35,-1,41,-4v7,-3,10,-14,10,-32v0,-9,-1,-20,-3,-33r-7,-33v0,-7,3,-12,9,-15v6,-3,16,-4,33,-4v17,0,28,2,33,6v5,4,8,10,8,18v0,2,-2,7,-5,15v-3,8,-5,18,-6,28v-1,10,-1,30,-1,60r0,34r0,9v0,37,2,61,7,72r3,6v3,6,5,10,5,12r0,7v0,10,-10,16,-30,16v-20,0,-33,-2,-39,-5v-6,-3,-9,-9,-9,-15v0,-3,1,-8,3,-16v2,-8,3,-16,4,-24v1,-8,2,-21,2,-38v0,-17,-3,-29,-9,-32v-6,-3,-22,-5,-46,-5v-24,0,-38,2,-43,7v-5,5,-7,14,-7,28v0,18,1,36,4,51v3,15,5,24,5,26v0,6,-3,11,-8,14v-5,3,-15,5,-31,5v-16,0,-26,-1,-31,-3v-9,-3,-13,-10,-13,-20","w":305},"I":{"d":"29,-17v0,-5,2,-12,7,-21v5,-9,8,-18,9,-26v1,-8,1,-35,1,-81v0,-46,0,-73,-1,-82v-1,-9,-4,-17,-9,-26v-5,-9,-7,-15,-7,-20v0,-12,8,-18,25,-18r39,0v17,0,26,6,26,18v0,5,-2,11,-7,20v-5,9,-8,18,-9,28v-1,10,-2,37,-2,80v0,43,0,69,1,78v1,9,4,18,9,28v5,10,8,17,8,21v0,12,-8,18,-24,18r-39,0v-8,0,-15,-1,-20,-4v-5,-3,-7,-8,-7,-13","w":147},"J":{"d":"6,-18v0,-8,3,-15,7,-19v4,-4,8,-6,12,-6v4,0,12,1,21,4v9,3,15,5,21,5v6,0,11,-3,16,-9v5,-6,10,-13,13,-23v6,-18,9,-47,9,-87r0,-15r-1,-5r0,-10v0,-18,-1,-32,-3,-40v-2,-8,-7,-17,-11,-25v-4,-8,-6,-17,-6,-24v0,-7,3,-11,9,-14v6,-3,16,-5,29,-5r19,0v9,0,16,2,21,7v5,5,7,10,7,16v0,6,-1,13,-4,23v-3,10,-4,20,-5,31v-1,11,-2,35,-2,73v0,38,-1,64,-3,78v-2,14,-6,26,-13,38v-7,12,-18,22,-30,29v-12,7,-26,11,-41,11r-10,0v-15,0,-28,-3,-39,-10v-11,-7,-16,-15,-16,-23","w":198},"K":{"d":"36,-263r0,-7v0,-14,13,-21,37,-21r8,0v13,0,21,2,25,5v4,3,7,6,7,11v0,5,-1,10,-3,17v-6,20,-9,41,-9,65v0,12,2,17,6,17v8,0,24,-16,48,-48v14,-18,21,-32,24,-41v3,-9,5,-16,8,-18v5,-5,13,-7,24,-7v21,0,32,4,32,10v0,4,-14,22,-42,54v-28,32,-41,53,-41,62v0,5,16,32,49,81v12,19,24,34,35,47v11,13,16,22,16,25r0,4v0,5,-9,7,-28,7v-19,0,-32,-2,-39,-8v-2,-1,-8,-13,-19,-34v-26,-50,-46,-74,-59,-74v-2,0,-4,3,-7,8v-3,5,-5,14,-5,26v0,12,1,24,4,37v3,13,4,20,4,22v0,7,-2,13,-8,17v-6,4,-16,6,-29,6v-13,0,-22,-2,-28,-4v-6,-2,-8,-7,-8,-14v0,-2,1,-9,4,-21v3,-12,5,-23,5,-33r-3,-118r0,-34v0,-7,-1,-16,-4,-25v-3,-9,-4,-14,-4,-14","w":282},"L":{"d":"33,-255v-4,-7,-6,-14,-6,-19v0,-7,4,-12,10,-15v3,-2,8,-2,17,-2r5,0v20,0,33,2,40,5v7,3,11,9,11,18v0,3,-2,9,-5,16v-3,7,-4,15,-6,22v-2,7,-3,21,-3,41r0,6r0,12r0,47v0,42,1,66,4,72v4,9,14,13,31,13v17,0,33,-4,49,-10v16,-6,27,-9,32,-9v8,0,13,6,13,17r0,10v0,15,-5,25,-14,28v-3,1,-26,1,-69,1r-55,1v-24,0,-39,-2,-48,-6v-6,-3,-8,-8,-8,-15v0,-4,1,-9,3,-14v2,-4,3,-9,4,-14v3,-10,4,-42,4,-95v0,-53,0,-83,-1,-89v-1,-6,-4,-14,-8,-21","w":235},"M":{"d":"24,-28v0,-4,1,-12,5,-22v4,-10,6,-20,7,-29v3,-26,5,-67,5,-124v0,-12,0,-23,-1,-32r-3,-28v0,-7,1,-12,3,-14v4,-5,11,-8,23,-8v12,0,23,3,32,8v9,5,16,12,20,19v6,10,21,44,44,103r17,42r4,7v3,0,13,-23,32,-70v19,-47,31,-75,37,-83v12,-17,27,-26,47,-26v20,0,29,5,29,14v0,4,0,12,-2,24v-2,12,-3,34,-3,68v0,34,1,61,3,80v2,19,5,36,9,50v4,14,6,22,6,25v0,3,-3,6,-8,11v-5,5,-13,7,-24,7v-11,0,-19,-3,-27,-7v-8,-4,-12,-11,-12,-19r1,-8r2,-18v1,-11,1,-24,1,-42v0,-66,-3,-100,-8,-100v-3,0,-15,27,-35,80v-20,53,-31,81,-33,84v-6,10,-14,15,-22,15v-8,0,-15,-6,-20,-17v-2,-4,-13,-32,-32,-83v-19,-51,-31,-76,-34,-76v-5,0,-7,36,-7,110r0,21r0,19r0,9v0,10,-2,17,-6,22v-4,5,-13,8,-26,8v-8,0,-14,-2,-18,-7v-4,-5,-6,-9,-6,-13","w":362},"N":{"d":"23,-19v0,-2,3,-7,7,-16v4,-9,7,-18,8,-25v1,-7,1,-32,1,-73r0,-81v0,0,-2,-23,-4,-31r-2,-8v-2,-8,-4,-12,-4,-14r-1,-7v0,-7,7,-10,19,-10v24,0,42,7,57,22v5,5,26,34,62,86v36,52,55,78,58,78v1,0,2,-16,2,-48v0,-54,-2,-89,-5,-105v-3,-16,-5,-24,-5,-24v0,-4,2,-6,6,-9v4,-3,12,-4,22,-4r8,0v8,0,15,2,20,7v5,5,7,11,7,20v0,2,-2,8,-6,21v-4,13,-5,25,-6,36v-1,11,-1,44,-1,97v0,53,0,82,-1,87v-1,5,-3,9,-5,11v-2,2,-6,2,-11,2v-15,0,-29,-7,-42,-22v-10,-11,-31,-42,-65,-92v-34,-50,-54,-76,-59,-76v-3,0,-4,8,-4,22r0,9v0,6,1,16,1,28v0,32,1,58,4,78v3,20,5,31,5,34v0,8,-4,14,-13,19v-6,3,-15,5,-26,5v-11,0,-18,0,-20,-1v-5,-2,-7,-8,-7,-16","w":303},"O":{"d":"32,-138r0,-5r0,-4v0,-21,3,-40,10,-59v14,-39,35,-65,64,-79v15,-8,33,-12,51,-12v18,0,34,3,48,10v28,13,48,36,60,69v7,20,11,40,11,60r0,14v0,18,-3,36,-9,56v-6,20,-14,37,-26,51v-12,14,-25,25,-40,32v-15,7,-31,11,-47,11r-5,0v-35,0,-63,-14,-85,-41v-10,-12,-17,-28,-23,-46v-6,-18,-9,-38,-9,-57xm89,-143v0,32,6,58,17,78v5,9,12,17,20,23v8,6,16,9,24,9r8,0v8,0,16,-2,23,-8v24,-19,36,-54,36,-104v0,-34,-6,-61,-17,-81v-12,-21,-28,-33,-46,-33v-20,0,-35,11,-47,32v-12,21,-18,47,-18,77r0,7","w":308},"P":{"d":"29,-16v0,-7,2,-15,6,-27v4,-12,5,-25,5,-40r0,-5v0,-3,1,-7,1,-10r0,-5r0,-10r3,-76r0,-15r1,-18v0,-13,0,-21,-1,-24v-1,-3,-1,-8,-3,-13v-2,-5,-3,-11,-3,-15v0,-5,4,-8,12,-10v15,-4,41,-6,77,-6r18,0v24,0,43,6,57,17v8,7,15,14,20,24v5,10,7,19,7,29r0,10v0,11,-2,22,-7,33v-5,11,-12,21,-22,31v-10,10,-23,17,-39,22v-6,2,-13,4,-23,6v-17,4,-28,11,-35,21v-4,6,-6,14,-6,22v0,7,1,14,4,22v4,12,6,19,6,23v0,11,-5,18,-13,24v-5,4,-14,6,-27,6r-13,0v-16,0,-25,-6,-25,-16xm101,-162v0,9,5,14,15,14r8,0v14,0,25,-5,34,-15v9,-10,13,-22,13,-36r0,-9v0,-14,-4,-24,-13,-33v-9,-9,-19,-13,-33,-13r-4,0v-10,0,-16,2,-18,6v-2,4,-2,21,-2,49r0,5r0,15r0,5r0,12","w":253},"Q":{"d":"33,-154r0,-12v0,-16,3,-32,8,-49v11,-35,32,-59,61,-72v13,-6,28,-9,45,-9v17,0,34,4,50,12v16,8,29,19,40,33v11,14,19,30,24,47v5,17,7,37,7,60v0,36,-8,69,-25,100v-10,18,-15,27,-15,28v0,8,10,17,28,27v18,10,27,18,27,23r0,2v0,6,-6,9,-18,9r-9,0v-25,0,-55,-6,-88,-20v-33,-14,-59,-29,-77,-46v-18,-17,-32,-37,-42,-60v-10,-23,-16,-47,-16,-73xm88,-140v0,26,5,49,16,69v5,10,12,18,20,24v8,6,15,9,22,9r4,0v4,0,8,-2,13,-7v22,-24,34,-40,39,-48v8,-13,12,-30,12,-51r0,-14v0,-26,-6,-49,-16,-69v-5,-10,-11,-17,-19,-23v-8,-6,-15,-9,-23,-9r-6,0v-6,0,-13,3,-21,7v-8,4,-14,10,-20,19v-14,21,-21,48,-21,78r0,15","w":307},"R":{"d":"36,-24r0,-5v0,-2,2,-8,4,-14v2,-6,4,-12,5,-17v1,-5,1,-21,1,-44r2,-90v0,-33,-2,-55,-5,-68r-3,-10v-1,-4,-2,-6,-2,-8v0,-5,3,-8,10,-10v5,-1,20,-1,46,-1r30,0v34,0,58,6,74,18v19,15,29,37,29,65v0,23,-10,43,-30,60v-8,7,-13,13,-13,19v0,6,10,26,30,61v7,12,15,23,24,33v9,10,13,18,13,24v0,6,-9,9,-26,9v-17,0,-30,-4,-37,-12v-4,-5,-12,-18,-23,-41v-11,-23,-18,-37,-21,-41v-8,-12,-16,-17,-22,-17v-6,0,-11,3,-14,9v-3,6,-5,14,-5,24v0,12,3,25,8,42v2,8,3,13,3,15v0,15,-9,22,-28,22r-6,0v-14,0,-24,-1,-30,-3v-9,-3,-14,-10,-14,-20xm99,-173v0,7,2,12,4,14v2,2,5,3,10,3r8,0v15,0,28,-4,38,-13v10,-9,15,-20,15,-33r0,-9v0,-11,-4,-22,-12,-30v-8,-8,-17,-12,-27,-12v-2,0,-3,-1,-4,-1r-8,0v-11,0,-18,2,-20,6v-2,4,-3,14,-3,28r0,30r-1,6r0,11","w":275},"S":{"d":"20,-46r0,-6v0,-14,6,-20,18,-20v5,0,13,5,23,13v10,8,19,14,28,18v9,4,19,7,31,7v12,0,22,-4,31,-11v9,-7,13,-15,13,-27v0,-12,-5,-23,-17,-32v-6,-5,-22,-13,-46,-24v-24,-11,-41,-22,-50,-31v-16,-16,-25,-35,-25,-56v0,-22,9,-40,25,-54v17,-15,37,-22,63,-22r8,0v30,0,52,3,66,10v13,6,19,18,19,37v0,6,-2,11,-5,14v-3,3,-6,5,-10,5v-4,0,-14,-5,-30,-15v-16,-10,-30,-16,-44,-16v-14,0,-23,4,-30,11v-7,7,-10,15,-10,25v0,10,6,19,19,28r42,21v0,0,46,26,55,36v14,15,22,34,22,55v0,25,-9,45,-28,60v-18,14,-40,21,-65,21r-7,0v-32,0,-56,-3,-73,-11v-7,-3,-12,-9,-16,-15v-4,-6,-7,-13,-7,-21","w":237},"T":{"d":"21,-251v0,-22,5,-35,15,-38v4,-1,35,-1,95,-1r60,-1v19,0,30,1,33,3v7,5,11,14,11,27v0,13,-1,21,-3,24v-2,3,-5,4,-9,4v-4,0,-11,-2,-22,-7v-9,-4,-18,-6,-24,-6v-11,0,-17,6,-20,17v-2,9,-3,33,-3,72v0,39,1,66,2,80v1,14,3,27,7,38v4,11,5,18,5,22v0,7,-4,13,-12,16v-3,1,-12,2,-26,2r-5,0r-6,-1v-13,0,-20,-1,-24,-3v-6,-3,-9,-9,-9,-18v0,-3,2,-9,5,-16v3,-7,4,-15,6,-22v2,-7,3,-18,3,-34r0,-12r0,-48v0,-42,-1,-68,-3,-76v-2,-11,-8,-17,-19,-17v-7,0,-14,3,-24,7v-11,5,-18,7,-22,7v-8,0,-11,-7,-11,-19","w":255},"U":{"d":"29,-243v-4,-7,-5,-13,-5,-19v0,-8,2,-15,9,-22v4,-4,12,-5,26,-5v14,0,24,1,31,4v7,3,11,9,11,17v0,3,-1,8,-3,18v-4,18,-5,50,-5,97r-1,1v0,46,5,76,12,90v10,19,24,29,45,29v25,0,43,-10,53,-30v8,-16,11,-48,11,-98v0,-35,0,-62,-2,-78v-2,-16,-3,-27,-3,-34v0,-7,2,-11,8,-13v6,-2,14,-4,24,-4v10,0,17,2,20,5v6,5,10,11,10,17r0,6v0,4,-2,11,-6,19v-4,8,-5,16,-6,24v-1,8,-2,30,-2,63v0,33,-1,57,-3,73v-2,16,-7,31,-15,44v-8,13,-21,23,-36,31v-15,8,-32,12,-51,12r-9,0v-19,0,-36,-4,-51,-12v-28,-14,-45,-39,-50,-75v-2,-15,-3,-41,-3,-78v0,-37,-1,-59,-2,-64v-1,-5,-3,-11,-7,-18","w":292},"V":{"d":"11,-268v0,-5,3,-10,6,-14v3,-4,10,-6,19,-6v23,0,38,3,45,8v7,5,10,15,10,30v0,21,15,71,44,152v5,13,7,19,9,19v5,0,18,-37,41,-111v8,-25,12,-42,14,-49v2,-7,4,-15,4,-23v0,-8,1,-13,2,-15v3,-7,14,-11,34,-11v10,0,17,1,20,4v4,3,6,9,6,14v0,7,-3,16,-11,27v-9,12,-15,23,-18,31v-8,20,-19,52,-34,94r-19,51v-11,29,-17,46,-19,49v-5,11,-13,17,-26,17v-13,0,-22,-6,-28,-17v-2,-4,-13,-34,-32,-87r-24,-69v-5,-15,-10,-27,-13,-35v-3,-8,-9,-18,-17,-31v-8,-13,-13,-23,-13,-28","w":274},"W":{"d":"19,-261v0,-6,2,-11,5,-16v3,-5,7,-8,14,-8v14,0,25,3,32,7v4,2,7,7,10,12v3,5,4,16,7,32v3,16,6,33,11,51v14,55,23,83,26,83v6,0,17,-39,34,-118v6,-27,10,-43,12,-46v5,-10,14,-15,27,-15v13,0,23,6,29,20v4,8,8,22,12,40v4,18,8,34,11,46v13,47,22,70,26,70v4,0,16,-41,35,-123v6,-25,9,-39,10,-41v5,-10,16,-15,32,-15v4,0,8,3,11,6v3,3,4,8,4,15r0,6r0,1v0,3,-2,10,-6,20v-8,20,-18,54,-32,104v-14,50,-23,79,-27,89v-4,10,-8,17,-14,21v-6,4,-12,7,-17,7v-6,0,-12,-3,-17,-9v-10,-11,-23,-41,-37,-90v-9,-30,-16,-50,-20,-61r-3,-7v-3,0,-11,20,-23,60v-12,40,-22,67,-27,80v-8,18,-16,27,-26,27v-8,0,-14,-2,-21,-7v-7,-5,-12,-11,-14,-18v-2,-6,-6,-20,-11,-40r-20,-70v-9,-33,-16,-59,-23,-77v-7,-18,-10,-30,-10,-36","w":385},"X":{"d":"24,-9v0,-1,14,-21,42,-63v28,-42,41,-65,41,-70v0,-5,-9,-21,-26,-49v-17,-28,-30,-49,-39,-61v-9,-12,-13,-19,-13,-22v0,-6,1,-12,5,-14v4,-2,15,-3,34,-3r15,0v14,0,23,4,27,12v1,2,2,8,3,15v1,7,3,15,7,25v13,28,21,43,25,43v5,0,13,-13,26,-39v5,-11,10,-22,13,-33v3,-11,4,-17,5,-18v3,-3,12,-5,25,-5r15,0v12,0,18,4,18,12v0,3,-8,15,-24,37v-16,22,-31,43,-43,64v-5,9,-8,18,-8,26v0,2,14,26,41,70v27,44,41,67,41,69v0,5,-2,9,-7,11v-5,2,-15,2,-30,2r-7,0v-19,0,-30,-3,-35,-10v-2,-3,-4,-9,-5,-17v-1,-8,-3,-16,-6,-22v-17,-37,-27,-55,-32,-55r-4,2v-9,9,-19,27,-30,52v-4,9,-6,18,-7,26v-1,8,-1,13,-2,15v-3,7,-9,9,-20,9r-22,0v-15,0,-23,-3,-23,-9","w":277},"Y":{"d":"22,-275v0,-5,2,-9,6,-12v4,-3,12,-4,24,-4r11,0v19,0,30,4,35,13v0,1,1,6,3,15v2,9,5,22,11,36v17,40,28,59,31,59v5,0,15,-20,30,-60v7,-17,10,-28,11,-31v1,-3,1,-7,2,-13v1,-6,2,-9,4,-11v4,-5,11,-8,21,-8r5,0v21,0,31,4,31,11r0,4v0,6,-4,14,-12,23v-14,17,-34,50,-58,101v-10,21,-15,39,-15,56v0,17,1,29,2,36v1,7,3,15,6,22v3,7,5,13,5,19v0,6,-3,10,-8,14v-5,4,-11,6,-19,6r-28,0v-18,0,-27,-7,-27,-19v0,-3,1,-8,3,-14r2,-5r1,-4v5,-15,8,-33,8,-55v0,-12,-4,-26,-11,-41v-7,-15,-17,-35,-31,-60v-14,-25,-24,-43,-32,-54v-8,-11,-11,-19,-11,-24","w":268},"Z":{"d":"25,-260v0,-20,11,-29,33,-29r14,0r126,0v13,0,22,1,27,3v5,2,8,7,8,15v0,8,-5,19,-15,35v-3,4,-24,35,-63,93v-39,58,-59,90,-59,96v0,6,12,9,35,9v22,0,46,-5,72,-14v11,-4,18,-5,22,-5v11,0,16,5,16,16r0,7v0,16,-7,26,-21,30v-6,2,-35,2,-90,2r-62,1v-21,0,-34,-2,-40,-4v-6,-3,-8,-7,-8,-14v0,-9,5,-21,15,-37v3,-4,24,-36,64,-95v40,-58,60,-90,60,-95v0,-5,-9,-7,-27,-7v-23,0,-45,4,-69,12v-11,4,-20,5,-25,5v-5,0,-8,-2,-10,-5v-2,-3,-3,-10,-3,-19","w":256},"[":{"d":"40,13r0,-277v0,-25,3,-40,8,-44v5,-4,25,-6,57,-6r14,0v10,0,16,3,16,8v0,7,-3,12,-8,16v-2,2,-8,5,-16,7v-8,2,-13,4,-16,6v-3,2,-5,7,-7,15v-2,8,-4,54,-4,139v0,85,2,132,4,140v2,8,8,13,17,16v13,4,21,7,23,9v5,4,7,10,7,17v0,4,-5,7,-13,7r-29,0v-26,0,-41,-3,-46,-8v-5,-5,-7,-20,-7,-45","w":154},"\\":{"d":"11,-309v0,-2,4,-4,15,-4v11,0,18,4,22,12v6,12,19,46,39,101r57,150v18,45,26,69,26,71r0,3v0,3,-7,4,-21,4v-8,0,-14,-6,-19,-18v-30,-73,-67,-170,-111,-291v-5,-15,-8,-25,-8,-28","w":179},"]":{"d":"21,57v0,-9,7,-16,21,-20v14,-4,22,-11,25,-19v3,-8,4,-56,4,-142v0,-86,-1,-134,-4,-143v-2,-7,-11,-13,-25,-18v-14,-5,-21,-12,-21,-21v0,-6,5,-8,13,-8r23,0v18,0,30,1,38,3v8,2,13,6,15,13v2,7,3,53,3,139r0,53v0,95,-1,147,-3,154v-2,7,-8,12,-17,14v-9,2,-20,3,-36,3r-23,1v-9,0,-13,-2,-13,-5r0,-4","w":154},"^":{"d":"24,-145v0,-10,23,-53,69,-129v6,-11,14,-16,22,-16r4,0v10,0,17,5,23,14v47,77,69,121,69,132v0,2,-3,3,-12,3r-7,0v-9,0,-17,-4,-23,-11v-6,-7,-15,-25,-29,-52v-14,-27,-21,-41,-23,-41v0,0,-9,15,-24,44v-15,29,-25,45,-28,49v-6,8,-16,11,-30,11v-8,0,-11,-1,-11,-4","w":235},"_":{"d":"0,37v0,-4,5,-6,16,-6r192,0v7,0,10,2,10,7r0,13v0,4,-5,7,-14,7r-189,0v-10,0,-15,-4,-15,-10r0,-11","w":217},"`":{"d":"29,-298v0,-5,7,-8,22,-8v15,0,25,5,32,13v22,28,33,46,33,54v0,3,-4,4,-13,4r-1,0v-9,0,-19,-4,-28,-13v-30,-30,-45,-46,-45,-50","w":164},"a":{"d":"24,-49r0,-5v0,-16,7,-31,21,-44v11,-10,30,-19,55,-26v11,-3,17,-5,20,-7v8,-5,13,-11,13,-19v0,-8,-4,-14,-11,-19v-5,-3,-12,-5,-20,-5v-8,0,-18,4,-29,12v-11,8,-21,13,-28,13v-7,0,-12,-2,-15,-5v-3,-3,-5,-8,-5,-13v0,-5,2,-9,5,-13v3,-4,10,-9,21,-14v17,-8,37,-13,60,-13v23,0,41,7,54,20v10,10,16,27,16,50r-1,14r-1,10v-1,13,0,20,0,23r-1,18v0,11,2,23,7,34v5,11,7,19,7,23v0,4,-3,6,-9,9v-6,3,-13,5,-22,5v-9,0,-16,-3,-21,-7v-5,-4,-9,-6,-10,-6v-1,0,-9,3,-21,8v-12,5,-23,8,-33,8r-4,0v-13,0,-24,-5,-34,-15v-10,-10,-14,-22,-14,-36xm70,-53v0,2,1,5,1,7v0,2,2,5,5,8v3,3,8,5,14,5v11,0,20,-3,28,-11v8,-8,12,-17,12,-28r0,-2r1,-14r0,-4v0,-4,-2,-6,-5,-6r-2,0v-2,0,-3,1,-4,1v-12,0,-24,4,-34,13v-10,9,-16,18,-16,27r0,4","w":219},"b":{"d":"24,-284v0,-5,2,-11,8,-14v6,-3,17,-5,33,-5v9,0,14,3,16,9v1,4,2,19,2,45r0,43v1,5,7,8,17,8r13,-3v0,0,15,-2,20,-2v24,0,42,9,57,29v15,20,22,45,22,76r0,5v0,29,-7,52,-22,69v-15,17,-32,26,-52,26v-9,0,-19,-2,-30,-6v-9,-3,-17,-5,-22,-5r-3,1r-6,2v-4,1,-8,1,-11,1v-13,0,-22,-4,-25,-13v-1,-3,-1,-16,-1,-41v0,-25,-1,-58,-3,-99v-2,-41,-3,-66,-4,-76v-1,-10,-2,-20,-5,-29v-3,-9,-4,-16,-4,-21xm89,-94r1,2r0,6r0,9v0,14,3,26,8,34v5,8,13,12,24,12v11,0,20,-7,27,-20v7,-13,11,-29,11,-48r0,-9v0,-16,-3,-30,-9,-43v-6,-13,-14,-20,-25,-20r-3,0r-1,0v-9,0,-17,4,-23,13v-6,9,-9,19,-9,33r0,8r-1,12r0,11","w":237},"c":{"d":"18,-95r0,-5v0,-32,9,-57,28,-77v18,-19,43,-29,73,-29r4,0v42,0,63,12,63,34v0,5,-1,9,-5,13v-4,4,-8,7,-13,7v-5,0,-14,-3,-24,-10v-10,-7,-20,-10,-29,-10v-13,0,-24,6,-33,17v-9,11,-12,28,-12,50v0,22,4,38,14,50v10,12,23,17,37,17v9,0,18,-1,29,-6v10,-4,18,-7,24,-7v9,0,14,4,14,13v0,10,-8,20,-26,29v-13,7,-27,10,-43,10r-10,0r-1,0v-11,0,-23,-2,-34,-7v-22,-9,-37,-24,-47,-46v-6,-13,-9,-28,-9,-43","w":205},"d":{"d":"27,-89r0,-11v0,-14,2,-28,8,-44v6,-16,14,-28,24,-38v10,-10,19,-17,28,-20v9,-3,21,-5,34,-5v13,0,22,-2,27,-7v2,-2,4,-8,4,-18v0,-10,-2,-20,-5,-30v-3,-10,-4,-17,-4,-20v0,-12,9,-18,30,-18r10,0v13,0,20,5,22,13v2,7,2,27,2,61r-5,144v0,18,1,30,2,37r4,25v0,7,-3,11,-9,13v-6,2,-13,4,-22,4v-9,0,-16,-2,-23,-5v-7,-3,-11,-5,-11,-5r-17,9v-8,4,-17,7,-26,7r-5,0v-9,0,-19,-3,-28,-7v-9,-4,-16,-9,-21,-16v-13,-17,-19,-41,-19,-69xm78,-97v0,18,2,33,9,45v7,12,15,18,26,18r5,0v9,0,17,-4,23,-14v6,-10,9,-22,9,-36v0,-4,1,-6,1,-6r0,-10r0,-17r0,-2r0,-10v0,-13,-3,-24,-9,-34v-6,-10,-14,-14,-24,-14r-4,0v-9,0,-18,6,-25,17v-7,11,-11,26,-11,43r0,6r0,14","w":242},"e":{"d":"19,-91r0,-5v0,-29,9,-54,27,-75v10,-11,21,-21,35,-27v14,-6,27,-9,41,-9r5,0v19,0,34,6,47,19v13,13,20,30,20,52v0,13,-5,22,-13,26v-5,3,-20,6,-46,8v-26,2,-42,5,-47,6v-11,3,-17,10,-17,20v0,10,4,20,13,28v9,8,22,12,37,12v7,0,17,-3,31,-9v14,-6,23,-8,28,-8v9,0,14,4,14,11v0,12,-7,22,-23,30v-16,8,-34,13,-52,13r-9,0v-12,0,-24,-3,-35,-7v-23,-9,-39,-25,-48,-49v-5,-13,-8,-24,-8,-36xm73,-133v0,3,2,4,6,4r7,0r1,0r19,-1v26,0,39,-4,39,-11r-1,-8v0,-7,-4,-12,-10,-17v-6,-5,-13,-7,-18,-7r-6,0v-8,0,-17,4,-25,12v-8,8,-12,18,-12,28","w":216},"f":{"d":"21,-182r0,-4v0,-5,4,-10,10,-17v6,-7,10,-13,12,-20v9,-31,17,-49,23,-56v6,-7,14,-12,24,-16v10,-4,20,-6,29,-6r4,0v12,0,23,2,32,7v6,3,8,8,8,14v0,6,-1,12,-5,15v-4,3,-9,5,-14,5r-23,-4v-8,0,-15,2,-19,8v-4,6,-6,13,-6,22v0,9,2,16,6,21v4,5,9,9,17,15v8,6,12,12,12,18v0,6,-4,10,-12,14v-8,4,-14,10,-17,18v-3,8,-5,23,-5,48v0,25,1,40,2,46r6,35v0,8,-2,12,-7,15v-5,3,-15,4,-29,4r-9,0v-7,0,-13,-2,-18,-8v-5,-6,-8,-11,-8,-17v0,-6,1,-13,3,-21v2,-8,4,-14,5,-21v1,-7,2,-19,2,-39v0,-20,-2,-34,-4,-42v-2,-8,-6,-14,-11,-19v-5,-5,-8,-10,-8,-15","w":156},"g":{"d":"29,-117r0,-7v0,-14,3,-27,7,-40v4,-13,9,-23,15,-30v13,-16,32,-24,56,-24v7,0,16,2,27,6v11,4,17,7,18,7v1,0,3,-2,7,-5v4,-3,10,-4,17,-4v7,0,13,1,18,4v5,3,7,8,7,14r0,5v0,10,-1,24,-3,42v-2,18,-4,35,-4,54v0,19,1,36,3,52v2,16,2,30,2,42v0,24,-9,44,-26,59v-17,15,-37,23,-63,23v-20,0,-39,-5,-56,-13v-13,-6,-20,-14,-20,-24v0,-4,2,-7,6,-10v4,-3,7,-5,12,-5v5,0,14,3,27,7v13,4,25,6,37,6v12,0,21,-4,29,-14v8,-10,12,-24,12,-42v0,-5,-3,-5,-9,-2r-4,2v-3,2,-7,3,-12,5v-5,2,-13,4,-24,4v-22,0,-41,-10,-55,-29v-7,-9,-13,-21,-17,-37v-4,-16,-7,-31,-7,-46xm78,-105v0,14,3,26,9,38v6,12,13,18,22,18r6,0v11,0,19,-6,25,-19v6,-13,10,-27,10,-43r0,-11v0,-18,-3,-32,-9,-41v-6,-9,-14,-14,-23,-14r-3,0r-1,0v-10,0,-19,6,-26,19v-7,13,-10,26,-10,41r0,12","w":236},"h":{"d":"28,-281v0,-10,10,-14,30,-14r6,0v11,0,17,3,20,8v3,5,4,20,4,43v0,23,1,36,2,40v1,4,3,5,6,5v3,0,11,-1,22,-4v11,-3,20,-5,29,-5v9,0,17,3,26,8v9,5,17,13,23,23v6,10,9,34,9,72v0,28,1,48,4,60v0,2,1,5,3,10v2,6,3,10,3,14v0,7,-3,12,-7,15v-4,3,-12,5,-23,5v-11,0,-20,-1,-25,-4v-5,-3,-9,-8,-9,-16r2,-22v2,-52,2,-79,2,-81v0,-15,-1,-25,-5,-31v-4,-6,-9,-9,-17,-9v-8,0,-15,2,-22,6v-7,4,-11,12,-15,21v-4,9,-6,29,-6,60v0,11,2,22,4,36v2,14,3,22,3,25v0,3,-2,6,-6,10v-4,4,-10,6,-18,6r-7,0v-15,0,-24,-1,-28,-4v-4,-3,-7,-7,-7,-14r3,-16v0,0,3,-21,4,-32v1,-14,2,-30,2,-46v0,-22,-1,-45,-3,-71v-1,-11,-1,-19,-1,-26r-1,-24v0,-13,-1,-24,-3,-33v-2,-9,-4,-14,-4,-15","w":243},"i":{"d":"24,-193v0,-5,3,-8,9,-10v6,-2,15,-2,30,-2r5,-1r8,0v5,0,9,3,11,9v1,2,1,14,1,37r0,64r0,14v0,13,2,26,6,39v4,13,6,21,6,25v0,4,-2,8,-6,12v-4,4,-9,6,-15,6r-32,0v-9,0,-15,-2,-18,-5v-3,-3,-4,-7,-4,-12v0,-5,2,-12,5,-20v3,-8,5,-16,6,-24v1,-8,1,-23,1,-46v0,-23,0,-37,-1,-44v-1,-7,-2,-15,-6,-23v-4,-8,-6,-14,-6,-19xm31,-265v0,-12,3,-20,8,-24v5,-4,12,-5,20,-5r7,0v8,0,14,2,19,5v5,3,7,11,7,22r0,1r0,5v0,6,-3,11,-8,15v-5,4,-11,5,-19,5r-7,0v-18,0,-27,-8,-27,-24","w":125},"j":{"d":"-9,66v0,-7,4,-12,10,-17v3,-2,8,-5,17,-7v9,-2,16,-6,20,-13v4,-7,5,-34,5,-79v0,-45,-1,-73,-2,-83v-1,-10,-3,-21,-7,-33v-4,-12,-5,-20,-5,-25v0,-5,3,-9,8,-11v8,-3,20,-4,38,-4v9,0,14,5,16,16v2,7,3,31,3,70r0,65v0,37,-1,60,-3,73v-2,13,-6,24,-11,33v-5,9,-13,17,-24,23v-11,6,-21,9,-32,9r-8,0v-17,0,-25,-6,-25,-17xm37,-264r0,-7r1,-5v0,-6,3,-11,8,-14v5,-3,12,-5,20,-5r5,0r8,0v0,0,8,2,12,5v4,3,6,8,6,14v1,2,1,3,1,4r0,7r-1,6v0,5,-2,8,-6,12v-5,4,-11,7,-19,7r-8,0v-18,0,-27,-8,-27,-24","w":127},"k":{"d":"23,-282r0,-5v0,-5,2,-8,8,-10v6,-2,14,-3,26,-3r7,0v8,0,13,1,16,4v3,3,4,11,4,23r0,6v0,5,-1,11,-1,18r0,24v0,63,3,94,9,94v5,0,16,-9,30,-28v5,-6,9,-13,13,-20v4,-7,8,-11,13,-14v5,-3,15,-4,31,-4v16,0,25,3,25,9v0,3,-9,13,-28,30v-19,17,-28,30,-28,37v0,10,13,31,38,64v25,33,38,49,38,50v0,4,-5,6,-16,6r-7,0v-21,0,-36,-3,-43,-9v-4,-3,-9,-10,-13,-19v-4,-9,-9,-17,-13,-24v-15,-23,-24,-35,-29,-35v-6,0,-9,6,-9,18v0,5,0,13,2,21v2,8,3,12,3,13v0,11,-3,18,-9,21v-6,3,-16,4,-29,4v-13,0,-22,-1,-26,-3v-4,-2,-6,-8,-6,-17r0,-5r1,-9r1,-11v2,-16,2,-47,2,-91r0,-24r0,-58v-1,-17,-3,-30,-6,-39v-3,-9,-4,-13,-4,-14","w":232},"l":{"d":"25,-288v0,-5,3,-8,9,-10v6,-2,18,-3,38,-3v9,0,14,5,15,14r0,50r0,66r1,8r0,8r0,12v1,11,1,22,1,32v0,10,1,22,4,36v3,14,6,27,9,36v3,9,5,16,5,20v0,8,-3,14,-9,17v-3,2,-10,3,-20,3r-18,0v-11,0,-18,-2,-23,-5v-5,-3,-7,-9,-7,-18r4,-28r1,-25r1,-11v1,-9,1,-34,1,-75v0,-41,0,-66,-1,-75v-1,-9,-2,-17,-4,-24r-4,-12v-2,-6,-3,-11,-3,-16","w":129},"m":{"d":"27,-45v3,-8,4,-14,5,-18v1,-4,1,-14,1,-28r0,-31r0,-17r0,-17r-1,-15v0,-11,1,-19,3,-21v3,-5,8,-7,18,-7v10,0,19,3,28,7v1,0,3,2,7,5v4,3,8,4,10,4v2,0,8,-1,18,-5v10,-4,19,-6,28,-6v11,0,23,4,34,9v14,7,22,10,23,10v1,0,6,-2,13,-7v7,-5,12,-8,13,-9v13,-8,25,-11,36,-11v10,0,20,3,29,9v8,5,15,13,20,24v5,11,8,36,8,74v0,15,2,30,5,43v3,13,4,20,4,21v0,11,-3,19,-9,23v-6,4,-15,6,-25,6v-10,0,-16,-1,-19,-4v-3,-3,-4,-9,-4,-16r0,-13r0,-8r0,-16r-1,-25r0,-27v0,-34,-9,-51,-27,-51v-13,0,-22,6,-27,17v-6,13,-8,39,-8,80r3,30v0,11,-4,19,-12,22v-5,2,-15,3,-29,3v-14,0,-23,-2,-26,-5v-3,-3,-5,-6,-5,-10v0,-4,1,-10,2,-20v1,-10,2,-20,2,-28v0,-37,-2,-63,-7,-77v-3,-10,-10,-15,-19,-15v-12,0,-22,8,-29,22v-5,9,-7,28,-7,60r1,55v0,10,-1,17,-6,21v-5,4,-10,6,-17,6v-14,0,-24,-4,-30,-10v-4,-4,-6,-10,-6,-17v0,-5,1,-10,3,-17","w":352},"n":{"d":"21,-22v0,-6,2,-13,5,-20v5,-13,7,-41,7,-83v0,-16,-1,-29,-3,-40v-2,-11,-3,-17,-3,-20v0,-6,3,-10,9,-12v6,-2,14,-3,25,-3v11,0,19,2,23,6r3,3v3,5,6,7,9,7v3,0,7,-1,13,-4v6,-3,12,-6,19,-9v7,-3,16,-4,27,-4v11,0,21,3,30,9v9,6,15,14,19,26v2,6,5,22,6,46v1,24,3,40,4,49v1,9,3,17,6,24v3,7,4,14,4,19v0,8,-2,13,-8,17v-4,3,-16,4,-35,4v-8,0,-14,-1,-17,-4v-3,-3,-5,-9,-5,-18r1,-4v1,-4,0,-16,0,-33v0,-39,-3,-65,-8,-80v-5,-15,-14,-22,-27,-22v-8,0,-14,2,-20,6v-6,4,-10,9,-13,15v-5,12,-8,35,-8,68v0,7,1,18,3,31v2,13,2,21,2,21v0,15,-13,23,-40,23r-6,0v-9,0,-15,-1,-18,-4v-3,-3,-4,-8,-4,-14","w":243},"o":{"d":"26,-93r0,-7r0,-4v0,-13,2,-27,7,-41v10,-29,29,-50,54,-61v11,-5,22,-7,33,-7r10,0v11,0,23,3,33,8v10,5,19,11,26,20v7,9,13,19,17,31v4,12,6,25,6,37r0,7v0,32,-9,59,-29,82v-9,10,-19,18,-31,23v-12,5,-25,8,-38,8v-27,0,-48,-9,-64,-27v-8,-10,-15,-21,-19,-34v-4,-13,-5,-24,-5,-35xm78,-101v0,21,4,38,12,51v8,13,17,20,28,20v1,0,3,-1,4,-1v10,0,18,-7,25,-20v7,-13,11,-29,11,-49r0,-9v0,-20,-4,-36,-11,-50v-7,-14,-17,-21,-27,-21r-5,0v-9,0,-17,6,-25,19v-8,13,-12,30,-12,51r0,9","w":236},"p":{"d":"30,41v3,-9,5,-26,7,-51v2,-25,3,-47,3,-67r1,-21r0,-10r0,-10v0,-28,-1,-47,-4,-57v-3,-10,-4,-15,-4,-16v0,-10,11,-16,33,-16v8,0,15,2,20,6v5,4,8,5,9,5v1,0,7,-2,17,-7v10,-5,19,-8,27,-8r4,0v33,0,55,17,66,51v4,13,6,28,6,45v0,33,-11,60,-30,82v-9,10,-18,17,-28,21v-10,4,-22,6,-34,6v-12,0,-23,3,-31,9v-4,3,-6,7,-6,12v0,5,2,14,6,24v4,10,5,17,5,20v0,14,-9,22,-27,22r-5,0v-17,0,-27,-1,-32,-4v-5,-3,-8,-7,-8,-15v0,-5,2,-13,5,-21xm91,-91v0,37,10,54,31,54r3,0v11,0,20,-7,27,-20v7,-13,10,-27,10,-43r0,-14v0,-3,-1,-4,-1,-6v0,-14,-3,-27,-11,-40v-6,-9,-13,-14,-22,-14r-4,0v-9,0,-18,5,-25,16v-5,7,-7,18,-7,31r0,2r-1,2r0,14r0,18","w":239},"q":{"d":"27,-109r0,-6v0,-28,7,-50,20,-67v7,-8,15,-15,25,-21v10,-6,21,-9,32,-9r4,0v6,0,16,2,27,6v11,4,19,6,20,6v1,0,4,-1,9,-3v5,-2,10,-3,16,-3v12,0,20,5,23,16r0,58r0,5r0,10r0,20r2,40r2,47v0,14,0,25,2,31v2,6,4,12,7,19v3,7,4,14,4,22v0,8,-4,13,-10,16v-6,3,-18,5,-36,5r-4,0v-6,0,-11,-2,-15,-5v-4,-3,-7,-7,-7,-12v0,-5,2,-12,5,-22v3,-10,4,-20,4,-30v0,-13,-12,-20,-35,-20r-13,1v-23,0,-42,-10,-58,-29v-16,-20,-24,-45,-24,-75xm78,-102v0,17,3,33,10,46v7,13,16,20,25,20r5,0v11,0,20,-6,25,-17v5,-11,8,-24,8,-39r0,-6r0,-9r0,-12v0,-40,-10,-60,-32,-60r-2,0r-1,1v-9,0,-18,6,-26,18v-8,12,-12,27,-12,43r0,4r0,11","w":240},"r":{"d":"26,-185v0,-6,3,-9,8,-12v5,-3,14,-4,28,-4v14,0,22,2,25,5v1,1,3,4,5,9v1,2,2,3,4,3v2,0,7,-2,16,-9v9,-7,19,-10,28,-10v9,0,14,2,18,6v4,4,6,11,6,18v0,7,-3,13,-7,17v-4,4,-10,6,-16,6r-20,-2v-12,0,-21,6,-27,19v-5,10,-8,28,-8,53v0,12,1,24,5,37v4,13,6,22,6,27v0,9,-3,15,-11,18v-8,3,-18,4,-31,4v-13,0,-21,-1,-25,-3v-4,-3,-5,-7,-5,-13v0,-5,1,-12,4,-20v2,-5,3,-11,4,-19v1,-8,2,-22,2,-44v0,-22,0,-36,-1,-44v-1,-8,-3,-16,-5,-25v-2,-9,-3,-15,-3,-17","w":174},"s":{"d":"18,-36v0,-12,5,-18,14,-18v6,0,15,5,28,13v13,8,24,12,34,12v10,0,18,-2,24,-6v6,-4,8,-11,8,-18v0,-7,-5,-14,-15,-20v-2,-1,-12,-6,-31,-14v-19,-8,-32,-16,-39,-23v-12,-11,-19,-25,-19,-41v0,-16,6,-30,19,-41v13,-11,28,-16,46,-16r11,0v26,0,43,2,53,7v10,5,15,13,15,25v0,12,-5,18,-15,18v-5,0,-13,-4,-24,-10v-11,-6,-21,-10,-30,-10v-9,0,-16,2,-21,6v-5,4,-8,9,-8,15v0,6,5,12,13,17v3,2,14,7,34,16v20,9,34,16,41,23v12,11,18,26,18,43v0,17,-7,32,-21,43v-14,11,-31,17,-53,17r-6,0v-30,0,-51,-4,-61,-10v-10,-6,-15,-16,-15,-28","w":191},"t":{"d":"15,-187r0,-4v0,-5,3,-9,9,-11v9,-4,14,-7,16,-10v2,-3,4,-10,7,-21v3,-11,6,-20,10,-24v4,-4,9,-6,17,-6v8,0,14,3,17,8v1,1,1,7,4,17v3,10,6,16,10,20v4,4,10,8,20,11v10,3,15,8,15,15v0,6,-3,11,-8,15v-2,1,-7,3,-15,6v-8,3,-13,6,-16,11v-4,8,-7,27,-7,55v0,28,2,46,6,53v4,7,12,10,22,12v10,2,15,4,18,6v3,2,4,7,4,13v0,6,-3,10,-8,13v-10,6,-21,9,-34,9v-13,0,-24,-3,-32,-7v-8,-4,-14,-12,-19,-22v-5,-10,-7,-33,-7,-68v0,-35,-1,-56,-3,-62v-2,-6,-6,-11,-12,-14v-9,-5,-14,-10,-14,-15","w":162},"u":{"d":"19,-187r0,-4v0,-8,7,-13,21,-13v20,0,31,2,35,7v4,5,6,21,6,47r1,29v0,34,2,56,7,68v5,12,14,18,28,18v7,0,14,-2,20,-7v6,-5,10,-9,13,-15v5,-12,8,-35,8,-70r-7,-51v0,-9,3,-15,9,-19v6,-4,18,-6,37,-6v6,0,10,2,12,6v2,4,3,14,3,27v0,13,-1,21,-1,25r0,5v-2,18,-3,34,-3,48v0,13,1,25,3,34r3,15v2,7,2,12,2,14r0,4v0,5,-4,10,-12,14v-8,4,-18,5,-32,5v-4,0,-9,-2,-14,-5v-5,-3,-8,-5,-9,-5v-1,0,-8,3,-19,8v-11,5,-21,7,-28,7r-5,0v-11,0,-20,-2,-30,-7v-10,-5,-18,-12,-24,-22v-8,-13,-12,-38,-12,-74v0,-11,-1,-23,-2,-36v-1,-13,-3,-24,-6,-33v-3,-9,-4,-13,-4,-14","w":240},"v":{"d":"9,-188v0,-11,6,-17,17,-17r9,0v22,0,37,4,42,12v2,3,3,11,4,21v1,10,4,23,9,39v15,44,23,67,25,67v4,0,13,-23,27,-67v6,-18,9,-32,11,-43v2,-11,3,-18,5,-20v4,-6,14,-9,33,-9v12,0,19,5,19,13r0,3v0,4,-6,15,-18,35v-3,5,-13,29,-30,71r-30,71v-5,8,-11,11,-20,11r-4,0v-11,0,-19,-4,-24,-14v-1,-2,-11,-25,-27,-67v-16,-42,-28,-69,-36,-81v-8,-12,-12,-20,-12,-25","w":219},"w":{"d":"13,-188v0,-11,9,-16,26,-16v17,0,29,5,35,17v2,5,3,12,5,23v2,11,4,21,6,31v9,36,16,55,20,55v5,0,11,-15,18,-45v8,-39,14,-61,16,-65v5,-8,14,-13,29,-13v10,0,17,6,22,15v2,4,7,22,16,57v9,35,15,52,20,52v4,0,11,-19,21,-57v2,-7,4,-18,7,-33v3,-15,5,-24,6,-26v4,-7,13,-11,26,-11v13,0,20,6,20,17v0,5,-2,12,-5,20r-12,25v-2,5,-8,23,-18,53r-3,7v-1,4,-1,4,-5,16r-12,37v-3,7,-8,13,-13,17v-5,4,-10,7,-15,7v-9,0,-17,-6,-24,-17v-3,-5,-10,-24,-21,-55v-11,-31,-17,-47,-19,-47v-2,0,-8,14,-17,42v-9,28,-16,47,-21,57v-7,13,-14,20,-22,20v-13,0,-23,-7,-30,-21v-2,-4,-8,-22,-18,-53v-10,-31,-15,-51,-19,-59v-12,-28,-19,-45,-19,-50","w":318},"x":{"d":"19,-5v0,-4,10,-20,31,-47v21,-27,32,-43,32,-49v0,-4,-10,-19,-30,-48v-20,-29,-29,-44,-29,-47v0,-6,3,-9,10,-10v7,-1,18,-2,32,-2v14,0,23,3,28,8v2,2,4,6,5,11v1,5,2,10,3,13v7,20,13,29,18,29v5,0,11,-8,20,-25v2,-5,4,-11,6,-18v2,-7,5,-12,8,-14v3,-2,11,-3,26,-3v15,0,22,2,22,8v0,2,-10,16,-29,40v-19,24,-28,39,-28,46v0,4,10,22,31,52v21,30,32,47,32,49v0,6,-3,10,-8,11v-5,1,-19,1,-40,1v-12,0,-21,-3,-25,-9v-2,-2,-3,-7,-4,-13v-1,-6,-3,-11,-5,-16v-9,-20,-15,-29,-19,-29v-4,0,-10,9,-20,27v-4,7,-7,14,-9,21v-2,7,-3,11,-3,12v-4,5,-10,8,-21,8r-17,0v-12,0,-17,-2,-17,-6","w":225},"y":{"d":"20,-192v0,-6,2,-10,7,-12v5,-2,13,-3,24,-3v11,0,19,1,24,4v5,3,9,6,11,10v2,4,2,11,3,20v1,9,5,27,13,54v8,27,14,40,16,40v3,0,11,-19,23,-58v3,-11,6,-25,9,-40v3,-15,4,-23,4,-23v3,-5,11,-7,26,-7v15,0,22,4,22,12r0,4v0,1,-6,15,-18,42v-1,3,-12,33,-33,90v-21,57,-34,89,-37,95v-15,30,-32,45,-52,45r-5,0v-9,0,-17,-1,-22,-5v-5,-4,-8,-9,-8,-14v0,-5,4,-11,11,-16v2,-2,7,-3,15,-6v8,-3,14,-7,19,-12v9,-11,13,-24,13,-40v0,-9,-10,-41,-31,-94v-7,-18,-14,-35,-22,-52v-8,-17,-12,-28,-12,-34","w":221},"z":{"d":"17,-12r0,-4v0,-10,17,-36,50,-79v33,-43,49,-68,49,-72v0,-4,-6,-6,-17,-6v-15,0,-28,2,-41,6v-13,4,-21,6,-26,6v-5,0,-7,-1,-9,-5v-2,-3,-2,-8,-2,-15r0,-2v0,-16,7,-24,21,-24r0,0r5,0r15,1r21,0r39,0v33,0,51,1,54,2v6,2,9,6,9,13v0,7,-3,16,-9,25v-6,9,-21,31,-48,66v-27,35,-40,54,-40,59v0,5,5,7,17,7v12,0,21,-1,29,-3r24,-6v0,0,15,-4,20,-4v9,0,13,5,13,16r0,5v0,8,-1,14,-4,17v-5,6,-13,8,-23,8r-5,0r-5,0r-10,0r-55,0v-35,0,-55,0,-60,-1v-8,-1,-12,-5,-12,-10","w":206},"{":{"d":"22,-122v0,-8,4,-14,11,-18v11,-6,18,-13,21,-19v3,-6,5,-19,5,-38r-1,-21r0,-27v0,-34,14,-56,42,-66v10,-4,21,-5,34,-5v6,0,9,1,9,4r0,4v0,6,-5,14,-16,24v-11,10,-18,16,-19,18v-4,7,-6,20,-6,39r1,36v0,18,-2,31,-6,38v-4,7,-8,12,-12,15v-4,3,-7,6,-11,8v-4,2,-6,4,-6,5v0,1,2,2,5,4v11,7,18,15,23,25v5,10,7,24,7,46r0,5v-1,12,-1,25,-1,36v0,11,3,20,7,28v1,2,7,9,18,18v11,9,16,17,16,24v0,5,-4,7,-11,7r-4,0v-12,0,-23,-2,-33,-6v-10,-4,-17,-11,-23,-18v-10,-12,-14,-31,-14,-58r1,-48v0,-14,-3,-25,-8,-33v-3,-4,-9,-8,-17,-13v-8,-5,-12,-9,-12,-14","w":164},"|":{"d":"55,-294v0,-8,0,-14,1,-16v1,-2,4,-3,9,-3r12,0v7,0,13,1,14,3v1,2,2,7,2,15r0,129r-1,5r0,129r1,17r0,78v0,10,-4,14,-11,14r-12,0v-9,0,-14,-3,-15,-10r0,-116r0,-228r0,-17","w":147},"}":{"d":"22,-308v0,-5,4,-8,10,-8r4,0v21,0,38,7,51,20v12,12,19,31,19,56r-2,54v0,14,2,24,6,30v4,6,10,11,16,14v10,5,15,11,15,17v0,6,-5,12,-14,18v-9,6,-16,13,-19,19v-3,6,-4,18,-4,37r1,21r0,29v0,20,-6,37,-19,50v-13,13,-30,19,-50,19r-5,0v-6,0,-9,-2,-9,-7v0,-5,6,-13,17,-24v11,-11,16,-18,17,-19v4,-8,7,-22,7,-43r-1,-6r0,-10r0,-16v0,-18,2,-31,6,-38v4,-7,8,-14,13,-18r16,-13r-15,-10v-6,-5,-11,-12,-15,-20v-4,-8,-5,-22,-5,-41r0,-21v0,-7,1,-15,1,-24v0,-9,-2,-17,-5,-23v-3,-6,-11,-12,-21,-20v-10,-8,-15,-16,-15,-23","w":164},"~":{"d":"21,-115v0,-10,6,-22,18,-33v12,-11,24,-17,36,-17r8,0v9,0,23,6,43,16v20,10,34,15,41,15v7,0,14,-5,22,-14v8,-9,14,-14,20,-14v9,0,14,5,14,13r0,5v0,11,-8,22,-22,34v-10,9,-22,13,-33,13r-5,0v-11,0,-25,-5,-44,-15v-19,-10,-33,-16,-41,-16v-8,0,-16,4,-24,14v-8,10,-15,15,-20,15v-9,0,-13,-6,-13,-16","w":243},"\u00a0":{"w":134},"\u00a1":{"d":"39,-199v0,-9,1,-15,4,-19v3,-4,10,-6,18,-6r12,-1r6,1v5,0,10,2,15,5v5,3,7,9,7,16r1,5r0,5r-1,6v0,3,-1,7,-4,11v-3,4,-8,5,-17,5r-12,1r-6,-1v-7,0,-13,-2,-17,-7v-4,-5,-6,-12,-6,-21xm43,32r0,-2r1,-15r0,-5r2,-27r3,-39v2,-26,3,-42,3,-51v0,-21,5,-31,16,-31r5,0v6,0,9,3,11,8v3,8,5,22,5,42r0,10v1,7,1,11,1,13r2,30r1,5v1,9,1,15,1,19v0,4,1,8,1,11r1,20r0,2r0,10r1,2r0,9r0,5v0,8,-2,12,-6,15v-4,3,-10,5,-19,5r-7,0v-9,0,-15,-1,-18,-4v-3,-3,-4,-8,-4,-16r0,-16","w":139},"\u00a2":{"d":"36,-112r0,-11v0,-12,2,-24,7,-37v5,-13,10,-23,17,-31v7,-8,16,-15,29,-20v21,-9,33,-13,35,-15v2,-2,7,-8,13,-20v4,-7,9,-11,16,-11v2,0,5,4,9,12v4,8,11,16,19,26v8,10,12,19,12,25v0,6,-2,11,-6,14v-4,3,-8,4,-12,4r-24,-4v-6,0,-10,3,-12,10v-7,23,-10,52,-10,85v0,8,2,14,5,18v3,4,7,6,11,6v4,0,11,-1,19,-3v8,-2,14,-4,17,-4v7,0,11,5,11,13v0,8,-9,17,-26,26v-11,6,-20,13,-25,21v-10,15,-16,23,-20,23r-2,0v-4,0,-7,-4,-9,-12v-2,-8,-5,-13,-9,-17v-4,-4,-12,-11,-25,-22v-13,-11,-22,-20,-26,-26v-9,-14,-14,-31,-14,-50xm84,-122r0,2r0,8v0,14,4,26,12,37v5,6,7,9,9,9r3,0v3,0,4,-3,4,-8r0,-7r1,-15r2,-15r0,-5v1,-4,1,-8,1,-10v0,-2,1,-4,1,-6v1,-5,1,-8,1,-11v0,-3,1,-5,1,-7r0,-5r4,-27v0,-7,-2,-11,-4,-11v-9,0,-17,7,-24,19v-7,12,-11,25,-11,37r0,3r0,7r0,5","w":231},"\u00a3":{"d":"26,-19v0,-10,6,-21,18,-35v12,-14,18,-27,18,-41v0,-14,-5,-24,-13,-29v-11,-7,-17,-14,-17,-24v0,-2,2,-6,7,-10v5,-4,9,-8,10,-11v1,-3,4,-15,8,-36v4,-21,10,-38,19,-48v18,-21,44,-31,78,-31v16,0,29,3,39,8v10,5,14,13,14,23v0,4,-2,9,-6,12v-4,3,-9,5,-13,5v-4,0,-10,-2,-19,-6v-8,-3,-16,-5,-23,-5v-12,0,-22,5,-29,15v-7,11,-11,25,-11,42v0,9,2,16,6,20v4,4,11,8,21,11v10,3,16,5,19,7v3,2,4,7,4,14v0,5,-5,10,-15,14v-15,5,-24,9,-27,14v-11,16,-16,34,-16,52v0,6,2,10,8,13v6,3,15,4,27,4v12,0,25,-2,40,-5v15,-3,24,-4,29,-4v5,0,8,2,11,7v3,5,4,10,4,18v0,8,-4,14,-12,18v-8,4,-18,7,-29,7r-13,0v-9,0,-24,0,-44,-2v-20,-2,-41,-3,-62,-3v-21,0,-31,-4,-31,-14"},"\u00a4":{"d":"34,-57v0,-3,3,-9,11,-17v8,-8,11,-14,11,-17v0,0,-1,-7,-5,-19v-3,-11,-5,-23,-5,-34v0,-12,2,-25,7,-36v2,-6,3,-10,3,-11v0,-5,-3,-11,-11,-18v-8,-7,-11,-12,-11,-14r0,-3v0,-2,2,-5,6,-10v4,-5,8,-7,10,-7v2,0,6,3,13,10v7,7,12,10,16,10r0,0v1,0,7,-1,15,-4v8,-2,16,-4,24,-4v9,0,19,2,29,5r10,3v5,0,11,-3,19,-9v8,-6,12,-10,14,-10v2,0,7,3,12,8v5,5,8,9,8,12v0,3,-4,9,-11,17v-7,8,-12,14,-12,17v0,3,1,8,3,13v2,5,4,11,6,17v2,6,2,13,2,22v0,12,-2,23,-6,32v-4,9,-5,14,-5,17v0,3,3,9,11,17v8,8,12,12,12,14r0,3v0,2,-2,6,-6,10v-4,4,-7,6,-10,6v-3,0,-7,-3,-14,-10v-7,-7,-12,-10,-15,-10v-3,0,-7,1,-12,3v-5,2,-10,3,-13,4v-3,1,-8,1,-15,1v-9,0,-18,-1,-26,-4v-8,-3,-12,-4,-13,-4v-5,0,-10,4,-18,10v-8,6,-13,10,-15,10v-2,0,-6,-3,-11,-8v-5,-5,-8,-9,-8,-12xm78,-135v0,13,4,24,12,35v8,11,19,16,31,16v13,0,23,-4,30,-13v10,-12,14,-25,14,-38r0,-9v0,-13,-5,-25,-14,-38v-7,-9,-16,-14,-27,-14r-4,0v-11,0,-22,6,-30,17v-8,11,-12,22,-12,34r0,10","w":240},"\u00a5":{"d":"30,-265v0,-5,3,-9,9,-13v6,-4,14,-6,24,-6r7,0v12,0,20,4,23,11v1,2,2,4,2,9v1,9,4,22,10,40v13,38,23,57,27,57v3,0,11,-19,24,-55v5,-12,8,-23,10,-33v2,-10,3,-17,4,-18v4,-7,11,-10,21,-10v14,0,22,5,22,16v0,3,-6,16,-18,38v-12,22,-18,39,-18,51v0,5,3,12,6,19v3,7,5,12,5,13v0,6,-4,11,-13,17v-9,6,-13,12,-13,18v0,4,4,8,13,12v9,4,13,8,13,11v0,2,-6,9,-16,18v-10,9,-15,17,-15,25v0,1,0,4,1,9v1,5,2,10,2,17v0,7,-4,12,-13,16v-5,2,-14,3,-28,3v-14,0,-22,-1,-26,-3v-6,-4,-10,-9,-10,-17r2,-20v0,-7,-3,-15,-10,-23v-12,-14,-18,-21,-18,-22v0,-3,4,-6,13,-11v9,-5,13,-9,13,-12v0,-5,-4,-10,-13,-17v-9,-7,-13,-12,-13,-15v0,-1,2,-4,5,-11v3,-7,5,-14,5,-23v0,-9,-7,-25,-19,-49v-12,-24,-18,-37,-18,-42","w":244},"\u00a6":{"d":"57,-66r0,-5v0,-8,1,-12,2,-14v1,-2,4,-2,9,-2r15,0v6,0,9,2,10,6r0,42r0,58r0,6r0,9r1,6r0,5v0,10,-4,15,-10,15r-16,0v-6,0,-10,-3,-10,-6v0,-3,-1,-18,-1,-43r0,-71r0,-6xm57,-166r0,-17r0,-2r0,-78r0,-8r0,-18v0,-2,1,-4,1,-5v0,-3,6,-6,17,-6v11,0,16,3,17,6v0,2,1,16,1,43r0,75r0,6v0,9,-1,14,-2,15v-1,1,-6,2,-14,2r-6,0v-6,0,-11,0,-12,-2v-1,-2,-2,-5,-2,-11","w":154},"\u00a7":{"d":"39,17v0,-6,1,-11,4,-15v3,-4,6,-5,11,-5v6,0,13,3,22,9v11,8,22,12,31,12v9,0,18,-2,24,-7v6,-5,9,-12,9,-20v0,-8,-3,-16,-9,-22v-6,-6,-18,-15,-36,-27v-18,-12,-31,-23,-38,-32v-12,-14,-18,-32,-18,-52v0,-10,4,-20,10,-30v6,-10,9,-16,9,-17v0,-1,-2,-7,-6,-17v-4,-10,-6,-19,-6,-26v0,-18,6,-32,19,-44v13,-12,29,-17,50,-17v21,0,37,2,51,8v14,6,21,12,21,20r0,5v0,3,-2,6,-5,10v-3,4,-7,5,-12,5v-5,0,-12,-3,-22,-9v-10,-6,-20,-10,-28,-10v-8,0,-15,2,-21,7v-6,5,-10,11,-10,19v0,8,4,15,13,23v3,3,8,6,16,11r11,7v18,11,32,23,42,36v10,13,15,29,15,47v0,10,-2,21,-8,33v-6,12,-9,18,-9,20v0,2,1,5,4,10v3,5,5,10,7,15v2,5,2,11,2,19v0,18,-7,33,-20,45v-13,12,-31,18,-52,18r-7,0v-16,0,-30,-3,-44,-9v-14,-6,-20,-12,-20,-20xm73,-149v0,11,5,23,17,36v3,3,17,15,41,34v6,5,10,6,13,6v3,0,5,-2,8,-6v3,-4,5,-10,5,-16r0,-5v0,-10,-6,-20,-17,-30v-30,-27,-49,-41,-57,-41v-2,0,-3,2,-6,6v-3,4,-4,9,-4,16","w":226},"\u00a8":{"d":"26,-268r0,-4r0,-4r1,-4v0,-5,2,-9,6,-12v4,-3,9,-5,16,-5r4,0r6,0v4,0,7,2,10,5v3,3,4,8,4,16r0,6r0,7v0,5,-2,9,-5,12v-3,3,-8,5,-12,5v-1,0,-3,1,-6,1r-5,0v-2,0,-3,-1,-4,-1v-10,0,-14,-5,-14,-15v0,-2,-1,-2,-1,-3r0,-4xm109,-266r0,-7v1,-3,1,-5,1,-8v0,-3,2,-6,5,-10v3,-4,8,-5,13,-5r6,-1r3,0v13,0,19,4,19,13r1,4r0,6r0,2r-1,7v0,5,-1,9,-5,13v-4,4,-8,6,-13,6v-2,1,-5,1,-9,1r-1,-1r-4,0v-10,0,-14,-5,-14,-15","w":176},"\u00a9":{"d":"35,-138r0,-5v0,-19,4,-36,10,-54v6,-18,15,-33,27,-46v12,-13,26,-24,42,-32v16,-8,32,-12,49,-12r9,0v14,0,28,4,44,12v30,15,51,39,62,73v6,18,10,36,10,55r0,5v0,39,-11,72,-33,99v-12,14,-26,25,-42,33v-17,8,-33,12,-50,12v-17,0,-33,-4,-50,-12v-16,-7,-29,-17,-41,-30v-12,-13,-21,-28,-27,-45v-6,-17,-10,-35,-10,-53xm62,-135v0,14,3,30,8,44v11,29,29,49,52,61v13,7,25,10,38,10r7,0v13,0,25,-3,38,-10v13,-7,24,-16,33,-28v9,-12,16,-25,21,-40v5,-15,7,-28,7,-41r0,-8v0,-19,-4,-35,-10,-49v-13,-30,-32,-51,-57,-62v-11,-5,-22,-7,-35,-7v-27,0,-51,11,-71,33v-9,11,-17,24,-23,39v-6,15,-8,30,-8,46r0,12xm88,-138v0,-28,8,-50,24,-67v6,-7,14,-12,24,-16v10,-4,23,-7,41,-7v18,0,29,3,36,8v7,5,10,14,10,25v0,5,-3,8,-10,8v-2,0,-8,-2,-17,-8v-9,-6,-18,-9,-27,-9v-13,0,-23,6,-31,18v-8,12,-12,26,-12,44v0,18,4,32,12,43v8,11,20,16,35,16v7,0,15,-3,23,-7v8,-4,14,-6,20,-6v6,0,9,2,9,6v0,9,-6,17,-17,23v-11,6,-25,9,-42,9v-23,0,-41,-6,-54,-20v-15,-16,-24,-37,-24,-60","w":322},"\u00aa":{"d":"24,-258r0,-2v0,-6,6,-11,19,-16v13,-5,28,-8,43,-8v30,0,45,15,45,44r0,6r-1,7v-1,10,-1,15,-1,15r0,9v0,2,-1,5,-1,7v0,9,1,15,4,20v4,6,6,10,6,10r0,3v0,9,-9,13,-27,13v-4,0,-7,-2,-10,-5v-3,-3,-4,-4,-6,-4v-2,0,-7,2,-15,5v-8,3,-15,5,-20,5r-5,0v-8,0,-15,-3,-21,-10v-6,-7,-10,-16,-10,-26v0,-20,15,-34,45,-44v17,-6,26,-11,26,-16v0,-5,-1,-10,-5,-13v-4,-3,-9,-4,-15,-4v-6,0,-13,1,-20,6v-7,5,-14,7,-21,7v-7,0,-10,-3,-10,-9xm56,-184v0,6,3,10,8,10v1,0,2,1,3,1v1,0,2,-1,3,-1r4,0v0,0,2,-1,4,-1v2,0,5,-2,9,-6v4,-4,6,-7,6,-10v0,-1,0,-4,1,-9v1,-5,1,-8,1,-11v0,-3,-1,-4,-3,-4r-1,0r-10,2v-7,0,-12,3,-17,9v-5,6,-7,10,-7,12r-1,4r0,4","w":160},"\u00ab":{"d":"24,-111v0,-6,19,-29,57,-70v9,-9,16,-14,23,-14v7,0,10,3,10,8r0,3v0,5,-8,18,-24,39v-16,21,-24,31,-24,33v0,2,8,14,24,34v16,20,24,34,24,41v0,5,-3,8,-10,8v-7,0,-15,-5,-24,-15v-37,-40,-56,-61,-56,-67xm109,-112v0,-3,11,-17,34,-43v23,-26,37,-39,43,-39v8,0,12,3,12,8v0,7,-7,21,-23,41v-16,20,-24,31,-24,33v0,2,9,14,26,36v14,18,21,30,21,38v0,5,-4,8,-11,8v-6,0,-14,-4,-22,-13v-37,-40,-56,-63,-56,-69","w":220},"\u00ac":{"d":"22,-153v0,-5,2,-9,6,-9r3,1r6,0r6,0v4,0,8,1,12,1r72,0v58,0,89,0,92,2v3,2,5,16,5,43r0,7r0,6r0,7v1,12,1,20,1,24v1,6,1,11,1,15r0,6v0,4,-1,5,-3,5r-8,0v-11,0,-19,-2,-22,-6v-3,-4,-4,-14,-4,-30r-1,-13v0,-18,-2,-28,-8,-30v-4,-2,-29,-2,-75,-2v-46,0,-71,-1,-74,-2v-6,-2,-9,-10,-9,-25","w":249},"\u00ad":{"d":"21,-99r0,-14v0,-10,2,-16,7,-17v6,-1,26,-2,58,-2r49,-1v7,0,10,3,10,11r0,5r0,2v0,14,-3,21,-6,23v-3,2,-22,2,-58,2r-12,0r-8,1r-10,0r-16,0v-9,0,-14,-4,-14,-10","w":165},"\u00ae":{"d":"24,-153v0,-15,3,-30,10,-44v7,-14,16,-27,28,-38v12,-11,25,-19,41,-26v16,-7,33,-10,54,-10r5,0v16,0,31,3,46,9v30,12,50,33,62,63v4,11,7,24,7,39v0,32,-13,59,-39,81v-13,11,-28,19,-44,25v-16,6,-32,9,-47,9r-12,0v-15,0,-30,-3,-44,-9v-14,-6,-27,-14,-37,-24v-20,-19,-30,-42,-30,-69r0,-6xm62,-151v0,11,2,23,6,36v9,26,25,45,48,56v10,5,21,7,34,7v25,0,47,-11,65,-33v7,-9,14,-20,18,-33v4,-13,6,-25,6,-36r0,-10v0,-13,-2,-26,-7,-39v-10,-26,-27,-44,-50,-54v-9,-4,-18,-7,-28,-7v-2,0,-4,1,-6,1v-11,0,-22,3,-32,8v-21,11,-37,29,-47,55v-5,13,-7,26,-7,39r0,10xm100,-103v0,0,1,-3,3,-8v2,-5,2,-12,2,-19r0,-9v0,-6,1,-12,1,-17v0,-5,1,-10,1,-13r0,-8r0,-6r0,-7v0,-12,-1,-20,-2,-25v-1,-5,-1,-8,-1,-9v0,-4,10,-5,31,-5r17,-1v15,0,27,4,35,11v8,7,11,16,11,26v0,10,-4,19,-11,28v-7,9,-10,14,-10,15v0,1,1,3,4,8v3,5,7,11,10,17v3,6,7,13,11,18v4,5,6,9,6,12v0,3,-5,4,-13,4v-8,0,-14,-2,-18,-6v-1,-1,-5,-8,-13,-22v-8,-14,-14,-21,-19,-21v-7,0,-10,6,-10,17v0,4,1,9,3,15v2,6,2,9,2,10v0,6,-4,9,-12,9v-13,0,-20,-1,-23,-3v-3,-2,-5,-6,-5,-11xm132,-173v0,6,2,9,6,9r3,0r1,0r11,-1v1,0,3,-1,5,-1v2,0,5,-2,9,-5v4,-3,6,-7,6,-11v0,-2,1,-3,1,-5v0,-5,-2,-11,-6,-16v-3,-4,-7,-5,-12,-5r-14,-1v-7,0,-10,5,-10,16r0,20","w":288},"\u00af":{"d":"18,-266r0,-10v0,-6,3,-9,8,-9r109,-1v14,0,22,3,22,9r0,11v0,5,-2,7,-6,8v-4,1,-27,1,-68,1r-49,0v-11,0,-16,-3,-16,-9","w":175},"\u00b0":{"d":"24,-227r0,-5v0,-16,7,-30,20,-42v13,-12,29,-17,46,-17v17,0,31,4,41,14v10,10,16,21,16,34r0,6v0,15,-7,28,-20,40v-13,12,-27,18,-44,18r-6,0v-14,0,-27,-4,-37,-14v-10,-10,-16,-21,-16,-34xm58,-234v0,9,2,17,7,24v5,7,11,10,16,10r5,0r1,0v6,0,12,-3,17,-9v5,-6,8,-13,8,-22r0,-8v0,-9,-2,-16,-8,-22v-6,-6,-12,-9,-17,-9r-4,0r-1,0v-6,0,-10,3,-15,9v-5,6,-8,14,-8,22","w":171},"\u00b1":{"d":"23,-147r0,-7v0,-7,1,-10,3,-11v2,-1,14,-2,37,-2v23,0,37,-1,39,-3v2,-2,3,-12,3,-29v0,-17,0,-26,1,-28v1,-2,8,-3,19,-3v11,0,17,1,18,3v1,2,2,12,2,30v0,18,1,26,5,28v2,1,14,2,36,2v22,0,33,0,35,1v4,1,5,5,5,14r0,5v0,7,-1,11,-4,12v-3,1,-15,1,-37,1v-22,0,-35,2,-37,4v-2,2,-3,12,-3,28v0,16,-1,25,-2,27v-1,2,-5,4,-11,4r-19,0v-5,0,-7,-3,-8,-7r0,-25v0,0,-2,-25,-4,-27v-2,-2,-14,-4,-36,-4v-22,0,-34,0,-37,-1v-3,-1,-5,-5,-5,-12xm24,-10r0,-14v0,-7,2,-10,7,-11v2,0,28,-1,79,-1r74,0v23,0,37,0,39,1v2,1,3,4,3,9r0,8v0,9,-2,14,-5,15v-3,1,-20,1,-52,1r-132,0v-9,0,-13,-3,-13,-8","w":245},"\u00b2":{"d":"21,-266r0,-3v0,-8,6,-15,18,-22v12,-7,25,-10,38,-10r9,0v15,0,26,4,35,12v9,8,13,19,13,34v0,9,-3,19,-10,28v-7,9,-18,19,-34,32v-16,13,-23,21,-23,25v0,2,6,3,17,3v14,0,24,-1,31,-2v7,-1,12,-2,15,-2v6,0,9,5,9,16v0,11,-6,17,-17,17r-3,0r-11,-1v-7,0,-12,-1,-15,-1r-12,0r-16,0v-21,0,-33,-1,-35,-1v-5,-1,-7,-4,-7,-11v0,-7,4,-15,12,-25v4,-5,12,-13,26,-26v14,-13,23,-23,28,-30v5,-7,8,-16,8,-25v0,-4,-2,-8,-6,-12v-4,-4,-10,-6,-16,-6v-6,0,-13,4,-21,10v-8,6,-16,10,-24,10v-6,0,-9,-3,-9,-10","w":165},"\u00b3":{"d":"20,-161v0,-7,5,-11,17,-11v2,0,8,1,16,5v8,4,15,6,23,6v8,0,13,-2,18,-7v5,-5,7,-10,7,-17v0,-13,-7,-21,-22,-24v-12,-2,-18,-4,-18,-4v-3,-2,-5,-6,-5,-11v0,-4,4,-8,12,-11v8,-3,15,-6,19,-10v4,-4,6,-10,6,-17v0,-9,-6,-13,-19,-13v-6,0,-12,2,-20,5v-8,3,-14,5,-18,5v-7,0,-11,-4,-11,-11v0,-7,4,-13,14,-18v10,-5,24,-7,42,-7r4,0v31,0,46,11,46,32v0,11,-6,22,-17,32v-5,4,-7,8,-7,9v0,1,3,2,9,6v6,4,11,7,13,10v6,7,10,15,10,24v0,15,-6,29,-18,38v-12,9,-28,14,-49,14r-9,0v-14,0,-24,-2,-32,-7v-8,-5,-11,-11,-11,-18","w":165},"\u00b4":{"d":"49,-239v0,-9,11,-26,35,-53v7,-8,17,-12,28,-12r6,0v12,0,18,2,18,6v0,10,-17,28,-49,53v-9,7,-17,10,-25,10r-5,0r-3,0v-4,0,-5,-2,-5,-4","w":164},"\u00b5":{"d":"30,-172r0,-5v0,-10,3,-16,6,-18v3,-2,12,-3,28,-3v10,0,17,4,19,12v1,3,1,24,1,63v0,39,2,62,4,69v5,14,13,21,25,21v15,0,26,-7,32,-21v3,-8,5,-32,5,-73r-1,-26r0,-6r0,-16v0,-7,2,-11,6,-16v4,-5,12,-7,24,-7v12,0,20,5,22,15v1,6,2,24,2,56v0,32,0,51,1,58v1,7,3,14,6,24v3,10,5,17,5,22v0,11,-12,17,-35,17v-4,0,-9,-2,-16,-6v-7,-4,-12,-6,-15,-6v-3,0,-10,2,-20,6v-10,4,-20,7,-28,7v-8,0,-14,1,-17,4v-3,3,-4,15,-4,35v0,20,-2,33,-6,37v-4,4,-11,6,-20,6r-1,0v-9,0,-14,-1,-17,-4v-2,-3,-4,-10,-4,-23v0,-8,1,-17,2,-28v2,-22,3,-47,3,-77v0,-47,-2,-83,-5,-106v-1,-6,-2,-9,-2,-11","w":241},"\u00b6":{"d":"41,-203v0,-15,3,-28,8,-40v5,-12,12,-20,20,-26v8,-6,17,-11,28,-14v11,-3,26,-4,47,-4r14,0v19,0,31,1,37,4v4,2,6,6,6,12v0,1,-2,8,-6,20v-4,12,-7,25,-7,38r5,91r0,16r0,28r0,44v0,44,0,67,-1,69v-2,6,-5,10,-11,10v-7,0,-11,-8,-13,-23v-6,-65,-9,-141,-9,-225v0,-7,-1,-11,-2,-13v-1,-2,-6,-3,-15,-3r-3,2r1,52r1,14r0,27r0,13r0,13r0,7r0,13r-1,41v0,31,-1,52,-4,62v-3,10,-6,15,-13,15v-7,0,-11,-3,-12,-8v0,-1,-2,-23,-5,-66v-3,-43,-5,-66,-6,-69v-3,-11,-10,-21,-23,-31v-13,-10,-22,-20,-28,-31v-6,-11,-8,-23,-8,-38","w":245},"\u00b7":{"d":"35,-129v0,-11,2,-18,5,-22v3,-4,10,-5,20,-5r1,0r2,0r4,0v7,0,13,2,18,7v5,5,7,12,7,21r1,1r0,1r0,5r0,4r0,1r-1,5v0,11,-7,17,-21,17r-6,0v-10,0,-17,-3,-22,-8v-5,-5,-8,-12,-8,-22r0,-5","w":125},"\u00b8":{"d":"43,78v0,-6,7,-10,21,-12v14,-2,20,-7,20,-16v0,-4,-3,-8,-9,-12v-6,-4,-10,-7,-10,-10v0,-8,3,-16,10,-25v3,-4,9,-6,18,-6v4,0,6,1,6,4r-2,11v0,2,4,7,12,14v8,7,12,15,12,22r0,6v0,9,-4,15,-13,22v-9,7,-19,10,-32,10v-2,0,-4,1,-5,1r-8,0v-13,0,-20,-2,-20,-7r0,-2","w":167},"\u00b9":{"d":"32,-277v0,-3,3,-7,8,-9v20,-10,36,-15,48,-15v5,0,8,3,9,8v1,5,2,23,2,54v0,31,1,49,2,54v1,5,4,11,10,17v6,6,8,13,8,19v0,8,-9,12,-26,12r-22,0v-11,0,-20,-2,-26,-7v-2,-2,-3,-4,-3,-9v0,-5,3,-10,9,-16v6,-6,9,-11,10,-15v1,-4,3,-15,3,-33v0,-18,-2,-29,-4,-34v-2,-5,-8,-10,-16,-13v-8,-3,-12,-8,-12,-13","w":158},"\u00ba":{"d":"14,-205r0,-6v0,-18,7,-34,21,-47v14,-13,32,-19,53,-19r11,0v16,0,29,4,39,14v10,10,15,21,15,34v0,23,-8,41,-23,53v-15,12,-34,18,-56,18r-4,0r-7,0v-13,0,-24,-5,-34,-14v-10,-9,-15,-20,-15,-33xm61,-212r0,1r0,7r1,5v0,9,2,16,7,21v5,5,10,7,16,7v6,0,11,-4,15,-11v4,-7,6,-17,6,-29r0,-14r-1,-4r0,-5v0,-7,-2,-15,-6,-21v-4,-6,-8,-9,-14,-9r-3,0v-6,0,-11,3,-15,10v-4,7,-6,16,-6,26r0,7r0,9","w":165},"\u00bb":{"d":"30,-39v0,-5,6,-16,20,-35r3,-4v1,-2,1,-2,4,-6r3,-4v1,-2,1,-1,4,-5r13,-18v0,-2,-7,-14,-23,-34v-16,-20,-24,-34,-24,-40v0,-6,3,-9,10,-9v7,0,21,14,43,40v22,26,33,40,33,42v0,2,-13,17,-38,48v-19,23,-31,34,-38,34v-7,0,-10,-3,-10,-9xm114,-37r0,-2v0,-6,11,-24,35,-54v9,-11,13,-18,13,-19v0,-1,-8,-12,-24,-33v-16,-21,-24,-34,-24,-40v0,-6,4,-10,12,-10v6,0,20,13,42,40v22,27,33,41,33,44v0,3,-11,17,-34,43v-23,26,-37,39,-42,39v-7,0,-11,-3,-11,-8","w":220},"\u00bc":{"d":"32,-261v0,-5,3,-9,7,-11v18,-10,31,-14,39,-14r6,0v5,0,8,3,9,11v1,8,2,26,2,53v0,27,0,42,1,47v1,5,4,10,8,17v4,7,6,13,6,18v0,4,-1,6,-4,8v-5,4,-10,6,-18,6r-21,0v-7,0,-12,-2,-17,-5v-5,-3,-7,-7,-7,-10v0,-3,4,-12,12,-25v3,-6,5,-17,5,-34v0,-17,-1,-28,-4,-35v-3,-7,-8,-12,-14,-16v-6,-4,-10,-8,-10,-10xm71,-1v0,-8,53,-96,160,-265v7,-11,14,-17,20,-17v11,0,17,1,17,3v0,2,-3,7,-7,15v-42,75,-93,158,-154,251v-7,11,-14,16,-19,16v-11,0,-17,-1,-17,-3xm193,-55v0,-8,21,-39,62,-94v5,-7,10,-10,17,-10r5,0v8,0,12,1,14,4v1,1,1,8,1,21r0,11r-1,3r0,12r0,3r-1,11v0,17,4,28,12,34v5,3,7,6,7,7v0,10,-2,18,-6,23v-4,5,-5,8,-5,10v0,11,-2,17,-5,20v-3,3,-9,4,-17,4r-10,0v-8,0,-13,-6,-13,-18r1,-10v0,-1,-3,-3,-8,-6v-5,-3,-12,-5,-22,-5v-10,0,-18,-1,-23,-4v-5,-3,-8,-8,-8,-16xm218,-62v0,0,0,1,1,1r15,0r1,-1v12,0,19,0,20,-2v1,-2,2,-11,2,-28r1,-2r0,-3r0,-1r0,-3r0,-2r0,-2r0,-3r0,-8r0,-1v0,0,-2,3,-6,8r-2,2r-1,2r-1,1r0,1v-1,2,-2,2,-2,3r-21,29v-5,6,-7,9,-7,9","w":337},"\u00bd":{"d":"36,-272v20,-9,33,-14,40,-14v7,0,10,3,12,8v2,5,3,22,3,52v0,30,0,46,1,51v1,5,4,11,8,19v4,8,6,14,6,18v0,9,-8,13,-26,13r-15,0v-7,0,-13,-2,-18,-5v-5,-3,-8,-7,-8,-11r12,-24v3,-7,5,-18,5,-34v0,-16,-1,-28,-4,-35v-3,-7,-8,-12,-14,-17v-7,-5,-10,-9,-10,-13v0,-3,3,-6,8,-8xm66,-1v0,-2,4,-10,10,-21v52,-91,101,-172,148,-244v8,-11,16,-17,24,-17v8,0,13,1,13,4v0,3,-3,8,-8,17v-63,108,-113,192,-152,251v-6,9,-14,14,-22,14v-8,0,-13,-2,-13,-4xm202,-7r0,-3v0,-7,10,-21,30,-41v20,-20,31,-33,36,-39v5,-6,8,-13,8,-20v0,-7,-2,-13,-6,-17v-4,-4,-10,-6,-16,-6v-6,0,-13,4,-21,10v-8,6,-15,9,-22,9v-5,0,-8,-4,-8,-12v0,-8,6,-16,18,-23v12,-7,25,-10,41,-10v16,0,28,5,37,13v9,8,13,19,13,33v0,9,-2,17,-8,25v-6,8,-17,19,-33,33v-16,14,-24,23,-24,26v0,2,5,3,13,3r2,0v16,0,26,-1,34,-2v8,-1,12,-1,13,-1v5,1,7,7,7,17v0,9,-5,14,-17,14r-4,0r-3,0r-8,0r-3,0r-35,-1v-30,0,-44,-3,-44,-8","w":339},"\u00be":{"d":"27,-146r0,-3v0,-8,6,-12,18,-12r0,0v3,0,8,2,16,6v8,4,15,7,21,7v7,0,14,-3,19,-8v4,-4,6,-10,6,-17v0,-7,-2,-12,-7,-16v-5,-4,-8,-6,-11,-7r-22,-4v-4,-2,-5,-5,-5,-10v0,-3,8,-8,22,-16v10,-5,15,-13,15,-21v0,-5,-2,-8,-5,-11v-3,-3,-8,-4,-13,-4v-6,0,-14,2,-22,6v-7,3,-13,5,-17,5v-6,0,-9,-4,-9,-11v0,-7,5,-12,13,-17v8,-5,21,-7,38,-7r5,0v31,0,46,11,46,33v0,7,-1,13,-5,17v-4,4,-7,8,-11,12v-4,4,-6,6,-6,7v0,1,3,3,9,7v14,8,21,19,21,33r0,4v0,14,-6,25,-18,34v-12,9,-27,13,-44,13v-17,0,-31,-1,-40,-5v-9,-4,-14,-9,-14,-15xm85,-1v0,-8,55,-97,163,-268v6,-9,11,-14,17,-14v11,0,17,1,17,3v0,2,-1,7,-6,15v-73,122,-125,206,-155,251v-7,11,-14,17,-19,17v-11,0,-17,-2,-17,-4xm205,-54v0,-8,20,-40,60,-94v6,-8,11,-11,17,-11r7,0v6,0,10,1,12,3v2,2,3,5,3,10v0,8,-1,13,-1,16r0,12r0,3r-1,8r0,17v0,15,4,26,12,31v4,3,7,5,7,7v0,9,-1,15,-4,19v-1,1,-3,2,-6,4v-1,1,-2,3,-2,8v0,12,-1,20,-5,22v-4,2,-12,4,-23,4r-5,0v-7,0,-11,-6,-11,-17r0,-5r1,-5v0,-2,-2,-5,-4,-6v-8,-4,-15,-6,-19,-6v-13,0,-22,-1,-28,-4v-6,-3,-10,-8,-10,-16xm229,-62v0,1,1,1,2,1r13,0r0,0v14,0,22,-1,23,-3v1,-2,2,-7,2,-15r0,-14r0,-2r0,-2r0,-3r0,-1r0,-3r0,-2r1,-4r0,-6r-1,-1r-12,17v-7,10,-11,16,-12,18v-1,2,-4,6,-9,11v-5,5,-7,8,-7,9","w":344},"\u00bf":{"d":"26,-5v0,-15,4,-28,10,-38v6,-10,16,-21,30,-35v14,-14,23,-22,24,-24v4,-6,6,-13,6,-23v0,-10,3,-14,11,-14r6,0v14,0,21,10,21,31v0,15,-10,31,-28,51v-18,20,-27,37,-27,51v0,9,3,17,8,22v5,5,11,7,18,7v9,0,19,-3,31,-10v12,-7,21,-10,27,-10v6,0,10,2,13,6v3,4,5,9,5,16v0,10,-6,19,-20,27v-14,8,-33,12,-55,12v-22,0,-40,-6,-55,-18v-16,-13,-25,-30,-25,-51xm83,-197r0,-6v0,-14,7,-21,20,-21v3,-1,4,-1,5,-1r8,0v20,0,30,9,30,26r0,5r0,1r-1,4v0,4,-1,8,-4,11v-3,3,-7,6,-12,6r-5,0r-1,1r-9,0v-20,0,-31,-9,-31,-26","w":206},"\u00c0":{"d":"23,-32r0,-4v0,-1,3,-9,10,-23v7,-14,12,-25,16,-35r61,-175v6,-11,16,-16,30,-16v14,0,22,4,27,14v7,14,15,37,24,67v9,30,20,61,31,91v11,30,19,49,24,58v5,9,8,15,8,19v0,9,-5,18,-16,25v-5,3,-13,5,-25,5r-5,0v-8,0,-15,0,-19,-2v-6,-2,-9,-7,-9,-13v1,-4,1,-9,1,-15v0,-22,-5,-36,-14,-44v-5,-4,-17,-7,-38,-7v-21,0,-33,3,-38,7v-5,4,-9,16,-11,36v-2,20,-4,29,-4,30v-2,5,-9,8,-19,8v-10,0,-17,-3,-22,-7v-8,-8,-12,-14,-12,-19xm80,-365r0,-1v0,-6,6,-8,18,-8v12,0,24,4,34,12v4,3,14,15,31,36v5,7,8,11,8,14v0,3,-1,4,-4,4r-7,0v-11,0,-22,-4,-32,-12v-32,-25,-48,-40,-48,-45xm102,-119v0,3,2,4,7,4r34,0v11,0,16,-2,16,-5v0,-8,-8,-39,-25,-94v-1,-5,-2,-7,-3,-7v0,0,-1,1,-2,4r-14,50v-9,31,-13,47,-13,48","w":279},"\u00c1":{"d":"23,-30r0,-4v0,-2,5,-13,14,-31v9,-18,22,-54,40,-108v18,-54,28,-85,31,-92v3,-7,6,-11,11,-15v5,-4,11,-6,20,-6v9,0,15,1,19,4v4,3,9,8,12,16v3,8,9,25,17,51r4,11r14,43v21,61,34,96,40,105v6,9,9,17,9,22v0,9,-5,17,-16,25v-5,4,-13,5,-25,5r-5,0v-11,0,-18,-1,-22,-4v-4,-3,-6,-6,-6,-11v1,-7,1,-13,1,-19v0,-19,-5,-33,-14,-41v-5,-4,-17,-7,-38,-7v-21,0,-33,3,-38,7v-6,5,-10,23,-13,55v-1,6,-1,10,-2,12v-2,5,-10,8,-23,8v-7,0,-13,-3,-20,-9v-7,-6,-10,-12,-10,-17xm102,-119v0,2,1,3,5,3r6,1r27,0v13,0,19,-2,19,-5v0,-9,-9,-41,-26,-96v-1,-5,-2,-7,-3,-7v-1,0,0,2,-1,5r-14,49v-9,31,-13,48,-13,50xm108,-314v0,-4,3,-9,7,-14r32,-36v11,-9,22,-13,34,-13r2,0v11,0,16,3,16,8r0,1v0,7,-17,23,-51,47v-9,7,-21,9,-34,9v-4,0,-6,0,-6,-2","w":279},"\u00c2":{"d":"23,-34v0,-2,5,-13,14,-31v9,-18,22,-54,40,-108v18,-54,28,-84,31,-91v3,-7,6,-12,11,-16v5,-4,13,-5,24,-5v11,0,20,5,25,15v5,10,13,33,24,68v11,35,21,66,31,93v10,27,19,46,24,56v5,10,8,16,8,19v0,9,-5,18,-16,26v-5,3,-14,5,-26,5r-4,0v-19,0,-28,-6,-28,-16v1,-7,1,-12,1,-18v0,-18,-3,-30,-11,-38v-6,-6,-20,-10,-41,-10v-21,0,-34,2,-39,6v-6,5,-10,24,-13,56v0,6,-1,10,-2,12v-2,5,-8,8,-18,8v-10,0,-17,-2,-21,-5v-10,-8,-14,-16,-14,-26xm73,-315v0,-3,2,-6,7,-11v22,-24,35,-38,40,-42v5,-4,12,-5,21,-5v9,0,16,2,22,7v29,27,44,43,44,49r0,2v0,3,-5,3,-14,3v-9,0,-19,-3,-28,-11v-16,-14,-25,-21,-26,-21v-1,0,-9,6,-24,20v-9,8,-20,13,-32,13v-7,0,-10,-1,-10,-4xm102,-119v0,3,2,4,7,4r34,0v11,0,16,-1,16,-5v0,-8,-8,-40,-25,-95v-1,-5,-2,-7,-3,-7v-1,0,-1,1,-2,4r-14,49v-9,32,-13,49,-13,50","w":279},"\u00c3":{"d":"23,-31r0,-3v0,-1,5,-13,15,-34v10,-21,23,-58,40,-110v17,-52,27,-82,30,-88v3,-6,6,-11,11,-15v5,-4,11,-5,20,-5v9,0,15,1,19,4v4,3,9,8,12,16v3,8,9,25,17,51r4,11r14,43v20,60,34,94,40,104v6,10,9,17,9,22v0,9,-5,17,-16,25v-5,4,-13,6,-25,6r-10,0v-15,0,-23,-6,-23,-16v1,-7,1,-13,1,-19v0,-19,-5,-32,-14,-40v-5,-4,-17,-7,-38,-7v-21,0,-33,2,-38,6v-6,5,-10,24,-13,56v-1,6,-1,10,-2,12v-2,5,-10,7,-23,7v-7,0,-13,-3,-20,-9v-7,-6,-10,-12,-10,-17xm69,-323r0,-4v0,-8,4,-17,13,-25v9,-8,18,-13,27,-13r5,0v7,0,16,3,28,9v12,6,20,9,25,9v5,0,10,-3,16,-9v6,-6,12,-9,18,-9v6,0,9,3,9,7r0,3v0,9,-6,19,-17,29v-7,6,-15,8,-25,8v-9,0,-19,-2,-30,-7v-14,-6,-23,-10,-27,-10v-4,0,-10,3,-16,9v-6,6,-11,9,-17,9v-6,0,-9,-2,-9,-6xm102,-120v0,2,1,4,6,4r34,0v11,0,17,-1,17,-4v0,-9,-9,-41,-26,-96v-1,-5,-2,-7,-3,-7v0,0,0,1,-1,4r-9,31r-5,18v-9,31,-13,48,-13,50","w":279},"\u00c4":{"d":"23,-34v0,-3,4,-13,13,-29v9,-16,22,-51,39,-104v17,-53,28,-86,34,-99v6,-13,14,-20,27,-20r5,0v8,0,14,1,18,4v4,3,7,8,10,15v3,7,14,37,31,90v17,53,30,89,40,110r15,32v0,9,-6,18,-17,26v-5,3,-11,5,-20,5r-15,0v-15,0,-23,-5,-23,-15v1,-7,1,-13,1,-19v0,-20,-4,-33,-13,-41v-5,-4,-18,-7,-39,-7v-21,0,-33,3,-38,7v-5,4,-8,17,-11,38v-1,5,-2,10,-2,16v0,6,-1,11,-2,13v-2,5,-8,7,-18,7v-10,0,-17,-2,-22,-6v-8,-8,-13,-15,-13,-23xm73,-334r0,-5v0,-8,3,-15,7,-19v4,-4,10,-6,18,-6r7,0r5,0v8,0,13,7,13,20r0,1r-1,7v0,5,-2,10,-6,14v-4,4,-10,6,-19,6r-6,0v-12,0,-18,-7,-18,-18xm102,-119v0,2,4,3,13,3r13,0r1,0r21,0r2,0v4,0,7,-2,7,-4v0,-9,-8,-41,-25,-95v-2,-5,-2,-8,-3,-8r-15,50v0,0,-14,52,-14,54xm157,-334r0,-6r1,-5v0,-5,2,-9,6,-13v4,-4,8,-6,14,-6r2,0r5,0r2,0v13,0,19,5,19,14r1,4r0,4r0,1r-1,4v0,5,-1,10,-5,14v-4,4,-8,5,-13,5v-2,0,-3,1,-3,1r-10,0r-6,0v-7,0,-11,-4,-11,-12","w":279},"\u00c5":{"d":"25,-28v0,-5,3,-12,9,-22v6,-10,11,-18,15,-28v10,-26,18,-48,24,-67r17,-52r7,-21v9,-28,14,-43,16,-46v6,-12,13,-18,24,-18r5,0v12,0,21,5,26,15v5,10,14,38,28,84v23,74,39,117,47,129v8,12,12,21,12,26v0,5,-4,10,-12,16v-8,6,-16,9,-24,9r-14,0v-10,0,-18,-1,-21,-4v-3,-3,-5,-5,-5,-7r3,-25v0,-19,-4,-33,-13,-41v-5,-4,-17,-6,-38,-6v-21,0,-34,2,-38,6v-9,8,-13,29,-13,63v0,5,-1,9,-3,11v-2,2,-8,3,-17,3v-9,0,-17,-3,-24,-9v-7,-6,-11,-11,-11,-16xm97,-338r1,-7v0,-8,6,-17,17,-24v8,-5,18,-7,29,-7r8,0v8,0,16,4,23,10v7,6,11,13,11,20r0,6v0,9,-5,17,-14,23v-9,6,-20,10,-30,10r-4,0v-10,0,-20,-3,-28,-9v-8,-6,-12,-12,-12,-20xm103,-117v0,2,2,3,6,3r1,0r1,0r16,0r1,0r24,-1r4,0v0,0,4,-2,4,-5v0,-3,-3,-18,-11,-44v-8,-26,-13,-43,-14,-49v-1,-6,-2,-9,-2,-9v0,0,-6,16,-16,47v-10,31,-14,51,-14,58xm125,-339r0,0r1,6v0,2,2,5,5,8v3,3,6,5,9,5r3,0v3,0,7,-2,10,-5v3,-3,5,-6,5,-9v0,-1,1,-3,1,-6r0,-4r-1,-5v0,-3,-2,-6,-5,-9v-3,-3,-8,-5,-13,-5r-4,0v0,0,-4,2,-7,6v-3,4,-4,10,-4,18","w":278},"\u00c6":{"d":"12,-31v0,-2,9,-16,26,-42r51,-96v15,-27,24,-43,26,-48r18,-40v6,-9,23,-13,52,-13r10,0r20,0r39,1v41,0,66,1,75,4v13,4,20,11,20,23v0,9,-3,13,-10,13r-5,-1r-5,-2v-11,-3,-27,-4,-47,-4v-20,0,-32,3,-37,10v-5,7,-9,17,-9,31v0,14,2,21,5,24v3,3,9,4,16,4v7,0,14,-1,20,-3r7,-3v7,-3,12,-5,14,-5v11,0,19,4,24,13v2,4,3,11,3,23v0,12,-2,19,-6,22r-6,2v-2,0,-9,-2,-20,-6v-12,-4,-22,-6,-30,-6v-8,0,-15,2,-19,6v-5,4,-7,14,-7,30v0,16,2,25,7,31v5,6,13,9,25,9v12,0,28,-3,46,-8v18,-5,28,-7,30,-7v8,0,13,4,13,14v0,13,-4,22,-10,27v-6,5,-23,8,-50,8r-10,0r-21,0r-30,1v-30,0,-50,-2,-57,-4v-10,-3,-15,-8,-15,-16r2,-6r1,-6v1,-6,2,-11,2,-15v0,-14,-2,-23,-6,-28v-4,-5,-14,-8,-31,-8v-17,0,-29,5,-37,12v-5,5,-11,17,-21,39v-10,22,-15,33,-16,35v-4,7,-10,11,-17,11r-6,0v-7,0,-13,-4,-19,-11v-3,-3,-5,-8,-5,-15xm118,-134v0,2,3,3,8,3r15,0v18,0,27,-3,29,-7v2,-4,2,-13,2,-28r0,-4r0,-27r1,-2r0,-8r0,-3r0,-3r0,-5r0,-4r0,-2r0,-6r0,-5v0,-8,0,-11,-2,-11v-3,0,-7,6,-13,19v-27,59,-40,89,-40,93","w":378},"\u00c7":{"d":"101,72v0,-2,4,-4,13,-5v9,-1,14,-4,18,-6v4,-2,6,-5,6,-10v0,-5,-2,-9,-7,-12v-5,-3,-8,-8,-8,-12v0,-4,3,-10,8,-19v1,-2,1,-2,3,-3v-56,-4,-92,-33,-109,-87v-5,-16,-7,-34,-7,-55r0,-8v0,-46,12,-82,36,-110v11,-12,24,-22,39,-29v15,-7,32,-10,50,-10r7,0v8,0,20,2,37,5v17,3,27,6,30,8v8,6,14,14,18,23v4,9,6,18,6,28v0,10,-4,15,-12,15v-5,0,-11,-2,-18,-7v-10,-7,-10,-8,-19,-15v-16,-13,-32,-20,-48,-20v-23,0,-42,11,-55,33v-11,19,-17,45,-17,79v0,34,6,60,17,78v12,19,31,29,55,29v12,0,28,-5,48,-15v20,-10,35,-15,44,-15v7,0,11,4,11,14v0,5,-4,12,-10,20v-6,8,-17,16,-34,25v-16,9,-34,14,-54,14v2,2,3,5,3,10r13,12v7,6,11,14,11,23v0,9,-4,17,-11,24v-7,7,-18,11,-30,11r-10,0v-16,0,-24,-3,-24,-8r0,-5","w":266},"\u00c8":{"d":"29,-30v0,-2,2,-8,6,-16v4,-8,8,-19,10,-34v2,-15,3,-39,3,-72v0,-33,-1,-55,-3,-65v-2,-10,-3,-17,-5,-21v-2,-4,-4,-8,-7,-13v-3,-5,-4,-8,-4,-10r0,-6v0,-6,7,-10,23,-13v25,-4,55,-6,91,-6r8,0v29,0,46,1,52,3v11,4,16,15,16,30v0,9,-3,13,-11,13r-35,-8v-11,-2,-24,-3,-40,-3v-16,0,-26,4,-30,12v-6,11,-8,26,-8,45v0,7,2,11,6,13v4,2,12,4,25,4r0,0v3,0,8,-2,15,-5v7,-3,13,-4,18,-4v8,0,14,4,18,12v2,5,3,14,3,27v0,13,-1,21,-2,24v-2,6,-7,9,-13,9v-6,0,-12,-2,-21,-5v-9,-3,-17,-4,-26,-4v-9,0,-15,1,-19,4v-4,3,-5,8,-5,15v0,24,3,42,9,54v4,7,13,11,30,11v24,0,44,-3,59,-8v15,-5,23,-8,24,-8v8,0,12,5,12,15v0,15,-5,25,-16,30v-7,3,-24,5,-51,5r-8,0r-32,0v-40,0,-67,-3,-81,-8v-8,-3,-11,-8,-11,-17xm66,-367v0,-5,7,-8,19,-8v12,0,24,5,35,15v11,10,20,19,26,29v6,10,10,17,10,20v0,2,-3,3,-9,3r-1,0v-10,0,-25,-6,-43,-19v-25,-17,-37,-31,-37,-40","w":249},"\u00c9":{"d":"29,-264v0,-6,5,-10,16,-12v26,-5,53,-8,81,-8r24,0r8,0v28,0,46,1,51,5v8,5,11,16,11,32v0,5,-3,7,-11,7r-34,-8v-12,-2,-26,-4,-42,-4v-16,0,-26,4,-30,12v-6,11,-9,27,-9,45v0,7,1,13,5,15v4,2,12,3,24,3v4,0,10,-1,17,-4v7,-3,13,-5,16,-5v9,0,15,5,19,13v2,5,3,15,3,29v0,14,-2,23,-5,26v-3,3,-7,5,-13,5v-5,0,-12,-1,-20,-4v-6,-2,-13,-3,-22,-3v-9,0,-15,1,-19,4v-4,3,-7,12,-7,28v0,16,4,29,10,41v4,8,15,12,31,12v23,0,42,-3,57,-8v15,-5,24,-8,26,-8v8,0,12,4,12,13v0,15,-5,25,-16,30v-8,4,-30,5,-66,5r-25,0v-39,0,-66,-2,-81,-8v-8,-3,-11,-9,-11,-18v0,-2,2,-7,7,-16v5,-9,8,-22,10,-38v2,-16,4,-39,4,-70v0,-31,-2,-52,-4,-64v-2,-12,-5,-22,-10,-30v-5,-8,-7,-14,-7,-17xm95,-313v0,-5,2,-9,7,-14v21,-23,32,-36,33,-37v10,-8,20,-11,32,-11v12,0,18,2,18,7r0,1v0,5,-16,20,-48,45v-10,8,-21,12,-32,12r-4,0v-4,0,-6,-1,-6,-3","w":249},"\u00ca":{"d":"28,-261r0,-5v0,-6,8,-12,24,-14v27,-4,54,-5,83,-5r16,0r8,0v25,0,40,0,44,2v11,4,17,15,17,31v0,9,-3,12,-11,12v-2,0,-8,-1,-17,-3v-9,-2,-17,-5,-25,-6v-8,-1,-20,-2,-35,-2v-15,0,-25,5,-29,13v-6,11,-8,26,-8,45v0,7,1,11,5,13v4,2,13,4,26,4v4,0,9,-2,16,-5v7,-3,13,-5,18,-5v8,0,14,5,18,13v2,5,3,15,3,29v0,14,-2,23,-5,26v-3,3,-9,5,-17,5v-2,0,-6,-2,-15,-5v-9,-3,-18,-4,-28,-4v-10,0,-17,3,-20,8v-2,3,-3,9,-3,19v0,26,4,43,12,52v4,4,14,6,30,6v16,0,30,-1,40,-4v10,-3,18,-5,26,-8v8,-3,13,-4,15,-4v8,0,12,5,12,15v0,15,-5,25,-16,30v-8,3,-24,5,-51,5r-8,1r-32,0v-40,0,-67,-3,-82,-8v-8,-3,-11,-9,-11,-18v0,-3,2,-7,6,-15v4,-8,8,-19,10,-32v2,-13,3,-38,3,-74v0,-36,-1,-59,-3,-69v-2,-10,-4,-17,-5,-20v-1,-3,-4,-8,-7,-13v-3,-5,-4,-9,-4,-10xm58,-316v0,-6,14,-23,42,-49v7,-6,15,-9,24,-9v9,0,17,2,22,7v30,25,45,42,45,51v0,3,-4,4,-12,4r-1,0v-9,0,-19,-4,-28,-12v-16,-14,-24,-21,-25,-21v-1,0,-10,7,-26,21v-10,8,-19,12,-28,12v-9,0,-13,-1,-13,-4","w":249},"\u00cb":{"d":"27,-28v0,-3,3,-8,7,-16v4,-8,7,-19,9,-33v2,-14,4,-37,4,-72v0,-35,-1,-58,-3,-68v-2,-10,-3,-17,-5,-21v-2,-4,-4,-8,-7,-13v-3,-5,-5,-9,-5,-10r0,-5v0,-6,7,-10,18,-12v25,-5,52,-7,82,-7r24,0r8,0v28,0,45,1,50,5v7,5,11,15,11,28v0,9,-4,13,-12,13v-2,0,-8,-1,-18,-4v-10,-3,-18,-5,-25,-6v-7,-1,-18,-2,-33,-2v-15,0,-24,5,-29,13v-6,11,-9,26,-9,45v0,7,2,12,6,14v4,2,12,3,25,3r0,0v4,0,9,-1,16,-4v7,-3,13,-5,18,-5v8,0,14,4,18,12v2,5,3,14,3,29v0,15,-1,23,-4,26v-3,3,-9,5,-17,5v-2,0,-7,-1,-16,-4v-9,-3,-18,-5,-28,-5v-10,0,-16,3,-19,8v-2,3,-3,9,-3,19v0,20,3,35,9,47v4,8,12,11,27,11v21,0,36,-1,46,-4v10,-2,19,-4,26,-7v7,-3,13,-4,17,-4v6,0,10,2,10,8r0,6v0,15,-5,25,-16,30v-8,4,-30,6,-67,6r-24,0v-41,0,-68,-3,-82,-8v-8,-3,-12,-9,-12,-18xm57,-337r1,-6v0,-5,2,-10,6,-14v4,-4,9,-6,15,-6r5,0r6,0r5,0v8,0,11,5,11,13r1,5r0,5v0,17,-8,25,-25,25r-7,0r-5,-1v-8,0,-12,-5,-12,-13v-1,-2,-1,-5,-1,-8xm141,-334r0,-5v0,-17,9,-24,26,-24r6,0v7,0,11,1,14,4v3,3,4,7,4,13r0,6v0,7,-2,12,-6,17v-4,5,-9,7,-16,7r-5,0r-4,0r-1,0r-4,0v-9,0,-13,-5,-13,-14","w":249},"\u00cc":{"d":"14,-369v0,-5,6,-7,16,-7r5,0v10,0,21,4,31,12v4,3,14,17,31,38v5,6,8,10,8,13v0,3,-2,4,-6,4r-5,0v-12,0,-22,-4,-31,-11v-32,-25,-49,-41,-49,-49xm28,-271v0,-6,1,-10,5,-13v4,-3,11,-5,22,-5r34,0v11,0,18,1,23,4v5,3,7,6,7,11v0,6,-4,14,-10,23v-4,6,-6,13,-8,23v-2,10,-3,36,-3,80v0,44,1,70,2,80v1,10,6,19,11,29v5,10,8,17,8,22v0,10,-11,14,-33,14r-1,0r-27,0v-11,0,-18,-1,-23,-4v-5,-3,-7,-7,-7,-12v0,-6,3,-13,9,-21v5,-6,8,-14,9,-24v1,-10,2,-37,2,-81v0,-44,-1,-71,-3,-81v-2,-10,-3,-17,-6,-22v-7,-13,-11,-21,-11,-23","w":150},"\u00cd":{"d":"29,-17v0,-5,2,-11,7,-19v5,-8,8,-16,10,-25v2,-9,3,-36,3,-81v0,-45,-1,-73,-2,-83v-1,-10,-5,-19,-10,-27v-5,-8,-8,-16,-8,-21v0,-11,11,-16,32,-16r26,0v22,0,34,5,34,14r0,4v0,2,-4,11,-13,26v-5,8,-7,20,-7,37r-1,9r0,8r0,9r0,9r0,58v0,27,1,47,4,60v1,5,4,11,9,19v5,8,8,15,8,20v0,11,-10,16,-31,16r-35,0v-18,0,-26,-5,-26,-17xm44,-314r0,-1r0,-1v0,-9,13,-25,39,-48v9,-8,21,-12,33,-12v12,0,19,2,19,7r0,1v0,7,-18,24,-53,48v-9,6,-19,9,-30,9r-1,0v-5,0,-7,-1,-7,-3","w":150},"\u00ce":{"d":"8,-316v0,-9,15,-25,44,-50v6,-5,14,-8,23,-8v9,0,17,3,23,8v13,11,26,25,38,41v4,5,6,7,6,9v0,3,-5,4,-14,4v-9,0,-18,-4,-28,-12v-16,-14,-25,-20,-26,-20v-1,0,-9,6,-24,20v-9,8,-20,12,-32,12v-7,0,-10,-1,-10,-4xm29,-17v0,-5,3,-11,8,-19v5,-8,9,-17,10,-27v1,-10,2,-36,2,-80v0,-44,-1,-72,-2,-82v-1,-10,-5,-19,-10,-27v-5,-8,-8,-15,-8,-20v0,-6,4,-9,9,-12v5,-2,11,-4,19,-4r34,0v20,0,30,6,30,18v0,2,-4,11,-13,26v-5,8,-7,20,-7,37r-1,8r0,9r0,17r0,57v0,26,0,43,2,53v2,10,6,19,11,27v5,8,7,15,7,20v0,11,-8,16,-26,16r-39,0v-18,0,-26,-5,-26,-17","w":151},"\u00cf":{"d":"9,-333v0,-20,6,-30,19,-30v2,0,3,-1,4,-1r5,0r2,0r6,1v8,0,11,3,11,10v1,2,1,4,1,4r1,4v0,10,-2,17,-6,22v-4,5,-10,8,-20,8r-6,0v-12,0,-17,-6,-17,-18xm33,-281v4,-5,11,-7,20,-7r38,0v12,0,20,2,24,5v4,3,6,6,6,9r0,4v0,5,-3,11,-8,18v-5,7,-8,15,-10,24v-2,9,-3,36,-3,81v0,45,1,73,2,83v1,10,5,19,10,27v5,9,8,17,8,22v0,5,-1,8,-5,10v-5,4,-12,5,-21,5r-39,0v-8,0,-14,-1,-19,-4v-5,-3,-7,-7,-7,-12v0,-6,3,-14,9,-22v5,-7,8,-15,9,-25v1,-10,2,-37,2,-81v0,-45,-1,-72,-3,-82v-2,-10,-4,-19,-9,-26v-5,-8,-8,-15,-8,-20v0,-4,2,-6,4,-9xm92,-334r0,-5r0,-7v0,0,2,-6,6,-10v4,-4,9,-7,15,-7r1,0r0,0r7,-1r0,1r6,0r2,0v9,0,13,6,13,17r0,6v0,17,-9,24,-26,24r-6,0r-7,-1v-7,0,-10,-3,-10,-11v0,-1,-1,-3,-1,-6","w":151},"\u00d0":{"d":"27,-149v0,-6,0,-10,2,-12v2,-2,6,-5,13,-7v7,-2,11,-4,12,-7v1,-3,2,-12,2,-27v0,-27,-3,-47,-11,-59v-5,-9,-8,-14,-8,-18v0,-5,3,-8,8,-9v4,-1,14,-2,31,-2r18,0r5,0r34,0v39,0,71,13,95,39v12,13,21,27,26,43v5,16,8,36,8,59r0,6v0,21,-3,40,-9,57v-6,17,-14,34,-28,48v-14,14,-29,24,-46,30v-17,6,-36,8,-60,8r-52,0v-13,0,-22,0,-25,-2v-3,-2,-4,-5,-4,-8v0,-3,2,-9,6,-16v4,-7,7,-16,9,-28v2,-12,4,-30,4,-54v0,-9,-1,-15,-3,-17v-2,-2,-6,-4,-12,-6v-6,-2,-10,-4,-12,-6v-2,-2,-3,-6,-3,-12xm105,-50v0,9,6,13,18,13v27,0,49,-11,66,-33v8,-10,13,-23,17,-37v4,-14,6,-28,6,-42r0,-8v0,-24,-9,-47,-26,-68v-16,-19,-35,-28,-60,-28r-7,0v-10,0,-14,4,-14,13r0,6r0,4v0,31,2,49,8,55v2,2,9,5,20,6v11,1,17,3,20,4v5,2,7,7,7,15v0,8,-1,14,-5,16v-2,1,-8,2,-20,4v-12,2,-20,5,-23,10v-5,8,-7,28,-7,61r0,9","w":300},"\u00d1":{"d":"19,-19r3,-6r7,-12v4,-7,7,-14,8,-20v1,-6,1,-32,1,-78v0,-46,0,-74,-1,-84v-1,-10,-4,-20,-7,-31v-3,-11,-5,-18,-5,-20v0,-7,7,-10,21,-10v26,0,46,8,61,26v6,7,25,35,57,84v32,49,50,75,52,75v3,0,5,-16,5,-47v0,-56,-2,-92,-6,-107v-4,-15,-5,-23,-5,-23v0,-9,11,-14,35,-14v9,0,15,2,20,6v5,4,8,7,8,12r0,6v0,1,-2,7,-6,17v-4,10,-7,20,-8,30v-1,10,-1,42,-1,99v0,57,0,87,-1,92v-1,9,-6,14,-12,14v-19,0,-35,-8,-47,-22v-6,-8,-27,-38,-61,-90v-34,-52,-53,-78,-58,-78v-3,0,-4,13,-4,37v0,46,2,79,6,101v4,22,5,34,5,36v0,8,-4,14,-14,18v-7,3,-16,5,-26,5v-10,0,-17,-1,-19,-2v-5,-2,-8,-6,-8,-14xm78,-323r0,-3v0,-8,5,-18,14,-26v9,-8,18,-12,28,-12r4,0v6,0,15,3,28,9v13,6,20,8,25,8v5,0,10,-3,16,-9v6,-6,12,-8,18,-8v6,0,9,2,9,6r0,3v0,8,-5,18,-14,26v-9,8,-18,12,-28,12r-4,0v-7,0,-16,-3,-28,-9v-12,-6,-20,-9,-25,-9v-5,0,-10,3,-16,9v-6,6,-12,9,-18,9v-6,0,-9,-2,-9,-6","w":299},"\u00d2":{"d":"35,-140r0,-5v0,-18,3,-35,8,-54v5,-19,12,-35,22,-50v10,-15,23,-26,38,-34v15,-8,29,-12,44,-12r12,0r1,0v15,0,28,4,41,11v26,15,43,38,53,68v6,20,10,40,10,59r0,9v0,22,-3,42,-9,61v-12,38,-32,65,-61,79v-14,7,-28,10,-44,10r-6,0v-17,0,-32,-3,-46,-11v-26,-14,-44,-38,-54,-71v-6,-19,-9,-39,-9,-60xm90,-135v0,30,6,54,17,73v11,20,26,30,43,30v19,0,34,-10,44,-31v10,-21,16,-48,16,-81r0,-3v0,-32,-5,-57,-15,-76v-12,-23,-26,-34,-42,-34r-5,0v-8,0,-15,3,-22,8v-7,5,-13,12,-18,20v-12,20,-18,46,-18,77r0,17xm91,-368r0,-1v0,-5,6,-8,17,-8r6,1v10,0,21,4,32,14v4,4,13,15,30,36v4,5,6,9,6,12v0,3,-2,4,-8,4v-13,0,-25,-3,-34,-10v-33,-26,-49,-42,-49,-48","w":300},"\u00d3":{"d":"35,-133r0,-10v0,-21,2,-40,8,-59v12,-38,32,-65,59,-80v15,-8,31,-12,49,-12r9,0v14,0,27,4,41,11v26,13,44,36,54,68v6,20,10,39,10,59r0,10v0,22,-3,42,-9,61v-11,37,-31,63,-58,78v-15,8,-32,12,-50,12r-4,0v-15,0,-30,-3,-44,-9v-27,-13,-46,-38,-57,-74v-6,-18,-8,-36,-8,-55xm90,-135v0,30,6,54,17,73v11,20,25,30,40,30r5,0v7,0,15,-3,23,-8v8,-5,14,-12,19,-23v11,-21,16,-48,16,-81r0,-3v0,-32,-5,-57,-15,-76v-12,-23,-26,-34,-42,-34r-5,0v-8,0,-15,3,-22,8v-7,5,-13,12,-18,20v-12,20,-18,46,-18,77r0,17xm120,-315r0,-1v0,-9,14,-25,39,-48v10,-8,19,-13,30,-13r2,0v13,0,20,2,20,7r0,1r0,1v0,7,-17,22,-51,46v-9,6,-19,10,-28,10r-2,0r-2,0r-2,0v-4,0,-6,-1,-6,-3","w":300},"\u00d4":{"d":"35,-132r0,-15r0,-1v0,-18,3,-37,9,-56v12,-37,31,-62,58,-77v15,-8,31,-13,49,-13v35,0,63,13,83,39v9,12,16,26,22,44v6,18,9,37,9,56r0,10v0,22,-3,42,-9,61v-6,19,-15,36,-25,49v-21,27,-49,41,-83,41v-35,0,-63,-12,-83,-38v-9,-12,-16,-26,-22,-44v-6,-18,-8,-36,-8,-56xm84,-316v0,-7,15,-23,43,-49v7,-6,14,-9,24,-9v10,0,17,3,23,8v29,27,44,43,44,50v0,3,-5,4,-14,4v-9,0,-19,-4,-28,-12v-16,-14,-25,-21,-26,-21v-1,0,-9,7,-24,21v-9,8,-20,12,-32,12v-7,0,-10,-1,-10,-4xm90,-138r0,11v0,25,6,48,18,68v5,9,12,15,19,20v7,5,15,7,24,7v17,0,31,-9,42,-28v11,-19,16,-42,16,-69r1,-7r0,-11v0,-32,-5,-58,-16,-78v-6,-11,-13,-18,-20,-23v-7,-5,-14,-8,-21,-8r-5,0v-9,0,-17,4,-25,10v-8,6,-14,15,-19,25v-9,20,-14,44,-14,73r0,10","w":300},"\u00d5":{"d":"35,-133r0,-10v0,-21,3,-42,9,-62v6,-21,15,-37,26,-50v22,-26,49,-40,81,-40r0,0r5,0v16,0,31,4,44,11v27,14,45,36,55,68v6,20,10,41,10,60r0,10v0,21,-3,42,-9,61v-12,38,-33,64,-62,79v-14,7,-29,11,-46,11r-4,0v-16,0,-31,-3,-45,-10v-26,-13,-45,-38,-56,-73v-6,-18,-8,-36,-8,-55xm80,-326v0,-9,5,-19,14,-27v9,-8,20,-12,32,-12v6,0,15,3,28,9v13,6,21,9,26,9v5,0,10,-3,15,-9v5,-6,11,-9,17,-9v6,0,10,3,10,8v0,11,-6,20,-17,30v-7,6,-16,9,-24,9v-8,0,-20,-3,-33,-9v-13,-6,-22,-9,-26,-9v-4,0,-9,3,-15,9v-6,6,-12,9,-18,9v-6,0,-9,-3,-9,-8xm90,-135v0,29,6,53,17,73v11,20,24,29,41,29r4,0v9,0,18,-3,25,-9v7,-6,13,-13,17,-21v11,-22,16,-49,16,-81r0,-4v0,-32,-5,-58,-16,-78v-11,-21,-25,-31,-43,-31v-17,0,-31,9,-43,28v-12,19,-18,44,-18,76r0,18","w":300},"\u00d6":{"d":"35,-138r1,-5v0,-42,10,-78,31,-107v10,-14,23,-24,37,-32v14,-8,29,-12,44,-12r12,0v14,0,28,4,42,11v26,14,45,40,56,76v5,17,7,35,7,56r0,5v0,44,-12,81,-34,111v-10,13,-22,23,-36,30v-14,7,-29,10,-46,10r-5,0v-32,0,-58,-12,-78,-38v-10,-12,-17,-28,-22,-46v-5,-18,-9,-38,-9,-59xm85,-335r0,-3r0,-1r1,-4v0,-5,2,-10,5,-14v3,-4,8,-6,14,-6r1,-1r8,0v13,0,20,4,20,12r0,6r0,5v0,8,-2,14,-6,18v-4,4,-9,6,-14,6r-2,0r-10,1v-11,0,-16,-5,-16,-14xm91,-142v0,32,4,57,14,76v12,23,27,34,43,34r5,0v16,0,29,-10,40,-29v11,-19,17,-42,17,-72r0,-18v0,-31,-6,-57,-18,-78v-5,-8,-12,-15,-19,-20v-7,-5,-15,-7,-23,-7v-18,0,-32,10,-43,31v-11,21,-16,46,-16,76r0,7xm169,-335r0,-3r0,-1r0,-4v0,-6,3,-11,7,-15v4,-4,10,-5,15,-5r5,-1r4,0r7,1v8,0,12,6,12,19r-1,1r0,7v0,4,-2,9,-5,13v-3,4,-9,6,-15,6r-4,1r-2,0r-2,0r-1,0r-1,0v-12,0,-19,-5,-19,-14r0,-5","w":300},"\u00d7":{"d":"43,-47v0,-3,8,-14,24,-33r32,-37v0,-2,-10,-15,-28,-37v-18,-22,-28,-35,-28,-38v0,-1,3,-5,9,-11v6,-6,9,-9,11,-9v3,0,13,11,31,32v18,21,28,32,30,32v2,0,10,-11,28,-32v18,-21,29,-33,32,-33v2,0,6,3,12,10v6,7,9,12,9,14v0,3,-9,16,-28,38r-28,33v0,2,9,14,28,36v19,22,28,34,28,36v0,4,-3,8,-8,14v-5,6,-9,9,-11,9v-3,0,-14,-11,-32,-32v-18,-21,-27,-33,-29,-33v-2,0,-11,12,-29,33v-18,21,-28,32,-31,32v-3,0,-7,-4,-13,-10v-6,-6,-9,-11,-9,-14","w":248},"\u00d8":{"d":"33,-114r0,-17v0,-21,4,-42,12,-64v16,-43,43,-72,80,-87v15,-6,33,-9,55,-9v7,0,16,1,26,4v10,3,17,4,21,4v4,0,10,-3,17,-9v7,-6,12,-9,17,-9v6,0,9,5,9,13v0,3,-2,8,-7,16v-5,8,-7,14,-7,18v0,4,2,11,5,18v9,21,14,42,14,62r0,11r0,1v0,24,-4,46,-12,67v-25,64,-69,95,-133,95v-7,0,-15,-1,-27,-3v-12,-2,-19,-4,-23,-4v-4,0,-10,4,-17,10v-7,6,-13,9,-18,9v-6,0,-10,-4,-10,-12v0,-2,3,-9,8,-18v5,-9,8,-15,8,-19v0,-4,-1,-9,-4,-16v-9,-21,-14,-42,-14,-61xm84,-127v0,26,3,39,8,39r1,0r66,-97v23,-31,34,-48,34,-51v0,-5,-3,-10,-9,-15v-6,-5,-14,-7,-25,-7v-21,0,-40,12,-56,37v-4,7,-9,18,-13,33v-4,15,-6,35,-6,61xm115,-54v0,5,4,11,10,15v6,4,13,6,21,6r6,0v9,0,19,-3,28,-9v9,-6,17,-13,23,-23v14,-21,20,-47,20,-76r1,-5r0,-15v0,-28,-3,-41,-8,-41r-1,0r-65,97v-23,31,-35,48,-35,51","w":305},"\u00d9":{"d":"27,-277v5,-6,11,-9,17,-9r7,0v18,0,30,2,37,5v7,3,11,10,11,18v0,1,-1,5,-3,11r-2,11v-2,8,-3,17,-4,28v-1,11,-1,35,-1,72v0,37,2,62,8,74v6,12,13,20,22,25v9,5,19,8,31,8v12,0,23,-4,31,-10v8,-6,14,-14,18,-23v7,-15,10,-43,10,-85v0,-9,-1,-18,-1,-28r0,-15r0,-8v0,-13,-1,-25,-3,-35r-1,-6r-1,-7v-2,-10,-2,-15,-2,-16v0,-8,3,-14,9,-16v6,-2,17,-3,32,-3v7,0,13,2,17,7v4,5,6,10,6,15v0,5,-2,10,-6,18v-4,8,-7,15,-8,22v-1,7,-2,30,-2,66v0,36,-1,62,-4,78v-3,16,-7,28,-14,39v-18,28,-48,42,-89,42v-42,0,-70,-14,-88,-43v-7,-12,-12,-26,-14,-42v-2,-16,-3,-42,-3,-79v0,-37,-1,-59,-2,-64v-1,-5,-3,-11,-8,-17v-5,-6,-7,-12,-7,-18v0,-5,3,-10,7,-15xm84,-365r0,-2v0,-4,5,-6,15,-6r4,0v12,0,24,5,35,14v25,22,37,37,37,45r0,2v0,2,-2,4,-6,4r-1,0v-5,0,-7,-1,-8,-1v-9,0,-19,-3,-30,-11v-31,-22,-46,-36,-46,-45","w":288},"\u00da":{"d":"26,-278v5,-6,12,-9,18,-9v22,0,38,3,46,7v6,3,9,9,9,17v0,0,-1,6,-4,17v-3,11,-4,23,-5,35v-1,12,-1,34,-1,65v0,45,5,74,13,89v9,16,25,24,48,24v10,0,19,-3,28,-8v9,-5,17,-14,23,-27v6,-13,8,-41,8,-83r0,-28r-1,-16r0,-7v0,-16,-1,-30,-3,-43v-2,-13,-4,-20,-4,-22v0,-8,3,-14,9,-16v6,-2,17,-4,32,-4v6,0,12,3,17,7v5,4,7,9,7,15v0,5,-2,11,-6,17v-5,9,-8,16,-9,23v-1,7,-1,29,-1,65v0,36,-2,63,-4,79v-2,16,-7,30,-15,42v-19,28,-49,42,-89,42v-42,0,-72,-15,-89,-44v-7,-11,-11,-24,-13,-40v-2,-16,-3,-43,-3,-81v0,-38,-1,-60,-2,-65v-1,-5,-3,-11,-8,-17v-5,-6,-7,-12,-7,-18v0,-5,2,-11,6,-16xm117,-313r0,-2v0,-9,13,-26,39,-49v9,-8,20,-12,32,-12v12,0,19,3,19,8r0,0r0,2v0,7,-17,22,-52,46v-8,6,-16,9,-25,9r-4,0r-2,0r-1,0v-4,0,-6,0,-6,-2","w":288},"\u00db":{"d":"20,-264v0,-7,4,-14,13,-19v3,-2,11,-3,25,-3v14,0,23,2,30,5v7,3,10,9,10,18r-4,23v-3,16,-5,46,-5,90v0,44,2,72,8,85v6,13,13,21,22,26v9,5,19,7,30,7v11,0,20,-3,29,-8v9,-5,17,-15,23,-28v6,-13,8,-42,8,-88v0,-42,-1,-71,-4,-85v-3,-14,-4,-24,-4,-26v0,-8,3,-14,9,-16v6,-2,16,-3,32,-3v6,0,12,2,17,6v5,4,6,9,6,15v0,5,-1,11,-5,17v-5,9,-8,17,-9,24v-1,7,-1,28,-1,64v0,36,-2,63,-4,79v-2,16,-7,30,-15,42v-18,28,-48,42,-89,42v-42,0,-72,-14,-89,-43v-7,-11,-12,-25,-14,-41v-2,-16,-3,-44,-3,-82v0,-38,0,-59,-1,-64v-1,-5,-3,-10,-8,-16v-5,-6,-7,-14,-7,-21xm78,-315v0,-2,2,-6,6,-11v15,-18,27,-31,38,-40v6,-5,14,-8,23,-8v9,0,18,3,24,8v13,11,26,25,38,40v4,5,5,9,5,11v0,2,-5,3,-14,3v-9,0,-18,-4,-28,-12v-16,-14,-24,-20,-25,-20v-1,0,-9,6,-25,20v-9,8,-19,12,-28,12v-9,0,-14,-1,-14,-3","w":288},"\u00dc":{"d":"26,-277v6,-6,11,-9,17,-9v23,0,39,2,47,6v6,3,8,10,8,18v0,1,0,4,-2,10r-3,12v-3,14,-5,44,-5,91v0,47,4,78,13,92v10,16,26,25,49,25v10,0,19,-3,28,-8v9,-5,16,-15,22,-28v6,-13,9,-41,9,-85v0,-18,-1,-40,-2,-64v0,-10,-1,-19,-3,-30v-2,-11,-3,-19,-3,-24v0,-5,3,-10,9,-12v6,-2,16,-3,32,-3v6,0,11,2,16,6v5,4,7,10,7,16v0,5,-1,11,-5,17v-5,9,-8,16,-9,23v-1,7,-2,30,-2,67v0,37,-1,64,-3,79v-6,34,-23,57,-52,71v-14,7,-28,10,-44,10r-9,0v-42,0,-71,-14,-88,-43v-7,-11,-12,-25,-14,-40v-2,-15,-3,-42,-3,-80v0,-38,0,-60,-1,-65v-1,-5,-4,-11,-9,-18v-5,-7,-7,-12,-7,-18v0,-6,3,-11,7,-16xm78,-336r0,0r1,-7v0,-6,2,-10,7,-14v5,-4,10,-6,18,-6r5,0v3,1,6,1,8,1v7,0,10,4,10,13r1,5v0,19,-8,28,-22,28r-5,1r-5,0r-6,-1v-8,0,-11,-4,-11,-12v0,-1,-1,-2,-1,-3r0,-5xm162,-333r0,-4r0,-1r0,-4v0,-5,2,-10,6,-14v4,-4,9,-6,15,-6r4,-1r7,0v2,0,3,1,5,1v9,0,13,6,13,18v0,10,-2,17,-6,21v-4,4,-8,7,-13,7r-3,0r-10,1v-3,-1,-5,-1,-7,-1v-8,0,-11,-6,-11,-17","w":288},"\u00dd":{"d":"23,-271v0,-12,11,-18,32,-18r11,0v14,0,23,2,29,5v6,3,9,9,9,17r-1,8v0,12,10,39,29,82v4,8,7,12,8,12v5,0,13,-17,25,-48v10,-25,16,-42,16,-51v0,-9,0,-14,1,-16v2,-6,10,-9,24,-9r6,0v19,0,29,4,29,12r0,4v0,5,-6,14,-17,26v-4,5,-12,17,-23,38v-11,21,-20,41,-29,60v-9,19,-14,37,-14,54v0,17,1,29,3,36v2,7,4,15,7,22v3,7,4,12,4,15v0,15,-10,22,-31,22r-22,0v-20,0,-30,-6,-30,-19v0,-3,2,-9,5,-15v3,-6,6,-14,8,-22v2,-8,3,-22,3,-41v0,-11,-5,-26,-14,-45v-9,-19,-18,-39,-30,-61v-12,-22,-18,-35,-20,-37v-12,-19,-18,-29,-18,-31xm107,-313r0,-2v0,-7,13,-23,37,-47v9,-9,20,-14,31,-14r3,0r3,0r1,0v11,0,16,2,16,7r0,1v0,8,-17,23,-51,47v-10,7,-19,10,-29,10r-5,0v-4,0,-6,0,-6,-2","w":267},"\u00de":{"d":"32,-19v0,-4,3,-10,7,-18v4,-8,7,-15,8,-24v4,-23,5,-54,5,-93v0,-39,0,-63,-2,-73v-2,-10,-4,-19,-9,-27v-5,-8,-7,-15,-7,-22v0,-7,7,-11,24,-11r19,0v25,0,37,9,37,25v0,10,2,15,5,17v3,2,9,4,20,5v11,1,22,3,33,6v11,3,20,9,29,17v18,15,26,35,26,58r0,5v0,24,-8,45,-26,63v-13,13,-32,22,-56,27v-15,3,-24,6,-26,7v-7,4,-11,9,-11,16v0,0,2,3,4,7v2,5,3,8,3,12v0,6,-3,11,-10,15v-5,3,-14,5,-24,5r-9,0v-14,0,-24,-2,-30,-4v-6,-2,-10,-6,-10,-13xm103,-111v0,7,7,12,20,12r1,-1v14,0,26,-3,34,-10v12,-11,17,-24,17,-40r0,-7r0,-5v0,-11,-5,-21,-14,-29v-9,-8,-19,-11,-31,-11r-7,0v-10,0,-15,1,-17,5v-2,3,-3,13,-3,28r0,30r0,3r0,10r0,5r0,10","w":257},"\u00df":{"d":"21,-15v0,-2,2,-7,5,-13v3,-6,6,-13,8,-20v2,-7,3,-19,3,-35v0,-27,-2,-46,-5,-60v-3,-14,-4,-23,-4,-29v0,-6,3,-20,9,-44v6,-24,14,-40,22,-50v8,-10,18,-18,30,-23v12,-5,27,-8,43,-8v16,0,31,5,44,14v8,6,15,13,19,21v4,9,6,17,6,26r0,1v0,11,-3,23,-9,34v-12,21,-18,32,-18,34v0,6,6,16,18,28v12,12,22,23,28,32v6,9,8,20,8,32v0,23,-7,40,-21,54v-14,14,-32,21,-52,21v-20,0,-31,-7,-31,-20v0,-6,5,-11,14,-16r5,-2r10,-3v17,-7,25,-17,25,-31v0,-10,-1,-18,-5,-24v-4,-6,-10,-15,-20,-25r-16,-16v-5,-7,-7,-14,-7,-23v0,-9,3,-22,11,-38v8,-16,12,-29,12,-38v0,-9,-4,-16,-11,-21v-4,-3,-10,-4,-18,-4v-8,0,-15,3,-21,10v-6,7,-11,19,-15,34v-4,15,-5,58,-5,128r0,25r0,30v0,11,-3,19,-9,24v-6,5,-19,7,-38,7v-10,0,-15,-4,-15,-12","w":249},"\u00e0":{"d":"26,-54v0,-30,20,-52,59,-66v5,-2,9,-3,12,-4r7,-2v10,-3,16,-5,19,-7v7,-4,11,-10,11,-16v0,-6,-3,-12,-8,-17v-5,-5,-11,-8,-20,-8v-9,0,-19,3,-32,11v-13,8,-23,11,-28,11v-5,0,-9,-1,-13,-4v-4,-3,-6,-7,-6,-12v0,-10,9,-19,26,-27v17,-8,34,-11,51,-11v17,0,30,2,39,5v9,3,17,9,23,15v9,10,14,26,14,50v0,4,-1,9,-1,14r-1,19v-1,16,-1,28,-1,36v0,8,2,17,7,27v5,10,8,16,8,17r0,4v0,4,-2,7,-5,9v-8,5,-17,7,-29,7v-5,0,-11,-2,-16,-6v-5,-4,-9,-7,-14,-7v-1,0,-7,3,-18,8v-11,5,-21,8,-27,8r-8,0v-15,0,-26,-6,-35,-17v-9,-11,-14,-23,-14,-37xm53,-293v0,-4,5,-6,15,-6r7,0v12,0,20,4,27,11v24,27,37,46,37,55v0,2,-3,3,-7,3r-8,0v-8,0,-17,-4,-26,-12v-30,-27,-45,-44,-45,-51xm71,-52v0,5,1,9,5,13v4,4,10,6,18,6v8,0,17,-4,25,-12v8,-8,12,-17,12,-28r0,-1r0,-1r0,-1r1,-6r0,-2r0,-6r0,-1v0,-4,-3,-6,-8,-6r-1,0v-15,0,-27,4,-37,13v-10,9,-15,18,-15,28r0,4","w":219},"\u00e1":{"d":"25,-53v0,-30,20,-52,60,-66v1,0,7,-2,17,-5v10,-3,17,-6,21,-8v7,-4,11,-8,11,-15v0,-7,-3,-13,-8,-18v-5,-5,-12,-8,-21,-8v-9,0,-19,4,-32,11v-13,7,-22,11,-27,11v-5,0,-10,-1,-14,-4v-4,-3,-5,-7,-5,-12v0,-10,9,-19,26,-27v17,-8,36,-11,58,-11v22,0,39,5,51,16v12,11,19,27,19,49v0,3,-1,13,-2,30v-1,17,-2,31,-2,41v0,10,3,20,8,30v5,10,7,16,7,17r0,4v0,3,-2,7,-5,9v-8,5,-17,7,-29,7v-6,0,-11,-2,-16,-6v-5,-4,-9,-7,-11,-7v-2,0,-10,3,-22,8v-12,5,-23,8,-31,8r-4,0v-15,0,-26,-5,-35,-16v-9,-11,-14,-24,-14,-38xm71,-53v0,5,1,9,4,13v3,4,7,6,12,6r7,0v7,0,15,-4,23,-11v8,-7,12,-14,12,-23r1,-6r0,-1r1,-13r0,-5v0,-3,-2,-4,-7,-4r-5,0v-14,0,-27,6,-38,17v-7,7,-10,16,-10,27xm80,-235v0,-3,6,-12,17,-28v11,-16,17,-24,21,-27v9,-7,19,-11,29,-11r1,1v12,0,19,2,19,6v0,6,-16,22,-48,50v-9,8,-19,12,-29,12r-1,0v-6,0,-9,-1,-9,-3","w":219},"\u00e2":{"d":"25,-55v0,-18,8,-32,23,-45v9,-8,22,-14,37,-19v0,0,5,-2,16,-5v11,-3,18,-6,22,-8v7,-4,11,-10,11,-16v0,-6,-3,-12,-8,-17v-5,-5,-12,-8,-21,-8v-9,0,-20,4,-32,11v-12,7,-20,11,-26,11v-6,0,-10,-1,-14,-4v-4,-3,-6,-7,-6,-12v0,-10,7,-18,21,-25v18,-9,37,-14,57,-14r11,0v9,0,19,2,28,6v25,9,37,29,37,60r0,3v0,8,0,17,-1,27v-1,14,-2,25,-2,35v0,13,1,23,3,29v1,3,4,6,7,11v3,5,4,9,4,13r0,5v0,4,-2,6,-5,8v-7,5,-17,8,-29,8v-6,0,-11,-3,-16,-7v-5,-4,-9,-6,-12,-6v-3,0,-10,3,-21,8v-11,5,-22,8,-31,8v-15,0,-28,-5,-38,-15v-10,-10,-15,-24,-15,-42xm43,-237v0,-2,6,-9,17,-24v11,-15,20,-25,26,-30v6,-5,13,-8,20,-8r5,0v7,0,13,2,19,7v6,5,14,15,26,30v12,15,17,23,17,25v0,3,-5,4,-14,4v-9,0,-18,-4,-28,-14v-14,-14,-22,-22,-23,-22v-1,0,-9,7,-24,22v-9,9,-18,14,-27,14v-9,0,-14,-1,-14,-4xm71,-52v0,5,2,10,5,13v3,3,10,5,18,5v8,0,16,-3,24,-11v8,-8,12,-16,12,-25r1,-5r0,-1r1,-7r0,-2r0,-5r0,-2v0,-4,-3,-5,-8,-5r-1,0v-9,0,-20,3,-33,10v-13,7,-19,16,-19,27r0,3r0,5","w":219},"\u00e3":{"d":"26,-53r0,-5v0,-16,8,-30,23,-42v12,-9,30,-18,55,-25v10,-3,16,-5,19,-7v7,-4,11,-10,11,-16v0,-6,-3,-11,-8,-17v-5,-6,-11,-9,-20,-9v-9,0,-20,4,-33,12v-13,8,-22,11,-27,11v-5,0,-9,-1,-13,-4v-4,-3,-6,-7,-6,-12v0,-10,8,-19,25,-27v17,-8,34,-12,53,-12r10,0v21,0,39,7,51,20v10,10,15,26,15,46r0,2v0,8,-1,16,-2,27v-1,14,-2,26,-2,36v0,13,2,22,4,28v1,3,3,7,6,12v3,5,5,9,5,14v0,5,-2,9,-5,11v-7,5,-17,8,-29,8v-5,0,-11,-3,-16,-7v-5,-4,-10,-6,-12,-6v-2,0,-9,3,-21,8v-12,5,-22,8,-31,8v-16,0,-28,-5,-38,-15v-10,-10,-14,-23,-14,-39xm39,-246v0,-11,4,-21,13,-29v9,-8,18,-12,28,-12v9,0,20,3,31,9v11,6,20,9,25,9v5,0,10,-3,16,-9v6,-6,10,-9,14,-9r3,0v6,0,9,2,9,6v0,11,-5,21,-14,29v-9,8,-17,13,-27,13v-1,0,-3,-1,-4,-1v-7,0,-16,-3,-27,-9v-11,-6,-20,-9,-25,-9v-5,0,-10,3,-16,9v-6,6,-11,9,-16,9r-1,0v-6,0,-9,-2,-9,-6xm71,-53v0,5,2,9,5,13v3,4,7,6,12,6v12,0,22,-4,30,-12v8,-8,12,-18,12,-29r1,-2r0,-9r0,-2r0,-2v0,-5,-2,-8,-5,-8v-17,0,-30,4,-40,13v-10,9,-15,18,-15,27r0,5","w":219},"\u00e4":{"d":"26,-49v0,-22,7,-39,22,-51v12,-10,28,-17,46,-22v16,-5,25,-8,29,-10v7,-4,11,-8,11,-13v0,-10,-2,-17,-8,-22v-6,-5,-13,-6,-22,-6v-9,0,-20,3,-31,11v-12,8,-21,11,-29,11v-6,0,-9,-2,-13,-6v-2,-3,-4,-6,-4,-10v0,-10,8,-19,25,-27v17,-8,34,-12,52,-12v18,0,31,2,40,5v9,3,16,9,22,15v10,10,15,27,15,50r-3,56r0,5v0,3,-1,7,-1,13v0,6,3,14,8,24v5,10,7,14,7,15r0,5v0,5,-3,8,-8,10v-8,4,-15,6,-23,6v-8,0,-14,-2,-19,-6v-5,-4,-8,-7,-11,-7v-3,0,-10,3,-22,8v-12,5,-22,8,-30,8r-4,0v-14,0,-27,-5,-36,-16v-9,-11,-13,-22,-13,-34xm43,-257r0,-3r1,-7v0,-5,2,-9,6,-13v4,-4,8,-6,14,-6r2,0r7,-1r0,1r5,0r2,0v8,0,11,4,11,12v1,2,1,4,1,8r-1,8v0,6,-2,11,-7,14v-5,3,-12,5,-23,5r-1,0r-3,0v-9,0,-14,-6,-14,-18xm71,-54r0,1r0,5v0,3,2,6,5,9v3,3,9,5,17,5v8,0,16,-4,24,-11v8,-7,13,-16,13,-25r0,-5r1,-1r1,-12r0,-5v0,-3,-3,-5,-8,-5r-5,1v-12,0,-24,6,-36,16v-8,7,-12,16,-12,27xm125,-256r0,-6v0,-2,1,-3,1,-4v0,-6,2,-11,7,-15v5,-4,11,-6,22,-6r7,1v8,0,12,6,12,17r0,4r-1,7v0,6,-3,10,-7,14v-4,4,-11,5,-22,5r-7,-1v-8,0,-12,-5,-12,-16","w":219},"\u00e5":{"d":"25,-53v0,-28,18,-48,55,-62v4,-2,12,-4,22,-7v10,-3,17,-6,21,-8v7,-4,10,-9,10,-15v0,-6,-3,-13,-8,-18v-5,-5,-12,-8,-21,-8v-9,0,-19,3,-31,11v-12,7,-22,11,-30,11v-6,0,-10,-2,-13,-6v-2,-3,-4,-5,-4,-9v0,-10,9,-19,26,-27v17,-8,36,-12,58,-12r4,0v21,0,39,7,51,20v10,10,14,26,14,46r-3,56r0,17v0,8,2,18,7,27v5,9,8,15,8,17r0,4v0,4,-2,7,-5,9v-7,5,-17,7,-29,7v-6,0,-12,-2,-17,-6v-5,-4,-8,-7,-11,-7v-3,0,-10,3,-21,8v-11,5,-23,8,-36,8v-13,0,-24,-5,-33,-16v-9,-11,-14,-24,-14,-40xm63,-265r0,-3v0,-10,4,-19,14,-26v10,-7,21,-10,32,-10v11,0,21,3,30,9v9,6,13,14,13,24r0,4v0,9,-4,18,-13,25v-9,7,-19,10,-30,10r-5,0v-10,0,-19,-3,-28,-9v-9,-6,-13,-14,-13,-24xm70,-52r0,1r0,5v0,3,2,6,5,9v3,3,9,5,17,5v8,0,16,-4,24,-11v9,-8,13,-17,13,-30r1,-7r0,-2r0,-4r0,-4v0,-4,-2,-5,-7,-5r-5,0v-14,0,-26,5,-35,14v-9,9,-13,19,-13,29xm90,-264v0,5,3,9,6,12v4,4,8,6,13,6r1,0r1,0r2,-1v1,0,4,-2,7,-5v3,-3,4,-6,4,-10r1,-4r0,-4v0,-6,-1,-10,-5,-14v-4,-4,-8,-5,-13,-5v-5,0,-9,2,-12,6v-3,4,-5,8,-5,12r0,7","w":218},"\u00e6":{"d":"18,-63v0,-8,3,-16,8,-24v11,-19,33,-32,67,-39v26,-5,40,-11,40,-17v0,-8,-3,-14,-9,-18v-6,-5,-13,-7,-20,-7v-8,0,-16,3,-25,8v-17,10,-28,15,-32,15v-4,0,-9,-1,-12,-4v-3,-3,-5,-8,-5,-13v0,-8,8,-16,24,-23v16,-7,33,-10,54,-10v15,0,28,2,38,7v10,5,16,7,17,7v1,0,9,-2,23,-7v14,-5,27,-8,39,-8v23,0,43,6,58,19v8,7,16,16,21,26v5,10,7,19,7,28r0,6v0,9,-3,16,-10,19v-5,2,-22,3,-51,5v-29,2,-45,3,-48,4v-8,2,-11,7,-11,16v0,9,4,16,12,22v9,6,19,10,30,10v10,0,22,-3,34,-8v15,-6,25,-9,29,-9v8,0,12,4,12,13v0,9,-7,16,-22,24v-15,8,-30,12,-48,12v-18,0,-32,-3,-41,-6v-9,-3,-18,-7,-26,-12v-8,-5,-14,-8,-16,-8v-2,0,-7,2,-14,7v-19,12,-38,18,-58,18v-20,0,-35,-5,-47,-15v-12,-10,-18,-22,-18,-38xm74,-53v0,5,1,10,5,14v4,4,10,5,19,5v9,0,17,-3,25,-11v8,-8,11,-19,11,-32r0,-10v0,-6,-2,-9,-7,-9v-18,0,-31,4,-40,13v-9,9,-13,18,-13,26r0,4xm190,-134v0,4,2,6,7,6r9,0r1,-1r17,0v22,0,34,-4,34,-10r0,-2r0,-1v0,-7,-3,-14,-8,-21v-5,-7,-11,-10,-20,-10r-7,0v-8,0,-15,4,-22,12v-7,8,-11,17,-11,27","w":324},"\u00e7":{"d":"69,69v0,-2,5,-4,13,-5v8,-1,15,-3,19,-5v4,-2,6,-6,6,-11v0,-5,-3,-9,-8,-12v-5,-3,-7,-6,-7,-9v0,-3,2,-10,7,-21v1,-1,2,-3,3,-4v-10,-1,-20,-2,-30,-7v-21,-9,-38,-27,-47,-51v-5,-13,-7,-28,-7,-44v0,-34,8,-60,25,-79v17,-20,41,-30,70,-30r5,0v21,0,37,3,46,10v14,10,21,22,21,37v0,9,-6,13,-17,13v-5,0,-14,-4,-26,-12v-12,-8,-24,-11,-35,-11v-11,0,-21,5,-28,17v-7,12,-11,29,-11,49v0,20,4,36,12,48v4,7,9,11,15,14v6,3,13,5,21,5v8,0,17,-1,26,-5v9,-4,18,-6,26,-6v12,0,18,4,18,10v0,10,-7,20,-21,29v-14,9,-30,14,-47,14v2,2,2,5,2,10v0,2,2,4,6,6v12,7,18,16,18,26r0,4v0,9,-5,18,-13,24v-8,6,-18,9,-29,9r-7,0v-17,0,-26,-3,-26,-8r0,-5","w":203},"\u00e8":{"d":"21,-90r0,-9v0,-12,3,-25,8,-38v5,-13,12,-25,22,-35v10,-10,20,-18,33,-24v13,-6,26,-9,40,-9r5,0v19,0,34,5,45,18v11,13,16,30,16,51v0,14,-4,23,-12,27v-5,3,-21,6,-47,8v-26,2,-42,5,-48,7v-8,3,-12,9,-12,19v0,10,4,19,14,27v10,8,21,11,34,11v9,0,20,-2,31,-6v14,-5,24,-8,30,-8v8,0,12,4,12,13v0,9,-6,17,-18,23v-16,8,-33,13,-53,13r-10,0v-14,0,-27,-2,-38,-7v-21,-9,-35,-22,-43,-41v-6,-14,-9,-27,-9,-40xm55,-291v0,-5,5,-8,17,-8r6,0v11,0,21,5,28,13v23,26,34,44,34,54v0,2,-1,3,-6,3r-5,0v-8,0,-16,-4,-25,-11v-32,-25,-49,-42,-49,-51xm74,-133v0,4,3,5,8,5r11,0r1,0r14,0v24,0,36,-3,36,-9r0,-4r0,-1r0,-2r0,-3v0,-6,-4,-13,-10,-18v-6,-5,-12,-8,-19,-8r-5,0v-2,0,-4,1,-6,1v-6,0,-13,4,-20,12v-7,8,-10,17,-10,25r0,2","w":214},"\u00e9":{"d":"21,-89r0,-10r0,-1v0,-12,3,-24,8,-37v11,-26,29,-46,55,-58v13,-6,26,-9,40,-9r5,0v20,0,36,7,46,20v10,13,15,29,15,49v0,14,-4,22,-12,26v-5,2,-21,5,-47,8v-26,3,-41,5,-44,6v-11,3,-15,7,-15,15v0,14,4,24,14,32v10,8,22,11,36,11v7,0,17,-1,30,-6v13,-5,22,-7,27,-7v8,0,12,4,12,12v0,8,-6,16,-18,23v-15,8,-33,13,-53,13r-10,0v-28,0,-50,-10,-66,-27v-6,-7,-12,-15,-16,-26v-4,-11,-7,-22,-7,-34xm73,-131v0,4,3,6,10,6r8,0r1,0r18,-2r1,0r4,0r1,0r10,-1v11,0,17,-3,17,-10r0,-7r-1,-6v0,-6,-3,-11,-9,-16v-7,-5,-13,-6,-19,-6r-4,0r-5,0v-8,0,-16,5,-22,14v-6,9,-10,18,-10,28xm83,-235v0,-4,3,-10,9,-17v6,-7,12,-14,17,-22v5,-8,9,-13,11,-15v8,-7,19,-11,31,-11v12,0,18,3,18,7v0,9,-16,26,-48,51v-9,7,-18,11,-26,11v-8,0,-12,-2,-12,-4","w":214},"\u00ea":{"d":"20,-89r0,-5v0,-16,3,-31,9,-45v6,-14,14,-25,25,-36v21,-20,44,-30,71,-30r4,0v19,0,34,6,45,19v11,13,17,30,17,51v0,14,-4,23,-12,27v-4,2,-21,5,-48,8v-27,3,-42,5,-44,6v-11,3,-17,7,-17,15v0,14,4,24,14,32v9,8,21,12,34,12v10,0,21,-2,32,-6v14,-5,24,-8,30,-8v8,0,12,5,12,14v0,9,-7,17,-22,24v-15,7,-31,11,-49,11r-2,0v-17,0,-30,-2,-41,-5v-24,-8,-41,-24,-51,-48v-5,-12,-7,-24,-7,-36xm47,-236v0,-3,1,-7,6,-12v24,-29,37,-43,38,-44v5,-4,12,-6,20,-6v8,0,16,2,21,6r36,42v5,6,8,11,8,14v0,3,-5,4,-14,4v-9,0,-18,-5,-28,-15v-14,-14,-22,-21,-23,-21v-1,0,-4,3,-10,9r-12,12v-11,10,-21,15,-30,15v-9,0,-12,-1,-12,-4xm74,-133v0,4,2,5,7,5r11,0r1,0r15,-1v24,0,36,-3,36,-9v0,-11,-2,-19,-8,-25v-6,-6,-12,-10,-20,-10r-8,0r-3,0v-7,0,-14,5,-21,13v-7,8,-10,16,-10,23r0,2r0,2","w":214},"\u00eb":{"d":"21,-89r0,-4v0,-33,10,-60,31,-81v22,-21,46,-31,73,-31r4,0v20,0,36,8,48,22v10,12,15,27,15,48v0,15,-6,24,-16,28v-6,2,-20,5,-43,7v-23,2,-38,4,-46,6v-11,3,-16,8,-16,15v0,14,4,24,14,32v10,8,21,12,34,12v10,0,20,-2,31,-6v14,-5,25,-8,31,-8v8,0,11,4,11,13v0,9,-7,18,-22,25v-15,7,-33,11,-54,11r-5,0v-27,0,-48,-8,-64,-24v-8,-8,-14,-17,-19,-29v-5,-12,-7,-24,-7,-36xm47,-256r0,-5r0,0r0,-5v0,-6,2,-11,7,-15v5,-4,12,-5,23,-5r6,1v8,0,12,4,12,12v1,2,0,4,0,8r0,7v0,4,-3,9,-6,13v-3,4,-8,6,-14,6r-5,1r-7,0r-5,-1v-8,0,-11,-6,-11,-17xm74,-133v0,3,5,5,13,5r1,0r21,-1v24,0,36,-3,36,-9r-1,-10v0,-5,-3,-11,-9,-17v-6,-6,-12,-8,-20,-8r-5,0v-2,0,-4,1,-5,1v-7,0,-13,3,-20,11v-7,8,-10,16,-10,23r-1,4r0,1xm128,-261v0,-17,9,-25,27,-25r3,0r7,1v8,0,11,4,11,12v1,2,1,5,1,9r-1,6v0,5,-1,9,-5,13v-4,4,-9,6,-14,6v-1,0,-3,1,-6,1r-6,0v-11,0,-16,-4,-16,-13v-1,-2,-1,-5,-1,-10","w":214},"\u00ec":{"d":"6,-293v0,-4,5,-6,14,-6r6,0r1,0v12,0,22,4,29,12v24,27,36,46,36,55v0,2,-4,3,-12,3v-8,0,-17,-4,-25,-10v-14,-11,-29,-24,-44,-42v-3,-4,-5,-8,-5,-12xm30,-175v-4,-8,-6,-14,-6,-18v0,-5,3,-7,7,-9v5,-2,13,-3,25,-3r6,0r13,0v6,0,10,3,11,8v1,2,1,21,1,57v0,36,0,59,1,69v1,10,3,20,7,30v4,10,6,15,6,16r0,5v0,4,-2,7,-6,11v-4,4,-9,6,-15,6r-29,0v-10,0,-17,-2,-20,-5v-3,-3,-5,-7,-5,-12v0,-5,1,-11,5,-18v3,-7,6,-14,7,-22v1,-8,2,-25,2,-49v0,-24,-1,-40,-2,-46v-1,-6,-4,-13,-8,-20","w":127},"\u00ed":{"d":"26,-21v0,-3,2,-7,5,-13v3,-6,5,-10,5,-11v3,-8,5,-15,5,-23r0,-29r0,-14v0,-24,-1,-39,-2,-45v-1,-5,-4,-11,-8,-18v-4,-7,-6,-13,-6,-18v0,-4,2,-6,5,-8v4,-2,10,-3,20,-3r21,-1r5,-1v6,0,11,3,12,8v1,2,1,15,1,38r0,68r0,16v0,11,2,22,7,32v5,10,7,17,7,20r0,5v0,5,-4,11,-11,15v-3,2,-8,2,-16,2r-21,0v-11,0,-19,-1,-23,-4v-4,-3,-6,-8,-6,-16xm35,-235v0,-8,11,-25,35,-52v8,-9,18,-13,31,-13v13,0,20,2,20,6r0,2v0,8,-16,24,-49,50v-9,7,-19,11,-28,11r-1,-1v-6,0,-8,-1,-8,-3","w":127},"\u00ee":{"d":"0,-236v0,-2,3,-8,10,-16v10,-12,10,-11,19,-23v6,-8,10,-14,13,-16v5,-5,13,-7,22,-7v9,0,17,3,22,8v28,28,42,45,42,53v0,3,-5,4,-14,4v-9,0,-18,-5,-27,-14v-14,-14,-22,-21,-23,-21v-1,0,-8,7,-23,22v-9,9,-19,14,-28,14v-9,0,-13,-1,-13,-4xm30,-200v5,-2,14,-4,28,-4r6,0r13,-1v6,0,9,3,11,8v1,2,1,22,1,59v0,37,1,60,2,70v1,10,3,19,7,28v4,9,5,15,5,17r0,5v0,4,-2,7,-6,11v-4,4,-10,6,-18,6r-27,0v-10,0,-17,-1,-20,-4v-3,-3,-5,-7,-5,-12v0,-5,2,-12,6,-19v3,-7,6,-14,7,-21v1,-7,2,-23,2,-50v0,-27,-1,-43,-2,-49v-1,-6,-4,-12,-8,-19v-4,-7,-6,-13,-6,-17v0,-4,1,-6,4,-8","w":129},"\u00ef":{"d":"0,-257r0,-5r1,-5v0,-6,2,-11,6,-14v4,-3,8,-5,13,-5v2,-1,6,-1,10,-1r5,1v8,0,13,5,13,16r0,6r-1,6v0,5,-2,9,-6,13v-4,4,-7,6,-12,6r-2,0r-7,1r-2,0r-7,-1v-7,0,-10,-5,-10,-13xm26,-192v0,-5,2,-9,6,-10v7,-2,20,-3,40,-3r5,0v6,0,9,3,11,8v1,2,1,15,1,38r0,61r1,15v0,11,0,20,2,26v2,6,4,12,7,19v3,6,4,12,4,17v0,6,-2,10,-6,14v-4,4,-9,6,-15,6r-32,0v-8,0,-15,-2,-18,-5v-3,-3,-5,-7,-5,-12v0,-6,3,-13,7,-21v5,-11,7,-23,7,-36r1,-12r0,-24v0,-23,-1,-38,-2,-44v-1,-6,-4,-13,-8,-20v-4,-7,-6,-12,-6,-17xm80,-260r0,-1r1,-8v0,-4,2,-7,6,-11v4,-4,8,-6,14,-6r5,0r6,0v11,0,16,4,16,13r1,5r0,4r-1,6v0,4,-2,8,-5,12v-3,4,-7,6,-13,6v-2,0,-3,1,-4,1r-4,0r-3,0r-7,-1v-8,0,-11,-4,-11,-12v-1,-2,-1,-4,-1,-8","w":129},"\u00f0":{"d":"30,-84v0,-32,9,-60,27,-81v16,-19,37,-29,62,-31v13,-1,19,-5,19,-11v0,-8,-4,-14,-13,-20v-3,-2,-8,-4,-14,-4v-3,0,-6,0,-9,1r-13,2v-11,0,-16,-2,-16,-8v0,-4,2,-9,6,-14v4,-5,7,-9,7,-12v0,-3,-4,-7,-11,-13v-7,-6,-10,-11,-10,-14v0,-6,4,-9,13,-9r5,0v6,0,14,3,26,8v12,5,19,8,21,8v2,0,6,0,10,-1r21,-3v11,0,17,3,17,9v0,3,-2,7,-5,13v-3,6,-4,10,-4,13v0,3,4,12,11,25v17,30,25,61,25,92r0,13v0,19,-3,37,-8,53v-10,32,-28,54,-52,65v-11,5,-22,7,-35,7r-6,0v-23,0,-41,-8,-54,-25v-13,-17,-20,-38,-20,-63xm80,-92v0,16,4,31,10,44v6,13,15,19,26,19r5,0v8,0,15,-6,22,-17v7,-11,11,-25,11,-41r0,-4r0,-7r0,-8v0,-18,-3,-33,-9,-44v-6,-11,-15,-17,-27,-17r-2,0v-10,0,-18,6,-25,17v-7,11,-11,26,-11,45r0,13","w":233},"\u00f1":{"d":"19,-22v0,-5,2,-10,5,-17v3,-7,5,-16,6,-26v2,-30,4,-50,4,-61v0,-11,-1,-19,-2,-24v-1,-5,-3,-12,-5,-18v-2,-6,-3,-11,-3,-13v0,-5,4,-9,12,-12v8,-3,18,-4,30,-4v5,0,11,1,16,6v5,5,8,7,9,7v1,0,4,-2,9,-5v16,-10,31,-15,45,-15v11,0,22,3,32,9v8,5,13,12,18,20v7,13,12,32,12,60v0,28,0,46,2,54v2,8,4,15,8,22v4,7,5,11,5,13r0,5v0,3,-2,6,-5,10v-3,4,-8,6,-15,6v-20,0,-34,-2,-42,-6v-5,-3,-7,-8,-7,-15r4,-29v1,-15,1,-30,1,-42v0,-26,-2,-45,-7,-56v-5,-11,-12,-17,-23,-17v-8,0,-15,2,-21,6v-6,4,-11,9,-14,15v-7,13,-10,38,-10,75v0,5,1,13,3,23v2,10,3,16,3,17v0,10,-4,17,-12,21v-8,4,-21,6,-42,6v-11,0,-16,-5,-16,-15xm50,-246r0,-1r1,-2v0,-10,6,-19,17,-29v7,-6,16,-9,25,-9v9,0,18,3,29,9v12,6,21,9,26,9v5,0,10,-3,15,-9v5,-6,11,-9,17,-9v6,0,10,2,10,6r0,4v0,10,-6,19,-17,28v-7,6,-14,10,-22,10r-6,0v-5,0,-14,-3,-28,-9v-14,-6,-22,-10,-26,-10v-4,0,-8,4,-14,10v-6,6,-10,9,-14,9r-4,0v-6,0,-9,-3,-9,-7","w":241},"\u00f2":{"d":"29,-91r0,-10v0,-14,3,-28,8,-42v10,-28,26,-47,49,-58v11,-5,22,-8,34,-8r6,0v22,0,41,8,55,25v7,8,12,17,16,29v4,12,6,24,6,37r0,7v0,32,-9,60,-27,81v-7,9,-17,16,-28,22v-11,6,-23,9,-36,9r-6,0v-11,0,-21,-2,-31,-7v-10,-5,-19,-11,-26,-20v-13,-17,-20,-39,-20,-65xm60,-292v0,-5,6,-7,19,-7v13,0,22,3,30,10v3,2,8,8,14,17v6,9,12,17,17,23v5,6,7,12,7,16v0,2,-3,3,-9,3r-5,0v-9,0,-17,-3,-26,-11v-32,-28,-47,-45,-47,-51xm79,-96v0,18,3,34,10,47v7,13,16,19,26,19r3,0r1,0v10,0,19,-7,25,-20v6,-13,9,-30,9,-50r0,-4r0,-3r-1,-11r0,-1v0,-16,-3,-29,-11,-40v-8,-11,-15,-17,-24,-17v-1,0,-2,1,-3,1v-9,0,-17,5,-24,16v-7,11,-11,26,-11,43r0,4r0,16","w":230},"\u00f3":{"d":"28,-89r0,-7v0,-16,3,-31,8,-45v5,-14,11,-26,18,-35v7,-9,18,-17,29,-23v11,-6,23,-9,37,-9r7,0v22,0,40,8,54,25v7,8,13,17,17,29v4,12,6,25,6,38r0,11v0,14,-3,27,-8,41v-10,28,-26,48,-50,59v-11,5,-23,8,-35,8r-6,0v-22,0,-41,-8,-55,-25v-15,-17,-22,-40,-22,-67xm79,-100r0,2r0,4r0,4v0,2,1,4,1,5v0,15,3,28,11,39v8,11,15,16,23,16r4,0r1,0v10,0,18,-6,24,-19v6,-13,9,-26,9,-40v0,-3,1,-4,1,-6r0,-9r0,-2v0,-22,-4,-39,-11,-51v-7,-12,-15,-19,-25,-19v-1,0,-2,1,-3,1v-9,0,-17,5,-24,16v-7,11,-11,26,-11,43r0,4r0,9r0,3xm88,-235v0,-8,11,-26,35,-53v8,-9,17,-12,29,-12r5,0v11,0,17,2,17,6v0,6,-17,22,-49,51v-8,7,-17,11,-25,11v-8,0,-12,-1,-12,-3","w":230},"\u00f4":{"d":"28,-85r0,-15v0,-14,3,-27,8,-41v5,-14,11,-26,18,-35v7,-9,17,-17,29,-23v12,-6,25,-10,38,-10r6,0v23,0,42,10,57,28v14,17,21,41,21,72v0,32,-10,59,-28,81v-7,9,-16,16,-28,22v-12,6,-24,9,-37,9r-6,0v-11,0,-21,-2,-31,-6v-18,-8,-30,-22,-38,-41v-6,-14,-9,-28,-9,-41xm53,-237v0,-2,5,-10,15,-23v10,-13,19,-23,26,-29v7,-6,15,-9,24,-9v9,0,16,2,21,7v1,1,13,16,37,44v4,5,6,8,6,10v0,2,-5,4,-15,4v-10,0,-18,-4,-27,-14v-13,-14,-21,-22,-23,-22v-1,0,-7,6,-19,18v-12,12,-23,18,-32,18v-9,0,-13,-1,-13,-4xm79,-98v0,19,3,35,10,48v7,13,15,20,26,20r3,0v11,0,20,-7,26,-20v6,-13,10,-30,10,-48r0,-9r0,-2r-1,-5r0,-4v0,-16,-4,-30,-12,-43v-6,-10,-14,-15,-23,-15r-3,0v-11,0,-21,7,-27,21v-6,14,-9,30,-9,48r0,9","w":230},"\u00f5":{"d":"28,-89r0,-7v0,-16,3,-32,8,-46v10,-28,26,-46,47,-57v13,-6,25,-10,37,-10r7,0r0,0v9,0,19,2,29,6v19,8,33,24,41,48v4,13,7,25,7,38r0,11v0,14,-3,28,-8,42v-5,14,-12,26,-20,35v-18,21,-39,31,-64,31r-7,0v-23,0,-41,-7,-55,-24v-15,-17,-22,-40,-22,-67xm47,-245r0,-4v0,-9,5,-17,14,-25v9,-8,19,-13,28,-13r3,0v7,0,17,3,28,9v11,6,19,9,24,9v5,0,10,-3,16,-9v6,-6,12,-9,18,-9v6,0,9,2,9,6v0,11,-5,21,-14,29v-9,8,-19,13,-28,13v-9,0,-20,-3,-31,-9v-11,-6,-20,-9,-25,-9v-5,0,-10,3,-15,9v-5,6,-10,9,-15,9r-3,0v-6,0,-9,-2,-9,-6xm79,-97v0,17,3,32,9,46v6,14,16,21,27,21r3,0v11,0,18,-6,24,-17v7,-15,11,-32,11,-53r0,-5r0,-2r0,-5r-1,-4r0,-4v0,-15,-3,-29,-11,-40v-8,-11,-16,-16,-26,-16v-10,0,-18,6,-25,17v-7,11,-11,26,-11,43r0,4r0,15","w":230},"\u00f6":{"d":"28,-89r0,-7r1,-4r0,-1r0,-1v0,-13,2,-26,7,-40v5,-14,12,-26,21,-36v17,-20,40,-30,67,-30r3,0v22,0,41,8,55,25v6,7,12,17,16,29v4,12,6,24,6,38r0,7r0,3v0,14,-3,28,-8,42v-11,30,-27,49,-52,60v-11,5,-22,7,-33,7r-5,0v-23,0,-42,-8,-56,-25v-15,-17,-22,-40,-22,-67xm52,-260r1,-7v0,-6,3,-10,7,-14v4,-4,11,-5,19,-5r4,0r7,1v7,0,10,4,10,12r1,5r0,4v0,17,-9,25,-26,25r-5,0r-6,-1v-8,0,-12,-6,-12,-20xm79,-101r0,3r0,4v0,3,1,5,1,6v0,17,4,32,13,45v6,9,14,13,24,13v10,0,18,-6,25,-17v7,-11,11,-26,11,-42r0,-4r0,-16v0,-20,-3,-36,-10,-48v-7,-12,-16,-19,-25,-19r-3,0v-10,0,-19,6,-26,19v-7,13,-10,30,-10,52r0,4xm134,-260r1,-7v0,-5,2,-9,5,-13v3,-4,8,-6,14,-6r6,0r5,0v3,1,6,1,7,1v7,0,10,5,10,15r0,7v0,7,-1,13,-5,17v-4,4,-9,6,-14,6v-2,0,-2,1,-3,1r-9,0v-11,0,-16,-4,-16,-12v-1,-2,-1,-5,-1,-9","w":230},"\u00f7":{"d":"26,-118r0,-11v0,-7,2,-10,5,-11v3,-1,30,0,82,0r102,0v10,0,15,3,15,10r0,10v0,7,-1,12,-3,13v-2,1,-8,1,-18,1r-158,0v-12,0,-19,0,-21,-1v-2,-1,-4,-4,-4,-11xm104,-195r0,-4r0,-1r1,-4v0,-8,2,-15,8,-19v6,-4,11,-5,17,-5r6,0r3,0v8,0,13,5,13,14v1,2,1,3,1,4r0,7r-1,8v0,6,-3,11,-8,15v-5,4,-12,6,-20,6r-6,-1v-9,0,-13,-5,-13,-15xm104,-48r0,-2r1,-4r0,-4v0,-9,5,-14,15,-14r5,-1r2,0v17,0,25,11,25,32r0,0v0,15,-5,24,-17,24r-6,0r-5,-1v-3,0,-8,-2,-12,-6v-4,-4,-7,-8,-7,-15r0,-4","w":247},"\u00f8":{"d":"29,-88v0,-15,3,-30,8,-45v11,-30,30,-51,59,-64v12,-5,25,-8,39,-8v5,0,10,1,16,2v7,1,12,1,13,1v7,0,12,-2,17,-6v9,-8,15,-11,19,-11v5,0,8,4,8,12v0,2,-1,8,-5,14v-4,6,-6,10,-6,13r9,24v4,11,6,23,6,37r0,4v0,14,-3,29,-9,45v-12,31,-33,53,-63,64v-10,4,-23,6,-38,6r-27,-2v-6,0,-12,3,-19,9v-7,6,-13,9,-17,9v-6,0,-8,-3,-8,-9v0,-5,2,-11,6,-17v4,-6,7,-11,7,-14v0,-3,-2,-6,-5,-12v-3,-6,-5,-12,-7,-19v-2,-7,-4,-15,-4,-25v0,-2,1,-5,1,-8xm77,-90r0,4r1,5v0,7,1,11,3,11v1,0,3,-4,8,-12v5,-8,9,-13,12,-17v28,-38,41,-60,41,-65v0,-7,-4,-11,-15,-11r-7,0v-11,0,-20,7,-29,19v-9,12,-13,26,-13,41r-1,4r0,8r0,13xm98,-39v0,6,6,10,17,10r5,0v2,0,3,-1,4,-1v9,0,17,-6,25,-18v8,-12,13,-26,13,-40r1,-8r0,-9r0,-4v0,-17,-1,-25,-3,-25r-1,0r-19,28v-28,38,-42,60,-42,65r0,2","w":235},"\u00f9":{"d":"17,-187v0,-9,6,-14,18,-14v20,0,32,2,37,7v5,5,8,19,8,44r0,35v0,29,3,49,8,61v5,12,13,17,27,17v6,0,13,-2,19,-7v6,-5,11,-10,13,-16v5,-12,7,-35,7,-68v0,-6,-1,-16,-3,-29v-2,-13,-4,-21,-4,-23v0,-13,16,-19,49,-19v6,0,10,2,11,8r0,34r-3,75v0,16,2,28,5,37v3,9,5,14,5,15r0,5v0,5,-4,8,-11,11v-7,3,-15,4,-24,4v-9,0,-17,-2,-22,-6v-5,-4,-8,-6,-10,-6v-2,0,-4,1,-7,3r-4,3v-13,8,-27,12,-38,12v-24,0,-41,-8,-52,-25v-9,-13,-13,-38,-13,-73v0,-33,-3,-54,-8,-65v-5,-11,-8,-17,-8,-20xm60,-291r0,-1v0,-4,5,-6,15,-6r5,0v11,0,21,4,30,12v5,4,12,13,22,27v10,14,14,22,14,25v0,3,-3,5,-9,5r-5,0v-7,0,-16,-5,-25,-12v-32,-25,-47,-41,-47,-50"},"\u00fa":{"d":"16,-188v0,-4,1,-7,4,-9v3,-2,7,-3,14,-3v20,0,33,3,38,7v5,4,7,15,7,33r0,12v0,4,1,7,1,11v0,39,1,64,4,75v3,11,7,19,12,22v5,3,11,5,18,5v7,0,14,-2,20,-7v6,-5,11,-10,13,-16v5,-13,8,-36,8,-69v0,-6,-1,-17,-4,-30v-3,-13,-4,-21,-4,-23v0,-13,17,-19,50,-19v6,0,9,3,10,9v0,1,1,8,1,23v0,15,-1,32,-2,48v-1,16,-2,30,-2,40v0,10,1,18,2,23v1,5,3,11,5,17v2,6,4,11,4,15v0,5,-4,9,-12,12v-8,3,-16,4,-25,4v-9,0,-15,-2,-20,-6v-5,-4,-8,-7,-10,-7v-2,0,-5,1,-8,3r-4,3v-14,9,-28,13,-41,13v-9,0,-18,-1,-26,-5v-8,-4,-16,-9,-21,-16v-11,-13,-16,-35,-16,-65r0,-6r0,-19v0,0,0,-18,-2,-29v-2,-11,-4,-21,-8,-29v-4,-8,-6,-13,-6,-17xm90,-235v0,-3,6,-12,16,-27v10,-15,18,-24,22,-28v8,-7,18,-10,29,-10r1,0v12,0,18,2,18,6v0,9,-17,27,-50,53v-8,6,-17,10,-26,10r-2,-1v-6,0,-8,-1,-8,-3"},"\u00fb":{"d":"16,-186v0,-9,5,-14,13,-14r11,0v17,0,27,2,32,7v5,5,7,15,7,33r0,6r0,11r1,12r0,17v0,29,2,49,7,61v5,12,15,18,29,18v6,0,12,-2,18,-7v6,-5,11,-10,13,-16v5,-13,8,-36,8,-69v0,-6,-1,-16,-4,-29v-3,-13,-4,-21,-4,-24v0,-13,17,-19,50,-19v6,0,9,3,10,9v0,1,1,8,1,23v0,15,-1,31,-2,46v-1,12,-1,23,-1,33v0,21,1,36,5,47v3,8,5,12,5,13r0,5v0,5,-5,8,-12,11v-7,3,-15,4,-24,4v-9,0,-16,-2,-21,-6v-5,-4,-8,-6,-10,-6v-2,0,-5,1,-8,3r-4,3v-14,9,-27,13,-39,13v-12,0,-24,-3,-33,-8v-9,-5,-17,-14,-23,-25v-6,-11,-9,-33,-9,-66v0,-33,-3,-54,-8,-65v-5,-11,-8,-18,-8,-21xm53,-236v0,-2,6,-10,16,-24v10,-14,18,-24,25,-30v7,-6,15,-9,24,-9v9,0,17,3,23,9v6,6,14,16,25,30v11,14,16,21,16,23v0,3,-4,4,-14,4v-10,0,-19,-5,-28,-14v-13,-14,-21,-22,-23,-22v-1,0,-4,3,-10,9r-12,12v-11,10,-19,15,-26,15v-10,0,-16,-1,-16,-3"},"\u00fc":{"d":"17,-184r0,-4v0,-8,5,-12,15,-12r11,0v17,0,27,3,31,8v4,5,6,18,6,40r0,12r0,12v0,35,2,60,7,73v5,13,13,20,26,20v7,0,14,-2,20,-6v6,-4,10,-9,13,-15v6,-14,9,-36,9,-68v0,-11,-1,-22,-4,-33v-3,-11,-4,-17,-4,-20v0,-7,3,-12,8,-15v8,-5,21,-8,39,-8v7,0,11,3,13,7v1,2,1,9,1,23r0,5v-1,21,-2,37,-3,47v-1,11,-1,22,-1,31v0,14,1,26,3,35v0,2,1,5,4,12v3,7,4,12,4,14v0,12,-13,19,-38,19v-7,0,-12,-1,-14,-3v-2,-2,-4,-3,-7,-6v-3,-3,-4,-4,-6,-4v-2,0,-9,3,-20,9v-11,6,-22,9,-32,9r-5,0v-11,0,-20,-3,-29,-8v-9,-5,-15,-12,-20,-20v-8,-13,-12,-37,-12,-73v0,-10,0,-22,-2,-35v-2,-13,-5,-24,-8,-32v-3,-8,-5,-12,-5,-14xm52,-259v0,-18,8,-27,22,-27r5,-1r5,0r5,1v8,0,12,6,12,17r0,5v0,7,-2,12,-5,17v-3,5,-8,7,-15,7r-4,1r-1,0r-5,0v-6,0,-11,-1,-14,-4v-3,-3,-5,-8,-5,-16xm134,-256r0,-6v0,-7,2,-13,6,-17v4,-5,10,-7,17,-7r9,-1v11,0,17,6,17,17r0,7v0,16,-10,24,-29,24r-1,0r-7,-1v-8,0,-12,-5,-12,-16"},"\u00fd":{"d":"22,-189v0,-6,3,-10,8,-12v5,-2,13,-3,26,-3v23,0,35,10,35,29r-1,4r0,9v0,9,7,35,21,79v2,6,3,9,5,9v2,0,4,-4,6,-10v15,-43,23,-77,23,-103v0,-7,1,-12,4,-14v3,-2,9,-3,19,-3v18,0,27,4,27,12v0,6,-2,14,-8,26v-6,12,-11,24,-16,37v-36,102,-57,159,-63,170v-6,11,-14,21,-25,29v-11,8,-21,13,-31,13v-10,0,-18,-2,-23,-6v-5,-4,-7,-7,-7,-11v0,-7,3,-13,11,-18v1,-1,7,-3,17,-7v23,-8,34,-24,34,-48v0,-9,-7,-34,-21,-73v-14,-39,-24,-66,-31,-81v-7,-15,-10,-25,-10,-28xm84,-236v0,-3,6,-11,16,-26v10,-15,17,-25,22,-29v8,-7,19,-10,31,-10v12,0,18,2,18,6v0,10,-18,27,-52,54v-8,6,-15,9,-23,9v-8,0,-12,-1,-12,-4","w":218},"\u00fe":{"d":"27,-276v0,-7,13,-10,37,-10r5,0v9,0,15,2,17,6v2,4,3,14,3,30r0,19r-1,21v0,6,2,9,6,9r15,-4v10,-3,20,-5,29,-5v22,0,41,10,55,29v14,18,20,41,20,69r0,6v0,15,-2,30,-7,44v-15,44,-43,66,-86,66v-8,0,-16,2,-21,7v-5,5,-9,8,-9,12v0,4,2,10,7,18v5,8,7,15,7,20v0,5,-3,10,-10,14v-7,4,-17,6,-31,6v-14,0,-24,-1,-28,-3v-4,-2,-6,-4,-6,-8v0,-4,1,-11,5,-21v8,-22,12,-76,12,-163r0,-13r-1,-49v0,-18,-1,-33,-3,-48v-2,-15,-4,-24,-6,-29r-4,-9v-3,-6,-5,-11,-5,-14xm94,-91r0,2r0,16v0,1,1,2,1,3v0,11,3,20,8,27v5,7,12,11,20,11r5,0v10,0,17,-5,23,-15v8,-14,12,-27,12,-43r1,-5r0,-8v0,-20,-3,-37,-9,-49v-6,-12,-15,-18,-25,-18r-3,0r-1,0v-9,0,-17,5,-24,15v-5,7,-7,17,-7,31r-1,9r0,4r0,10r0,10","w":241},"\u00ff":{"d":"24,-189v0,-10,9,-15,27,-15r15,0v8,0,14,3,19,8v5,5,7,12,7,21r0,5r-1,4v0,16,7,44,21,83v2,5,3,7,4,7v2,0,4,-2,6,-6v16,-38,23,-73,23,-103v0,-7,1,-12,3,-15v2,-3,8,-4,17,-4r10,0v13,0,20,4,20,13v0,6,-2,13,-7,22v-5,9,-9,17,-13,27v-4,10,-13,37,-27,80v-14,43,-26,74,-34,90v-8,16,-17,28,-28,37v-11,9,-20,14,-30,14r-5,0v-9,0,-16,-3,-22,-9v-2,-2,-4,-4,-4,-6v0,-7,3,-13,9,-18v2,-2,8,-5,18,-8v10,-3,18,-8,24,-16v6,-8,10,-18,10,-29v0,-11,-8,-36,-22,-75v-14,-39,-24,-65,-30,-79v-6,-14,-10,-24,-10,-28xm50,-263r1,-4v0,-4,2,-8,5,-12v3,-4,8,-6,14,-6r4,0r7,0r1,0r5,0v8,0,11,5,11,16r0,7v0,8,-2,14,-6,18v-4,4,-8,5,-14,5r-5,1r-7,0v-1,0,-3,-1,-4,-1v-8,0,-13,-5,-13,-17v0,-2,1,-5,1,-7xm132,-259r1,-7v0,-6,3,-10,7,-14v4,-4,11,-6,22,-6r6,1v8,0,12,4,12,12v1,2,1,4,1,8r-1,8v0,5,-2,9,-6,13v-4,4,-8,5,-14,5r-4,1r-7,0r-5,-1v-7,0,-11,-4,-11,-12v-1,-2,-1,-4,-1,-8","w":220},"\u0131":{"d":"28,-19v0,-2,1,-8,5,-15v4,-7,7,-14,8,-21v1,-7,2,-24,2,-51v0,-27,-1,-43,-2,-49v-2,-6,-4,-11,-8,-18v-4,-7,-6,-14,-6,-18v0,-5,1,-7,6,-9v7,-2,21,-3,40,-3r5,0v6,0,11,3,12,10r0,57v0,0,1,60,2,70v1,10,3,19,7,28v4,9,6,16,6,20v0,4,-3,9,-7,13v-4,4,-9,5,-15,5r-30,0v-10,0,-17,-1,-20,-4v-3,-3,-5,-8,-5,-15","w":131},"\u0141":{"d":"23,-121v0,-5,4,-11,11,-18v7,-7,11,-14,13,-20v2,-6,3,-20,3,-40v0,-20,-1,-35,-4,-42v-7,-18,-11,-28,-11,-31v0,-3,2,-6,6,-10v4,-4,11,-6,21,-6r11,0v14,0,24,2,30,5v6,3,10,8,10,16v0,2,-2,8,-5,20v-3,12,-4,22,-4,31v0,14,4,21,13,21v2,0,5,-1,8,-2v6,-2,10,-3,13,-3v8,0,13,3,13,10v0,8,-7,19,-21,31v-14,12,-22,23,-25,30v-3,7,-5,21,-5,42v0,21,3,34,8,40v5,6,15,9,30,9v15,0,28,-2,40,-7v2,-1,8,-3,18,-8v10,-5,17,-7,23,-7v5,0,9,2,11,5v2,3,3,8,3,15r0,5v0,15,-2,24,-8,28v-3,2,-18,4,-44,4r-19,0r-13,1r-53,0v-25,0,-42,-1,-48,-4v-6,-3,-10,-8,-10,-15v0,-3,1,-7,3,-14v2,-7,4,-13,5,-18v1,-5,2,-15,2,-27v0,-12,-1,-18,-2,-20v-1,-2,-4,-3,-9,-3v-9,0,-14,-6,-14,-18","w":245},"\u0142":{"d":"16,-125r0,-3v0,-6,3,-12,9,-17v10,-10,17,-17,19,-21v2,-4,3,-14,3,-29r-1,-5r0,-20v0,-18,-2,-33,-7,-44v-5,-11,-7,-19,-7,-23v0,-9,11,-13,33,-13r13,0v8,0,13,3,15,8v2,5,2,20,2,48v0,28,4,42,10,42r14,-1v5,0,7,3,7,10r0,4v0,6,-4,13,-12,21v-8,8,-13,15,-16,21v-3,5,-3,14,-3,25v0,14,2,32,6,55v2,9,4,18,8,27v4,9,6,16,6,22v0,12,-12,19,-35,19r-13,0v-10,0,-17,-2,-22,-5v-5,-3,-7,-9,-7,-18r5,-29v2,-11,2,-21,2,-29v0,-11,-2,-19,-5,-23v-2,-2,-6,-5,-13,-8v-7,-3,-11,-7,-11,-14","w":144},"\u0152":{"d":"31,-139r0,-9v0,-21,4,-40,10,-58v13,-38,37,-63,71,-76v14,-5,31,-8,51,-8r17,1r17,1v13,1,23,2,31,2r31,-2r15,0v8,0,17,-1,29,-1v12,0,24,3,37,8v13,5,20,11,20,19v0,7,-6,11,-18,11r-6,-1r-7,0v-9,0,-16,-1,-22,-1v-23,0,-38,5,-46,13v-8,8,-12,21,-12,40v0,8,2,14,6,17v4,3,8,5,14,5v4,0,8,0,13,-2v12,-4,18,-6,19,-6v11,0,18,3,23,10v3,4,5,13,5,27v0,14,-2,23,-5,27v-3,4,-9,6,-18,6v-1,0,-6,-2,-15,-4v-10,-3,-18,-4,-24,-4v-8,0,-14,3,-17,7v-2,3,-3,7,-3,13v0,25,3,42,9,51v6,9,19,13,39,13v8,0,20,-1,34,-2v14,-1,22,-1,24,-1v10,0,14,2,14,8v0,10,-9,19,-27,26v-13,5,-29,7,-47,7v-6,0,-12,0,-18,-1v-24,-2,-44,-3,-61,-3r-58,4v-38,0,-68,-12,-91,-37v-22,-24,-34,-57,-34,-100xm83,-137v0,27,5,51,17,71v12,20,28,30,46,30v17,0,28,-6,34,-17v6,-11,9,-32,9,-62r1,-6r0,-12r0,-31r0,-3r-1,-18r0,-6v0,-23,-3,-40,-9,-50v-6,-10,-17,-15,-32,-15v-19,0,-35,10,-47,30v-12,20,-18,43,-18,72r0,17","w":398},"\u0153":{"d":"16,-99r0,-6v0,-25,8,-47,25,-64v8,-9,19,-15,31,-20v12,-5,24,-7,36,-7r6,0v19,0,36,4,51,13v9,5,15,8,17,8v2,0,7,-1,14,-6v7,-5,14,-8,22,-11v8,-3,20,-4,34,-4v21,0,40,7,55,20v8,7,13,14,18,24v5,10,7,19,7,27r0,5v0,12,-5,19,-16,23v-5,2,-21,4,-48,5v-27,1,-41,3,-43,3v-9,2,-14,6,-14,13v0,11,4,18,13,25v9,6,19,10,31,10v11,0,22,-3,35,-8v14,-5,23,-8,29,-8v6,0,10,3,10,10v0,10,-8,18,-24,26v-16,8,-32,12,-48,12v-23,0,-41,-4,-57,-13v-9,-5,-15,-8,-18,-8v-3,0,-7,2,-13,6v-6,4,-13,8,-21,11v-8,3,-17,4,-29,4r-7,0v-28,0,-50,-8,-69,-26v-8,-8,-15,-18,-20,-29v-5,-11,-7,-23,-7,-35xm78,-96v0,16,3,30,9,44v6,14,14,21,25,21r5,0v9,0,17,-7,23,-19v6,-12,9,-29,9,-50r0,-7r0,-2r0,-4r0,-6v0,-13,-4,-25,-10,-37v-6,-12,-14,-18,-23,-18r-3,0v-8,0,-17,5,-24,16v-7,11,-11,24,-11,40r0,5r0,6r0,11xm210,-133v0,4,3,5,8,5r8,0r1,0r16,0v24,0,36,-3,36,-9r0,-4r-1,-1v0,-10,-3,-18,-9,-23v-6,-5,-13,-8,-21,-8r-1,0r-3,0r-4,1v-6,0,-13,4,-20,12v-7,8,-10,17,-10,27","w":345},"\u0160":{"d":"18,-45v0,-18,4,-27,13,-27v7,0,17,5,28,14v11,9,21,15,30,19v9,4,19,6,31,6v12,0,23,-3,32,-10v9,-7,13,-16,13,-28v0,-12,-6,-22,-17,-31v-6,-5,-22,-13,-47,-25v-25,-12,-43,-22,-52,-31v-16,-16,-23,-34,-23,-55v0,-22,8,-40,24,-54v16,-14,37,-22,64,-22r8,0v30,0,52,4,67,11v12,5,17,15,17,31v0,16,-4,24,-13,24v-5,0,-13,-3,-21,-8r-10,-7v-6,-5,-13,-9,-20,-12v-7,-3,-16,-5,-28,-5v-12,0,-22,4,-29,11v-7,7,-10,14,-10,24v0,10,7,19,19,28v4,3,18,10,44,23v26,13,44,22,52,31v8,9,15,18,19,27v4,9,6,19,6,31v0,25,-9,44,-27,59v-18,15,-41,22,-67,22r-7,0v-30,0,-55,-4,-74,-12v-7,-3,-12,-7,-16,-14v-4,-7,-6,-13,-6,-20xm53,-371v0,-3,5,-4,14,-4v9,0,19,4,28,12v16,14,25,21,26,21v1,0,9,-7,24,-20v10,-9,20,-13,32,-13v7,0,10,1,10,4v0,4,-13,20,-42,49v-6,6,-14,9,-24,9v-10,0,-18,-3,-24,-8v-29,-24,-44,-41,-44,-50"},"\u0161":{"d":"18,-32r0,-5v0,-13,6,-19,15,-19v4,0,12,4,25,12v13,8,26,13,37,13v11,0,19,-3,25,-7v6,-4,8,-9,8,-16v0,-7,-3,-13,-10,-18v-4,-3,-16,-8,-35,-16v-19,-8,-33,-15,-41,-22v-12,-11,-17,-24,-17,-40v0,-16,6,-29,18,-40v12,-11,27,-16,46,-16r11,0v26,0,44,3,54,8v8,4,12,12,12,24v0,12,-4,17,-12,17v-5,0,-14,-3,-26,-10v-12,-7,-23,-10,-32,-10v-9,0,-16,2,-21,6v-5,4,-8,8,-8,14v0,6,3,11,9,15v6,4,19,9,37,17v18,8,32,15,40,23v12,11,18,25,18,42v0,17,-6,30,-20,41v-14,11,-31,17,-53,17r-6,0v-25,0,-45,-3,-59,-9v-10,-4,-15,-11,-15,-21xm33,-293v0,-3,4,-5,13,-5v9,0,19,4,28,13r24,23v2,0,8,-6,20,-18v12,-12,21,-18,28,-18v11,0,16,2,16,5v0,2,-4,9,-14,23v-10,14,-19,24,-29,32v-5,5,-13,7,-22,7v-9,0,-16,-3,-22,-8v-12,-11,-24,-25,-37,-44v-4,-5,-5,-9,-5,-10","w":192},"\u0178":{"d":"21,-272v0,-7,3,-12,8,-15v5,-3,16,-4,32,-4v16,0,26,2,31,6v5,4,8,11,8,21v0,10,9,37,28,80v5,11,8,16,10,16v5,0,15,-20,30,-60v6,-17,9,-27,10,-30v1,-3,1,-7,2,-13v1,-6,2,-10,3,-12v3,-5,12,-8,26,-8r5,0v18,0,27,4,27,13v0,8,-4,16,-12,26v-8,10,-16,21,-23,34v-19,36,-31,61,-38,76v-7,15,-10,30,-10,47v0,17,1,28,2,35v1,7,4,15,7,22v3,7,4,14,4,19v0,5,-2,10,-7,14v-5,4,-11,6,-18,6r-28,0v-19,0,-30,-5,-30,-16v0,-5,2,-12,5,-20v3,-8,6,-15,8,-24v2,-9,2,-22,2,-40v0,-11,-4,-25,-12,-42r-29,-59v0,0,-21,-39,-29,-50v-8,-11,-12,-18,-12,-22xm66,-342r0,-1r0,-4v0,-5,2,-9,6,-13v4,-4,9,-6,15,-6r4,-1r7,0v13,0,19,5,19,15v0,2,1,4,1,6v0,3,0,5,-1,9v0,3,-2,8,-5,12v-3,4,-9,6,-14,6r-3,0r-5,1r-3,0v-13,0,-20,-5,-20,-15v-1,-2,-1,-5,-1,-9xm151,-338r0,-5r0,-6v0,0,2,-7,6,-11v4,-4,8,-6,15,-6r5,-1r5,0v2,0,4,1,5,1v10,0,15,5,15,15r1,5r0,3r-1,2r0,4v0,6,-2,11,-7,14v-5,3,-11,5,-19,5v-2,0,-5,-1,-7,-1r-4,0v-9,0,-14,-5,-14,-15r0,-4","w":265},"\u017d":{"d":"20,-21v0,-8,3,-17,9,-28v6,-11,29,-45,68,-102v39,-57,58,-89,58,-94v0,-5,-8,-8,-24,-8v-16,0,-29,1,-39,3v-10,2,-21,6,-32,10v-11,4,-18,6,-23,6v-5,0,-8,-2,-10,-6v-2,-4,-3,-11,-3,-21v0,-10,3,-18,8,-22v5,-4,13,-6,23,-6r6,0r14,0r14,0r61,0v38,0,60,0,65,1v8,2,12,7,12,16v0,9,-3,19,-10,31v-1,2,-22,33,-63,94v-41,61,-61,93,-61,96v0,6,3,9,10,11v4,1,13,1,28,1v15,0,30,-3,46,-7v4,-1,11,-3,22,-7v11,-4,19,-6,23,-6v10,0,14,5,14,17r0,7v0,22,-12,33,-36,33r-6,0r-7,0r-36,0r-91,0v-16,0,-28,-2,-33,-4v-5,-2,-7,-7,-7,-15xm62,-373v0,-4,5,-5,14,-5v9,0,19,4,29,12v15,13,23,20,24,20v1,0,9,-7,25,-21v9,-8,17,-11,27,-11v10,0,15,1,15,4v0,8,-15,26,-45,51v-6,5,-14,8,-23,8v-9,0,-16,-3,-23,-9v-29,-25,-43,-41,-43,-49","w":254},"\u017e":{"d":"18,-14v0,-9,2,-19,8,-28v6,-9,22,-31,49,-66v27,-35,40,-55,40,-60v0,-3,-6,-5,-17,-5v-11,0,-24,2,-40,7v-16,5,-24,7,-25,7v-6,0,-9,-3,-11,-8v-1,-3,-1,-8,-1,-17v0,-9,1,-14,5,-18v4,-4,9,-5,15,-5r35,1r44,1v33,0,50,0,53,1v5,1,8,5,8,13v0,8,-3,16,-8,25v-5,9,-21,31,-47,65v-26,34,-39,54,-39,59v0,4,6,5,19,5v13,0,27,-2,43,-7v16,-5,25,-6,28,-6v8,0,11,6,11,18r0,5v0,17,-6,25,-20,25r-5,0r-5,0r-10,0r-60,-1v-35,0,-54,0,-59,-1v-8,-1,-11,-4,-11,-10xm39,-298v0,-3,5,-5,14,-5v9,0,19,5,28,14v14,14,22,21,24,21v2,0,9,-7,23,-22v8,-9,16,-13,26,-13v10,0,15,2,15,5v0,7,-14,25,-42,53v-6,6,-14,9,-23,9v-9,0,-16,-3,-23,-9v-7,-6,-19,-20,-36,-41v-4,-6,-6,-10,-6,-12","w":205},"\u0192":{"d":"2,51v0,-8,3,-15,10,-21v3,-2,8,-4,16,-4r1,0v8,0,14,-1,19,-5v10,-8,17,-29,22,-65v5,-36,8,-59,8,-69v0,-10,-3,-18,-6,-26v-3,-8,-6,-12,-9,-16v-3,-4,-4,-8,-4,-12v0,-4,5,-9,13,-16v8,-7,14,-13,16,-17v2,-4,5,-11,8,-20v3,-9,5,-16,6,-18v11,-29,26,-46,47,-54v8,-3,19,-5,31,-5v12,0,22,2,30,7v4,2,6,6,6,12v0,6,-2,11,-6,15v-4,4,-6,7,-9,7v-3,0,-7,-1,-12,-2v-4,-1,-8,-2,-12,-2v-10,0,-18,4,-23,13v-5,9,-9,21,-9,36v0,10,5,19,15,26v10,7,15,13,15,17v0,5,-6,12,-18,19v-12,7,-19,14,-22,21v-1,2,-5,24,-13,67v-8,43,-16,72,-24,86v-8,14,-18,24,-28,30v-10,6,-22,9,-35,9r-6,0v-11,0,-18,-1,-23,-6v-2,-2,-4,-4,-4,-7","w":226},"\u02c6":{"d":"24,-245v0,-2,2,-6,6,-11v15,-20,27,-33,35,-40v8,-7,16,-11,25,-11v9,0,15,3,22,9v28,26,43,43,43,53v0,3,-7,5,-18,5v-7,0,-16,-6,-29,-18v-13,-12,-20,-17,-20,-17r-22,21v-10,9,-19,14,-28,14v-9,0,-14,-2,-14,-5","w":179},"\u02c7":{"d":"25,-302v0,-3,5,-6,14,-6v9,0,19,5,29,14r24,21v1,0,4,-3,10,-9v6,-6,10,-9,12,-11v11,-9,21,-15,30,-15v9,0,14,2,14,5v0,2,-3,7,-7,12v-15,19,-27,33,-35,40v-8,7,-16,10,-25,10v-9,0,-17,-2,-23,-8v-29,-27,-43,-44,-43,-53","w":182},"\u02c9":{"d":"26,-269v0,-10,2,-15,6,-15r112,-1v7,0,10,3,10,9r0,12v0,7,-1,11,-3,12v-2,1,-23,0,-62,0r-27,0r-23,1v-7,0,-10,-1,-11,-2v-1,-1,-2,-6,-2,-16","w":180},"\u02d8":{"d":"26,-293r0,-4v0,-3,2,-4,8,-4r6,0v4,0,11,6,22,18v8,8,17,12,30,12v13,0,24,-5,32,-15v8,-10,16,-14,25,-14v5,0,8,1,8,4r0,3v0,13,-8,26,-24,39v-11,9,-24,13,-39,13r-6,0r-6,0v-13,0,-25,-7,-38,-18v-13,-11,-18,-22,-18,-34","w":183},"\u02d9":{"d":"55,-271r0,-5r0,-7v0,0,2,-5,6,-9v4,-4,8,-6,14,-6r1,0r1,0r8,0v9,0,15,2,20,5v5,3,7,9,7,17r0,5v0,2,-1,3,-1,4v0,5,-2,10,-6,13v-4,3,-10,5,-19,5r-5,0r-7,-1v-5,0,-9,-2,-13,-5v-4,-3,-6,-9,-6,-16","w":167},"\u02da":{"d":"44,-278r0,-4v0,-9,4,-18,12,-26v8,-8,19,-12,32,-12r4,0v11,0,21,4,29,11v8,7,12,15,12,24r0,4v0,9,-4,17,-12,25v-8,8,-19,13,-31,13r-7,0v-10,0,-19,-4,-27,-11v-8,-7,-12,-15,-12,-24xm71,-282v0,7,2,12,5,16v3,4,6,6,8,6r4,0v5,0,9,-2,12,-5v3,-3,5,-7,5,-10v0,0,1,-2,1,-5r0,-4r-1,-5v0,-3,-2,-6,-5,-9v-3,-3,-5,-5,-7,-5r-3,-1v-5,0,-9,2,-13,6v-4,4,-6,9,-6,16","w":170},"\u02db":{"d":"54,46r0,-2v0,-11,5,-21,15,-32v10,-11,18,-15,25,-15r7,0v5,0,8,1,8,3v0,1,-2,3,-5,7v-9,11,-14,22,-14,30v0,13,8,20,26,20v11,0,17,3,17,10v0,4,-2,8,-5,10v-6,4,-16,6,-29,6v-13,0,-25,-3,-33,-9v-8,-6,-12,-16,-12,-28","w":173},"\u02dc":{"d":"22,-257v0,-10,5,-19,14,-27v9,-8,19,-13,30,-13v9,0,19,4,29,9v12,7,21,10,26,10v5,0,10,-3,16,-9v6,-6,12,-9,18,-9v6,0,9,3,9,10v0,10,-5,18,-14,26v-9,8,-19,12,-28,12v-10,0,-20,-3,-31,-9v-11,-6,-21,-9,-27,-9v-3,0,-9,3,-15,9v-6,6,-12,9,-18,9v-6,0,-9,-3,-9,-9","w":186},"\u02dd":{"d":"30,-247r0,-1v0,-10,10,-28,31,-55v7,-9,16,-13,28,-13v12,0,19,2,19,7v0,4,-2,8,-7,14v-16,21,-28,35,-36,42v-8,7,-16,11,-22,11r-7,0v-4,0,-6,-2,-6,-5xm103,-246v0,-4,2,-9,6,-14r28,-45v6,-7,16,-11,28,-11v12,0,18,3,18,8v0,7,-15,25,-44,54v-8,8,-16,12,-24,12v-8,0,-12,-1,-12,-4","w":187},"\u03a9":{"d":"18,-33v0,-11,3,-17,8,-17v2,0,7,2,16,4v9,2,17,4,23,4v9,0,14,-3,14,-9v0,-2,-5,-10,-16,-24v-23,-30,-34,-61,-34,-94v0,-37,12,-67,36,-91v25,-24,56,-37,93,-37v39,0,71,12,95,35v24,23,35,53,35,91v0,33,-12,64,-35,94v-14,18,-21,28,-21,29v0,4,5,6,14,6v5,0,10,0,17,-1r22,-5v7,0,11,4,11,10v0,14,-4,23,-14,29v-10,6,-25,9,-45,9v-20,0,-33,-1,-40,-3v-10,-3,-14,-9,-14,-18v0,-9,6,-23,18,-44v12,-21,19,-39,24,-52v5,-13,7,-28,7,-46v0,-30,-6,-53,-19,-71v-7,-10,-15,-16,-24,-20v-9,-4,-20,-6,-31,-6v-23,0,-41,9,-55,29v-13,18,-19,43,-19,75v0,16,2,30,7,43v5,13,13,30,24,49v11,19,16,33,16,43v0,8,-4,14,-11,17v-5,2,-23,3,-53,3v-18,0,-31,-3,-38,-8v-7,-5,-11,-13,-11,-24","w":315},"\u03bc":{"d":"28,-173r0,-7v0,-11,1,-17,5,-20v4,-3,13,-5,26,-5v13,0,21,3,24,7v3,4,5,14,5,28r0,13r-1,41v0,33,2,52,6,60v6,12,15,18,29,18v14,0,24,-7,31,-20v5,-10,7,-35,7,-74r0,-20r-1,-24v0,-12,2,-19,8,-23v6,-4,14,-5,26,-5v12,0,19,5,22,13v1,3,2,18,2,45r-1,54v0,16,2,30,6,44v4,14,5,21,5,23r0,4v0,12,-11,19,-32,19v-7,0,-13,-2,-20,-6v-7,-4,-13,-6,-18,-6v-5,0,-13,3,-24,7v-11,4,-22,7,-30,8v-8,1,-14,2,-16,5v-2,3,-4,13,-4,29v0,16,-1,27,-3,32v-4,10,-12,15,-24,15r-6,0v-9,0,-15,-2,-17,-7v-2,-5,-3,-17,-3,-35r0,-14r0,-13r1,-20r0,-21r0,-41r1,-41r0,-16v0,-6,-1,-15,-2,-27v-1,-12,-2,-19,-2,-20","w":251},"\u03c0":{"d":"17,-169r0,-4v0,-4,2,-9,6,-13v4,-4,13,-8,26,-12v13,-4,38,-6,74,-6r63,-2r12,0r19,0r5,0v14,0,21,5,21,14v0,7,-2,13,-6,19v-1,2,-5,5,-12,11v-7,6,-12,11,-14,17v-2,6,-4,21,-4,45v0,24,2,40,4,47v2,7,6,14,11,20v5,6,8,10,8,14v0,3,-2,7,-5,9v-7,5,-16,8,-25,8r-1,0r-6,0v-4,0,-8,-2,-14,-5v-6,-3,-11,-10,-15,-21v-4,-11,-7,-31,-7,-60r3,-56v0,-7,-3,-13,-7,-16v-4,-3,-12,-5,-25,-5v-13,0,-21,4,-23,11r-8,72v-5,34,-10,55,-13,63v-5,11,-12,16,-25,16v-13,0,-19,-4,-19,-11v0,-4,2,-12,5,-23v8,-31,13,-62,13,-90v0,-10,-2,-17,-5,-20v-3,-3,-6,-5,-9,-6v-3,-1,-7,0,-11,-1v-11,-1,-16,-7,-16,-15","w":261},"\u2013":{"d":"12,-109r0,-11v0,-8,3,-12,9,-13v3,0,34,-1,93,-1r68,0v12,0,19,1,22,2v3,1,4,4,4,9r0,11v0,3,-1,5,-1,6v0,5,-5,8,-15,8r-166,0v-9,0,-14,-4,-14,-11","w":219},"\u2014":{"d":"15,-112v0,-8,1,-13,2,-15v1,-2,4,-3,9,-4v5,-1,62,-1,173,-1r149,0v9,0,15,0,17,2v2,2,4,7,4,17v0,10,-5,15,-13,16r-168,0r-118,0r-39,1v-6,0,-11,-1,-13,-3v-2,-2,-3,-5,-3,-13","w":383},"\u2018":{"d":"29,-214r0,-7v0,-19,5,-36,15,-51v6,-10,13,-18,20,-22v7,-4,12,-6,16,-6v5,0,8,3,8,9v0,3,-1,5,-4,8v-3,3,-3,5,-4,6r-4,5v-5,9,-8,17,-8,23v0,4,1,8,4,10v9,8,13,18,13,32v0,17,-8,25,-25,25v-12,0,-21,-2,-25,-7v-4,-5,-6,-14,-6,-25","w":116},"\u2019":{"d":"28,-189v0,-2,2,-6,6,-10v11,-12,16,-24,16,-34v0,-3,-2,-5,-5,-8v-3,-3,-6,-7,-8,-11v-2,-4,-3,-11,-3,-21v0,-17,8,-26,24,-26r6,0v8,0,15,2,19,6v4,4,6,11,6,21r0,8v0,3,-1,7,-1,9v0,15,-6,32,-18,49v-12,17,-24,26,-35,26v-5,0,-7,-3,-7,-9","w":116},"\u201a":{"d":"29,50v0,-3,2,-6,5,-11v3,-5,7,-10,10,-15v3,-5,5,-12,5,-19v0,-3,-2,-6,-6,-11v-5,-8,-6,-16,-6,-26v0,-10,1,-17,5,-22v4,-5,9,-7,17,-7r8,0v9,0,15,2,18,5v3,3,5,9,5,15r1,3r0,8v0,3,-1,7,-1,9v0,16,-6,33,-18,51v-12,18,-23,28,-35,28v-5,0,-8,-3,-8,-8","w":121},"\u201c":{"d":"30,-213r0,-9v0,-18,4,-35,14,-50v6,-9,13,-16,20,-21v7,-5,13,-7,18,-7v5,0,7,3,7,9v0,1,-3,7,-10,17v-7,10,-10,18,-10,25v0,4,1,7,4,10v4,4,7,6,7,7v4,7,6,15,6,24v0,18,-8,27,-24,27r-7,0v-9,0,-16,-3,-20,-8v-4,-5,-5,-13,-5,-24xm117,-213r0,-9r1,-10v0,-12,5,-27,16,-43v11,-16,21,-25,33,-25v5,0,7,3,7,8v0,3,-1,6,-5,11v-10,13,-15,24,-15,34v0,2,2,5,6,9v4,4,5,6,5,7v4,7,6,15,6,24v0,17,-7,26,-23,26r-5,0v-10,0,-17,-3,-21,-8v-4,-5,-5,-13,-5,-24","w":196},"\u201d":{"d":"24,-189v0,-1,3,-6,10,-16v7,-10,11,-20,11,-29v0,-2,-2,-4,-4,-6r-4,-4v-5,-7,-8,-16,-8,-26v0,-10,3,-18,7,-22v4,-4,11,-6,21,-6r1,0v10,0,17,2,21,6v4,4,6,12,6,24v0,23,-4,41,-13,54v-15,23,-29,34,-42,34v-4,0,-6,-3,-6,-9xm111,-189v0,-2,1,-4,4,-8v11,-13,17,-25,17,-33v0,-4,-1,-7,-4,-10v-3,-3,-5,-6,-8,-10v-3,-4,-4,-10,-4,-20v0,-10,3,-18,7,-22v4,-4,11,-6,21,-6v10,0,16,2,20,6v4,4,6,12,6,25r0,2v0,20,-5,38,-15,54v-13,21,-25,31,-36,31r-3,0v-4,0,-5,-3,-5,-9","w":196},"\u201e":{"d":"89,48v0,-2,2,-5,6,-10v10,-13,14,-24,14,-33v0,-1,-2,-4,-5,-10v-3,12,-8,23,-15,34v-12,18,-22,28,-33,28r-3,0v-5,0,-7,-3,-7,-10v0,-1,4,-7,12,-19v5,-8,7,-17,7,-25v0,-2,-1,-3,-3,-6v-6,-8,-10,-18,-10,-30r0,-1r1,-7v0,-6,2,-11,6,-15v4,-4,10,-6,18,-6r6,0v7,0,14,2,18,5v1,0,1,0,2,1v3,-4,8,-6,14,-6r3,0r4,0v9,0,17,2,20,6v3,4,5,11,5,23r-1,2r0,9v0,16,-6,34,-18,52v-12,18,-23,27,-34,27v-4,0,-7,-3,-7,-9","w":198},"\u2020":{"d":"36,-191v0,-12,6,-18,17,-18r30,2v8,0,13,-4,13,-15r-5,-51v0,-8,1,-14,5,-16v4,-2,10,-3,18,-3r4,0v8,0,12,1,14,4v2,3,3,9,3,16v0,5,-1,11,-2,19v-2,17,-3,29,-3,36r0,0v0,7,4,10,13,10r30,-3v11,0,16,7,16,19v0,9,-1,15,-5,18v-4,3,-11,5,-20,5r-17,-1v-7,0,-11,3,-13,8v-2,5,-2,13,-2,25r0,21r0,36r0,5r0,11r-1,11r0,10r0,27v0,25,-1,40,-3,46v-2,6,-7,9,-15,9v-8,0,-14,-3,-16,-9v-2,-4,-2,-21,-2,-51r-1,-16r0,-22r-1,-15r0,-11r0,-10r1,-50v0,-11,-2,-17,-5,-20v-3,-3,-10,-5,-19,-5r-4,0v-3,0,-5,1,-8,1v-14,0,-22,-8,-22,-23","w":226},"\u2021":{"d":"38,-195v0,-14,6,-21,19,-21r23,1v6,0,10,-1,12,-3v2,-2,3,-7,3,-14v0,-5,0,-13,-1,-21v-1,-8,-2,-15,-2,-21v0,-6,2,-11,5,-14v3,-3,9,-5,16,-5r6,0v7,0,11,1,13,4v2,3,3,8,3,13r-4,45v0,11,5,17,14,17r28,-2v5,0,9,2,12,5v3,3,4,7,4,10v0,17,-6,25,-20,25r-6,-1r-16,0v-7,0,-11,1,-13,4v-2,3,-3,9,-3,20v0,0,1,3,2,11v1,8,2,17,2,27v0,20,8,31,24,32v10,1,16,3,19,5v3,2,5,6,5,14v0,8,-5,14,-14,18v-2,1,-8,2,-17,3v-9,1,-15,2,-18,5v-3,3,-4,7,-4,14r3,47v0,9,-1,15,-4,18v-3,3,-7,4,-14,4r-6,0v-7,0,-12,-2,-14,-5v-2,-3,-2,-9,-2,-18r3,-40v0,-11,-1,-18,-5,-20v-4,-2,-10,-4,-18,-5v-8,-1,-14,-1,-17,-3v-8,-4,-12,-10,-12,-18v0,-8,2,-13,6,-15v1,-1,7,-2,17,-3v10,-1,17,-5,20,-11v6,-11,8,-32,8,-62v0,-8,-2,-15,-6,-19v-2,-2,-9,-3,-21,-3v-12,0,-19,0,-22,-2v-5,-3,-8,-9,-8,-16","w":227},"\u2022":{"d":"46,-129r0,-6v0,-15,5,-29,15,-42v10,-13,22,-19,36,-19r5,0v13,0,23,6,33,17v10,11,15,25,15,43v0,18,-6,33,-16,45v-10,12,-22,18,-35,18r-6,0v-13,0,-24,-6,-33,-18v-9,-12,-14,-24,-14,-38","w":196},"\u2026":{"d":"35,-35r0,-8v0,-1,1,-2,1,-3v0,-14,8,-21,24,-21r5,0v2,0,4,1,5,1v8,0,13,2,18,7v5,5,7,13,7,23r0,6v0,16,-7,24,-19,24r-7,1r-9,-1v-7,0,-12,-2,-17,-7v-5,-5,-8,-12,-8,-22xm160,-35r0,-8v0,-7,2,-13,5,-17v3,-4,8,-6,14,-6r5,-1r5,0v11,0,18,3,23,8v5,5,7,12,7,19r1,5r0,4r-1,1r0,5v0,13,-8,20,-24,20r-4,0r-1,-1r-5,0v-8,0,-13,-3,-18,-8v-5,-5,-7,-12,-7,-21xm285,-40r0,-2r0,-4v0,-14,8,-21,24,-21r5,0v8,0,15,2,21,6v6,4,9,11,9,19r0,4r0,5r0,2r0,5v0,6,-2,10,-5,14v-3,4,-8,6,-15,6r-6,1r-2,0r-1,-1r-5,0v-9,0,-15,-3,-19,-9v-4,-6,-6,-11,-6,-14r0,-5r0,-6","w":377},"\u2030":{"d":"32,-216r0,-5r0,-7v0,-17,5,-32,16,-46v11,-14,25,-20,42,-20v17,0,29,7,39,20v10,13,15,28,15,46r0,12v0,20,-5,37,-16,51v-11,14,-25,21,-42,21r-2,-1v-16,0,-28,-6,-38,-20v-10,-14,-14,-31,-14,-51xm67,-210r0,1r0,7v0,9,3,16,7,22v4,6,8,8,12,8r2,0v5,0,10,-4,14,-11v4,-7,7,-15,7,-24r0,-1r1,-1r0,-10r0,-3r0,-3r0,-1r-1,-11v0,-8,-2,-15,-6,-21v-4,-6,-8,-8,-12,-8r-2,0v-6,0,-12,4,-16,13v-4,9,-6,20,-6,32r0,11xm70,0v0,-7,55,-98,163,-275v7,-11,13,-17,20,-17v11,0,16,1,16,4v0,3,-2,11,-9,22v-74,128,-126,213,-155,257v-6,9,-12,13,-18,13v-11,0,-17,-1,-17,-4xm187,-63r0,-8v0,-21,5,-38,16,-52v11,-14,24,-22,39,-22r6,0v16,0,29,7,39,21v10,14,14,32,14,53v0,21,-5,40,-16,55v-4,6,-11,12,-18,16v-7,4,-14,6,-21,6r-6,0v-13,0,-25,-6,-36,-18v-11,-12,-16,-28,-16,-47xm224,-62r1,2r0,7v0,9,3,17,7,23v4,6,8,8,11,8r4,0v3,0,7,-3,12,-9v5,-6,7,-16,7,-28r0,-6r0,-12v0,-10,-1,-19,-5,-27v-4,-8,-8,-12,-13,-12r-4,0v-5,0,-9,5,-13,13v-4,8,-7,19,-7,32r0,9xm336,-67r0,-3v0,-20,4,-37,14,-51v5,-7,12,-13,19,-17v7,-4,14,-6,21,-6r6,0v14,0,27,6,37,19v10,13,15,30,15,50r0,8r0,7v0,18,-6,33,-17,46v-11,13,-24,20,-39,20r-4,0v-16,0,-28,-6,-38,-20v-10,-14,-14,-32,-14,-53xm372,-64r0,1r1,11v0,9,2,16,6,22v4,6,9,8,12,8r3,0v7,0,12,-5,15,-15v3,-10,5,-22,5,-35r0,-1r0,-5v0,-4,-1,-7,-1,-7v0,-9,-2,-16,-6,-22v-4,-6,-9,-9,-12,-9r-4,0v-5,0,-9,5,-13,14v-4,9,-6,19,-6,32r0,6","w":460},"\u2039":{"d":"22,-110r0,-2v0,-5,20,-29,58,-70v9,-10,17,-14,24,-14v7,0,10,3,10,9r0,3v0,4,-8,17,-24,39v-16,22,-25,34,-25,35v0,1,9,11,25,32v16,20,24,35,24,43v0,6,-4,9,-12,9v-7,0,-15,-5,-24,-16v-37,-42,-56,-65,-56,-68","w":142},"\u203a":{"d":"29,-35v0,-7,9,-22,25,-43v16,-21,25,-33,25,-34v0,-1,-9,-12,-25,-33v-16,-21,-24,-34,-24,-40v0,-8,3,-11,10,-11r2,0v6,0,18,11,37,33v27,32,40,50,40,53v0,3,-12,17,-35,44v-23,27,-38,39,-45,39v-7,0,-10,-2,-10,-8","w":142},"\u2044":{"d":"-46,3v0,-2,5,-11,14,-27v75,-136,122,-220,142,-252v6,-10,14,-15,22,-15v8,0,12,1,12,3v0,2,-15,30,-45,83r-69,123r-40,71v-6,12,-13,17,-22,17v-9,0,-14,-1,-14,-3","w":100},"\u20ac":{"d":"21,-116v0,-5,3,-9,9,-13v6,-4,9,-8,9,-11v0,-8,-2,-13,-6,-16r-12,-7v0,-6,4,-13,11,-20v13,-13,23,-26,31,-41v15,-27,35,-44,59,-52v14,-5,29,-7,45,-7r7,0v16,0,28,4,36,11v8,7,13,15,13,24v0,9,-4,14,-12,14v0,0,-6,-1,-16,-4v-10,-3,-20,-4,-29,-4v-12,0,-21,3,-29,8v-11,7,-16,13,-16,21v0,5,2,9,6,12v4,3,8,6,13,7r6,1r6,1v5,1,8,2,10,3v7,3,11,8,11,14v0,6,-3,9,-10,12v-2,1,-13,2,-31,4v-18,2,-28,4,-30,5v-5,2,-7,6,-7,13v0,6,11,10,34,13v23,3,33,6,33,11v0,7,-3,13,-9,17v-2,1,-7,3,-15,5v-17,5,-26,12,-26,20v0,9,7,17,20,25v9,6,20,9,33,9v8,0,18,-2,27,-4v14,-3,20,-4,21,-4v8,0,12,3,12,11v0,11,-6,21,-19,28v-13,7,-28,11,-46,11r-2,0v-17,0,-32,-3,-43,-7v-25,-9,-45,-27,-56,-52v-11,-25,-20,-39,-25,-42v-9,-5,-13,-11,-13,-16","w":248},"\u2122":{"d":"20,-274v0,-10,3,-15,8,-17v2,-1,17,-1,47,-1r41,0v5,0,9,1,11,3v2,2,4,7,4,13r0,6v0,7,-3,10,-8,10v-1,0,-4,-1,-10,-3v-6,-2,-10,-3,-12,-3v-5,0,-8,4,-10,12v-1,4,-1,16,-1,36v0,20,0,33,1,38v1,5,2,11,4,16v2,5,3,9,3,12v0,6,-4,9,-12,9r-24,0v-6,0,-10,-3,-10,-10v0,-2,2,-5,4,-10v2,-5,4,-11,4,-17r0,-40v0,0,0,-32,-1,-35v-2,-7,-6,-10,-12,-10r-22,6v-4,0,-5,-5,-5,-15xm158,-157v0,-1,0,-5,2,-11v4,-14,5,-32,5,-53v0,-21,0,-34,-1,-37r-4,-20v0,-7,5,-10,16,-10r5,0v12,0,21,4,27,11v2,3,9,16,19,39v10,23,15,35,16,35v1,0,6,-12,16,-34v10,-22,16,-36,19,-40v6,-7,15,-11,27,-11v12,0,18,4,18,11r-3,25v0,4,-1,12,-1,26v0,22,2,38,4,47v2,9,3,15,3,19v0,7,-5,10,-15,10r-4,0v-5,0,-9,-1,-13,-5v-4,-4,-6,-9,-6,-15r1,-18r0,-12r1,-11v0,-20,-2,-30,-5,-30v-2,0,-7,13,-17,37v-10,24,-15,36,-16,38v-4,7,-10,10,-16,10v-4,0,-12,-14,-24,-43v-12,-29,-18,-43,-20,-43v-3,0,-4,13,-4,37r1,26r0,10r0,4v0,10,-5,15,-16,15v-11,0,-15,-2,-15,-7","w":351},"\u2202":{"d":"26,-70r0,-5r0,-1v0,-15,3,-29,9,-42v12,-28,29,-47,53,-57v10,-4,21,-6,31,-6v7,0,14,1,22,3v7,2,12,3,15,3v7,0,10,-7,10,-21v0,-20,-6,-36,-18,-48v-12,-13,-26,-19,-44,-19v-5,0,-9,0,-14,1r-9,2v-4,1,-7,1,-9,1v-13,0,-20,-6,-20,-18v0,-5,6,-9,18,-14v12,-5,23,-7,34,-7r6,0v29,0,52,12,71,37v8,10,14,23,19,39v5,16,8,34,8,52r0,10v0,21,-3,42,-9,63v-6,21,-15,39,-26,54v-21,29,-47,44,-78,44r-5,0v-8,0,-16,-2,-25,-6v-9,-4,-16,-9,-22,-16v-11,-13,-17,-29,-17,-49xm79,-71v0,14,1,25,5,32v4,7,9,11,14,11r4,0v10,0,21,-11,33,-32v16,-29,24,-51,24,-66r0,-3v0,-10,-3,-17,-7,-22v-8,-8,-17,-13,-28,-13r-5,0v-10,0,-20,9,-28,27v-8,18,-12,37,-12,58r0,8","w":233},"\u2206":{"d":"28,-15v0,-6,3,-19,10,-40v41,-119,66,-191,76,-215v5,-13,14,-20,25,-20r4,0v9,0,17,10,24,28v21,56,45,127,73,215v5,15,7,25,7,33v0,6,-4,10,-13,11v-9,1,-41,1,-97,1r-52,0r-12,1v-19,0,-31,-1,-38,-3v-5,-1,-7,-5,-7,-11xm75,-41v0,5,7,7,20,7r65,0v17,0,26,-2,26,-7v0,-5,-7,-30,-21,-75v-14,-45,-23,-76,-27,-91r-6,-23r-5,15","w":274},"\u220f":{"d":"24,-281v0,-8,7,-13,19,-15v12,-2,58,-4,137,-4r50,0v41,0,62,5,62,14v0,2,-1,6,-3,12r-14,48v-3,9,-5,18,-7,29v-2,11,-2,38,-2,82r-1,31v-1,12,-1,22,-1,31v0,13,1,23,2,29v2,11,5,21,9,30v4,9,6,14,6,16v0,7,-4,14,-11,19v-10,8,-20,11,-29,11v-9,0,-16,-2,-22,-6v-6,-4,-9,-10,-9,-17v0,-1,1,-8,2,-20v1,-12,2,-24,2,-36v0,-12,1,-30,1,-56r0,-49r0,-20r1,-40v0,-35,-2,-56,-6,-62v-4,-6,-22,-10,-52,-10v-30,0,-47,4,-51,12v-4,8,-7,32,-7,73r1,49r0,61v0,34,1,57,3,69r3,24v0,8,-2,14,-6,18v-7,7,-15,10,-27,10v-12,0,-22,-4,-31,-12v-5,-4,-7,-11,-7,-20v0,-1,2,-6,5,-13v3,-7,6,-14,8,-22v2,-8,2,-32,2,-72r0,-10v0,-10,-1,-17,-1,-20r0,-30v0,-26,0,-43,-2,-51v-2,-8,-6,-23,-13,-46r-4,-16v-4,-13,-7,-20,-7,-21","w":316},"\u2211":{"d":"18,33v0,-6,17,-33,51,-80v34,-47,51,-72,51,-77v0,-3,-17,-28,-49,-74v-32,-46,-48,-73,-48,-81v0,-8,4,-13,13,-17v6,-2,28,-4,65,-4r8,0r68,1r8,0r16,0v12,0,21,2,27,9v6,7,9,15,9,24v0,9,-4,14,-12,14v-3,0,-9,-1,-16,-4v-7,-3,-15,-4,-24,-6v-9,-2,-26,-2,-51,-2v-25,0,-39,2,-39,7v0,4,13,25,39,62v26,37,39,59,39,67v0,3,-15,24,-44,63v-29,39,-43,61,-43,64v0,5,2,7,6,9v4,2,19,3,44,3v36,0,61,-2,75,-6v14,-4,21,-5,23,-5v8,0,13,5,13,15v0,10,-3,19,-8,24v-10,10,-25,15,-43,15r-8,0r-16,0r-8,0r-17,1r-26,0r-42,0v-26,0,-42,-1,-48,-3v-9,-3,-13,-10,-13,-19","w":264},"\u2212":{"d":"22,-113r0,-9v0,-9,2,-13,6,-14v2,0,35,-1,99,-1r84,0v7,0,11,1,12,2v1,1,2,6,2,12r0,4v0,8,-1,13,-2,15v-1,2,-8,2,-23,2r-166,0v-8,0,-12,-3,-12,-11","w":247},"\u2219":{"d":"30,-125r0,-2r1,-1r0,-6v0,-7,2,-12,7,-17v5,-5,13,-8,23,-8r6,0v10,0,17,3,22,8v5,5,7,10,7,17r0,5r0,6v0,19,-9,29,-29,29r-7,0v-20,0,-30,-10,-30,-31","w":127},"\u221a":{"d":"17,-153v0,-4,3,-9,9,-13v13,-9,25,-13,36,-13v11,0,19,5,26,15v4,5,12,24,25,56v13,32,22,48,27,48v3,0,13,-36,30,-108v17,-72,30,-119,37,-140v7,-21,14,-35,19,-43v5,-8,11,-11,19,-11v8,0,13,2,13,7v0,17,-32,133,-94,349v-4,15,-7,25,-10,27v-3,2,-7,3,-14,3v-7,0,-13,-4,-18,-11v-5,-7,-18,-32,-36,-76v-18,-44,-28,-66,-29,-68v-4,-6,-9,-9,-16,-9r-10,0v-3,0,-6,-1,-9,-4v-3,-3,-5,-5,-5,-9","w":260},"\u221e":{"d":"25,-120r0,-4v0,-18,5,-32,18,-45v13,-13,29,-19,50,-19v18,0,34,6,48,18v14,12,22,18,23,18v1,0,3,-2,7,-6v20,-21,39,-31,59,-31r1,0r8,0v17,0,31,6,43,18v12,12,18,27,18,44v0,20,-6,36,-18,49v-12,13,-27,20,-45,20r-7,0v-21,0,-40,-11,-59,-31v-5,-5,-8,-8,-9,-8v-1,0,-6,4,-13,11v-7,7,-16,14,-26,19v-10,5,-21,8,-37,8v-16,0,-30,-6,-43,-18v-12,-12,-18,-26,-18,-43xm53,-125v0,9,4,16,13,24v9,8,17,12,26,12v9,0,20,-5,33,-14v13,-9,19,-15,19,-18v0,-3,-6,-11,-19,-21v-13,-10,-23,-15,-29,-15r-6,0v-2,0,-3,1,-4,1v-7,0,-14,3,-22,9v-8,6,-11,13,-11,22xm177,-124v0,7,8,16,22,29v8,7,16,11,23,11r4,0v8,0,15,-4,22,-12v7,-8,10,-18,10,-30r0,-1v0,-10,-4,-19,-10,-26v-6,-7,-13,-11,-21,-11r-5,0v-7,0,-15,3,-24,11v-14,13,-21,22,-21,29","w":318},"\u222b":{"d":"9,57v0,-5,2,-10,6,-15v4,-5,9,-8,14,-8r19,4v6,0,10,-3,13,-8v3,-5,6,-13,7,-23v1,-10,2,-57,2,-142v0,-85,3,-136,8,-154v11,-36,31,-55,59,-55r5,0v10,0,17,2,23,6v6,4,9,7,9,11v0,6,-2,12,-6,17v-4,5,-8,7,-14,7v-2,0,-4,0,-8,-1v-4,-1,-7,-2,-11,-2v-9,0,-15,10,-18,29v-1,7,-2,45,-2,115v0,70,0,115,-1,136v-2,44,-13,74,-31,90v-11,9,-22,13,-34,13v-12,0,-22,-2,-29,-6v-7,-4,-11,-9,-11,-14","w":180},"\u2248":{"d":"26,-142v-4,-4,-5,-8,-5,-12v0,-8,7,-18,21,-29v11,-9,24,-13,38,-13r4,0v11,0,27,5,46,14v19,9,33,14,41,14v8,0,17,-4,26,-12v9,-8,15,-12,18,-12v3,0,6,2,9,6v3,4,5,6,5,10v0,9,-7,19,-19,29v-12,10,-25,15,-37,15r-7,0v-10,0,-25,-6,-44,-15v-19,-9,-33,-14,-42,-14v-9,0,-18,4,-27,12v-9,8,-15,12,-18,12v-3,0,-6,-2,-9,-5xm26,-59v-3,-4,-5,-8,-5,-12v0,-8,7,-18,21,-29v11,-9,23,-13,35,-13r8,0v8,0,23,5,45,14v22,9,37,14,44,14v7,0,14,-4,23,-12v9,-8,16,-11,18,-11v2,0,5,1,9,4v3,3,5,8,5,12v0,10,-6,18,-19,28v-13,10,-25,15,-38,15r-4,0v-11,0,-27,-5,-46,-14v-19,-9,-33,-15,-42,-15v-9,0,-18,4,-27,12v-9,8,-14,12,-17,12v-3,0,-7,-1,-10,-5","w":245},"\u2260":{"d":"25,-76v0,-8,3,-14,9,-16v3,-1,14,-2,30,-2v16,0,27,-2,31,-5v4,-3,8,-10,13,-19v5,-9,7,-14,7,-15v0,-4,-13,-5,-40,-5v-27,0,-42,-1,-45,-3v-3,-2,-5,-8,-5,-18v0,-10,4,-16,10,-17v3,-1,18,-1,46,-1v28,0,45,-1,50,-4v5,-3,10,-10,14,-18r12,-24v3,-3,7,-5,13,-5v11,0,16,4,16,11v0,3,-1,7,-3,13v-2,6,-4,11,-4,13v0,5,4,9,12,10v15,2,23,3,24,4v3,3,4,9,4,18v0,9,-4,14,-10,16v-4,1,-13,2,-29,2v-16,0,-27,1,-31,4v-4,3,-8,9,-13,18v-5,9,-8,14,-8,16v0,4,13,6,40,6v27,0,42,1,45,3v3,2,5,8,5,18v0,10,-3,15,-9,16v-4,1,-19,2,-46,2v-27,0,-44,1,-51,5v-5,2,-10,11,-17,25v-7,14,-13,20,-21,20r-5,0v-8,0,-12,-5,-12,-14v0,-2,1,-5,3,-10v2,-5,3,-9,3,-12v0,-5,-1,-7,-5,-9v-1,-1,-6,-1,-13,-2v-7,-1,-13,-2,-16,-5v-3,-3,-4,-8,-4,-16","w":244},"\u2264":{"d":"26,-7r0,-11v0,-6,0,-10,2,-12v2,-2,8,-2,17,-2r9,0r2,0r160,2v4,0,6,3,6,10r0,9v0,8,-1,11,-3,13v-2,2,-8,3,-20,3r-9,-1r-14,0r-9,0r-21,0r-19,-1r-22,0r-55,0r-11,0r-7,0v-4,0,-6,-3,-6,-10xm29,-152v0,-9,3,-15,9,-19v11,-7,37,-18,78,-37v41,-19,66,-31,75,-36v9,-5,15,-7,18,-7v5,0,7,6,7,16v0,10,-5,18,-16,25v-3,2,-16,9,-41,21r-81,38r58,26v30,13,50,23,62,30v12,7,18,16,18,27v0,11,-2,16,-7,16v-2,0,-9,-3,-19,-8v-15,-8,-46,-23,-92,-44r-63,-30v-4,-3,-6,-9,-6,-18","w":241},"\u2265":{"d":"26,-14v0,-9,2,-13,6,-14v4,-1,35,-2,95,-2r79,-1v11,0,16,3,16,11r0,10v0,7,-1,10,-6,11v-6,1,-38,2,-93,2r-7,0r-14,0r-9,0r-12,0r-14,1r-9,0r-9,0v-12,0,-18,0,-20,-2v-2,-2,-3,-7,-3,-16xm34,-235v0,-11,3,-16,8,-16v2,0,9,3,23,10r66,34r75,36v7,4,11,11,11,20v0,9,-2,14,-7,17v-5,3,-15,8,-32,15v-44,19,-78,34,-101,47v-23,13,-34,19,-35,19v-5,0,-7,-5,-7,-15v0,-10,5,-18,15,-24v5,-3,19,-11,42,-22v23,-11,43,-21,58,-27v15,-6,22,-10,22,-11r-60,-27r-60,-29v-12,-7,-18,-16,-18,-27","w":241},"\u25ca":{"d":"34,-142v0,-8,24,-56,71,-145v5,-9,11,-13,19,-13v8,0,14,5,19,14v47,85,70,132,70,141r0,4v0,8,-24,54,-71,141v-5,9,-10,13,-18,13v-8,0,-14,-3,-18,-10v-2,-3,-6,-12,-12,-24r-17,-33r-10,-20v-2,-5,-2,-6,-5,-11r-10,-20v-2,-3,-5,-10,-10,-20v-5,-10,-8,-15,-8,-17xm73,-145v0,2,2,8,7,19r33,75r11,25r25,-58r26,-59v0,-3,-8,-21,-23,-54v-15,-33,-23,-51,-25,-56v-2,-5,-3,-7,-3,-7r-26,56v0,0,-25,57,-25,59","w":246}}}); +Cufon.registerFont({"w":225,"face":{"font-family":"Averia","font-weight":509,"font-style":"italic","font-stretch":"normal","units-per-em":"420","panose-1":"2 0 6 3 0 0 0 0 0 4","ascent":"327","descent":"-93","bbox":"-59 -382 440 97","underline-thickness":"20.0977","underline-position":"-29.1211","slope":"-11.2","unicode-range":"U+0020-U+25CA"},"glyphs":{" ":{"w":134},"!":{"d":"28,-13r0,-6v0,-8,3,-16,8,-22v5,-6,10,-9,16,-9r2,0r9,-1v11,0,17,4,17,12r0,5r0,3r0,1r0,5v0,6,-4,12,-10,19v-4,4,-8,7,-15,7r-5,0r-5,0r-5,0v-8,0,-12,-5,-12,-14xm55,-87r0,-7v0,-6,3,-32,11,-78r1,-5r1,-5r1,-7r1,-5r2,-12v1,-6,0,-6,1,-13r8,-48v2,-8,6,-14,10,-17v4,-3,9,-5,17,-5r7,0v8,0,13,3,13,10v0,2,-4,21,-12,58v-8,37,-19,78,-34,122v-4,11,-10,17,-19,17r-3,0v-4,0,-5,-1,-5,-5","w":132},"\"":{"d":"59,-190r0,-5v1,-4,1,-6,1,-8r0,-9v1,-5,2,-9,2,-11r0,-8v0,-2,1,-4,1,-5r0,-6r1,-5v1,-5,1,-9,1,-12r2,-15v0,-9,2,-15,6,-18v4,-3,10,-5,20,-5v10,0,15,2,15,6v0,8,-2,17,-5,27r-20,68v-3,7,-9,11,-18,11v-4,0,-6,-2,-6,-5xm131,-193r0,-1r0,-6v1,-4,1,-7,1,-9r1,-10v1,-4,1,-6,1,-8r1,-6r0,-2r0,-8v1,-9,2,-15,2,-19r1,-4r0,-4v0,-11,2,-19,6,-22v4,-3,11,-5,21,-5v10,0,15,3,15,7r0,1r-1,1v0,19,-7,49,-23,89v-4,9,-9,14,-16,14r-3,0v-4,0,-6,-2,-6,-6r0,-2","w":173},"#":{"d":"33,-94v0,-6,2,-10,6,-13v4,-3,10,-5,20,-7v10,-2,17,-5,20,-9v7,-11,10,-23,10,-38v0,-6,-4,-10,-13,-12v-12,-3,-19,-8,-19,-14v0,-6,3,-10,9,-13v2,-1,8,-3,17,-4v9,-1,16,-3,19,-6v3,-3,7,-14,13,-32v6,-18,9,-29,11,-32v4,-6,9,-9,16,-9v7,0,10,2,10,7v0,1,-3,10,-9,29v-6,19,-8,30,-8,33v0,3,1,6,4,7v3,1,12,2,26,2v7,0,12,-3,14,-8v0,0,3,-9,8,-27v5,-18,9,-29,11,-32v3,-6,10,-9,21,-9v3,0,5,3,5,7v0,1,-3,9,-8,26v-5,17,-8,27,-8,33v0,4,5,8,15,10v10,2,14,7,14,13v0,6,-3,10,-10,13v-2,1,-7,3,-17,4v-10,1,-15,3,-18,7v-8,12,-13,26,-13,44v0,4,6,7,17,9v11,2,17,6,17,12v0,6,-2,10,-6,12v-4,2,-10,4,-20,5v-10,1,-16,4,-19,8v-3,4,-7,14,-13,32v-6,18,-9,28,-10,29v-4,8,-11,11,-20,11v-5,0,-7,-1,-7,-4v0,-3,3,-14,9,-33v6,-19,8,-30,8,-32v0,-6,-10,-8,-31,-8v-6,0,-10,3,-13,9r-8,27v-6,19,-10,30,-12,33v-4,6,-11,10,-21,10v-4,0,-5,-2,-5,-6v0,0,2,-9,8,-26v6,-17,9,-28,9,-34v0,-6,-5,-10,-15,-13v-10,-3,-14,-7,-14,-11xm100,-112v0,1,1,0,2,0r2,0r5,0r4,-1r14,-1v2,0,5,-1,10,-1v5,0,9,-3,11,-7v12,-24,18,-42,18,-53v0,-1,-5,-2,-14,-2r-6,0r-1,1r-5,0v-3,1,-6,1,-8,1v-7,0,-11,2,-13,7v-12,25,-19,44,-19,56","w":242},"$":{"d":"26,-39v0,-6,2,-11,5,-14v3,-3,6,-5,9,-5v3,0,9,5,19,15v10,10,19,14,26,14v7,0,13,-4,16,-11v10,-24,14,-46,14,-66v0,-6,0,-10,-2,-13v-2,-3,-9,-10,-20,-20v-11,-10,-19,-19,-24,-27v-5,-8,-8,-17,-8,-26v0,-9,2,-19,7,-30v11,-25,31,-40,60,-46v9,-2,15,-4,17,-6v2,-2,5,-5,9,-12v4,-7,8,-10,11,-10v3,0,8,5,13,16v2,4,8,9,20,16v12,7,17,15,17,25v0,5,-1,9,-4,12v-3,3,-6,5,-11,5v-2,0,-7,-3,-14,-10v-7,-7,-14,-11,-21,-11v-6,0,-11,6,-15,18v-7,22,-11,40,-11,53v0,7,6,15,19,25v13,10,23,19,29,28v6,9,9,20,9,32v0,22,-7,40,-22,56v-12,13,-28,21,-47,25v-12,2,-19,4,-21,6v-2,2,-5,7,-9,17v-4,10,-9,14,-14,14v-6,0,-9,-6,-9,-18v0,-7,-5,-13,-16,-18v-11,-5,-19,-9,-22,-13v-7,-8,-10,-15,-10,-21xm95,-201v0,9,3,17,9,23v6,6,11,9,15,9v2,0,3,-2,3,-6r1,-6r4,-21r1,-5r0,-2r2,-8r4,-15r0,-1r1,-1r0,-1r1,-2r2,-10v0,-2,0,-2,-1,-2v-10,0,-21,5,-29,13v-8,8,-12,17,-12,25r-1,5r0,5xm115,-27v0,2,0,3,1,3r3,0v10,0,20,-5,29,-16v9,-11,14,-22,14,-33r0,-7v0,-8,-3,-16,-9,-23v-6,-7,-11,-10,-16,-10v-3,0,-5,3,-5,10v0,7,-2,20,-7,39r-1,1r0,1r-3,14r-1,1"},"%":{"d":"49,-185r0,-6v0,-10,2,-22,6,-34v4,-12,11,-22,18,-31v16,-20,33,-30,51,-30r7,0v11,0,20,4,27,12v7,8,10,19,10,31r0,8v0,10,-2,22,-7,34v-10,26,-26,43,-45,53v-8,4,-17,6,-25,6r-4,0v-11,0,-21,-5,-28,-13v-7,-8,-10,-18,-10,-30xm60,-1v0,-2,4,-8,11,-18v72,-98,138,-182,197,-251v8,-9,16,-14,24,-14v7,0,11,1,11,3v0,1,-2,5,-7,12v-40,57,-107,142,-201,257v-8,9,-16,14,-24,14v-8,0,-11,-1,-11,-3xm81,-187v0,8,2,14,5,17v3,3,7,5,12,5v8,0,17,-7,26,-22v9,-15,13,-31,13,-47r0,-7v0,-7,-1,-12,-4,-16v-3,-4,-7,-6,-11,-6r-4,0v-8,0,-16,7,-24,21v-8,14,-12,27,-12,38v-1,5,-1,7,-1,8r0,9xm194,-41r0,-5v0,-9,2,-20,6,-33v4,-13,10,-23,18,-32v16,-19,33,-29,51,-29r7,0v10,0,19,4,26,12v7,8,11,18,11,31r0,8v0,8,-2,18,-6,30v-8,24,-22,43,-42,55v-9,5,-20,8,-32,8v-12,0,-21,-4,-28,-12v-7,-8,-11,-19,-11,-33xm225,-42r0,1v0,7,2,13,5,17v3,4,7,5,11,5r3,0v7,0,15,-7,24,-21v9,-14,14,-31,14,-49r0,-6v0,-8,-2,-13,-5,-17v-3,-4,-7,-6,-11,-6r-3,0v-9,0,-16,7,-23,20v-9,17,-15,33,-15,48r0,8","w":331},"&":{"d":"29,-71r0,-7v0,-25,16,-47,46,-68v9,-6,14,-10,15,-11v5,-5,7,-11,7,-18v0,-2,-1,-7,-3,-16v-2,-8,-2,-16,-2,-24v0,-19,5,-36,16,-49v11,-13,24,-19,40,-19v16,0,30,5,40,15v10,10,15,23,15,40v0,10,-5,23,-15,42v-10,19,-15,33,-15,44v0,11,2,18,6,22v4,4,10,5,17,5v1,0,7,-3,20,-9v13,-6,23,-9,31,-9v8,0,13,3,13,8v0,4,-2,8,-6,13v-4,5,-8,13,-15,26v-7,13,-11,23,-11,30v0,7,5,15,14,26v9,11,13,16,13,18v0,3,-3,5,-8,5v-6,0,-15,-2,-29,-7v-9,-3,-17,-4,-24,-4v-7,0,-22,2,-44,6v-22,4,-36,6,-44,6r-7,0v-20,0,-36,-6,-49,-17v-7,-7,-13,-14,-16,-23v-3,-9,-5,-17,-5,-25xm68,-75v0,12,5,22,14,32v9,10,19,15,33,15r6,0v2,0,3,-1,4,-1v7,0,14,-2,22,-8v8,-6,12,-10,12,-13r0,-2v0,-2,-4,-9,-12,-20v-8,-11,-14,-20,-18,-27v-13,-22,-20,-33,-23,-33v-10,0,-18,6,-26,18v-8,12,-12,22,-12,31r0,8xm126,-215r1,1r0,3r0,4v0,6,2,13,7,22v1,2,4,4,6,4v6,0,15,-7,27,-21v10,-11,14,-22,14,-33r0,-7v0,-5,-2,-9,-5,-13v-3,-4,-6,-6,-11,-6r-5,0r-4,0v-7,0,-14,5,-20,15v-6,10,-10,20,-10,31","w":290},"'":{"d":"61,-188r0,-5v1,-4,1,-7,1,-9v1,-4,1,-6,1,-8r0,-6v0,0,1,-4,1,-5r0,-6r1,-5r0,-3r0,-5r1,-8v1,-5,1,-9,1,-12v0,-3,1,-4,1,-5v0,-11,1,-20,5,-24v4,-4,11,-6,21,-6v10,0,16,2,16,6r0,7v0,16,-8,45,-24,86v-3,9,-9,13,-16,13v-6,0,-9,-2,-9,-5","w":106},"(":{"d":"34,-63r0,-9v0,-45,13,-90,39,-137v12,-21,27,-42,46,-62v19,-20,34,-29,44,-29v5,0,8,2,8,5r0,3v0,2,-6,8,-15,18v-9,10,-18,21,-28,34v-10,13,-20,30,-29,51v-19,43,-28,88,-28,134v0,31,6,60,17,87v6,15,9,24,9,29v0,6,-2,9,-8,9r-4,0v-5,0,-11,-5,-17,-14v-6,-9,-12,-22,-18,-37v-10,-26,-16,-53,-16,-82","w":150},")":{"d":"-8,65v0,-4,5,-11,15,-22v10,-11,20,-23,29,-35v9,-12,19,-29,28,-50v19,-43,28,-87,28,-134v0,-31,-6,-61,-17,-88v-6,-14,-9,-22,-9,-25v0,-7,3,-11,9,-11v6,0,13,4,19,12v6,8,12,20,18,35v11,27,16,53,16,81r0,14v0,46,-14,93,-41,141v-11,19,-25,39,-44,58v-19,19,-32,29,-41,29r-3,0v-4,0,-7,-1,-7,-5","w":150},"*":{"d":"63,-180r0,-6v0,-3,4,-7,11,-15v7,-8,10,-12,10,-14v0,-2,-1,-4,-5,-6v-4,-2,-6,-4,-8,-6v-5,-5,-7,-12,-7,-19v0,-7,5,-11,14,-11v3,0,8,3,16,9v8,6,14,9,17,9v2,0,4,-6,5,-19v1,-13,3,-21,5,-25v2,-4,8,-7,15,-7v7,0,10,3,10,10v0,5,-2,13,-5,23v-3,10,-5,15,-5,17v0,2,1,3,3,3v1,0,6,-3,16,-8v10,-5,16,-7,19,-7v8,0,12,2,12,8v0,9,-5,17,-17,23v-12,6,-17,10,-17,12v0,2,1,5,4,11v3,6,5,11,5,14v0,8,-2,12,-8,12r-20,-4v-3,0,-6,2,-9,6v-3,4,-8,6,-15,6r-8,1v-3,0,-6,-3,-8,-7v-2,-4,-3,-7,-4,-7r-1,0r-14,1v-8,0,-11,-1,-11,-4","w":190},"+":{"d":"36,-108v0,-11,1,-18,4,-20v3,-2,12,-4,29,-4r35,-1v8,0,11,-1,12,-2v1,-1,2,-14,2,-36v0,-22,0,-35,2,-39v2,-4,9,-6,22,-6v5,0,8,3,8,11v0,8,-1,20,-3,36v-2,16,-3,24,-3,26v0,4,13,7,38,8v25,1,38,4,38,9v0,11,-2,18,-5,20v-3,2,-13,3,-30,3r-31,1v-10,0,-14,1,-15,3v-1,2,-2,14,-2,36v0,22,-1,36,-2,39v-2,5,-9,7,-22,7v-5,0,-7,-4,-7,-11v0,-7,0,-19,2,-34v2,-15,3,-25,3,-28v0,-5,-13,-9,-38,-10v-25,-1,-37,-4,-37,-8","w":243},",":{"d":"3,53v0,-2,2,-6,7,-10v16,-15,24,-29,24,-40v0,-1,0,-4,-2,-10v-2,-7,-4,-13,-4,-18v0,-8,3,-15,8,-20v5,-5,12,-9,20,-9r4,0v11,0,17,6,17,15v0,21,-7,43,-22,64v-8,12,-18,21,-29,29v-6,4,-11,6,-16,6v-5,0,-7,-2,-7,-7","w":118},"-":{"d":"23,-98v0,-13,3,-22,10,-25v2,-1,21,-2,54,-2r43,0v5,0,7,1,7,3v0,12,-2,21,-7,26v-2,2,-8,3,-15,3r-87,0v-3,0,-5,-1,-5,-5","w":149},".":{"d":"23,-14r0,-7r1,-6v0,-7,3,-13,9,-18v6,-5,13,-7,21,-7r4,0v12,0,19,5,19,15r0,6v0,10,-4,20,-11,27v-4,4,-11,6,-20,6r-5,0v-2,0,-3,-1,-4,-1v-8,0,-13,-3,-13,-11","w":118},"\/":{"d":"-7,25v0,-1,24,-46,71,-135r90,-168v8,-14,17,-22,26,-22v9,0,14,1,14,3r0,3v0,1,-24,47,-73,139v-49,92,-79,148,-91,168v-7,12,-14,18,-23,18v-9,0,-14,-2,-14,-6","w":171},"0":{"d":"33,-81r0,-5v0,-24,4,-48,12,-75v8,-27,17,-49,29,-67v24,-36,53,-54,86,-54v19,0,34,8,45,22v11,14,17,34,17,58r0,8r-1,4v0,21,-3,46,-11,73v-15,52,-39,87,-70,107v-13,8,-27,13,-40,13v-13,0,-24,-2,-32,-6v-24,-12,-35,-38,-35,-78r0,0xm74,-70v0,14,3,25,8,33v5,8,13,11,22,11v9,0,18,-4,27,-13v18,-18,32,-52,42,-101v5,-24,8,-43,8,-55r0,-14v0,-14,-3,-24,-8,-32v-5,-8,-12,-12,-19,-12r-4,0v-9,0,-18,5,-26,14v-18,19,-32,52,-42,100v-5,24,-8,43,-8,58r0,11","w":231},"1":{"d":"47,-15v0,-7,6,-15,19,-25v13,-10,22,-21,26,-35v2,-6,7,-25,14,-59v7,-34,10,-56,10,-67v0,-11,-1,-17,-4,-20v-3,-3,-8,-5,-18,-8v-10,-3,-15,-7,-15,-10v0,-5,5,-9,15,-13v34,-15,56,-22,67,-22v6,0,9,3,9,9v0,9,-5,42,-17,98v-12,56,-18,90,-18,102v0,6,4,14,11,23v7,9,10,16,10,21v0,5,-4,10,-12,13v-13,5,-27,8,-43,8r-8,0v-17,0,-31,-2,-41,-8v-3,-2,-5,-4,-5,-7","w":218},"2":{"d":"17,-17v0,-7,8,-19,26,-37v3,-3,19,-18,48,-44v29,-26,50,-44,59,-56v14,-18,21,-36,21,-54v0,-9,-4,-17,-11,-24v-7,-7,-16,-11,-27,-11v-11,0,-23,5,-36,13v-20,13,-31,20,-35,20v-5,0,-8,-3,-8,-11v0,-4,2,-10,6,-17v4,-7,12,-14,23,-21v18,-11,36,-17,55,-17r7,0v21,0,38,6,50,18v12,12,19,28,19,48v0,20,-8,40,-25,60v-11,14,-32,33,-64,59v-32,26,-48,41,-48,48v0,4,13,6,39,6r57,-3v9,0,14,4,14,13v0,17,-14,25,-42,25r-25,0r-7,0r-32,0r-27,0v-14,0,-23,-1,-29,-3v-6,-2,-8,-5,-8,-12","w":226},"3":{"d":"14,-29v0,-10,5,-15,15,-15v2,0,11,4,25,11v14,7,28,11,40,11v17,0,31,-6,42,-18v11,-12,17,-27,17,-46v0,-12,-5,-22,-15,-30v-6,-4,-15,-9,-28,-12v-13,-3,-19,-7,-19,-12v0,-5,1,-9,5,-12v1,0,8,-4,22,-10v14,-6,24,-13,31,-20v11,-11,16,-22,16,-32v0,-10,-3,-17,-10,-22v-7,-5,-15,-7,-26,-7v-11,0,-22,2,-36,8v-14,6,-21,9,-23,9v-4,0,-7,-2,-7,-7v0,-5,2,-10,7,-16v5,-6,12,-11,21,-16v17,-8,35,-12,56,-12v21,0,37,5,48,13v11,8,16,19,16,32v0,24,-11,46,-35,65v-12,10,-19,17,-19,19v0,1,4,4,12,9v19,12,28,29,28,52v0,26,-11,49,-32,67v-9,8,-21,15,-34,20v-13,5,-26,8,-38,8r-13,0v-16,0,-31,-4,-45,-11v-14,-7,-21,-16,-21,-26","w":226},"4":{"d":"27,-89v0,-9,5,-20,14,-31v50,-63,89,-109,117,-139v13,-14,25,-21,36,-21r4,0v7,0,11,5,11,13v0,5,-5,25,-14,64v-9,39,-14,62,-14,71v0,9,2,17,8,26v6,9,9,15,9,17v0,2,-4,8,-11,19v-2,3,-5,6,-10,9v-5,3,-8,6,-9,7v-1,1,-1,8,-1,19v0,11,-2,19,-7,25v-5,6,-13,10,-24,10r-8,0r-1,0v-5,0,-10,-1,-13,-4v-3,-3,-5,-8,-5,-14v0,-5,1,-12,4,-20v1,-4,1,-7,1,-8v0,-8,-8,-14,-24,-19v-5,-2,-14,-2,-28,-3v-14,-1,-22,-2,-24,-3v-7,-3,-11,-9,-11,-18xm55,-103v0,1,4,1,13,1r14,0r2,0r33,-1r4,0v7,0,11,-4,13,-10v18,-60,26,-98,26,-111r0,-1v-1,0,-7,6,-16,18v-14,18,-14,17,-27,33v-9,10,-15,17,-18,22v-3,5,-11,14,-24,27v-13,13,-20,20,-20,22","w":229},"5":{"d":"14,-26v0,-5,3,-8,6,-11v3,-3,7,-4,11,-4r0,0v4,0,13,3,25,10v13,7,24,10,36,10v8,0,15,-1,22,-4v10,-4,19,-10,26,-18v11,-13,17,-29,17,-48v0,-8,-1,-16,-5,-23v-4,-7,-10,-13,-16,-17v-11,-7,-29,-10,-53,-10v-11,0,-19,-2,-22,-5v-3,-3,-5,-8,-5,-15v0,-7,5,-24,14,-53v9,-29,14,-45,18,-49v6,-7,25,-11,58,-11v19,0,34,0,44,-1v10,-1,17,-2,19,-2v9,0,14,2,14,7v0,12,-6,20,-17,26v-7,4,-24,6,-48,6v-24,0,-39,3,-45,7v-6,4,-10,11,-15,22v-5,11,-7,20,-7,26v0,4,11,8,33,10v36,4,59,19,70,45v4,9,5,20,5,33v0,13,-3,27,-9,40v-12,26,-31,43,-56,53v-16,6,-32,10,-46,10r-6,0v-16,0,-32,-3,-46,-9v-14,-6,-22,-15,-22,-25"},"6":{"d":"33,-99r0,-10v0,-18,4,-37,12,-58v8,-21,19,-40,34,-58v15,-18,32,-30,50,-39v18,-9,35,-14,51,-14r10,0v10,0,19,3,25,8v2,2,4,4,4,8v0,3,-11,6,-32,9v-21,3,-37,9,-49,17v-12,8,-22,18,-30,30v-8,12,-12,23,-12,32v0,3,2,5,6,5v4,0,9,-1,15,-2v6,-1,12,-2,20,-2v8,0,17,2,26,6v27,13,41,39,41,77v0,10,-2,21,-6,33v-4,12,-11,23,-20,32v-16,17,-36,26,-61,26v-25,0,-46,-10,-61,-28v-15,-18,-23,-42,-23,-72xm75,-68v0,13,3,23,9,31v6,8,13,11,21,11r5,0v5,0,12,-2,19,-6v7,-4,13,-10,19,-19v12,-18,18,-36,18,-54r0,-10v0,-10,-3,-18,-8,-25v-5,-7,-13,-11,-21,-11r-7,0v-13,0,-25,7,-37,22v-12,15,-18,33,-18,54r0,7","w":229},"7":{"d":"46,0r0,-4v0,-12,22,-50,66,-116v44,-66,66,-101,66,-106v0,-5,-2,-8,-7,-10v-5,-2,-14,-3,-28,-3v-19,0,-37,2,-52,6v-15,4,-24,5,-27,5v-6,0,-9,-3,-9,-10v0,-10,2,-18,7,-24v7,-9,15,-14,26,-14r5,0r5,0r9,1r16,0r37,0v35,0,56,1,63,2v7,1,10,5,10,11v0,7,-4,17,-12,30r-35,53r-38,59v-8,12,-16,27,-26,46r-38,71v-5,7,-13,11,-23,11v-10,0,-15,-3,-15,-8"},"8":{"d":"26,-56v0,-28,13,-53,38,-73r26,-21r-8,-10v-13,-14,-19,-29,-19,-45v0,-10,3,-20,9,-31v6,-11,13,-20,22,-28v19,-16,42,-23,67,-23v17,0,31,5,42,14v11,9,17,22,17,38r0,4v0,12,-4,23,-11,34v-7,11,-15,20,-26,29v-11,9,-16,13,-16,14v0,1,4,5,11,12v7,7,13,15,17,22v4,7,5,17,5,28v0,11,-3,22,-8,34v-5,12,-13,21,-23,31v-21,19,-46,30,-76,30v-20,0,-36,-6,-48,-17v-12,-11,-19,-25,-19,-42xm65,-59v0,10,3,17,10,23v7,6,16,10,27,10v16,0,31,-6,42,-19v11,-13,17,-26,17,-40r0,-5v0,-2,-1,-3,-1,-4v0,-8,-4,-17,-13,-25v-9,-8,-19,-12,-30,-12v-11,0,-22,8,-34,23v-12,15,-18,30,-18,44r0,5xm101,-205v0,9,4,17,11,24v7,7,16,11,26,11v10,0,20,-7,30,-20v10,-13,15,-25,15,-36r0,-5v0,-8,-3,-15,-9,-20v-6,-5,-14,-8,-25,-8v-11,0,-22,5,-32,14v-10,9,-16,20,-16,33r0,7","w":229},"9":{"d":"33,-16v0,-5,10,-9,30,-11v20,-2,37,-6,50,-15v13,-9,23,-19,31,-31v8,-12,12,-22,12,-32v0,-4,-2,-6,-8,-6v-3,0,-6,0,-11,1v-6,1,-11,2,-17,2v-10,0,-21,-2,-31,-7v-9,-4,-16,-9,-22,-16v-12,-15,-18,-36,-18,-60v0,-11,2,-21,6,-32v9,-24,24,-41,45,-51v10,-5,21,-7,32,-7r5,0v12,0,23,2,34,7v21,10,34,28,42,52v4,14,7,28,7,42r0,10v0,19,-4,38,-12,58v-8,20,-18,38,-32,55v-14,17,-30,30,-49,40v-19,10,-37,15,-55,15r-9,0v-11,0,-20,-2,-26,-7v-2,-2,-4,-5,-4,-7xm87,-171v0,13,4,23,9,30v5,7,12,11,21,11r5,0v14,0,27,-7,38,-21v11,-14,16,-30,16,-47r1,-4r0,-5r0,-6v0,-13,-3,-23,-9,-31v-6,-8,-13,-11,-21,-11r-3,0v-12,0,-24,7,-35,20v-5,5,-9,14,-14,25v-5,11,-7,21,-7,30r0,3","w":230},":":{"d":"27,-19r0,-7v0,-8,4,-15,10,-20v6,-5,13,-8,21,-8v8,0,15,2,18,4v3,2,4,7,4,14r0,6r-1,4v0,4,-3,11,-9,19v-3,5,-10,7,-19,7r-4,1r-1,0r-2,0r-3,-1v-9,0,-14,-3,-14,-10v-1,-2,0,-5,0,-9xm56,-158v0,-14,3,-24,11,-30v5,-4,10,-6,16,-6r6,-1v8,0,14,1,17,4v3,3,4,7,4,14r0,1v0,9,-3,19,-10,28v-3,5,-9,7,-16,7r-5,1r-5,0v-11,0,-17,-5,-17,-13","w":124},";":{"d":"6,50v0,-1,3,-5,9,-11v6,-6,9,-10,10,-11v8,-12,13,-21,13,-27v0,-1,-2,-4,-4,-10v-2,-6,-3,-11,-3,-16v0,-10,3,-18,8,-23v5,-5,12,-7,20,-7r4,0v11,0,17,4,17,12r0,6v0,18,-8,37,-22,58v-9,12,-19,22,-30,30v-6,4,-12,7,-16,7v-4,0,-6,-2,-6,-6r0,-2xm57,-156r0,-6v0,-2,1,-4,1,-5v0,-8,3,-15,9,-20v6,-5,13,-8,21,-8r4,0v12,0,19,6,19,16r0,5r-1,1r0,4v0,10,-4,17,-12,23v-5,4,-11,5,-18,5r-5,0v-12,0,-18,-5,-18,-15","w":124},"<":{"d":"33,-113v0,-10,4,-18,12,-22v11,-6,31,-17,63,-31v32,-14,58,-27,77,-37v19,-10,30,-16,32,-16v2,0,4,5,4,13v0,8,-5,16,-15,23v-10,7,-34,19,-72,36v-38,17,-57,27,-57,29v0,3,17,14,53,31v36,17,58,29,67,36v9,7,14,16,14,27v0,6,-1,9,-5,9v-9,0,-63,-28,-160,-82v-8,-5,-13,-10,-13,-16","w":241},"=":{"d":"31,-73r0,-1r0,-2v0,-8,1,-14,3,-16v2,-2,9,-3,20,-3r157,0v11,0,16,2,16,6r0,8v0,9,-2,14,-7,15v-5,1,-33,1,-84,1r-93,0v-8,0,-12,-3,-12,-8xm35,-150r0,-2r0,-2v0,-10,2,-15,6,-16v4,-1,28,-2,72,-2r106,0v8,0,13,3,13,8r0,1r-1,2v0,9,-1,15,-4,16v-3,1,-16,2,-39,2r-134,0v-13,0,-19,-2,-19,-7","w":243},">":{"d":"34,-24v0,-11,7,-21,20,-29v9,-6,32,-17,69,-34v37,-17,55,-26,55,-28v0,-3,-19,-14,-58,-34v-39,-20,-60,-32,-64,-35v-8,-7,-13,-14,-13,-22v0,-8,2,-12,5,-12v3,0,10,3,21,9r142,73v7,4,10,9,10,14r0,4v0,8,-3,15,-10,19v-11,7,-33,18,-67,33v-34,15,-60,28,-77,37v-17,9,-26,14,-29,14v-3,0,-4,-3,-4,-9","w":241},"?":{"d":"50,-14r0,-6v0,-7,3,-15,10,-24v3,-5,10,-7,19,-7r7,0v2,0,3,1,4,1v8,0,12,3,12,9r0,3r1,4r0,3r0,1r-1,4v0,5,-2,11,-8,19v-4,5,-10,7,-18,7r-5,1v-14,0,-21,-5,-21,-15xm58,-244v0,-11,5,-21,16,-28v15,-11,32,-16,50,-16r8,0v18,0,34,6,46,17v12,11,18,24,18,41v0,17,-6,33,-17,49v-8,11,-20,22,-36,35r-9,7v-9,7,-15,12,-18,15v-4,4,-5,10,-7,19v-2,9,-3,14,-4,15v-2,5,-5,7,-11,7r-4,0v-9,0,-13,-8,-13,-23v0,-10,3,-20,9,-29v6,-9,15,-19,27,-29v12,-10,22,-20,29,-30v7,-10,11,-20,11,-30v0,-20,-12,-29,-34,-29v-6,0,-15,2,-27,9v-12,7,-19,10,-21,10v-8,0,-13,-3,-13,-10","w":195},"@":{"d":"142,-93v0,8,2,13,5,17v3,4,7,6,11,6r3,0v11,0,23,-8,34,-23v7,-9,12,-22,17,-37v5,-15,7,-26,7,-33r0,-5v0,-6,-3,-11,-8,-13v3,0,7,-1,10,-2v6,-1,11,-1,14,-1v6,0,9,5,9,14v0,3,-1,11,-3,26v-2,15,-4,27,-4,37v0,14,5,22,14,22v10,0,19,-7,30,-21v6,-8,11,-18,14,-28v3,-11,5,-22,5,-32v0,-9,-1,-17,-3,-24v-9,-27,-26,-46,-51,-57v-14,-6,-30,-8,-48,-8v-18,0,-35,4,-52,12v-17,8,-33,20,-46,35v-25,29,-37,65,-37,108r0,1v0,13,3,28,9,42v12,29,34,48,64,58v14,5,28,6,43,6v12,0,23,-1,35,-4r35,-9v4,0,6,2,6,5v0,5,-10,11,-30,17v-21,6,-40,9,-58,9v-19,0,-38,-3,-55,-10v-32,-13,-54,-35,-67,-68v-7,-17,-10,-35,-10,-57v0,-22,4,-44,14,-66v10,-22,23,-41,40,-57v32,-31,72,-47,118,-47v35,0,64,10,86,31v22,20,33,48,33,82v0,12,-2,24,-6,38v-4,14,-10,26,-19,38v-17,22,-36,34,-58,34v-7,0,-13,-1,-18,-4r-6,-5r-4,-6r-5,-3v-1,0,-7,3,-18,9v-12,6,-22,9,-32,9v-13,0,-24,-5,-33,-17v-7,-8,-10,-21,-10,-37v0,-8,2,-17,6,-27v9,-20,21,-33,38,-40v7,-3,15,-5,23,-5v1,0,2,1,4,1r7,0v-11,2,-22,10,-32,24v-14,21,-21,39,-21,57r0,8","w":336},"A":{"d":"14,-24r0,-3v0,-8,44,-86,133,-233v11,-18,25,-28,40,-28v9,0,15,8,18,21v0,2,3,33,10,94r1,12r2,11v2,15,1,15,2,25r6,49v1,8,3,16,7,24v4,8,7,12,7,15v0,8,-4,16,-13,22v-9,6,-19,9,-30,9v-17,0,-25,-5,-25,-13r3,-15v1,-9,2,-16,2,-19v0,-16,-4,-26,-13,-31v-4,-2,-18,-4,-40,-4v-22,0,-35,2,-39,7v-4,5,-9,15,-15,29v-7,17,-11,28,-12,32v-1,4,-1,7,-2,8v-3,4,-8,6,-16,6r-4,0v-5,0,-10,-2,-15,-7v-5,-5,-7,-8,-7,-11xm107,-119v0,2,9,3,28,3r21,0v13,0,20,-3,20,-10r0,-2r0,-2r0,-3r-3,-43v0,-39,-1,-59,-4,-59v-1,0,-4,5,-9,16r-15,32r-13,24v-3,6,-8,16,-15,27v-7,11,-10,17,-10,17","w":271},"B":{"d":"16,-8v0,-2,2,-5,5,-9r6,-6v3,-3,4,-5,5,-6v5,-6,10,-24,18,-52v8,-28,15,-58,20,-91v5,-33,8,-53,8,-61v0,-8,-1,-15,-3,-22v-2,-7,-3,-11,-3,-13v0,-5,4,-8,12,-10v20,-4,46,-7,78,-7r15,0v19,0,35,4,47,13v12,9,18,22,18,38r0,5v0,24,-16,45,-46,63v-6,4,-9,6,-9,7v0,1,4,4,13,10v9,6,15,14,20,22v5,8,6,20,6,34v0,14,-3,27,-10,39v-21,36,-62,54,-124,54r-19,0r-17,0v-26,0,-40,-3,-40,-8xm79,-39v0,4,4,7,14,7r8,0v28,0,48,-5,62,-16v7,-6,14,-13,18,-22v4,-9,6,-18,6,-28v0,-10,-3,-18,-10,-24v-7,-6,-16,-9,-28,-9r-2,0r-2,-1r-14,0v-17,0,-27,4,-31,11v-2,3,-3,8,-5,16v-2,8,-6,20,-10,35v-4,15,-6,25,-6,31xm105,-171v0,3,2,5,6,5r3,0r5,0v26,0,46,-6,60,-17v14,-11,20,-24,20,-39r0,-8v0,-8,-3,-13,-10,-18v-7,-5,-16,-7,-28,-7r-5,0v-16,0,-27,3,-31,10v-1,2,-5,15,-11,37v-6,22,-9,34,-9,37","w":257},"C":{"d":"30,-107r0,-7v0,-23,4,-46,14,-69v10,-23,22,-42,37,-57v30,-31,64,-47,104,-47r7,0v23,0,45,3,65,10v10,3,14,12,14,26v0,10,-2,18,-7,24v-2,3,-5,4,-8,4v-3,0,-8,-3,-18,-11v-10,-8,-18,-13,-26,-17v-8,-4,-19,-6,-32,-6v-13,0,-27,4,-39,12v-26,16,-44,41,-56,78v-6,17,-9,35,-9,51v0,42,15,68,43,80v9,4,18,6,28,6v15,0,31,-4,49,-12v21,-9,34,-14,38,-14v4,0,6,2,6,7v0,5,-2,12,-7,18v-5,6,-13,12,-25,18v-20,9,-43,14,-68,14r-7,0v-13,0,-26,-2,-39,-7v-13,-5,-25,-12,-35,-23v-19,-20,-29,-46,-29,-78","w":266},"D":{"d":"18,-8v0,-3,3,-8,8,-14v5,-6,9,-12,12,-17v3,-5,7,-14,11,-29v24,-87,36,-144,36,-173v0,-4,-1,-10,-4,-16v-3,-6,-5,-10,-5,-11v0,-7,3,-11,10,-13v15,-4,40,-6,73,-6r15,0v32,0,56,7,73,23v20,18,31,45,31,79r0,5v0,25,-5,48,-15,71v-9,23,-22,43,-39,60v-32,32,-76,48,-134,48r-1,0r-14,0r-30,-1v-18,0,-27,-2,-27,-6xm86,-38v0,5,7,7,22,7r6,0r3,0v15,0,29,-3,43,-10v27,-14,49,-39,62,-76v7,-19,10,-39,10,-60r0,-7v0,-23,-5,-41,-16,-54v-11,-13,-27,-20,-46,-20r-9,0v-17,0,-26,5,-29,15r-9,41r-9,41v-8,34,-14,62,-20,84v-6,22,-8,35,-8,39","w":293},"E":{"d":"19,-23v0,-4,3,-8,8,-14v5,-6,9,-12,11,-17v2,-5,8,-22,17,-52v16,-54,24,-96,24,-126v0,-7,-2,-12,-4,-17r-3,-4v-3,-4,-4,-8,-4,-9v0,-8,4,-12,12,-14v27,-6,70,-9,129,-9r7,0v8,0,15,1,20,4v5,3,7,10,7,21v0,11,-3,17,-9,17v-2,0,-4,-1,-7,-2r-4,-2v-15,-7,-32,-10,-49,-10v-17,0,-30,4,-37,12v-5,5,-10,15,-16,29v-6,14,-8,24,-8,32r2,4v5,4,11,7,21,7v10,0,19,-1,27,-4v8,-3,13,-4,15,-4v7,0,12,1,15,5v3,4,4,11,4,20v0,9,-2,17,-7,25v-5,8,-10,12,-15,12v-5,0,-11,-2,-19,-5v-8,-3,-16,-5,-23,-5v-18,0,-31,5,-38,15v-7,10,-10,29,-10,56v0,10,2,17,7,21v5,4,15,7,31,7v16,0,29,-2,38,-4v9,-2,19,-5,27,-8v8,-3,14,-4,19,-4v5,0,7,2,7,7v0,14,-6,24,-17,31v-7,4,-21,7,-43,7r-57,0v-30,0,-52,-3,-66,-7v-8,-2,-12,-7,-12,-15","w":244},"F":{"d":"23,-26v0,-4,4,-10,11,-19v7,-9,12,-18,15,-29v7,-26,14,-57,20,-94v6,-37,9,-58,9,-65v0,-7,-2,-14,-4,-21v-2,-7,-3,-10,-3,-12v0,-6,6,-10,19,-12v31,-5,66,-7,106,-7r7,0v17,0,27,1,30,2v8,3,11,9,11,18v0,17,-4,26,-11,26v-2,0,-5,-2,-10,-5v-14,-9,-36,-13,-64,-13v-13,0,-23,5,-29,13v-4,6,-8,16,-12,31v-4,15,-7,25,-7,30v0,5,3,9,7,11v4,2,10,3,18,3v8,0,16,-2,26,-5v10,-3,16,-4,17,-4v10,0,15,7,15,21v0,14,-3,25,-9,34v-4,5,-10,8,-18,8v-1,0,-5,-1,-11,-4v-6,-3,-11,-4,-15,-4v-12,0,-21,2,-28,5v-7,3,-11,6,-14,11v-8,14,-12,36,-12,65v0,6,0,11,1,17r2,7v0,9,-8,14,-23,14v-15,0,-26,-1,-31,-3v-9,-3,-13,-9,-13,-19","w":230},"G":{"d":"34,-114r0,-8v0,-20,5,-41,13,-62v8,-21,20,-39,35,-55v15,-16,33,-28,52,-36v19,-8,38,-11,57,-11r9,0v6,0,13,0,24,2r9,2v6,1,13,2,20,3v7,1,13,2,15,3v10,5,14,12,14,23r0,6v0,6,-2,12,-5,16v-3,4,-7,6,-10,6r0,0v-3,0,-10,-3,-19,-10v-19,-14,-37,-22,-55,-22v-35,0,-63,14,-84,42v-22,29,-33,63,-33,103v0,10,2,20,6,31v8,21,20,35,38,43v9,4,19,6,32,6v13,0,24,-5,35,-13v11,-8,16,-20,16,-35v0,-10,-1,-20,-5,-28r-6,-12v0,-9,17,-13,50,-13v21,0,32,4,32,14v0,3,-4,9,-9,19v-5,10,-11,25,-17,45v-6,20,-12,33,-17,37v-5,4,-15,7,-29,10v-34,7,-53,11,-55,11r-7,0v-15,0,-29,-3,-42,-9v-25,-12,-43,-33,-55,-62v-6,-15,-9,-30,-9,-46","w":292},"H":{"d":"15,-15v0,-5,3,-11,10,-18v7,-7,13,-18,17,-32v4,-14,10,-44,19,-92v9,-48,13,-73,13,-76v0,-3,-2,-7,-4,-14v-2,-7,-4,-11,-4,-11v0,-6,4,-10,11,-13v7,-3,19,-5,38,-5v19,0,28,4,28,12v0,3,-2,8,-6,15v-4,7,-9,18,-13,32v-4,14,-6,27,-6,37v0,10,2,17,6,19v4,2,21,3,50,3v29,0,46,-3,52,-10v4,-4,8,-12,11,-25v3,-13,5,-27,5,-44r0,-7r-2,-13v0,-9,3,-15,11,-19v10,-5,26,-8,47,-8v11,0,17,4,17,12v0,3,-2,7,-6,12r-5,4r-4,5v-4,5,-9,15,-13,30v-4,15,-11,45,-20,90v-9,45,-14,71,-14,75v0,4,1,9,3,16v2,7,3,10,3,13v0,11,-12,17,-36,17v-15,0,-25,-2,-31,-4v-6,-2,-10,-6,-10,-11v0,-2,2,-6,6,-14v4,-8,9,-21,15,-39v6,-18,8,-32,8,-42v0,-10,-3,-16,-7,-18v-4,-2,-16,-4,-38,-4v-34,0,-55,5,-64,14v-4,4,-9,14,-13,30v-4,16,-6,34,-6,55r0,6r1,6v0,9,-2,15,-8,18v-10,6,-24,9,-43,9v-12,0,-18,-4,-18,-11","w":302},"I":{"d":"17,-13v0,-3,6,-11,17,-25v7,-8,11,-19,15,-34v19,-77,29,-133,29,-165v0,-4,-2,-9,-6,-16v-4,-7,-5,-12,-5,-14v0,-13,18,-19,55,-19r12,0v12,0,18,3,18,10v0,4,-5,10,-14,21v-5,6,-10,16,-14,29v0,1,-2,10,-6,29r-3,13v-1,7,-2,6,-2,8r-1,9r-14,62v-5,24,-8,41,-8,49v0,8,2,16,5,23v3,7,5,12,5,16v0,4,-3,8,-9,11v-6,3,-16,5,-27,5r-15,0v-21,0,-32,-4,-32,-12","w":144},"J":{"d":"-5,-11v0,-6,2,-12,6,-15v4,-3,8,-5,12,-5v4,0,10,1,18,3v8,2,14,3,20,3v10,0,19,-4,28,-14v9,-10,17,-24,23,-41v6,-17,12,-43,18,-76v6,-33,8,-55,8,-64v0,-9,-3,-18,-8,-26v-5,-8,-8,-14,-8,-18v0,-7,5,-12,16,-16v11,-4,22,-6,34,-6v12,0,22,2,28,7v3,3,5,5,5,7v0,5,-2,11,-5,18v-7,15,-17,52,-29,109v-12,57,-23,92,-30,107v-7,15,-18,28,-33,40v-15,12,-32,18,-51,18r-5,0v-12,0,-22,-3,-32,-9v-10,-6,-15,-12,-15,-22","w":190},"K":{"d":"27,-13v0,-4,2,-10,8,-19v6,-9,10,-18,13,-29v3,-11,7,-32,12,-64v5,-32,10,-56,14,-74v4,-18,6,-30,6,-36v0,-6,-1,-12,-3,-18v-2,-6,-3,-11,-3,-15v0,-6,3,-10,11,-12v4,-1,13,-2,26,-2v13,0,23,2,27,5v4,3,6,6,6,9v0,3,-2,9,-6,16v-4,7,-10,18,-15,33v-5,15,-8,28,-8,39v0,6,2,8,5,8v10,0,33,-19,68,-56v12,-13,20,-24,23,-32v3,-8,5,-14,8,-16v7,-5,18,-8,34,-8r7,0v11,0,17,3,17,8v0,4,-6,9,-16,17v-10,8,-22,19,-37,32v-15,13,-28,27,-41,41v-13,14,-19,26,-19,35v0,5,8,23,24,54v16,31,26,49,30,55v13,18,20,29,20,32v0,7,-7,10,-22,10r-7,0v-14,0,-24,-5,-30,-13v0,0,-4,-9,-10,-28v-6,-19,-13,-35,-21,-49v-12,-22,-22,-34,-29,-34v-6,0,-12,8,-18,24v-6,16,-9,32,-9,49r3,24v0,17,-16,25,-49,25v-12,0,-19,-4,-19,-11","w":272},"L":{"d":"16,-14v0,-2,3,-9,10,-19v7,-10,12,-23,16,-38v4,-15,11,-47,21,-93v10,-46,15,-72,15,-76v0,-4,-1,-10,-4,-15v-3,-5,-4,-11,-4,-15v0,-4,2,-8,8,-12v6,-4,12,-5,20,-5r5,0v28,0,42,5,42,16v0,4,-2,8,-7,14v-5,6,-8,11,-11,15v-3,4,-6,10,-8,18v-2,8,-9,39,-20,92v-11,53,-17,81,-17,86v0,5,2,9,8,11v6,2,16,3,30,3v14,0,28,-3,41,-8v24,-10,36,-14,37,-14v7,0,10,4,10,11r0,4v0,25,-11,38,-33,38r-5,0r-53,-1v-49,0,-79,0,-88,-1v-9,-1,-13,-5,-13,-11","w":227},"M":{"d":"14,-18v0,-6,4,-13,10,-22v6,-9,12,-24,18,-46v6,-22,16,-60,28,-116v4,-19,6,-36,6,-51r-1,-8r-1,-7v0,-8,5,-13,15,-13r10,0v10,0,18,2,26,7v8,5,13,12,17,21v2,5,8,33,18,85v10,52,16,78,18,78v2,0,18,-25,47,-73r23,-39v14,-23,22,-37,24,-40r6,-8v16,-20,37,-30,62,-30v9,0,13,3,13,9r-3,7r-4,8v-4,8,-7,19,-9,31v-18,92,-27,149,-27,174v0,5,1,10,4,17v3,7,5,12,5,14r-3,5v-5,5,-11,8,-21,8v-10,0,-18,-1,-26,-5v-8,-4,-11,-8,-11,-14v0,-3,1,-8,3,-15v6,-19,13,-48,20,-89v7,-41,10,-66,10,-73v0,-7,0,-11,-2,-11v-2,0,-17,25,-47,76v-45,76,-45,76,-50,85r-6,9v-10,14,-20,22,-31,22v-4,0,-8,-4,-10,-13r-2,-11r-13,-81v-9,-55,-15,-82,-19,-82v-5,0,-14,30,-29,91v-5,21,-10,38,-13,49v-3,11,-4,20,-5,24r-1,7v0,8,-1,13,-1,14v-4,10,-14,15,-31,15v-11,0,-17,-3,-17,-9","w":356},"N":{"d":"14,-9v0,-6,4,-13,11,-23v7,-10,13,-23,17,-39v4,-16,9,-46,17,-91v8,-45,13,-71,13,-76v0,-5,-1,-10,-2,-15r-5,-19v0,-6,3,-8,11,-8v16,0,29,2,37,7v8,5,16,13,24,25v8,12,24,42,47,94v23,52,35,78,37,78v2,0,4,-3,5,-8v5,-19,11,-47,18,-85v7,-38,10,-65,10,-80r0,-7r-1,-12v0,-6,3,-10,9,-13v6,-3,13,-5,23,-5r8,0v4,0,9,1,13,4v4,3,6,7,6,12v0,5,-4,13,-11,23v-7,10,-12,23,-16,36v-4,13,-11,48,-22,105v-11,57,-18,88,-20,93v-2,5,-8,8,-17,8v-9,0,-17,-7,-27,-22v-5,-7,-20,-40,-46,-97v-26,-57,-40,-86,-45,-86v-3,0,-6,4,-8,11v-5,17,-11,44,-17,81v-6,37,-9,58,-9,66r0,7r0,6r1,6v0,9,-4,16,-12,21v-8,5,-18,8,-30,8v-12,0,-19,-1,-19,-5","w":299},"O":{"d":"38,-95r0,-4v0,-21,4,-44,13,-68v9,-24,22,-46,38,-65v16,-19,34,-34,54,-44v20,-10,40,-14,59,-14r4,0v11,0,22,2,33,6v22,8,38,25,47,51v4,11,6,24,6,38r0,9v0,22,-6,45,-16,70v-20,49,-50,83,-89,103v-19,10,-38,14,-58,14r-4,0v-26,0,-47,-8,-62,-24v-17,-18,-25,-42,-25,-72xm87,-95v0,22,5,39,14,51v9,12,21,17,35,17v28,0,52,-15,72,-45v12,-18,21,-38,27,-59v6,-21,8,-40,8,-57r0,-6v0,-21,-4,-37,-13,-49v-9,-12,-22,-18,-39,-18v-12,0,-24,3,-36,11v-12,8,-23,19,-34,35v-11,16,-19,34,-25,56v-6,22,-9,41,-9,57r0,7","w":303},"P":{"d":"14,-11r0,-4v0,-4,3,-11,9,-19v6,-8,11,-16,13,-24v2,-8,7,-27,13,-56v6,-29,13,-56,19,-80v6,-24,9,-42,9,-52r-3,-21v0,-5,5,-9,16,-11v25,-4,52,-6,81,-6r9,0v21,0,37,5,49,15v12,10,18,25,18,43r0,5v0,11,-3,23,-8,35v-16,34,-47,55,-91,63v-21,4,-33,6,-35,8v-20,14,-29,31,-29,53v0,4,1,9,3,17v2,8,4,13,4,14v0,9,-5,17,-16,22v-11,5,-25,8,-43,8v-12,0,-18,-3,-18,-10xm102,-151v0,3,3,5,10,5r5,0v24,0,44,-6,58,-18v9,-8,16,-15,20,-25v4,-10,6,-19,6,-28r0,-5v0,-10,-3,-18,-9,-24v-6,-6,-16,-9,-27,-9r-5,0v-18,0,-29,4,-33,12v-3,5,-7,17,-11,36","w":245},"Q":{"d":"56,-120r0,-12v0,-45,11,-81,33,-107v14,-18,28,-31,41,-38v13,-7,30,-11,47,-11r9,0v13,0,25,3,37,9v23,11,39,30,47,54v5,14,7,28,7,41r0,6v0,42,-16,84,-48,125v-17,22,-25,35,-25,41v0,6,7,14,22,24v10,7,18,11,22,12v4,1,9,2,14,3v5,1,5,3,-1,7v-10,7,-25,11,-45,11r-5,0v-11,0,-23,-3,-36,-8v-54,-23,-86,-39,-95,-48v-6,-6,-11,-21,-16,-44v-5,-23,-8,-45,-8,-65xm86,-97v0,17,5,33,14,46v9,13,20,20,33,20r5,0v8,0,16,-3,22,-9v25,-23,44,-45,56,-67v12,-22,19,-47,19,-76r0,-13v0,-16,-4,-29,-12,-41v-8,-12,-21,-17,-38,-17v-11,0,-23,4,-35,12v-22,15,-41,41,-54,79v-7,20,-10,37,-10,53r0,13","w":303},"R":{"d":"27,-19v0,-7,3,-14,9,-21v6,-7,11,-16,13,-28v21,-100,32,-162,32,-186r-3,-20v0,-9,23,-13,69,-13r12,0v42,0,68,12,79,35v4,8,5,15,5,23r0,6v0,29,-14,53,-42,73v-12,9,-18,17,-18,24v0,14,6,37,20,69v3,8,8,16,15,24v7,8,10,14,10,19v0,3,-1,7,-4,9v-3,2,-8,3,-14,3r-5,0v-13,0,-24,-5,-30,-15v-3,-4,-8,-17,-15,-39v-7,-22,-12,-36,-16,-42v-8,-14,-16,-21,-25,-21v-9,0,-17,6,-23,19v-3,8,-5,23,-5,44r3,32v0,13,-17,20,-50,20v-11,0,-17,-5,-17,-15xm104,-159v0,4,1,6,5,6r5,0r1,0v25,0,45,-7,62,-18v8,-5,14,-12,19,-21v5,-9,7,-18,7,-26r0,-7v0,-8,-3,-16,-9,-21v-6,-5,-14,-8,-24,-8r-11,0v-4,0,-7,1,-9,1v-11,0,-19,4,-23,12v-2,4,-5,11,-7,21v-2,10,-6,22,-10,35v-4,13,-6,22,-6,26","w":265},"S":{"d":"15,-42v0,-8,1,-14,5,-19v4,-5,8,-8,12,-8v2,0,8,5,17,14v9,9,17,16,26,21v9,5,21,7,35,7v14,0,26,-4,37,-13v11,-9,16,-19,16,-32v0,-13,-4,-24,-13,-33v-4,-4,-18,-13,-40,-27v-22,-14,-37,-25,-45,-36v-8,-11,-11,-23,-11,-37v0,-25,8,-45,27,-61v8,-7,19,-13,30,-17v11,-4,23,-6,33,-6r7,0v4,0,15,2,33,5v18,3,28,5,30,6v8,5,12,12,12,23v0,11,-1,19,-5,23v-4,4,-7,6,-10,6v-3,0,-9,-4,-17,-12v-8,-8,-14,-12,-17,-14v-9,-5,-21,-8,-34,-8v-13,0,-24,4,-34,12v-10,8,-15,20,-15,32v0,12,6,23,17,32v3,3,16,10,37,23v21,13,37,24,45,35v8,11,12,23,12,37v0,28,-9,50,-29,67v-8,7,-18,12,-31,17v-13,5,-25,7,-38,7r-7,0v-4,0,-16,-2,-36,-6v-20,-4,-32,-6,-34,-7v-10,-5,-15,-16,-15,-31","w":228},"T":{"d":"57,-264v3,-8,6,-13,11,-17v5,-4,21,-5,50,-5r6,0r11,0r106,-2v6,0,10,1,13,3v3,2,4,5,4,12v0,14,-2,25,-8,32v-2,2,-4,4,-6,4v-2,0,-8,-3,-17,-8v-9,-5,-19,-8,-28,-8v-9,0,-15,2,-18,5v-3,3,-6,9,-8,18r-27,126v-5,24,-7,40,-7,47v0,8,1,15,4,21v3,6,5,10,5,12v0,15,-17,23,-49,23r-11,0v-13,0,-20,-3,-20,-10v0,-4,4,-12,14,-24v6,-7,11,-18,15,-35v20,-78,31,-132,31,-163v0,-7,-2,-11,-6,-13v-4,-2,-9,-3,-17,-3v-8,0,-16,2,-26,7r-4,2v-10,6,-14,9,-16,9v-5,0,-8,-3,-8,-9v0,-5,2,-14,6,-24","w":242},"U":{"d":"44,-79v0,-14,4,-41,12,-80v8,-39,13,-61,13,-67v0,-6,-2,-12,-5,-18v-3,-6,-5,-10,-5,-12v0,-8,4,-14,11,-19v7,-5,13,-8,21,-8r7,0v20,0,30,5,30,15v0,2,-2,6,-5,12v-6,13,-13,42,-22,87v-9,45,-13,75,-13,91v0,16,5,28,14,37v9,9,22,14,39,14v31,0,54,-17,69,-50v10,-22,20,-64,31,-123v3,-19,5,-41,5,-68v0,-9,9,-14,28,-14v8,0,14,2,19,5v5,3,8,8,8,13r0,5v0,5,-3,11,-9,18v-6,7,-10,15,-12,22v-2,7,-8,32,-16,75v-8,43,-17,73,-27,90v-10,17,-25,31,-42,41v-17,10,-37,14,-58,14r-8,0v-27,0,-48,-7,-63,-21v-14,-14,-22,-33,-22,-59","w":291},"V":{"d":"45,-262r0,-5v0,-6,4,-11,13,-14v4,-1,11,-2,23,-2v12,0,21,3,27,9v3,3,5,9,5,18r-1,10v-1,7,-1,15,-1,23v0,8,2,37,7,84v5,47,8,71,9,73r2,2v1,0,3,-2,6,-6v21,-31,44,-74,71,-128v10,-20,16,-34,19,-41v3,-7,5,-14,6,-21v1,-7,2,-11,4,-14v6,-7,18,-11,35,-11r5,0v10,0,16,4,16,11r0,3v0,5,-5,13,-15,23v-10,10,-34,50,-75,119v-41,69,-62,105,-65,109v-8,11,-16,18,-26,18v-10,0,-16,-6,-19,-18r-5,-47v-1,-9,-4,-26,-7,-48r-6,-46r-9,-60v0,0,-5,-15,-11,-24v-6,-9,-8,-14,-8,-17","w":263},"W":{"d":"51,-259v0,-6,3,-11,9,-14v6,-3,13,-5,23,-5v10,0,17,2,21,7v4,5,6,15,6,29r-1,8r-1,29r1,11r1,21r0,31v0,36,2,55,7,55v3,0,17,-24,41,-71v5,-9,13,-26,24,-51v11,-25,18,-40,21,-45v8,-13,19,-20,32,-20v5,0,10,3,13,9v2,3,4,9,5,18v1,9,3,38,6,89v3,51,6,77,8,77v3,0,18,-29,44,-85v14,-31,24,-55,29,-72v5,-17,7,-27,9,-29v7,-10,16,-15,28,-15r8,0v10,0,15,5,15,15v0,5,-5,13,-13,23v-4,5,-22,41,-55,107v-33,66,-49,101,-51,104v-6,10,-13,18,-20,21r-7,2v-12,0,-21,-10,-25,-28v-2,-7,-4,-32,-8,-78v-4,-46,-7,-70,-8,-74r-2,-7v-3,0,-16,21,-37,63v-21,42,-36,70,-44,83v-15,23,-27,35,-36,35v-4,0,-8,-3,-12,-8v-4,-5,-7,-10,-8,-17v-1,-7,-3,-35,-6,-83r-2,-43v-1,-23,-2,-38,-3,-45v-1,-7,-3,-15,-7,-24v-4,-9,-5,-17,-5,-23","w":377},"X":{"d":"9,-7v0,-3,8,-13,26,-28v6,-5,16,-18,31,-36v36,-45,54,-69,54,-75v0,-6,-5,-21,-16,-47v-11,-26,-17,-40,-19,-44v-2,-4,-6,-9,-11,-15v-5,-6,-8,-11,-8,-14v0,-7,3,-12,9,-15v6,-3,18,-4,36,-4v18,0,26,4,26,13r0,5r-2,10v0,17,5,37,17,62v2,4,5,7,7,7r4,-3v14,-12,27,-29,41,-51v6,-9,8,-17,8,-24v0,-7,2,-12,6,-14v6,-4,19,-6,36,-6r7,0v9,0,13,3,13,8v0,3,-8,11,-22,23v-6,5,-17,16,-31,34v-33,40,-48,63,-48,69v0,12,10,41,30,89v5,11,10,20,16,27v6,7,10,13,10,18v0,12,-17,17,-51,17v-8,0,-15,-1,-18,-3v-3,-2,-5,-6,-5,-12r1,-5r1,-5r0,-9v0,-19,-7,-42,-20,-69r-3,-4v-8,0,-23,17,-45,50v-11,17,-16,30,-16,40v0,7,-4,12,-12,14v-8,2,-20,3,-36,3r-7,0v-6,0,-9,-1,-9,-6","w":265},"Y":{"d":"55,-269v0,-10,16,-15,47,-15v6,0,11,1,15,4v4,3,6,7,6,11v0,4,-1,9,-1,14v0,5,2,14,6,29r8,31v5,19,7,29,8,31v1,2,1,2,3,2v6,0,22,-23,50,-71v6,-10,10,-17,11,-21v1,-4,1,-8,2,-12v1,-4,2,-7,3,-9v5,-7,15,-10,31,-10r6,0v12,0,18,3,18,9v0,4,-8,13,-23,26v-5,4,-17,21,-38,51v-21,30,-35,53,-44,69v-13,25,-20,50,-20,74v0,6,0,13,3,19v3,6,4,12,4,15v0,6,-4,11,-12,15v-8,4,-16,6,-26,6r-6,0r-6,0v-18,0,-26,-4,-26,-11v0,-6,3,-12,9,-19v6,-7,10,-14,12,-20v8,-23,12,-44,12,-64v0,-20,-8,-52,-24,-100v-4,-13,-10,-24,-17,-33v-7,-9,-11,-16,-11,-21","w":249},"Z":{"d":"10,-12v0,-8,6,-19,19,-36v10,-13,19,-24,25,-31r14,-16r30,-36r15,-18v54,-65,80,-99,80,-103v0,-4,-9,-5,-27,-5v-30,0,-55,4,-75,12v-12,5,-20,7,-22,7v-8,0,-11,-3,-11,-10v0,-11,4,-21,11,-28v7,-7,18,-10,33,-10r8,0r61,0r69,0v11,1,17,4,17,10v0,10,-10,26,-30,50r-20,24v-5,6,-6,6,-11,12r-20,23v-68,81,-102,123,-102,127v0,6,11,10,33,10v33,0,62,-5,85,-13v14,-5,21,-7,21,-7v7,0,11,2,11,9v0,11,-4,21,-12,29v-8,8,-19,12,-32,12r-29,0r-7,-1r-39,0v-43,0,-70,0,-80,-1v-10,-1,-15,-4,-15,-10","w":248},"[":{"d":"19,53v0,-7,10,-62,31,-164v21,-102,33,-158,35,-166v2,-8,5,-14,10,-17v5,-3,14,-4,28,-4r16,0v10,0,16,-1,19,-1r4,0v7,0,11,1,11,3r0,3v0,5,-3,10,-9,13v-3,2,-9,3,-19,5v-10,2,-17,5,-21,8v-4,3,-6,8,-9,16v-3,8,-12,53,-29,136v-17,83,-26,129,-26,136v0,7,3,12,6,15v1,1,7,4,18,8v11,4,16,9,16,15v0,6,-6,9,-18,9r-9,0r-10,-1v-21,0,-34,-1,-38,-2v-4,-1,-6,-5,-6,-12","w":151},"\\":{"d":"42,-294v0,-3,4,-5,13,-5v9,0,16,7,20,20v14,43,27,86,38,127v11,41,21,78,32,112v11,34,17,54,17,61v0,4,-6,6,-16,6v-8,0,-14,-8,-19,-23v-22,-68,-48,-156,-78,-265v-5,-19,-7,-30,-7,-33","w":183},"]":{"d":"-9,61v0,-8,9,-13,27,-17v11,-2,19,-5,22,-7v3,-2,6,-8,9,-15v3,-7,12,-53,29,-137v17,-84,26,-130,26,-137v0,-7,-2,-12,-5,-15v-1,-1,-8,-5,-21,-10v-9,-4,-13,-7,-13,-13v0,-6,6,-9,18,-9r5,0r14,0v21,0,34,1,38,2v4,1,6,6,6,13v0,7,-10,61,-31,163v-21,102,-32,157,-35,166v-3,9,-6,16,-10,18v-4,2,-14,3,-29,3r-39,2v-7,0,-11,-1,-11,-3r0,-4","w":152},"^":{"d":"34,-134r0,-2v0,-5,26,-51,78,-137v5,-8,13,-11,22,-11r3,0v6,0,11,5,17,15v6,10,13,28,23,50v10,22,19,40,27,56v8,16,12,25,12,27v0,3,-4,4,-13,4v-9,0,-17,-6,-25,-18r-24,-50v0,0,-23,-45,-25,-45v-1,0,-9,13,-23,40v-14,27,-25,46,-33,57v-8,11,-17,16,-28,16v-7,0,-11,0,-11,-2","w":233},"_":{"d":"-12,46r1,-2v0,-8,3,-13,11,-13r84,0r19,1v71,0,107,1,107,4r0,2r-1,2v0,7,0,12,-1,13v-1,1,-6,2,-13,2r-29,0r-52,0r-17,0v-72,0,-109,-1,-109,-4r0,-5","w":219},"`":{"d":"67,-292v0,-5,6,-7,16,-7v10,0,19,4,25,10v6,6,13,16,20,29v7,13,11,21,11,24v0,3,-3,4,-9,4v-6,0,-12,-3,-19,-9v-29,-25,-44,-42,-44,-51","w":166},"a":{"d":"16,-58r0,-8v0,-14,4,-29,11,-46v14,-33,35,-57,61,-71v13,-7,25,-10,37,-10v7,0,15,2,22,4v8,3,13,4,15,4v2,0,6,-1,11,-3v6,-2,11,-3,15,-3v10,0,16,6,16,18v0,3,-4,20,-11,49v-7,29,-10,49,-10,58v0,9,3,16,8,21v5,5,8,10,8,14v0,8,-3,14,-11,20v-8,6,-18,8,-30,8v-9,0,-15,-5,-20,-15v-5,-10,-7,-14,-9,-14v-2,0,-7,1,-13,6v-18,14,-35,21,-50,21v-15,0,-27,-5,-36,-14v-9,-9,-14,-22,-14,-39xm60,-58v0,9,2,16,5,21v3,5,8,7,13,7r5,0v4,0,10,-2,19,-7v9,-5,18,-14,26,-26v8,-12,15,-27,20,-44v3,-12,5,-26,7,-39v0,-15,-7,-23,-21,-23r-7,0v-5,0,-11,3,-19,7v-8,4,-15,11,-23,22v-8,11,-13,24,-18,38v-5,14,-7,26,-7,34r0,10","w":220},"b":{"d":"27,-23v0,-5,3,-18,8,-39v5,-21,12,-56,22,-102v10,-46,15,-73,15,-79v0,-6,-2,-12,-4,-18v-2,-6,-3,-11,-3,-14v0,-13,9,-19,29,-19r8,0v9,0,13,6,13,17v0,2,-2,9,-5,24v-3,15,-6,27,-9,37v-3,10,-4,17,-4,19v0,8,5,12,15,12v1,0,6,-1,14,-3v8,-2,15,-2,22,-2v16,0,28,4,37,13v13,13,19,29,19,50r0,5v0,15,-3,32,-10,48v-21,49,-51,73,-92,73v-7,0,-15,-2,-24,-4v-9,-2,-16,-3,-18,-3r-15,2v-6,0,-11,-2,-14,-5v-3,-3,-4,-7,-4,-12xm73,-49v0,6,2,11,6,16v4,5,10,7,17,7r4,0v6,0,12,-2,20,-7v8,-5,17,-14,24,-25v7,-11,13,-24,17,-38v4,-14,7,-27,7,-37r0,-5r0,-1v0,-10,-2,-18,-6,-23v-4,-5,-9,-8,-15,-8r-3,0v-5,0,-13,3,-21,8v-8,5,-17,14,-25,26v-8,12,-14,27,-18,44v-4,17,-7,29,-7,38r0,5"},"c":{"d":"19,-66r0,-14v0,-13,3,-27,10,-43v13,-31,34,-53,63,-66v13,-6,26,-8,42,-8v16,0,29,2,39,6v10,4,15,9,15,16v0,6,-2,11,-5,15v-3,4,-8,6,-12,6v-4,0,-11,-2,-21,-7v-9,-5,-18,-7,-26,-7v-8,0,-15,2,-22,6v-8,5,-15,11,-21,19v-13,19,-20,41,-20,68v0,14,4,26,12,34v8,8,18,12,33,12v6,0,16,-2,30,-7v14,-5,23,-8,25,-8v5,0,7,3,7,9v0,8,-9,15,-26,23v-17,8,-34,13,-50,13r-4,0v-19,0,-35,-6,-47,-17v-7,-7,-12,-15,-16,-24v-4,-9,-6,-18,-6,-26","w":191},"d":{"d":"27,-66r0,-5v0,-13,4,-29,12,-47v15,-35,37,-58,65,-71v11,-5,24,-8,38,-8r9,1r5,0v11,0,19,-5,25,-13v7,-9,10,-21,10,-37r0,-1r-3,-27v0,-8,3,-14,10,-19v7,-5,16,-7,26,-7v10,0,16,4,16,14v0,10,-9,48,-26,113v-17,65,-25,101,-25,107v0,6,1,12,3,18v2,6,3,11,3,16v0,5,-3,10,-9,15v-6,5,-15,7,-26,7r-12,-6v0,0,-15,-7,-20,-7v-1,0,-7,3,-20,9v-13,6,-24,9,-34,9v-14,0,-26,-5,-34,-16v-9,-11,-13,-27,-13,-45xm67,-58v0,9,2,15,6,20v4,5,9,8,15,8v8,0,18,-4,30,-13v14,-10,26,-32,37,-66v5,-14,7,-26,7,-36v0,-2,-1,-5,-1,-7v0,-7,-2,-11,-6,-15v-4,-4,-9,-6,-16,-6r-5,0v-6,0,-13,3,-21,8v-8,5,-15,13,-22,24v-7,11,-13,24,-17,38v-4,14,-7,25,-7,33r0,12","w":231},"e":{"d":"21,-70r0,-5v0,-13,3,-27,9,-42v14,-33,39,-58,74,-74v13,-6,28,-9,42,-9v14,0,25,4,34,12v9,8,14,18,14,29r0,8v0,8,-2,14,-6,22v-4,8,-9,13,-16,17v-7,4,-18,8,-35,12v-17,4,-30,6,-41,8v-11,2,-18,2,-21,3v-9,3,-13,10,-13,19v0,13,3,22,11,29v8,7,19,11,34,11v8,0,19,-3,34,-9v15,-6,25,-9,27,-9v5,0,8,2,8,7v0,9,-10,19,-28,28v-18,9,-35,13,-50,13r-9,0v-20,0,-36,-7,-49,-20v-13,-13,-19,-29,-19,-50xm71,-121v0,3,2,5,6,5r4,0r7,0r8,-2v19,0,36,-4,52,-13v6,-3,9,-8,9,-17v0,-9,-2,-15,-7,-19v-5,-4,-10,-6,-17,-6r-5,0r-4,0v-9,0,-18,5,-29,15v-16,14,-24,26,-24,37","w":203},"f":{"d":"-9,42v0,-4,6,-13,17,-25v8,-8,15,-22,21,-41v14,-42,21,-80,21,-114v0,-3,-1,-8,-2,-15v-1,-7,-2,-16,-2,-27v0,-6,4,-14,12,-23v8,-9,16,-20,21,-34v10,-27,26,-46,47,-56v11,-6,22,-8,32,-8r5,0v9,0,17,1,22,3v5,2,7,6,7,11v0,5,-1,9,-4,13v-3,4,-7,6,-12,6r-25,-4v-10,0,-20,6,-27,17v-7,11,-11,22,-11,32v0,10,2,16,5,19v3,3,7,5,15,8v8,3,12,6,12,10v0,2,-6,9,-19,17v-13,8,-21,17,-26,26v-3,6,-11,33,-22,79v-11,46,-20,75,-27,86v-11,19,-24,28,-39,28r-5,0v-11,0,-16,-2,-16,-8","w":141},"g":{"d":"3,55v0,-10,5,-15,13,-15v2,0,11,2,26,8v15,6,28,9,38,9v15,0,29,-6,40,-18v7,-7,12,-15,17,-26v5,-11,7,-18,7,-23r-1,-1r0,0v-2,0,-7,2,-17,5v-10,3,-20,5,-29,5v-9,0,-16,-2,-24,-5v-27,-11,-40,-38,-40,-81v0,-16,3,-31,9,-47v6,-16,13,-30,22,-40v9,-10,19,-19,32,-25v13,-6,25,-9,38,-9r5,0v7,0,16,2,25,6v9,4,13,6,15,6v2,0,5,-1,10,-4v5,-3,10,-4,15,-4v9,0,13,4,13,12r0,6v0,9,-4,23,-13,44v-2,5,-6,16,-10,33v-4,17,-8,33,-10,50v-8,58,-14,91,-18,99v-8,15,-21,27,-37,36v-16,9,-34,15,-53,15v-19,0,-35,-4,-50,-10v-15,-6,-23,-14,-23,-22r0,-4xm69,-76v0,11,3,20,7,27v4,7,10,11,19,11v8,0,16,-3,25,-8v9,-5,16,-13,22,-23v15,-26,23,-52,23,-77r0,-6v0,-9,-2,-14,-7,-19v-5,-5,-10,-7,-18,-7r-5,0v-6,0,-14,2,-22,7v-8,5,-15,11,-22,21v-15,22,-22,47,-22,74","w":236},"h":{"d":"26,-21v0,-7,3,-22,10,-47v7,-25,12,-46,15,-60v14,-61,20,-98,20,-112v0,-4,-1,-9,-3,-14v-2,-5,-2,-9,-2,-13v0,-7,3,-14,10,-19v7,-5,14,-8,21,-8v13,0,20,4,20,14v0,11,-3,28,-9,52v-6,24,-10,38,-10,42v0,4,2,5,6,5v2,0,8,-2,19,-7v11,-5,22,-7,34,-7v12,0,21,4,29,12v8,8,12,18,12,31r0,7v0,6,-3,25,-8,56v-5,30,-8,49,-8,57r0,1r0,13v0,5,-5,8,-14,8v-9,0,-16,-3,-19,-8v-3,-5,-5,-12,-5,-22v0,-10,2,-22,5,-37v7,-29,11,-49,11,-58v0,-9,-2,-16,-6,-20v-4,-5,-8,-7,-13,-7v-5,0,-11,2,-18,7v-18,13,-33,38,-43,76v-10,38,-15,58,-16,60v-6,11,-14,17,-24,17v-9,0,-14,-7,-14,-19","w":230},"i":{"d":"26,-21v0,-5,4,-26,13,-60v9,-34,13,-56,13,-64v0,-8,-1,-14,-5,-19v-4,-5,-6,-8,-6,-12v0,-15,14,-22,41,-22r5,0v8,0,12,4,12,11r0,8v0,3,-4,21,-11,54v-7,33,-10,53,-10,61v0,8,2,15,6,21v4,6,6,10,6,15v0,7,-4,13,-13,18v-10,5,-20,8,-32,8r-5,0v-3,0,-6,-1,-9,-5v-3,-4,-5,-9,-5,-14xm71,-254v0,-11,3,-21,9,-28v4,-5,11,-7,20,-7r7,0v2,0,3,1,4,1v7,0,10,3,10,8v1,3,1,5,1,8v0,8,-3,16,-9,24v-4,5,-8,7,-15,7v-1,0,-3,1,-6,1r-5,0r-6,-1v-6,0,-9,-3,-9,-8","w":121},"j":{"d":"-38,77v0,-9,9,-16,26,-20v8,-2,14,-5,19,-9v5,-4,10,-9,13,-17v3,-8,10,-35,21,-82v11,-47,15,-76,15,-87v0,-11,-2,-19,-6,-26v-4,-7,-7,-11,-7,-13v0,-6,4,-11,12,-14v8,-3,17,-5,29,-5v13,0,19,8,19,22v0,5,-6,34,-16,89v-10,55,-19,92,-27,111v-8,19,-18,35,-31,46v-13,11,-28,17,-42,17r-7,0v-12,0,-18,-4,-18,-12xm76,-252r0,-7r0,-4v0,-6,2,-12,7,-17v5,-5,10,-8,17,-8r4,0r6,0v10,0,15,2,15,8r1,4r0,6v0,8,-2,15,-7,21v-5,6,-10,8,-15,8v-2,1,-4,1,-5,1r-5,0v-12,0,-18,-4,-18,-12","w":120},"k":{"d":"27,-13r0,-4v0,-7,2,-20,7,-41v5,-21,8,-44,13,-70v5,-26,10,-52,16,-76v6,-24,9,-40,9,-48r-4,-24v0,-13,10,-19,28,-19r6,0v6,0,11,1,13,3v2,2,4,6,4,10v0,4,-5,26,-15,67v-10,41,-16,66,-16,76v0,4,2,5,6,5v4,0,14,-8,29,-24v15,-16,27,-28,34,-33v7,-5,16,-8,26,-8v10,0,15,1,15,4r0,3v0,5,-7,14,-21,26v-14,12,-25,22,-32,30v-7,8,-10,17,-10,24v0,7,7,24,20,52v4,8,9,17,17,26v8,9,12,14,12,16v0,2,-2,4,-7,7v-5,3,-11,5,-20,5v-9,0,-17,-4,-22,-11v-5,-7,-12,-21,-21,-41v-9,-20,-15,-31,-21,-31v-5,0,-10,6,-15,18v-2,5,-4,14,-7,26v-3,12,-5,21,-8,26v-5,10,-14,15,-25,15v-7,0,-11,-3,-11,-9","w":216},"l":{"d":"26,-28v0,-1,7,-38,22,-111v15,-73,23,-112,23,-116v0,-4,-1,-9,-4,-15v-3,-6,-4,-11,-4,-13v0,-10,12,-16,37,-16r6,0v8,0,12,4,12,13v0,6,-7,41,-22,105v-15,64,-22,105,-22,124v0,9,2,16,7,21v5,5,7,10,7,14v0,5,-3,9,-10,13v-10,5,-22,8,-33,8v-6,0,-10,-2,-14,-7v-4,-5,-5,-12,-5,-20","w":120},"m":{"d":"29,-42v0,-9,0,-20,3,-33v3,-13,5,-28,8,-46v3,-18,4,-27,4,-27v4,-13,10,-23,19,-30v4,-3,7,-5,11,-5v4,0,8,3,13,10v5,7,9,10,10,10v2,0,10,-4,24,-12v14,-8,28,-12,41,-12v13,0,23,4,30,11v1,1,3,4,6,9v3,5,6,7,8,7v2,0,8,-2,15,-7v7,-5,12,-9,16,-11v12,-7,25,-10,36,-10v11,0,21,4,28,12v7,8,10,18,10,29v0,11,-2,30,-7,57v-5,27,-7,47,-7,59r1,5r0,4v0,5,-4,7,-11,7v-7,0,-13,-4,-18,-11v-5,-7,-7,-17,-7,-28v0,-11,1,-23,3,-36v2,-13,3,-25,3,-33v0,-8,-2,-16,-6,-23v-4,-7,-8,-11,-14,-11v-12,0,-24,9,-34,28v-10,19,-18,40,-25,65v-7,25,-12,40,-17,45v-5,5,-15,7,-29,7v-8,0,-12,-4,-12,-11v0,-3,3,-21,10,-55v7,-34,11,-53,11,-58v0,-16,-5,-24,-14,-24v-15,0,-30,10,-44,29v-7,9,-17,33,-29,72v-9,28,-16,42,-22,42v-2,0,-5,-2,-7,-5v-5,-6,-7,-13,-7,-20","w":336},"n":{"d":"22,-25r0,-4v0,-5,3,-19,10,-42v7,-23,10,-40,10,-51r-3,-21v0,-11,3,-21,10,-31v7,-10,15,-14,22,-14v7,0,13,1,16,5v3,4,5,8,6,14v1,6,2,9,4,9v1,0,6,-4,15,-11v19,-15,37,-23,55,-23v13,0,23,4,31,12v8,8,11,19,11,34v0,8,-2,23,-7,45v-5,22,-7,37,-8,47r0,11v0,4,0,7,1,9v1,3,3,6,5,8v4,4,4,7,0,10v-6,4,-14,7,-24,7v-15,0,-23,-13,-23,-38v0,-5,2,-18,6,-41v4,-23,5,-38,5,-44v0,-21,-7,-33,-21,-33v-7,0,-15,4,-23,10v-8,6,-16,15,-23,26v-10,15,-19,41,-28,79v-3,12,-6,20,-9,25v-6,11,-14,16,-23,16v-4,0,-7,-2,-10,-5v-3,-3,-5,-6,-5,-9","w":233},"o":{"d":"26,-59r0,-10v0,-14,3,-29,10,-46v7,-17,16,-33,28,-46v12,-13,25,-23,39,-30v14,-7,26,-10,38,-10r6,0v17,0,31,5,43,16v12,11,17,26,17,44r0,9v0,14,-3,29,-10,46v-7,17,-16,32,-28,45v-25,27,-52,41,-82,41v-19,0,-34,-6,-45,-17v-11,-11,-16,-25,-16,-42xm69,-65v0,11,2,21,7,28v5,7,11,11,19,11r5,0v6,0,12,-2,20,-7v8,-5,15,-13,21,-23v15,-25,22,-49,22,-72r0,-10v0,-11,-3,-20,-8,-27v-5,-7,-12,-10,-20,-10v-16,0,-31,10,-44,30v-6,10,-12,22,-16,36v-4,14,-6,27,-6,38r0,6","w":219},"p":{"d":"-4,79v0,-4,1,-10,5,-20v6,-16,13,-38,20,-64r1,-5r7,-24v16,-60,24,-97,24,-113r-3,-21v0,-6,2,-11,7,-14v8,-6,18,-9,29,-9v2,0,6,2,10,4v4,2,6,3,8,3v2,0,9,-2,19,-7v10,-5,21,-8,34,-8v17,0,30,7,40,20v10,13,15,28,15,45r0,5r0,1v0,13,-3,28,-11,46v-16,37,-40,60,-70,72v-8,3,-19,5,-35,7v-16,2,-26,4,-30,6v-8,5,-12,19,-12,42v0,14,-2,24,-7,31v-7,10,-15,15,-25,15r-5,0v-14,0,-21,-4,-21,-12xm79,-47r0,1v0,5,2,10,7,14v5,4,10,5,16,5r5,0v6,0,12,-2,20,-7v8,-5,15,-13,22,-24v15,-23,23,-47,23,-72r0,-6v0,-10,-2,-19,-6,-25v-4,-6,-10,-9,-17,-9v-8,0,-16,2,-24,7v-8,5,-15,13,-22,25v-7,12,-13,27,-17,43v-4,16,-6,28,-6,35r-1,6r0,7","w":228},"q":{"d":"28,-63r0,-6v0,-14,3,-30,9,-46v6,-16,13,-31,23,-44v21,-27,45,-41,71,-41v8,0,16,2,24,4v1,0,3,2,8,4v5,2,8,3,11,3v3,0,8,-2,13,-5v5,-3,9,-5,13,-5v8,0,11,5,11,14r-19,76v-2,10,-3,10,-4,15r-3,16v-14,58,-21,96,-21,115v0,4,1,8,4,14v3,6,4,11,4,15v0,6,-2,11,-7,15v-4,3,-10,5,-18,5r-5,0v-9,0,-15,-2,-19,-4v-4,-2,-7,-6,-7,-10v0,-4,3,-15,10,-35v7,-20,11,-33,11,-40v0,-6,-4,-9,-12,-9v-1,0,-7,1,-17,4v-10,3,-20,4,-29,4v-15,0,-27,-6,-37,-17v-10,-11,-14,-25,-14,-42xm67,-65v0,12,2,20,6,26v4,6,8,9,14,9r2,0v6,0,14,-3,22,-8v18,-11,32,-34,43,-69v5,-15,7,-28,7,-39r0,-7v0,-6,-2,-12,-6,-16v-4,-4,-9,-5,-15,-5r-5,0v-16,0,-31,11,-46,34v-6,10,-12,22,-16,36v-4,14,-6,27,-6,39","w":226},"r":{"d":"21,-11v0,-7,5,-25,13,-55v8,-30,12,-54,12,-71v0,-2,-1,-6,-3,-10v-2,-4,-2,-10,-2,-17v0,-7,3,-14,10,-20v7,-6,14,-9,23,-9v9,0,15,2,19,7v2,2,3,6,4,13v1,7,2,10,5,10v1,0,4,-2,9,-7v14,-15,27,-22,41,-22v9,0,13,5,13,15v0,6,-2,11,-8,14v-6,3,-15,7,-26,9v-11,2,-20,7,-26,15v-14,19,-25,45,-31,82v-3,20,-6,33,-9,40v-5,11,-14,16,-26,16r-3,0v-10,0,-15,-3,-15,-10","w":164},"s":{"d":"9,-29v0,-6,1,-10,4,-14v3,-4,7,-6,12,-6v2,0,9,5,20,13v11,8,23,13,35,13v12,0,21,-2,27,-8v6,-6,9,-13,9,-20v0,-7,-4,-14,-12,-21v-3,-3,-11,-8,-25,-16v-14,-8,-24,-16,-31,-24v-7,-8,-10,-19,-10,-33v0,-14,7,-28,21,-39v14,-11,30,-17,49,-17r5,0v20,0,35,3,46,9v7,4,11,10,11,17v0,7,-2,12,-5,15v-3,3,-6,5,-9,5v-3,0,-11,-3,-21,-10v-10,-7,-19,-10,-29,-10v-10,0,-17,2,-23,7v-6,5,-9,11,-9,18v0,7,3,13,10,19v3,2,12,8,27,16v15,8,25,16,30,22v8,9,12,21,12,34v0,18,-7,32,-22,44v-15,12,-32,18,-53,18v-21,0,-37,-3,-50,-9v-13,-6,-19,-13,-19,-23","w":178},"t":{"d":"34,-45v0,-2,3,-20,9,-54v6,-34,10,-53,10,-58v0,-5,-2,-9,-8,-13v-6,-4,-9,-9,-9,-14v0,-5,4,-9,10,-11v12,-4,18,-6,19,-8v1,-2,4,-8,7,-18v3,-10,5,-16,8,-20v5,-8,12,-12,21,-12r3,0v6,0,10,4,10,12r-2,25v0,5,2,8,5,11v3,3,9,5,17,7v8,2,12,4,12,7r0,3v0,7,-8,13,-22,18v-14,5,-23,10,-26,16v-3,6,-7,19,-13,43v-6,24,-9,41,-9,51v0,10,3,16,7,20v4,4,11,5,21,5v10,0,15,3,15,10v0,7,-3,12,-9,16v-11,6,-23,9,-36,9v-13,0,-23,-4,-30,-11v-7,-7,-10,-19,-10,-34","w":147},"u":{"d":"30,-46r0,-5v0,-11,3,-28,9,-54v6,-26,8,-44,8,-54v0,-3,-1,-7,-4,-12v-3,-5,-4,-8,-4,-9v0,-6,9,-9,27,-9v7,0,13,2,16,6v3,4,5,11,5,20v0,9,-2,27,-7,52v-5,25,-8,43,-8,52v0,20,7,29,21,29v6,0,13,-2,21,-7v8,-5,16,-13,24,-24v11,-16,21,-41,29,-76v4,-16,7,-25,9,-29v6,-11,12,-16,20,-16v4,0,7,2,10,5v3,3,5,8,5,15r-6,30v0,0,-5,35,-5,46r3,29v0,16,-4,28,-11,36v-7,8,-15,11,-24,11v-9,0,-14,-3,-17,-8v-1,-1,-2,-4,-3,-9v-1,-5,-3,-7,-5,-7r-26,15v0,0,-30,14,-42,14r-5,0v-12,0,-21,-4,-29,-12v-8,-8,-11,-18,-11,-29","w":231},"v":{"d":"27,-173v0,-13,9,-19,29,-19v12,0,20,5,25,17v6,14,8,39,8,74v0,35,3,52,8,52v1,0,4,-2,7,-6v17,-18,30,-36,39,-53v9,-17,15,-33,20,-49v5,-16,7,-25,8,-26v5,-8,12,-12,23,-12v9,0,14,5,14,15v0,7,-3,15,-7,23v-20,40,-37,70,-51,90v-14,20,-28,37,-41,50v-9,9,-18,13,-28,13v-10,0,-16,-4,-19,-14v-2,-4,-3,-21,-5,-49v-3,-49,-9,-78,-18,-87v-9,-9,-12,-15,-12,-19","w":208},"w":{"d":"31,-174v0,-4,2,-8,6,-13v4,-5,8,-7,14,-7v14,0,24,6,28,16v2,5,3,27,3,65v0,38,3,57,8,57v5,0,15,-15,31,-46r22,-45v0,0,12,-26,12,-27v5,-9,12,-14,21,-14v9,0,15,4,17,14v2,10,4,32,4,67v0,35,2,52,7,52v6,0,15,-13,30,-39v7,-12,13,-23,17,-33r20,-51v5,-8,11,-13,18,-13v6,0,9,4,9,12v0,8,-2,18,-7,29v-27,59,-41,89,-43,92v-12,21,-21,34,-27,41v-6,7,-14,10,-23,10v-9,0,-16,-7,-21,-19v-5,-12,-10,-30,-14,-54v-4,-24,-8,-36,-10,-36r-28,42v-12,19,-22,31,-27,37v-11,13,-21,19,-29,19v-8,0,-13,-5,-15,-17v-15,-79,-23,-126,-23,-139","w":304},"x":{"d":"5,-11v0,-6,6,-13,20,-21v14,-8,25,-17,35,-28v18,-19,27,-32,27,-40v0,-8,-6,-20,-16,-38v-4,-8,-10,-15,-18,-21v-8,-6,-13,-12,-13,-16v0,-4,3,-7,7,-9v10,-5,21,-8,34,-8v8,0,14,4,20,11v3,3,7,10,13,22v6,12,9,18,10,18v3,0,9,-7,20,-21v11,-14,19,-22,23,-26v4,-4,10,-5,17,-5v7,0,13,1,17,4v4,3,6,4,6,6v0,6,-7,13,-24,22v-9,5,-20,14,-32,27v-12,13,-19,24,-19,33v0,9,6,23,19,43v4,7,11,14,19,19v9,6,13,10,13,15v0,4,-3,8,-10,11v-11,5,-21,9,-29,9v-10,0,-18,-4,-24,-12v-3,-4,-7,-12,-13,-25v-6,-13,-10,-19,-11,-19v-3,0,-12,8,-25,24v-13,16,-19,25,-20,26v-6,6,-14,9,-22,9v-16,0,-24,-4,-24,-10","w":211},"y":{"d":"-2,80v0,-6,8,-13,23,-21v15,-8,28,-17,38,-29v10,-12,15,-27,15,-44v0,-2,-4,-22,-12,-61v-8,-39,-12,-61,-14,-65v-6,-17,-9,-27,-9,-31v0,-4,2,-8,6,-12v4,-4,11,-7,20,-7v9,0,15,7,20,21v5,14,9,36,13,66v4,30,7,45,7,45v7,0,18,-18,35,-55v5,-11,11,-24,16,-42v5,-18,8,-28,9,-29v4,-8,11,-11,20,-11v9,0,13,3,13,10v0,9,-10,37,-31,83v-37,82,-73,138,-106,169v-16,15,-31,22,-43,22r-4,0v-11,0,-16,-3,-16,-9","w":207},"z":{"d":"9,-12v0,-6,4,-14,13,-25v9,-11,30,-33,62,-66v32,-33,48,-52,48,-56v0,-4,-7,-7,-21,-7v-14,0,-24,1,-30,2v-6,1,-12,3,-18,5v-5,2,-10,3,-14,3v-7,0,-10,-4,-10,-11v0,-11,3,-18,9,-23v6,-5,16,-7,27,-7r10,0r67,3r30,-2v6,0,8,4,8,10v0,9,-20,33,-60,75v-40,42,-59,65,-59,70v0,5,3,8,10,10v7,2,15,3,26,3v11,0,22,-2,33,-6v11,-4,19,-6,22,-6v7,0,10,4,10,13v0,9,-3,16,-10,21v-7,5,-17,8,-31,8r-11,0v-10,0,-22,-1,-39,-3v-15,-2,-28,-2,-38,-2r-10,0r-6,0v-5,0,-8,1,-9,1v-6,0,-9,-4,-9,-10","w":196},"{":{"d":"30,-115v0,-6,6,-11,18,-16v12,-5,19,-12,23,-21v4,-9,9,-27,13,-57v4,-30,10,-50,17,-60v7,-10,17,-18,28,-24v11,-6,23,-9,35,-9r5,0v5,0,7,2,7,5v0,6,-6,12,-18,20v-12,8,-20,14,-24,20v-6,10,-11,27,-15,53v-4,26,-9,44,-14,55v-5,11,-14,20,-27,27v-5,3,-7,4,-7,5v0,1,2,3,7,8v5,5,10,10,12,16v2,6,3,13,3,22v0,9,-2,22,-6,40v-4,18,-7,32,-7,43v0,11,4,20,11,28v12,12,17,21,17,25v0,4,-4,6,-12,6v-18,0,-31,-5,-40,-15v-9,-10,-14,-21,-14,-34v0,-13,4,-29,9,-50v5,-21,8,-36,8,-46v0,-10,-4,-18,-11,-24v-12,-10,-18,-16,-18,-17","w":159},"|":{"d":"66,57r0,-4r2,-78r3,-137v0,-71,2,-119,4,-143v1,-8,6,-11,15,-11r4,0v8,0,12,2,12,8r0,13r-4,181r-4,160r0,9r0,4v0,3,-1,5,-1,8v0,10,-3,16,-10,16r-8,0v-8,0,-13,-3,-13,-9r0,-17","w":156},"}":{"d":"-3,66v0,-5,5,-12,18,-20v13,-8,21,-16,24,-21v6,-10,12,-27,15,-52v3,-25,7,-42,11,-52v4,-10,9,-16,14,-20v5,-4,10,-8,15,-11v5,-3,8,-5,8,-6v0,-1,-2,-4,-7,-8v-5,-4,-8,-8,-11,-14v-3,-6,-4,-13,-4,-22v0,-9,2,-23,6,-42v4,-19,6,-32,6,-39v0,-12,-3,-22,-11,-30v-11,-12,-17,-21,-17,-26v0,-3,3,-4,8,-4r5,0v15,0,28,4,38,13v10,9,15,21,15,38v0,9,-3,25,-8,47v-5,22,-8,36,-8,44v0,8,2,13,5,17v3,4,8,8,14,13v6,5,9,7,9,9r0,4v0,4,-7,10,-21,16v-9,4,-15,10,-20,19v-5,9,-8,27,-12,57v-4,30,-10,52,-19,65v-6,9,-16,16,-27,21v-11,5,-23,9,-35,9r-5,0v-5,0,-6,-2,-6,-5","w":159},"~":{"d":"28,-102v0,-3,2,-9,6,-17v4,-8,12,-15,20,-22v8,-7,18,-10,30,-10v12,0,28,5,47,16v19,11,34,16,41,16v7,0,15,-5,24,-15v9,-10,15,-14,19,-14v7,0,10,3,10,11v0,11,-7,23,-22,36v-10,9,-20,13,-31,13r-5,0v-10,0,-25,-5,-44,-16v-19,-11,-33,-16,-41,-16v-8,0,-16,5,-25,15v-9,10,-15,15,-19,15v-7,0,-10,-4,-10,-12","w":240},"\u00a0":{"w":134},"\u00a1":{"d":"11,70v0,-19,16,-76,46,-172v5,-15,11,-22,20,-22r5,0v3,0,4,2,4,7r0,4v0,9,-2,24,-5,44r-8,51r-4,28v-2,11,-3,21,-4,29v-3,21,-6,33,-11,37v-5,4,-12,6,-21,6r-7,0v-10,0,-15,-4,-15,-12xm59,-177r0,-5v0,-1,1,-2,1,-3v0,-7,3,-13,9,-18v7,-5,14,-7,20,-7v6,0,12,2,17,6v5,4,7,8,7,15r0,7v0,8,-2,13,-8,19v-6,6,-12,9,-19,9r-5,0v-5,0,-9,-2,-14,-6v-5,-4,-7,-8,-7,-13v0,-1,-1,-3,-1,-4","w":127},"\u00a2":{"d":"33,-86r0,-5v0,-12,3,-24,8,-38v13,-32,39,-56,78,-74v10,-5,15,-8,18,-10v3,-2,7,-8,12,-18v5,-10,9,-14,14,-14v3,0,5,2,7,7v5,14,8,24,10,27v8,12,12,21,12,27v0,10,-3,15,-11,15r-17,-3v-8,0,-15,8,-20,22v-16,44,-23,73,-23,90v0,8,3,13,10,13v5,0,11,-2,20,-5v9,-3,14,-6,16,-6v4,0,5,2,5,5v0,5,-8,13,-26,24v-18,11,-28,17,-31,20v-3,3,-7,9,-13,20v-6,11,-11,17,-17,17v-3,0,-4,-3,-4,-8r1,-19v0,-7,-5,-15,-16,-23v-11,-8,-20,-17,-25,-26v-5,-9,-8,-22,-8,-38xm74,-86v0,9,2,17,6,25v4,8,9,11,15,11v2,0,4,-3,6,-9v22,-65,33,-105,33,-121v0,-2,-1,-3,-3,-3v-12,0,-24,10,-37,28v-13,18,-19,37,-19,55r-1,3r0,5r0,6","w":212},"\u00a3":{"d":"12,-12v0,-5,5,-12,14,-19v9,-7,16,-15,21,-23v10,-16,15,-32,15,-49v0,-7,-3,-13,-9,-16v-11,-5,-16,-9,-16,-12v0,-5,5,-11,13,-15v8,-4,13,-9,15,-12v2,-3,5,-11,8,-24v12,-47,35,-78,69,-92v12,-5,24,-8,35,-8r7,0v14,0,25,3,32,9v7,6,11,14,11,25v0,11,-4,16,-13,16v-1,0,-6,-2,-16,-6v-10,-4,-17,-6,-24,-6v-13,0,-25,6,-35,20v-10,14,-16,30,-16,49v0,7,2,11,5,14v1,1,9,4,24,9v8,3,12,7,12,13v0,5,-6,10,-18,14v-12,4,-20,8,-25,14v-5,6,-10,15,-17,29v-7,14,-10,26,-10,34v0,6,4,10,13,13v9,3,20,4,33,4v13,0,26,-3,38,-9v12,-6,20,-10,24,-10v5,0,8,5,8,14v0,9,-6,19,-17,28v-11,9,-25,14,-39,14r-6,0v-6,0,-21,-2,-44,-5v-23,-3,-46,-5,-69,-5v-15,0,-23,-3,-23,-8","w":230},"\u00a4":{"d":"27,-52v0,-3,5,-7,12,-15v7,-8,11,-13,11,-15v0,-2,-1,-7,-3,-12v-5,-14,-8,-27,-8,-39v0,-10,2,-18,5,-27r11,-30v0,-3,-4,-8,-10,-15v-6,-7,-9,-12,-9,-14v0,-2,2,-5,6,-10v4,-5,8,-7,10,-7v2,0,7,3,14,10v7,7,12,10,15,10r0,0v3,0,8,-1,14,-3r11,-4v9,-3,17,-3,26,-3v9,0,18,1,26,4v11,4,17,5,19,5v5,0,11,-3,18,-10v7,-7,12,-10,14,-10v2,0,6,2,10,6v4,4,7,7,7,10v0,3,-4,8,-11,15v-7,7,-11,13,-11,16r0,0v0,1,2,7,5,17v3,11,4,21,4,31v0,14,-3,27,-9,40v-4,8,-5,14,-5,17v0,3,3,9,9,16v6,7,9,13,9,15v0,2,-2,6,-6,10v-4,4,-8,7,-10,7v-2,0,-7,-3,-14,-10v-7,-7,-13,-10,-17,-10v0,0,-6,2,-18,5v-11,3,-22,4,-32,4v-8,0,-14,0,-21,-2v-1,0,-5,-2,-10,-4v-5,-2,-10,-3,-14,-3v-4,0,-10,3,-17,10v-7,7,-13,10,-15,10v-2,0,-5,-1,-9,-5v-4,-4,-7,-7,-7,-10xm71,-130v0,14,5,26,14,37v9,11,22,17,35,17r7,0v15,0,28,-7,39,-20v11,-13,16,-27,16,-43v0,-16,-5,-31,-14,-42v-9,-11,-21,-16,-34,-16r-8,0v-15,0,-27,6,-38,19v-11,13,-17,27,-17,42r0,6","w":233},"\u00a5":{"d":"41,-87v0,-3,7,-7,22,-10v15,-3,23,-9,23,-16v0,-3,-5,-8,-14,-13v-9,-5,-14,-10,-14,-14v0,-2,4,-8,11,-16v7,-8,11,-17,11,-26v0,-9,-5,-22,-13,-39v-2,-5,-6,-11,-11,-19v-5,-8,-8,-14,-8,-19v0,-2,1,-4,4,-6v8,-6,24,-10,45,-10v11,0,16,4,16,12r0,4r-1,5v0,6,3,17,7,32r16,60r2,4v5,0,22,-23,50,-70v8,-12,12,-20,13,-25r1,-6r0,-4v1,-3,2,-5,3,-7v4,-5,12,-7,23,-7v11,0,18,1,22,4v4,3,6,5,6,7v0,5,-6,13,-18,24v-12,11,-23,24,-34,41v-11,17,-17,29,-17,38v0,5,2,9,6,13v4,4,5,7,5,9v0,5,-6,10,-19,16v-13,6,-20,11,-20,16v0,5,6,8,17,12v10,3,15,6,15,11v0,2,-6,5,-17,8v-11,3,-20,6,-25,10v-8,6,-12,15,-12,27v0,3,1,8,4,13v3,5,4,9,4,11v0,5,-3,9,-10,12v-7,3,-19,4,-38,4v-19,0,-30,-2,-34,-6r-2,-4v0,-4,3,-11,10,-19v7,-8,11,-17,11,-29v0,-6,-3,-11,-8,-14v-3,-2,-8,-4,-18,-6v-10,-2,-14,-5,-14,-8","w":232},"\u00a6":{"d":"66,44r0,-2r0,-7r0,-4r0,-3r0,-4r0,-4r0,-3r0,-4r1,-4r0,-3r0,-4r0,-3r0,-4r0,-4r0,-3r0,-4r0,-3r0,-4r1,-2r0,-4r0,-3r0,-4r0,-3r0,-6r0,-4r0,-3r0,-4r0,-5r1,-10r0,-3r0,-2r0,-4v0,-5,3,-7,11,-7r13,0v5,0,8,3,8,10r0,9r0,2r0,4r-1,4r0,3r0,4r0,3r0,4r0,4r0,3r0,4r0,4r0,3r-1,4r0,4r0,3r0,32v0,20,-1,34,-2,41v-1,4,-4,6,-9,6r-16,0v-4,0,-6,-5,-6,-13r0,-7xm71,-162r0,-9r1,-1r0,-6r0,-4r0,-3r0,-4r0,-4r0,-3r0,-4r0,-3r0,-4r1,-4r0,-3r0,-4r0,-3r0,-4r0,-32v0,-20,1,-33,2,-40v1,-4,4,-7,9,-7r16,0v4,0,6,3,6,9r0,14r0,2r0,7r0,4r0,6r0,3r0,4r0,5r0,4r-1,3r0,4r0,4r0,3r0,4v0,41,0,64,-2,70v-1,3,-9,5,-22,5v-7,0,-10,-3,-10,-9","w":158},"\u00a7":{"d":"13,24v0,-3,1,-7,4,-10v3,-3,7,-5,13,-5v3,0,7,4,14,11v7,7,13,11,19,14v6,3,14,4,24,4v10,0,19,-4,25,-12v7,-8,10,-16,10,-24v0,-8,-4,-17,-11,-26v-4,-4,-13,-14,-29,-27v-16,-13,-27,-25,-34,-35v-7,-10,-10,-22,-10,-33v0,-19,7,-36,21,-51v9,-10,14,-17,14,-21r-1,-6r-2,-5v-1,-5,-1,-11,-1,-16v0,-9,2,-17,5,-24v10,-22,26,-37,48,-45v11,-4,23,-6,36,-6v13,0,24,3,35,9v11,6,16,15,16,27v0,10,-5,15,-16,15v-1,0,-8,-4,-18,-12v-10,-8,-20,-13,-30,-13v-10,0,-19,3,-26,10v-7,7,-10,14,-10,23v0,9,2,17,8,23v6,6,16,16,31,28v15,12,25,22,33,33v8,11,12,24,12,38v0,14,-5,28,-14,41v-14,20,-20,31,-20,32v0,1,1,5,2,10v1,6,1,12,1,17v0,9,-1,17,-4,24v-9,21,-25,37,-47,46v-11,5,-22,6,-33,6r-6,0v-14,0,-29,-3,-41,-10v-12,-7,-18,-15,-18,-24r0,-6xm72,-136v0,9,3,18,11,29v4,6,18,20,41,41v6,5,10,8,12,8r2,0v2,0,5,-1,9,-6v8,-8,12,-18,12,-27r0,-7v0,-11,-6,-23,-17,-35v-25,-28,-41,-41,-48,-41v-5,0,-10,4,-15,12v-5,8,-8,16,-8,23v0,1,1,2,1,3","w":214},"\u00a8":{"d":"54,-253r0,0r0,-2r1,-3v0,-5,2,-9,7,-14v5,-5,11,-7,17,-7v6,0,11,2,15,5v4,3,7,9,7,16v0,7,-2,13,-7,18v-5,5,-11,8,-18,8v-7,0,-13,-2,-16,-5v-3,-3,-5,-6,-5,-8v0,-3,-1,-6,-1,-8xm132,-250r0,-5r0,-4v0,-4,2,-8,7,-13v5,-5,10,-6,16,-6r5,0r5,0v0,0,5,2,8,5v3,3,5,8,5,15v0,7,-2,13,-6,18v-4,5,-9,8,-13,8v-2,1,-5,0,-8,0r0,0r-2,0r-4,0v0,0,-5,-2,-8,-5v-3,-3,-5,-7,-5,-10r0,-3","w":165},"\u00a9":{"d":"33,-136r0,-10v0,-16,3,-33,9,-50v6,-17,15,-32,27,-46v12,-14,27,-24,43,-32v16,-8,32,-12,49,-12r9,0r1,0v15,0,30,3,45,11v29,14,50,37,62,69v7,19,11,38,11,58r0,10v0,19,-4,37,-10,54v-14,36,-36,61,-67,75v-16,7,-32,11,-48,11r-4,0v-17,0,-33,-4,-49,-11v-16,-7,-29,-17,-41,-30v-12,-13,-20,-27,-27,-44v-7,-17,-10,-35,-10,-53xm53,-138v0,16,3,31,9,46v6,15,13,29,23,40v10,11,22,20,35,26v13,6,26,10,39,10r7,0v12,0,25,-4,39,-10v14,-6,26,-15,37,-28v20,-24,30,-52,30,-84r0,-8v0,-16,-3,-31,-9,-47v-6,-16,-14,-30,-25,-41v-11,-11,-21,-19,-34,-25v-13,-6,-25,-9,-37,-9r-8,0v-13,0,-25,3,-38,9v-27,13,-48,35,-59,66v-6,16,-9,31,-9,46r0,9xm85,-136r0,-9v0,-10,2,-21,6,-32v8,-22,23,-38,44,-46v9,-4,18,-5,26,-5r8,0v17,0,29,2,39,7v10,5,15,13,15,26v0,5,-3,8,-8,8v-2,0,-7,-4,-16,-11v-9,-7,-20,-10,-33,-10v-13,0,-23,6,-32,18v-9,12,-13,29,-13,50v0,21,5,36,15,47v10,11,22,15,37,15v8,0,17,-2,26,-8v9,-6,16,-9,20,-9v4,0,6,2,6,6v0,8,-6,15,-18,22v-12,7,-25,11,-39,11r-8,0v-20,0,-38,-7,-52,-22v-7,-7,-13,-17,-17,-27v-4,-10,-6,-20,-6,-31","w":323},"\u00aa":{"d":"39,-224v4,-11,10,-21,20,-32v14,-16,29,-24,45,-24v4,0,9,1,14,2v5,1,9,2,10,2r16,-4v9,0,14,3,14,9r0,4v0,1,-2,12,-7,32v-5,20,-7,33,-7,38v0,5,1,8,5,12v4,4,6,7,6,11v0,4,-1,7,-6,11v-6,5,-13,7,-21,7r-4,0v-5,0,-10,-4,-13,-11v-3,-7,-4,-10,-5,-10v-1,0,-4,2,-9,5v-13,8,-24,12,-34,12v-10,0,-18,-3,-23,-9v-6,-6,-8,-15,-8,-25v0,-9,2,-19,7,-30xm63,-193v0,11,4,16,12,16v12,0,23,-9,33,-25v10,-16,16,-33,16,-50v0,-7,-5,-10,-14,-10r-4,0v-9,0,-18,7,-28,21v-10,14,-15,28,-15,42r0,6","w":150},"\u00ab":{"d":"25,-102v0,-2,12,-16,36,-41v24,-25,39,-38,45,-38v6,0,10,3,10,7v0,5,-8,18,-26,38v-18,20,-27,32,-27,34v0,2,5,13,14,32v9,19,13,30,13,36v0,6,-4,9,-12,9v-4,0,-11,-8,-21,-22v-21,-31,-32,-49,-32,-55xm100,-102v0,-5,13,-20,38,-43v25,-23,39,-35,42,-35v6,0,10,2,10,7v0,5,-9,17,-26,37v-17,20,-26,32,-26,34v0,2,4,13,13,32v9,19,13,30,13,34v0,7,-3,10,-11,10v-5,0,-12,-7,-21,-21v-21,-33,-32,-51,-32,-55","w":194},"\u00ac":{"d":"29,-137v0,-11,2,-18,4,-19v2,-1,18,-1,48,-1r125,0v11,0,17,4,17,11r0,12v-1,8,-1,14,-1,18r-1,6r0,10r-1,9r0,12r-1,21v0,6,-1,10,-2,11v-1,1,-4,2,-10,2r-6,0v-6,0,-11,-3,-12,-9v-1,-2,-1,-15,-1,-36v0,-21,-2,-33,-5,-34v-3,-1,-27,-2,-72,-2v-45,0,-71,0,-75,-1v-4,-1,-7,-4,-7,-10","w":240},"\u00ad":{"d":"20,-91v0,-16,3,-26,9,-29v2,-1,20,-2,52,-2r39,0v6,0,9,1,9,4v0,11,-3,20,-7,27v-2,2,-3,3,-6,3r-87,1v-5,0,-9,-2,-9,-4","w":138},"\u00ae":{"d":"42,-146r0,-8v0,-17,2,-35,8,-51v6,-16,14,-30,24,-42v21,-26,46,-39,76,-39r12,0v14,0,26,3,39,10v25,14,42,35,52,63v7,20,10,37,10,52r0,8v0,34,-11,63,-33,86v-22,23,-49,35,-80,35r-11,0v-24,0,-46,-10,-66,-32v-21,-22,-31,-50,-31,-82xm59,-150v0,28,9,52,27,72v8,9,17,16,28,21v11,5,22,8,33,8r6,0v11,0,23,-3,34,-8v11,-5,21,-14,30,-24v9,-10,16,-22,21,-36v5,-14,8,-27,8,-41r0,-7v0,-13,-2,-26,-7,-39v-9,-25,-25,-43,-46,-54v-11,-6,-23,-9,-35,-9r-6,0v-11,0,-23,3,-34,9v-11,6,-21,14,-30,24v-9,10,-16,22,-21,36v-5,14,-8,28,-8,41r0,7xm101,-103r4,-13v1,-3,0,-9,0,-19r1,-25r1,-20r1,-19v0,-10,0,-17,-1,-21v-1,-4,-2,-7,-2,-7v0,-4,13,-6,37,-6r5,-1v18,0,32,3,41,10v9,7,13,17,13,32v0,8,-4,16,-11,26v-7,10,-10,14,-10,15r15,28v2,3,4,9,9,16v5,7,7,12,7,14v0,4,-3,5,-10,5v-7,0,-12,-1,-15,-3v-3,-2,-9,-12,-19,-29v-7,-12,-14,-18,-20,-18v-8,0,-13,7,-13,19v0,4,1,8,2,12v1,4,2,8,2,10v0,7,-4,10,-12,10v-8,0,-15,-1,-19,-3v-4,-2,-6,-6,-6,-13xm129,-173v0,6,2,9,6,9r8,0r1,0r11,-1r4,-1v6,0,12,-2,16,-7v4,-5,6,-10,6,-14r0,-2v0,-7,-3,-14,-8,-18v-5,-4,-13,-6,-24,-6r-1,0v-9,0,-14,1,-16,3v-2,2,-3,10,-3,24r0,13","w":291},"\u00af":{"d":"53,-252v0,-12,3,-19,9,-20v2,-1,21,-1,57,-1r53,0v10,0,16,1,16,4v0,9,-1,15,-4,18v-3,3,-7,4,-13,4r-106,0v-8,0,-12,-2,-12,-5","w":172},"\u00b0":{"d":"49,-229r0,-8v0,-13,5,-26,16,-38v11,-12,24,-18,38,-18r4,0r4,0r2,0v13,0,25,5,35,14v10,9,15,21,15,35r0,6v0,15,-6,28,-18,39v-12,11,-26,17,-43,17v-17,0,-30,-5,-39,-15v-9,-10,-14,-21,-14,-32xm74,-236v0,10,3,18,9,24v6,6,13,9,22,9r6,0v7,0,12,-4,18,-12v6,-8,9,-16,9,-25v0,-9,-3,-16,-8,-22v-5,-6,-12,-10,-19,-10r-7,0v-7,0,-13,3,-20,10v-7,7,-10,16,-10,26","w":158},"\u00b1":{"d":"25,-11r0,-4r0,-2v0,-10,1,-15,4,-17v3,-2,12,-2,27,-2r145,0v11,0,16,1,16,5r0,4r0,3v0,11,-4,17,-10,18v-3,1,-33,1,-88,1r-74,0v-14,0,-20,-2,-20,-6xm32,-138v0,-11,1,-16,3,-18v2,-2,15,-3,38,-3v23,0,35,-1,37,-3v2,-2,3,-12,4,-30v1,-18,2,-29,3,-31v1,-4,8,-6,20,-6v7,0,10,4,10,13r0,14r-2,29v0,7,2,11,5,12v3,1,14,2,35,2v21,0,33,0,35,1v2,1,4,5,4,13v0,8,-2,12,-5,14v-3,2,-17,2,-39,2v-22,0,-34,2,-36,4v-2,2,-2,12,-3,29v-1,17,-2,27,-3,29v-1,4,-7,7,-19,7v-5,0,-8,0,-9,-2v-1,-2,-2,-6,-2,-12v0,-11,1,-18,1,-21r0,-7v0,-7,1,-12,1,-14v0,-6,-2,-10,-6,-11v-2,-1,-13,-1,-32,-1v-19,0,-31,-1,-35,-2v-4,-1,-5,-4,-5,-8","w":237},"\u00b2":{"d":"29,-145r0,-2v0,-5,12,-18,34,-37v22,-19,37,-34,45,-43v8,-9,12,-18,12,-26v0,-8,-1,-13,-5,-17v-4,-4,-10,-6,-16,-6v-6,0,-14,3,-23,9v-9,6,-15,9,-18,9v-3,0,-5,-2,-5,-7v0,-10,5,-18,16,-25v11,-7,23,-11,38,-11v15,0,27,4,35,11v8,7,12,16,12,28v0,12,-5,24,-15,37v-4,5,-16,16,-34,31v-18,15,-28,24,-28,26v0,3,6,4,17,4r12,0v3,0,5,-1,7,-1r22,-2v4,0,7,2,7,7v0,8,-5,13,-15,18v-4,2,-13,3,-28,3r-12,0r-4,0r-12,0r-20,0v-15,0,-22,-2,-22,-6","w":146},"\u00b3":{"d":"30,-158v0,-7,3,-11,8,-11v4,0,10,2,17,6v8,4,16,6,25,6v9,0,16,-3,22,-9v6,-6,9,-13,9,-21v0,-8,-2,-13,-6,-17v-4,-4,-11,-7,-20,-9v-9,-2,-13,-5,-13,-10v0,-4,5,-7,15,-10v10,-3,17,-7,23,-12v6,-5,9,-10,9,-15v0,-11,-7,-17,-20,-17v-6,0,-13,1,-21,5v-8,4,-13,6,-14,6v-3,0,-5,-2,-5,-6v0,-8,4,-15,14,-21v10,-6,21,-8,34,-8r5,0v13,0,22,3,30,9v8,6,12,12,12,20v0,13,-6,26,-20,36v-8,6,-12,8,-12,9v0,1,3,3,8,6v5,3,9,8,12,13v3,5,4,11,4,19v0,14,-7,27,-21,38v-14,11,-31,16,-49,16r-8,0v-10,0,-19,-2,-27,-6v-8,-4,-11,-9,-11,-17","w":145},"\u00b4":{"d":"78,-224v0,-3,2,-7,6,-12v17,-21,29,-36,37,-43v8,-7,17,-10,27,-10v10,0,16,2,16,8r0,2v0,6,-8,15,-24,26v-32,22,-49,33,-51,33v-7,0,-11,-1,-11,-4","w":157},"\u00b5":{"d":"2,70v0,-11,7,-47,21,-108v14,-61,21,-99,21,-114v0,-15,2,-25,7,-29v5,-4,12,-6,22,-6r6,0v9,0,14,6,14,19v0,10,-3,30,-9,60v-6,30,-9,49,-9,56v0,14,8,21,22,21v5,0,11,-3,19,-8v8,-5,15,-12,22,-23v8,-11,14,-25,18,-43r15,-60v5,-12,13,-19,22,-19v3,0,6,2,9,5v3,3,5,9,5,18r0,6v0,2,-3,14,-7,36v-4,22,-6,37,-6,45v0,8,2,16,5,23v3,7,5,12,5,14v0,9,-4,17,-12,23v-8,6,-16,10,-24,10v-8,0,-15,-5,-20,-13v-5,-8,-10,-12,-15,-12v-5,0,-12,3,-22,9v-10,6,-20,11,-30,15v-10,4,-17,9,-22,14v-5,5,-8,15,-13,32v-5,17,-9,28,-12,32v-6,8,-12,13,-19,13r-4,0v-6,0,-9,-5,-9,-16","w":232},"\u00b6":{"d":"40,-185r0,-7v0,-12,3,-25,10,-38v7,-13,16,-22,28,-30v22,-14,54,-22,97,-22r9,0r8,1v30,0,45,3,45,8v0,5,-3,11,-10,20v-7,9,-12,16,-14,23v-2,7,-9,48,-21,126v-12,78,-18,124,-21,138v-3,14,-8,21,-14,21v-6,0,-11,-2,-13,-7v-1,-3,-2,-7,-2,-13v0,-10,2,-25,5,-46v5,-33,12,-73,18,-120v6,-47,10,-76,10,-86v0,-5,-4,-7,-12,-7v-8,0,-12,3,-13,9r-14,119v-10,66,-18,107,-23,124v-4,12,-12,18,-23,18v-5,0,-8,-6,-8,-17v0,-11,2,-28,4,-53r1,-7r5,-46r0,-7v0,-11,-3,-21,-10,-30v-2,-3,-8,-8,-16,-16v-8,-8,-13,-13,-16,-18v-7,-12,-10,-24,-10,-37","w":230},"\u00b7":{"d":"40,-117v0,-7,2,-14,7,-21v5,-7,12,-10,20,-10r6,0v7,0,13,2,17,7v4,5,6,11,6,19v0,8,-3,14,-8,20v-5,6,-11,10,-17,10r-5,0r-7,0v-4,0,-9,-3,-13,-7v-4,-4,-6,-11,-6,-18","w":115},"\u00b8":{"d":"19,80v0,-5,5,-9,15,-11v10,-2,17,-4,20,-7v3,-2,4,-5,4,-8v0,-4,-2,-9,-8,-15v-5,-5,-8,-9,-8,-11v0,-2,5,-9,13,-20v5,-6,10,-9,16,-9v6,0,8,1,8,3v0,2,0,4,-2,7v-2,3,-3,6,-3,8v0,1,3,4,9,11v6,7,9,15,9,21v0,10,-6,19,-16,27v-10,8,-22,12,-36,12r-7,0v-9,0,-14,-3,-14,-7r0,-1","w":157},"\u00b9":{"d":"48,-147v0,-4,4,-9,11,-14v7,-5,12,-12,15,-18v11,-28,16,-54,16,-80v0,-4,-2,-8,-8,-10v-10,-4,-15,-6,-15,-8v0,-4,2,-7,6,-9v20,-9,37,-14,51,-14r4,0v3,0,4,3,4,7v0,4,-3,23,-11,57v-8,34,-12,53,-12,59v0,6,3,11,7,16v4,5,6,8,6,11v0,7,-10,11,-29,11r-18,0v-18,0,-27,-2,-27,-8","w":142},"\u00ba":{"d":"35,-197r0,-8v0,-18,8,-35,22,-51v7,-8,15,-14,25,-19v10,-5,19,-7,27,-7r9,0v12,0,22,5,30,13v8,8,11,21,11,36v0,20,-7,39,-23,56v-7,8,-16,13,-26,17v-10,4,-19,6,-27,6r-4,0v-12,0,-21,-5,-30,-12v-9,-7,-14,-18,-14,-31xm68,-195v0,8,1,14,5,18v4,4,8,6,13,6v12,0,21,-8,29,-22v8,-14,12,-30,12,-47v0,-9,-1,-15,-5,-19v-4,-4,-8,-6,-11,-6r-5,0v-8,0,-16,6,-25,19v-9,13,-13,27,-13,44r0,7","w":144},"\u00bb":{"d":"20,-32v0,-5,9,-18,26,-38v17,-20,26,-31,26,-35v0,-2,-3,-7,-7,-16v-4,-9,-9,-18,-13,-28v-4,-10,-7,-18,-7,-23v0,-5,4,-7,12,-7v4,0,12,7,21,22v21,33,31,49,31,52r0,2v0,1,-11,15,-35,40v-24,25,-39,38,-45,38v-6,0,-9,-3,-9,-7xm94,-31r0,-2v0,-4,9,-16,26,-36v17,-20,26,-32,26,-36v0,-1,-4,-11,-13,-30v-9,-19,-14,-31,-14,-36v0,-6,4,-9,12,-9v4,0,11,7,21,22v21,33,32,51,32,53r0,2v0,5,-13,19,-38,43v-25,24,-39,35,-43,35v-6,0,-9,-2,-9,-6","w":195},"\u00bc":{"d":"42,-132r0,-2v0,-3,4,-7,10,-13v6,-6,11,-10,13,-16v9,-22,13,-44,13,-66r0,-5r0,-3v0,-6,-3,-11,-8,-13v-9,-5,-14,-8,-14,-10v0,-3,3,-6,8,-8v20,-9,37,-14,51,-14v4,0,6,3,6,9v0,0,-1,6,-3,16v-2,10,-3,16,-3,17r-2,7r-2,8r-1,5r0,3v-7,36,-11,56,-11,59v0,3,2,7,6,12v4,5,6,9,6,11v0,2,-1,5,-5,8v-4,3,-11,4,-20,4r-21,0v-15,0,-23,-3,-23,-9xm58,1v0,-2,3,-7,8,-14v67,-97,128,-183,185,-258v6,-8,14,-12,21,-12v7,0,11,1,11,3v0,3,-65,95,-194,273v-6,8,-13,12,-20,12v-7,0,-11,-2,-11,-4xm183,-43v-3,-3,-5,-6,-5,-9v0,-4,2,-8,6,-13v17,-21,42,-49,77,-82v8,-8,18,-11,29,-11v5,0,8,2,8,7r0,5v0,2,-3,12,-7,32v-4,20,-6,31,-6,34v0,3,2,7,6,14v4,7,6,11,6,13v0,2,-2,4,-3,6v-1,2,-3,5,-5,9v-2,4,-4,6,-6,8v-2,2,-2,3,-2,5v0,9,-3,16,-7,20v-4,4,-12,6,-22,6r-8,0v-9,0,-14,-5,-14,-16r4,-12v0,-1,-2,-3,-5,-6v-3,-3,-11,-5,-23,-5v-12,0,-20,-2,-23,-5xm204,-60v0,1,2,1,6,1r27,0v7,0,12,-1,13,-4v8,-24,12,-43,12,-56r0,-3r0,-1r-4,4r-10,11r-1,0r-9,11r-4,4v-20,20,-30,31,-30,33","w":334},"\u00bd":{"d":"46,-136r0,-1v0,-2,3,-6,10,-12v7,-6,12,-11,14,-18v9,-25,14,-50,14,-74v0,-7,-3,-11,-8,-14v-9,-4,-13,-8,-13,-11v0,-2,2,-4,6,-6v20,-9,38,-13,52,-13v4,0,6,2,6,6r0,4r-12,55r-1,5r-2,8r-3,15v-3,16,-5,27,-5,31v0,4,3,7,7,12v4,5,6,9,6,12v0,8,-9,11,-26,11r-20,0v-16,0,-25,-4,-25,-10xm60,-2v0,-1,2,-4,5,-9v41,-61,104,-147,189,-260v8,-11,15,-17,21,-17v9,0,13,2,13,6v0,8,-66,99,-197,272v-7,9,-13,13,-18,13v-9,0,-13,-1,-13,-5xm195,-8v0,-7,11,-20,33,-38v22,-18,37,-32,45,-42v9,-11,13,-20,13,-28v0,-7,-2,-13,-6,-16v-4,-4,-9,-5,-14,-5v-6,0,-14,3,-22,8v-11,7,-17,10,-19,10v-5,0,-6,-2,-6,-6v0,-10,5,-18,15,-26v10,-8,22,-11,37,-11v15,0,27,3,36,10v9,7,13,17,13,28r0,3v0,11,-5,22,-16,35v-4,4,-15,14,-33,30v-18,16,-28,25,-28,26v0,2,8,3,23,3r35,-1v3,0,6,2,6,7v0,13,-14,20,-41,20r-12,0r-4,0r-11,-1r-4,0r-19,0v-14,0,-21,-2,-21,-6","w":339},"\u00be":{"d":"27,-144v0,-8,4,-12,11,-12v1,0,6,2,14,7v8,5,16,7,24,7v8,0,15,-2,21,-8v6,-6,8,-13,8,-20v0,-7,-1,-13,-5,-17v-4,-4,-10,-6,-19,-8v-9,-2,-13,-6,-13,-11v0,-4,5,-8,14,-10v9,-2,16,-6,22,-11v6,-5,9,-9,9,-15v0,-11,-7,-17,-20,-17v-5,0,-11,1,-19,5v-8,4,-13,6,-15,6v-4,0,-6,-2,-6,-6v0,-8,5,-14,14,-20v9,-6,20,-9,33,-9r4,0v13,0,24,2,32,8v8,6,12,13,12,22r0,3v0,12,-8,24,-24,35v-5,3,-7,5,-7,6r8,6v11,6,16,17,16,31v0,14,-7,27,-21,37v-14,10,-29,15,-47,15r-5,0v-13,0,-23,-2,-30,-6v-7,-4,-11,-10,-11,-18xm67,1v0,-4,64,-94,191,-269v8,-10,14,-15,22,-15v8,0,12,1,12,3v0,4,-64,94,-192,270v-7,10,-15,15,-22,15v-7,0,-11,-2,-11,-4xm184,-51v0,-11,26,-42,80,-93v9,-9,21,-14,32,-14v5,0,8,3,8,7r0,2r-13,71v0,2,1,5,5,11v4,6,6,12,6,16r-8,15v-2,3,-3,5,-5,6v-2,1,-3,3,-3,5v0,18,-9,27,-28,27r-8,0v-9,0,-14,-6,-14,-17v0,-2,1,-3,2,-6v1,-3,2,-5,2,-6v0,-1,-3,-3,-6,-6v-3,-3,-11,-5,-23,-5v-12,0,-19,-1,-22,-4v-3,-3,-5,-6,-5,-9xm209,-60v0,1,1,1,2,1r35,0v5,0,8,-2,9,-4v9,-23,13,-43,13,-60r0,0v-1,0,-5,4,-11,11v-6,7,-16,17,-29,30v-13,13,-19,20,-19,22","w":336},"\u00bf":{"d":"8,25v0,-16,4,-31,13,-44v9,-13,18,-24,28,-32v10,-8,18,-15,25,-20v7,-5,12,-10,14,-13v2,-3,4,-9,6,-17v2,-8,3,-13,4,-15v3,-5,8,-7,14,-7v6,0,10,1,12,6v2,5,3,12,3,22v0,10,-4,23,-14,36v-3,4,-10,11,-22,22v-24,21,-36,41,-36,59v0,16,10,23,30,23v6,0,13,-3,24,-9v11,-6,18,-10,21,-10v6,0,9,5,9,13r0,3v0,11,-6,20,-19,28v-13,8,-28,12,-47,12v-19,0,-35,-5,-47,-16v-12,-11,-18,-25,-18,-41xm99,-179v0,-8,3,-15,8,-21v5,-6,11,-9,19,-9r5,0v6,0,12,2,16,6v4,4,6,8,6,13r0,2r0,6v0,6,-3,13,-8,19v-5,6,-11,9,-19,9r-5,0v-7,0,-12,-2,-16,-7v-4,-5,-6,-10,-6,-18","w":185},"\u00c0":{"d":"7,-35v30,-37,54,-72,73,-105r68,-118v7,-11,15,-18,21,-22v6,-4,13,-6,21,-6v9,0,14,7,18,23v1,5,6,39,13,102v7,63,12,97,13,103v1,6,4,11,9,17v5,6,7,11,7,14v0,7,-3,11,-9,14v-12,6,-26,9,-40,9r-6,0v-13,0,-19,-3,-19,-10v0,-2,0,-6,1,-10r2,-8v1,-8,2,-16,2,-23v0,-13,-3,-23,-8,-29v-4,-4,-13,-7,-28,-7v-32,0,-52,2,-57,6v-5,4,-12,15,-21,34v-9,19,-14,30,-14,34r2,7v0,4,-5,6,-15,6v-10,0,-20,-4,-30,-10v-5,-3,-8,-7,-8,-11v0,-3,2,-6,5,-10xm105,-119v0,1,4,3,11,3r45,0v12,0,18,-3,18,-7r0,-4r0,-8r-1,-7r0,-6v-4,-31,-6,-53,-6,-65v0,-12,-1,-18,-3,-18v-2,0,-6,4,-11,14v-7,14,-7,15,-17,33r-24,43v-8,14,-12,21,-12,22xm139,-361r0,-2v0,-8,6,-12,17,-12r1,0v9,0,17,4,24,10v7,6,18,19,32,37v4,5,5,9,5,13v0,4,-2,6,-6,6v-1,0,-2,-1,-3,-1v-8,0,-17,-4,-28,-12v-28,-22,-42,-35,-42,-39","w":270},"\u00c1":{"d":"7,-35v32,-41,55,-73,69,-96v21,-35,20,-36,43,-76v15,-27,26,-45,32,-54v6,-9,13,-15,19,-19v6,-4,12,-6,20,-6v9,0,15,7,19,23v3,12,6,45,12,99v6,54,10,87,12,98v2,11,6,20,11,25v5,5,7,10,7,13v0,7,-3,12,-10,15v-13,6,-26,9,-40,9r-5,0v-13,0,-19,-3,-19,-10v0,-2,0,-6,1,-10v3,-13,4,-24,4,-33v0,-15,-3,-25,-11,-30v-4,-2,-13,-4,-26,-4v-32,0,-50,2,-55,5v-5,3,-13,15,-22,33v-9,18,-14,30,-14,35r1,7v0,4,-4,7,-11,7r-4,0v-10,0,-19,-4,-29,-10v-5,-3,-8,-7,-8,-11v0,-3,1,-6,4,-10xm106,-119v0,2,6,3,19,3r28,0r2,-1r13,0r3,0v6,0,9,-2,9,-6r0,-6v-1,-4,-1,-7,-1,-9r-1,-7r0,-7v-1,-4,-1,-7,-1,-9v-1,-4,-1,-8,-1,-10r0,-6r-2,-20v-1,-4,-1,-8,-1,-10r0,-7v0,-12,-2,-17,-4,-17v-1,0,-11,18,-32,54v-21,36,-31,56,-31,58xm166,-314r0,-1v0,-6,14,-22,41,-46v11,-9,21,-14,32,-14v11,0,16,4,16,10r0,2v0,6,-12,16,-36,31v-24,15,-38,23,-44,23v-6,0,-9,-2,-9,-5","w":270},"\u00c2":{"d":"7,-35v33,-42,58,-79,75,-108v25,-44,26,-44,41,-72v10,-19,19,-33,26,-43v7,-10,14,-18,20,-22v6,-4,13,-7,21,-7v9,0,15,10,19,29v2,11,7,43,12,95v5,52,10,87,13,104v1,7,4,13,9,18v5,5,8,10,8,13v0,7,-5,13,-15,17v-10,4,-22,7,-37,7v-15,0,-23,-3,-23,-10v0,-2,1,-7,3,-15v2,-8,3,-15,3,-23v0,-15,-3,-25,-9,-32v-4,-4,-13,-7,-28,-7v-32,0,-51,2,-56,6v-5,4,-13,15,-22,33v-9,18,-13,29,-13,34r1,7v0,4,-5,7,-15,7v-10,0,-20,-4,-30,-10v-5,-3,-8,-7,-8,-11v0,-3,2,-6,5,-10xm106,-119v0,2,4,2,11,2r42,0r2,0r4,0r3,0v7,0,11,-2,11,-6r0,-6v-1,-4,-1,-8,-1,-10r0,-6r-1,-7v-1,-4,0,-8,0,-10v-1,-4,-1,-7,-1,-9v-1,-4,-1,-8,-1,-10v-1,-5,-1,-10,-1,-12v-1,-4,-1,-8,-1,-10r0,-5r-1,-6v0,-12,-1,-18,-3,-18v-1,0,-11,19,-32,55v-21,36,-31,56,-31,58xm130,-315v0,-3,11,-14,32,-32v21,-18,33,-27,38,-27r7,0v6,0,12,3,17,10v19,24,28,41,28,47v0,5,-3,7,-9,7v-1,0,-2,-1,-3,-1v-6,0,-14,-4,-23,-13r-18,-19v-1,0,-10,5,-25,16v-15,11,-26,17,-33,17v-7,0,-11,-2,-11,-5","w":270},"\u00c3":{"d":"7,-35v32,-41,55,-73,69,-96r43,-75v15,-27,26,-45,32,-54v6,-9,12,-16,18,-20v6,-4,13,-6,21,-6v9,0,15,6,18,20v3,14,7,48,13,102v6,54,10,87,12,98v2,11,6,20,11,25v5,5,7,11,7,14v0,7,-3,11,-10,14v-12,6,-25,9,-40,9r-5,0v-13,0,-20,-3,-20,-10v0,-2,1,-6,2,-10v3,-13,4,-23,4,-32v0,-15,-3,-26,-11,-31v-4,-2,-13,-3,-26,-3v-32,0,-51,2,-57,6v-4,3,-11,13,-20,31v-9,18,-14,31,-14,36r1,7v0,4,-5,6,-15,6v-10,0,-20,-4,-30,-10v-5,-3,-7,-7,-7,-11v0,-3,1,-6,4,-10xm106,-119v0,2,7,3,22,3r23,0r2,0r14,-1r3,0v6,0,10,-2,10,-6r0,-6v-1,-4,-1,-7,-1,-9r-1,-7r0,-6v-1,-4,-1,-8,-1,-10v-1,-4,-1,-8,-1,-10r-1,-10r0,-5r-1,-6r0,-5r-2,-17v0,-12,-1,-17,-3,-17v-1,0,-11,18,-32,54v-21,36,-31,56,-31,58xm129,-321v0,-11,4,-21,14,-29v10,-8,19,-12,27,-12v8,0,18,3,30,9v12,6,20,8,25,8v5,0,10,-2,16,-8v6,-6,11,-9,15,-9v4,0,6,2,6,6v0,8,-5,18,-13,27v-8,9,-17,13,-27,13r-3,0v-7,-1,-16,-4,-29,-9v-13,-5,-21,-7,-25,-7v-4,0,-9,2,-15,8v-6,6,-11,8,-15,8v-4,0,-6,-1,-6,-5","w":270},"\u00c4":{"d":"8,-35v33,-42,57,-77,73,-105r69,-117v7,-11,14,-19,20,-23v6,-4,13,-6,21,-6v8,0,14,7,18,23v1,4,6,36,13,98v7,62,11,96,12,103v1,7,3,12,6,16v8,11,11,18,11,19v0,7,-3,11,-9,14v-12,6,-25,9,-40,9r-6,0v-13,0,-19,-4,-19,-13r3,-15v2,-9,3,-16,3,-23v0,-13,-4,-23,-9,-29v-4,-4,-13,-6,-28,-6v-32,0,-52,1,-57,5v-5,4,-12,15,-21,34v-9,19,-14,30,-14,34r1,8v0,3,-4,5,-14,5v-10,0,-20,-3,-30,-9v-5,-3,-8,-8,-8,-12v0,-3,2,-6,5,-10xm106,-119v0,2,5,3,12,3r44,0v12,0,18,-3,18,-8r0,-3r0,-6r-1,-7r0,-5r-1,-6r0,-7v-3,-27,-5,-46,-5,-57v0,-11,-1,-16,-3,-16v-2,0,-6,6,-12,17r-30,55v0,0,-22,38,-22,40xm134,-333r0,-5v0,-6,2,-11,7,-16v5,-5,8,-7,12,-7r4,-1r5,0v4,0,8,2,12,5v4,3,6,7,6,11v0,1,1,4,1,9v0,5,-3,10,-8,15v-5,5,-10,7,-16,7r-4,0v-5,0,-10,-1,-14,-5v-4,-4,-5,-8,-5,-13xm214,-337r0,-1r1,-4v0,-4,1,-8,6,-13v5,-5,11,-7,18,-7v7,0,12,2,16,6v4,4,5,9,5,16v0,7,-2,13,-7,18v-5,5,-10,7,-15,7r-6,0r-5,0v0,0,-5,-2,-8,-5v-3,-3,-5,-9,-5,-17","w":270},"\u00c5":{"d":"2,-23v0,-6,4,-12,11,-18v10,-8,35,-46,75,-114v40,-68,62,-106,66,-112v10,-14,22,-20,36,-20r0,0v9,0,15,7,19,23v2,9,5,28,7,56v2,28,5,58,9,88v4,30,6,50,8,58v2,8,5,15,10,21v5,6,7,10,7,12r0,5v0,5,-6,9,-16,13v-10,4,-22,6,-34,6r-5,0v-13,0,-19,-4,-19,-12r3,-16v1,-8,2,-15,2,-24v0,-15,-3,-25,-10,-30v-3,-3,-18,-4,-42,-4v-24,0,-38,2,-43,7v-5,5,-11,17,-19,34v-7,17,-11,27,-11,31r0,9v0,4,-3,5,-10,5r-5,0v-14,0,-25,-3,-34,-10v-3,-3,-5,-5,-5,-8xm105,-119v0,1,3,2,10,2r44,0v13,0,20,-4,20,-9r0,-1r0,-2r-1,-6r-3,-33v-2,-17,-4,-32,-4,-45v0,-13,-1,-19,-4,-19r-31,54v0,0,-31,56,-31,59xm152,-340v0,-11,3,-20,10,-27v10,-10,21,-15,32,-15r7,0v9,0,18,3,25,9v7,6,11,14,11,22r0,7v0,2,-1,3,-1,4v0,7,-4,15,-12,23v-8,8,-19,13,-30,13r-7,0v-9,0,-17,-4,-24,-10v-7,-6,-11,-15,-11,-26xm173,-342v0,6,2,11,5,15v3,4,7,6,10,6r1,0r6,0v2,0,3,-1,4,-1v1,0,4,-1,9,-5v5,-4,7,-8,7,-13r1,-5r0,-2v-1,-5,-3,-10,-6,-13v-3,-3,-7,-6,-14,-6v-7,0,-13,3,-17,8v-4,5,-6,10,-6,16","w":267},"\u00c6":{"d":"3,-25v0,-3,9,-14,26,-31v8,-8,21,-24,39,-50v27,-39,26,-38,44,-62v26,-35,43,-60,51,-76v2,-4,4,-9,6,-16v2,-7,4,-12,6,-14v6,-8,36,-12,90,-12r32,0v27,0,45,3,53,7v8,4,12,11,12,21v0,10,-2,15,-8,15v-1,0,-5,-1,-10,-3r-5,-3r-6,-2v-11,-4,-24,-6,-38,-6v-14,0,-23,6,-31,18v-11,17,-16,36,-16,60v0,9,9,13,28,13v5,0,11,-1,16,-3r7,-3v6,-3,10,-4,13,-4r6,2v5,3,7,10,7,19v0,9,-1,19,-5,28v-4,9,-9,13,-15,13r-6,-2r-6,-5r-6,-3v-6,-3,-16,-5,-28,-5v-12,0,-22,6,-27,17v-5,11,-8,29,-8,56v0,9,3,15,8,19v5,4,16,6,31,6v20,0,39,-5,57,-15v10,-6,17,-9,19,-9v5,0,7,6,7,17v0,11,-4,19,-12,26v-8,7,-23,10,-45,10r-62,0r-7,0v-31,0,-49,-1,-54,-3v-6,-2,-9,-5,-9,-10v0,-3,2,-7,4,-12r7,-13v5,-11,8,-22,8,-33v0,-11,-2,-18,-6,-22v-4,-4,-12,-6,-24,-6v-12,0,-21,0,-29,2v-8,2,-17,7,-25,15v-8,8,-18,24,-31,46v-13,22,-20,33,-22,33v-12,0,-22,-4,-31,-11v-3,-2,-5,-6,-5,-9xm123,-132v0,1,3,2,9,2r28,0v18,0,28,-2,30,-6v2,-4,5,-25,11,-59v6,-34,10,-52,10,-54v0,-2,-1,-2,-2,-2v-2,0,-16,18,-44,57v-28,39,-42,59,-42,62","w":372},"\u00c7":{"d":"43,-109r0,-7v0,-23,5,-47,15,-70v10,-23,22,-44,38,-63v16,-19,35,-33,55,-43v20,-10,40,-15,60,-15r6,0v24,0,41,2,52,8v11,6,17,16,17,29v0,6,-1,12,-4,17v-3,5,-5,8,-7,8v-2,0,-6,-2,-12,-7v-6,-5,-12,-9,-20,-12v-8,-3,-19,-4,-33,-4v-14,0,-28,4,-41,12v-13,8,-25,20,-36,34v-22,30,-34,65,-34,105v0,10,2,20,5,31v7,21,20,36,40,44v10,4,20,7,31,7v13,0,27,-3,41,-8v8,-3,14,-5,20,-8v6,-3,10,-5,13,-5v5,0,7,4,7,11v0,2,-1,4,-4,9v-4,7,-15,16,-33,25v-18,9,-38,13,-60,13r-7,0v-14,0,-29,-3,-43,-9v-29,-12,-48,-33,-59,-63v-5,-13,-7,-25,-7,-39xm95,83v0,-2,5,-6,15,-11v10,-5,15,-13,15,-22v0,-3,-1,-6,-3,-9v-2,-3,-3,-5,-3,-7v0,-2,3,-6,8,-13v5,-7,10,-10,15,-10v5,0,8,1,10,3v8,11,11,18,11,23r1,3r0,5v0,10,-6,20,-17,29v-15,12,-30,19,-42,19v-7,0,-10,-3,-10,-7r0,-3","w":267},"\u00c8":{"d":"14,-20v0,-1,6,-7,16,-19v4,-4,7,-14,11,-27v12,-43,21,-81,26,-113v5,-32,7,-52,7,-58v0,-6,-1,-12,-4,-16v-6,-9,-9,-14,-9,-16v0,-6,6,-9,19,-11v37,-4,73,-6,111,-6r24,0v9,0,15,1,19,5v4,4,6,12,6,24v0,12,-3,17,-9,17v-1,0,-4,-2,-10,-6v-6,-4,-13,-7,-21,-9v-8,-2,-19,-3,-33,-3v-14,0,-25,5,-31,14v-5,7,-10,18,-15,33v-5,15,-8,25,-8,29v0,4,2,7,6,10v4,3,10,3,19,3v9,0,16,0,19,-1v3,-1,7,-4,13,-7v6,-3,11,-5,14,-5v10,0,15,6,15,19v0,13,-4,25,-9,36v-4,7,-8,11,-14,11v-1,0,-7,-3,-20,-11v-7,-4,-16,-6,-29,-6v-13,0,-22,5,-27,14v-8,14,-12,34,-12,60v0,11,2,19,7,23v5,4,15,6,32,6v17,0,30,-1,40,-5v10,-4,19,-7,26,-11v7,-4,12,-6,16,-6v4,0,6,2,6,7v0,5,-2,11,-6,19v-4,8,-8,14,-13,17v-8,6,-21,8,-42,8r-49,0v-33,0,-56,-2,-70,-4v-14,-2,-21,-7,-21,-15xm117,-360r0,-4v0,-7,5,-11,16,-11r5,1v9,0,18,4,27,15v20,23,31,37,31,43r0,1v0,4,-3,5,-7,5r-3,0v-8,0,-23,-10,-48,-29v-14,-11,-21,-17,-21,-21","w":241},"\u00c9":{"d":"15,-20v0,-1,5,-7,15,-19v4,-5,7,-14,11,-27v12,-43,21,-81,26,-113v5,-32,7,-51,7,-58v0,-7,-1,-12,-4,-16v-6,-9,-9,-14,-9,-16v0,-6,6,-10,19,-11v42,-4,81,-6,119,-6r16,0v8,0,15,1,19,5v4,4,6,12,6,24v0,12,-3,17,-9,17v-1,0,-5,-2,-11,-6v-6,-4,-13,-7,-20,-9v-7,-2,-19,-3,-33,-3v-14,0,-25,5,-31,14v-4,6,-9,17,-14,32v-5,15,-8,25,-8,29v0,4,2,9,5,11v3,2,9,3,19,3v10,0,16,-1,20,-2v4,-1,9,-4,14,-7v5,-3,9,-4,12,-4v10,0,15,6,15,19v0,13,-3,25,-8,36v-4,8,-9,11,-14,11v-1,0,-8,-3,-21,-11v-7,-4,-15,-6,-28,-6v-13,0,-23,5,-28,14v-8,14,-12,36,-12,67v0,7,2,12,7,16v5,4,15,6,32,6v17,0,31,-1,41,-5v10,-4,18,-8,25,-12v7,-4,12,-5,16,-5v4,0,6,2,6,7v0,5,-2,10,-6,18v-4,8,-9,14,-15,19v-6,5,-19,7,-40,7r-41,0v-45,0,-74,-2,-86,-5v-9,-2,-12,-7,-12,-14xm140,-314v0,-4,2,-8,5,-11r2,-1r8,-9r4,-3r4,-5v11,-11,17,-18,18,-18v11,-9,21,-13,28,-13r2,0r4,0v9,0,14,2,14,8r0,4v0,4,-7,11,-20,20v-31,22,-52,33,-63,33v-4,0,-6,-2,-6,-5","w":241},"\u00ca":{"d":"15,-20v0,-3,2,-8,9,-14v7,-6,12,-14,15,-24v10,-32,18,-68,25,-108v7,-40,10,-63,10,-70v0,-7,-1,-13,-4,-17v-6,-9,-9,-14,-9,-16v0,-6,6,-10,19,-11v42,-4,81,-6,119,-6r8,0v14,0,23,1,27,5v4,4,6,12,6,24v0,12,-3,17,-9,17v-1,0,-5,-2,-11,-6v-6,-4,-14,-7,-21,-9v-7,-2,-18,-3,-32,-3v-14,0,-25,5,-31,14v-5,6,-10,18,-15,33v-5,15,-8,25,-8,29v0,4,2,8,5,10v3,2,10,3,20,3v10,0,17,-1,20,-2v3,-1,7,-4,13,-7v5,-3,11,-4,15,-4v3,0,6,1,8,3v3,2,5,8,5,19v0,11,-4,22,-9,33v-4,8,-9,11,-14,11v-1,0,-7,-3,-20,-11v-7,-4,-16,-6,-29,-6v-13,0,-22,5,-27,14v-8,14,-12,34,-12,60v0,11,2,19,7,23v5,4,15,6,32,6v17,0,30,-1,40,-5v10,-4,19,-8,26,-12v7,-4,12,-5,16,-5v4,0,6,2,6,7v0,5,-2,11,-6,19v-4,8,-8,14,-13,17v-8,6,-24,8,-50,8r-33,0v-45,0,-74,-2,-86,-5v-8,-2,-12,-7,-12,-14xm105,-315v0,-3,10,-14,31,-32v21,-18,34,-27,39,-27r5,0v6,0,11,2,15,6v4,4,9,13,18,27v9,14,14,21,14,22r0,3v0,4,-4,6,-12,6v-5,0,-13,-5,-22,-13v-1,-1,-3,-5,-9,-11v-6,-6,-9,-9,-10,-9v-2,0,-11,6,-25,17v-14,11,-25,16,-33,16r-2,0v-6,0,-9,-2,-9,-5","w":241},"\u00cb":{"d":"16,-21v0,-1,5,-6,15,-18v4,-5,7,-14,11,-27v10,-38,19,-74,25,-108v6,-34,9,-55,9,-62v0,-7,-1,-13,-4,-17v-6,-9,-10,-15,-10,-17v0,-6,6,-10,19,-11v42,-4,81,-6,119,-6r16,0v8,0,15,2,19,6v4,4,6,11,6,23v0,12,-3,17,-9,17v-1,0,-4,-2,-10,-6v-6,-4,-13,-7,-21,-9v-8,-2,-19,-2,-33,-2v-14,0,-25,5,-31,14v-5,7,-10,18,-15,33v-5,15,-7,25,-7,29v0,4,2,7,5,9v3,2,9,4,19,4v10,0,17,-1,20,-2v3,-1,8,-4,14,-7v6,-3,10,-5,13,-5v10,0,14,7,14,20v0,13,-3,24,-8,35v-4,8,-9,12,-14,12v-1,0,-7,-4,-20,-12v-7,-4,-16,-6,-29,-6v-13,0,-22,5,-27,14v-8,14,-12,36,-12,67v0,7,1,13,6,17v5,4,16,5,33,5v24,0,45,-5,64,-15v8,-4,14,-7,18,-7v4,0,5,2,5,6v0,5,-2,12,-7,21v-3,7,-8,13,-14,18v-6,5,-19,7,-40,7r-41,0v-38,0,-63,-2,-77,-4v-14,-2,-21,-8,-21,-16xm108,-337v0,-7,3,-13,8,-18v5,-5,11,-8,17,-8r4,0v2,0,3,1,5,1v2,0,5,2,8,5v3,3,5,7,5,12r0,6v0,5,-2,10,-6,15v-4,5,-10,8,-17,8r-5,0v-5,0,-9,-1,-13,-5v-4,-4,-6,-9,-6,-16xm188,-334r0,-5v0,-6,3,-12,8,-17v5,-5,11,-7,18,-7v7,0,13,2,16,6v3,4,5,9,5,15r0,1r0,2r0,3v0,4,-3,9,-7,13v-4,4,-8,7,-12,7v-2,1,-5,0,-10,0v-5,0,-9,-2,-12,-5v-3,-3,-5,-7,-5,-10","w":241},"\u00cc":{"d":"12,-14v0,-2,5,-8,17,-20v6,-6,11,-17,15,-31v1,-3,3,-16,8,-41r16,-79v6,-28,8,-46,8,-53v0,-7,-3,-14,-8,-19v-5,-5,-8,-10,-8,-14v0,-3,2,-5,5,-7v7,-5,21,-7,42,-7r4,0r9,0r13,-1v14,0,21,3,21,9v0,1,-6,8,-16,19v-6,7,-11,18,-14,35r-3,17r-5,22r-4,21r-15,68v-5,25,-8,41,-8,47v0,6,2,13,7,19v5,6,7,12,7,14v0,2,-2,4,-4,6v-5,5,-14,7,-27,7r-8,0r-4,0r-9,0v-27,0,-39,-5,-39,-12xm65,-360r0,-4v0,-7,6,-11,18,-11v16,0,35,16,56,47v4,6,5,10,5,12r0,1v0,4,-2,5,-6,5r-4,0v-8,0,-21,-7,-40,-22v-19,-15,-29,-24,-29,-28","w":142},"\u00cd":{"d":"13,-14v0,-2,5,-8,17,-20v6,-6,11,-18,15,-33v4,-15,10,-46,19,-94v9,-48,13,-75,13,-80v0,-5,-2,-10,-7,-16v-5,-6,-8,-11,-8,-14v0,-3,2,-6,7,-9v5,-3,15,-5,30,-5r5,0r8,0r9,0r13,-1v14,0,21,3,21,9v0,3,-5,9,-14,17v-5,5,-10,14,-13,25v0,1,-6,30,-19,89v-13,59,-19,92,-19,98v0,6,2,13,7,19v5,6,7,11,7,14v0,3,-2,6,-7,9v-5,3,-13,4,-24,4r-8,0r-8,0r-13,-1v-21,0,-31,-4,-31,-11xm91,-314r0,0v1,-3,3,-8,6,-12v11,-13,22,-24,34,-34v12,-10,23,-14,31,-14r4,0v9,0,14,3,14,9r0,2v0,6,-11,16,-35,31v-24,15,-40,23,-48,23v-4,0,-6,-2,-6,-5","w":142},"\u00ce":{"d":"13,-14v0,-2,5,-8,17,-20v5,-5,10,-16,14,-29v4,-13,11,-45,20,-96v9,-51,13,-78,13,-82v0,-4,-2,-10,-7,-16v-5,-6,-8,-11,-8,-14v0,-9,15,-14,46,-14r9,0r17,-1v14,0,21,3,21,9v0,3,-5,9,-14,17v-5,5,-10,13,-13,25v0,1,-6,30,-19,89v-13,59,-19,92,-19,98v0,6,2,13,7,19v5,6,7,11,7,13v0,9,-11,14,-31,14r-4,0r-4,0r-13,0v-26,0,-39,-4,-39,-12xm56,-315v0,-3,11,-14,32,-32v21,-18,34,-27,40,-27v8,0,15,3,20,8v2,2,7,10,16,24v9,14,14,23,14,24r0,2v0,4,-4,6,-11,6v-7,0,-14,-5,-22,-13v-12,-13,-19,-20,-21,-20v-2,0,-5,3,-12,8v-21,16,-36,25,-44,25r0,0v-8,0,-12,-2,-12,-5","w":142},"\u00cf":{"d":"14,-14v0,-2,6,-10,17,-21v5,-5,10,-14,14,-27v4,-13,10,-45,19,-96v9,-51,14,-78,14,-83v0,-5,-3,-11,-8,-17v-5,-6,-7,-10,-7,-11v0,-11,12,-16,37,-16r5,0r8,0r9,-1r13,0v14,0,20,3,20,9v0,3,-4,9,-13,17v-5,5,-9,11,-12,20r-29,136v-7,30,-10,48,-10,55v0,7,2,14,7,20v5,6,7,11,7,13v0,2,-2,5,-4,7v-5,5,-15,7,-31,7r-4,0r-4,-1r-9,0v-26,0,-39,-4,-39,-11xm60,-333r0,-6r0,-3v0,-4,2,-9,7,-14v5,-5,10,-7,17,-7v7,0,12,2,16,5v4,3,6,7,6,11r0,5v0,7,-2,12,-6,18v-4,6,-10,8,-17,8r-4,0v-5,0,-10,-1,-14,-5v-4,-4,-5,-7,-5,-12xm139,-337v0,-7,2,-12,7,-17v5,-5,11,-9,18,-9v7,0,13,3,16,6v3,3,5,6,5,9r1,5v0,7,-2,14,-6,19v-4,5,-9,8,-13,8r-3,0r-4,1r-1,-1r-4,0v-3,0,-6,-1,-10,-5v-4,-4,-6,-9,-6,-16","w":142},"\u00d0":{"d":"14,-10v0,-3,2,-7,8,-14v6,-7,10,-13,13,-21v13,-37,20,-64,20,-82v0,-4,-4,-7,-13,-9v-9,-2,-13,-6,-13,-12v0,-5,0,-9,3,-11v3,-2,8,-4,16,-5v8,-1,14,-3,16,-8v1,-2,3,-12,7,-30v4,-18,5,-31,5,-39v0,-8,-2,-14,-6,-21v-4,-7,-6,-11,-6,-12v0,-5,5,-8,15,-10v10,-2,29,-2,56,-2r22,0v43,0,77,10,99,30v22,20,33,47,33,81r0,6v0,22,-5,44,-14,66v-9,22,-22,41,-38,56v-16,15,-35,26,-56,34v-21,8,-47,12,-79,12r-12,0r-47,-2v-20,0,-29,-2,-29,-7xm85,-39v0,4,2,6,5,8v3,2,9,3,17,3r9,0v18,0,34,-3,48,-10v30,-14,51,-39,65,-76v6,-16,9,-33,9,-51r0,-12v0,-11,-2,-21,-5,-32v-11,-34,-36,-51,-78,-51v-13,0,-21,3,-24,8v-2,3,-5,17,-10,41v-5,24,-7,39,-7,42v0,5,8,7,23,8v15,1,23,2,26,3v3,1,4,4,4,9v0,5,-3,10,-9,12v-3,1,-12,2,-26,3v-14,1,-23,3,-26,8v-3,5,-8,19,-13,44v-5,25,-8,39,-8,43","w":294},"\u00d1":{"d":"14,-11v0,-6,4,-13,11,-21v7,-8,13,-19,17,-34v4,-15,10,-46,18,-93v8,-47,12,-74,12,-80v0,-6,-1,-13,-5,-21v-4,-8,-6,-13,-6,-17v0,-4,7,-5,21,-5v14,0,25,1,33,6v8,5,16,14,25,27v9,13,24,44,47,93r36,74v2,0,4,-2,5,-6v4,-12,9,-39,17,-79v8,-40,11,-64,11,-73v0,-9,0,-16,-1,-21r-3,-11v0,-6,3,-10,8,-12v5,-2,13,-3,24,-3v11,0,19,1,25,4v6,3,9,7,9,12v0,5,-3,10,-11,19v-8,9,-13,19,-17,30v-4,11,-11,46,-22,101v-11,55,-17,88,-19,97v-4,14,-10,21,-18,21v-4,0,-8,-2,-13,-5v-8,-5,-16,-15,-25,-31v-2,-4,-15,-34,-40,-87v-25,-53,-39,-80,-42,-80v-5,0,-9,11,-14,33v-15,68,-23,112,-23,131r3,23v0,5,-3,8,-9,11v-6,3,-17,4,-32,4v-15,0,-22,-2,-22,-7xm135,-321v0,-9,4,-18,13,-27v9,-9,18,-13,27,-13r5,0v4,0,13,2,26,8v13,6,22,8,26,8v4,0,9,-2,15,-8v6,-6,9,-8,11,-8r3,0v5,0,7,2,7,6v0,10,-5,19,-14,27v-9,8,-18,13,-29,13v-6,0,-16,-3,-28,-9v-12,-6,-19,-8,-24,-8v-5,0,-11,2,-17,8v-6,6,-11,9,-15,9v-4,0,-6,-2,-6,-6","w":299},"\u00d2":{"d":"32,-104r0,-9v0,-23,5,-46,14,-68v9,-22,21,-42,36,-58v15,-16,32,-30,51,-39v19,-9,39,-14,60,-14r5,0v29,0,52,10,70,28v10,10,17,21,23,36v6,15,9,29,9,43r0,9v0,24,-6,46,-15,69v-9,23,-21,42,-35,58v-14,16,-31,29,-50,38v-19,9,-38,14,-60,14r-10,0v-13,0,-26,-3,-39,-9v-24,-11,-42,-29,-51,-54v-5,-15,-8,-29,-8,-44xm82,-98v0,22,5,41,16,54v11,13,25,20,42,20v17,0,32,-4,45,-13v13,-9,24,-21,34,-37v10,-16,17,-33,22,-52v5,-19,9,-36,9,-52r0,-10v0,-23,-5,-41,-16,-55v-11,-14,-24,-20,-40,-20r-7,0v-12,0,-24,3,-36,10v-26,15,-46,43,-59,83v-7,21,-10,40,-10,58r0,14xm149,-361r0,-3v0,-7,5,-11,16,-11v11,0,21,4,30,13v22,22,32,37,32,44r0,2v0,4,-2,5,-6,5r-5,0v-7,0,-20,-7,-39,-22v-19,-15,-28,-25,-28,-28","w":301},"\u00d3":{"d":"32,-104r0,-9v0,-22,4,-44,13,-67v18,-45,48,-78,88,-98v19,-9,39,-14,60,-14r5,0v13,0,26,3,39,8v24,9,43,28,54,55v6,14,9,30,9,48r0,5v0,22,-5,43,-14,66v-18,46,-46,79,-86,99v-19,9,-39,14,-61,14r-4,0v-31,0,-56,-11,-75,-31v-8,-9,-16,-20,-21,-33v-5,-13,-7,-28,-7,-43xm82,-102v0,24,5,43,16,57v11,14,25,21,42,21r6,0v12,0,24,-4,37,-12v13,-8,23,-20,33,-34v10,-14,18,-32,24,-52v6,-20,10,-39,10,-57r0,-10v0,-22,-6,-40,-16,-54v-10,-14,-24,-21,-43,-21r-1,0v-15,0,-29,5,-42,13v-26,17,-46,46,-58,88v-6,20,-8,38,-8,54r0,7xm172,-315v0,-9,12,-24,39,-45v12,-10,24,-15,34,-15v10,0,15,3,15,9r0,3v0,4,-6,11,-19,20v-31,21,-50,32,-58,32r-3,1v-6,0,-8,-2,-8,-5","w":301},"\u00d4":{"d":"32,-104r0,-9v0,-20,4,-42,12,-65v8,-23,20,-43,36,-60v33,-36,71,-54,113,-54r5,0v30,0,54,11,73,31v9,10,16,21,21,35v5,14,8,30,8,45r0,5v0,21,-4,41,-12,63v-8,22,-19,41,-34,59v-15,18,-32,31,-52,41v-20,10,-39,15,-58,15r-14,0v-13,0,-27,-3,-40,-9v-27,-12,-44,-32,-53,-61v-4,-12,-5,-24,-5,-36xm82,-102v0,24,5,43,16,57v11,14,25,21,42,21r6,0v13,0,26,-5,38,-13v12,-8,24,-21,34,-36v10,-15,17,-33,23,-53v6,-20,9,-38,9,-53r0,-10v0,-22,-6,-40,-16,-54v-10,-14,-24,-21,-43,-21v-15,0,-30,4,-43,13v-13,9,-25,21,-35,37v-10,16,-18,33,-23,53v-5,20,-8,38,-8,53r0,6xm136,-316v0,-2,11,-11,31,-30v20,-19,33,-28,40,-28r5,0v6,0,10,2,14,6v4,4,10,12,19,26v9,14,14,22,14,24v0,5,-4,7,-11,7v-7,0,-16,-5,-26,-16v-10,-11,-16,-17,-17,-17v-1,0,-9,6,-24,17v-15,11,-27,16,-33,16v-8,0,-12,-2,-12,-5","w":301},"\u00d5":{"d":"31,-108r1,-5r0,-5v0,-20,5,-41,14,-63v9,-22,21,-42,36,-59v15,-17,33,-29,52,-38v19,-9,39,-13,59,-13r4,0v30,0,55,10,74,30v8,9,16,21,21,35v5,14,8,30,8,46r0,4v0,23,-5,47,-14,69v-9,22,-22,42,-36,58v-14,16,-31,29,-50,38v-19,9,-38,14,-56,14r-14,0v-13,0,-27,-3,-40,-9v-26,-11,-43,-32,-53,-62v-4,-12,-6,-25,-6,-40xm82,-101v0,24,5,44,16,57v11,13,25,20,42,20r6,0v12,0,25,-5,38,-13v13,-8,25,-20,35,-36v10,-16,18,-34,23,-53v5,-19,8,-41,8,-63v0,-22,-5,-40,-16,-54v-11,-14,-25,-20,-43,-20v-30,0,-55,16,-76,47v-11,16,-19,35,-25,55v-6,20,-8,38,-8,53r0,7xm135,-320r0,-3v0,-10,5,-20,17,-30v7,-6,16,-9,25,-9v8,0,17,3,27,8v13,6,22,9,27,9v5,0,10,-3,16,-9v6,-6,10,-8,14,-8v4,0,7,1,7,4v0,12,-5,22,-14,30v-9,8,-19,12,-27,12v-8,0,-19,-3,-30,-9v-11,-6,-19,-8,-24,-8v-5,0,-11,3,-17,9v-6,6,-11,8,-15,8v-4,0,-6,-1,-6,-4","w":301},"\u00d6":{"d":"33,-104r0,-9v0,-22,5,-44,14,-67v18,-45,47,-78,87,-98v19,-9,39,-14,60,-14r5,0v16,0,30,3,43,9v25,12,43,32,53,62v4,12,6,25,6,40r0,5v0,22,-4,43,-13,66v-18,46,-47,79,-87,99v-19,9,-39,14,-60,14r-5,0v-31,0,-56,-10,-75,-30v-8,-9,-15,-21,-20,-34v-5,-13,-8,-28,-8,-43xm83,-98v0,22,6,41,17,54v11,13,24,20,41,20r7,0v12,0,24,-4,36,-12v26,-17,45,-45,57,-84v7,-21,10,-40,10,-58r0,-10v0,-23,-5,-41,-16,-55v-11,-14,-25,-20,-43,-20v-28,0,-53,15,-74,44v-9,12,-17,28,-24,49v-7,21,-11,41,-11,59r0,13xm141,-334r0,-5v0,-7,3,-13,8,-17v5,-4,12,-6,19,-6r6,0v0,0,6,2,9,5v3,3,5,8,5,15r-1,1r0,2r0,3v0,4,-2,8,-7,13v-5,5,-11,7,-19,7r-6,-1v-2,0,-4,-1,-8,-4v-4,-3,-5,-6,-5,-10xm221,-336v0,-6,2,-13,6,-18v4,-5,10,-8,15,-8r1,0r7,0v4,0,7,1,11,4v4,3,6,7,6,11r0,6v0,6,-2,11,-6,16v-5,6,-10,9,-17,9r-4,0r-6,0v0,0,-5,-3,-8,-6v-3,-3,-5,-8,-5,-14","w":301},"\u00d7":{"d":"34,-39r0,-4v0,-2,11,-13,33,-34v22,-21,33,-34,33,-36v0,-2,-9,-13,-28,-34v-19,-21,-29,-32,-29,-34v0,-2,3,-6,8,-11v5,-5,9,-8,12,-8v3,0,13,11,32,32v19,21,30,31,32,31v2,0,13,-10,35,-32v22,-22,35,-33,37,-33v2,0,5,2,10,7v5,5,7,8,7,10v0,4,-10,16,-32,37v-22,21,-33,33,-33,36v0,3,10,13,29,34v19,21,28,32,28,34v0,2,-2,6,-7,11v-5,5,-9,7,-13,7v-2,0,-13,-11,-33,-32v-20,-21,-30,-31,-31,-31v-1,0,-13,11,-36,33v-23,22,-35,32,-37,32v-2,0,-5,-2,-10,-6v-5,-4,-7,-7,-7,-9","w":239},"\u00d8":{"d":"32,-118v0,-20,4,-42,14,-64v20,-47,51,-80,93,-98v17,-7,36,-11,54,-11v12,0,24,2,36,5r26,7v4,0,10,-3,18,-10v8,-7,13,-10,15,-10v7,0,10,4,10,12v0,1,-2,7,-7,15v-5,8,-7,14,-7,17v0,3,0,7,2,12r2,5r2,4v1,3,3,9,6,17v3,8,4,18,4,30r0,6v0,24,-4,46,-13,70v-9,24,-21,45,-37,63v-16,18,-34,31,-53,39v-19,8,-38,12,-58,12v-13,0,-25,-2,-38,-5v-15,-4,-24,-5,-27,-5v-3,0,-9,4,-17,11v-8,7,-13,11,-16,11v-6,0,-9,-2,-9,-7v0,-5,3,-12,9,-22v6,-8,9,-14,9,-18v0,-4,-2,-10,-6,-18v-4,-8,-7,-18,-9,-26v-2,-8,-3,-22,-3,-42xm81,-102v0,23,2,34,6,34r2,0v2,0,26,-29,72,-86v46,-57,69,-87,69,-88v0,-5,-4,-10,-12,-14v-8,-4,-15,-7,-23,-7r-9,0v-12,0,-24,4,-36,12v-25,16,-45,42,-58,80v-8,22,-11,44,-11,64r0,5xm102,-43v0,5,4,9,13,13v9,4,18,6,26,6r4,0v13,0,26,-4,38,-11v25,-15,44,-42,57,-80v8,-22,11,-43,11,-64r0,-8v0,-21,-2,-31,-7,-31v-2,0,-22,22,-58,68r-84,105r0,2","w":301},"\u00d9":{"d":"44,-74r0,-8v0,-12,5,-38,13,-77v8,-39,12,-62,12,-70v0,-8,-1,-13,-4,-17v-6,-8,-9,-13,-9,-17v0,-6,8,-12,25,-17v7,-2,18,-4,33,-4v15,0,22,4,22,10v0,1,-2,5,-6,13v-4,8,-8,16,-10,27v-19,81,-29,134,-29,157v0,17,4,29,14,37v10,8,22,12,37,12v15,0,28,-4,40,-13v12,-9,21,-21,28,-37v7,-16,15,-44,24,-86v9,-41,13,-70,13,-87v0,-5,0,-10,-1,-13r-2,-4v-1,-3,-1,-5,-1,-7v0,-5,5,-7,17,-7v12,0,22,3,29,6v11,5,16,10,16,16v0,6,-3,10,-9,16v-6,6,-11,13,-14,20v-3,7,-7,26,-13,58v-6,32,-10,52,-12,59v-8,28,-16,49,-26,63v-10,14,-24,25,-41,33v-17,8,-36,12,-55,12v-19,0,-35,-3,-45,-7v-31,-12,-46,-35,-46,-68xm142,-361v0,-4,1,-6,5,-9v4,-3,8,-5,13,-5v7,0,16,4,25,11v4,3,13,14,28,34v5,7,7,11,7,15v0,4,-1,6,-5,6r-4,0v-6,0,-15,-4,-26,-12v-29,-19,-43,-33,-43,-40","w":291},"\u00da":{"d":"44,-74r0,-8v0,-12,5,-37,13,-77v8,-40,12,-64,12,-71v0,-7,-1,-12,-4,-16v-6,-8,-9,-14,-9,-18v0,-4,5,-9,16,-13v11,-4,22,-7,36,-7r8,0v14,0,20,4,20,10v0,1,-2,5,-6,13v-4,8,-8,16,-10,27v-19,81,-29,134,-29,157v0,17,4,29,14,37v10,8,23,12,38,12v15,0,29,-5,40,-14v11,-9,20,-21,27,-37v7,-16,15,-45,24,-86v9,-40,13,-69,13,-86v0,-6,0,-10,-1,-13r-2,-4v-1,-3,-1,-5,-1,-7v0,-5,6,-7,18,-7v12,0,21,2,28,5v11,5,16,11,16,16v0,5,-3,11,-9,17v-6,6,-11,13,-14,20v-3,7,-7,27,-13,59v-6,32,-10,51,-12,58v-8,28,-16,49,-26,63v-21,30,-56,45,-102,45r-1,0v-27,0,-48,-7,-62,-21v-14,-14,-22,-32,-22,-54xm169,-313v0,-4,3,-8,6,-11v9,-9,16,-17,21,-23v17,-18,32,-27,47,-27v10,0,16,3,16,9r0,1r-1,1v0,5,-7,12,-21,22v-30,21,-49,32,-58,32v-6,0,-10,-1,-10,-4","w":291},"\u00db":{"d":"44,-74r0,-8v0,-12,5,-37,13,-77v8,-40,12,-64,12,-71v0,-7,-1,-12,-4,-16v-6,-8,-9,-14,-9,-18v0,-4,5,-9,16,-13v11,-4,22,-7,36,-7r8,0v14,0,20,4,20,10v0,1,-2,4,-6,12v-4,8,-7,17,-10,28v-19,78,-29,130,-29,157v0,17,4,29,14,37v10,8,23,12,38,12v15,0,29,-5,40,-14v11,-9,20,-21,27,-37v7,-16,15,-44,24,-86v9,-42,13,-70,13,-88v0,-3,0,-7,-1,-11r-2,-4v-1,-3,-1,-6,-1,-7v0,-5,6,-7,18,-7v12,0,21,2,28,5v11,5,16,11,16,16v0,5,-3,11,-9,17v-6,6,-11,12,-14,19v-3,7,-7,27,-13,60v-6,33,-10,52,-12,58v-8,28,-16,49,-26,63v-21,30,-56,45,-102,45r-1,0v-27,0,-48,-7,-62,-21v-14,-14,-22,-32,-22,-54xm134,-314r0,-1v0,-2,10,-12,30,-31v20,-19,34,-28,40,-28r5,0v8,0,14,4,19,12v18,26,28,42,28,46v0,4,-4,6,-11,6v-7,0,-15,-4,-23,-13v-12,-13,-18,-19,-19,-19v-1,0,-9,5,-25,16v-16,11,-27,16,-33,16v-8,0,-11,-2,-11,-4","w":291},"\u00dc":{"d":"46,-74r0,-8v0,-9,5,-34,13,-76v8,-42,12,-68,12,-78v0,-3,-3,-7,-7,-13v-4,-6,-6,-8,-6,-9v0,-8,7,-14,20,-20v8,-4,21,-6,40,-6v14,0,20,3,20,10v0,0,-2,5,-6,13v-4,8,-9,20,-12,35v-18,80,-27,129,-27,147v0,18,4,31,14,39v10,8,22,12,36,12v30,0,51,-14,66,-44v8,-16,17,-45,26,-88v9,-42,14,-73,14,-91v0,-6,0,-10,-1,-13r-2,-4v-1,-3,-1,-5,-1,-7v0,-4,6,-7,18,-7v12,0,21,2,28,5v11,5,16,11,16,17v0,5,-4,11,-10,17v-6,5,-10,12,-13,19v-3,7,-7,27,-13,60v-6,33,-11,54,-14,64v-8,25,-15,44,-23,54v-11,15,-25,27,-42,35v-17,8,-38,12,-62,12v-24,0,-43,-6,-58,-18v-17,-14,-26,-32,-26,-57xm138,-337r1,-6v0,-2,2,-6,6,-11v4,-5,10,-8,17,-8v7,0,12,2,16,5v4,3,7,10,7,18r-1,0r0,5v0,3,-3,7,-7,12v-4,5,-10,7,-19,7r-1,0r-5,-1v-3,0,-6,-2,-9,-5v-3,-3,-5,-8,-5,-16xm218,-335v0,-8,2,-14,7,-19v5,-5,10,-8,16,-8r5,0v5,0,10,2,13,5v3,3,5,7,5,10r0,4r0,5r0,4v0,3,-3,7,-7,12v-4,5,-10,7,-16,7r-5,0r-5,0v0,0,-5,-2,-8,-5v-3,-3,-5,-7,-5,-11r0,-4","w":291},"\u00dd":{"d":"52,-257v-5,-4,-7,-9,-7,-12v0,-4,4,-7,12,-9v12,-4,28,-6,46,-6v12,0,18,3,18,10r-1,14v0,4,2,12,5,24r19,71v2,4,3,6,4,6v7,0,26,-28,59,-83v6,-10,9,-20,9,-30v0,-9,8,-13,23,-13r6,0v14,0,24,1,30,5v2,2,4,3,4,5v0,5,-8,13,-23,25v-7,6,-18,17,-29,33v-26,37,-44,63,-53,78v-9,15,-17,31,-22,49v-5,18,-8,31,-8,39v0,8,2,15,6,21v4,6,7,10,7,12v0,2,-2,5,-4,7v-5,5,-14,8,-28,8r-13,0r-12,-1v-20,0,-30,-3,-30,-9v0,-5,3,-11,10,-17v7,-6,12,-12,14,-19v8,-22,11,-44,11,-66v0,-22,-8,-55,-25,-100v-6,-15,-11,-26,-16,-32r-4,-4xm150,-313v0,-4,2,-8,5,-11r38,-38v11,-8,21,-12,31,-12v10,0,15,3,15,9r0,4v0,3,-18,16,-52,40v-11,8,-20,12,-27,12v-7,0,-10,-1,-10,-4","w":247},"\u00de":{"d":"9,-9r0,-4v0,-4,4,-9,12,-17v8,-8,13,-19,16,-32v7,-28,15,-62,22,-103v7,-41,10,-64,10,-71v0,-7,-2,-14,-6,-20v-4,-6,-6,-10,-6,-12v0,-5,4,-9,10,-11v6,-2,18,-3,37,-3r10,0v19,0,30,5,30,15v0,2,-3,5,-6,8v-3,3,-5,6,-5,8v0,8,3,14,8,16v2,1,7,2,15,3v36,5,59,19,70,41v5,9,7,19,7,31v0,26,-10,48,-30,66v-11,10,-22,16,-34,20v-12,4,-27,7,-44,9r-25,3v-10,5,-15,13,-15,24v0,3,2,6,6,11v4,4,5,9,5,12v0,4,-2,7,-7,9v-7,3,-15,6,-25,6r-10,0v-21,0,-34,-2,-38,-4v-4,-2,-7,-4,-7,-5xm92,-96v0,3,5,5,16,5r6,0v21,0,38,-6,51,-18v13,-12,20,-27,20,-45v0,-18,-4,-31,-12,-39v-8,-8,-21,-12,-39,-12r-2,1v-10,0,-17,2,-19,8v-2,6,-4,14,-6,25r-15,74r0,1","w":237},"\u00df":{"d":"-24,49v0,-6,7,-16,21,-28v8,-7,15,-18,20,-34v5,-16,9,-37,14,-63v5,-26,6,-45,7,-56v1,-11,2,-21,4,-30v5,-22,13,-43,24,-64v18,-34,41,-56,70,-65v8,-3,16,-4,25,-4v18,0,33,6,44,16v11,10,16,23,16,38v0,8,-2,15,-6,23v-4,8,-12,17,-23,28v-11,11,-17,22,-17,31v0,3,6,14,19,32v13,18,19,34,19,48v0,24,-8,43,-24,57v-15,14,-34,22,-56,22v-10,0,-18,-3,-24,-6v-6,-3,-9,-8,-9,-14v0,-6,2,-9,7,-9r6,2v4,1,8,1,11,1v11,0,21,-5,29,-15v8,-9,11,-20,11,-32v0,-12,-3,-26,-11,-41v-10,-21,-15,-34,-15,-40v0,-6,5,-20,17,-40v12,-20,18,-34,18,-41v0,-7,-2,-13,-6,-18v-4,-5,-8,-7,-13,-7v-19,0,-35,16,-48,49v-7,17,-16,56,-28,115v-12,59,-25,98,-35,118v-6,11,-12,21,-20,28v-8,7,-17,11,-26,11v-9,0,-16,-2,-19,-6","w":230},"\u00e0":{"d":"16,-59v0,-35,13,-67,37,-96v10,-11,20,-21,33,-28v13,-7,27,-11,43,-11v6,0,12,1,19,4v7,3,12,4,14,4v2,0,6,-1,12,-3v6,-2,10,-3,14,-3v10,0,16,6,16,18v0,3,-3,19,-10,48v-7,29,-11,49,-11,58v0,9,3,16,8,22v5,6,8,11,8,14v0,8,-4,14,-11,20v-7,6,-17,8,-30,8v-8,0,-15,-5,-20,-15v-5,-10,-7,-14,-9,-14v-3,0,-7,2,-14,7v-7,5,-11,7,-14,9v-11,7,-23,11,-37,11v-14,0,-25,-5,-34,-14v-9,-9,-14,-22,-14,-39xm60,-60v0,9,2,17,6,22v4,5,9,7,16,7v7,0,15,-3,24,-10v20,-15,34,-37,42,-66v5,-18,7,-32,7,-40r0,-5v0,-5,-2,-10,-6,-13v-4,-3,-9,-5,-15,-5r-5,0v-16,0,-31,10,-45,31v-6,9,-11,21,-16,35v-5,14,-8,27,-8,37r0,7xm97,-282v0,-7,6,-10,17,-10r3,0v8,0,16,3,23,11r12,18r6,10r3,5r1,2r1,1r0,1r1,1v4,5,6,10,6,12r0,3v0,3,-4,5,-10,5r-1,0v-7,0,-18,-8,-36,-26v-18,-18,-26,-28,-26,-33","w":220},"\u00e1":{"d":"16,-59r0,-4v0,-14,3,-31,10,-48v7,-17,16,-31,27,-44v23,-26,47,-39,72,-39r0,0v8,0,16,1,23,4v7,3,12,4,14,4v2,0,6,-1,12,-3v6,-2,11,-3,15,-3v10,0,15,6,15,17v0,3,-3,20,-10,49v-7,29,-11,49,-11,58v0,9,3,16,8,22v5,6,8,11,8,14v0,8,-3,15,-11,20v-8,5,-18,8,-30,8v-9,0,-16,-5,-20,-15v-4,-10,-7,-15,-9,-15v-3,0,-7,2,-13,7v-18,14,-35,21,-50,21v-15,0,-27,-5,-36,-14v-9,-9,-14,-22,-14,-39xm60,-60v0,9,3,16,6,21v3,5,8,8,13,8r3,0r1,0v5,0,13,-3,22,-9v9,-6,17,-15,25,-27v8,-12,13,-26,18,-43v5,-17,7,-29,7,-37r0,-5v0,-6,-2,-10,-7,-13v-5,-3,-10,-5,-18,-5v-16,0,-32,10,-46,31v-7,9,-12,22,-17,36v-5,14,-7,26,-7,36r0,7xm121,-227r0,0v1,-4,3,-9,8,-16v17,-21,29,-35,36,-41v7,-6,17,-8,27,-8v10,0,15,3,15,9r0,1r0,1v0,2,-11,13,-32,31v-21,18,-35,27,-43,27v-8,0,-11,-1,-11,-4","w":220},"\u00e2":{"d":"17,-59r0,-4v0,-14,3,-31,10,-48v7,-17,15,-31,26,-44v23,-26,47,-39,72,-39r1,0v8,0,15,1,22,4v7,3,12,4,14,4v2,0,6,-1,12,-3v6,-2,11,-3,15,-3v10,0,15,6,15,18v0,3,-3,19,-10,48v-7,29,-11,49,-11,58v0,9,3,17,8,22v5,5,8,10,8,14v0,8,-3,15,-11,20v-8,5,-18,8,-30,8v-9,0,-16,-5,-20,-15v-4,-10,-7,-15,-9,-15v-3,0,-7,2,-13,7v-18,14,-35,21,-51,21v-16,0,-28,-5,-36,-15v-8,-10,-12,-23,-12,-38xm61,-60v0,8,2,15,5,21v3,6,8,8,13,8r4,0v5,0,13,-3,22,-9v9,-6,17,-15,25,-27v8,-12,13,-26,18,-43v5,-17,7,-29,7,-37r0,-5v0,-6,-1,-10,-6,-13v-5,-3,-11,-5,-19,-5v-8,0,-16,3,-24,8v-8,5,-16,13,-22,23v-16,24,-23,48,-23,72r0,7xm86,-228r0,-1v0,-5,17,-23,51,-55v6,-5,13,-8,21,-8v8,0,13,3,18,10v17,25,26,43,26,52v0,5,-5,6,-14,6v-5,0,-12,-6,-21,-18v-9,-12,-14,-18,-15,-18v-1,0,-9,7,-23,19v-14,12,-25,18,-31,18v-8,0,-12,-2,-12,-5","w":220},"\u00e3":{"d":"17,-55r0,-12v0,-12,3,-27,10,-44v7,-17,16,-32,28,-46v22,-25,47,-37,75,-37v5,0,11,1,18,4v7,3,12,4,14,4v3,0,7,-1,12,-3v6,-2,11,-3,15,-3v10,0,16,6,16,18v0,2,-4,19,-11,48v-7,29,-10,48,-10,57v0,9,3,17,8,23v5,6,8,11,8,14v0,8,-4,15,-12,20v-8,5,-17,8,-29,8v-9,0,-15,-5,-20,-15v-5,-10,-8,-14,-10,-14v-3,0,-7,2,-13,6v-6,4,-10,8,-14,10v-11,7,-25,11,-38,11v-13,0,-25,-5,-34,-14v-9,-9,-13,-21,-13,-35xm61,-58v0,8,2,15,6,20v4,5,9,8,15,8v6,0,12,-3,20,-8v22,-14,37,-38,46,-71v5,-17,7,-30,7,-39v0,-8,-1,-13,-4,-16v-4,-4,-10,-6,-17,-6r-5,0v-7,0,-14,3,-22,8v-17,11,-29,30,-39,59v-4,12,-6,22,-6,30r-1,4r0,11xm83,-236v0,-9,5,-18,13,-27v8,-9,17,-14,27,-14v8,0,18,2,30,8v12,6,20,9,24,9v4,0,10,-3,16,-9v6,-6,10,-8,12,-8r3,0v4,0,6,1,6,4v0,11,-5,22,-14,30v-9,8,-18,12,-26,12v-8,0,-18,-3,-29,-9v-11,-6,-20,-8,-24,-8v-4,0,-10,3,-16,9v-6,6,-12,8,-16,8v-4,0,-6,-2,-6,-5","w":220},"\u00e4":{"d":"17,-59r0,-4v0,-15,3,-31,10,-48v7,-17,16,-31,26,-43v23,-26,47,-40,72,-40r1,0v8,0,15,1,22,4v7,3,12,4,14,4v2,0,6,-1,12,-3v6,-2,10,-3,14,-3v11,0,16,6,16,18v0,6,-3,22,-10,49v-7,27,-11,46,-11,60v0,7,3,14,8,20v5,6,8,10,8,13v0,8,-3,15,-11,20v-8,5,-18,8,-30,8v-9,0,-15,-4,-19,-14v-4,-10,-8,-15,-10,-15v-3,0,-7,2,-14,7v-7,5,-12,9,-14,10v-12,7,-25,10,-39,10v-14,0,-25,-5,-33,-15v-8,-10,-12,-23,-12,-38xm61,-59v0,9,2,16,5,21v3,5,8,8,13,8r3,0r1,-1v5,0,13,-2,22,-8v9,-6,17,-15,25,-27v8,-12,13,-26,18,-43v5,-17,7,-29,7,-36r0,-7v0,-6,-1,-10,-6,-13v-5,-3,-11,-5,-19,-5v-17,0,-32,12,-47,34v-15,22,-22,45,-22,69r0,8xm87,-250r0,-4r1,-5v0,-4,2,-8,6,-12v4,-4,8,-6,12,-6r6,-1v7,0,12,1,16,5v4,4,5,8,5,13r0,5v0,6,-2,12,-7,17v-5,5,-10,7,-16,7r-5,0v-5,0,-9,-2,-13,-6v-4,-4,-5,-8,-5,-13xm164,-251v0,-8,3,-15,8,-20v5,-5,10,-7,16,-7v6,0,12,2,16,5v4,3,7,9,7,16v0,7,-3,12,-7,17v-4,5,-8,8,-12,8v-3,1,-6,1,-9,1v-5,0,-9,-1,-12,-4v-4,-4,-6,-8,-6,-12","w":220},"\u00e5":{"d":"16,-63v0,-15,3,-31,9,-47v13,-33,33,-57,59,-72v14,-8,29,-12,45,-12v6,0,11,1,18,4v7,3,12,4,15,4v3,0,5,-1,7,-2v8,-3,14,-4,19,-4v10,0,16,6,16,18v0,3,-4,19,-11,48v-7,29,-10,51,-10,64v0,5,2,11,7,16v5,6,9,12,9,17v0,6,-5,12,-12,17v-7,5,-17,8,-29,8r0,0v-8,0,-15,-5,-20,-15v-5,-10,-8,-14,-10,-14v-3,0,-8,3,-17,9v-9,6,-17,11,-24,14v-7,3,-16,4,-29,4v-13,0,-24,-7,-33,-19v-6,-9,-9,-21,-9,-38xm60,-63v0,22,7,32,20,32v8,0,18,-4,27,-11v9,-7,16,-15,21,-23v10,-16,17,-32,21,-48v4,-15,5,-27,5,-35v0,-8,-1,-13,-4,-16v-5,-4,-11,-6,-17,-6r-5,0v-16,0,-31,10,-44,30v-7,10,-12,22,-17,36v-5,14,-7,28,-7,41xm106,-255r1,-7v0,-8,4,-17,13,-25v9,-8,19,-12,31,-12v12,0,22,2,29,9v7,7,11,16,11,28v0,12,-5,21,-14,29v-9,8,-19,12,-30,12r-4,0v-9,0,-19,-3,-26,-9v-7,-6,-11,-15,-11,-25xm128,-255v0,5,1,9,4,12v4,4,7,5,11,5r4,1r0,0v7,0,12,-3,16,-8v4,-5,6,-8,6,-10v0,-3,1,-6,1,-9r0,-3v0,-3,-3,-6,-6,-10v-3,-4,-8,-6,-14,-6v-6,0,-10,2,-15,7v-5,5,-7,10,-7,16r0,5","w":220},"\u00e6":{"d":"19,-54v0,-31,12,-59,36,-86v24,-27,51,-40,79,-40r10,1r29,-1r5,0r4,1v5,1,11,1,16,1v9,0,17,-1,26,-3v14,-4,24,-6,31,-6v14,0,23,3,31,11v8,8,12,16,12,24v0,18,-7,33,-20,43v-13,10,-31,17,-51,22v-20,5,-31,7,-32,8v-6,3,-9,9,-9,18v0,9,3,16,9,22v6,6,14,8,23,8v9,0,20,-3,31,-8v18,-8,29,-12,31,-12v2,0,3,1,3,3v0,9,-9,19,-28,30v-19,11,-36,16,-51,16v-15,0,-28,-5,-42,-13v-8,-5,-14,-11,-18,-17r-7,-10v-3,0,-9,4,-18,11r-14,11v-15,10,-29,15,-42,15v-13,0,-24,-4,-32,-13v-8,-9,-12,-21,-12,-36xm63,-52v0,8,1,13,4,17v3,4,8,6,13,6v5,0,11,-2,18,-7v21,-14,37,-39,50,-77v7,-20,11,-33,11,-37v0,-4,-2,-8,-5,-11v-3,-3,-10,-5,-18,-5v-8,0,-16,3,-24,9v-8,6,-17,13,-24,24v-17,27,-25,52,-25,74r0,7xm189,-108r0,2v0,3,2,4,4,4v14,0,29,-5,48,-15v13,-7,20,-16,20,-26r1,-2r0,-7v0,-1,-1,-3,-1,-5v0,-2,-1,-5,-4,-8v-3,-3,-8,-5,-12,-5r-4,0v-11,0,-22,7,-34,22v-12,15,-18,28,-18,40","w":298},"\u00e7":{"d":"28,-70r0,-8v0,-13,3,-28,10,-43v7,-15,15,-29,27,-42v12,-13,24,-22,38,-28v14,-6,26,-10,38,-10v12,0,21,3,29,8v8,5,13,10,13,15v0,5,-2,9,-5,13v-3,4,-5,6,-9,6v-1,0,-6,0,-14,-2v-8,-2,-15,-3,-19,-3v-4,0,-10,2,-18,6v-8,4,-15,10,-22,19v-12,16,-19,32,-19,50v0,36,17,53,49,53v8,0,16,-2,24,-5v8,-3,12,-4,13,-4v3,0,5,3,5,8v0,8,-7,17,-21,25v-14,8,-31,12,-51,12v-20,0,-36,-7,-49,-20v-13,-13,-19,-30,-19,-50xm45,83r0,-1r0,-1v0,-1,4,-5,14,-12v10,-7,15,-14,15,-21v0,-3,0,-5,-2,-8v-2,-4,-3,-7,-3,-7v0,-3,3,-8,8,-15v5,-7,9,-10,11,-10v7,0,11,1,13,3v8,11,12,20,12,27r0,4v0,9,-6,20,-19,31v-13,11,-26,17,-39,17v-7,0,-10,-2,-10,-6r0,-1","w":174},"\u00e8":{"d":"19,-67r0,-8v0,-13,3,-27,9,-42v13,-33,34,-56,64,-70v13,-6,27,-10,42,-10v15,0,27,4,37,12v10,8,15,18,15,31v0,21,-7,36,-22,46v-13,9,-37,15,-69,20v-13,2,-20,4,-22,5v-6,3,-9,9,-9,19v0,10,3,18,10,24v7,6,16,10,26,10v13,0,28,-5,46,-14v8,-4,13,-6,17,-6v4,0,5,1,5,5v0,9,-10,20,-28,30v-18,10,-35,16,-50,16r-9,0v-18,0,-33,-6,-45,-19v-12,-13,-17,-29,-17,-49xm71,-114v0,3,1,5,4,5r4,0r5,0r5,-1v13,0,28,-4,45,-14v9,-5,13,-12,13,-22r0,-4v0,-7,-2,-12,-6,-16v-4,-4,-8,-7,-14,-7r-5,0v-1,0,-2,1,-3,1v-10,0,-21,7,-32,21v-11,14,-16,27,-16,37xm84,-280r0,-3v0,-6,6,-9,19,-9r1,0v8,0,17,4,23,11v6,7,13,17,20,29v7,12,10,21,10,24v0,3,-3,5,-10,5v-4,0,-16,-8,-35,-24v-19,-16,-28,-27,-28,-33","w":190},"\u00e9":{"d":"19,-67r0,-8v0,-14,4,-28,11,-44v14,-32,35,-56,63,-69v13,-6,26,-9,41,-9v15,0,27,4,37,12v10,8,15,17,15,31v0,21,-7,36,-22,46v-13,9,-36,15,-68,20v-12,2,-20,4,-23,5v-6,3,-9,9,-9,19v0,10,4,19,11,25v7,6,16,9,26,9v13,0,27,-5,45,-14v8,-4,13,-6,17,-6v4,0,5,1,5,5v0,9,-9,20,-27,30v-18,10,-36,15,-51,15r-9,0v-18,0,-33,-5,-45,-18v-12,-13,-17,-29,-17,-49xm71,-114v0,3,1,5,4,5r14,-1v13,0,28,-4,45,-14v9,-5,13,-12,13,-22r0,-6v0,-6,-2,-11,-6,-15v-4,-4,-8,-6,-14,-6r-5,0v-1,0,-2,1,-3,1v-9,0,-18,7,-30,20v-12,13,-18,26,-18,38xm107,-226v0,-3,3,-9,8,-16v17,-22,30,-35,37,-41v7,-6,16,-9,26,-9v10,0,15,2,15,8r0,2v0,6,-8,15,-24,26v-32,22,-49,33,-51,33v-7,0,-11,0,-11,-3","w":190},"\u00ea":{"d":"19,-71v0,-15,4,-30,10,-46v6,-16,14,-29,25,-41v11,-12,22,-21,36,-28v14,-7,28,-11,44,-11v16,0,29,5,38,13v9,8,14,18,14,30r0,4v0,17,-6,29,-19,39v-8,6,-22,11,-43,17v-7,2,-16,4,-27,6v-11,2,-19,2,-21,3v-8,3,-12,9,-12,20v0,11,3,19,10,25v7,6,15,10,26,10v9,0,20,-3,32,-8v5,-2,10,-4,16,-7v7,-3,12,-5,15,-5v3,0,6,1,6,5v0,10,-12,21,-33,32v-17,9,-34,14,-53,14v-19,0,-34,-6,-46,-19v-12,-13,-18,-31,-18,-53xm71,-113v0,3,1,4,5,4r3,0r5,-1v6,-1,9,-1,11,-1v11,0,24,-4,38,-13v9,-6,14,-12,14,-19r0,-2r0,-8v0,-7,-3,-12,-7,-15v-4,-3,-9,-5,-16,-5v-11,0,-22,6,-32,17v-14,16,-21,29,-21,39r0,4xm73,-227v0,-3,10,-15,30,-35v20,-20,33,-30,40,-30r5,0v6,0,11,4,16,11v17,26,25,43,25,51v0,4,-4,7,-14,7v-4,0,-10,-6,-19,-17r-8,-11v-5,-6,-8,-8,-9,-8v-1,0,-9,6,-23,18v-14,12,-25,18,-32,18v-7,0,-11,-1,-11,-4","w":190},"\u00eb":{"d":"19,-71v0,-14,3,-29,9,-44v6,-15,14,-29,25,-42v11,-13,24,-23,38,-30v14,-7,28,-10,43,-10v15,0,28,4,38,12v10,8,15,18,15,31v0,21,-8,37,-23,46v-14,9,-35,15,-64,19v-14,2,-22,4,-24,5v-8,3,-12,8,-12,19v0,11,4,20,11,26v7,6,15,9,25,9v13,0,29,-5,47,-14v8,-4,12,-6,16,-6v4,0,6,1,6,5v0,9,-9,19,-27,30v-18,11,-35,16,-52,16r-8,0v-18,0,-33,-6,-45,-19v-12,-13,-18,-31,-18,-53xm71,-113v0,3,2,4,5,4r3,0r2,0r5,-1r2,0v14,0,28,-5,45,-14v9,-5,14,-12,14,-22r0,-5v0,-6,-1,-11,-5,-15v-4,-4,-9,-7,-15,-7r-4,0v-2,0,-2,1,-3,1v-9,0,-19,7,-31,20v-12,13,-18,25,-18,35r0,4xm75,-252v0,-8,2,-13,7,-18v5,-5,12,-8,20,-8r0,1r5,0v3,0,6,2,9,5v3,3,4,6,4,9r1,4r0,4v0,1,-1,3,-1,6v0,3,-2,7,-6,11v-4,4,-9,6,-13,6r-4,1v-7,0,-13,-2,-16,-5v-3,-3,-6,-7,-6,-9r0,-7xm152,-249r0,-5v0,-2,1,-3,1,-4v0,-4,1,-8,6,-13v5,-5,10,-6,16,-6r5,0v4,0,8,1,12,4v4,3,6,9,6,16v0,7,-3,13,-7,18v-4,5,-10,8,-16,8r-5,0v-5,0,-9,-2,-12,-5v-3,-3,-5,-6,-5,-9v-1,-2,-1,-4,-1,-4","w":190},"\u00ec":{"d":"26,-23r0,-3r24,-120v0,-6,-3,-10,-8,-13v-5,-3,-7,-7,-7,-12v0,-5,4,-10,14,-14v10,-4,21,-7,34,-7r5,0v8,0,11,5,11,14r0,8v0,2,-4,20,-11,54v-7,34,-11,56,-11,64v0,8,4,12,13,12v5,0,8,4,8,10v0,6,-5,12,-14,17v-14,8,-27,12,-40,12v-12,0,-18,-7,-18,-22xm40,-282v0,-7,6,-10,19,-10r1,0v8,0,16,4,22,11v6,7,13,16,20,29v7,13,10,20,10,21r0,4v0,3,-2,5,-7,5r-3,0v-6,0,-18,-9,-36,-27v-18,-18,-26,-28,-26,-33","w":117},"\u00ed":{"d":"26,-26r0,-3r24,-115v0,-7,-1,-11,-5,-13v-7,-4,-10,-9,-10,-14v0,-5,3,-10,10,-13v11,-5,25,-8,41,-8v9,0,13,4,13,13r0,8r-11,55v0,0,-11,57,-11,64v0,9,4,12,14,12v5,0,7,4,7,10v0,6,-5,12,-14,17v-14,8,-27,12,-40,12v-12,0,-18,-7,-18,-21r0,-4xm69,-239v17,-22,29,-35,37,-42v8,-7,17,-11,27,-11v10,0,16,3,16,9r0,1r0,1v0,4,-11,14,-33,32v-22,18,-36,27,-42,27r-3,0v-5,0,-8,-2,-8,-5v0,-3,2,-7,6,-12","w":117},"\u00ee":{"d":"27,-21r0,-5v0,-3,4,-23,12,-61v8,-38,11,-57,11,-57v0,-7,-1,-11,-5,-13v-7,-4,-10,-9,-10,-14v0,-5,4,-10,11,-13v11,-5,24,-8,38,-8r4,0v8,0,12,5,12,16v0,11,-4,31,-11,61v-7,30,-11,51,-11,65v0,7,4,10,13,10v5,0,8,3,8,9v0,6,-3,12,-11,17v-14,9,-27,13,-40,13r-6,0v-4,0,-7,-3,-10,-6v-3,-3,-5,-8,-5,-14xm28,-227v0,-6,17,-24,50,-55v7,-6,14,-9,21,-9r3,0v7,0,13,3,17,11v17,29,25,47,25,51v0,4,-4,6,-11,6v-7,0,-14,-4,-21,-14v-11,-14,-17,-22,-18,-22v-1,0,-10,6,-24,18v-14,12,-25,18,-32,18v-7,0,-10,-1,-10,-4","w":117},"\u00ef":{"d":"28,-22r0,-4r23,-120v0,-5,-2,-10,-7,-13v-5,-3,-7,-7,-7,-12v0,-5,3,-10,10,-13v11,-5,25,-8,40,-8v9,0,14,4,14,13r0,8r-11,54v0,0,-11,57,-11,64v0,9,4,13,14,13v4,0,7,3,7,9v0,6,-5,12,-14,17v-14,8,-27,12,-40,12v-5,0,-10,-2,-13,-5v-3,-3,-5,-9,-5,-15xm32,-250r0,-4v0,-6,2,-11,7,-16v5,-5,11,-8,18,-8v7,0,12,2,16,6v4,4,5,9,5,16v0,7,-2,12,-7,17v-5,5,-10,8,-16,8r-4,0v-5,0,-10,-2,-13,-5v-3,-3,-5,-7,-5,-10xm108,-250r0,-4v0,-2,1,-3,1,-4v0,-4,3,-8,7,-12v4,-4,9,-7,13,-7v2,0,4,-1,6,-1r1,1r1,0r3,0v3,0,7,2,10,6v3,4,4,8,4,12r0,4r0,6v0,0,-3,5,-7,10v-4,5,-8,7,-13,7v-1,0,-2,1,-5,1r-1,0v-6,0,-10,-2,-14,-6v-4,-4,-6,-8,-6,-13","w":118},"\u00f0":{"d":"19,-66r0,-6v0,-14,3,-29,9,-44v12,-30,31,-52,57,-66v13,-7,24,-10,35,-10v11,0,18,-1,22,-3v4,-2,6,-7,6,-14v0,-7,-3,-13,-9,-17v-6,-4,-12,-6,-17,-6v-5,0,-11,0,-19,1v-9,0,-13,-2,-13,-6v0,-3,3,-7,8,-12v8,-8,11,-14,11,-17v0,-3,-2,-8,-7,-15v-5,-7,-7,-12,-7,-14v0,-6,3,-10,10,-10r5,0v4,0,12,4,24,12v12,8,20,11,24,11v4,0,11,-1,18,-2v7,-1,12,-2,15,-2v6,0,9,2,9,7v0,1,-4,5,-11,13v-7,8,-10,15,-10,21v0,3,2,8,6,18v11,26,16,51,16,75r0,12v0,20,-3,38,-9,56v-12,36,-32,61,-60,75v-13,7,-27,10,-41,10r-5,0v-20,0,-37,-6,-49,-19v-12,-13,-18,-28,-18,-48xm62,-67v0,14,2,25,7,33v5,8,13,12,22,12v18,0,32,-11,44,-31v14,-24,21,-47,21,-72r0,-6v0,-13,-3,-23,-8,-29v-5,-6,-12,-9,-20,-9r-4,0v-14,0,-27,8,-38,24v-7,10,-13,22,-17,35v-3,10,-5,22,-7,37r0,6","w":210},"\u00f1":{"d":"23,-25r0,-5v0,-7,3,-22,10,-45v7,-23,10,-41,10,-55v0,-3,-1,-6,-4,-10v-3,-4,-4,-8,-4,-13v0,-8,4,-16,12,-23v8,-7,17,-11,24,-11v12,0,18,7,20,23v1,8,2,11,3,11v2,0,6,-3,14,-10v20,-18,40,-27,58,-27v13,0,23,3,30,11v7,8,10,17,10,27v0,10,-4,27,-9,52v-5,25,-8,42,-8,51v0,9,2,14,5,16v0,0,2,1,5,2v3,1,4,2,4,3v0,3,-2,6,-8,9v-12,7,-21,10,-29,10v-8,0,-15,-3,-19,-10v-3,-5,-4,-12,-4,-21v0,-9,2,-25,7,-48v5,-23,8,-39,8,-47v0,-18,-5,-26,-15,-26v-14,0,-28,10,-42,31v-12,17,-22,44,-31,82v-3,11,-5,19,-8,25v-5,11,-13,16,-21,16v-6,0,-11,-2,-14,-6v-3,-4,-4,-8,-4,-12xm81,-237v0,-10,5,-19,14,-27v9,-8,18,-13,27,-13r2,0v6,0,16,3,27,9v11,6,19,8,24,8v5,0,10,-2,16,-8v6,-6,10,-9,14,-9v4,0,7,2,7,5r0,3v0,9,-6,19,-17,29v-7,6,-15,9,-24,9v-8,0,-17,-2,-27,-7v-13,-6,-21,-10,-25,-10v-4,0,-11,3,-17,9v-6,6,-10,9,-13,9v-5,0,-8,-3,-8,-7","w":227},"\u00f2":{"d":"20,-73v0,-15,3,-31,9,-46v13,-32,33,-54,61,-68v12,-6,25,-10,38,-10r9,0v9,0,19,2,28,6v9,4,16,10,21,16v11,13,17,29,17,46r0,9v0,13,-3,28,-9,43v-6,15,-15,29,-25,40v-10,11,-22,21,-36,28v-14,7,-28,10,-42,10r-7,0v-19,0,-34,-6,-46,-19v-12,-13,-18,-31,-18,-55xm64,-65v0,12,3,22,8,30v5,8,12,11,20,11r6,0v5,0,11,-2,18,-6v7,-4,14,-13,21,-24v13,-22,20,-45,20,-70r0,-8v0,-11,-2,-21,-7,-29v-5,-8,-11,-11,-20,-11r-4,0v-8,0,-16,4,-24,10v-8,6,-15,14,-20,24v-12,23,-18,45,-18,67r0,6xm91,-280r0,-2v0,-7,6,-10,19,-10v9,0,17,4,23,11v20,24,30,41,30,51r0,2v0,4,-3,6,-8,6r-3,0v-6,0,-17,-9,-35,-27v-18,-18,-26,-28,-26,-31","w":208},"\u00f3":{"d":"20,-67r0,-9v0,-13,3,-27,9,-42v12,-30,29,-52,55,-67v14,-8,28,-12,43,-12r7,0v19,0,36,6,49,19v13,13,20,29,20,49r0,6r0,3v0,13,-4,28,-10,44v-7,16,-15,29,-26,40v-23,24,-49,37,-77,37r-6,0v-19,0,-35,-7,-47,-20v-12,-13,-17,-29,-17,-48xm64,-63v0,12,2,22,8,29v6,7,13,10,22,10v17,0,31,-11,44,-32v13,-21,19,-46,19,-73v0,-13,-2,-23,-7,-31v-5,-8,-12,-12,-21,-12r-3,0v-14,0,-27,8,-39,25v-7,10,-13,22,-17,36v-4,14,-6,26,-6,37r0,11xm112,-227v0,-2,2,-6,6,-12v13,-18,24,-31,34,-40v10,-9,20,-13,30,-13v10,0,16,3,16,9r0,0r0,1v0,4,-11,15,-33,33v-22,18,-36,27,-42,27r-3,0v-5,0,-8,-2,-8,-5","w":208},"\u00f4":{"d":"20,-67r0,-6v0,-30,11,-59,33,-85v10,-12,22,-22,36,-29v14,-7,27,-10,39,-10r6,0v20,0,37,6,50,19v13,13,19,30,19,49r0,6r0,3v0,13,-3,27,-9,42v-13,31,-32,54,-59,67v-15,8,-29,12,-41,12r-10,0v-18,0,-34,-7,-46,-19v-12,-12,-18,-29,-18,-49xm64,-63v0,12,3,21,8,28v5,7,13,11,24,11v6,0,12,-1,18,-5v15,-9,27,-28,36,-56v5,-14,7,-29,7,-43v0,-14,-2,-24,-7,-32v-5,-8,-11,-12,-20,-12r-4,0v-14,0,-26,8,-38,25v-7,10,-13,22,-17,36v-4,14,-7,26,-7,37r0,11xm79,-227v0,-3,9,-14,29,-34v20,-20,33,-30,39,-30r5,0v6,0,12,3,16,9v18,26,27,43,27,52v0,5,-5,7,-14,7v-4,0,-11,-6,-21,-18v-10,-12,-15,-18,-16,-18v-1,0,-9,6,-23,18v-14,12,-24,18,-30,18v-8,0,-12,-1,-12,-4","w":208},"\u00f5":{"d":"20,-66r0,-7v0,-14,3,-29,9,-44v6,-15,13,-29,24,-42v11,-13,24,-22,37,-28v13,-6,26,-10,38,-10r9,0v8,0,17,2,26,6v9,4,17,9,23,16v11,12,17,28,17,46r0,9v0,13,-3,28,-10,44v-6,16,-14,29,-25,40v-23,24,-50,37,-78,37r-6,0v-19,0,-34,-6,-46,-19v-12,-13,-18,-28,-18,-48xm64,-65v0,12,3,22,8,30v5,8,12,11,20,11r6,0v6,0,12,-2,19,-7v7,-5,14,-12,20,-23v13,-22,20,-46,20,-70r0,-8v0,-3,-1,-5,-1,-6v0,-10,-3,-18,-8,-24v-5,-6,-11,-10,-18,-10r-4,0v-8,0,-16,3,-24,9v-8,6,-15,15,-20,25v-12,23,-18,45,-18,67r0,6xm76,-237v0,-9,4,-18,13,-27v9,-9,19,-13,30,-13v6,0,15,3,27,9v12,6,21,8,25,8v4,0,9,-2,15,-8v6,-6,10,-9,13,-9v5,0,8,3,8,7v0,10,-6,19,-17,29v-7,7,-14,10,-22,10r-4,0v-6,0,-16,-2,-27,-8v-11,-6,-19,-9,-23,-9v-4,0,-10,3,-16,9v-6,6,-11,8,-14,8v-5,0,-8,-2,-8,-6","w":208},"\u00f6":{"d":"20,-66r0,-7v0,-15,3,-30,9,-45v6,-15,14,-28,24,-40v22,-26,49,-39,78,-39v31,0,53,13,66,39v4,9,6,19,6,29r0,9v0,13,-3,29,-10,45v-7,16,-15,30,-26,41v-24,24,-49,35,-76,35r-3,0r-4,0v-18,0,-33,-7,-45,-19v-12,-12,-19,-28,-19,-48xm64,-63v0,11,3,20,8,28v5,8,12,12,20,12v18,0,34,-10,45,-29v14,-24,20,-48,20,-72r0,-6v0,-12,-2,-22,-7,-30v-5,-8,-12,-12,-21,-12r-3,0v-8,0,-16,3,-23,9v-7,6,-13,12,-18,21v-14,23,-21,47,-21,71r0,8xm81,-249r0,-5v0,-5,2,-11,6,-16v4,-5,10,-8,17,-8r4,0v1,0,4,1,6,1v2,0,5,2,8,5v3,3,4,6,4,9r1,5r0,3r0,0r-1,5v0,4,-2,7,-7,12v-5,5,-10,7,-17,7v-7,0,-12,-2,-15,-5v-3,-3,-6,-7,-6,-10r0,-3xm158,-253r0,-1r1,-6v0,-2,2,-5,6,-10v4,-5,10,-8,17,-8v7,0,12,2,16,5v4,3,6,8,6,13r0,6v0,6,-2,11,-7,16v-5,5,-8,6,-12,6v-2,1,-5,1,-9,1v-4,0,-8,-1,-12,-5v-4,-4,-6,-9,-6,-17","w":208},"\u00f7":{"d":"32,-110r0,-6v0,-10,3,-16,7,-17v4,-1,26,-1,64,-1r114,0v6,0,9,3,9,9r0,2v0,12,-2,18,-7,19v-3,1,-26,1,-68,1r-73,0v-30,0,-46,-2,-46,-7xm102,-43v0,-9,2,-16,6,-20v4,-4,8,-7,12,-7v1,0,3,-1,6,-1v8,0,14,3,18,7v4,4,5,10,5,17v0,7,-2,13,-7,18v-5,5,-10,7,-18,7r-1,-1r-1,0r-3,0v-4,0,-7,-1,-11,-5v-4,-4,-6,-7,-6,-11r0,-4xm109,-187r0,-4v0,-2,1,-3,1,-4v0,-5,2,-9,7,-13v5,-4,11,-7,19,-7r1,1r1,0r3,0v3,0,6,2,10,6v4,4,6,9,6,16v0,7,-3,13,-7,18v-4,5,-9,8,-16,8r-5,0v-5,0,-10,-2,-14,-6v-4,-4,-5,-7,-5,-11","w":237},"\u00f8":{"d":"16,7v0,-2,2,-7,7,-14v5,-7,7,-12,7,-15v0,-3,-1,-6,-3,-10v-5,-11,-7,-25,-7,-40v0,-16,4,-33,11,-49v7,-16,16,-30,27,-42v11,-12,24,-20,38,-25v14,-5,29,-8,47,-8v5,0,10,0,14,1r6,1r3,0r6,1v3,0,7,-2,13,-7v6,-5,10,-7,12,-7v5,0,7,3,7,9v0,3,-1,8,-5,14v-4,6,-6,10,-6,13v0,3,1,6,3,9v5,10,7,23,7,39v0,16,-4,33,-12,51v-8,18,-18,32,-30,43v-12,11,-24,19,-36,24v-12,5,-27,7,-45,7v-5,0,-11,0,-18,-1v-7,-1,-11,-2,-13,-2v-2,0,-7,3,-13,8v-6,5,-10,8,-12,8v-6,0,-8,-2,-8,-8xm62,-64v0,6,1,10,2,10r1,0r41,-50v0,0,42,-52,42,-55v0,-3,-2,-6,-5,-9v-3,-3,-8,-4,-13,-4r-4,0v-5,0,-12,2,-20,6v-8,4,-15,12,-21,22v-15,24,-23,48,-23,71r0,9xm73,-32v0,2,2,4,6,7v4,3,7,4,11,4r7,0v14,0,26,-9,39,-27v8,-11,13,-24,17,-38v4,-14,5,-23,5,-26v0,-3,1,-5,1,-6r0,-8v0,-9,-1,-13,-2,-13v-3,0,-14,13,-34,40r-13,16v-1,2,-2,3,-3,4r-3,3v-1,2,-2,3,-3,4r-4,5r-24,32r0,3","w":210},"\u00f9":{"d":"29,-45r0,-5v0,-8,3,-27,9,-56v6,-29,9,-45,9,-49v0,-4,-2,-7,-6,-10v-4,-3,-6,-7,-6,-9v0,-2,0,-3,2,-4v9,-6,21,-9,33,-9r4,0v12,0,17,8,17,25v0,8,-3,25,-9,52v-6,27,-9,46,-9,55v0,9,2,15,5,18v3,3,7,5,11,5v4,0,10,-2,15,-5v10,-7,20,-17,28,-28v10,-14,20,-41,30,-79v4,-14,6,-22,8,-25v5,-10,12,-14,20,-14v3,0,5,1,8,5v3,4,5,9,5,16r0,5v0,2,-2,13,-6,33v-4,20,-6,35,-6,43v0,8,2,14,6,19v4,5,6,10,6,15v0,10,-4,19,-11,27v-7,8,-17,11,-29,11v-10,0,-16,-6,-19,-19v-2,-7,-4,-11,-6,-11v-2,0,-7,3,-15,9v-8,6,-15,9,-18,11v-14,8,-27,12,-37,12r-5,0v-10,0,-17,-4,-24,-11v-7,-7,-10,-16,-10,-27xm92,-280r0,-2v0,-6,5,-10,16,-10r5,0v8,0,14,4,20,10v1,1,4,5,8,11r20,32v2,4,3,7,3,12v0,3,-2,5,-7,5r-4,0v-6,0,-17,-8,-35,-26v-18,-18,-26,-29,-26,-32"},"\u00fa":{"d":"29,-45r0,-5v0,-8,3,-26,9,-56v6,-30,9,-46,9,-47v0,-5,-2,-9,-6,-13v-4,-4,-6,-7,-6,-9v0,-1,1,-2,2,-3v9,-6,22,-10,37,-10v12,0,17,9,17,26v0,8,-3,25,-9,52v-6,27,-9,45,-9,54v0,9,2,16,5,19v3,3,7,5,11,5v4,0,10,-3,15,-6v10,-7,19,-16,27,-27v8,-11,17,-29,24,-52v0,-1,2,-10,6,-25v4,-15,8,-25,9,-27v6,-10,12,-15,20,-15v3,0,5,2,8,6v3,4,5,9,5,16r0,5v0,2,-2,13,-6,33v-4,20,-6,34,-6,43v0,9,2,15,6,19v4,4,6,10,6,18v0,8,-4,16,-11,24v-7,8,-17,11,-29,11v-10,0,-16,-6,-19,-19v-2,-7,-4,-11,-6,-11v-2,0,-7,3,-15,8v-8,5,-14,10,-18,12v-14,8,-26,12,-37,12r-5,0v-10,0,-17,-4,-24,-11v-7,-7,-10,-16,-10,-27xm118,-226v0,-3,2,-7,6,-12v17,-22,29,-36,37,-43v8,-7,16,-10,27,-10v11,0,16,2,16,8r0,1r0,1v0,6,-9,15,-26,27v-30,21,-47,32,-50,32v-7,0,-10,-1,-10,-4"},"\u00fb":{"d":"29,-45r0,-5v0,-8,3,-27,9,-56v6,-29,9,-45,9,-49v0,-3,-2,-6,-6,-10v-4,-3,-6,-7,-6,-9v0,-2,0,-3,2,-4v9,-6,22,-9,37,-9v12,0,17,8,17,25v0,8,-3,25,-9,52v-6,27,-9,44,-9,54r0,1v0,9,2,15,5,18v3,3,7,5,11,5v5,0,10,-2,16,-6v11,-7,20,-17,28,-29v10,-15,20,-41,29,-77v4,-14,6,-22,8,-25v5,-10,12,-14,20,-14v3,0,5,1,8,5v3,4,5,9,5,16r0,5v0,2,-2,13,-6,33v-4,20,-6,34,-6,43v0,9,2,15,6,19v4,4,6,9,6,15v0,10,-4,19,-11,27v-7,8,-17,11,-29,11v-10,0,-16,-6,-19,-19v-2,-7,-4,-11,-6,-11v-2,0,-7,3,-15,8v-8,5,-14,10,-18,12v-14,8,-26,12,-37,12r-5,0v-10,0,-17,-4,-24,-11v-7,-7,-10,-16,-10,-27xm82,-227v0,-6,17,-24,51,-55v7,-6,14,-9,21,-9r2,0v6,0,12,3,16,9v18,26,27,44,27,54v0,4,-5,5,-13,5v-5,0,-12,-6,-22,-18v-10,-12,-15,-18,-16,-18v-1,0,-9,6,-23,18v-14,12,-25,18,-32,18v-7,0,-11,-1,-11,-4"},"\u00fc":{"d":"29,-45v0,-11,3,-31,9,-60v6,-29,10,-46,10,-50v0,-4,-3,-7,-7,-11v-4,-4,-6,-6,-6,-8v0,-2,2,-4,6,-6v11,-5,21,-8,29,-8v8,0,14,2,17,6v3,4,5,10,5,20v0,10,-3,27,-9,52v-6,25,-10,43,-10,53v0,10,2,16,5,19v4,3,8,5,12,5r0,0v4,0,9,-2,14,-5v10,-7,20,-16,29,-28v9,-12,15,-29,22,-51v2,-6,5,-16,8,-28v3,-12,5,-20,7,-24v5,-10,12,-15,20,-15v3,0,6,2,9,6v3,4,4,9,4,16r0,5v0,5,-1,15,-5,34v-4,19,-6,33,-6,41v0,8,1,15,5,20v4,5,6,10,6,15v0,11,-4,20,-11,27v-7,7,-16,11,-28,11v-7,0,-12,-3,-16,-8v-1,-2,-2,-7,-4,-13v-2,-6,-3,-9,-5,-9v-2,0,-7,3,-15,8v-8,5,-14,10,-18,12v-14,8,-26,12,-37,12r-5,0v-10,0,-18,-4,-25,-11v-7,-7,-10,-16,-10,-27xm83,-253v0,-7,2,-12,7,-17v5,-5,9,-7,13,-7r4,-1r5,0v1,0,2,1,4,1v2,0,6,2,9,5v3,3,5,9,5,15v0,6,-3,13,-7,18v-4,5,-9,8,-16,8r-5,0v-5,0,-9,-1,-13,-5v-4,-4,-6,-10,-6,-17xm161,-250r0,-4v0,-5,2,-10,6,-15v4,-5,9,-8,13,-8r5,0r2,0r7,0v0,0,5,2,8,5v3,3,4,6,4,9r1,5v0,9,-2,15,-7,20v-5,5,-10,7,-15,7r-6,0v-5,0,-9,-2,-12,-5v-3,-3,-5,-7,-5,-10"},"\u00fd":{"d":"-1,80v0,-3,8,-8,22,-16v14,-8,26,-18,37,-31v11,-13,16,-27,16,-42v0,-8,-3,-22,-9,-42r-23,-84v0,0,-3,-4,-7,-11v-4,-7,-6,-13,-6,-16v0,-7,3,-12,9,-16v6,-4,14,-6,22,-6v16,0,28,27,36,79v5,33,7,50,8,50v2,0,4,-2,7,-4v9,-9,18,-23,26,-41v13,-27,20,-49,23,-66v1,-8,2,-13,4,-15v4,-5,11,-9,19,-9v10,0,14,5,14,15v0,13,-10,41,-30,84v-20,43,-40,77,-57,102v-17,25,-35,45,-52,59v-17,14,-31,21,-42,21v-11,0,-17,-2,-17,-8r0,-3xm107,-225v0,-3,5,-10,13,-22v21,-29,40,-44,58,-44v10,0,15,4,15,10r0,0v0,5,-8,14,-25,27v-28,22,-45,33,-52,33r-1,0v-5,0,-8,-1,-8,-4","w":200},"\u00fe":{"d":"-12,84v0,-3,2,-8,6,-16v4,-8,8,-17,11,-26v3,-9,8,-25,13,-47v30,-129,46,-205,46,-230v0,-5,-1,-12,-2,-23r-1,-9v0,-6,3,-11,9,-15v6,-4,16,-6,28,-6v12,0,17,7,17,20v0,11,-2,27,-6,47v-4,20,-7,32,-7,36v0,4,1,7,4,7v2,0,5,-1,11,-3v6,-2,11,-4,17,-6v6,-2,16,-3,28,-3v12,0,23,5,33,17v10,12,14,26,14,44r0,6v0,16,-3,32,-11,49v-16,35,-39,58,-69,68v-9,3,-20,5,-34,6v-14,1,-24,3,-30,7v-8,5,-13,17,-13,35r3,23v0,12,-5,20,-15,26v-7,4,-17,6,-31,6v-14,0,-21,-4,-21,-13xm77,-31v5,5,12,8,20,8v2,0,4,-1,6,-1v6,0,13,-2,20,-6v16,-10,28,-29,37,-58v4,-13,7,-24,7,-35r0,-8v0,-12,-2,-20,-7,-26v-5,-6,-10,-9,-17,-9v-1,0,-2,1,-3,1v-16,0,-31,12,-45,35v-6,10,-11,23,-16,40v-5,17,-7,31,-7,41v0,9,2,15,5,18","w":219},"\u00ff":{"d":"-3,81v0,-3,7,-9,22,-17v15,-8,27,-16,35,-27v12,-15,18,-30,18,-45v0,-2,-5,-24,-16,-64v-11,-40,-15,-61,-16,-62v0,-1,-3,-5,-7,-12v-4,-7,-6,-12,-6,-15v0,-7,3,-12,10,-16v7,-4,13,-6,18,-6v13,0,22,11,29,33v5,15,8,35,11,59v3,24,5,36,7,36v7,0,19,-17,36,-51v9,-18,15,-36,19,-55r1,-4v1,-7,1,-11,2,-13v3,-8,10,-11,20,-11v10,0,15,5,15,16v0,11,-9,37,-28,79v-34,75,-71,129,-109,162v-18,16,-33,24,-44,24v-11,0,-17,-3,-17,-9r0,-2xm70,-252r0,0r1,-5v0,-4,2,-8,6,-12v4,-4,9,-6,13,-6r4,-1r4,0r5,0v0,0,5,3,8,6v3,3,5,7,5,12r0,5v0,6,-2,12,-7,17v-5,5,-10,7,-16,7r-5,0v-1,0,-2,-1,-2,-1v-4,0,-8,-2,-11,-5v-3,-3,-5,-9,-5,-17xm147,-249v0,-8,3,-15,8,-20v5,-5,10,-7,16,-7r4,0v2,0,3,1,5,1v2,0,5,2,8,5v3,3,6,8,6,16v0,8,-3,14,-8,18v-5,4,-12,7,-18,7v-6,0,-12,-2,-15,-5v-3,-3,-5,-7,-5,-11","w":200},"\u0131":{"d":"25,-18r0,-5v0,-3,4,-23,12,-61v8,-38,11,-57,11,-57v0,-6,-1,-11,-5,-14v-6,-5,-10,-9,-10,-14v0,-5,4,-9,11,-12v11,-5,23,-8,37,-8r5,0v8,0,12,6,12,16v0,4,-4,23,-11,59v-7,36,-12,57,-12,64v0,9,4,13,13,13v5,0,9,3,9,9v0,6,-4,11,-12,16v-14,9,-28,13,-40,13r-5,0v-4,0,-7,-2,-10,-5v-3,-3,-5,-8,-5,-14","w":117},"\u0141":{"d":"15,-15v0,-4,3,-10,9,-18v6,-8,11,-17,15,-29v4,-12,6,-24,6,-35v0,-5,-1,-8,-6,-8r-8,1v-7,0,-11,-3,-11,-10v0,-5,6,-13,17,-20v11,-7,18,-14,21,-20v3,-6,7,-20,12,-42v5,-22,7,-38,7,-48v0,-3,-1,-7,-5,-13v-4,-6,-6,-10,-6,-12v0,-11,12,-16,36,-16v18,0,30,1,38,3v8,2,12,6,12,12v0,2,-3,7,-9,14v-15,18,-22,38,-22,59v0,9,2,13,6,13v1,0,6,-2,15,-6v9,-4,16,-7,21,-7v5,0,7,2,7,5v0,7,-3,12,-10,17v0,0,-7,5,-22,14v-15,9,-25,18,-29,24v-4,6,-9,20,-14,42v-5,22,-8,37,-8,46v0,12,13,18,40,18v13,0,27,-2,40,-9v5,-2,11,-6,19,-12v9,-6,15,-9,19,-9v4,0,6,3,6,8r0,5v0,17,-5,30,-14,40v-5,5,-13,7,-26,7r-95,1v-24,0,-41,-2,-51,-5v-7,-2,-10,-5,-10,-10","w":224},"\u0142":{"d":"22,-126r0,-2v0,-5,5,-13,16,-22v11,-9,18,-17,21,-25v11,-26,16,-51,16,-75v0,-8,-2,-14,-4,-20v-2,-6,-3,-10,-3,-13v0,-11,15,-17,46,-17v7,0,10,4,10,12v0,1,-3,14,-8,38v-5,24,-8,40,-8,48v0,4,1,7,5,7r15,-2v3,0,4,1,4,5v0,8,-6,17,-18,27v-12,10,-20,19,-24,28v-9,21,-13,48,-13,80v0,9,2,16,7,22v5,6,7,10,7,11v0,5,-3,9,-8,13v-10,6,-21,9,-32,9v-14,0,-21,-9,-21,-27v0,-9,1,-23,6,-42v5,-19,7,-31,7,-37v0,-6,-3,-9,-8,-10v-8,-1,-13,-4,-13,-8","w":128},"\u0152":{"d":"42,-100r0,-9v0,-22,5,-46,16,-71v11,-25,25,-45,40,-61v15,-16,31,-27,47,-33v16,-6,38,-9,65,-9r47,4r14,-2v5,-1,17,-2,34,-3v17,-1,28,-2,32,-2r18,0v12,0,21,2,28,5v11,6,16,13,16,22v0,4,-4,6,-12,6v-2,0,-9,-1,-22,-2v-13,-1,-24,-2,-34,-2v-17,0,-30,6,-39,17v-12,16,-19,32,-19,48v0,7,2,11,6,13v4,2,10,4,15,4v5,0,10,-1,15,-3v11,-4,19,-6,22,-6v3,0,6,1,10,4v4,3,5,8,5,17v0,9,-3,19,-9,29v-4,7,-11,10,-18,10v-1,0,-5,-1,-14,-4v-9,-3,-17,-4,-25,-4v-16,0,-26,5,-31,15v-5,10,-7,30,-7,58v0,11,2,19,8,23v6,4,16,5,31,5v18,0,35,-2,49,-5v14,-3,22,-5,22,-5v4,0,6,3,6,7v0,3,-2,7,-8,13v-6,6,-12,11,-20,14v-7,3,-18,4,-34,4v-7,0,-15,1,-23,0r-8,-1r-15,0v-4,0,-12,-1,-22,-2r-7,-1v-8,-1,-13,-1,-15,-1v-2,0,-10,1,-24,3v-14,2,-27,3,-39,3v-12,0,-25,-2,-37,-6v-12,-4,-22,-10,-31,-18v-9,-8,-18,-18,-24,-32v-6,-14,-9,-28,-9,-42xm83,-96v0,21,4,37,14,49v10,12,22,19,37,19r6,0v22,0,38,-11,47,-32v8,-18,17,-49,26,-90v9,-41,13,-68,13,-78r0,-8v0,-7,-2,-13,-7,-18v-5,-5,-14,-7,-25,-7r-8,0v-11,0,-23,4,-36,12v-13,8,-24,20,-34,35v-10,15,-19,33,-25,53v-6,20,-8,38,-8,55r0,10","w":399},"\u0153":{"d":"21,-80r0,-6v0,-13,3,-26,9,-39v12,-26,32,-45,59,-57v14,-6,28,-9,41,-9v13,0,23,1,31,4v8,3,14,8,20,13v6,5,12,8,15,8v3,0,7,-2,14,-6v7,-4,13,-7,18,-9v13,-6,28,-9,45,-9v17,0,30,4,40,12v10,9,15,20,15,31v0,21,-7,36,-20,44v-9,6,-25,9,-48,12r-49,4v-6,2,-10,8,-10,18v0,10,4,19,12,25v8,6,18,9,29,9v11,0,23,-3,37,-9v16,-7,24,-11,27,-11v4,0,6,2,6,6v0,8,-9,17,-27,26v-18,9,-37,13,-58,13v-12,0,-22,-2,-29,-5v-7,-3,-13,-8,-18,-12v-5,-4,-10,-6,-12,-6v-2,0,-7,2,-13,6v-18,12,-39,17,-62,17v-12,0,-22,-2,-32,-6v-27,-12,-40,-33,-40,-64xm69,-63v0,3,1,5,1,6v0,10,3,17,8,23v5,6,11,9,18,9r2,0v7,0,15,-4,22,-10v7,-6,13,-13,18,-22v14,-26,20,-49,20,-70r1,-4r0,-8v0,-12,-3,-21,-8,-27v-5,-6,-10,-9,-17,-9r-4,0v-5,0,-12,2,-19,7v-7,5,-14,13,-21,24v-14,24,-20,46,-20,68r-1,4r0,9xm207,-121v0,3,2,6,6,6r14,-2v18,0,36,-5,53,-14v6,-3,9,-9,9,-19r0,-1r-1,-5v0,-3,-1,-7,-5,-11v-4,-4,-9,-6,-15,-6r-7,0v-9,0,-21,6,-34,18v-13,12,-20,23,-20,34","w":330},"\u0160":{"d":"14,-33v0,-17,4,-28,9,-35v2,-2,4,-3,6,-3v2,0,7,4,14,14v15,20,34,30,57,30v14,0,27,-4,37,-12v10,-8,15,-19,15,-31v0,-12,-3,-22,-10,-30v-7,-8,-21,-18,-40,-31v-19,-13,-33,-25,-40,-36v-7,-11,-11,-25,-11,-43v0,-10,2,-20,7,-30v10,-20,26,-34,48,-42v12,-5,23,-7,33,-7v10,0,20,0,30,2v10,2,19,2,26,2v7,0,13,2,16,6v3,4,5,10,5,19r0,6v0,9,-2,16,-5,22v-3,6,-6,8,-9,8v-3,0,-8,-4,-14,-12v-6,-8,-13,-15,-20,-19v-7,-4,-17,-6,-30,-6v-13,0,-24,5,-33,16v-6,7,-9,17,-9,28v0,11,5,21,16,31v4,3,14,12,32,24v18,12,31,22,38,30v10,13,16,29,16,48v0,11,-3,22,-8,33v-10,23,-29,39,-56,48v-11,4,-22,5,-33,5r-6,0v-6,0,-16,-1,-27,-3v-11,-2,-21,-3,-30,-3v-16,0,-24,-10,-24,-29xm102,-368v0,-4,3,-5,10,-5v7,0,16,5,27,16v11,11,16,16,17,16v1,0,9,-5,24,-16v15,-11,27,-17,34,-17v7,0,11,1,11,4v0,3,-11,13,-31,32v-20,19,-34,28,-42,28v-8,0,-13,-1,-16,-4v-3,-3,-7,-9,-12,-16v-7,-11,-6,-10,-14,-21v-5,-7,-8,-13,-8,-17","w":216},"\u0161":{"d":"8,-28v0,-7,2,-12,5,-16v3,-4,7,-6,9,-6v2,0,8,4,18,13v10,9,21,14,31,14v10,0,18,-3,23,-8v5,-5,8,-10,8,-17v0,-7,-2,-13,-6,-17v-4,-4,-12,-11,-25,-20v-13,-9,-22,-17,-26,-22v-7,-9,-11,-19,-11,-31v0,-16,7,-30,21,-41v14,-11,31,-17,51,-17r4,0v18,0,30,2,37,6v7,4,10,10,10,18v0,8,-2,14,-5,17v-3,3,-6,5,-10,5v-1,0,-6,-3,-15,-10v-9,-7,-18,-11,-26,-11v-8,0,-15,2,-20,7v-5,5,-7,10,-7,16v0,6,3,13,10,19v3,3,10,8,22,16v12,8,21,15,27,23v6,8,10,17,10,29v0,17,-7,31,-21,44v-14,13,-30,19,-51,19r-9,0v-36,0,-54,-10,-54,-30xm64,-286v0,-4,5,-5,14,-5v5,0,12,6,21,18v9,12,15,18,16,18v1,0,9,-6,23,-18v14,-12,25,-18,32,-18v7,0,11,1,11,4v0,8,-17,26,-51,55v-7,6,-13,9,-19,9r-3,0v-7,0,-13,-3,-18,-10v-18,-25,-26,-43,-26,-53","w":163},"\u0178":{"d":"59,-271v0,-10,16,-15,47,-15v6,0,11,1,15,4v4,3,5,7,5,11r0,14v0,0,2,15,6,30r8,30v5,18,7,29,8,31v1,2,1,3,3,3v6,0,22,-23,47,-67v7,-12,12,-19,13,-23v1,-4,2,-8,3,-13v1,-5,1,-9,3,-11v5,-7,16,-10,32,-10r5,0v12,0,18,4,18,10v0,3,-8,11,-23,25v-8,7,-17,20,-29,38r-50,78v-7,13,-13,26,-17,42v-4,16,-6,27,-6,35v0,8,1,14,4,21v3,7,3,12,3,16v0,4,-3,7,-10,12v-7,5,-14,7,-23,7r-22,0v-14,0,-21,-5,-21,-16v0,-3,3,-7,9,-14v6,-7,10,-13,12,-20v8,-22,12,-43,12,-63v0,-20,-8,-53,-24,-101v-5,-13,-10,-24,-17,-33v-7,-9,-11,-16,-11,-21xm118,-331r0,-6v0,-6,2,-13,8,-20v4,-4,11,-6,21,-6r6,1v6,0,9,3,9,9r0,4r0,3r-1,7v0,4,-2,8,-6,13v-4,5,-11,8,-18,8r-4,0r-1,0r-1,0r-2,0v-7,0,-11,-5,-11,-13xm197,-334r0,0v0,-9,3,-16,8,-21v5,-5,9,-8,14,-8r5,0v12,0,17,3,17,10r1,2r0,2r0,2r0,1v0,8,-3,15,-7,20v-4,5,-9,8,-14,8r-4,0r-5,0r-4,0v-7,0,-10,-4,-10,-10r-1,-2r0,-2r0,-2","w":249},"\u017d":{"d":"11,-13v0,-7,5,-17,14,-29v9,-12,39,-49,91,-111v52,-62,78,-95,78,-100v0,-4,-10,-5,-30,-5v-29,0,-54,4,-78,14v-8,3,-15,5,-20,5v-5,0,-7,-5,-7,-15v0,-10,5,-19,14,-26v6,-5,14,-7,22,-7r77,0r7,0r54,0v17,0,25,4,25,10v0,8,-7,20,-20,37r-85,102v0,0,-77,93,-77,97v0,6,11,10,33,10v22,0,39,-1,51,-4v12,-3,24,-6,36,-10v12,-4,17,-7,18,-7v7,0,11,4,11,10v0,11,-4,20,-12,28v-8,8,-18,12,-31,12r-37,0r-31,0v-46,0,-75,0,-86,-1v-11,-1,-17,-4,-17,-10xm116,-369v0,-3,4,-4,12,-4v8,0,16,4,24,13v12,13,19,20,20,20v1,0,9,-6,23,-17v14,-11,26,-16,34,-16r3,0v6,0,9,1,9,4v0,3,-17,18,-51,47v-7,6,-15,10,-23,10v-8,0,-15,-3,-20,-9v-21,-23,-31,-39,-31,-48","w":248},"\u017e":{"d":"11,-13v0,-7,3,-15,11,-24v8,-9,29,-31,62,-66v33,-35,49,-54,49,-58v0,-4,-7,-6,-22,-6v-15,0,-28,1,-37,4r-4,2r-4,1r-4,2v-5,2,-9,2,-12,2v-7,0,-10,-5,-10,-14v0,-19,12,-28,36,-28r11,0r66,3r30,-2v6,0,9,3,9,9v0,6,-5,15,-14,27v-3,4,-22,24,-55,59v-33,35,-50,55,-50,60v0,5,3,8,9,10v6,2,15,2,26,2v11,0,23,-2,34,-6v11,-4,19,-6,22,-6v7,0,10,5,10,14v0,19,-14,29,-41,29r-16,0v-9,0,-22,-1,-36,-3v-14,-2,-25,-3,-36,-3v-4,0,-8,1,-11,1r-5,0v-5,1,-8,1,-9,1v-6,0,-9,-3,-9,-10xm78,-290v0,-2,4,-3,12,-3v8,0,16,5,23,15v10,14,15,20,18,20v1,0,6,-3,13,-9r1,-1r4,-4r1,-1r7,-5v13,-10,23,-16,30,-16r2,0v6,0,10,2,10,4v0,3,-17,21,-50,51v-8,7,-15,10,-23,10v-8,0,-15,-3,-20,-10v-19,-27,-28,-44,-28,-51","w":196},"\u0192":{"d":"-14,54v0,-4,2,-9,6,-13v4,-4,10,-6,17,-6r4,0r9,0v16,0,28,-12,37,-36v7,-19,13,-43,20,-72v7,-29,10,-48,10,-56v0,-8,-2,-14,-6,-21v-4,-7,-7,-13,-7,-17v0,-2,4,-4,11,-9v7,-5,12,-10,16,-15v4,-5,10,-17,20,-37v10,-20,19,-35,29,-44v15,-14,32,-21,52,-21v15,0,25,4,31,9v2,2,3,4,3,8v0,4,-2,8,-6,12v-4,4,-7,5,-11,5v-4,0,-9,0,-14,-1v-5,-1,-9,-2,-10,-2v-12,0,-21,6,-29,17v-8,11,-11,26,-11,45v0,8,4,14,12,19v8,5,12,9,12,12v0,4,-6,10,-19,16v-13,6,-22,16,-27,27v-1,2,-8,26,-21,70v-13,44,-24,73,-33,86v-17,25,-38,37,-62,37r0,0r-5,0v-18,0,-28,-4,-28,-13","w":223},"\u02c6":{"d":"51,-236r0,-1v0,-5,18,-23,52,-52v7,-6,14,-8,21,-8v7,0,14,3,19,9v19,24,28,41,28,50v0,3,-5,5,-14,5v-5,0,-13,-6,-23,-18r-15,-18v-1,0,-9,6,-23,18v-14,12,-25,18,-33,18v-8,0,-12,-1,-12,-3","w":173},"\u02c7":{"d":"62,-291v0,-3,4,-6,12,-6v8,0,16,6,23,16v10,14,16,20,18,20v1,0,8,-6,22,-18v14,-12,26,-18,34,-18v8,0,11,2,11,4v0,3,-17,20,-50,50v-8,7,-14,11,-22,11v-8,0,-14,-3,-19,-9v-19,-25,-29,-42,-29,-50","w":173},"\u02c9":{"d":"58,-243v0,-14,2,-21,6,-23v2,-1,21,-1,59,-1r51,-1v4,0,6,1,6,3v0,10,-2,17,-5,22v-1,2,-4,3,-9,3r-102,0v-4,0,-6,-1,-6,-3","w":173},"\u02d8":{"d":"59,-282v0,-5,3,-7,7,-7r4,0v5,0,10,3,14,10v4,7,8,13,12,16v4,3,12,5,22,5v10,0,20,-4,28,-12v13,-13,21,-19,26,-19v5,0,8,0,8,1v0,5,-2,11,-7,19v-5,8,-12,15,-19,21v-13,10,-26,15,-42,15v-16,0,-29,-5,-38,-14v-9,-9,-15,-21,-15,-35","w":172},"\u02d9":{"d":"90,-256r0,-4v0,-7,2,-14,7,-20v5,-6,12,-8,22,-8r6,0v7,0,11,4,11,10r0,4r0,5v0,7,-2,13,-7,19v-5,6,-10,9,-18,9r-6,0r-5,-1v-6,0,-9,-3,-9,-8","w":166},"\u02da":{"d":"75,-267r0,-2v0,-10,6,-19,15,-28v9,-9,21,-14,36,-14r7,0v7,0,13,3,18,9v5,6,8,13,8,23v0,10,-5,19,-15,28v-10,9,-21,13,-33,13v-12,0,-20,-3,-26,-8v-6,-5,-10,-12,-10,-21xm98,-267v0,9,3,14,10,14r4,1r3,0v5,0,9,-3,14,-8v5,-5,7,-11,7,-17r0,-5r0,-3v0,-8,-5,-12,-15,-12r0,1r-2,0r-3,0v-3,0,-7,3,-11,8v-4,5,-6,9,-6,11r-1,6r0,4","w":168},"\u02db":{"d":"41,49v0,-10,6,-21,17,-34v11,-13,21,-19,30,-19r5,0v4,0,6,1,6,2v0,1,-2,4,-7,9r-10,10v-6,7,-9,16,-9,24v0,11,8,16,24,16v9,0,13,2,13,8r0,1v0,4,-2,7,-7,10v-5,3,-12,4,-20,4r-4,0v-11,0,-21,-3,-28,-8v-7,-5,-10,-13,-10,-23","w":166},"\u02dc":{"d":"49,-245v0,-10,6,-21,18,-31v7,-6,15,-9,24,-9v8,0,18,3,28,8v12,7,20,10,25,10v5,0,11,-3,17,-9v6,-6,11,-9,13,-9r3,0v5,0,7,2,7,5v0,8,-5,17,-14,26v-9,9,-19,13,-31,13v-7,0,-15,-3,-26,-9v-11,-6,-19,-9,-26,-9v-3,0,-8,4,-15,10v-7,6,-11,9,-13,9r-3,0v-5,0,-7,-2,-7,-5","w":173},"\u02dd":{"d":"54,-242v0,-2,4,-10,12,-22v8,-12,17,-22,25,-30v8,-8,16,-12,26,-12r1,0v9,0,13,2,13,6v0,6,-10,17,-30,35v-20,18,-33,26,-37,26r-4,0v-4,0,-6,-1,-6,-3xm122,-242v0,-3,2,-8,8,-14v6,-6,11,-13,16,-21v5,-8,10,-14,14,-18v8,-7,17,-11,26,-11r1,1v9,0,14,2,14,6v0,6,-9,16,-26,29v-27,21,-42,32,-44,32v-7,0,-9,-2,-9,-4","w":176},"\u03a9":{"d":"10,-20v0,-15,4,-23,11,-23v1,0,5,1,13,4v8,3,17,5,26,5v9,0,14,-4,14,-11v0,-3,-4,-9,-11,-20v-7,-11,-13,-21,-17,-33v-4,-12,-6,-27,-6,-45v0,-18,3,-37,11,-56v8,-19,18,-35,32,-49v14,-14,29,-24,47,-31v18,-7,36,-12,54,-12v36,0,64,10,83,31v18,19,27,44,27,75v0,39,-15,75,-45,109r-19,19v-8,8,-12,13,-12,15v0,5,5,7,14,7v5,0,11,-1,19,-2r8,-2v7,-2,12,-2,14,-2v4,0,6,2,6,7v0,22,-24,33,-72,33v-14,0,-24,-1,-30,-5v-4,-2,-5,-7,-5,-13v0,-6,9,-21,27,-43v18,-22,30,-42,38,-60v8,-18,11,-40,11,-64v0,-13,-2,-24,-6,-34v-4,-10,-9,-18,-14,-24v-11,-12,-28,-18,-48,-18v-14,0,-27,3,-40,11v-25,15,-42,41,-51,75v-4,14,-6,30,-6,46v0,16,5,37,14,62v9,25,14,41,14,47v0,13,-13,20,-39,20r-19,0v-14,0,-25,-2,-32,-6v-7,-4,-11,-8,-11,-13","w":304},"\u03bc":{"d":"3,71v0,-15,6,-53,20,-115v14,-62,20,-100,20,-114v0,-14,3,-24,7,-30v4,-6,11,-9,20,-9r6,0v6,0,9,2,12,5v3,3,4,8,4,17v0,9,-3,28,-9,58v-6,30,-10,49,-10,58v0,18,9,27,25,27v7,0,15,-3,24,-9v9,-6,15,-15,22,-26v7,-11,14,-30,21,-59v7,-29,11,-43,12,-45v6,-14,14,-21,24,-21v3,0,6,3,9,6v3,3,5,8,5,13v0,5,-3,20,-7,44v-4,25,-7,42,-7,54v0,5,0,8,1,11v2,10,4,16,4,19v0,13,-4,24,-10,31v-7,7,-14,11,-22,11v-11,0,-19,-5,-24,-15v-3,-5,-4,-9,-6,-9v-4,0,-8,2,-12,4r-30,15v-8,3,-16,5,-24,6v-8,1,-15,3,-19,7v-4,4,-8,15,-13,33v-5,18,-8,29,-9,32v-5,11,-13,16,-23,16v-8,0,-11,-5,-11,-15","w":236},"\u03c0":{"d":"25,-12v0,-1,2,-8,8,-20v6,-12,11,-26,16,-40v12,-33,18,-56,18,-70v0,-10,-6,-15,-17,-17v-11,-2,-17,-6,-17,-13v0,-3,2,-7,6,-12v11,-11,39,-17,83,-17r12,0r6,0r101,-1v7,0,10,4,10,11v0,7,-6,15,-18,22v-12,7,-20,15,-24,26v-10,28,-15,59,-15,92v0,9,2,16,7,21v5,5,8,9,8,11v0,2,-1,4,-3,6v-6,5,-15,8,-25,8v-19,0,-28,-15,-28,-47v0,-14,2,-34,8,-60v6,-26,9,-39,9,-40v0,-8,-2,-12,-7,-14v-5,-2,-13,-3,-26,-3v-13,0,-21,3,-26,10v-1,1,-7,20,-18,57v-11,37,-20,63,-27,77v-7,14,-17,20,-29,20v-8,0,-12,-2,-12,-7","w":247},"\u2013":{"d":"15,-101r0,-4v0,-12,4,-19,11,-21v3,-1,35,-1,96,-1r79,0v11,0,16,2,16,6v0,11,-2,18,-5,20v-3,2,-11,4,-22,4r-159,0v-11,0,-16,-1,-16,-4","w":221},"\u2014":{"d":"21,-102v0,-8,1,-13,3,-16v2,-3,6,-5,11,-6v5,-1,63,-1,174,-1r159,0v7,0,11,2,11,7v0,7,-2,12,-4,15v-2,3,-6,5,-11,6v-5,1,-64,1,-175,1r-116,0r-42,0v-7,0,-10,-2,-10,-6","w":390},"\u2018":{"d":"56,-203r0,-6r0,-4v0,-16,7,-35,21,-54v14,-19,29,-28,41,-28v4,0,5,1,5,6v0,2,-2,6,-7,10v-5,4,-8,8,-10,11v-8,10,-12,19,-12,26v0,1,2,4,4,11v2,7,4,13,4,19v0,8,-2,14,-7,19v-5,5,-11,7,-17,7r-4,0v-12,0,-18,-6,-18,-17","w":113},"\u2019":{"d":"49,-193v0,-2,2,-5,7,-9v5,-4,10,-9,15,-16v5,-7,8,-13,8,-21v0,-1,-1,-5,-3,-11v-2,-7,-3,-13,-3,-18v0,-8,3,-15,8,-20v5,-5,10,-7,18,-7r4,0v11,0,16,5,16,14r0,6v0,19,-6,37,-20,55v-17,23,-31,34,-44,34v-4,0,-6,-2,-6,-7","w":113},"\u201a":{"d":"5,50v0,-2,1,-5,6,-10v5,-5,9,-8,12,-11v8,-9,11,-19,11,-27v0,-2,0,-4,-1,-6v-3,-8,-5,-15,-5,-21v0,-8,3,-15,8,-21v4,-5,11,-6,21,-6r1,0v11,0,17,3,17,11r0,8v0,17,-8,35,-22,56v-8,11,-16,21,-24,26v-8,5,-14,8,-18,8v-4,0,-6,-2,-6,-7","w":116},"\u201c":{"d":"51,-208r1,-9v0,-16,7,-33,21,-52v14,-19,27,-28,39,-28v4,0,6,1,6,5r0,2v0,2,-2,5,-7,10v-14,14,-21,26,-21,35v0,3,0,6,1,8v4,8,6,15,6,23v0,8,-2,13,-6,18v-4,5,-11,8,-19,8v-8,0,-14,-2,-17,-5v-3,-3,-4,-8,-4,-15xm131,-204r0,-7v0,-19,7,-38,21,-57v14,-19,28,-29,40,-29v3,0,5,3,5,8v0,1,-3,4,-8,10r-4,4v-2,2,-4,4,-5,6v-7,10,-11,18,-11,25v0,1,2,4,4,11v2,7,3,14,3,19v0,7,-2,13,-6,18v-5,5,-12,8,-23,8v-11,0,-16,-6,-16,-16","w":183},"\u201d":{"d":"47,-194v0,-2,3,-6,7,-10v15,-14,23,-26,23,-37v0,-1,-2,-5,-4,-11v-2,-6,-3,-12,-3,-17v0,-8,2,-15,7,-20v5,-5,11,-8,19,-8r4,0v6,0,10,2,14,5v2,2,3,4,3,8v0,2,-1,3,-1,5v0,18,-5,35,-16,51v-11,16,-20,27,-28,32v-8,5,-15,8,-19,8v-4,0,-6,-2,-6,-6xm126,-194v0,-2,3,-6,8,-11v5,-5,9,-8,10,-10v8,-10,12,-18,12,-25v0,-2,-1,-6,-3,-12v-2,-6,-4,-12,-4,-17v0,-8,2,-15,7,-20v5,-5,11,-8,19,-8r5,0v11,0,16,4,16,12r0,9v0,18,-7,36,-20,54v-17,23,-33,34,-45,34v-4,0,-5,-2,-5,-6","w":183},"\u201e":{"d":"36,39r12,-12v7,-8,10,-17,10,-26v0,-1,-1,-5,-3,-10v-2,-5,-3,-11,-3,-18v0,-7,3,-14,8,-19v5,-5,11,-7,19,-7v6,0,10,1,13,2v3,-1,6,-2,10,-2v8,0,14,2,16,4v2,2,4,7,4,14v0,18,-7,36,-20,55v-9,13,-17,21,-25,27v-8,6,-14,9,-19,9v-4,0,-6,-2,-6,-7v-8,5,-14,7,-18,7v-4,0,-5,-2,-5,-7v0,-2,2,-5,7,-10","w":185},"\u2020":{"d":"42,-185v0,-5,3,-8,8,-11v5,-3,11,-4,18,-4r31,2v8,0,13,-4,15,-12v1,-3,3,-14,5,-33v2,-19,3,-30,5,-34v4,-8,12,-13,24,-13v12,0,17,4,17,11v0,6,-3,18,-9,37v-6,19,-9,32,-9,37v0,5,2,7,7,7r40,-2v11,0,16,4,16,13v0,8,-3,13,-10,17v-4,2,-14,3,-27,3v-13,0,-22,1,-25,2v-3,1,-6,5,-8,10v-2,5,-5,14,-7,27v-2,13,-9,44,-20,92v-11,48,-17,73,-17,74v-4,12,-10,18,-18,18r-5,0v-5,0,-7,-4,-7,-13v0,-3,2,-13,5,-30r20,-115v1,-6,2,-9,2,-10r1,-5v4,-16,6,-28,6,-35v0,-7,-3,-12,-9,-14v-4,-2,-11,-3,-22,-3v-11,0,-19,-2,-22,-5v-3,-3,-5,-6,-5,-11","w":215},"\u2021":{"d":"24,-53v0,-8,7,-12,21,-13r10,-1v13,-2,22,-5,26,-10v4,-5,8,-15,12,-31v8,-35,12,-53,12,-55v0,-8,-8,-12,-23,-12r-6,0r-13,0v-11,0,-17,-5,-17,-14v0,-6,3,-10,7,-13v4,-3,12,-4,23,-4r7,0r13,1v12,0,19,-4,22,-12v2,-5,2,-16,3,-33v1,-17,3,-27,7,-32v4,-5,12,-8,24,-8v9,0,14,5,14,14v0,4,-3,14,-9,30v-6,16,-8,27,-8,34v0,5,5,7,16,7r7,0r6,-1v6,0,11,-1,13,-1v14,0,21,4,21,12v0,5,-2,10,-6,14v-4,4,-12,7,-22,7r-13,-1r-15,0v0,0,-12,2,-15,8v-3,6,-5,20,-8,43v-3,23,-5,35,-5,37v0,7,3,11,7,14v4,3,12,6,24,7v12,1,19,4,19,10v0,7,-5,12,-15,16v-4,1,-12,3,-25,4v-13,1,-21,4,-25,8v-4,4,-6,16,-8,37v-2,21,-4,34,-7,39v-3,5,-11,9,-21,9v-10,0,-15,-5,-15,-14v0,-4,2,-14,8,-31v6,-17,9,-28,9,-33v0,-5,-2,-9,-6,-11v-4,-2,-9,-3,-19,-4v-10,-1,-17,-3,-22,-6v-5,-3,-8,-6,-8,-11","w":214},"\u2022":{"d":"43,-132v0,-16,6,-30,18,-42v12,-12,26,-18,41,-18r6,0v14,0,26,6,36,16v10,10,14,24,14,40v0,16,-6,30,-17,42v-11,12,-24,19,-39,19r-8,0v-15,0,-28,-6,-37,-17v-9,-11,-14,-24,-14,-40","w":183},"\u2026":{"d":"32,-19v0,-12,3,-21,10,-28v4,-4,13,-7,25,-7v12,0,17,5,17,15r0,7v0,8,-2,17,-9,25v-4,4,-9,6,-16,6r-6,1r-3,0r0,0r-5,-1v-9,0,-13,-6,-13,-18xm155,-16r0,-5r0,-1r0,-5v0,-5,4,-11,10,-20v3,-4,8,-6,16,-6r5,-1r3,0v12,0,18,5,18,13r0,7r0,0r0,2r0,4v0,9,-3,16,-9,21v-6,5,-12,7,-20,7r-6,0v-2,0,-3,-1,-4,-1v-9,0,-13,-5,-13,-15xm277,-21v0,-9,4,-18,11,-26v4,-5,10,-7,19,-7v9,0,15,1,18,4v3,3,5,8,5,15r0,1r-1,7v0,8,-2,15,-8,20v-6,5,-13,7,-21,7r-4,0v-7,0,-12,-1,-15,-4v-3,-3,-4,-8,-4,-17","w":369},"\u2030":{"d":"50,-191v0,-26,7,-48,22,-68v15,-20,34,-30,56,-30v11,0,21,4,28,12v7,8,10,19,10,32v0,27,-8,51,-25,72v-7,8,-15,15,-24,20v-9,5,-19,7,-30,7v-11,0,-20,-4,-27,-13v-7,-9,-10,-19,-10,-32xm54,-5v0,-4,69,-92,205,-264v9,-11,16,-16,24,-16v8,0,12,1,12,3v0,1,-3,5,-8,12v-53,74,-119,158,-199,255v-7,9,-14,14,-22,14v-8,0,-12,-2,-12,-4xm80,-196v0,18,6,27,17,27r1,0v9,0,16,-6,23,-19v9,-17,14,-35,14,-54v0,-9,-2,-15,-5,-19v-3,-4,-6,-5,-9,-5r-4,0v-7,0,-15,6,-23,19v-8,13,-13,26,-13,39r0,5xm178,-44v0,-24,8,-46,24,-67v6,-8,14,-15,23,-20v9,-5,18,-8,27,-8r4,0v11,0,20,4,27,12v7,8,11,19,11,32r0,4r0,2v0,22,-8,44,-25,66v-6,8,-14,15,-23,20v-9,5,-17,7,-24,7r-8,0v-10,0,-19,-5,-26,-13v-7,-8,-10,-18,-10,-30r0,-5xm209,-42v0,8,2,14,6,19v2,3,6,4,11,4v8,0,15,-6,24,-20v9,-14,13,-30,13,-48r0,-6v0,-7,-1,-12,-4,-17v-3,-5,-6,-7,-10,-7v-1,0,-2,1,-3,1v-8,0,-17,7,-25,21v-8,14,-12,27,-12,40r0,2r0,5r0,6xm324,-44v0,-24,7,-45,22,-65v7,-9,16,-17,25,-22v9,-5,19,-8,31,-8v12,0,21,4,28,12v7,8,10,18,10,29r0,9v0,22,-8,44,-25,66v-6,8,-15,15,-24,20v-9,5,-18,7,-26,7r-3,0v-11,0,-21,-5,-28,-13v-7,-8,-10,-20,-10,-35xm355,-42v0,7,1,13,4,17v3,4,7,6,13,6v8,0,17,-7,25,-22v8,-15,12,-32,12,-50v0,-8,-1,-15,-4,-19v-3,-4,-7,-6,-12,-6v-8,0,-16,6,-25,20v-9,14,-13,30,-13,47r0,7","w":448},"\u2039":{"d":"28,-104v0,-5,13,-19,39,-44v26,-25,41,-37,45,-37v5,0,8,2,8,7v0,5,-9,17,-28,39v-19,22,-29,33,-29,36v0,3,5,14,15,32v10,18,14,30,14,36v0,6,-3,9,-9,9v-6,0,-13,-6,-21,-19v-23,-37,-34,-57,-34,-59","w":131},"\u203a":{"d":"20,-31r0,-2v0,-4,9,-16,28,-38v19,-22,28,-33,28,-35v0,-1,-4,-11,-14,-32v-10,-21,-15,-33,-15,-37v0,-6,4,-9,11,-9v5,0,12,7,21,21v22,37,33,55,33,57r0,2v0,2,-13,16,-38,41v-25,25,-41,38,-46,38v-5,0,-8,-2,-8,-6","w":131},"\u2044":{"d":"-59,3v0,-7,65,-100,196,-281v5,-7,11,-11,18,-11v7,0,11,1,11,4v0,6,-65,100,-195,279v-7,9,-13,13,-20,13v-7,0,-10,-1,-10,-4","w":87},"\u20ac":{"d":"26,-115v0,-3,3,-8,11,-12v8,-4,12,-9,12,-15v0,-6,-3,-11,-8,-14v-5,-3,-7,-6,-7,-9v0,-3,3,-8,10,-14v15,-13,27,-26,38,-40v29,-38,66,-57,113,-57v30,0,45,8,45,26v0,11,-4,17,-12,17v-1,0,-8,-2,-19,-6v-11,-4,-22,-6,-33,-6v-11,0,-21,4,-33,14v-12,10,-18,20,-18,32v0,7,11,11,31,13v20,2,30,6,30,12v0,6,-6,9,-17,11v-6,1,-17,3,-35,4v-18,1,-29,2,-33,4v-7,3,-10,7,-10,13v0,6,3,10,8,12v1,0,12,1,33,3v21,2,31,5,31,11v0,6,-6,11,-19,14r-36,9v-7,4,-10,10,-10,16v0,12,5,22,15,30v10,8,25,12,45,12r41,-4v5,0,8,2,8,7v0,8,-7,16,-22,23v-15,7,-31,10,-49,10r-8,0v-13,0,-24,-3,-35,-8v-11,-5,-20,-12,-27,-21v-7,-9,-14,-27,-21,-55v-2,-8,-5,-14,-8,-17v-7,-7,-11,-12,-11,-15","w":236},"\u2122":{"d":"43,-267v0,-11,2,-17,6,-19v3,-1,22,-2,57,-2r46,0v7,0,10,4,10,13r0,3v0,9,-2,14,-6,14v-2,0,-3,-1,-6,-3v-8,-5,-17,-8,-25,-8v-5,0,-8,4,-9,12v-3,24,-5,50,-5,78v0,4,1,9,4,14v3,5,5,8,5,10v0,5,-5,7,-15,7r-18,0v-12,0,-18,-3,-18,-8v0,-2,2,-4,5,-8v3,-4,6,-9,7,-13v4,-21,5,-46,5,-75v0,-11,-3,-17,-9,-17v-6,0,-12,2,-19,6v-7,4,-10,6,-11,6v-3,0,-5,-2,-5,-7v0,-1,1,-2,1,-3xm173,-156v0,-1,1,-2,3,-6v2,-4,4,-7,5,-11v1,-4,4,-19,6,-44v2,-25,3,-39,3,-42v0,-3,-1,-7,-3,-11r-2,-4v-2,-4,-3,-7,-3,-8v0,-4,5,-6,16,-6r6,0v13,0,22,5,27,13v2,4,7,18,15,43v8,25,12,38,13,38v1,0,7,-13,19,-38v12,-25,20,-40,23,-44v6,-8,18,-11,34,-11v7,0,11,1,11,3v0,2,-1,4,-3,8v-2,4,-3,7,-4,11v-1,4,-2,17,-4,39v-2,22,-2,35,-2,41v0,6,0,11,2,16r2,5v2,4,2,6,2,7v0,5,-5,8,-16,8v-6,0,-12,-2,-17,-5v-5,-3,-7,-5,-7,-8v0,-3,1,-7,3,-13v2,-6,3,-16,5,-30v1,-13,2,-23,2,-30v0,-8,-1,-13,-3,-13v-1,0,-9,17,-24,49v-15,32,-24,48,-29,48v-5,0,-9,-3,-12,-8r-15,-47v0,0,-13,-43,-15,-43v-4,0,-6,21,-6,63r3,23v0,3,-3,6,-7,9v-4,3,-9,5,-17,5v-8,0,-11,-3,-11,-7","w":342},"\u2202":{"d":"25,-59r0,-5v0,-14,3,-28,9,-43v6,-15,14,-28,24,-39v21,-22,45,-32,72,-32r1,0v8,0,17,1,26,5v9,4,14,6,16,6v6,0,9,-13,9,-37v0,-17,-4,-31,-14,-43v-10,-13,-23,-19,-40,-19v-6,0,-12,0,-19,2v-10,2,-16,4,-21,4v-10,0,-15,-5,-15,-13v0,-5,6,-10,19,-15v13,-5,25,-8,38,-8v25,0,45,9,60,27v8,10,14,22,18,36v4,14,6,29,6,44r0,11v0,21,-4,43,-11,67v-15,48,-37,82,-68,100v-15,9,-31,13,-48,13r-5,0v-16,0,-29,-6,-40,-17v-11,-11,-17,-26,-17,-44xm68,-59v0,10,2,20,6,27v4,7,8,11,15,11r5,0v4,0,11,-3,19,-8v8,-5,16,-15,26,-29v21,-30,32,-53,32,-70r0,-4v0,-9,-4,-17,-11,-24v-7,-7,-17,-10,-29,-10r-5,0v-13,0,-26,11,-39,32v-13,21,-19,45,-19,71r0,4","w":226},"\u2206":{"d":"14,-7v0,-5,3,-12,8,-20v5,-8,17,-32,37,-69v20,-37,32,-63,39,-77r16,-31v18,-36,28,-56,30,-59v8,-14,16,-20,24,-20r4,0v10,0,17,6,20,19v2,8,9,49,23,123v14,74,21,114,21,121v0,7,-2,11,-7,13v-7,3,-26,4,-55,4r-101,0r-40,0v-13,0,-19,-1,-19,-4xm55,-32v0,2,6,3,18,3r69,0v17,0,30,-1,39,-4v5,-2,8,-5,8,-10v0,-4,-2,-16,-6,-37v-4,-21,-7,-48,-12,-82v-7,-47,-11,-72,-14,-72v-2,0,-8,15,-21,43v-19,43,-19,42,-36,77r-22,44v0,0,-8,13,-14,22v-6,9,-9,14,-9,16","w":267},"\u220f":{"d":"37,31v0,-3,2,-9,7,-19v5,-10,8,-20,10,-30v9,-59,13,-120,13,-183v0,-22,-4,-43,-11,-62v-4,-9,-6,-15,-6,-17v0,-4,6,-7,18,-9v12,-2,38,-3,79,-3r110,0v30,0,46,3,51,7r2,5v0,3,-2,8,-6,16r-8,16v-7,16,-13,30,-15,44v-2,14,-5,46,-10,96v-5,50,-7,80,-7,90v0,10,0,16,1,20r2,7r3,7r3,7v0,6,-1,11,-4,14v-9,10,-17,15,-26,15v-9,0,-17,-2,-23,-6v-6,-4,-9,-9,-9,-15v0,-2,1,-8,4,-19v3,-11,4,-23,6,-37v2,-14,4,-50,9,-109v5,-59,8,-91,8,-97v0,-15,-3,-25,-9,-28v-4,-2,-21,-3,-50,-3v-29,0,-46,1,-52,4v-6,3,-10,8,-12,17v-2,9,-6,48,-12,117v-6,69,-8,111,-8,126r1,29v0,6,-3,11,-10,15v-7,4,-14,6,-20,6v-9,0,-17,-3,-24,-11v-4,-4,-5,-7,-5,-10","w":315},"\u2211":{"d":"21,37v0,-6,18,-31,56,-77v38,-46,57,-72,57,-80v0,-5,-15,-29,-43,-74v-28,-45,-43,-72,-43,-80v0,-5,3,-10,9,-13v6,-3,14,-4,24,-4r67,0r67,0v13,0,21,1,26,4v8,4,13,11,13,18v0,11,-5,17,-15,17v-2,0,-7,-1,-17,-4v-10,-3,-19,-4,-29,-5v-10,-1,-26,-2,-47,-2v-21,0,-33,1,-36,3v-3,2,-4,4,-4,8v0,4,12,24,36,61v24,37,37,58,37,63v0,7,-16,30,-49,69v-33,39,-50,61,-50,65v0,6,3,10,10,12v5,1,20,1,45,1v33,0,57,-1,73,-4v16,-3,24,-5,25,-5v7,0,10,2,10,8v0,8,-1,14,-3,18v-2,4,-9,8,-17,12v-8,4,-25,7,-50,7r-16,0r-8,0r-93,0v-14,0,-24,-2,-29,-5v-5,-3,-6,-7,-6,-13","w":265},"\u2212":{"d":"28,-110r0,-4r0,-2v0,-9,2,-14,7,-15v2,0,35,-1,97,-1r76,0v10,0,15,0,17,1v2,1,2,3,2,8r0,7v0,9,-5,13,-14,13r-175,0v-7,0,-10,-2,-10,-7","w":244},"\u2219":{"d":"43,-111r0,-7v0,-8,3,-15,10,-23v4,-4,10,-7,18,-7r6,0v7,0,13,2,17,6v4,4,7,10,7,20v0,10,-3,17,-8,23v-5,6,-13,9,-21,9r-6,0r-3,0v-7,0,-12,-3,-15,-7v-3,-4,-5,-9,-5,-14","w":127},"\u221a":{"d":"33,-147v0,-6,3,-10,11,-14v13,-6,26,-10,38,-10v7,0,12,5,17,14v2,3,9,24,22,61v13,37,21,56,24,56v3,0,17,-41,41,-123v24,-82,41,-135,49,-156v8,-21,17,-31,25,-31v7,0,10,2,10,6v0,13,-36,128,-109,346v-5,15,-11,23,-17,23v-8,0,-14,-3,-18,-10v-4,-7,-15,-35,-32,-85v-17,-50,-27,-74,-32,-74v-2,0,-6,1,-10,2v-5,1,-8,2,-11,2v-5,0,-8,-2,-8,-7","w":251},"\u221e":{"d":"33,-120v0,-17,7,-33,19,-45v12,-12,28,-18,47,-18v19,0,37,7,54,23v10,9,16,14,18,14v1,0,6,-3,14,-11v19,-18,37,-27,57,-27v20,0,36,5,47,16v11,11,17,26,17,44v0,18,-7,33,-19,46v-12,13,-28,19,-49,19v-21,0,-40,-10,-58,-29v-7,-7,-11,-11,-12,-11v-1,0,-6,4,-15,13v-9,9,-19,16,-28,20v-9,4,-21,6,-36,6v-15,0,-28,-5,-39,-17v-11,-12,-17,-26,-17,-43xm53,-115v0,8,5,15,14,21v9,6,17,10,26,10r7,0v8,0,21,-8,39,-23v10,-8,15,-13,15,-15v0,-6,-7,-14,-22,-23v-15,-9,-26,-14,-33,-14r-5,0v-9,0,-18,4,-27,13v-9,9,-14,17,-14,25r0,6xm180,-120v0,6,8,16,23,30v9,8,17,11,25,11r6,0v9,0,18,-4,26,-13v8,-9,12,-18,12,-28r0,-6v0,-11,-4,-20,-11,-28v-7,-8,-14,-11,-23,-11r-4,0v-10,0,-19,4,-29,13v-17,15,-25,26,-25,32","w":320},"\u222b":{"d":"5,52v0,-4,2,-8,6,-12v4,-4,9,-6,16,-6r17,4v11,0,19,-12,23,-37v2,-13,6,-59,10,-137v4,-78,10,-127,17,-148v13,-38,34,-57,62,-57r5,0v7,0,12,2,17,5v5,3,7,5,7,7v0,7,-2,13,-6,17v-4,4,-8,6,-11,6v-3,0,-8,0,-13,-1v-5,-1,-8,-2,-9,-2v-11,0,-18,12,-22,38v-2,11,-5,55,-9,131v-4,76,-11,126,-17,148v-6,22,-14,38,-25,48v-11,10,-24,14,-39,14v-10,0,-16,-2,-21,-5v-5,-3,-8,-6,-8,-8r0,-5","w":169},"\u2248":{"d":"27,-69v0,-9,6,-18,19,-27v13,-9,25,-14,38,-14r4,0v11,0,26,4,45,14v19,10,33,15,42,15v9,0,17,-3,24,-9v12,-10,18,-15,19,-15v7,0,11,4,11,13v0,9,-6,18,-18,27v-12,9,-25,13,-37,13v-12,0,-27,-4,-48,-14v-21,-10,-36,-14,-44,-14v-8,0,-17,4,-27,12v-10,8,-16,11,-17,11v-7,0,-11,-3,-11,-12xm31,-148v0,-9,6,-18,19,-27v13,-9,23,-13,33,-13r8,0v9,0,24,4,45,14v21,10,35,14,42,14v7,0,15,-3,23,-9v1,-1,5,-2,10,-7v5,-5,8,-7,10,-7v7,0,11,4,11,12v0,8,-6,18,-18,27v-12,9,-24,14,-37,14r-5,0v-9,0,-23,-4,-44,-14v-21,-10,-35,-15,-43,-15v-9,0,-19,5,-30,14r-3,3v-5,4,-8,7,-10,7v-7,0,-11,-4,-11,-13","w":244},"\u2260":{"d":"33,-74r0,-4v0,-4,3,-8,8,-9v5,-1,15,-2,31,-2v16,0,25,-1,28,-3v3,-2,8,-10,14,-22v6,-12,9,-18,9,-20v0,-2,-13,-4,-40,-4v-27,0,-41,0,-44,-2v-3,-2,-4,-6,-4,-13v0,-7,1,-10,4,-11v3,-1,19,-2,48,-2v29,0,47,-2,52,-6v2,-2,8,-9,15,-23v7,-14,13,-21,18,-21v10,0,15,4,15,11v0,2,-2,6,-5,13v-3,7,-5,11,-5,13v0,5,3,9,11,10v3,1,8,1,15,1v7,0,12,2,15,4v3,2,3,6,3,12v0,6,-2,11,-8,12v-6,1,-16,2,-32,2v-16,0,-24,1,-27,3v-3,2,-8,9,-14,21v-6,12,-9,19,-9,21v0,2,13,4,39,4r41,0v6,1,9,6,9,13v0,7,-1,12,-3,13v-2,1,-18,2,-47,2v-29,0,-46,2,-53,5v-4,2,-10,10,-17,24v-7,14,-14,21,-21,21v-7,0,-12,-4,-12,-10v0,-2,2,-7,5,-14v3,-7,5,-12,5,-13v0,-5,-1,-7,-5,-9v-2,-1,-8,-1,-17,-2v-9,-1,-16,-2,-18,-4v-2,-2,-4,-5,-4,-11","w":241},"\u2264":{"d":"34,-7r0,-7v0,-9,1,-13,3,-14v2,-1,10,-2,25,-2r2,0r65,1v62,0,94,2,94,6r0,7r0,6v0,6,-5,10,-16,10r-21,0r-29,-1r-29,0v-62,0,-94,-2,-94,-6xm42,-140v0,-12,3,-20,8,-23r10,-6r11,-5v2,-1,6,-3,11,-5r15,-7r25,-12r40,-19v1,-1,4,-2,10,-5r7,-4v25,-12,38,-17,39,-17v3,0,4,4,4,13v0,9,-5,16,-16,22r-125,60v0,1,20,12,61,32v41,20,61,30,62,31v9,5,14,13,14,21v0,8,-2,13,-5,13r-2,0v-1,0,-47,-23,-136,-67v-22,-11,-33,-18,-33,-22","w":244},"\u2265":{"d":"35,-7r0,-6v0,-9,2,-14,6,-15v4,-1,34,-1,91,-1r74,-1v11,0,17,3,17,7r0,6v0,9,-1,14,-5,15v-4,1,-34,1,-92,1r-7,0r-20,0r-16,1r-17,0r-16,0v-10,0,-15,-3,-15,-7xm44,-67v0,-6,4,-12,14,-18v6,-4,28,-15,67,-33v39,-18,59,-28,59,-29v0,-1,-19,-12,-59,-31v-40,-19,-62,-29,-66,-32v-8,-5,-11,-13,-11,-21v0,-8,1,-12,5,-12v6,0,59,26,160,78v7,3,10,8,10,13v0,10,-2,17,-6,20r-84,41v0,0,-83,40,-84,40v-4,0,-5,-5,-5,-16","w":244},"\u25ca":{"d":"45,-142v0,-9,26,-55,79,-140v5,-8,12,-12,20,-12v8,0,15,6,20,17r29,70v0,0,26,63,26,64v0,1,-2,4,-5,10v-5,9,-5,9,-10,17r-3,7r-6,9r-54,96v-6,10,-13,14,-20,14r-3,0v-6,0,-13,-5,-18,-16v-8,-17,-19,-43,-33,-79v-14,-36,-22,-55,-22,-57xm77,-139v0,1,13,35,38,102v4,10,7,15,9,15v1,0,4,-6,11,-20r26,-51r12,-24r7,-12r3,-5r4,-7r0,-3v0,-1,-13,-35,-38,-102v-4,-10,-7,-15,-9,-15v-1,0,-6,9,-15,27v-32,57,-48,87,-48,92r0,3","w":242}}}); +Cufon.registerFont({"w":231,"face":{"font-family":"Averia","font-weight":662,"font-style":"italic","font-stretch":"normal","units-per-em":"420","panose-1":"2 0 6 3 0 0 0 0 0 4","ascent":"327","descent":"-93","x-height":"1","bbox":"-60 -383 454 94","underline-thickness":"20.0977","underline-position":"-29.1211","slope":"-11.4","unicode-range":"U+0020-U+25CA"},"glyphs":{" ":{"w":134},"!":{"d":"24,-16r0,-8r0,-3v0,-8,4,-16,12,-24v5,-5,12,-8,22,-8r7,0v6,0,11,2,15,5v4,3,6,7,6,14r0,6v0,11,-3,19,-10,26v-7,7,-14,10,-24,10r-7,0v-6,0,-11,-1,-15,-4v-4,-3,-6,-7,-6,-12r0,-2xm52,-97v0,-2,0,-7,1,-15r2,-9r0,-3r1,-10r1,-3r1,-10r4,-27v1,-6,3,-22,6,-47v3,-25,5,-42,8,-49v3,-7,7,-13,12,-15v5,-2,13,-4,26,-4v13,0,19,3,19,9v0,4,-4,22,-11,55v-7,33,-18,72,-34,118v-3,8,-6,13,-10,16v-4,3,-9,5,-16,5v-7,0,-10,-3,-10,-9r0,-2","w":136},"\"":{"d":"55,-181r0,-5r1,-9r0,-7v0,-2,1,-4,1,-6r0,-5r1,-7r0,-8r1,-19v0,-3,1,-6,1,-8v0,-2,1,-5,1,-9v0,-4,1,-6,1,-7v0,-8,2,-14,5,-18v3,-4,11,-5,22,-5r8,0r4,0v7,0,10,1,10,5r0,5v0,14,-9,45,-27,96v-3,8,-8,12,-15,12r-7,0v-5,0,-7,-1,-7,-5xm135,-183r1,-12r0,-7v1,-4,1,-8,1,-11v0,-3,1,-6,1,-7r0,-8r2,-25r1,-6r0,-5v0,-2,1,-3,1,-4v0,-11,2,-18,6,-21v4,-3,12,-5,22,-5r7,0v10,0,15,2,15,7v0,20,-10,53,-28,101v-3,7,-9,11,-17,11v-8,0,-12,-3,-12,-8","w":187},"#":{"d":"25,-90v0,-10,4,-17,10,-21v1,-1,6,-1,16,-3v10,-2,16,-5,19,-8v7,-7,10,-19,10,-36v0,-5,-3,-8,-9,-9v-11,-2,-16,-4,-17,-4v-3,-2,-6,-7,-6,-13v0,-6,3,-12,9,-15v2,-1,8,-3,17,-4v9,-1,16,-3,19,-6v3,-3,9,-14,14,-32v5,-18,8,-29,10,-31v4,-5,11,-8,22,-8v6,0,8,3,8,9v0,1,-1,4,-3,12r-4,14v-5,19,-8,29,-8,33v0,5,9,7,27,7v7,0,12,-3,14,-8v1,-2,2,-6,4,-13r3,-14v5,-19,9,-29,12,-33v3,-4,8,-5,17,-5v9,0,13,1,13,4v0,3,-2,12,-7,26v-5,14,-7,26,-7,32v0,5,4,8,13,11v9,3,14,8,14,14v0,6,-3,12,-6,15v-3,3,-10,5,-19,6v-9,1,-15,3,-18,5v-8,7,-13,21,-13,42v0,3,5,5,14,6v9,1,15,2,17,4v2,2,3,6,3,12v0,6,-3,11,-8,15v-2,2,-8,3,-18,4v-10,1,-18,4,-22,9v-2,2,-5,13,-11,32v-6,19,-10,30,-13,33v-3,3,-8,4,-16,4v-8,0,-12,-3,-12,-7v0,-3,3,-12,8,-28v5,-16,8,-27,8,-31v0,-4,-1,-6,-3,-7v-2,-1,-8,-2,-18,-2v-10,0,-15,1,-17,4v-2,3,-6,13,-10,29v-4,16,-8,26,-10,31v-4,8,-10,12,-19,12r-7,0v-5,0,-7,-1,-7,-4v0,-3,3,-12,8,-28v5,-16,8,-27,8,-32v0,-5,-5,-9,-14,-12v-9,-3,-15,-7,-15,-11xm100,-114v0,1,2,0,5,0r0,0r15,-1v12,0,19,-2,22,-5v3,-3,4,-8,6,-16v2,-11,5,-18,7,-23v2,-5,3,-8,3,-9v0,-1,-5,-2,-15,-2r-4,0v-13,0,-22,2,-24,6v-10,18,-15,35,-15,50","w":238},"$":{"d":"19,-42v0,-5,1,-10,5,-15v4,-5,7,-7,11,-7v2,0,8,5,18,16v10,11,19,16,28,16v5,0,10,-5,13,-14v7,-21,10,-39,10,-54v0,-9,-5,-19,-16,-28v-15,-13,-25,-24,-30,-32v-5,-8,-7,-17,-7,-26v0,-20,6,-37,19,-51v11,-12,26,-20,46,-25v10,-3,17,-4,18,-5v5,-2,8,-7,12,-15v4,-8,8,-12,13,-12v6,0,9,4,11,12v1,5,6,11,16,18v16,12,24,22,24,30v0,6,-1,12,-4,16v-3,4,-6,6,-10,6v-4,0,-10,-4,-17,-12v-7,-8,-14,-12,-21,-12v-4,0,-7,2,-10,8v-8,18,-12,36,-12,53v0,8,6,17,19,27v26,19,39,40,39,63v0,10,-2,20,-7,31v-9,21,-25,35,-47,43v-4,1,-11,3,-21,5v-10,2,-16,3,-19,6v0,0,-4,7,-9,20v-4,8,-7,13,-12,13v-7,0,-10,-4,-10,-12v0,-8,-2,-13,-4,-16v-2,-3,-8,-7,-18,-12v-19,-9,-28,-20,-28,-35xm92,-199v0,7,2,13,8,19v6,6,11,9,13,9v2,0,3,-2,3,-6v1,-5,2,-8,2,-10v0,-2,2,-4,2,-7r0,-5r10,-39r0,-2v0,0,-1,-1,-2,-1r-2,0v-9,0,-17,5,-24,13v-7,8,-10,16,-10,23r0,6xm110,-28r2,0r1,0v9,0,17,-5,25,-13v8,-8,12,-16,12,-24r1,-5r0,-5v0,-8,-3,-16,-9,-22v-6,-6,-11,-9,-14,-9v-3,0,-4,3,-4,9v-6,29,-10,48,-12,54v-2,6,-3,11,-3,13v0,2,0,2,1,2","w":223},"%":{"d":"45,-182r0,-9v0,-9,2,-20,6,-32v4,-12,10,-22,18,-32v8,-10,17,-17,27,-22v10,-5,19,-8,28,-8r7,0v11,0,22,4,30,13v8,9,12,19,12,33r0,5v0,11,-2,24,-7,36v-10,25,-24,42,-45,53v-9,5,-18,7,-27,7r-7,0v-11,0,-21,-4,-29,-12v-8,-8,-13,-19,-13,-32xm64,1v0,-3,68,-93,202,-268v8,-10,16,-15,24,-15v10,0,15,0,15,2r0,3v0,8,-64,93,-194,257v-13,16,-23,24,-31,24v-11,0,-16,-1,-16,-3xm83,-184v0,7,1,12,4,15v3,3,7,5,12,5v8,0,16,-7,24,-21v8,-14,12,-29,12,-42r0,-6r0,-4v0,-8,-1,-14,-4,-17v-3,-3,-7,-5,-10,-5r-3,0v-8,0,-15,7,-23,21v-8,14,-12,27,-12,40r0,3r0,4r0,7xm196,-41r0,-5r0,-2v0,-10,2,-22,7,-35v5,-13,12,-23,20,-32v8,-9,17,-16,26,-20v9,-4,18,-7,26,-7r7,0r1,0v11,0,20,4,28,12v8,8,13,20,13,34r0,5v0,10,-2,22,-6,34v-4,12,-10,23,-18,32v-17,20,-36,31,-56,31r-4,0r-2,-1v-12,0,-22,-4,-30,-13v-8,-9,-12,-19,-12,-33xm234,-42v0,7,1,13,4,16v3,3,6,5,10,5r2,0v8,0,16,-6,22,-18v9,-17,13,-31,13,-44r1,-6r0,-6v0,-8,-2,-13,-5,-16v-3,-3,-5,-5,-8,-5r-4,0v-8,0,-15,6,-21,18v-9,17,-14,31,-14,45r0,5r0,6","w":337},"&":{"d":"23,-75v0,-26,14,-49,42,-69v17,-12,26,-21,26,-26v0,-5,-1,-12,-3,-22v-2,-10,-2,-19,-2,-26v0,-18,7,-34,20,-47v13,-13,28,-20,46,-20r6,0v16,0,29,5,39,15v10,10,16,22,16,37v0,12,-3,25,-10,40v-4,8,-7,15,-8,20v-1,5,-2,11,-5,18v-3,7,-4,13,-4,17v0,4,2,7,6,10v4,3,7,4,9,4v4,0,7,-2,11,-4v14,-8,27,-12,40,-12v13,0,19,3,19,10v0,1,-5,12,-16,31v-11,19,-17,32,-17,39v0,7,5,15,15,25v10,10,14,16,14,19v0,3,-1,5,-5,8v-4,3,-9,4,-17,4v-8,0,-16,-1,-25,-5v-9,-4,-18,-6,-23,-6v-5,0,-21,2,-47,6v-26,4,-41,6,-43,6v-40,0,-65,-13,-77,-38v-5,-10,-7,-21,-7,-34xm75,-77v0,10,4,19,12,28v8,9,16,13,27,13r3,0r4,0r2,0v9,0,17,-2,24,-7v7,-5,10,-8,10,-11r0,-1v0,-1,-5,-9,-14,-23r-22,-36v0,0,-10,-14,-12,-14r-2,0r-1,0v-6,0,-13,4,-20,14v-7,10,-11,19,-11,29r0,8xm134,-219r0,1r1,8v0,4,2,11,7,21v1,2,2,4,4,4v8,0,17,-7,27,-21v7,-9,10,-19,10,-27r0,-4v0,-5,-2,-10,-5,-14v-3,-4,-9,-6,-16,-6v-7,0,-13,3,-19,10v-6,7,-9,14,-9,22r0,5r0,1","w":300},"'":{"d":"59,-180r0,-3r0,-2r1,-9v0,-3,1,-6,1,-9r0,-6r0,-5r1,-6r1,-8r0,-3r0,-11r1,-7v1,-6,1,-9,1,-12v0,-13,2,-23,6,-27v4,-4,13,-6,26,-6v13,0,19,3,19,8v0,15,-9,48,-27,98v-3,9,-9,14,-17,14r-4,0v-6,0,-9,-2,-9,-6","w":111},"(":{"d":"32,-58r0,-9v0,-46,12,-92,37,-137v14,-26,31,-47,50,-66v19,-19,34,-29,45,-29v7,0,11,3,11,7v0,4,-5,12,-15,23v-10,11,-18,19,-21,24v-27,37,-45,79,-54,125v-5,23,-7,45,-7,66v0,34,6,65,18,93v5,10,7,19,7,25v0,7,-4,10,-12,10v-8,0,-15,-3,-21,-10v-6,-7,-13,-19,-20,-36v-12,-28,-18,-56,-18,-86","w":154},")":{"d":"-10,67v0,-4,5,-12,15,-22v10,-10,19,-22,28,-35v9,-13,20,-31,29,-53v17,-41,26,-85,26,-131r0,-1v0,-29,-6,-57,-17,-84v-6,-14,-8,-22,-8,-26v0,-9,4,-13,13,-13v8,0,14,4,20,11v6,7,12,19,19,35v12,28,18,57,18,87r0,9v0,46,-12,91,-37,136v-13,24,-30,46,-49,65v-19,19,-35,29,-47,29v-7,0,-10,-2,-10,-7","w":154},"*":{"d":"60,-243v0,-9,5,-14,14,-14v4,0,10,4,20,10v10,6,15,9,16,9v2,0,4,-6,5,-19v1,-13,2,-20,4,-23v3,-6,9,-9,19,-9v7,0,11,4,11,12v0,4,-1,10,-3,17r-6,18v0,3,2,4,5,4v1,0,6,-2,14,-6v8,-4,13,-6,16,-6v11,0,16,4,16,10v0,6,-4,13,-9,19v-2,2,-8,5,-19,10v-4,2,-6,4,-6,6v0,2,2,6,4,11v2,5,3,11,3,16v0,8,-4,12,-12,12v-8,-2,-13,-2,-14,-2r-17,10r-1,0r-2,0r-3,-1v-2,-1,-5,-1,-11,-1v-6,0,-10,-1,-12,-4v-2,-3,-6,-5,-13,-5v-12,0,-17,-3,-17,-9v0,-7,3,-13,9,-19v6,-6,10,-11,10,-15v0,-2,-1,-4,-3,-5v-5,-3,-8,-5,-10,-7v-5,-6,-8,-12,-8,-19","w":194},"+":{"d":"30,-100v0,-17,2,-26,5,-29v3,-3,18,-4,44,-4r11,-1r14,0v0,0,5,-2,6,-5r3,-35v2,-24,4,-36,5,-37v2,-3,10,-4,25,-4v7,0,10,3,10,9r-5,65v0,3,3,4,9,4r15,0v6,0,5,-1,11,-1r14,0r4,0r11,0v7,0,11,2,11,7v0,16,-2,25,-6,27v-4,2,-13,4,-29,4v-10,1,-16,1,-19,1v-15,0,-24,1,-25,3v-1,2,-2,14,-4,36v-2,22,-3,34,-4,37v-2,5,-9,7,-22,7r-8,0v-4,0,-6,-5,-6,-13r3,-30v2,-19,2,-29,2,-31v0,-4,-7,-5,-21,-5r-15,0r-15,1r-4,0r-8,0v-8,0,-12,-2,-12,-6","w":240},",":{"d":"0,54v0,-2,3,-5,8,-10v18,-16,26,-30,26,-40v0,-2,0,-4,-2,-8v-4,-8,-6,-17,-6,-26v0,-21,12,-32,36,-32v8,0,15,1,19,5v2,2,3,8,3,16v0,18,-6,37,-20,60v-7,11,-17,22,-28,31v-11,9,-20,13,-26,13r-3,0v-4,0,-7,-3,-7,-9","w":120},"-":{"d":"19,-91v0,-19,4,-31,11,-35v2,-1,21,-1,56,-1r47,-1v3,0,4,1,4,4v0,20,-3,32,-10,35v-2,1,-22,2,-57,2r-38,0r-7,0v-4,0,-6,-1,-6,-4","w":147},".":{"d":"20,-19r0,-4v0,-12,4,-22,13,-31v5,-5,12,-7,23,-7v11,0,19,2,24,7v2,2,4,4,4,9r0,5r0,5v0,11,-4,21,-12,29v-5,5,-13,8,-24,8r-4,0v-8,0,-14,-1,-18,-4v-4,-3,-5,-7,-5,-12","w":120},"\/":{"d":"-8,26v0,-3,4,-10,11,-23v97,-183,146,-277,150,-284v6,-10,15,-15,26,-15v11,0,17,1,17,4v0,3,-3,8,-7,16r-90,170r-61,114v-8,15,-17,22,-27,22v-13,0,-19,-1,-19,-4","w":172},"0":{"d":"26,-77r0,-16v0,-18,4,-41,11,-66v7,-25,17,-47,29,-65v12,-18,25,-32,40,-42v15,-10,33,-15,51,-15v11,0,20,2,29,7v25,13,38,40,38,82r0,4v0,22,-5,45,-12,71v-15,52,-38,88,-69,107v-15,9,-31,14,-49,14v-20,0,-37,-8,-49,-23v-12,-15,-19,-34,-19,-58xm78,-70v0,13,3,22,7,29v4,7,10,10,18,10v8,0,16,-4,24,-12v8,-8,15,-22,22,-40v7,-18,13,-40,17,-63v4,-23,6,-41,6,-53r0,-8v0,-13,-3,-21,-7,-28v-4,-7,-10,-10,-18,-10v-25,0,-45,35,-61,105v-5,25,-8,43,-8,57r0,13"},"1":{"d":"46,-14r0,-4v0,-6,6,-14,19,-25v13,-11,21,-20,24,-30v3,-10,8,-30,14,-62v6,-32,9,-54,9,-65v0,-7,-5,-14,-15,-19v-14,-8,-21,-14,-21,-18v0,-7,6,-12,16,-16v35,-15,61,-23,79,-23v6,0,9,4,9,10v0,6,-2,18,-6,36v-4,18,-10,47,-17,87v-7,40,-11,64,-11,70v0,6,3,15,9,25v6,10,10,20,10,28v0,6,-6,10,-18,14v-12,4,-26,6,-45,6r-9,0v-21,0,-34,-2,-42,-7v-3,-2,-5,-4,-5,-7","w":226},"2":{"d":"15,-17v0,-6,5,-16,16,-29v4,-5,22,-21,52,-48v30,-27,50,-46,58,-56v15,-19,23,-37,23,-54v0,-10,-3,-17,-10,-23v-7,-6,-15,-8,-25,-8v-10,0,-21,6,-34,17v-13,11,-24,16,-32,16v-8,0,-12,-3,-12,-11v0,-16,8,-30,23,-42v7,-5,16,-10,29,-15v13,-5,25,-7,37,-7r7,0v21,0,39,7,52,19v13,12,20,28,20,49v0,20,-9,40,-27,62v-9,11,-28,28,-57,52v-29,24,-44,38,-44,42v0,5,9,7,28,7r48,-2r14,-1v9,0,13,3,13,10v0,14,-5,26,-15,32v-7,4,-16,6,-30,6r-13,0r-12,0v-8,0,-16,-1,-20,-1r-32,0r-7,-1r-20,0v0,0,-16,0,-22,-2v-6,-2,-8,-6,-8,-12","w":229},"3":{"d":"13,-29v0,-8,1,-14,5,-18v4,-4,8,-5,14,-5v6,0,14,3,26,11v12,8,25,12,38,12v13,0,25,-5,35,-15v10,-10,16,-22,16,-38v0,-11,-3,-19,-8,-25v-5,-6,-13,-12,-21,-14v-13,-2,-20,-5,-24,-7v-4,-2,-6,-7,-6,-14v0,-7,8,-13,23,-19v15,-6,28,-13,36,-21v8,-8,12,-19,12,-32v0,-6,-3,-12,-9,-16v-6,-4,-12,-6,-20,-6v-8,0,-19,4,-35,10v-16,6,-24,10,-26,10v-7,0,-11,-5,-11,-14v0,-3,3,-8,7,-15v4,-7,10,-13,19,-18v16,-9,36,-13,62,-13r7,0v19,0,35,4,46,14v11,10,17,21,17,34v0,22,-10,42,-31,60v-13,11,-20,17,-20,19r11,9v0,0,13,13,18,21v5,8,8,19,8,32v0,26,-11,47,-32,66v-11,9,-23,17,-37,22v-14,5,-28,6,-41,6r-7,0v-21,0,-38,-2,-52,-9v-14,-7,-20,-16,-20,-27","w":229},"4":{"d":"24,-90v0,-9,5,-20,14,-32v35,-46,73,-92,115,-138v13,-14,26,-21,42,-21r5,0v10,0,14,4,14,10v0,8,-5,29,-13,64v-8,35,-12,58,-12,67v0,9,3,18,8,27v5,9,8,14,8,17r-8,16v0,0,-8,16,-10,18v-2,2,-4,4,-7,6v-3,2,-3,4,-4,5v-1,1,-2,7,-3,18v-1,11,-4,19,-9,25v-5,6,-19,8,-45,8v-12,0,-19,-8,-19,-25v0,-3,1,-6,3,-11v2,-5,2,-7,2,-8v0,-7,-8,-13,-22,-18v-4,-1,-12,-2,-25,-3v-13,-1,-21,-3,-24,-5v-7,-4,-10,-11,-10,-20xm61,-107v0,1,5,1,15,1r8,0r6,0v23,0,36,-2,38,-6r12,-49v0,0,12,-50,12,-54r0,-1r-35,42v-37,44,-56,66,-56,67","w":232},"5":{"d":"13,-28v0,-5,2,-9,7,-14v5,-5,10,-7,16,-7v6,0,15,4,25,11v10,7,21,11,32,11v17,0,30,-6,41,-19v11,-13,17,-27,17,-43v0,-16,-6,-28,-18,-36v-9,-6,-26,-9,-47,-9r-6,0r-11,0v-11,0,-17,-5,-17,-16v0,-6,5,-25,14,-55v9,-30,14,-48,18,-54v4,-6,9,-9,16,-11v6,-2,16,-3,30,-3r16,0r13,1v6,0,14,-1,25,-2r13,-1v6,-1,10,-1,12,-1r6,0v8,0,12,2,12,9v0,5,-3,13,-8,22v-3,6,-8,10,-13,13v-5,3,-21,4,-47,4v-26,0,-42,2,-46,5v-4,3,-7,9,-11,19v-4,10,-6,17,-6,20r0,0v0,5,6,8,18,8r1,0v11,0,23,2,35,6v36,12,54,36,54,73v0,12,-2,26,-8,39v-6,13,-15,25,-26,35v-22,21,-51,31,-88,31v-18,0,-34,-3,-48,-9v-14,-6,-21,-16,-21,-27","w":229},"6":{"d":"27,-94r0,-5v0,-21,5,-42,12,-62v7,-20,18,-40,33,-57v15,-17,31,-32,51,-43v20,-11,38,-16,56,-16r10,0v20,0,29,6,29,18v0,5,-3,8,-10,11v-3,1,-8,3,-17,4v-24,4,-40,9,-49,15v-9,6,-17,14,-24,23v-7,9,-10,17,-10,25v0,5,3,8,11,8r20,-3v10,0,21,3,30,7v26,12,39,36,39,71v0,13,-3,25,-8,38v-10,26,-26,44,-48,55v-12,6,-25,9,-37,9r-5,0v-12,0,-24,-2,-34,-7v-20,-9,-34,-26,-42,-50v-4,-12,-7,-26,-7,-41xm79,-68v0,11,3,20,8,27v5,7,13,11,24,11v11,0,21,-7,31,-22v10,-15,15,-29,15,-45v0,-3,1,-6,1,-6r0,-10v0,-10,-3,-17,-8,-23v-5,-6,-13,-9,-22,-9v-14,0,-26,7,-35,21v-9,14,-14,32,-14,51r0,5"},"7":{"d":"43,-5v0,-11,22,-47,64,-110v42,-63,63,-97,63,-102v0,-5,-3,-8,-9,-10v-6,-2,-14,-3,-27,-3v-13,0,-23,1,-30,3v-7,2,-16,4,-25,7v-9,3,-16,4,-20,4v-6,0,-8,-6,-8,-16v0,-10,4,-20,11,-30v7,-10,17,-15,29,-15r34,2r43,0r21,0r21,0v18,0,27,4,27,12v0,9,-6,23,-18,43v-6,10,-7,10,-15,23r-8,13v-35,54,-59,92,-70,114v-11,22,-19,37,-23,46v-4,9,-7,15,-9,18v-6,8,-16,13,-30,13v-14,0,-21,-4,-21,-12","w":228},"8":{"d":"19,-56v0,-32,17,-59,51,-80v8,-5,11,-8,11,-9v0,-2,-3,-6,-8,-12v-12,-13,-18,-28,-18,-46v0,-10,3,-21,9,-32v6,-11,14,-20,24,-28v19,-15,39,-22,62,-22r10,0v17,0,31,5,43,15v12,10,18,23,18,39r0,4v0,13,-5,27,-15,41v-5,6,-11,13,-21,20v-10,7,-15,12,-15,13v0,1,4,5,10,12v6,7,12,14,16,22v4,8,7,18,7,30v0,24,-11,45,-32,64v-9,9,-21,16,-34,21v-13,5,-26,8,-39,8r-9,0v-20,0,-37,-5,-50,-17v-13,-12,-20,-26,-20,-43xm70,-62v0,9,3,17,9,23v6,6,12,10,20,10r5,0v12,0,23,-6,32,-16v9,-10,14,-21,14,-31r0,-3r0,-4v0,-11,-3,-21,-11,-30v-8,-9,-17,-13,-27,-13v-7,0,-16,6,-26,19v-10,13,-16,26,-16,40r0,5xm104,-205v0,8,4,16,10,23v6,7,13,11,21,11r3,0v7,0,15,-5,23,-17v8,-12,12,-22,12,-31r0,-7v0,-6,-2,-13,-7,-18v-5,-5,-11,-8,-17,-8r-6,0v-10,0,-19,5,-27,14v-8,9,-12,19,-12,29r0,4"},"9":{"d":"30,-16v0,-5,2,-9,7,-11v5,-2,17,-5,34,-7v29,-4,50,-17,63,-39v5,-8,7,-14,7,-21v0,-6,-7,-9,-19,-9v-4,0,-9,1,-16,1v-7,0,-16,-2,-25,-7v-25,-13,-38,-37,-38,-72v0,-12,3,-24,8,-37v5,-13,11,-24,20,-33v18,-19,41,-30,67,-30r5,0v9,0,20,3,30,7v21,9,34,24,42,48v4,13,7,28,7,42r0,10v0,21,-5,42,-13,63v-8,21,-20,40,-34,57v-14,17,-32,31,-51,41v-19,10,-38,15,-56,15r-10,0v-9,0,-16,-1,-21,-5v-5,-4,-7,-8,-7,-13xm93,-171v0,13,3,24,8,30v5,6,11,10,18,10r5,0v13,0,24,-7,33,-21v9,-14,13,-30,13,-49r0,-7v0,-12,-3,-21,-8,-28v-5,-7,-11,-11,-19,-11r-3,0v-11,0,-22,8,-32,22v-10,14,-15,30,-15,46r0,2r0,1r0,5"},":":{"d":"21,-18r0,-7v0,-10,4,-19,12,-28v5,-6,13,-9,23,-9r7,0v6,0,12,2,18,6v3,2,4,5,4,10r1,5r0,3r-1,1r0,6v0,7,-3,14,-11,23v-5,5,-11,8,-18,8v-2,0,-4,1,-5,1r-5,0v-17,0,-25,-6,-25,-19xm49,-151r0,-7r0,-4v0,-9,4,-17,12,-25v5,-5,12,-7,20,-7r2,-1r5,0v8,0,14,2,20,6v3,2,5,7,5,14r0,7v0,1,-1,2,-1,3v0,10,-4,18,-13,26v-5,5,-13,7,-23,7r-4,0v-16,0,-23,-6,-23,-19","w":126},";":{"d":"2,51v0,-2,2,-5,7,-10v17,-16,26,-29,26,-39v0,-3,0,-6,-1,-8v-4,-8,-7,-17,-7,-26v0,-9,4,-17,9,-23v5,-6,13,-9,23,-9r7,0v13,0,20,5,20,15r0,7v0,8,-2,17,-7,30v-5,13,-11,26,-21,38v-10,12,-20,21,-28,26v-8,5,-16,8,-22,8v-5,0,-6,-3,-6,-9xm51,-154v0,-12,4,-23,12,-33v5,-5,13,-8,23,-8r5,0v9,0,16,2,19,5v3,3,5,8,5,15r0,5v0,2,-1,4,-1,6v0,9,-3,17,-10,23v-7,6,-15,9,-24,9r-7,0v-7,0,-13,-2,-18,-6v-3,-2,-4,-5,-4,-10r0,-6","w":126},"<":{"d":"32,-108r0,-4v0,-12,4,-21,13,-26v103,-55,161,-82,171,-82v4,0,5,6,5,17v0,11,-5,20,-17,27v-6,4,-28,14,-65,31v-37,17,-55,27,-55,29v0,2,18,12,54,30r57,29v11,7,17,17,17,28v0,11,-2,16,-6,16v-9,0,-62,-26,-160,-79v-9,-5,-14,-10,-14,-16","w":240},"=":{"d":"27,-64r0,-9r1,-2r0,-5r0,-6v0,0,1,-5,3,-7v2,-2,8,-2,17,-2r158,0v13,0,20,2,20,5r0,8r0,7v0,8,-2,13,-5,14v-3,1,-23,2,-57,2r-124,0v-9,0,-13,-2,-13,-5xm31,-146r0,-2r0,-3r0,-2r1,-9v0,-8,2,-11,6,-12v4,-1,30,-2,77,-2r102,0v9,0,13,2,13,7r0,5r0,2v0,11,-1,18,-3,20v-2,2,-10,3,-22,3r-154,0v-14,0,-20,-2,-20,-7","w":241},">":{"d":"32,-28v0,-11,6,-20,19,-28v8,-5,30,-15,65,-31v35,-16,53,-26,53,-27v0,-3,-18,-14,-54,-32v-36,-18,-56,-28,-59,-30v-10,-7,-15,-14,-15,-23v0,-13,2,-20,7,-20v2,0,8,2,17,7v76,38,123,62,140,72v10,6,16,12,16,19v0,13,-3,21,-8,24v0,0,-16,9,-48,24r-87,42v-24,13,-38,19,-42,19v-3,0,-4,-5,-4,-16","w":240},"?":{"d":"46,-17r0,-7r0,-3v0,-7,3,-14,9,-21v6,-7,13,-10,21,-10r6,-1r5,0v1,0,2,1,3,1v5,0,9,1,13,4v4,3,6,8,6,14r0,7v0,11,-4,20,-11,26v-7,6,-15,9,-24,9r-6,0v-6,0,-13,-2,-18,-6v-3,-2,-4,-7,-4,-13xm55,-241r0,-6v0,-10,6,-18,17,-25v16,-10,32,-15,50,-15r9,0v18,0,34,5,47,16v13,11,20,25,20,40r0,7v0,26,-15,51,-46,76v-3,2,-9,6,-17,12v-8,6,-14,10,-16,13v-2,3,-3,6,-5,12r-6,18v-4,4,-8,7,-13,7r-6,0v-10,0,-16,-8,-16,-22v0,-11,3,-22,9,-31v6,-9,14,-18,26,-28v12,-10,20,-19,26,-28v6,-9,8,-20,8,-31v0,-6,-2,-10,-7,-13v-4,-3,-9,-5,-14,-5v-8,0,-16,4,-26,10v-11,8,-21,11,-27,11v-9,0,-13,-6,-13,-18","w":198},"@":{"d":"40,-57v-6,-17,-8,-33,-8,-50v0,-21,4,-42,13,-64v9,-22,21,-42,38,-58v17,-16,35,-29,55,-37v20,-8,40,-12,59,-12v37,0,67,10,89,28v11,10,20,22,27,36v7,14,11,28,11,42r0,12v0,11,-3,22,-7,36v-4,14,-11,26,-20,38v-9,12,-19,20,-30,25v-11,5,-21,7,-30,7v-9,0,-16,-1,-21,-4r-6,-5v-6,-5,-9,-7,-10,-7r-7,2r-8,4r-9,5v-10,4,-19,6,-27,6v-11,0,-21,-4,-29,-12v-9,-9,-14,-21,-14,-35v0,-14,4,-29,10,-42v6,-13,14,-23,23,-30v9,-7,19,-11,26,-13v7,-2,18,-3,32,-3v14,0,24,0,30,-1v6,-1,9,-1,11,-1r6,4v4,3,6,7,6,12v0,5,-2,16,-6,34v-4,18,-5,31,-5,41v0,10,4,15,11,15v4,0,9,-3,14,-7v10,-8,17,-18,22,-31v5,-13,7,-26,7,-38v0,-11,-2,-23,-6,-33v-5,-14,-12,-25,-23,-34v-11,-10,-22,-16,-33,-19v-12,-3,-24,-4,-35,-4v-18,0,-34,4,-50,11v-17,8,-31,18,-44,33v-13,15,-23,31,-29,48v-6,17,-9,37,-9,59v0,14,3,28,10,42v13,29,34,47,64,55v13,4,27,6,40,6v13,0,25,-2,38,-5r10,-4v10,-3,16,-4,18,-4v7,0,11,3,11,8v0,5,-10,11,-30,17v-20,6,-40,9,-60,9v-41,0,-74,-12,-99,-38v-12,-12,-21,-27,-26,-44xm142,-93v0,6,2,11,5,14v3,3,7,6,12,6v11,0,23,-10,35,-29v12,-19,18,-39,18,-60v0,-10,-6,-16,-17,-16v-7,0,-12,2,-19,7v-7,5,-12,11,-17,19v-11,19,-17,36,-17,50r0,9","w":333},"A":{"d":"5,-25v0,-6,3,-13,10,-19v12,-11,35,-47,69,-109r43,-80v10,-19,15,-30,17,-33v10,-15,24,-22,44,-22v10,0,17,5,20,14v1,4,4,32,9,84v5,52,8,86,10,101v2,15,6,26,10,34v4,8,6,13,6,17v0,11,-8,21,-24,29v-7,4,-19,6,-34,6v-15,0,-23,-4,-23,-10r6,-18v2,-8,2,-16,2,-22v0,-13,-3,-21,-11,-24v-5,-2,-18,-3,-38,-3v-20,0,-31,1,-35,4v-6,4,-12,16,-18,36v-6,20,-10,31,-10,31v-3,4,-10,6,-20,6v-10,0,-17,-1,-21,-4v-8,-5,-12,-12,-12,-18xm108,-118v0,2,9,3,28,3r19,0v9,0,13,-2,13,-7r0,-7r0,-2r0,-3r0,-1r0,-3r0,-2r0,-3r-2,-26v0,-36,-2,-53,-5,-53v0,0,-4,6,-10,19v-10,19,-10,19,-17,35v-5,11,-11,22,-17,33v-6,11,-9,16,-9,17","w":273},"B":{"d":"9,-9v0,-2,5,-9,15,-20v6,-7,10,-17,13,-29v24,-89,36,-149,36,-180v0,-5,-2,-11,-5,-17v-3,-6,-4,-10,-4,-11v0,-8,5,-13,14,-15v17,-3,46,-4,86,-4r11,0v24,0,42,5,55,14v13,9,19,22,19,38r0,6v0,14,-6,28,-16,40v-5,6,-10,11,-15,14v-5,3,-10,7,-16,10v-6,3,-9,4,-9,5v0,1,3,4,12,10v9,6,16,13,21,21v5,8,8,20,8,34v0,14,-3,27,-10,39v-20,36,-62,54,-129,54r-68,0v-12,0,-18,-3,-18,-9xm88,-43v0,5,6,7,19,7r2,0v22,0,39,-6,52,-16v13,-10,19,-23,19,-39r0,-8v0,-8,-3,-16,-10,-22v-7,-6,-15,-9,-26,-9r-4,-1r-14,0v-11,0,-18,4,-21,12v-11,29,-17,55,-17,76xm113,-172v0,4,1,5,5,5r9,0r1,0r4,-1r3,0v17,0,31,-5,42,-16v11,-11,16,-23,16,-39v0,-9,-3,-15,-9,-20v-6,-5,-12,-8,-20,-8r-13,0v-11,0,-18,4,-22,12v-2,4,-4,16,-9,36v-5,20,-7,30,-7,31","w":261},"C":{"d":"28,-104r0,-13v0,-20,4,-41,13,-63v18,-45,47,-77,87,-94v18,-8,36,-11,55,-11r6,0v7,0,16,0,26,2v10,2,20,3,29,3v9,0,14,2,17,5v5,6,8,12,8,21r0,5v0,11,-1,20,-5,26v-4,6,-8,8,-12,8v-4,0,-10,-4,-20,-12v-10,-8,-18,-14,-25,-17v-7,-3,-17,-5,-28,-5v-11,0,-22,2,-33,9v-22,13,-38,36,-49,68v-7,18,-10,36,-10,53v0,27,6,47,17,60v11,13,27,21,47,21v13,0,28,-4,46,-12v18,-8,28,-12,32,-12v7,0,11,5,11,13v0,4,-3,10,-7,17v-4,7,-12,13,-24,19v-16,9,-40,13,-73,13v-33,0,-60,-10,-79,-29v-10,-10,-17,-22,-22,-35v-5,-13,-7,-27,-7,-40","w":264},"D":{"d":"11,-7r0,-3v0,0,5,-9,16,-24v5,-7,9,-19,14,-37v5,-18,12,-48,21,-90v9,-42,13,-66,13,-73v0,-7,-1,-14,-4,-21v-3,-7,-5,-11,-5,-12v0,-7,4,-12,12,-14v11,-3,33,-4,66,-4r24,-1v54,0,88,19,104,57v6,14,9,28,9,43r0,5v0,28,-5,55,-16,79v-11,24,-25,44,-42,59v-17,15,-37,26,-59,33v-22,7,-47,9,-77,9r-19,1r-5,0r-13,-1v-26,0,-39,-2,-39,-6xm92,-44v0,5,7,7,19,7r8,0v28,0,51,-13,71,-37v10,-12,17,-27,23,-45v6,-18,9,-35,9,-50r0,-12v0,-22,-5,-39,-16,-51v-11,-12,-25,-18,-43,-18r-6,0v-14,0,-22,5,-25,16r-8,40r-1,6r-6,28r-18,81v0,0,-7,29,-7,35","w":292},"E":{"d":"15,-19v0,-4,4,-13,14,-26v5,-7,10,-17,14,-33v20,-78,30,-131,30,-158v0,-4,-2,-10,-5,-16v-3,-6,-5,-11,-5,-16v0,-5,4,-9,12,-11v13,-3,41,-5,84,-5r16,-1r32,0v20,0,32,2,36,5v4,3,7,9,7,20r0,7v0,13,-5,19,-14,19v-2,0,-6,-1,-12,-4v-6,-3,-12,-6,-20,-8v-8,-2,-21,-3,-39,-3v-13,0,-23,5,-29,14v-11,17,-17,35,-17,52v0,6,7,9,23,9v6,0,16,-1,26,-5v10,-4,17,-6,19,-6v2,0,6,1,9,4v3,3,5,8,5,15v0,18,-3,32,-10,44v-3,6,-8,9,-13,9v-5,0,-12,-3,-20,-7v-8,-4,-18,-6,-29,-6v-11,0,-18,4,-23,10v-8,10,-12,26,-12,49v0,15,2,23,7,26v5,3,15,4,29,4v19,0,40,-4,63,-12v9,-3,14,-5,16,-5v7,0,10,3,10,10v0,14,-5,26,-16,34v-7,6,-20,9,-40,9r-81,0v-24,0,-40,-2,-51,-4v-11,-2,-16,-7,-16,-14","w":245},"F":{"d":"17,-22v0,-6,3,-13,10,-21v7,-8,12,-16,15,-26v7,-24,14,-55,21,-92v7,-37,11,-61,11,-70v0,-9,-2,-16,-4,-22v-2,-6,-3,-10,-3,-11v0,-8,5,-13,15,-15v20,-4,55,-5,107,-5r32,0v10,0,16,2,20,5v4,3,6,10,6,18v0,21,-4,31,-11,31v-3,0,-8,-1,-15,-5v-7,-4,-10,-6,-12,-7v-13,-5,-29,-8,-47,-8v-12,0,-21,5,-27,14v-11,18,-16,37,-16,55v0,6,8,10,24,10v6,0,15,-2,25,-6v10,-4,17,-6,21,-6v8,0,12,6,12,17v0,15,-3,30,-9,43v-4,9,-9,13,-16,13v-5,0,-11,-3,-17,-7v-6,-4,-12,-6,-18,-6v-16,0,-27,4,-33,13v-8,12,-12,33,-12,63v0,4,1,11,3,19v2,8,3,12,3,13v0,9,-8,14,-24,14r-13,0v-19,0,-31,-1,-36,-4v-8,-5,-12,-11,-12,-17"},"G":{"d":"29,-114r0,-8v0,-20,5,-40,14,-62v9,-22,21,-41,35,-55v14,-14,30,-25,49,-34v19,-9,38,-13,58,-13r16,0r9,1v4,0,9,1,16,2r16,3v1,0,6,1,13,1v7,0,11,1,14,2v3,1,7,4,10,9v3,5,5,12,5,22v0,10,-3,17,-7,22v-4,5,-8,8,-13,8v-5,0,-12,-4,-22,-12v-10,-8,-19,-14,-27,-17v-8,-3,-18,-5,-30,-5v-12,0,-25,3,-37,10v-12,7,-24,17,-33,30v-19,27,-28,59,-28,96v0,23,6,41,19,55v13,14,27,20,45,20v12,0,22,-3,31,-10v9,-7,13,-14,13,-24v0,-4,-3,-14,-8,-28v-5,-14,-7,-22,-7,-22v0,-7,6,-11,17,-13v11,-2,25,-2,44,-2v19,0,30,1,35,4v5,3,7,7,7,12v0,2,-3,7,-9,15v-6,8,-9,18,-12,27v-10,34,-18,52,-22,57v-4,5,-12,9,-23,12v-29,8,-53,12,-71,12v-56,0,-92,-22,-109,-67v-6,-15,-8,-31,-8,-48","w":293},"H":{"d":"11,-16v0,-4,4,-10,11,-18v7,-8,13,-18,16,-29v3,-11,9,-40,18,-87v9,-47,13,-74,13,-79v0,-5,-1,-11,-4,-16v-3,-5,-4,-8,-4,-9v0,-10,4,-17,13,-21v7,-3,20,-4,39,-4v19,0,31,1,34,3v3,2,4,4,4,7v0,3,-2,9,-7,18v-5,9,-9,17,-11,23v-7,22,-11,37,-11,47v0,10,3,16,9,17v4,1,19,1,44,1v25,0,40,-3,45,-9v3,-3,5,-10,8,-21v3,-11,5,-22,5,-32v0,-10,-1,-18,-2,-23r-3,-12v0,-10,4,-16,13,-18v9,-2,26,-4,52,-4v15,0,23,3,23,9v0,6,-4,13,-10,20v-6,7,-11,16,-14,26v-3,10,-10,40,-20,88v-10,48,-15,74,-15,79v0,5,1,11,4,18v3,7,4,11,4,13v0,9,-6,15,-17,19v-5,2,-17,2,-35,2v-18,0,-30,0,-34,-2v-4,-2,-6,-5,-6,-12v0,-1,3,-6,8,-15v5,-9,9,-16,11,-24v9,-27,13,-47,13,-59v0,-8,-3,-12,-9,-14v-3,-1,-12,-1,-26,-1v-36,0,-56,4,-62,11v-4,4,-8,14,-11,29v-3,15,-5,29,-5,40v0,6,0,11,1,16r2,6v1,5,2,8,2,11v0,6,-5,11,-13,14v-8,3,-27,5,-57,5v-11,0,-16,-5,-16,-13","w":302},"I":{"d":"14,-14v0,-5,4,-12,13,-23v9,-11,15,-24,19,-38v19,-76,28,-127,28,-152v0,-7,-2,-15,-6,-23v-4,-8,-7,-13,-7,-16v0,-8,6,-14,16,-17v6,-2,21,-3,44,-3r21,0v12,0,18,3,18,11v0,3,-4,11,-12,22v-8,11,-13,23,-17,36v0,2,-3,10,-6,25r-1,4v0,1,-1,4,-2,9r-1,9r-14,64v-5,24,-8,39,-8,47v0,8,2,15,6,24v4,9,6,13,6,14v0,14,-10,20,-31,20r-12,0r-4,0r-8,0v-19,0,-32,-1,-36,-3v-4,-2,-6,-5,-6,-10","w":150},"J":{"d":"-5,-10v0,-9,4,-15,10,-21v6,-6,12,-8,17,-8v5,0,10,0,15,2v5,2,10,3,15,3v9,0,17,-4,23,-11v9,-11,17,-24,22,-40v5,-16,10,-41,15,-76v5,-35,8,-56,8,-62v0,-6,-3,-12,-8,-20v-5,-8,-7,-16,-7,-22v0,-6,3,-12,9,-15v8,-4,22,-6,41,-6r15,0v10,0,17,2,23,5v6,3,8,6,8,11v0,5,-2,12,-6,21r-4,7v-5,11,-12,35,-20,72v-16,74,-28,119,-37,136v-9,17,-21,30,-37,40v-16,10,-33,14,-50,14v-17,0,-29,-2,-38,-8v-9,-6,-14,-13,-14,-22","w":193},"K":{"d":"27,-4v-4,-2,-6,-4,-6,-8v0,-6,4,-14,11,-24v5,-7,10,-19,14,-36v19,-85,28,-139,28,-163v0,-3,-1,-8,-3,-15v-2,-7,-4,-12,-4,-15v0,-7,4,-12,10,-15v6,-3,23,-5,48,-5r8,0v14,0,21,5,21,14v0,4,-3,10,-9,19v-6,9,-10,16,-13,24v-7,18,-10,36,-10,51v0,3,1,4,4,4v3,0,5,-1,8,-3v14,-9,32,-26,56,-53v12,-13,19,-24,22,-33v3,-9,5,-14,6,-15v5,-5,22,-7,51,-7v13,0,20,3,20,9v0,5,-6,12,-18,20v-12,8,-21,16,-27,21v-24,22,-41,38,-52,50v-11,12,-16,21,-16,27v0,6,7,24,22,54v15,30,27,52,36,65v9,13,13,20,13,22v0,7,-2,11,-6,13v-4,2,-15,3,-35,3r-8,0v-12,0,-20,-2,-24,-8v-2,-3,-5,-12,-7,-24v-2,-12,-6,-26,-12,-40v-15,-34,-27,-50,-35,-50v-4,0,-9,7,-14,22v-5,15,-8,32,-8,51r4,25v0,8,-3,15,-10,18v-7,3,-20,5,-36,5v-16,0,-25,-1,-29,-3","w":277},"L":{"d":"14,-18v0,-1,3,-7,9,-17v6,-10,12,-22,16,-36v4,-14,10,-43,20,-89v10,-46,14,-71,14,-75v0,-4,-2,-10,-5,-16v-3,-6,-4,-11,-4,-16v0,-6,2,-10,7,-13v5,-4,12,-6,20,-6r5,0r11,0v17,0,29,0,36,2v7,2,11,6,11,12v0,2,-5,11,-16,26v-5,7,-9,16,-12,27v-3,11,-6,24,-9,42v-5,26,-6,27,-15,71v-6,30,-9,47,-9,52v0,11,12,16,36,16v13,0,29,-4,45,-12v16,-8,27,-13,33,-13v5,0,7,4,7,11v0,16,-3,29,-9,38v-6,9,-15,14,-26,14r-9,0r-36,-2r-40,0v-40,0,-63,0,-70,-2v-7,-2,-10,-6,-10,-14","w":229},"M":{"d":"10,-26r3,-7r5,-6r5,-8v9,-16,24,-67,44,-153v4,-18,6,-32,6,-42r-1,-9r-2,-16v0,-6,2,-10,6,-12v4,-2,12,-3,25,-3r2,0v25,0,41,5,47,16v5,8,10,35,16,80v6,45,9,70,11,76r3,7v4,0,19,-24,46,-72v27,-48,44,-76,51,-84v7,-8,15,-14,25,-17v10,-3,22,-5,40,-5v11,0,16,3,16,9v0,1,-3,8,-8,22v-5,14,-9,30,-12,46v-15,79,-22,128,-22,148v0,3,1,8,4,15v3,7,4,12,4,16v0,6,-6,11,-15,15v-6,3,-14,4,-25,4v-11,0,-19,-2,-25,-5v-6,-3,-9,-6,-9,-10v0,-2,2,-11,6,-26v4,-15,10,-41,17,-77v7,-36,11,-60,11,-71v0,-5,0,-8,-2,-8v-1,0,-16,25,-44,73r-52,91v-5,7,-9,13,-15,17v-6,4,-12,6,-17,6v-8,0,-13,-6,-15,-17r-6,-46v-10,-81,-17,-121,-20,-121v-5,0,-15,30,-29,90r-7,33r-8,39v-2,13,-4,20,-4,20v-4,7,-12,11,-25,11v-13,0,-20,-2,-24,-5v-4,-3,-6,-8,-6,-14","w":358},"N":{"d":"9,-9v0,-4,4,-12,12,-24v8,-12,13,-22,16,-33v3,-11,8,-40,17,-87v9,-47,14,-72,14,-78v0,-6,-1,-13,-3,-19r-1,-6v-2,-8,-4,-12,-4,-13v0,-8,6,-12,18,-12v18,0,32,1,39,4v7,3,14,9,20,17v6,8,22,38,45,90v23,52,35,78,37,78v2,0,4,-2,5,-7v15,-65,23,-111,23,-138v0,-6,0,-10,-1,-14r-2,-7v-2,-7,-2,-10,-2,-11v0,-6,4,-12,11,-14v4,-1,12,-2,24,-2v12,0,20,1,24,3v7,3,11,8,11,16v0,4,-4,11,-11,23v-7,12,-12,23,-15,34v-3,11,-10,43,-21,99v-11,56,-17,87,-19,93v-3,9,-10,13,-17,13v-7,0,-14,-2,-21,-5v-7,-3,-13,-11,-19,-21v-6,-10,-20,-41,-42,-91v-22,-50,-34,-75,-36,-75v-5,0,-9,7,-12,20v-12,59,-18,101,-18,127r2,25v0,8,-5,14,-16,18v-7,2,-21,4,-41,4v-11,0,-17,-3,-17,-7","w":297},"O":{"d":"30,-97r0,-5v0,-22,4,-45,13,-69v9,-24,22,-46,39,-64v33,-36,72,-54,117,-54r0,0v28,0,50,9,67,27v9,10,16,21,20,34v4,13,7,26,7,38r0,10v0,22,-5,44,-15,68v-10,24,-22,43,-37,60v-15,17,-33,30,-52,40v-19,10,-39,14,-60,14r-5,0v-28,0,-50,-8,-68,-26v-18,-18,-26,-42,-26,-73xm91,-98v0,19,4,35,12,47v8,12,19,18,33,18r5,0v10,0,21,-4,32,-11v21,-15,38,-41,49,-79v6,-21,9,-40,9,-56r0,-13v0,-20,-4,-34,-12,-45v-8,-11,-19,-16,-32,-16r-6,0v-11,0,-21,4,-31,11v-21,15,-38,41,-50,79v-6,21,-9,41,-9,59r0,6","w":302},"P":{"d":"11,-14v0,-5,4,-13,10,-22v6,-9,10,-18,13,-28v3,-10,6,-25,11,-47r17,-77v6,-29,10,-46,10,-51r0,0v0,-6,-1,-12,-3,-17v-2,-5,-2,-9,-2,-10v0,-7,4,-12,13,-14v18,-4,49,-5,93,-5r5,0v25,0,44,6,57,17v13,11,20,25,20,43r0,5v0,27,-11,50,-31,69v-19,18,-44,29,-74,33v-17,2,-27,5,-30,7v-8,6,-16,14,-23,25v-4,6,-5,13,-5,20v0,6,1,13,4,20v4,10,7,16,7,17v0,10,-7,18,-20,23v-7,3,-21,5,-42,5r-15,0v-10,0,-15,-4,-15,-13xm111,-152v0,3,5,5,15,5r1,0v18,0,34,-5,46,-15v6,-5,10,-11,15,-21v5,-10,8,-20,8,-31v0,-11,-4,-21,-10,-27v-6,-6,-14,-9,-25,-9r-8,0r-5,0v-8,0,-13,4,-16,11r-11,43r-10,43r0,1","w":250},"Q":{"d":"48,-129r0,-12v0,-41,10,-73,31,-97v17,-19,34,-32,47,-39v13,-7,29,-11,47,-11v18,0,34,2,47,7v27,10,45,30,55,61v4,13,6,27,6,44v0,26,-6,51,-18,75v-8,17,-19,33,-31,47v-21,23,-31,36,-31,39v0,6,4,11,12,17v8,6,20,12,33,18v13,6,20,11,20,13v0,4,-3,8,-11,10v-13,4,-27,6,-40,6r-5,0v-14,0,-28,-4,-46,-12v-54,-24,-85,-39,-92,-47v-7,-8,-11,-18,-13,-32v-7,-47,-11,-77,-11,-87xm90,-100v0,17,3,32,10,42v9,14,20,20,32,20v10,0,17,-2,24,-9v22,-20,38,-38,48,-53v5,-8,10,-20,14,-36v4,-16,6,-31,6,-43r0,-12v0,-18,-3,-32,-11,-42v-8,-10,-18,-15,-30,-15r-5,0v-10,0,-20,4,-30,11v-10,7,-20,17,-28,30v-8,13,-15,28,-21,47v-6,19,-9,35,-9,48r0,12","w":303},"R":{"d":"18,-18v0,-6,5,-14,13,-24v4,-5,8,-14,11,-27v21,-88,32,-147,32,-177v0,-5,0,-10,-1,-13r-1,-4v-1,-4,-2,-7,-2,-8v0,-7,4,-11,12,-13v8,-2,22,-3,43,-3r13,0r18,0v33,0,57,4,71,14v16,11,24,28,24,51v0,28,-14,52,-42,73v-12,8,-18,16,-18,23v0,13,6,34,19,64v4,8,9,17,16,26v7,9,11,16,11,22v0,8,-7,13,-22,13r-12,0v-14,0,-23,-3,-27,-8v-4,-5,-10,-20,-19,-45v-9,-25,-14,-40,-16,-44v-7,-12,-13,-18,-20,-18v-7,0,-13,4,-18,14v-5,10,-8,21,-8,34v0,13,1,24,2,33v1,9,2,14,2,14v0,7,-4,12,-13,16v-5,2,-16,3,-33,3v-17,0,-27,-1,-30,-3v-3,-2,-5,-7,-5,-13xm112,-159v0,3,2,4,5,4r7,0r2,0v21,0,37,-6,51,-17v14,-11,21,-25,21,-43r0,-5v0,-10,-3,-18,-10,-23v-7,-5,-15,-7,-25,-7r-5,0v-13,0,-21,3,-25,10v-3,5,-8,19,-13,43r-1,5v-1,3,-1,5,-2,8v-3,14,-5,22,-5,24r0,1","w":269},"S":{"d":"13,-41v0,-11,3,-21,7,-27v4,-6,8,-9,13,-9v5,0,11,5,19,14v16,19,33,29,50,29r1,0v17,0,30,-4,39,-11v9,-7,13,-16,13,-27v0,-11,-4,-22,-13,-30v-4,-4,-16,-12,-36,-24v-20,-12,-33,-23,-41,-32v-10,-13,-16,-29,-16,-49v0,-10,3,-21,8,-31v11,-22,30,-37,55,-45v11,-4,22,-5,34,-5v34,0,58,3,71,9v7,4,11,11,11,22r0,5v0,11,-3,21,-9,28v-3,4,-6,6,-8,6v-6,0,-14,-5,-23,-14v-9,-9,-16,-14,-21,-17v-5,-3,-13,-4,-24,-4v-11,0,-21,3,-29,10v-8,7,-12,16,-12,26v0,10,4,18,12,26v5,4,17,14,38,26v21,12,36,24,44,35v8,11,13,25,13,39v0,28,-11,50,-30,67v-19,17,-44,26,-75,26v-7,0,-16,-1,-25,-3v-9,-2,-20,-4,-32,-6v-12,-2,-18,-3,-20,-4v-9,-4,-14,-14,-14,-30","w":228},"T":{"d":"46,-230v0,-12,1,-23,6,-33v5,-10,9,-16,13,-18v7,-3,36,-4,88,-4r12,-1r57,0v4,0,8,-1,12,-1r16,0v8,0,11,5,11,14r0,4v0,16,-2,29,-7,37v-2,3,-6,6,-11,6v-1,0,-6,-4,-16,-10v-10,-6,-20,-9,-29,-9v-9,0,-16,5,-19,15v0,1,-6,29,-17,82v-11,53,-17,84,-17,91v0,7,2,14,5,21v3,7,5,11,5,14v0,13,-13,20,-41,20r-24,0v-11,0,-18,0,-22,-2v-4,-2,-6,-5,-6,-10v0,-2,4,-10,15,-24v5,-7,10,-19,15,-36v19,-72,29,-122,29,-152v0,-11,-4,-16,-14,-16v-10,0,-21,4,-33,10v-12,6,-20,9,-23,9v-3,0,-5,-2,-5,-7","w":243},"U":{"d":"40,-76v0,-15,5,-43,13,-82v8,-39,12,-62,12,-67v0,-5,-1,-11,-5,-17v-4,-6,-6,-10,-6,-11v0,-8,4,-16,11,-22v7,-6,15,-9,23,-9r7,0r7,1v14,0,24,1,30,2v6,1,9,4,9,9v0,2,-4,8,-9,19v-5,11,-9,21,-12,32v-16,65,-24,111,-24,137v0,33,16,50,47,50v13,0,25,-3,35,-11v10,-8,19,-19,26,-35v7,-16,14,-43,22,-82v8,-39,12,-70,12,-92r0,-5r-1,-10v0,-5,2,-9,5,-11v3,-2,11,-2,24,-2v13,0,22,1,26,4v8,5,12,11,12,19v0,5,-4,11,-10,18v-6,7,-10,14,-12,20r-2,8v-2,7,-1,6,-3,14r-9,39v-12,56,-23,91,-33,108v-10,17,-23,30,-41,40v-18,10,-37,14,-58,14r-9,0v-27,0,-48,-6,-64,-20v-16,-14,-23,-33,-23,-58","w":289},"V":{"d":"42,-262v0,-8,6,-13,16,-18v4,-2,12,-3,26,-3v14,0,23,1,28,2v9,3,14,8,14,16v0,1,-1,4,-3,12v-2,8,-3,17,-3,27v0,56,3,105,11,145v1,3,2,4,4,4r3,-3v16,-23,40,-68,71,-134v11,-22,16,-39,16,-51v0,-7,3,-12,8,-15v5,-3,16,-4,30,-4r6,0v16,0,24,5,24,14v0,6,-7,16,-20,30v-7,7,-30,45,-70,114v-40,69,-61,106,-64,109v-8,10,-18,15,-30,15v-7,0,-12,-1,-15,-4v-3,-3,-6,-6,-7,-11v-1,-5,-3,-13,-4,-23r-1,-14v-1,-8,-4,-28,-8,-60r-2,-20r-9,-71v-2,-14,-5,-23,-8,-29v-8,-14,-13,-24,-13,-28","w":264},"W":{"d":"46,-253r0,-7v0,-6,3,-11,10,-15v7,-4,16,-6,27,-6v11,0,20,1,28,4v8,3,11,8,11,14v0,6,0,11,-1,17r-4,18r-1,9v0,6,-1,27,-1,65v0,38,3,57,7,57v4,0,17,-24,38,-71v7,-15,12,-29,17,-40r8,-19v3,-8,5,-14,7,-19r4,-9v8,-13,19,-19,32,-19v9,0,15,0,19,2v4,2,6,7,8,13v2,6,5,35,7,87v2,52,4,78,6,78v3,0,12,-18,28,-55v23,-54,35,-85,38,-95r2,-8v2,-8,2,-13,3,-14v5,-10,16,-16,33,-16v10,0,17,2,21,5v4,3,6,7,6,12v0,5,-3,12,-10,22r-5,7v-5,7,-9,12,-11,15v-2,3,-17,36,-46,96r-47,95v-5,8,-12,15,-21,20r-8,3r-8,0v-5,0,-8,-2,-12,-6v-4,-4,-7,-10,-9,-18v-2,-8,-6,-35,-9,-81v-3,-46,-6,-69,-9,-69v-2,0,-12,20,-33,62v-21,42,-34,66,-39,75v-14,23,-27,35,-37,35v-4,0,-9,-2,-14,-7v-5,-5,-8,-11,-10,-20v-2,-9,-3,-34,-6,-77r-1,-22r-4,-65v-1,-10,-4,-21,-8,-31v-4,-10,-6,-18,-6,-22","w":375},"X":{"d":"3,-9v0,-6,6,-13,17,-21v11,-8,20,-17,27,-25v45,-51,68,-82,68,-94v0,-3,-9,-24,-26,-64v-5,-12,-11,-22,-15,-27v-10,-12,-14,-22,-14,-29v0,-6,3,-11,11,-13v6,-2,24,-3,54,-3v10,0,16,2,18,4v2,2,4,5,4,10r-2,4r-2,5v-1,3,-1,7,-1,11v0,12,4,29,14,50v2,4,5,6,7,6v1,0,10,-9,25,-27v15,-18,22,-32,22,-39r0,-9v0,-7,4,-11,14,-13v7,-1,23,-2,47,-2v8,0,12,2,12,5v0,6,-6,15,-17,24v-11,9,-20,18,-27,26v-27,31,-44,52,-50,60v-6,8,-8,15,-8,21v0,13,10,43,32,89v3,7,8,14,15,21v7,7,10,12,10,17v0,9,-6,16,-17,19v-7,2,-26,3,-56,3v-11,0,-16,-4,-16,-11v0,-2,0,-6,2,-11v2,-5,3,-12,3,-18v0,-16,-5,-35,-17,-57r-4,-4v-7,0,-21,16,-42,47v-8,13,-13,26,-13,39v0,7,-4,12,-14,13v-6,1,-21,1,-46,1v-10,0,-15,-2,-15,-8","w":268},"Y":{"d":"58,-280v9,-4,25,-5,47,-5r6,0v15,0,22,5,22,15v0,0,-1,3,-2,7v-1,4,-1,9,-1,14v0,17,5,42,16,75v2,4,3,6,4,6v5,0,19,-17,38,-50v12,-20,18,-31,19,-35v1,-4,2,-9,3,-14v1,-5,3,-10,6,-13v3,-3,14,-4,32,-4v18,0,27,3,27,10v0,5,-8,14,-23,27v-7,7,-17,19,-30,38v-29,43,-46,69,-51,78v-13,24,-20,51,-20,80v0,4,2,10,5,17v3,7,4,10,4,11v0,6,-3,12,-10,16v-7,4,-14,6,-24,6r-13,0r-5,0r-23,-1v-11,0,-17,-3,-17,-10v0,-6,3,-13,9,-20v6,-7,11,-13,13,-19v8,-21,12,-42,12,-62v0,-20,-8,-53,-24,-99v-5,-14,-11,-25,-18,-34v-7,-9,-11,-16,-11,-22v0,-5,3,-9,9,-12","w":254},"Z":{"d":"7,-14v0,-7,4,-16,12,-27v8,-11,36,-46,86,-106v50,-60,75,-92,75,-95v0,-5,-9,-8,-26,-8v-17,0,-31,1,-40,4v-9,3,-19,6,-30,11v-11,5,-18,8,-21,8v-7,0,-10,-4,-10,-13v0,-14,3,-26,11,-34v8,-8,17,-12,28,-12r7,0v12,1,24,1,37,1r46,0v39,0,62,0,68,1v6,1,10,5,10,10v0,10,-7,22,-19,38r-78,94v-50,62,-74,94,-74,97v0,6,9,8,28,8v19,0,37,-2,55,-7v4,-1,12,-4,24,-9v12,-5,19,-8,22,-8v7,0,9,5,9,15v0,10,-4,20,-11,30v-7,10,-17,15,-28,15r-13,0r-14,0r-69,-1v-47,0,-72,0,-76,-1v-6,-1,-9,-4,-9,-11","w":249},"[":{"d":"17,52v0,-7,10,-61,31,-164v21,-103,32,-158,34,-165v2,-7,5,-12,9,-15v4,-3,13,-4,27,-4r16,-1v10,0,16,-1,19,-1r15,0v7,0,10,2,10,4v0,13,-8,22,-25,25v-12,2,-20,4,-23,6v-3,2,-6,7,-9,14v-3,7,-12,52,-29,135v-17,83,-25,128,-25,134v0,6,2,9,4,12v2,3,8,5,15,7v7,2,12,4,14,5v5,3,8,9,8,16v0,6,-6,10,-16,10r-43,0v-13,0,-22,-1,-26,-2v-4,-1,-6,-6,-6,-12r0,-4","w":157},"\\":{"d":"40,-288v0,-5,6,-7,20,-7v9,0,15,5,18,15v24,73,53,164,83,270v4,15,6,24,6,28v0,5,-7,8,-21,8v-7,0,-11,-2,-13,-5v-2,-3,-6,-10,-9,-21v-56,-175,-84,-270,-84,-288","w":186},"]":{"d":"-10,63v0,-12,10,-19,29,-22v9,-1,15,-4,19,-6v4,-2,7,-6,9,-12v2,-6,12,-50,29,-134v17,-84,25,-130,25,-139v0,-9,-7,-15,-20,-18v-13,-3,-20,-10,-20,-19v0,-7,4,-10,14,-10r44,0v16,0,25,0,28,2v3,2,5,4,5,9r0,5v0,9,-12,65,-33,170v-21,105,-33,160,-34,163v-3,8,-8,13,-15,15v-7,2,-26,3,-59,3r-9,0v-8,0,-12,-2,-12,-7","w":157},"^":{"d":"33,-132v0,-2,5,-11,15,-28r39,-68v0,0,24,-45,25,-46v4,-6,11,-10,20,-10r6,0v8,0,15,6,22,18v4,7,15,30,34,70v19,40,28,61,28,64v0,3,-6,4,-17,4v-11,0,-19,-4,-25,-12v-6,-8,-15,-26,-27,-54v-12,-28,-20,-42,-22,-42r-29,51r-9,16v-7,13,-12,21,-14,24v-8,11,-17,17,-26,17v-13,0,-20,-1,-20,-4","w":237},"_":{"d":"-11,51r1,-2r0,-2r0,-5r0,-4v0,-5,7,-7,21,-7r17,0r2,0r71,0v72,0,108,1,108,3r0,5v0,3,-1,6,-1,9v0,3,0,6,-1,7v-1,1,-6,2,-15,2r-9,0r-27,0r-27,0r-27,0r-7,-1v-70,0,-106,-2,-106,-5","w":216},"`":{"d":"64,-285r0,-3v0,-7,7,-9,19,-9v14,0,24,3,31,11v20,23,29,40,29,50r0,4v0,3,-2,5,-8,5r-5,0v-6,0,-13,-4,-23,-12v-28,-22,-43,-37,-43,-46","w":167},"a":{"d":"11,-60v0,-17,4,-35,10,-51v6,-16,15,-30,25,-43v10,-13,23,-23,36,-30v13,-7,27,-11,39,-11v7,0,14,1,21,3v10,3,15,6,16,6r14,-5v8,-2,14,-3,20,-3v8,0,13,2,17,6v3,3,3,7,3,12v0,5,-3,22,-10,50v-7,28,-11,48,-11,61v0,6,2,11,7,16v5,5,8,11,8,18v0,7,-4,15,-13,21v-9,6,-20,9,-35,9v-8,0,-14,-2,-17,-5v-3,-3,-6,-9,-8,-15v-2,-6,-4,-10,-6,-10v-2,0,-8,3,-15,9v-17,13,-35,19,-54,19v-13,0,-24,-5,-33,-16v-9,-11,-14,-24,-14,-41xm68,-62v0,8,2,13,5,18v3,5,7,7,11,7v8,0,16,-2,24,-8v8,-6,15,-13,21,-23v15,-25,22,-49,22,-72r0,-7v0,-5,-2,-9,-5,-12v-3,-3,-10,-5,-19,-5r-1,0v-12,0,-26,10,-39,30v-13,20,-19,40,-19,62r0,10","w":227},"b":{"d":"22,-25v0,-7,3,-20,8,-39v5,-19,13,-52,22,-99v9,-47,14,-74,14,-80v0,-6,-1,-12,-4,-17v-3,-6,-5,-10,-5,-15v0,-7,3,-12,11,-16v7,-4,21,-6,41,-6v6,0,10,1,12,4v2,3,3,7,3,13v0,6,-3,21,-9,43v-6,22,-10,35,-10,37v0,11,3,16,11,16v1,0,7,-1,16,-3v9,-2,16,-3,23,-3v16,0,30,4,40,15v12,12,17,28,17,47r0,5v0,14,-3,30,-10,46v-7,16,-15,31,-24,42v-19,23,-42,34,-70,34r-5,0r-31,-6r-21,5v-9,0,-16,-2,-21,-6v-5,-4,-8,-10,-8,-17xm80,-58v0,17,8,26,23,26r1,0v6,0,12,-3,19,-8v7,-5,15,-12,21,-23v13,-22,19,-45,19,-69v0,-9,-1,-16,-4,-22v-3,-6,-8,-9,-15,-9v-7,0,-14,3,-22,8v-8,5,-14,12,-19,21v-15,27,-23,52,-23,76","w":228},"c":{"d":"17,-68v0,-36,12,-67,34,-92v23,-25,50,-37,83,-37r4,0v15,0,28,2,37,6v9,4,14,9,14,15v0,9,-3,16,-8,22v-5,6,-9,8,-13,8v-4,0,-10,-3,-19,-9v-9,-6,-17,-8,-25,-8v-14,0,-26,8,-37,25v-11,16,-16,36,-16,60v0,13,3,22,10,30v7,8,17,12,31,12v6,0,14,-2,23,-6v9,-4,17,-5,22,-5v8,0,11,3,11,10v0,9,-8,18,-24,26v-16,8,-32,12,-48,12r-5,0v-23,0,-41,-7,-54,-20v-13,-13,-20,-29,-20,-49","w":191},"d":{"d":"19,-59r0,-6v0,-13,4,-29,10,-46v6,-17,15,-33,26,-46v21,-26,46,-39,75,-39r22,2v8,0,15,-4,21,-13v6,-9,8,-21,8,-37v0,-5,-1,-10,-4,-15v-3,-5,-4,-11,-4,-17v0,-6,5,-11,13,-16v8,-5,20,-8,35,-8r5,0v10,0,14,6,14,17v0,8,-8,44,-23,110v-15,66,-23,100,-23,105v0,5,1,10,4,16v3,6,4,14,4,21v0,7,-4,13,-14,18v-10,5,-21,8,-32,8v-6,0,-12,-4,-19,-12v-4,-5,-7,-7,-11,-7r-1,0v-4,0,-7,3,-12,6v-16,11,-30,16,-42,16r-4,0v-13,0,-25,-5,-34,-16v-9,-11,-14,-24,-14,-41xm73,-64v0,18,7,27,21,27v4,0,9,-2,17,-7v8,-5,15,-11,20,-20v15,-26,23,-50,23,-71r0,-3r0,-7v0,-7,-1,-13,-5,-16v-4,-3,-10,-5,-17,-5v-7,0,-14,3,-21,8v-7,5,-13,12,-18,20v-14,23,-20,45,-20,66r0,8","w":234},"e":{"d":"18,-68r0,-9v0,-11,3,-25,10,-41v7,-16,15,-31,28,-44v13,-13,27,-23,43,-29v16,-6,28,-10,40,-10r9,0v15,0,27,5,36,14v9,9,14,19,14,31v0,12,-2,21,-5,29v-3,8,-8,15,-14,19v-9,7,-32,13,-70,18v-15,2,-25,5,-29,6v-7,3,-11,8,-11,18v0,10,4,17,11,23v7,5,15,8,25,8v10,0,21,-2,34,-7v18,-7,28,-11,33,-11v5,0,8,4,8,11v0,3,-1,7,-6,13v-5,6,-15,12,-29,19v-14,7,-31,11,-49,11r-9,0v-20,0,-36,-7,-49,-20v-13,-13,-20,-28,-20,-49xm80,-121v0,4,2,6,7,6r1,-1r4,0v3,-1,6,-1,7,-1r8,-1v13,0,25,-4,35,-11v6,-4,9,-10,9,-16r-1,-8v0,-3,-1,-7,-5,-11v-4,-4,-8,-5,-13,-5r-6,0v-9,0,-19,5,-30,16v-11,11,-16,22,-16,32","w":206},"f":{"d":"-9,37v0,-3,6,-12,18,-25v7,-8,13,-20,18,-35v12,-37,18,-71,18,-103r-3,-37r1,-21v0,-4,5,-11,13,-22v8,-11,16,-23,22,-37v11,-26,29,-42,52,-51v9,-3,18,-5,27,-5r5,0v21,0,32,5,32,15r0,5v0,4,-2,8,-6,13v-4,5,-8,8,-13,8v-2,0,-5,0,-7,-1v-8,-3,-13,-5,-14,-5r-4,0v-5,0,-11,2,-15,6v-10,8,-14,22,-14,42v0,8,4,14,14,18v10,4,15,9,15,15v0,3,-7,9,-20,20v-13,11,-22,21,-26,32v-4,11,-10,36,-18,74v-8,38,-16,64,-23,76v-7,12,-13,21,-19,25v-6,4,-14,6,-23,6r-5,0v-10,0,-17,-2,-22,-6v-2,-2,-3,-4,-3,-7","w":146},"g":{"d":"9,50v0,-7,1,-12,4,-16v3,-4,5,-5,7,-5v10,0,23,3,37,9v14,6,24,10,29,10v13,0,26,-6,36,-16v7,-6,11,-14,15,-24v4,-10,6,-16,6,-20v0,-2,-1,-4,-2,-4v-1,0,-4,1,-9,3r-8,4v-11,4,-22,5,-32,5v-19,0,-34,-8,-46,-23v-11,-14,-16,-33,-16,-59v0,-34,10,-64,32,-90v9,-11,19,-20,30,-25v11,-5,24,-7,38,-7r11,0v7,0,15,2,23,5v8,3,13,5,15,5r9,-5v5,-3,11,-4,17,-4v14,0,21,4,21,12v0,4,-5,22,-14,53v-9,31,-15,52,-17,63v-2,11,-5,29,-7,56v-2,27,-7,47,-13,59v-8,16,-21,29,-38,38v-17,9,-35,13,-53,13r-6,0v-19,0,-36,-4,-49,-12v-13,-8,-20,-15,-20,-25xm79,-82v0,9,2,17,6,24v4,7,9,11,17,11r4,0v5,0,11,-3,18,-7v7,-4,13,-9,18,-17v13,-21,20,-41,20,-62r0,-2r0,-2r0,-5r0,-5v0,-7,-1,-12,-4,-16v-5,-6,-10,-9,-19,-9r-5,0v-12,0,-25,9,-37,27v-12,18,-18,39,-18,63","w":237},"h":{"d":"22,-21v0,-5,3,-23,11,-53v8,-30,12,-48,13,-53v13,-65,19,-99,19,-105v0,-6,-1,-12,-3,-19v-2,-7,-4,-12,-4,-15v0,-7,4,-14,12,-20v8,-6,18,-10,28,-10r6,0v8,0,13,2,16,5v3,3,4,7,4,13v0,6,-3,21,-10,47v-7,26,-10,41,-10,44v0,7,2,10,7,10v0,0,7,-2,19,-7v13,-5,24,-8,34,-8v11,0,21,2,28,9v10,9,15,21,15,37r0,7v0,5,-2,15,-4,29v-2,14,-5,32,-8,54v-3,22,-4,33,-4,36v0,3,-3,6,-9,10v-6,4,-12,5,-20,5v-8,0,-14,-2,-17,-8v-3,-6,-5,-13,-5,-23v0,-10,2,-27,7,-50v5,-23,8,-39,8,-47v0,-8,-1,-14,-5,-17v-3,-3,-7,-4,-11,-4v-5,0,-11,2,-17,7v-19,16,-33,51,-43,104v-3,14,-6,23,-9,29v-5,9,-14,14,-28,14v-14,0,-20,-7,-20,-21","w":234},"i":{"d":"22,-20r0,-5v0,-5,4,-23,12,-54v8,-31,13,-50,13,-58v0,-8,-2,-16,-6,-21v-4,-5,-6,-9,-6,-13v0,-19,16,-29,49,-29r8,0v10,0,14,6,14,16v0,6,-3,25,-11,57v-8,32,-12,53,-12,61v0,8,3,15,8,19v5,4,7,9,7,15v0,10,-5,19,-16,24v-11,5,-26,8,-45,8v-10,0,-15,-7,-15,-20xm66,-252r0,-5v0,-9,3,-17,8,-23v5,-6,11,-9,18,-9r4,-1r8,-1r1,1r2,0r4,0v10,0,16,4,16,13r0,5r0,3r0,1r-1,6v0,8,-2,14,-8,19v-6,5,-14,8,-22,8r-5,0r-1,0r-8,0v-4,0,-8,-2,-11,-5v-3,-3,-5,-7,-5,-12","w":127},"j":{"d":"-35,76v0,-5,2,-11,6,-16v4,-5,11,-8,21,-10v13,-2,22,-11,28,-26v4,-9,11,-37,20,-83v9,-46,14,-72,14,-80v0,-8,-3,-15,-7,-22v-4,-7,-6,-12,-6,-17r0,0v0,-6,3,-11,11,-14v13,-5,27,-8,43,-8v5,0,10,3,13,7v3,4,4,10,4,18v0,8,-2,23,-7,46v-5,23,-9,37,-10,43v-10,53,-18,90,-26,109v-8,19,-19,35,-32,47v-13,12,-27,18,-41,18r-7,0v-8,0,-14,-2,-18,-5v-4,-3,-6,-5,-6,-7xm71,-257r1,-7v0,-7,3,-13,9,-19v6,-6,14,-8,24,-8r7,0v14,0,21,6,21,18r0,2r0,1v0,10,-3,18,-8,24v-5,6,-11,10,-19,10v-2,1,-4,0,-5,0r-9,0r-2,0v-5,0,-9,-2,-13,-5v-4,-3,-6,-8,-6,-16","w":127},"k":{"d":"22,-14v0,-5,3,-21,9,-51r24,-124v7,-30,10,-50,10,-58r-4,-25v0,-9,4,-14,10,-18v6,-4,18,-6,36,-6r6,0v7,0,11,5,11,16r-1,7v-1,6,-3,16,-7,30v-14,55,-20,89,-20,101v0,5,2,6,4,6v4,0,12,-6,23,-18v18,-19,31,-32,38,-37v7,-5,18,-8,31,-8v13,0,20,3,20,9v0,4,-11,16,-33,34v-22,18,-33,32,-33,41v0,9,8,29,23,60v4,8,9,15,16,22v7,7,10,11,10,14v0,3,-1,5,-5,7v-9,5,-22,8,-39,8v-7,0,-12,-4,-17,-11v-5,-7,-11,-20,-18,-40v-7,-20,-13,-30,-18,-30v-8,0,-15,14,-21,41v-4,16,-6,26,-8,29v-6,9,-16,14,-30,14v-7,0,-12,-1,-14,-3v-2,-2,-3,-5,-3,-10","w":224},"l":{"d":"23,-25r0,-7v0,-2,7,-36,22,-103v15,-67,22,-103,22,-110v0,-7,-2,-14,-5,-20v-3,-6,-5,-12,-5,-16v0,-7,4,-11,11,-14v8,-3,22,-5,42,-5r6,0v7,0,10,4,10,13v0,8,-8,44,-22,108v-14,64,-22,103,-22,114v0,11,3,20,8,26v5,6,7,10,7,13v0,8,-4,14,-13,18v-13,6,-27,9,-42,9v-6,0,-10,-3,-14,-7v-4,-4,-5,-10,-5,-19","w":126},"m":{"d":"24,-36r0,-7v0,-4,2,-16,6,-35v4,-19,5,-35,5,-50v0,-15,4,-28,12,-40v8,-12,16,-17,22,-17v10,0,17,4,23,11r9,10r25,-14v0,0,29,-14,39,-14r8,0v10,0,19,5,28,15v9,10,13,14,15,14v2,0,9,-4,23,-12v14,-8,26,-13,36,-13v15,0,26,4,33,13v7,9,10,21,10,35v0,6,-2,23,-7,50v-5,27,-7,48,-7,66v0,8,-8,13,-24,13v-8,0,-14,-6,-18,-15v-4,-9,-6,-18,-6,-28v0,-10,1,-22,4,-37v3,-15,4,-25,4,-31v0,-6,-2,-13,-5,-19v-3,-6,-8,-9,-14,-9v-9,0,-20,12,-31,36v-7,15,-14,34,-19,55v-5,21,-10,35,-13,40v-5,8,-17,11,-35,11r-9,0v-8,0,-11,-4,-11,-12v0,-3,3,-20,11,-52v8,-32,12,-52,12,-60v0,-8,-1,-14,-3,-17v-2,-3,-6,-5,-11,-5v-5,0,-11,2,-17,6v-18,12,-30,34,-38,66v-6,25,-12,41,-15,48v-8,17,-15,24,-23,24v-2,0,-6,-2,-11,-8v-5,-6,-8,-11,-8,-18","w":340},"n":{"d":"18,-21r0,-4v0,-6,3,-21,10,-45v7,-24,11,-41,11,-51v0,-2,-1,-4,-2,-8v-1,-5,-2,-9,-2,-14v0,-11,4,-23,12,-34v7,-9,15,-14,25,-14v10,0,18,3,23,8v2,2,3,7,4,13v1,6,2,9,3,9v1,0,6,-3,15,-10v19,-16,38,-24,55,-24r5,0v10,0,19,4,27,12v8,8,12,17,12,28r0,5v0,5,-3,20,-8,45v-5,24,-8,43,-8,56v0,9,2,15,4,18v3,5,4,7,4,9v0,2,-1,4,-4,6v-10,6,-22,9,-37,9v-6,0,-11,-3,-15,-9v-4,-6,-6,-14,-6,-22v0,-8,2,-25,6,-50v4,-25,7,-41,7,-49v0,-14,-6,-21,-19,-21v-3,0,-7,1,-13,5v-10,7,-19,17,-26,31v-7,14,-14,34,-22,61v-8,27,-12,41,-13,43v-6,8,-12,12,-21,12v-9,0,-15,-1,-20,-5v-5,-4,-7,-7,-7,-10","w":237},"o":{"d":"20,-70v0,-14,3,-30,9,-46v6,-16,15,-31,26,-43v11,-12,24,-22,39,-30v15,-8,29,-12,45,-12r7,0v19,0,35,6,47,18v12,12,18,28,18,47v0,2,-1,5,-1,7v0,16,-3,31,-9,47v-6,16,-15,31,-26,43v-11,12,-25,22,-40,29v-15,7,-31,11,-50,11r-1,0v-19,0,-34,-6,-46,-18v-12,-12,-19,-27,-19,-47v0,-2,1,-4,1,-6xm74,-65v0,11,2,19,7,25v5,6,11,9,17,9r5,0v12,0,23,-9,35,-29v12,-20,18,-42,18,-67r0,-7r0,-1v0,-11,-2,-21,-7,-26v-5,-6,-11,-8,-17,-8r-2,0v-6,0,-13,3,-20,8v-7,5,-13,12,-18,22v-12,23,-18,43,-18,64r0,10","w":222},"p":{"d":"-7,78v0,-3,1,-10,5,-19v8,-19,18,-56,30,-109v12,-53,19,-83,19,-89v0,-6,-1,-13,-2,-20v-1,-7,-2,-10,-2,-11v0,-6,4,-10,9,-14v10,-7,23,-10,37,-10v4,0,6,2,9,5v3,3,6,4,9,4v3,0,9,-3,20,-8v11,-5,20,-8,31,-8r5,0v16,0,29,6,40,19v11,13,16,27,16,46r0,6v0,12,-4,27,-11,45v-14,36,-36,61,-65,74v-12,5,-26,8,-41,8v-15,0,-25,1,-31,5v-6,4,-8,12,-8,24r3,25v0,12,-4,22,-11,29v-7,7,-18,11,-31,11v-13,0,-22,-1,-26,-4v-4,-3,-5,-6,-5,-9xm85,-54v0,14,8,21,24,21v7,-1,13,-3,19,-7v6,-4,13,-12,20,-24v12,-20,18,-40,18,-62r0,-7v0,-10,-2,-18,-6,-23v-4,-5,-9,-8,-16,-8r-1,0v-14,0,-26,9,-37,29v-14,26,-21,54,-21,81"},"q":{"d":"23,-71r0,-5v0,-15,3,-31,10,-47v7,-16,16,-31,26,-43v19,-23,41,-34,65,-34r0,0v13,0,24,1,31,5v7,4,12,6,13,6v1,0,6,-3,12,-6v6,-3,13,-5,20,-5v12,0,18,5,18,14v0,5,-3,17,-8,35v-5,18,-13,51,-23,99v-10,48,-14,75,-14,81v0,6,1,14,4,20v3,6,4,11,4,13v0,8,-3,15,-8,19v-5,4,-16,6,-31,6r-14,0v-8,0,-13,-1,-16,-3v-3,-2,-5,-6,-5,-11v0,-5,4,-18,12,-37v8,-19,12,-32,12,-39v0,-7,-4,-11,-11,-11v-1,0,-6,2,-15,4v-9,2,-18,3,-27,3v-16,0,-29,-6,-39,-18v-10,-12,-16,-27,-16,-46xm73,-66v0,8,2,15,5,20v3,5,8,8,13,8r4,0v5,0,12,-3,20,-8v8,-5,15,-13,21,-24v14,-25,20,-50,20,-77v0,-6,-1,-11,-3,-14v-4,-5,-10,-8,-17,-8r-4,0v-6,0,-12,3,-19,8v-7,5,-14,13,-20,23v-13,24,-20,45,-20,65r0,7","w":229},"r":{"d":"18,-12v0,-5,4,-22,12,-51v8,-29,13,-51,13,-66v0,-2,-1,-7,-3,-12v-2,-5,-3,-11,-3,-20v0,-9,4,-16,12,-23v8,-7,17,-10,28,-10v11,0,18,2,22,7v1,2,3,6,4,13v1,7,3,11,6,11v2,0,5,-2,9,-7v14,-15,27,-23,41,-23v9,0,14,7,14,21v0,8,-3,15,-9,20v-6,5,-14,7,-25,7v-11,0,-18,1,-23,5v-5,4,-9,11,-15,22v-6,11,-11,31,-17,59v-6,28,-11,46,-16,51v-5,5,-14,7,-31,7v-12,0,-19,-3,-19,-11","w":171},"s":{"d":"8,-25v0,-8,2,-15,6,-20v4,-5,8,-8,14,-8v6,0,14,4,23,12v9,8,18,12,29,12v11,0,19,-2,24,-7v5,-5,8,-10,8,-16v0,-6,-4,-11,-10,-16v-3,-2,-11,-8,-25,-16v-14,-8,-25,-16,-32,-24v-7,-8,-10,-18,-10,-29v0,-21,8,-39,26,-50v14,-9,33,-14,54,-14v21,0,38,3,49,8v8,3,11,8,11,16v0,8,-2,14,-6,19v-4,5,-9,8,-14,8v-5,0,-13,-3,-21,-10v-8,-7,-17,-10,-24,-10v-7,0,-14,2,-20,5v-6,3,-8,9,-8,16v0,7,10,16,28,26v18,10,30,19,38,27v8,8,12,18,12,29v0,21,-8,39,-23,51v-15,12,-33,18,-54,18r-10,0v-21,0,-38,-3,-51,-9v-9,-4,-14,-10,-14,-18","w":181},"t":{"d":"31,-38v0,-11,4,-31,10,-59v6,-28,9,-46,9,-54v0,-4,-3,-8,-9,-11v-6,-3,-9,-8,-9,-15v0,-7,1,-12,4,-14v3,-2,8,-3,14,-5v6,-2,10,-4,12,-6v2,-2,5,-10,8,-21v3,-11,7,-19,13,-24v6,-5,14,-8,23,-8r6,0v6,0,9,5,9,14r-2,25v0,7,6,13,17,17v11,4,16,8,16,12v0,9,-7,16,-21,22v-14,6,-23,12,-26,18v-4,10,-9,24,-13,42v-4,18,-6,31,-6,41v0,8,1,13,4,16v3,3,8,5,17,5v9,0,14,0,16,2v2,2,3,5,3,10v0,9,-4,17,-12,21v-14,8,-29,11,-45,11v-10,0,-20,-4,-27,-12v-7,-8,-11,-16,-11,-27","w":151},"u":{"d":"27,-48r0,-5v0,-6,2,-22,8,-49v6,-27,8,-43,8,-48v0,-5,-1,-10,-4,-16v-3,-6,-4,-9,-4,-11v0,-5,3,-7,8,-9v12,-4,24,-6,36,-6v6,0,10,3,13,7v3,4,4,11,4,20v0,9,-3,28,-8,54v-5,26,-8,43,-8,51v0,15,7,23,19,23v4,0,10,-2,17,-7v7,-5,14,-12,20,-22v10,-16,20,-44,28,-81v3,-14,5,-22,7,-25v6,-11,13,-17,21,-17v8,0,15,2,19,6v4,4,6,9,6,14v0,1,-2,12,-6,35v-4,23,-7,38,-7,46v0,8,1,14,3,18v2,4,2,9,2,16v0,14,-4,26,-13,35v-9,9,-20,12,-33,12v-7,0,-11,-1,-14,-3v-3,-2,-5,-7,-7,-13v-2,-6,-3,-9,-4,-9r-25,14v0,0,-31,13,-43,13r-4,0v-11,0,-21,-5,-28,-13v-7,-8,-11,-19,-11,-30","w":235},"v":{"d":"24,-169r0,-3v0,-15,14,-22,42,-22v12,0,20,5,25,17v4,9,6,26,6,51r0,9r0,10r0,5v0,3,1,7,1,10v0,22,1,33,5,33v2,0,5,-2,9,-7v12,-13,23,-26,32,-42v9,-16,14,-29,17,-40v3,-20,6,-31,8,-34v6,-9,15,-14,30,-14v9,0,14,6,14,17v0,9,-3,20,-9,32v-14,30,-29,57,-46,81v-17,24,-33,41,-48,54v-6,5,-13,7,-22,7v-9,0,-16,-2,-20,-5v-4,-3,-7,-6,-8,-9v-1,-3,-2,-12,-3,-26v-4,-46,-7,-74,-9,-83v-2,-9,-5,-16,-10,-20v-9,-8,-14,-14,-14,-21","w":213},"w":{"d":"31,-165v0,-7,2,-14,7,-20v5,-6,10,-9,17,-9v16,0,26,5,31,13v4,6,5,21,5,46r0,16r0,15v0,26,2,39,7,39v4,0,15,-16,31,-48r29,-64v5,-8,14,-12,29,-12v7,0,11,3,13,9v3,9,4,29,4,60r0,31v0,16,2,24,6,24v6,0,13,-8,23,-24v10,-16,18,-35,26,-55v8,-20,12,-32,13,-34v5,-8,13,-13,23,-13v6,0,9,5,9,13v0,8,-4,21,-10,38v-12,34,-24,62,-37,83v-13,21,-23,36,-31,42v-8,6,-16,9,-24,9r-6,0v-8,0,-16,-10,-25,-28v-3,-7,-7,-20,-11,-38v-4,-18,-7,-28,-9,-28v-1,0,-8,11,-23,31v-15,20,-25,32,-30,37v-9,9,-18,13,-26,13v-11,0,-18,-6,-21,-19v-14,-65,-20,-107,-20,-127","w":309},"x":{"d":"1,-13v0,-5,4,-11,11,-17r21,-11v8,-4,18,-13,31,-26v13,-13,19,-25,19,-34v0,-9,-5,-22,-15,-38v-4,-6,-10,-12,-19,-19v-9,-7,-14,-12,-14,-17v0,-3,3,-7,8,-9v16,-8,32,-11,46,-11v7,0,12,3,17,10v2,3,7,10,12,22v5,12,9,18,11,18v2,0,8,-6,17,-19v9,-13,16,-22,21,-26v5,-4,13,-6,21,-6v8,0,16,2,24,7v3,2,5,5,5,9v0,8,-6,13,-18,18v-12,5,-24,12,-34,22v-16,16,-24,27,-24,34v0,13,7,29,20,49v4,7,11,12,20,17v9,5,13,11,13,15v0,5,-5,10,-16,14v-16,6,-29,8,-40,8v-6,0,-13,-3,-18,-11r-12,-23v0,0,-10,-19,-13,-19v-3,0,-10,7,-20,21v-10,14,-16,24,-21,28v-5,4,-11,6,-18,6r-4,0v-11,0,-18,-2,-23,-5v-5,-3,-8,-5,-8,-7","w":217},"y":{"d":"3,74v0,-6,8,-13,24,-22v16,-9,27,-18,35,-28v8,-10,12,-23,12,-38v0,-6,-3,-18,-8,-36v-5,-18,-10,-36,-14,-55v-4,-19,-7,-30,-8,-33v-7,-18,-11,-28,-11,-32v0,-7,3,-14,11,-18v8,-4,15,-6,24,-6v11,0,20,6,24,19v4,13,8,35,11,65v3,30,6,45,7,45v6,0,16,-16,30,-47v6,-13,12,-28,17,-46v5,-18,7,-27,8,-28v5,-7,15,-10,28,-10v9,0,14,3,14,10v0,12,-11,40,-32,85v-21,45,-40,80,-58,107v-18,27,-35,47,-51,60v-16,13,-30,20,-43,20v-13,0,-20,-4,-20,-12","w":211},"z":{"d":"7,-11r0,-4v0,-9,19,-33,58,-72v39,-39,59,-62,59,-67v0,-3,-7,-4,-22,-4v-15,0,-28,2,-39,6v-11,4,-18,5,-20,5v-6,0,-9,-5,-9,-15v0,-10,3,-19,10,-26v7,-7,16,-9,29,-9r6,0v8,0,19,0,36,2v17,2,30,2,39,2r30,-4v7,0,11,4,11,11v0,7,-4,15,-11,25v-7,10,-26,30,-56,59v-30,29,-45,47,-45,54v0,8,12,12,37,12v8,0,16,-2,25,-7v9,-5,17,-7,24,-7v5,0,7,4,7,11v0,15,-4,26,-11,32v-7,6,-18,9,-33,9r-5,0v-12,0,-26,-2,-42,-4v-15,-2,-28,-3,-38,-3r-11,0v-1,0,-3,1,-9,2v-6,1,-10,1,-10,1v-7,0,-10,-3,-10,-9","w":199},"{":{"d":"29,-112v0,-8,6,-14,17,-19v11,-5,19,-11,23,-20v4,-9,8,-27,11,-55v3,-28,9,-48,16,-59v15,-23,38,-35,71,-35v8,0,11,2,11,6v0,7,-6,14,-19,23v-13,9,-20,15,-23,19v-5,8,-10,25,-13,51v-3,26,-7,43,-11,52v-4,9,-9,14,-14,18v-5,4,-10,7,-15,10v-5,3,-8,5,-8,6v0,1,3,3,8,8v5,5,9,10,11,15v2,5,4,13,4,21v0,8,-2,22,-6,41v-4,19,-6,33,-6,42v0,9,4,18,13,27v9,9,14,18,14,24v0,6,-4,9,-10,9r-5,0v-39,0,-59,-17,-59,-52v0,-9,3,-25,8,-47v5,-22,8,-37,8,-46v0,-9,-3,-16,-9,-21v-12,-10,-17,-17,-17,-18","w":162},"|":{"d":"65,63r1,-4r1,-44r1,-61r1,-13r0,-5r1,-52r2,-61r0,-13r0,-4r2,-53r0,-13r0,-4r1,-18v0,-21,3,-32,9,-32r21,0v6,0,9,5,9,13r0,4r0,5r-1,74r-1,5r0,34r-1,5r0,17r0,5r0,13r-1,30r-1,26r-1,22r0,9r0,4r-1,35r0,4r-1,40v0,28,-1,43,-2,47v-1,4,-5,6,-12,6r-13,0v-9,0,-14,-4,-14,-12r0,-9","w":163},"}":{"d":"-5,68v0,-7,7,-16,20,-25v13,-9,21,-18,25,-24v4,-6,8,-21,11,-44v3,-23,6,-40,10,-49v5,-14,14,-25,27,-32v7,-4,10,-7,10,-9r-2,-3r-7,-5v-3,-3,-6,-8,-9,-13v-3,-5,-4,-12,-4,-21v0,-9,2,-23,6,-41v4,-18,6,-32,6,-41v0,-9,-4,-18,-13,-28v-9,-10,-13,-18,-13,-26v0,-4,4,-7,13,-7v20,0,35,4,45,13v10,9,15,23,15,43v0,8,-3,23,-8,43v-5,20,-8,35,-8,44v0,9,3,17,9,22v12,11,18,17,18,18v0,8,-6,14,-17,19v-11,5,-19,11,-23,18v-4,7,-7,27,-11,58v-4,31,-10,52,-17,62v-7,10,-17,18,-29,24v-12,6,-23,8,-35,8r-10,0v-6,0,-9,-1,-9,-4","w":162},"~":{"d":"26,-104v0,-11,7,-22,20,-33v13,-11,25,-18,37,-18r5,0v11,0,25,6,44,16v19,10,32,16,40,16v8,0,15,-5,23,-15v8,-10,15,-15,19,-15v9,0,13,5,13,14v0,12,-6,24,-19,36v-13,12,-25,17,-38,17v-13,0,-29,-5,-48,-15v-19,-10,-33,-16,-40,-16v-7,0,-16,5,-24,15v-8,10,-15,15,-19,15v-9,0,-13,-6,-13,-17","w":240},"\u00a0":{"w":134},"\u00a1":{"d":"3,72v0,-8,6,-31,15,-67v9,-36,20,-70,32,-103v3,-8,6,-13,10,-16v4,-3,10,-5,17,-5v7,0,10,4,10,11r0,2v0,2,-2,20,-6,53r-1,5r0,5r-2,9r0,3r0,5r-1,5r-1,2r0,5r-1,5r-1,5r0,3r0,2v-4,37,-8,59,-10,65v-2,6,-6,10,-9,12v-6,3,-16,5,-30,5v-14,0,-22,-3,-22,-11xm51,-172r0,-5v0,-9,3,-17,10,-24v7,-7,15,-9,25,-9r2,0v8,0,15,2,20,7v5,5,8,11,8,19r0,5v0,8,-3,16,-9,23v-6,7,-14,10,-23,10r-6,0v-8,0,-14,-2,-19,-7v-5,-5,-8,-11,-8,-19","w":129},"\u00a2":{"d":"26,-84r0,-9v0,-12,3,-26,9,-39v12,-27,31,-47,56,-60v5,-3,13,-7,23,-11v10,-4,16,-7,19,-9v3,-2,8,-8,13,-18v5,-10,11,-16,16,-16v4,0,6,2,8,7v5,17,9,26,10,28v9,13,14,23,14,29v0,7,-2,12,-5,15v-3,3,-7,5,-10,5r-20,-4v-5,0,-9,5,-12,14v-16,43,-24,73,-24,90v0,6,3,9,9,9v4,0,11,-1,20,-4v9,-3,15,-5,17,-5v4,0,6,2,6,7v0,6,-9,15,-27,24v-18,9,-29,18,-35,26v-16,20,-26,30,-28,30v-4,0,-5,-4,-5,-13r0,-4r1,-8v0,-7,-5,-14,-14,-22r-15,-9v-18,-14,-26,-32,-26,-53xm78,-89v0,10,1,18,6,24v5,6,8,9,11,9v3,0,5,-3,7,-10v19,-63,29,-100,29,-110v0,-2,-2,-3,-5,-3v-3,0,-8,3,-15,8v-7,5,-13,11,-18,20v-10,18,-15,35,-15,52r0,10","w":215},"\u00a3":{"d":"7,-11r0,-5v0,-7,5,-14,16,-21v11,-7,20,-16,27,-27v7,-11,10,-21,10,-30v0,-9,-1,-15,-4,-18v-3,-3,-7,-5,-14,-7v-7,-2,-10,-5,-10,-9v0,-9,4,-15,12,-19v11,-6,18,-12,20,-17r2,-6r1,-7r2,-7v11,-45,32,-74,63,-89v14,-7,29,-10,46,-10v17,0,29,1,36,6v10,6,15,17,15,30v0,5,-1,10,-5,14v-4,4,-8,7,-12,7v-4,0,-11,-2,-19,-5v-8,-3,-14,-5,-18,-5v-11,0,-21,6,-30,18v-9,12,-14,25,-14,37v0,7,2,12,4,14r20,12v7,4,10,9,10,14v0,5,-6,12,-17,19v-11,7,-20,13,-26,21v-15,20,-22,34,-22,41v0,7,4,13,11,16v7,3,17,4,30,4v13,0,25,-3,37,-10v12,-7,19,-10,23,-10v8,0,12,4,12,12v0,14,-6,26,-18,37v-12,11,-26,16,-43,16v-11,0,-27,-2,-46,-5v-19,-3,-35,-4,-47,-4r-28,2v-16,0,-24,-3,-24,-9","w":232},"\u00a4":{"d":"23,-56v0,-2,3,-6,10,-14v7,-8,11,-12,11,-15r-5,-18v-3,-8,-4,-17,-4,-26v0,-12,2,-26,7,-40v5,-14,7,-22,7,-23v0,-1,-3,-5,-9,-11v-6,-6,-9,-11,-9,-14v0,-3,3,-7,8,-12v5,-5,9,-8,10,-8v4,0,9,3,16,9v7,6,13,10,19,10r24,-7v5,-1,12,-2,21,-2v9,0,18,1,28,4v10,3,15,5,16,5v6,0,12,-4,19,-11v7,-7,12,-10,14,-10v2,0,6,3,11,8v5,5,8,9,8,12v0,3,-3,8,-10,15v-7,7,-11,11,-11,14v0,3,1,7,3,12v2,5,4,10,5,15v1,5,2,12,2,22v0,10,-1,19,-3,25v-2,6,-5,13,-8,19v-3,6,-4,10,-4,13v0,3,3,7,9,14v6,7,9,11,9,14v0,3,-3,8,-8,13v-5,5,-10,8,-12,8v-2,0,-7,-3,-14,-10v-7,-7,-12,-10,-16,-10r0,0v-2,0,-8,2,-18,5v-11,3,-23,4,-32,4v-7,0,-13,0,-19,-2v-14,-4,-22,-7,-23,-7v-5,0,-12,4,-19,11v-7,7,-13,10,-15,10v-2,0,-6,-3,-11,-8v-5,-5,-7,-10,-7,-14xm73,-130v0,14,5,26,14,35v9,9,21,14,35,14v14,0,26,-5,37,-16v11,-11,16,-24,16,-40r0,-6v0,-14,-5,-26,-14,-35v-9,-9,-21,-14,-35,-14v-14,0,-26,6,-37,17v-11,11,-16,25,-16,40r0,5","w":234},"\u00a5":{"d":"36,-87r0,-3v0,-3,8,-6,22,-9v14,-3,21,-8,21,-14v0,-6,-5,-10,-14,-15v-9,-5,-14,-9,-14,-13v0,-3,4,-7,11,-15v7,-8,11,-15,11,-20v0,-13,-5,-30,-15,-52v-10,-22,-15,-33,-15,-34v0,-4,4,-8,12,-11v8,-3,20,-5,36,-5v22,0,33,4,33,12v0,2,0,6,-2,10v-2,4,-3,9,-3,13v0,4,1,10,3,17r15,58r2,4v6,0,22,-23,47,-68v4,-8,7,-14,8,-19r1,-5r1,-4v1,-4,1,-6,2,-8v4,-6,14,-9,29,-9v15,0,24,2,29,7r2,3r0,5v0,3,-6,11,-19,25v-27,30,-40,53,-40,71v0,6,1,11,4,15v2,3,2,4,2,5v0,4,-5,10,-18,17v-13,7,-19,13,-19,17v0,5,5,10,15,13v10,3,15,6,15,11v0,5,-5,8,-16,11v-17,4,-27,8,-29,11v-6,6,-10,13,-10,20v0,4,1,9,3,13r2,4v2,5,4,8,4,9v0,8,-5,13,-15,16v-6,2,-19,2,-40,2r-8,0v-11,0,-19,0,-23,-1v-6,-2,-9,-6,-9,-11v0,-5,4,-12,11,-20v7,-8,11,-18,11,-30v0,-6,-6,-10,-18,-12v-17,-4,-25,-8,-25,-11","w":234},"\u00a6":{"d":"63,41r0,-2r0,-4r0,-3r0,-4r0,-6r0,-3r1,-10r0,-7r0,-2r0,-4r0,-3v0,-51,2,-77,7,-77r28,0v4,0,6,3,6,9r0,4r0,2r0,5r0,4r0,4r-1,4r0,3r0,4r0,4r0,3r0,4r0,4r0,4r-1,7r0,4r0,5v0,39,-1,62,-2,69v-1,3,-4,5,-12,5r-11,0v-10,0,-15,-3,-15,-10r0,-13xm68,-160r0,-8r0,-2r0,-7r0,-4r0,-4r1,-3r0,-4r0,-4r0,-3r0,-4r0,-4r0,-4r0,-3r1,-4r0,-4r0,-3v0,-49,2,-74,8,-74r27,0v4,0,5,2,5,6r0,20r0,2r0,10r0,5r0,4r-1,4r0,5r0,11r0,8v0,49,-3,73,-9,73r-26,0v-4,0,-6,-3,-6,-9","w":164},"\u00a7":{"d":"12,24v0,-6,2,-11,6,-15v4,-4,7,-6,12,-6v6,0,12,3,19,10v8,8,14,13,18,15v4,2,11,4,20,4v9,0,16,-3,22,-9v6,-6,9,-13,9,-22v0,-9,-4,-17,-12,-26v-3,-3,-12,-11,-28,-24v-16,-13,-27,-23,-33,-31v-9,-12,-14,-27,-14,-42v0,-10,2,-18,6,-25v4,-7,11,-16,19,-25v8,-9,12,-14,12,-16v0,-2,-1,-6,-2,-12v-1,-6,-1,-12,-1,-20v0,-8,2,-16,7,-26v10,-20,26,-34,49,-42v10,-3,22,-5,36,-5v14,0,26,4,38,10v12,6,18,15,18,25v0,7,-1,12,-5,16v-4,4,-8,6,-13,6v-5,0,-13,-4,-22,-13v-9,-9,-18,-13,-27,-13v-9,0,-17,3,-23,8v-6,5,-9,11,-9,19v0,8,2,15,7,21v5,6,16,15,32,27v16,12,28,23,36,34v8,11,11,23,11,38v0,15,-6,30,-17,45v-11,15,-17,26,-17,31r2,24v0,22,-8,40,-25,55v-18,16,-41,24,-69,24v-18,0,-32,-4,-44,-12v-12,-8,-18,-17,-18,-28xm74,-136r0,2v0,9,5,18,14,28v26,29,43,43,50,43v3,0,7,-3,12,-9v5,-6,7,-14,7,-22r0,-6v0,-9,-5,-19,-16,-31v-24,-26,-39,-39,-47,-39v-3,0,-7,3,-12,9v-5,6,-7,13,-7,20r-1,3r0,2","w":218},"\u00a8":{"d":"50,-253v0,-7,3,-13,8,-19v5,-6,10,-9,18,-9r6,0r6,0v0,0,6,2,10,6v4,4,6,10,6,18r0,1r0,5v0,6,-3,11,-9,16v-6,5,-11,7,-17,7r-6,0r0,0v-7,0,-12,-2,-16,-7v-4,-5,-6,-9,-6,-14r0,-4xm132,-249r1,-9v0,-7,3,-13,9,-17v6,-4,12,-6,17,-6r5,0v6,0,11,1,15,5v4,4,7,8,7,13r0,5r0,1r0,1r0,5v0,5,-3,10,-8,15v-5,5,-9,8,-14,8r-5,0r-4,0v-7,0,-12,-2,-16,-6v-4,-4,-6,-8,-6,-12v0,-1,-1,-2,-1,-3","w":171},"\u00a9":{"d":"35,-138r0,-5v0,-19,4,-36,10,-54v6,-18,15,-33,27,-46v12,-13,26,-24,42,-32v16,-8,32,-12,49,-12r9,0v14,0,28,4,44,12v30,15,51,39,62,73v6,18,10,36,10,55r0,5v0,39,-11,72,-33,99v-12,14,-26,25,-42,33v-17,8,-33,12,-50,12v-17,0,-33,-4,-50,-12v-16,-7,-29,-17,-41,-30v-12,-13,-21,-28,-27,-45v-6,-17,-10,-35,-10,-53xm62,-135v0,14,3,30,8,44v11,29,29,49,52,61v13,7,25,10,38,10r7,0v13,0,25,-3,38,-10v13,-7,24,-16,33,-28v9,-12,16,-25,21,-40v5,-15,7,-28,7,-41r0,-8v0,-19,-4,-35,-10,-49v-13,-30,-32,-51,-57,-62v-11,-5,-22,-7,-35,-7v-27,0,-51,11,-71,33v-9,11,-17,24,-23,39v-6,15,-8,30,-8,46r0,12xm88,-138v0,-28,8,-50,24,-67v6,-7,14,-12,24,-16v10,-4,23,-7,41,-7v18,0,29,3,36,8v7,5,10,14,10,25v0,5,-3,8,-10,8v-2,0,-8,-2,-17,-8v-9,-6,-18,-9,-27,-9v-13,0,-23,6,-31,18v-8,12,-12,26,-12,44v0,18,4,32,12,43v8,11,20,16,35,16v7,0,15,-3,23,-7v8,-4,14,-6,20,-6v6,0,9,2,9,6v0,9,-6,17,-17,23v-11,6,-25,9,-42,9v-23,0,-41,-6,-54,-20v-15,-16,-24,-37,-24,-60","w":322},"\u00aa":{"d":"26,-189r0,-5v0,-18,8,-37,25,-58v13,-16,30,-24,49,-24v4,0,8,0,13,2v5,2,8,3,9,3v1,0,3,-1,7,-3v4,-2,7,-3,9,-3r8,0v9,0,13,4,13,12v0,4,-2,16,-6,35v-4,19,-7,30,-7,35v0,5,1,9,5,11v4,2,6,7,6,12v0,5,-4,9,-10,13v-6,4,-15,6,-26,6v-7,0,-12,-3,-15,-10v-3,-7,-5,-10,-5,-10v-1,0,-4,1,-8,4v-4,3,-8,6,-14,9v-6,3,-12,4,-21,4v-9,0,-17,-3,-23,-9v-6,-6,-9,-15,-9,-24xm66,-196v0,11,2,17,9,17r4,0v7,0,15,-6,24,-18v10,-12,14,-26,14,-42r1,-4r0,-2v0,-7,-5,-11,-15,-11r-1,1v-8,0,-15,4,-22,14v-10,15,-14,29,-14,41r0,4","w":150},"\u00ab":{"d":"20,-103r0,-2v0,-5,13,-19,38,-43v25,-24,41,-35,45,-35v8,0,12,3,12,8v0,4,-8,16,-25,38v-17,22,-25,33,-25,35v0,2,5,11,13,29v8,18,12,30,12,36v0,7,-4,11,-14,11v-6,0,-12,-5,-19,-15v-24,-38,-37,-59,-37,-62xm100,-103r0,-2v0,-4,12,-17,36,-41v24,-24,39,-37,45,-37v8,0,12,3,12,8r0,2v0,4,-8,17,-24,37v-16,20,-25,32,-25,34v0,1,4,10,12,29v8,19,13,31,13,36v0,7,-5,11,-14,11v-5,0,-12,-6,-19,-16v-24,-34,-36,-55,-36,-61","w":198},"\u00ac":{"d":"28,-132r0,-6v0,-14,2,-21,5,-22v2,-1,34,-1,96,-1r75,0v13,0,20,3,20,8r0,12v0,6,-1,6,-1,12r0,13r-1,6r-1,16r0,6v0,6,-1,11,-1,13r0,12v0,6,-1,10,-1,12v0,5,-6,7,-16,7r-9,0v-5,0,-8,-2,-10,-7v-1,-3,-2,-15,-2,-36v0,-21,-2,-34,-4,-35v-2,-1,-25,-1,-68,-1v-43,0,-67,0,-73,-1v-6,-1,-9,-3,-9,-8","w":239},"\u00ad":{"d":"17,-87v0,-21,5,-34,12,-37v2,-1,20,-2,52,-2r42,0v6,0,9,1,9,4v0,14,-3,26,-8,34v-2,3,-7,5,-17,5r-64,0v-17,0,-26,-1,-26,-4","w":141},"\u00ae":{"d":"24,-153v0,-15,3,-30,10,-44v7,-14,16,-27,28,-38v12,-11,25,-19,41,-26v16,-7,33,-10,54,-10r5,0v16,0,31,3,46,9v30,12,50,33,62,63v4,11,7,24,7,39v0,32,-13,59,-39,81v-13,11,-28,19,-44,25v-16,6,-32,9,-47,9r-12,0v-15,0,-30,-3,-44,-9v-14,-6,-27,-14,-37,-24v-20,-19,-30,-42,-30,-69r0,-6xm62,-151v0,11,2,23,6,36v9,26,25,45,48,56v10,5,21,7,34,7v25,0,47,-11,65,-33v7,-9,14,-20,18,-33v4,-13,6,-25,6,-36r0,-10v0,-13,-2,-26,-7,-39v-10,-26,-27,-44,-50,-54v-9,-4,-18,-7,-28,-7v-2,0,-4,1,-6,1v-11,0,-22,3,-32,8v-21,11,-37,29,-47,55v-5,13,-7,26,-7,39r0,10xm100,-103v0,0,1,-3,3,-8v2,-5,2,-12,2,-19r0,-9v0,-6,1,-12,1,-17v0,-5,1,-10,1,-13r0,-8r0,-6r0,-7v0,-12,-1,-20,-2,-25v-1,-5,-1,-8,-1,-9v0,-4,10,-5,31,-5r17,-1v15,0,27,4,35,11v8,7,11,16,11,26v0,10,-4,19,-11,28v-7,9,-10,14,-10,15v0,1,1,3,4,8v3,5,7,11,10,17v3,6,7,13,11,18v4,5,6,9,6,12v0,3,-5,4,-13,4v-8,0,-14,-2,-18,-6v-1,-1,-5,-8,-13,-22v-8,-14,-14,-21,-19,-21v-7,0,-10,6,-10,17v0,4,1,9,3,15v2,6,2,9,2,10v0,6,-4,9,-12,9v-13,0,-20,-1,-23,-3v-3,-2,-5,-6,-5,-11xm132,-173v0,6,2,9,6,9r3,0r1,0r11,-1v1,0,3,-1,5,-1v2,0,5,-2,9,-5v4,-3,6,-7,6,-11v0,-2,1,-3,1,-5v0,-5,-2,-11,-6,-16v-3,-4,-7,-5,-12,-5r-14,-1v-7,0,-10,5,-10,16r0,20","w":288},"\u00af":{"d":"54,-250v0,-11,2,-18,6,-22v2,-2,11,-3,28,-3r90,0v10,0,15,2,15,5v0,12,-2,19,-6,23v-2,2,-8,3,-17,3r-91,0v-17,0,-25,-2,-25,-6","w":178},"\u00b0":{"d":"43,-225r0,-6v0,-16,7,-30,20,-42v13,-12,28,-18,44,-18v16,0,30,5,41,15v11,10,16,23,16,38r0,8v0,14,-6,27,-18,39v-12,12,-27,19,-44,19v-17,0,-31,-6,-42,-16v-11,-10,-17,-22,-17,-37xm73,-226r0,3v0,5,3,11,8,16v5,5,11,8,16,8r8,1r0,0v9,0,17,-4,22,-12v5,-8,8,-14,8,-21r0,-4v0,-8,-3,-15,-8,-21v-5,-6,-13,-9,-22,-9v-9,0,-17,4,-23,11v-6,7,-9,14,-9,21r0,7","w":163},"\u00b1":{"d":"23,-11r0,-7r0,-2r0,-5r0,-8v0,0,2,-7,4,-8v2,-1,11,-2,27,-2r133,0v20,0,31,1,31,5r0,2r0,3r0,2r-1,9v0,9,-3,14,-9,15v-5,1,-34,1,-87,1r-65,0v-22,0,-33,-1,-33,-5xm29,-140r0,-7v0,-11,1,-17,4,-19v3,-2,15,-2,37,-2v22,0,33,-1,35,-3v2,-2,4,-12,5,-31v1,-19,2,-29,3,-31v1,-2,6,-3,15,-3r11,0v5,0,8,2,9,5v0,1,1,8,1,20r-2,29v0,7,2,11,5,12v3,1,16,2,38,2v22,0,34,2,34,7r0,7v0,12,-1,19,-5,21v-4,2,-17,2,-38,2v-21,0,-32,2,-34,4v-2,2,-3,11,-4,29v-1,18,-2,28,-3,30v-1,2,-7,3,-15,3r-14,0v-4,0,-7,-8,-7,-25r1,-11r0,-9r0,-9v0,-6,-2,-10,-7,-11v-2,-1,-11,-1,-30,-1v-19,0,-30,0,-34,-1v-4,-1,-5,-3,-5,-8","w":237},"\u00b2":{"d":"27,-145v0,-6,11,-19,32,-38v21,-19,36,-33,44,-42v8,-9,12,-19,12,-29v0,-4,-2,-8,-5,-11v-3,-3,-7,-5,-12,-5v-5,0,-12,4,-21,10v-9,6,-16,9,-21,9v-5,0,-7,-3,-7,-10v0,-10,5,-19,16,-27v11,-8,24,-12,40,-12v16,0,29,4,38,11v9,7,14,17,14,28r0,3v0,12,-5,24,-16,37v-4,5,-15,14,-32,28v-17,14,-26,21,-26,22v0,2,5,4,14,4r41,-3v5,0,7,3,7,8v0,9,-5,15,-12,19v-7,4,-20,6,-37,6r-8,0r-35,-1v-17,0,-26,-2,-26,-7","w":147},"\u00b3":{"d":"27,-157v0,-10,5,-15,16,-15v3,0,8,2,15,7v7,5,13,7,20,7v7,0,14,-2,20,-7v6,-5,8,-11,8,-19v0,-8,-2,-14,-5,-17v-3,-3,-8,-5,-15,-7v-7,-2,-12,-3,-12,-3v-3,-1,-4,-5,-4,-10v0,-4,4,-7,13,-10v20,-6,31,-16,31,-29v0,-8,-6,-11,-17,-11v-4,0,-12,2,-20,6v-8,4,-14,6,-17,6v-4,0,-6,-4,-6,-11v0,-7,5,-14,14,-20v9,-6,21,-10,36,-10r5,0v14,0,26,3,35,8v9,5,13,13,13,21v0,14,-7,26,-20,36v-7,5,-11,8,-11,9v0,1,3,3,8,7v5,4,8,7,11,12v3,5,4,12,4,21v0,14,-7,26,-21,37v-14,11,-30,17,-50,17r-9,0v-15,0,-25,-3,-32,-8v-7,-5,-10,-10,-10,-17","w":147},"\u00b4":{"d":"77,-225r0,-1v0,-9,13,-26,39,-52v9,-9,20,-14,31,-14r2,0v6,0,11,2,17,6v2,2,3,3,3,6v0,7,-6,14,-17,21v-41,26,-62,40,-63,40r-1,0v-7,0,-11,-3,-11,-6","w":160},"\u00b5":{"d":"-3,69v0,-9,7,-44,21,-105v14,-61,21,-98,21,-114v0,-16,2,-27,8,-33v6,-6,18,-9,35,-9v7,0,12,2,14,4v2,2,3,8,3,15v0,11,-3,28,-8,50v-8,37,-11,58,-11,61v0,15,5,23,17,23v12,0,24,-8,35,-24v8,-11,15,-26,19,-43v4,-17,8,-32,11,-45v3,-13,6,-20,7,-22v6,-10,15,-15,28,-15v4,0,8,2,11,6v3,4,5,10,5,18v0,8,-2,21,-6,41v-4,19,-6,34,-6,45v0,9,1,15,4,18v5,5,6,10,6,15v0,12,-4,22,-14,31v-10,9,-22,13,-34,13v-7,0,-13,-4,-19,-13v-6,-9,-11,-13,-15,-13v-4,0,-12,4,-23,11v-11,7,-20,13,-27,16v-7,3,-10,7,-13,9v-7,6,-12,16,-15,27v-6,22,-10,34,-13,39v-5,8,-15,13,-26,13v-10,0,-15,-6,-15,-19","w":233},"\u00b6":{"d":"39,-186v0,-15,3,-30,10,-42v13,-24,34,-40,61,-47v16,-4,35,-7,57,-7r33,0v30,0,44,3,44,9v0,6,-4,14,-12,24v-8,10,-13,18,-14,23r-45,266v-3,9,-8,14,-18,14v-4,0,-7,-2,-9,-5v-2,-3,-3,-8,-3,-17v0,-9,2,-25,6,-51v6,-39,10,-74,13,-102v4,-34,7,-57,9,-70v2,-13,3,-19,3,-20v0,-5,-4,-8,-13,-8v-5,0,-8,4,-9,12v-19,139,-29,211,-30,214v-5,19,-9,29,-13,33v-4,4,-11,6,-19,6v-7,0,-10,-9,-10,-27r9,-106v0,-13,-8,-26,-25,-41v-8,-7,-13,-15,-18,-23v-5,-8,-7,-20,-7,-35","w":235},"\u00b7":{"d":"33,-113r0,-6v0,-1,1,-2,1,-3v0,-7,3,-14,9,-20v6,-6,13,-9,19,-9r5,-1v10,0,18,3,24,8v6,5,8,12,8,21r0,4v0,9,-3,18,-9,24v-6,6,-15,9,-23,9r-6,0r-3,0v-7,0,-12,-2,-17,-8v-5,-6,-8,-12,-8,-19","w":116},"\u00b8":{"d":"18,81v0,-6,6,-10,19,-13v13,-3,19,-9,19,-18v0,-3,-3,-7,-8,-11v-5,-4,-7,-8,-7,-11v0,-3,3,-8,10,-17v7,-9,12,-13,16,-13r6,0v6,0,8,2,8,5r-3,12v0,1,2,3,4,5v2,2,6,6,9,11v3,5,5,9,5,13r0,7v0,9,-6,18,-17,26v-11,8,-26,12,-45,12v-11,0,-16,-2,-16,-8","w":159},"\u00b9":{"d":"46,-145r0,-2v0,-4,4,-10,11,-16v7,-6,13,-12,15,-17v10,-23,14,-49,14,-74v0,-4,-3,-7,-11,-11v-8,-4,-12,-8,-12,-12v0,-3,2,-5,5,-7v3,-2,14,-5,31,-9v17,-4,28,-6,33,-6v3,0,5,3,5,9v0,2,-3,19,-11,52v-8,33,-12,52,-12,58v0,6,2,12,6,18v4,6,6,10,6,13v0,3,-2,5,-6,8v-4,3,-12,4,-23,4r-11,0r-3,0v-24,0,-37,-3,-37,-8","w":145},"\u00ba":{"d":"30,-201r0,-2v0,-20,7,-37,21,-52v6,-7,15,-12,24,-17v9,-5,18,-7,27,-7r9,0r2,0v14,0,25,4,34,13v9,9,14,20,14,32r0,8v0,9,-2,18,-7,28v-5,10,-10,19,-17,25v-15,14,-34,22,-55,22r-2,0v-15,0,-27,-4,-36,-13v-9,-9,-14,-22,-14,-37xm69,-196v0,7,1,12,4,17v3,5,7,7,11,7r3,0v9,0,16,-6,22,-16v8,-15,12,-28,12,-41r0,-8v0,-2,-1,-5,-1,-8v0,-3,-1,-6,-4,-9v-3,-3,-7,-4,-10,-4r-2,0v-9,0,-17,5,-23,17v-8,15,-12,31,-12,45","w":147},"\u00bb":{"d":"15,-34r0,-3v0,-3,9,-15,25,-35v16,-20,25,-32,25,-35v0,-3,-5,-12,-13,-29v-8,-17,-12,-29,-12,-37v0,-7,4,-10,13,-10v6,0,12,5,19,15v24,35,37,56,37,63v0,4,-19,26,-57,64v-10,10,-19,15,-26,15v-7,0,-11,-3,-11,-8xm93,-35v0,-2,9,-15,26,-37v17,-22,25,-33,25,-35v0,-2,-5,-11,-13,-29v-8,-18,-13,-30,-13,-37v0,-7,5,-10,14,-10v6,0,12,5,19,15v24,35,37,56,37,62r0,2v0,4,-19,25,-59,65v-9,9,-18,14,-25,14v-7,0,-11,-4,-11,-10","w":199},"\u00bc":{"d":"39,-133v0,-3,3,-9,10,-16v7,-7,11,-13,13,-18v8,-22,11,-45,11,-67v0,-6,-2,-10,-8,-14v-9,-6,-14,-10,-14,-13v0,-3,2,-5,7,-7v18,-9,39,-14,61,-14v4,0,6,2,6,7v0,5,-4,23,-11,54v-7,31,-11,51,-11,57v0,6,2,12,6,16v4,5,6,8,6,12v0,3,-1,5,-3,7v-5,5,-13,7,-23,7r-5,0r-8,0v-25,0,-37,-4,-37,-11xm60,0v0,-4,9,-18,27,-42r34,-46r4,-7v4,-5,4,-4,7,-9r7,-10r5,-6v11,-15,10,-15,15,-22r7,-9v56,-78,85,-120,89,-125v4,-5,11,-7,19,-7v8,0,13,1,13,4v0,3,-4,9,-10,18r-92,127r-59,82v-15,21,-26,37,-34,47v-5,6,-11,9,-17,9r-1,0v-10,0,-14,-1,-14,-4xm188,-43v-3,-3,-5,-6,-5,-10v0,-5,3,-11,8,-17v25,-31,50,-57,74,-79v8,-8,19,-12,31,-12r5,0v5,0,8,3,8,8v0,3,-3,15,-7,35v-4,20,-6,32,-6,35v0,3,2,9,6,15v4,6,6,10,6,12v0,2,-1,5,-3,9v-2,4,-6,11,-10,21v-4,10,-7,17,-9,19v-4,5,-10,8,-19,8r-9,0r-9,0v-11,0,-16,-6,-16,-18r2,-9v0,-1,-2,-3,-5,-6v-3,-3,-10,-6,-21,-6v-11,0,-18,-2,-21,-5xm212,-63v0,1,1,1,3,1r33,0v5,0,8,-4,8,-12r3,-14r0,-3v1,-5,2,-7,2,-8r4,-16r0,-2r1,-2r0,-1r-1,0r-1,0v-1,0,-10,9,-27,29r-2,2r-1,2r-2,2r-2,2r-1,2r-2,2r-8,8v-5,5,-7,7,-7,8","w":345},"\u00bd":{"d":"37,-131v0,-5,4,-11,11,-17v7,-6,11,-13,13,-19v8,-21,13,-44,13,-67v0,-7,-3,-12,-8,-15v-9,-5,-14,-9,-14,-12v0,-4,4,-9,11,-11v23,-8,42,-11,55,-11v5,0,8,3,8,8r-13,57v-7,36,-10,55,-10,58v0,3,2,8,6,13v4,5,5,8,5,12v0,3,-1,5,-3,7v-5,4,-12,6,-22,6r-8,0r-14,0r-5,0v-16,0,-25,-3,-25,-9xm57,-2v0,-2,3,-8,10,-18r139,-191r45,-63v0,0,12,-10,21,-10v9,0,13,1,13,5v0,2,-65,93,-194,271v-6,8,-12,11,-21,11v-9,0,-13,-1,-13,-5xm192,-8v0,-6,11,-19,34,-39v23,-20,36,-33,40,-38v9,-11,14,-22,14,-32v0,-4,-2,-8,-5,-11v-3,-3,-7,-5,-12,-5v-5,0,-12,4,-21,10v-9,6,-17,9,-21,9v-4,0,-6,-3,-6,-10v0,-10,5,-20,16,-27v11,-7,24,-11,40,-11v16,0,28,4,37,11v9,7,14,16,14,27v0,13,-5,26,-14,37v-5,7,-16,16,-33,30v-17,14,-26,21,-26,23v0,2,6,3,17,3r37,-2v4,0,6,3,6,8v0,9,-4,15,-12,20v-5,3,-14,5,-24,5r-24,0r-7,-1r-24,0v-18,0,-26,-2,-26,-7","w":345},"\u00be":{"d":"23,-143r0,-4v0,-9,5,-13,15,-13v4,0,8,3,14,9v6,6,13,8,21,8v8,0,14,-3,20,-8v6,-5,8,-11,8,-18v0,-7,-2,-12,-5,-15v-3,-3,-10,-7,-20,-9v-7,-2,-10,-6,-10,-12v0,-4,5,-8,14,-11v18,-5,27,-15,27,-28v0,-8,-6,-11,-17,-11v-4,0,-11,2,-19,6v-7,4,-12,6,-16,6v-4,0,-7,-3,-7,-7v0,-10,5,-18,15,-24v10,-6,22,-10,35,-10r9,0v12,0,23,3,31,9v8,6,13,13,13,22r0,3v0,12,-8,23,-22,33v-6,4,-9,7,-9,8v0,1,2,3,6,5v12,7,18,17,18,32v0,15,-8,27,-22,38v-14,11,-31,16,-53,16v-14,0,-26,-2,-34,-6v-8,-4,-12,-11,-12,-19xm68,0v0,-4,63,-94,191,-270v6,-8,13,-13,20,-13v11,0,16,2,16,5v0,2,-1,5,-5,11v-31,49,-93,134,-185,256v-8,10,-15,15,-21,15v-11,0,-16,-1,-16,-4xm187,-54v0,-9,27,-40,80,-93v9,-9,20,-13,35,-13v7,0,11,2,11,7v0,3,-2,15,-6,35v-4,20,-7,32,-7,37v0,1,2,5,6,12v4,7,7,11,7,13v0,2,-2,5,-3,7v-1,2,-3,5,-5,10v-2,5,-4,7,-6,9v-2,2,-3,3,-3,5v0,9,-2,16,-7,20v-5,4,-13,7,-26,7r-12,0v-9,0,-14,-6,-14,-18r2,-10v0,-1,-1,-4,-5,-7v-4,-3,-11,-4,-21,-4v-10,0,-16,-2,-20,-5v-4,-3,-6,-7,-6,-12xm217,-63v0,1,0,1,1,1r35,0v5,0,8,-5,8,-14r8,-40r1,-3v0,-1,-1,-1,-1,-1v-2,0,-9,9,-24,26r-1,1r0,0r-4,4r-1,1r-1,1r-2,3r-2,2r-2,1r-1,2r-4,4r-1,2r-2,1","w":346},"\u00bf":{"d":"3,22v0,-33,20,-63,60,-89v9,-6,14,-10,17,-13v3,-3,5,-8,8,-17v3,-9,5,-14,6,-15v4,-5,9,-7,16,-7v7,0,12,2,15,5v3,3,4,10,4,21v0,11,-4,22,-12,35v-2,3,-8,10,-18,19v-24,21,-35,40,-35,56v0,13,5,19,17,19v6,0,15,-3,26,-9v11,-6,19,-10,24,-10v8,0,12,7,12,19r0,3v0,11,-5,20,-15,27v-15,11,-31,17,-50,17r-8,0v-19,0,-35,-6,-48,-18v-13,-12,-19,-26,-19,-43xm91,-173r0,-4v0,-9,4,-17,10,-23v6,-6,12,-10,19,-10r2,0r6,0v9,0,16,2,21,7v5,5,7,12,7,19r0,5v0,9,-3,17,-10,24v-7,7,-14,10,-22,10r-5,0v-8,0,-15,-3,-20,-8v-5,-5,-8,-12,-8,-20","w":190},"\u00c0":{"d":"-6,-19r0,-4v0,-5,5,-12,17,-22v6,-5,15,-15,24,-30r28,-47r30,-52v11,-17,21,-36,32,-56v11,-20,18,-32,23,-38v10,-12,23,-19,38,-19r5,0v10,0,17,8,20,23v2,8,5,37,9,87v7,77,13,119,18,127v1,1,3,5,7,9v4,4,6,7,6,9r0,5v0,8,-5,14,-15,18v-16,6,-34,9,-54,9v-13,0,-20,-3,-20,-11r3,-7v2,-5,4,-9,5,-14v1,-5,2,-13,2,-25v0,-12,-3,-20,-10,-23v-3,-2,-17,-2,-40,-2v-23,0,-37,3,-42,10v-5,7,-9,17,-15,32v-6,15,-9,26,-9,32v0,6,-5,9,-16,9v-16,0,-30,-4,-41,-12v-4,-3,-5,-5,-5,-8xm104,-117v0,1,2,2,5,2r1,0r2,0r41,0r7,0v6,0,10,-3,10,-7r0,-2r0,-2r0,-3r-2,-14r0,-6r0,-1r-1,-9r0,-2r0,-1r-1,-9r-2,-25v0,-3,-1,-6,-1,-8v0,-11,-2,-15,-4,-15v-1,0,-10,17,-28,50v-18,33,-27,51,-27,52xm130,-357r0,-3v0,-3,2,-6,6,-9v4,-3,9,-5,13,-5r2,0r5,0v9,0,18,4,28,13v4,3,13,15,27,33v3,4,5,8,6,13r-1,1r0,1v0,4,-3,6,-11,6r-1,0v-9,0,-20,-5,-32,-13v-29,-20,-42,-32,-42,-37","w":273},"\u00c1":{"d":"-7,-19r0,-4v0,-5,6,-12,18,-22v7,-6,19,-24,36,-52r31,-51v8,-15,16,-27,21,-36v5,-9,14,-23,25,-44v11,-21,19,-34,24,-40v10,-12,22,-19,37,-19r6,0v9,0,16,6,19,18v2,8,5,38,10,90v5,52,9,86,11,101v2,15,4,23,6,26v2,3,4,7,8,11v4,4,5,7,5,9r0,5v0,8,-4,14,-14,18v-16,6,-35,9,-55,9v-13,0,-19,-3,-19,-8v0,-3,2,-9,6,-17v2,-7,3,-17,3,-30v0,-13,-3,-22,-10,-25v-3,-2,-16,-2,-39,-2v-23,0,-37,4,-42,10v-5,6,-10,17,-16,32v-6,15,-8,25,-8,32v0,6,-5,9,-16,9v-16,0,-29,-4,-41,-12v-4,-2,-6,-5,-6,-8xm104,-117v0,1,2,2,5,2r1,0r1,0r42,0r7,0v6,0,9,-2,9,-5r0,-6r0,-1r-1,-15r0,-1r0,-4r-1,-9r0,-6v-1,-4,-1,-7,-1,-9r-1,-6r0,-6r-2,-18v0,-3,-1,-8,-1,-12v0,-4,0,-6,-2,-6r-1,0v-1,0,-10,17,-28,50v-18,33,-27,51,-27,52xm155,-314v0,-7,14,-22,41,-46v11,-9,22,-14,34,-14r2,0v5,0,8,1,12,4v5,3,7,6,7,9r0,2v0,5,-6,12,-19,20v-34,22,-56,32,-67,32v-6,0,-10,-2,-10,-7","w":273},"\u00c2":{"d":"-7,-19v0,-8,3,-15,10,-20v17,-14,43,-52,76,-112v33,-60,54,-98,65,-113v11,-15,25,-23,41,-23r6,0v9,0,15,6,19,18v1,2,4,33,10,93v6,60,10,96,12,106v2,10,2,15,4,18v2,3,4,7,8,11v4,4,6,7,6,9r0,5v0,8,-6,14,-19,19v-13,5,-30,8,-50,8v-13,0,-20,-3,-20,-11v0,0,1,-3,3,-7v4,-9,7,-22,7,-36v0,-14,-3,-23,-10,-26v-4,-2,-17,-2,-40,-2v-23,0,-36,3,-41,9v-5,6,-10,18,-16,33v-6,15,-9,26,-9,34v0,5,-6,7,-19,7v-13,0,-25,-4,-37,-12v-4,-3,-6,-5,-6,-8xm103,-117v0,1,5,2,14,2r36,0v4,-1,6,0,8,0v5,0,8,-3,8,-7r0,-1r0,-1r0,-3r-1,-16r0,-2r-1,-8r0,-3r-1,-6r0,-6v-1,-4,-1,-7,-1,-9r-1,-9v-1,-4,-1,-7,-1,-9r0,-6v0,-2,-1,-3,-1,-4v0,-9,-1,-14,-3,-14r0,0v-1,0,-11,17,-29,50v-18,33,-27,51,-27,52xm120,-313v0,-5,17,-23,50,-51v9,-7,17,-11,25,-11v1,0,3,1,4,1v9,0,15,3,21,10v20,23,30,39,30,48v0,5,-4,9,-12,9v-8,0,-17,-4,-26,-12v-1,-1,-5,-4,-10,-10v-5,-6,-9,-9,-10,-9v-1,0,-9,5,-23,15v-14,10,-26,16,-34,16r-2,0v-9,0,-13,-2,-13,-6","w":273},"\u00c3":{"d":"-7,-20r0,-4v0,-5,6,-11,18,-21v6,-5,12,-14,19,-25r32,-53v11,-19,11,-19,12,-21r6,-10r36,-61v15,-28,25,-44,28,-49v11,-15,25,-23,41,-23r5,0v10,0,18,8,21,23v2,6,3,22,5,48v6,71,11,116,14,134v3,18,4,27,6,30v2,3,4,7,8,11v4,4,6,7,6,9v0,10,-4,17,-11,21v-15,8,-35,11,-58,11v-13,0,-20,-4,-20,-12r6,-14v2,-7,4,-14,4,-23v0,-17,-3,-28,-10,-31v-3,-2,-17,-3,-40,-3v-23,0,-37,4,-42,11v-5,7,-10,17,-15,32v-5,15,-9,26,-9,32v0,6,-4,8,-15,8v-16,0,-30,-4,-42,-12v-4,-2,-5,-5,-5,-8xm103,-117v0,2,7,2,20,2r28,0r4,0r6,-1v5,0,8,-2,8,-6r0,-3r0,-1r0,-2r-1,-12r-1,-12r0,-4v0,-3,-1,-6,-1,-8r-1,-6r0,-6r-2,-15r0,-6v0,0,-1,-7,-1,-13v0,-6,-1,-10,-3,-10r0,0v-2,0,-6,8,-13,22r-11,20r-11,20v-14,26,-21,39,-21,41xm120,-319v0,-12,5,-22,14,-31v9,-9,20,-13,32,-13v7,0,16,3,27,8v11,5,19,8,24,8v5,0,10,-3,16,-8v6,-5,11,-8,16,-8v5,0,8,2,8,6v0,13,-5,24,-17,34v-8,7,-17,11,-25,11v-1,0,-3,-1,-4,-1v-7,0,-16,-3,-27,-8v-11,-5,-19,-8,-24,-8v-5,0,-10,3,-16,8v-6,5,-11,9,-16,9v-5,0,-8,-3,-8,-7","w":273},"\u00c4":{"d":"-9,-19r0,-4v0,-5,6,-12,18,-22v6,-5,15,-16,24,-31r43,-72r22,-37v6,-10,15,-26,25,-45v10,-19,18,-32,23,-38v10,-12,23,-19,38,-19r5,0v9,0,16,6,19,18v2,8,5,38,10,90v5,52,9,86,11,101v2,15,5,25,6,27v1,2,4,5,8,10v4,5,6,8,6,10r0,4v0,8,-8,15,-23,21v-11,4,-26,7,-46,7v-13,0,-20,-3,-20,-9v0,-3,1,-5,2,-8v5,-9,8,-20,8,-35v0,-15,-4,-25,-11,-28v-3,-2,-16,-3,-39,-3v-23,0,-37,4,-42,11v-5,7,-11,17,-16,32v-5,15,-8,25,-8,31v0,6,-5,9,-16,9v-16,0,-30,-4,-41,-12v-4,-3,-6,-5,-6,-8xm102,-117v0,1,2,2,5,2r1,0r2,1r41,0v3,0,5,-1,7,-1v6,0,10,-2,10,-6r0,-4r-1,-2r0,-11r-1,-2r0,-4r-1,-9r0,-7r-4,-39r0,-4v0,-10,-1,-16,-3,-16r-1,0v-1,0,-10,17,-28,50v-18,33,-27,51,-27,52xm119,-334v0,-8,3,-15,8,-21v5,-6,11,-9,19,-9r5,0v7,0,13,2,17,7v4,5,6,9,6,14v0,1,-1,3,-1,4v0,8,-2,13,-7,19v-5,6,-10,9,-16,9r-3,0r-4,0v-7,0,-12,-1,-17,-5v-5,-4,-7,-10,-7,-18xm203,-331r0,-6v0,-2,1,-3,1,-4v0,-7,3,-13,9,-17v6,-4,12,-6,18,-6r4,0r6,0v0,0,6,2,10,6v4,4,7,10,7,18v0,8,-3,14,-8,20v-5,6,-10,9,-16,9v-1,0,-3,1,-6,1r-1,-1v-7,0,-12,-1,-17,-5v-5,-4,-7,-9,-7,-15","w":273},"\u00c5":{"d":"-8,-18v0,-8,6,-16,17,-25v11,-9,34,-47,71,-112v37,-65,59,-102,66,-111v10,-13,22,-20,37,-20r5,0v11,0,19,8,22,22v1,5,2,18,4,39v7,79,12,133,17,161v2,9,4,14,7,18v8,10,12,16,12,19v0,8,-5,14,-15,18v-17,7,-34,10,-54,10v-14,0,-20,-4,-20,-11r2,-6v5,-10,7,-21,7,-36v0,-15,-3,-24,-9,-27v-3,-2,-16,-3,-38,-3v-22,0,-37,2,-41,6v-4,4,-13,27,-27,71v-1,4,-6,6,-15,6r-5,0v-13,0,-26,-4,-37,-11v-4,-2,-6,-5,-6,-8xm103,-116v0,2,3,2,11,2r39,0v3,0,5,-1,7,-1v6,0,8,-2,8,-6r0,-3r0,-2r-1,-14r0,-2r0,-4r-1,-9r-1,-7r0,-6v0,-2,-1,-4,-1,-5r-2,-19r0,-7v0,0,-1,-6,-1,-11v0,-5,-1,-9,-3,-9v-1,0,-10,17,-28,50v-18,33,-27,51,-27,53xm144,-338r0,-2v0,-12,4,-21,14,-30v10,-9,21,-13,35,-13r1,0v11,0,20,4,28,11v8,7,11,14,11,24r0,4v0,12,-5,23,-14,31v-9,8,-21,13,-34,13v-13,0,-23,-4,-30,-11v-7,-7,-11,-16,-11,-27xm168,-341v0,6,1,11,4,15v3,4,6,5,9,5v2,1,3,1,6,1r6,-1v3,0,6,-3,10,-7v4,-4,5,-8,5,-10r1,-3r0,-5r-1,-4v0,-2,-1,-4,-4,-8v-3,-4,-7,-5,-11,-5r-5,0v-1,0,-3,1,-5,1v-2,0,-5,2,-9,6v-4,4,-6,9,-6,15","w":273},"\u00c6":{"d":"-6,-22v0,-2,7,-11,21,-28v14,-17,36,-46,66,-87v30,-41,49,-70,59,-85v10,-15,16,-26,18,-32v3,-14,6,-22,7,-23v6,-6,27,-8,64,-8r85,0v17,0,28,1,35,4v11,5,16,13,16,21v0,8,-1,15,-3,19v-2,4,-5,6,-7,6v-2,0,-6,-1,-11,-3v-5,-2,-12,-5,-18,-7v-6,-2,-15,-4,-28,-4v-13,0,-22,4,-29,12v-11,13,-17,29,-17,49v0,10,2,16,6,19v2,2,6,2,12,2v6,0,12,-1,18,-3r21,-8v8,0,14,2,17,7v2,3,3,8,3,15v0,20,-4,34,-11,42r-5,3v-3,0,-9,-3,-18,-8v-9,-5,-18,-8,-26,-8v-14,0,-24,5,-29,15v-5,10,-8,24,-8,40v0,16,2,26,6,30v4,4,13,6,27,6v14,0,31,-4,49,-13v18,-9,28,-13,30,-13v5,0,8,7,8,19v0,12,-4,22,-11,30v-7,8,-20,13,-42,13r-21,0r-10,-1r-75,1v-14,0,-25,-1,-30,-2v-8,-2,-11,-5,-11,-11v0,-4,1,-7,3,-11r8,-13v5,-10,7,-21,7,-32v0,-11,-3,-18,-6,-22v-3,-4,-11,-6,-22,-6v-22,0,-37,3,-46,11v-4,4,-20,30,-48,79v-2,3,-8,4,-19,4v-11,0,-20,-3,-29,-11v-4,-3,-6,-6,-6,-8xm123,-132v0,1,2,1,7,2r40,0v8,0,13,-3,15,-8v2,-8,4,-17,5,-27v1,-10,4,-23,7,-39v3,-16,5,-27,5,-33v0,-4,-1,-5,-2,-5r-1,0v-1,0,-10,11,-27,34v-33,43,-49,69,-49,76","w":376},"\u00c7":{"d":"30,-116r0,-6v0,-24,4,-48,14,-70v19,-45,50,-78,90,-98v21,-11,41,-15,62,-15r7,0v18,0,30,1,37,5v17,8,25,18,25,28v0,10,-2,17,-5,21v-3,4,-5,6,-7,6r-24,-7v-10,-2,-21,-3,-34,-3v-13,0,-25,3,-37,9v-24,12,-41,34,-53,64v-7,17,-10,33,-10,49v0,26,6,46,18,61v12,15,29,23,50,23v10,0,22,-2,35,-5v13,-3,20,-5,23,-5v6,0,10,4,10,11v0,14,-4,25,-12,31v-5,4,-14,8,-29,13v-15,5,-31,7,-47,7v-16,0,-31,-3,-46,-9v-15,-6,-27,-14,-38,-26v-20,-22,-29,-50,-29,-84xm79,75r0,-1r16,-13v6,-7,9,-14,9,-20r-1,-1r0,-1v-1,-2,-1,-5,-1,-6v0,-1,3,-5,8,-12v5,-7,8,-10,10,-10r2,0r1,0v4,0,8,2,12,6v4,4,7,7,11,9v4,2,6,5,6,8r0,2v0,11,-8,23,-21,35v-13,12,-26,18,-40,18v-8,0,-12,-5,-12,-14","w":250},"\u00c8":{"d":"7,-19v0,-2,5,-9,14,-19v5,-5,9,-14,12,-26v8,-31,17,-66,24,-106v7,-40,10,-62,10,-67v0,-5,-2,-11,-6,-17v-4,-6,-7,-10,-7,-13v0,-8,7,-13,20,-15v13,-2,44,-3,94,-3r32,-1v20,0,32,2,37,5v5,3,7,12,7,28v0,8,-2,13,-5,17v-3,4,-5,5,-7,5v-2,0,-6,-2,-12,-5v-6,-3,-13,-6,-21,-9v-8,-3,-20,-5,-34,-5v-14,0,-24,5,-30,15v-11,18,-17,37,-17,55v0,5,2,7,5,9v3,2,10,3,19,3v9,0,18,-3,26,-8v9,-5,16,-8,21,-8v8,0,12,6,12,18v0,16,-3,31,-10,44v-4,7,-8,11,-12,11v-4,0,-11,-3,-20,-9v-9,-6,-19,-9,-27,-9v-14,0,-23,5,-27,15v-6,14,-9,28,-9,44v0,16,2,25,6,29v4,4,13,5,28,5v21,0,42,-4,60,-14v10,-5,16,-8,19,-8v5,0,7,3,7,9v0,6,-1,12,-5,21v-4,9,-9,16,-15,21v-6,5,-23,7,-50,7r-66,0v-33,0,-53,-1,-61,-4v-8,-3,-12,-7,-12,-15xm108,-359v0,-4,1,-7,4,-9v6,-5,12,-7,16,-7r2,0r5,1v7,0,16,4,27,12v3,2,12,13,26,31v5,6,7,11,7,16v0,5,-3,7,-8,7r-4,0v-10,0,-21,-4,-32,-13v-29,-22,-43,-35,-43,-38","w":243},"\u00c9":{"d":"7,-19v0,-2,5,-9,14,-19v5,-5,10,-14,13,-26v8,-29,16,-64,23,-104v7,-40,11,-64,11,-69v0,-5,-3,-11,-7,-17v-4,-6,-6,-10,-6,-14v0,-8,6,-12,18,-14v12,-2,44,-3,95,-3r40,-1v15,0,25,2,29,5v4,3,7,10,7,21r0,7v0,8,-1,13,-4,17v-3,4,-6,5,-8,5v-2,0,-6,-1,-12,-5v-6,-4,-12,-7,-20,-10v-8,-3,-19,-4,-34,-4v-15,0,-25,5,-31,15v-11,18,-16,36,-16,55v0,8,7,12,23,12v9,0,18,-3,26,-8v8,-5,16,-8,22,-8v7,0,11,6,11,18v0,16,-3,31,-10,44v-4,7,-8,11,-12,11v-4,0,-11,-3,-20,-9v-9,-6,-19,-9,-27,-9v-14,0,-23,5,-27,15v-6,14,-9,28,-9,44v0,16,2,25,6,29v4,4,13,5,28,5v23,0,43,-5,60,-14v9,-5,15,-8,19,-8v5,0,7,3,7,9v0,6,-1,12,-5,21v-4,9,-9,16,-15,21v-6,5,-23,7,-50,7r-57,0v-38,0,-62,-1,-70,-4v-8,-3,-12,-7,-12,-15xm132,-314v0,-7,13,-22,40,-46v11,-10,21,-14,31,-14r3,-1r4,0v4,0,8,2,12,5v4,3,6,6,6,9r0,1v0,5,-8,13,-24,23v-31,20,-51,30,-60,30r-4,0v-5,0,-8,-2,-8,-7","w":243},"\u00ca":{"d":"7,-19v0,-2,5,-9,14,-19v5,-5,9,-14,12,-26v9,-33,17,-68,24,-107v7,-39,10,-61,10,-66v0,-5,-2,-11,-6,-17v-4,-6,-7,-10,-7,-14v0,-7,5,-10,13,-13v8,-3,28,-4,59,-4r8,0r17,0r57,-1v15,0,24,2,29,5v5,3,7,12,7,28v0,8,-2,13,-5,17v-3,4,-5,5,-7,5v-2,0,-6,-1,-12,-5v-6,-4,-13,-6,-21,-9v-8,-3,-20,-5,-34,-5v-14,0,-24,5,-30,15v-11,18,-17,36,-17,55v0,8,8,12,24,12v9,0,18,-3,26,-8v8,-5,16,-8,22,-8v7,0,11,6,11,18v0,16,-3,31,-10,44v-4,7,-8,11,-12,11v-4,0,-11,-3,-20,-9v-9,-6,-19,-9,-27,-9v-14,0,-23,5,-27,15v-6,14,-9,28,-9,44v0,16,2,25,6,29v4,4,13,5,28,5v22,0,42,-5,60,-14v9,-5,15,-8,19,-8v5,0,7,3,7,9v0,6,-1,12,-5,21v-4,9,-10,16,-16,21v-6,5,-25,7,-57,7r-41,0v-37,0,-62,-1,-73,-3v-11,-2,-17,-7,-17,-16xm96,-313v0,-5,18,-23,52,-52v8,-7,16,-9,25,-9v9,0,17,3,23,10v20,23,30,39,30,47r0,3v0,5,-5,7,-16,7v-7,0,-15,-6,-25,-16v-10,-10,-16,-15,-17,-15v-1,0,-5,3,-13,8v-21,15,-36,23,-43,23v-11,0,-16,-2,-16,-6","w":243},"\u00cb":{"d":"6,-19v0,-3,6,-9,15,-19v5,-5,9,-13,12,-26v8,-31,16,-65,23,-105v7,-40,11,-63,11,-68v0,-5,-3,-10,-7,-16v-4,-6,-6,-11,-6,-14v0,-8,6,-13,19,-15v13,-2,44,-3,94,-3r33,0v20,0,31,1,36,4v5,3,7,12,7,28v0,8,-1,13,-4,17v-3,4,-6,6,-8,6v-2,0,-5,-3,-11,-6v-6,-3,-13,-6,-21,-9v-8,-3,-20,-4,-34,-4v-14,0,-25,4,-31,14v-11,18,-16,37,-16,55v0,5,1,8,4,10v3,2,10,2,19,2v9,0,18,-3,26,-8v8,-5,16,-8,23,-8v7,0,10,6,10,18v0,12,-3,24,-7,36v-4,12,-9,19,-15,19v-4,0,-11,-3,-20,-9v-9,-6,-19,-9,-27,-9v-14,0,-23,5,-27,15v-6,13,-9,27,-9,43v0,16,2,26,6,30v4,4,13,6,28,6v15,0,28,-2,37,-5v9,-3,18,-7,26,-11v8,-4,14,-7,17,-7v5,0,7,3,7,9v0,6,-2,12,-6,21v-4,9,-9,16,-15,21v-6,5,-23,7,-50,7r-65,0v-33,0,-54,0,-62,-3v-8,-3,-12,-8,-12,-16xm97,-335v0,-8,2,-14,7,-20v5,-6,10,-9,16,-9r4,-1r6,0v1,0,3,1,5,1v2,0,5,1,9,5v5,4,7,10,7,19r-1,6v0,5,-2,10,-7,15v-5,5,-10,7,-14,7r-5,1r-5,0v-7,0,-12,-2,-16,-6v-4,-4,-6,-10,-6,-18xm181,-332r0,-5v0,-5,2,-12,7,-18v5,-6,11,-10,19,-10r7,0v7,0,12,2,16,7v4,5,5,11,5,18v0,7,-2,14,-7,20v-5,6,-11,9,-19,9r-5,0v-6,0,-11,-2,-16,-6v-5,-4,-7,-9,-7,-15","w":243},"\u00cc":{"d":"6,-11r0,-4v0,-5,6,-12,17,-22v6,-6,11,-15,14,-27v3,-12,7,-31,12,-58v5,-27,10,-50,14,-70v4,-20,6,-34,6,-41v0,-7,-3,-14,-8,-21v-5,-7,-8,-12,-8,-14v0,-7,4,-11,13,-14v6,-2,22,-2,47,-2r27,-1v13,0,20,4,20,12v0,4,-4,10,-12,17v-8,7,-11,13,-13,19v-2,6,-9,37,-21,92v-12,55,-18,87,-18,94v0,7,2,15,7,22v5,7,7,12,7,15v0,3,-2,6,-6,9v-4,3,-11,4,-21,4r-6,0r-9,0r-8,0r-18,-1v-24,0,-36,-3,-36,-9xm59,-358r0,-4v0,-2,2,-5,7,-8v5,-3,9,-5,13,-5r2,0r6,1v7,0,15,3,25,11v4,3,12,14,26,32v5,7,8,11,8,14r0,3v0,4,-3,6,-9,6v-11,0,-23,-4,-35,-13v-29,-20,-43,-32,-43,-37","w":148},"\u00cd":{"d":"7,-11v0,-6,6,-15,17,-26v6,-6,12,-17,16,-31v0,-1,2,-11,6,-30r5,-29r3,-12r1,-9r2,-8r5,-29v5,-24,8,-41,8,-48v0,-7,-3,-14,-8,-21v-5,-7,-8,-12,-8,-14v0,-8,6,-13,17,-15v5,-1,19,-1,43,-1r27,-1v13,0,20,3,20,8r0,4v0,4,-4,9,-11,16v-7,7,-13,16,-16,25v-1,3,-7,32,-19,87v-12,55,-18,87,-18,94v0,7,2,15,7,22v5,7,7,12,7,14v0,10,-10,14,-29,14r-12,0r-13,-1r-18,0v-21,0,-32,-3,-32,-9xm87,-313r0,-2v0,-6,13,-22,41,-47v10,-8,19,-12,28,-12r6,-1v5,0,10,2,14,5v4,3,7,7,7,11v0,4,-7,11,-19,19v-35,22,-57,33,-66,33r-3,0v-5,0,-8,-2,-8,-6","w":148},"\u00ce":{"d":"7,-11r0,-4v0,-3,6,-11,17,-22v6,-6,10,-15,14,-27v0,0,4,-18,11,-55r4,-16r1,-9v3,-17,4,-17,10,-49v4,-22,6,-36,6,-42v0,-6,-3,-12,-8,-19v-5,-7,-8,-12,-8,-14v0,-7,4,-11,13,-14v5,-2,21,-2,47,-2r23,-1v16,0,24,3,24,8r0,3v0,5,-4,11,-12,18v-8,7,-13,17,-16,28v-1,2,-10,46,-29,133v-5,22,-7,36,-7,44v0,8,2,15,7,22v5,7,7,12,7,15v0,3,-1,6,-5,9v-4,3,-11,4,-20,4r-8,0r-13,0r-4,0v-3,0,-6,-1,-9,-1r-13,0v-21,0,-32,-3,-32,-9xm51,-313v0,-5,17,-23,50,-51v9,-7,18,-11,26,-11v1,0,1,1,2,1v8,0,16,3,21,9v21,22,31,38,31,48r0,3v0,5,-5,7,-16,7v-8,0,-17,-6,-27,-17r-5,-5v-6,-6,-9,-9,-10,-9v-1,0,-9,5,-23,15v-14,10,-26,16,-33,16r-4,0v-8,0,-12,-2,-12,-6","w":148},"\u00cf":{"d":"6,-11v0,-7,6,-15,17,-26v6,-6,11,-14,14,-25v3,-11,7,-30,12,-57v5,-27,8,-50,13,-71v5,-21,7,-35,7,-42v0,-7,-3,-15,-8,-22v-5,-7,-8,-11,-8,-13v0,-7,4,-13,13,-15v7,-2,24,-2,52,-2r18,-1v16,0,24,3,24,8r0,4v0,4,-5,10,-12,17v-7,7,-11,13,-13,19v-2,6,-9,37,-21,92v-12,55,-18,87,-18,94v0,7,2,15,7,22v5,7,7,12,7,15v0,3,-2,6,-6,9v-4,3,-11,5,-21,5v-2,0,-4,-1,-6,-1r-9,0r-8,0r-18,-1v-24,0,-36,-3,-36,-9xm51,-332r0,-4v0,-7,2,-13,7,-19v5,-6,10,-9,16,-9r3,0r5,0v6,0,12,1,16,5v4,4,7,8,7,13r0,2r0,6r-1,5v0,5,-2,10,-8,15v-6,5,-12,7,-18,7r-5,0v-2,0,-3,-1,-4,-1v-5,0,-9,-2,-13,-6v-4,-4,-5,-9,-5,-14xm135,-332r0,-6r0,-3v0,-6,3,-11,9,-16v6,-5,11,-7,17,-7r7,0v5,0,10,1,14,5v4,4,7,8,7,13r0,5r0,1r0,1v0,7,-2,13,-7,19v-5,6,-12,9,-20,9r-4,0v-2,0,-4,-1,-6,-1v-2,0,-6,-1,-10,-5v-4,-4,-7,-9,-7,-15","w":148},"\u00d0":{"d":"7,-8v0,-5,4,-11,10,-18v6,-7,10,-15,13,-23v11,-35,17,-61,17,-77v0,-2,-4,-5,-13,-7v-9,-2,-14,-5,-14,-11v0,-8,2,-14,7,-17v1,-1,7,-2,18,-4v6,-1,10,-5,12,-10v7,-19,11,-40,11,-65v0,-7,-2,-13,-6,-20v-4,-7,-5,-11,-5,-12v0,-6,3,-9,9,-11v6,-2,27,-3,62,-3r28,0v44,0,78,10,101,29v11,9,19,21,25,36v6,15,9,30,9,46r0,11v0,22,-5,44,-15,67v-10,23,-23,41,-41,56v-18,15,-38,26,-58,32v-20,6,-44,9,-71,9r-28,0r-5,0r-11,-1v-37,0,-55,-2,-55,-7xm92,-43v0,6,7,9,20,9r7,0v15,0,30,-3,43,-9v27,-13,46,-36,57,-70v6,-19,10,-37,10,-54r0,-11v0,-22,-7,-39,-19,-53v-5,-6,-12,-12,-21,-16v-9,-4,-18,-5,-27,-5r-11,0v-9,0,-14,3,-17,9v-2,3,-5,14,-9,34v-4,20,-6,31,-6,36v0,5,1,8,5,9v2,0,8,0,19,1v11,1,17,2,19,3v2,1,4,5,4,11v0,6,-2,10,-7,13v-5,3,-13,5,-26,5v-13,0,-22,3,-26,11v-2,5,-5,18,-9,39v-4,21,-6,34,-6,38","w":296},"\u00d1":{"d":"6,-16v0,-2,2,-6,7,-11v5,-5,8,-11,12,-17v4,-6,7,-15,11,-29v4,-14,10,-42,18,-86v8,-44,11,-70,11,-76v0,-6,-1,-14,-5,-23v-4,-9,-5,-16,-5,-19v0,-5,7,-8,22,-8v15,0,27,1,36,4v9,3,16,9,22,17v10,15,24,42,42,80r20,42r21,47v2,0,4,-2,5,-6v3,-11,9,-34,15,-69v6,-35,9,-57,9,-65v0,-8,-1,-16,-3,-24v-2,-8,-3,-13,-3,-17v0,-6,9,-9,26,-9v17,0,27,0,32,2v11,3,17,8,17,15v0,4,-4,12,-12,23v-8,11,-14,22,-17,33v-3,11,-11,43,-21,99v-10,56,-17,88,-20,98v-3,10,-11,15,-22,15v-11,0,-24,-9,-35,-28v-7,-11,-21,-41,-43,-91v-22,-50,-35,-75,-37,-75v-5,0,-10,9,-13,24v-12,55,-17,96,-17,121v0,5,0,10,1,14r1,6v1,5,1,9,1,11v0,11,-14,17,-41,17v-15,0,-23,0,-26,-1v-6,-2,-9,-6,-9,-14xm128,-317r0,-5v0,-10,5,-19,14,-28v9,-9,20,-13,32,-13v6,0,15,3,27,8v12,5,20,8,24,8v4,0,10,-3,16,-8v6,-5,12,-8,17,-8v5,0,7,2,7,6v0,11,-4,22,-13,31v-9,9,-19,14,-28,14r-7,0v-5,0,-14,-3,-25,-8v-11,-5,-19,-8,-24,-8v-5,0,-10,3,-15,8v-5,5,-10,8,-14,8r-3,0v-5,0,-8,-2,-8,-5","w":300},"\u00d2":{"d":"22,-107r0,-5v0,-21,5,-43,13,-65v8,-22,19,-41,34,-58v15,-17,32,-30,52,-40v20,-10,40,-15,61,-15v21,0,37,4,51,9v29,12,49,33,59,64v5,14,7,26,7,40r0,5r0,1v0,24,-5,47,-14,69v-19,45,-46,76,-83,93v-21,10,-42,15,-62,15r-10,0v-31,0,-56,-10,-77,-31v-10,-10,-18,-23,-23,-37v-5,-14,-8,-29,-8,-45xm85,-100v0,21,5,38,14,51v9,13,22,20,37,20r9,0v11,0,21,-3,32,-11v23,-16,39,-42,50,-79v6,-20,9,-37,9,-54r0,-10v0,-23,-4,-40,-14,-52v-10,-12,-24,-19,-42,-19v-11,0,-23,3,-34,10v-11,7,-22,18,-31,33v-9,15,-17,31,-22,50v-5,19,-8,37,-8,55r0,6xm139,-356r0,-3v0,-3,2,-6,7,-9v5,-3,10,-5,13,-5r2,0r5,1v9,0,19,5,27,13v21,21,32,35,32,43r0,2v0,5,-5,7,-14,7v-9,0,-19,-4,-30,-12v-28,-22,-42,-35,-42,-37","w":304},"\u00d3":{"d":"72,-239v13,-15,29,-26,49,-36v20,-10,41,-15,62,-15r9,0v14,0,28,3,41,8v28,11,47,31,58,60v5,15,8,30,8,45r0,5v0,23,-4,46,-13,68v-9,22,-21,42,-36,59v-15,17,-33,29,-52,38v-19,9,-39,13,-58,13r-10,0v-16,0,-31,-4,-45,-10v-42,-18,-63,-54,-63,-107v0,-47,17,-90,50,-128xm85,-101v0,21,4,37,12,50v10,15,24,22,42,22v27,0,48,-12,65,-39v10,-16,18,-33,24,-52v6,-19,8,-37,8,-54r0,-12v0,-21,-4,-38,-14,-50v-10,-12,-23,-18,-38,-18r-4,0v-14,0,-27,4,-38,13v-22,17,-39,45,-50,83v-5,17,-7,36,-7,57xm162,-313v0,-6,14,-22,41,-46v10,-9,19,-13,28,-13r6,-1v5,0,9,2,14,5v5,3,6,6,6,8r0,2v0,5,-14,16,-42,34v-18,12,-33,18,-44,18v-6,0,-9,-2,-9,-7","w":304},"\u00d4":{"d":"22,-107r0,-5v0,-20,4,-42,12,-64v8,-22,20,-42,35,-59v33,-37,71,-55,114,-55r9,0v15,0,30,3,43,9v27,12,46,31,56,59v6,15,8,34,8,55v0,21,-5,43,-14,65v-9,22,-21,41,-36,58v-15,17,-32,29,-52,37v-19,8,-39,13,-57,13r-1,0v-36,0,-64,-9,-83,-28v-22,-21,-34,-50,-34,-85xm85,-100v0,24,6,43,17,56v9,10,23,15,40,15v24,0,44,-12,62,-39v9,-14,17,-31,23,-51v6,-20,9,-38,9,-55r0,-9v0,-33,-9,-56,-29,-66v-7,-3,-14,-5,-21,-5r-6,0v-12,0,-23,4,-34,11v-11,7,-21,18,-30,32v-9,14,-16,30,-22,49v-6,19,-9,36,-9,52r0,10xm126,-312v0,-7,18,-24,53,-51v8,-6,15,-9,23,-9r4,0v8,0,15,4,20,10v20,24,30,40,30,48v0,5,-4,8,-13,8v-9,0,-16,-4,-24,-12v-12,-12,-19,-19,-21,-19v-2,0,-10,6,-24,16v-14,10,-26,15,-35,15v-9,0,-13,-2,-13,-6","w":304},"\u00d5":{"d":"22,-107r0,-5v0,-23,4,-45,13,-67v18,-45,48,-77,87,-96v20,-10,40,-14,61,-14r9,0v15,0,30,2,43,8v28,12,47,34,57,64v5,13,7,30,7,50v0,20,-4,42,-13,64v-18,44,-46,76,-84,94v-20,10,-41,15,-62,15r-10,0v-14,0,-27,-2,-40,-7v-28,-11,-49,-31,-60,-61v-5,-14,-8,-29,-8,-45xm85,-100v0,23,5,41,15,53v10,12,24,18,42,18v12,0,25,-3,36,-11v22,-15,38,-42,49,-79v6,-20,9,-37,9,-54r0,-10v0,-23,-4,-40,-14,-52v-10,-12,-24,-19,-42,-19v-12,0,-23,4,-34,11v-11,7,-22,18,-31,32v-9,14,-15,30,-21,49v-6,19,-9,36,-9,52r0,10xm126,-318r0,-3v0,-11,6,-21,18,-31v8,-6,16,-10,26,-10v9,0,19,2,29,7v12,6,20,9,25,9v5,0,9,-2,15,-8v6,-6,12,-9,17,-9v5,0,8,3,8,7v0,12,-4,22,-14,31v-10,9,-20,13,-32,13v-5,0,-15,-3,-28,-8v-13,-5,-22,-8,-25,-8v-3,0,-8,2,-15,8v-7,6,-12,9,-17,9v-5,0,-7,-3,-7,-7","w":304},"\u00d6":{"d":"21,-107r0,-5v0,-23,4,-45,13,-67v18,-44,47,-77,86,-96v20,-10,40,-14,61,-14r5,0v34,0,61,10,81,31v10,10,18,23,23,37v5,14,8,30,8,45r0,5v0,23,-5,44,-13,66v-8,22,-20,41,-35,59v-15,18,-34,31,-54,39v-20,8,-40,13,-59,13v-36,0,-64,-10,-85,-31v-10,-10,-18,-22,-23,-36v-5,-14,-8,-30,-8,-46xm84,-102v0,23,5,41,14,54v9,13,22,20,39,20r6,0v10,0,21,-4,32,-11v11,-7,21,-18,30,-32v9,-14,16,-30,22,-49v6,-19,8,-36,8,-53r0,-13v0,-21,-5,-38,-15,-50v-10,-12,-21,-18,-35,-18r-6,0v-11,0,-23,4,-34,11v-11,7,-21,17,-30,31v-9,14,-16,30,-22,48v-6,18,-9,39,-9,62xm127,-330r0,-6v0,-9,3,-16,9,-20v6,-4,13,-7,20,-7v7,0,12,2,17,6v5,4,7,9,7,17v0,8,-2,15,-7,21v-5,6,-12,9,-20,9v-8,0,-15,-2,-19,-6v-4,-4,-7,-7,-7,-12r0,-2xm211,-331r0,-5r1,-5v0,-3,2,-8,7,-13v5,-5,9,-8,15,-8r6,-1v8,0,13,2,17,6v4,4,7,7,7,12r1,2r0,6v0,2,-1,4,-1,6v0,2,-2,6,-7,12v-5,6,-10,9,-16,9r-5,0r-1,0r-1,0v-6,0,-11,-2,-16,-6v-5,-4,-7,-9,-7,-15","w":304},"\u00d7":{"d":"32,-42v0,-4,10,-16,32,-37v22,-21,33,-33,33,-35v0,-2,-11,-13,-30,-33v-19,-20,-29,-32,-29,-36v0,-1,3,-6,10,-12v7,-6,12,-9,15,-9v3,0,13,10,32,31v19,21,30,31,32,31v2,0,13,-10,34,-31v21,-21,34,-32,38,-32v2,0,5,3,11,9v6,6,8,10,8,12v0,3,-10,15,-31,36v-21,21,-32,32,-32,35v0,3,10,14,29,35v19,21,29,33,29,36v0,1,-3,5,-9,11v-6,6,-10,9,-12,9v-4,0,-16,-11,-36,-32v-20,-21,-30,-31,-31,-31v-2,0,-15,11,-37,32v-22,21,-33,32,-35,32v-2,0,-6,-3,-12,-9v-6,-6,-9,-10,-9,-12","w":239},"\u00d8":{"d":"22,-105r0,-11v0,-22,5,-44,15,-67v10,-23,22,-42,38,-58v31,-32,70,-49,116,-49v9,0,21,2,36,6v15,4,22,5,23,5v4,0,10,-3,17,-9v7,-6,12,-9,14,-9r4,0v7,0,10,4,10,13v0,2,-2,7,-6,15v-4,8,-7,13,-7,16v0,3,3,12,9,28v6,16,8,34,8,54r0,1v0,20,-4,42,-12,64v-9,23,-21,43,-37,60v-31,34,-69,51,-116,51v-16,0,-32,-2,-48,-7v-6,-2,-11,-3,-15,-3v-4,0,-11,4,-19,11v-8,7,-14,11,-18,11v-7,0,-10,-5,-10,-14v0,-2,2,-8,8,-17v6,-9,9,-15,9,-20v0,-1,-1,-6,-4,-13r-2,-5r-2,-5v-7,-16,-11,-32,-11,-48xm84,-99v0,15,2,22,5,22v1,0,22,-26,65,-77v43,-51,64,-79,64,-83v0,-4,-4,-8,-11,-12v-7,-4,-16,-6,-27,-6v-11,0,-23,3,-34,10v-11,7,-21,17,-30,31v-9,14,-17,31,-23,50v-6,19,-9,36,-9,50r0,15xm104,-48v0,5,4,9,11,13v7,4,16,6,24,6r5,0v13,0,24,-4,35,-12v22,-17,38,-42,48,-73v7,-22,10,-39,10,-52r0,-5r0,-10v0,-16,-2,-25,-4,-25r-1,0v-1,0,-8,10,-24,29v-24,28,-24,28,-28,33v-50,57,-76,89,-76,96","w":304},"\u00d9":{"d":"36,-77v0,-13,4,-40,13,-81v9,-41,13,-63,13,-69v0,-6,-3,-11,-8,-17v-5,-6,-7,-9,-7,-11v0,-9,5,-16,16,-21v11,-5,27,-8,49,-8r15,0v12,0,18,3,18,9v0,1,-3,6,-9,16v-6,10,-10,21,-13,33v-18,70,-27,119,-27,148v0,14,3,25,11,33v8,8,18,12,32,12v28,0,49,-16,63,-47v6,-14,14,-41,22,-81v8,-40,13,-68,13,-85v0,-5,-1,-10,-2,-16r-2,-5v-1,-5,-2,-7,-2,-8v0,-5,6,-7,16,-7v18,0,30,0,37,2v14,4,21,11,21,20v0,5,-3,12,-9,18v-6,6,-10,11,-12,16v-2,5,-9,32,-21,84v-12,52,-23,84,-33,98v-13,18,-29,31,-50,39v-14,6,-31,9,-50,9v-34,0,-60,-8,-76,-26v-12,-13,-18,-31,-18,-55xm132,-357r0,-4v0,-2,2,-5,6,-8v4,-3,8,-5,12,-5r0,0r7,0v9,0,19,5,29,14v4,3,13,14,27,32v4,5,5,10,5,15v0,4,-3,6,-11,6r-1,0v-9,0,-19,-4,-30,-12v-29,-21,-44,-33,-44,-38","w":291},"\u00da":{"d":"36,-78v0,-12,4,-39,13,-80v9,-41,13,-65,13,-70v0,-5,-3,-10,-8,-16v-5,-6,-7,-9,-7,-11v0,-10,7,-18,21,-24v9,-4,26,-5,51,-5v17,0,26,3,26,9v0,1,-3,6,-9,16v-6,10,-10,21,-13,33v-18,71,-27,120,-27,148v0,14,3,25,11,33v8,8,18,12,32,12v28,0,49,-16,63,-47v6,-15,14,-41,22,-81v8,-40,13,-68,13,-85v0,-5,-1,-10,-2,-16r-2,-5v-1,-4,-2,-7,-2,-8v0,-5,6,-8,16,-8v20,0,34,2,42,5v11,5,16,11,16,17v0,6,-3,12,-9,18v-6,6,-10,13,-12,18v-2,5,-8,32,-20,81v-12,49,-22,80,-31,95v-9,15,-22,28,-40,38v-18,10,-38,15,-61,15r-9,0v-27,0,-48,-8,-64,-22v-9,-8,-15,-16,-18,-26v-3,-10,-5,-22,-5,-34xm161,-313r0,-2v0,-6,14,-22,42,-47v9,-8,20,-12,31,-12r5,0v4,0,8,1,12,4v4,3,6,6,6,10v0,5,-5,12,-15,18v-37,24,-61,35,-70,35v-8,0,-11,-2,-11,-6","w":291},"\u00db":{"d":"36,-77v0,-13,4,-40,13,-81v9,-41,13,-63,13,-69v0,-6,-3,-11,-8,-17v-5,-6,-7,-9,-7,-11v0,-9,5,-16,16,-21v11,-5,27,-8,49,-8r15,0v12,0,18,3,18,9v0,1,-3,6,-9,16v-6,10,-10,21,-13,33v-18,70,-27,119,-27,148v0,14,3,25,11,33v8,8,18,12,32,12v28,0,49,-16,63,-47v6,-14,14,-40,22,-80v8,-40,13,-69,13,-86v0,-5,-1,-10,-2,-16r-2,-5v-1,-5,-2,-7,-2,-8v0,-5,6,-8,16,-8v21,0,35,2,42,5v11,5,16,11,16,17v0,6,-3,12,-9,18v-6,6,-10,13,-12,18v-2,5,-9,32,-21,81v-12,49,-21,81,-30,96v-9,15,-22,27,-40,37v-18,10,-38,15,-61,15r-9,0v-27,0,-48,-8,-64,-22v-15,-13,-23,-32,-23,-59xm124,-313v0,-5,18,-22,51,-50v9,-7,17,-11,25,-11r3,0v9,0,17,3,23,11v19,24,28,41,28,48v0,6,-5,8,-16,8v-6,0,-14,-5,-24,-14r-7,-8v-6,-6,-10,-9,-11,-9v-1,0,-9,6,-23,16v-14,10,-25,15,-32,15r-5,0v-8,0,-12,-2,-12,-6","w":291},"\u00dc":{"d":"35,-77v0,-12,4,-40,13,-81v9,-41,13,-64,13,-69v0,-5,-3,-11,-8,-17v-5,-6,-7,-9,-7,-11v0,-5,1,-9,3,-12v8,-12,29,-17,65,-17v20,0,30,3,30,9v0,1,-3,6,-9,16v-6,10,-10,21,-13,33v-18,71,-27,121,-27,149v0,14,3,24,11,32v8,8,18,12,32,12v28,0,49,-15,63,-46v6,-14,14,-41,22,-81v8,-40,13,-69,13,-86v0,-5,-1,-10,-2,-16r-2,-4v-1,-4,-2,-7,-2,-8v0,-5,6,-8,16,-8v20,0,34,2,42,5v11,5,16,10,16,16v0,6,-3,13,-9,19v-6,6,-10,12,-12,17v-2,5,-10,32,-21,81v-11,49,-21,81,-30,96v-9,15,-22,27,-40,37v-18,10,-38,15,-61,15r-9,0v-27,0,-48,-7,-64,-21v-9,-8,-16,-17,-19,-27v-3,-10,-4,-21,-4,-33xm124,-331r0,-6v0,-6,2,-12,7,-18v5,-6,11,-8,17,-8r5,-1r1,0r1,0v7,0,13,2,17,6v4,4,6,9,6,15r0,6v0,8,-2,14,-8,19v-6,5,-14,8,-23,8r0,0r-2,0v-2,0,-4,-1,-6,-1v-2,0,-5,-2,-9,-6v-4,-4,-6,-8,-6,-14xm209,-331r0,-6r0,-3v0,-4,2,-9,7,-15v5,-6,10,-8,16,-8r5,-1r2,0r0,0v6,0,13,2,17,6v4,4,6,8,6,13r1,5r0,1r0,1v0,7,-3,13,-8,19v-5,6,-11,9,-19,9r-5,0v-2,0,-4,-1,-6,-1v-2,0,-6,-1,-10,-5v-4,-4,-6,-9,-6,-15","w":291},"\u00dd":{"d":"37,-270v0,-10,21,-15,62,-15r6,0v17,0,25,5,25,15r-3,6v0,0,-3,8,-3,12v0,13,7,40,19,80v2,6,4,9,7,9v2,0,8,-9,20,-27v27,-40,41,-64,41,-72r0,-10v0,-8,7,-12,22,-12v21,0,35,2,43,6v3,2,5,3,5,4v0,6,-7,15,-22,27v-9,7,-19,20,-32,38v-29,40,-48,67,-55,80v-7,13,-13,26,-17,42v-4,16,-6,29,-6,36v0,7,2,14,7,20v5,6,8,11,8,12v0,11,-11,17,-32,17r-19,-1r-20,0v-23,0,-34,-3,-34,-9v0,-6,4,-12,11,-18v7,-6,13,-13,15,-18v8,-21,12,-41,12,-62v0,-11,-3,-28,-9,-51v-11,-45,-23,-73,-34,-84v-11,-11,-17,-19,-17,-25xm145,-314v0,-7,14,-22,41,-46v10,-9,20,-14,29,-14r6,0v5,0,10,1,14,4v4,3,6,7,6,10r0,1v0,5,-7,12,-21,21v-33,21,-54,31,-63,31r-4,0v-5,0,-8,-2,-8,-7","w":253},"\u00de":{"d":"6,-10v0,-6,4,-15,13,-26v12,-14,25,-65,39,-152v5,-33,8,-51,8,-55v0,-4,-2,-8,-6,-12v-4,-4,-7,-9,-7,-13v0,-8,4,-12,12,-14v6,-2,19,-3,40,-3r17,0v12,0,21,3,27,8v2,2,2,4,2,7v0,3,-1,7,-4,11v-3,4,-4,8,-4,10v0,6,2,10,7,13v2,1,7,2,14,3v38,5,62,19,73,42v4,9,7,19,7,32v0,13,-3,26,-9,38v-18,36,-56,55,-113,57v-7,0,-12,1,-14,2v-8,5,-13,11,-13,21v0,3,2,7,6,11v4,4,6,9,6,13v0,4,-3,9,-10,12v-7,3,-15,5,-25,5r-6,0r-10,0v-33,0,-50,-3,-50,-10xm100,-101v0,4,5,5,13,5r10,0v16,0,30,-5,42,-16v12,-11,19,-26,19,-44r0,-8v0,-11,-4,-21,-12,-28v-8,-7,-19,-10,-34,-10v-10,0,-16,4,-19,12v-2,5,-6,20,-11,47v-5,27,-8,41,-8,42","w":246},"\u00df":{"d":"-22,42v0,-8,6,-16,17,-25v8,-6,15,-16,20,-30v5,-14,9,-37,14,-68v5,-31,6,-49,6,-53v0,-23,7,-48,18,-76v3,-8,12,-20,25,-38v24,-33,52,-49,83,-49r9,0v19,0,34,6,46,17v12,11,17,23,17,38v0,9,-1,18,-5,25v-4,7,-12,16,-23,27v-11,11,-17,21,-17,30v0,3,4,11,13,21v9,10,16,19,20,28v4,9,6,18,6,29v0,23,-9,43,-26,59v-9,8,-18,13,-28,17v-10,4,-20,6,-30,6v-10,0,-17,-2,-23,-4v-9,-3,-13,-8,-13,-13v0,-10,3,-14,10,-14r4,0r4,0v12,0,22,-5,30,-15v8,-10,11,-23,11,-38v0,-7,-3,-18,-11,-34v-8,-16,-12,-25,-12,-28v0,-12,5,-28,15,-48v10,-20,14,-34,14,-40v0,-6,-2,-11,-6,-15v-4,-4,-8,-6,-14,-6v-6,0,-13,4,-21,13v-8,9,-14,21,-19,36v-5,15,-13,51,-25,109v-12,58,-21,96,-30,113v-9,17,-17,29,-25,34v-8,5,-16,8,-24,8v-20,0,-30,-6,-30,-16","w":242},"\u00e0":{"d":"10,-58r0,-8v0,-14,4,-30,11,-47v7,-17,15,-32,26,-44v11,-12,23,-22,36,-29v13,-7,25,-10,37,-10v10,0,19,3,28,7v4,2,6,2,7,2v1,0,7,-1,16,-4v8,-2,15,-3,20,-3v6,0,11,1,14,4v4,3,6,9,6,16v0,7,-4,23,-11,48v-7,25,-11,46,-11,61v0,5,3,10,8,16v5,6,8,12,8,19v0,7,-4,13,-13,19v-9,6,-21,10,-36,10v-8,0,-13,-2,-16,-6v-3,-4,-6,-9,-8,-15v-2,-6,-4,-9,-6,-9v-2,0,-8,3,-15,8v-7,5,-15,10,-23,14v-8,4,-19,6,-32,6v-13,0,-23,-6,-32,-16v-9,-10,-14,-23,-14,-39xm66,-64v0,9,2,16,6,20v4,4,7,7,11,7v8,0,14,-2,19,-6v10,-7,19,-15,25,-25v6,-10,11,-22,16,-37v5,-15,7,-27,7,-36r0,-8v0,-4,-1,-8,-5,-11v-4,-3,-9,-4,-16,-4r-5,0v-5,0,-11,2,-18,7v-7,5,-13,12,-19,21v-14,23,-21,44,-21,64r0,8xm92,-281v0,-3,1,-5,4,-7v6,-4,14,-6,24,-6v10,0,17,4,24,13v18,24,28,40,28,49r0,3v0,5,-4,7,-11,7r-3,0v-6,0,-15,-5,-26,-14v-27,-24,-40,-38,-40,-45","w":227},"\u00e1":{"d":"10,-58r0,-8v0,-14,4,-30,11,-47v7,-17,15,-32,26,-44v11,-12,22,-21,35,-28v13,-7,26,-10,40,-10v6,0,13,1,21,4v8,3,14,4,15,4v1,0,2,0,4,-1v12,-5,21,-7,29,-7v6,0,11,2,14,5v4,3,6,8,6,15v0,7,-4,23,-11,49v-7,26,-11,46,-11,61v0,6,3,11,8,16v5,5,8,11,8,18v0,7,-5,15,-14,21v-9,6,-21,9,-35,9v-8,0,-13,-2,-16,-6v-3,-4,-6,-9,-8,-15v-2,-6,-4,-9,-6,-9v-2,0,-7,2,-15,8v-16,13,-35,19,-54,19v-14,0,-25,-4,-34,-15v-9,-11,-13,-24,-13,-39xm66,-64v0,8,2,14,5,19v3,5,8,8,13,8r3,0v4,0,10,-3,18,-8v8,-5,16,-13,23,-25v14,-24,22,-48,22,-71r0,-8v0,-4,-1,-8,-5,-11v-4,-3,-9,-5,-15,-5v-1,0,-3,1,-4,1v-14,0,-26,8,-36,24v-15,24,-24,47,-24,68r0,8xm118,-227r0,-3v0,-2,4,-9,12,-21v20,-29,39,-43,57,-43v7,0,13,1,17,4v4,3,6,5,6,6r0,3v0,7,-19,23,-55,48v-11,8,-19,11,-25,11r-2,0v-7,0,-10,-2,-10,-5","w":227},"\u00e2":{"d":"11,-58r0,-8v0,-14,3,-30,10,-46v14,-35,34,-60,62,-74v12,-6,25,-10,37,-10v7,0,14,2,21,4v10,3,15,5,16,5r14,-4v8,-2,14,-3,20,-3v8,0,13,2,17,6v3,3,3,7,3,14v0,7,-3,23,-10,48v-7,25,-11,46,-11,61v0,5,2,10,7,16v5,6,8,12,8,19v0,7,-4,13,-13,19v-9,6,-21,10,-36,10v-8,0,-13,-2,-16,-6v-3,-4,-6,-9,-8,-15v-2,-6,-4,-9,-6,-9v-2,0,-8,3,-15,8v-7,5,-15,10,-23,14v-8,4,-18,6,-31,6v-13,0,-24,-6,-33,-16v-9,-10,-13,-23,-13,-39xm67,-64v0,9,1,16,5,20v4,4,7,7,11,7v8,0,14,-2,19,-6v10,-7,19,-15,25,-25v6,-10,11,-22,16,-37v5,-15,7,-27,7,-36r0,-6v0,-5,-1,-10,-5,-13v-4,-3,-9,-4,-16,-4r-4,0v-5,0,-12,2,-19,7v-7,5,-13,12,-19,21v-14,23,-20,44,-20,64r0,8xm82,-227v0,-3,1,-6,4,-10v18,-21,34,-37,47,-48v7,-6,15,-9,24,-9v9,0,15,3,20,9v5,6,11,16,18,30v7,14,10,23,10,26v0,5,-5,7,-16,7v-6,0,-13,-5,-23,-17v-10,-12,-15,-18,-16,-18v-1,0,-10,8,-27,22v-11,9,-20,13,-29,13v-9,0,-12,-1,-12,-5","w":227},"\u00e3":{"d":"11,-61v0,-18,3,-35,10,-52v7,-17,16,-33,27,-45v22,-25,47,-38,74,-38v6,0,14,2,22,5v8,3,12,4,13,4v1,0,5,-2,13,-4v8,-3,15,-4,21,-4v7,0,13,3,17,7v2,3,4,7,4,12v0,5,-4,22,-11,50v-7,28,-11,48,-11,61v0,6,3,11,8,16v5,5,7,11,7,18v0,7,-5,14,-13,20v-8,6,-20,10,-35,10v-8,0,-14,-2,-17,-6v-3,-4,-6,-9,-8,-15v-2,-6,-4,-9,-6,-9v-2,0,-7,2,-15,8v-16,13,-34,19,-53,19v-13,0,-25,-5,-34,-15v-9,-10,-13,-24,-13,-42xm67,-69v0,11,2,19,5,24v3,5,7,8,11,8r5,0v5,0,11,-3,19,-9v8,-6,16,-14,23,-26v14,-23,20,-45,20,-67r1,-4r0,-5v0,-4,-2,-7,-5,-11v-3,-4,-9,-6,-19,-6r-2,1v-5,0,-12,2,-19,7v-7,5,-13,12,-19,21v-13,22,-20,42,-20,59r0,3r0,5xm80,-234r0,-4v0,-11,5,-20,14,-29v9,-9,21,-13,33,-13v5,0,13,3,25,8v12,5,20,8,24,8v4,0,9,-2,15,-8v6,-6,12,-9,17,-9v5,0,8,2,8,7v0,9,-4,20,-13,30v-9,10,-18,15,-28,15r-5,0v-5,0,-14,-3,-26,-9v-12,-6,-20,-8,-24,-8v-4,0,-9,2,-15,8v-6,6,-12,9,-17,9v-5,0,-8,-2,-8,-5","w":227},"\u00e4":{"d":"9,-58r0,-8v0,-14,3,-30,10,-46v13,-32,32,-55,56,-70v14,-9,30,-13,46,-13v6,0,14,1,22,4v8,3,12,4,12,4v0,0,6,-1,15,-4v8,-2,14,-3,20,-3v8,0,14,2,17,6v2,3,3,8,3,14v0,6,-4,22,-11,48v-7,26,-11,46,-11,61v0,6,3,11,8,16v5,5,8,11,8,18v0,7,-4,15,-13,21v-9,6,-21,9,-36,9v-13,0,-21,-7,-24,-20v-2,-7,-3,-10,-6,-10v-2,0,-8,2,-15,8v-17,13,-35,20,-54,20v-12,0,-24,-5,-33,-15v-9,-10,-14,-23,-14,-40xm65,-64v0,9,3,15,6,20v3,5,7,7,11,7v8,0,15,-2,23,-8v8,-6,15,-14,22,-25v14,-24,22,-48,22,-71r0,-8v0,-5,-2,-8,-6,-11v-4,-3,-8,-4,-14,-4r-6,0v-13,0,-24,8,-34,24v-15,24,-23,46,-23,65r-1,3r0,8xm79,-249r0,-6v0,-6,2,-12,7,-18v5,-6,10,-8,16,-8r2,-1r7,0v1,0,3,1,5,1v2,0,5,1,10,5v5,4,6,10,6,19r0,1r0,4v0,7,-3,13,-9,17v-6,4,-13,7,-20,7v-7,0,-13,-2,-17,-6v-4,-4,-7,-8,-7,-13r0,-2xm161,-251v0,-8,2,-15,6,-21v4,-6,10,-9,16,-9r4,-1r6,0v4,0,9,2,14,6v5,4,7,8,7,15r0,5v0,8,-3,15,-9,20v-6,5,-12,8,-19,8v-7,0,-13,-2,-18,-6v-5,-4,-7,-9,-7,-17","w":227},"\u00e5":{"d":"9,-58r0,-8v0,-14,3,-30,10,-47v7,-17,16,-31,26,-43v10,-12,21,-22,34,-29v13,-7,26,-10,41,-10v6,0,14,1,22,4v8,3,12,5,13,5r14,-5v8,-2,15,-3,20,-3v6,0,11,1,15,4v4,3,6,8,6,16v0,8,-4,24,-11,49v-7,25,-11,45,-11,60v0,6,2,11,7,16v5,5,8,12,8,19v0,7,-4,14,-13,20v-9,6,-20,9,-35,9v-6,0,-12,-1,-16,-4v-4,-3,-6,-8,-8,-15v-2,-7,-5,-11,-7,-11v-2,0,-6,3,-12,7v-18,14,-36,21,-52,21r-1,0v-16,0,-28,-5,-37,-16v-9,-11,-13,-24,-13,-39xm65,-64v0,8,2,15,5,20v3,5,8,7,14,7v6,0,13,-2,21,-8v8,-6,15,-13,20,-22v15,-26,23,-49,23,-70r0,-4r1,-4v0,-6,-2,-12,-6,-15v-4,-3,-9,-4,-14,-4r-6,0v-13,0,-26,10,-39,30v-13,20,-19,42,-19,64r0,6xm101,-258v0,-12,5,-22,15,-31v10,-9,20,-13,33,-13v13,0,23,4,30,11v7,7,11,17,11,29v0,12,-5,22,-14,30v-9,8,-20,13,-31,13r-5,0v-10,0,-19,-4,-27,-11v-8,-7,-12,-16,-12,-28xm126,-257r0,1r0,1r0,4v0,0,2,5,6,8v4,3,6,4,9,4r6,0v1,0,3,-1,5,-1v2,0,5,-2,9,-7v4,-5,5,-11,5,-18r-1,-4v0,-8,-3,-13,-12,-13r-5,0r-2,0r0,0r-1,0r-3,0v0,0,-4,2,-9,6v-5,4,-7,9,-7,15r0,4","w":227},"\u00e6":{"d":"13,-53r0,-5v0,-12,3,-27,10,-43v7,-16,16,-30,27,-43v23,-26,50,-39,77,-39v3,0,6,1,9,1r13,2r20,-3v0,0,4,1,10,1r13,0v3,0,6,1,8,1r6,1v5,0,12,-2,23,-5v11,-3,19,-5,24,-5r5,0v14,0,25,5,34,13v9,8,13,17,13,26v0,9,-2,18,-6,26v-4,8,-10,15,-17,20v-10,7,-31,15,-62,22v-13,3,-20,4,-21,5v-6,4,-10,10,-10,18v0,8,3,14,8,19v5,5,13,9,23,9v10,0,21,-4,35,-10v14,-6,22,-9,24,-9v5,0,6,2,6,6v0,10,-9,19,-29,30v-20,11,-38,16,-55,16r-6,0v-11,0,-21,-2,-30,-7v-9,-5,-14,-9,-17,-12v-3,-3,-6,-7,-9,-12v-3,-5,-5,-8,-6,-8v-3,0,-10,5,-22,14v-12,9,-21,16,-29,19v-8,3,-18,5,-29,5v-11,0,-20,-5,-28,-15v-8,-10,-12,-23,-12,-38xm66,-60v0,10,2,16,5,20v3,3,7,5,11,5v5,0,11,-2,18,-6v19,-12,34,-36,45,-71v6,-18,8,-30,8,-34v0,-4,-1,-7,-5,-10v-4,-3,-9,-5,-16,-5v-15,0,-28,10,-41,29v-16,24,-25,48,-25,72xm195,-107v0,3,1,5,3,5r1,0r1,-1v12,0,26,-4,42,-14v11,-7,17,-16,17,-26v0,-8,-2,-14,-5,-18v-3,-4,-7,-6,-11,-6r-3,0v-8,0,-17,6,-25,15v-13,15,-19,28,-19,39","w":307},"\u00e7":{"d":"24,-72r0,-8v0,-13,3,-27,9,-42v6,-15,13,-29,23,-41v10,-12,22,-22,36,-29v14,-7,27,-11,39,-11r11,0v9,0,18,3,26,8v8,5,13,11,13,16v0,5,-2,12,-6,19v-2,4,-6,6,-11,6v-1,0,-3,-1,-8,-3v-5,-2,-12,-3,-20,-3v-14,0,-27,8,-37,22v-10,14,-15,29,-15,46v0,33,20,50,59,50v7,0,11,1,12,3v1,2,1,6,1,13v0,7,-3,13,-11,17v-13,7,-26,10,-41,10r-8,0v-21,0,-37,-6,-51,-20v-7,-7,-12,-15,-16,-25v-4,-10,-5,-19,-5,-28xm41,73v0,-2,3,-4,7,-6v12,-7,18,-16,18,-27r0,0r-1,-5v0,-2,-1,-3,-1,-5v0,-2,3,-5,8,-11v5,-6,9,-9,12,-9r0,0v5,0,10,2,14,6v4,4,6,7,10,9v4,2,6,4,6,7v0,13,-6,24,-16,33v-17,15,-31,22,-45,22v-8,0,-12,-3,-12,-11r0,-3","w":172},"\u00e8":{"d":"14,-71v0,-15,3,-31,9,-47v6,-16,16,-31,28,-43v24,-25,52,-37,83,-37v18,0,32,4,43,13v11,9,16,20,16,34v0,21,-7,36,-20,45v-13,9,-36,16,-70,20v-13,2,-21,3,-24,4v-6,3,-10,9,-10,19v0,10,4,16,10,21v6,5,14,8,23,8v9,0,21,-4,38,-10v17,-6,26,-10,28,-10v4,0,6,3,6,9v0,10,-9,20,-29,31v-20,11,-39,16,-58,16r-4,0v-21,0,-38,-6,-50,-19v-12,-13,-19,-31,-19,-54xm77,-115v0,3,1,5,4,5r2,0r1,0r7,-1r4,0v11,0,23,-4,36,-12v8,-5,12,-12,12,-20r0,-6r0,-5v0,0,-2,-5,-5,-9v-3,-4,-7,-6,-12,-6r-5,0v-9,0,-18,6,-28,18v-10,12,-16,22,-16,32r0,4xm80,-279v0,-4,3,-8,7,-11v4,-3,11,-4,20,-4v9,0,16,3,21,8v5,5,11,15,19,29v8,14,13,22,13,24r0,5v0,5,-4,6,-11,6r-3,0v-5,0,-14,-4,-25,-13v-27,-21,-41,-36,-41,-44","w":197},"\u00e9":{"d":"15,-71v0,-32,11,-61,34,-88v11,-12,24,-22,39,-29v15,-7,29,-10,42,-10r9,0v17,0,30,4,40,14v10,10,15,21,15,33v0,12,-3,22,-7,30v-4,8,-9,14,-17,18v-14,8,-36,13,-66,17v-13,2,-21,3,-24,4v-6,3,-10,10,-10,19v0,9,4,16,10,21v6,5,14,8,23,8v10,0,21,-3,34,-8v18,-8,29,-12,32,-12v4,0,6,3,6,9v0,10,-9,20,-29,31v-20,11,-39,16,-58,16r-4,0v-21,0,-39,-6,-51,-19v-12,-13,-18,-31,-18,-54xm78,-115v0,3,1,5,4,5r3,0r2,-1r4,0r3,0v14,0,26,-5,38,-13v8,-5,12,-11,12,-19r0,-6r0,-6v0,0,-2,-5,-6,-9v-4,-4,-9,-5,-16,-5v-7,0,-17,5,-28,16v-11,11,-16,22,-16,33r0,5xm105,-227v0,-4,3,-9,8,-16v18,-22,28,-35,33,-39v10,-8,18,-11,25,-11r2,-1r5,0v5,0,9,1,13,4v4,3,6,5,6,8v0,7,-6,15,-19,23r-60,38v-9,0,-13,-2,-13,-6","w":197},"\u00ea":{"d":"15,-67r0,-8v0,-15,3,-31,11,-48v15,-33,37,-55,67,-67v13,-5,28,-8,44,-8v16,0,29,4,40,13v11,9,16,20,16,34v0,21,-6,36,-19,45v-12,9,-35,15,-70,20v-13,2,-22,3,-25,4v-6,3,-9,9,-9,19v0,10,3,16,10,21v6,5,14,8,23,8v10,0,21,-3,34,-8v18,-8,28,-12,31,-12v4,0,7,3,7,8v0,5,-3,10,-8,16v-5,6,-15,13,-30,21v-15,8,-31,11,-49,11r-5,0v-21,0,-38,-6,-50,-19v-12,-13,-18,-30,-18,-50xm70,-228v0,-2,1,-5,5,-9v18,-21,33,-37,47,-48v7,-6,14,-9,23,-9v9,0,15,3,20,9v2,3,8,12,16,28v8,16,13,24,13,27v0,5,-6,9,-17,9v-6,0,-14,-6,-23,-18v-9,-12,-14,-17,-16,-17v-2,0,-5,2,-10,7v-20,18,-34,27,-44,27v-10,0,-14,-2,-14,-6xm78,-115v0,3,1,5,4,5r9,-1r3,0v14,0,27,-4,39,-13v7,-5,11,-12,11,-21v0,-16,-8,-24,-22,-24v-8,0,-16,5,-25,14v-13,13,-19,25,-19,37r0,3","w":197},"\u00eb":{"d":"14,-67r0,-8v0,-14,4,-29,11,-45v7,-16,15,-30,26,-41v24,-25,52,-37,83,-37v18,0,32,4,43,13v11,9,16,20,16,34v0,21,-6,36,-19,45v-13,9,-37,16,-71,20v-13,2,-21,3,-24,4v-6,3,-9,9,-9,19v0,9,3,16,9,21v6,5,14,8,23,8v10,0,21,-3,34,-8v18,-8,29,-12,32,-12v4,0,6,3,6,9v0,10,-9,20,-29,31v-20,11,-39,16,-58,16r-4,0v-21,0,-38,-6,-50,-19v-12,-13,-19,-30,-19,-50xm69,-249r0,-6v0,-1,1,-2,1,-2v0,-6,2,-12,8,-17v6,-5,12,-7,19,-7v7,0,14,1,18,5v4,4,7,7,7,12r0,5r0,2r0,1r0,5v0,4,-2,9,-7,14v-5,5,-10,8,-15,8r-5,1r-4,0v-2,0,-4,-1,-6,-1v-2,0,-5,-2,-9,-6v-4,-4,-7,-8,-7,-14xm77,-116v0,4,1,6,4,6r2,0r2,0r6,-1r4,0v13,0,25,-4,37,-13v7,-5,11,-13,11,-23v0,-15,-7,-22,-21,-22v-8,0,-17,5,-26,14v-13,13,-19,25,-19,39xm150,-250r0,-4v0,-6,2,-12,7,-18v5,-6,10,-9,16,-9r6,0r1,0v6,0,12,1,16,5v4,4,7,8,7,13r0,4r0,5r0,2v0,6,-3,11,-9,16v-6,5,-11,8,-17,8r-5,0v-6,0,-11,-2,-15,-6v-4,-4,-6,-8,-6,-12","w":198},"\u00ec":{"d":"20,-24r6,-32v0,0,9,-39,12,-53v3,-14,5,-24,5,-30v0,-6,-2,-10,-7,-15v-5,-5,-8,-9,-8,-14v0,-9,6,-15,17,-20v11,-5,25,-7,42,-7r2,0v11,0,16,5,16,15v0,5,-4,26,-12,60v-8,34,-12,54,-12,62v0,8,4,12,11,14v7,2,10,6,10,14v0,8,-5,14,-15,19v-15,8,-30,11,-45,11r-6,0v-4,0,-8,-1,-11,-5v-3,-4,-5,-10,-5,-19xm35,-282v0,-3,1,-4,4,-6v6,-4,14,-6,23,-6v9,0,15,3,22,10v3,3,9,11,18,26v9,15,13,24,13,28v0,5,-4,8,-11,8r-3,0v-7,0,-15,-4,-25,-13v-27,-24,-41,-40,-41,-47","w":123},"\u00ed":{"d":"21,-18r0,-8v0,-4,3,-23,11,-55v8,-32,11,-52,11,-58v0,-6,-2,-11,-7,-15v-5,-4,-7,-7,-7,-11v0,-10,4,-18,15,-23v11,-5,23,-7,38,-7r8,0v11,0,16,5,16,15r0,6v0,2,-4,20,-12,54v-8,34,-12,55,-12,62v0,7,3,12,10,14v7,2,11,6,11,14v0,8,-5,14,-15,19v-15,8,-31,11,-48,11v-6,0,-11,-1,-14,-5v-3,-4,-5,-8,-5,-13xm60,-227r0,-3v0,-2,2,-5,6,-11v13,-18,24,-32,34,-40v10,-8,20,-13,30,-13v7,0,12,1,16,4v4,3,6,5,6,7r0,2v0,5,-8,14,-25,26v-30,22,-49,34,-54,34v-9,0,-13,-3,-13,-6","w":123},"\u00ee":{"d":"21,-21r0,-5v0,-5,2,-15,5,-28v3,-13,8,-31,12,-53v4,-22,6,-33,6,-36v0,-3,-2,-6,-7,-11v-5,-5,-8,-8,-8,-11v0,-10,5,-17,15,-22v10,-5,25,-8,44,-8r2,0v11,0,16,5,16,15v0,6,-4,26,-12,60v-8,34,-12,56,-12,65v0,6,4,9,11,11v7,2,10,6,10,14v0,8,-5,14,-15,19v-15,8,-30,11,-45,11r-6,0v-4,0,-8,-1,-11,-5v-3,-4,-5,-9,-5,-16xm25,-227r0,-1v0,-6,16,-25,49,-55v7,-7,15,-10,22,-10r5,0v9,0,15,4,20,11v18,27,27,45,27,53v0,5,-6,8,-18,8v-5,0,-12,-7,-21,-18v-9,-11,-15,-17,-17,-17v-1,0,-7,6,-21,17v-14,11,-24,18,-33,18v-9,0,-13,-2,-13,-6","w":123},"\u00ef":{"d":"21,-24r11,-56r1,-6r4,-15v5,-20,7,-33,7,-38v0,-5,-3,-10,-8,-15v-5,-5,-7,-9,-7,-14v0,-9,6,-15,17,-20v11,-5,25,-8,42,-8r2,0v11,0,16,6,16,16v0,6,-4,26,-12,60v-8,34,-12,55,-12,62v0,7,4,11,11,13v7,2,10,6,10,14v0,8,-5,15,-15,20v-15,7,-30,11,-45,11r-6,0v-4,0,-8,-2,-11,-6v-3,-4,-5,-10,-5,-18xm26,-249r0,-6v0,-6,2,-11,7,-17v5,-6,10,-9,18,-9r7,0v6,0,10,2,14,6v4,4,6,7,6,11r1,4v0,9,-3,16,-8,22v-5,6,-10,9,-15,9r-4,0r-4,0v-6,0,-11,-2,-16,-6v-5,-4,-6,-8,-6,-14xm106,-250r0,-5v0,-6,2,-11,7,-17v5,-6,10,-9,15,-9r4,0r6,0v5,0,10,1,14,5v5,4,7,8,7,13r0,8v0,1,-1,2,-1,3v0,4,-1,9,-6,14v-5,5,-10,8,-15,8v-2,1,-3,1,-4,1r-5,0v-6,0,-11,-1,-15,-5v-4,-4,-6,-8,-6,-12","w":123},"\u00f0":{"d":"15,-77v0,-14,3,-28,9,-42v12,-30,31,-50,58,-63v12,-6,24,-9,35,-9v11,0,18,-1,22,-3v4,-2,6,-7,6,-13v0,-6,-3,-11,-7,-14v-4,-3,-10,-5,-16,-5r-22,2v-9,0,-14,-3,-14,-9v0,-2,4,-6,12,-12v8,-6,12,-11,12,-14v0,-3,-2,-9,-7,-17v-5,-8,-7,-12,-7,-13v0,-4,2,-7,5,-10v3,-3,6,-4,9,-4v8,0,18,4,30,11v12,7,21,11,25,11v4,0,10,-1,16,-2r4,-1v6,-1,9,-2,10,-2v9,0,14,3,14,10r-11,12v0,0,-11,16,-11,23v0,2,2,7,6,17v4,10,9,21,12,33v3,12,5,26,5,43r0,6v0,45,-11,81,-32,107v-10,12,-21,20,-35,27v-14,7,-28,10,-44,10r-5,0v-37,0,-62,-14,-73,-43v-4,-10,-6,-22,-6,-36xm71,-63v0,11,2,20,7,26v5,6,11,10,18,10r3,0v13,0,25,-11,37,-30v12,-19,17,-41,17,-65r0,-8v0,-11,-2,-19,-7,-25v-5,-6,-10,-8,-18,-8r-5,0v-4,0,-9,2,-16,6v-7,4,-13,11,-19,22v-11,20,-17,40,-17,60r0,12","w":219},"\u00f1":{"d":"16,-25v0,-7,4,-23,11,-47v7,-24,11,-40,11,-48v0,-8,-1,-15,-4,-19v-3,-4,-5,-7,-5,-11v0,-10,5,-20,13,-29v8,-9,16,-13,26,-13v10,0,16,2,21,7v5,5,7,12,8,19v1,7,1,11,2,11v2,0,6,-4,14,-11v21,-18,41,-27,60,-27r5,0v10,0,19,3,25,11v6,8,9,17,9,27r0,5v0,4,-2,19,-8,46v-6,27,-8,46,-8,58v0,6,1,10,5,13v4,3,6,4,6,5v0,5,-4,10,-13,14v-13,6,-23,9,-31,9v-8,0,-14,-3,-19,-8v-5,-5,-7,-13,-7,-22v0,-9,3,-26,8,-50v5,-24,8,-40,8,-47v0,-15,-4,-23,-12,-23v-12,0,-24,10,-36,29v-11,18,-22,43,-29,77v-3,14,-4,23,-6,27v-6,13,-15,19,-26,19r-5,0v-7,0,-13,-2,-17,-6v-4,-4,-6,-9,-6,-16xm79,-236v0,-13,5,-24,15,-32v10,-8,19,-12,27,-12v8,0,18,3,30,8v12,5,21,8,25,8v4,0,8,-2,14,-8v6,-6,10,-9,13,-9v8,0,12,3,12,6r0,3v0,10,-6,21,-17,32v-7,7,-16,11,-26,11v-8,0,-17,-3,-27,-8v-13,-6,-22,-9,-26,-9v-4,0,-9,3,-15,9v-6,6,-12,8,-17,8v-5,0,-8,-2,-8,-7","w":234},"\u00f2":{"d":"14,-68r0,-10v0,-13,3,-28,9,-43v12,-31,33,-53,62,-67v14,-7,28,-11,43,-11r6,0v10,0,20,2,30,6v10,4,17,10,23,16v13,14,20,31,20,53r0,7v0,14,-4,29,-10,44v-6,15,-15,29,-26,41v-11,12,-23,20,-37,26v-14,6,-27,9,-39,9r-10,0v-9,0,-18,-2,-28,-6v-10,-4,-17,-9,-23,-15v-13,-14,-20,-31,-20,-50xm69,-64v0,10,2,18,7,25v5,7,11,10,18,10r4,0v13,0,24,-9,36,-28v12,-19,18,-42,18,-67r0,-6v0,-12,-3,-21,-7,-27v-4,-6,-11,-10,-18,-10r-3,0v-13,0,-25,9,-36,27v-13,21,-19,43,-19,65r0,11xm86,-279r0,-3v0,-2,2,-4,5,-6v7,-4,14,-6,22,-6v8,0,16,4,23,12v3,3,9,12,17,26v8,14,12,22,12,24r0,4v0,5,-3,7,-10,7r-3,0v-6,0,-15,-5,-25,-14v-27,-24,-41,-38,-41,-44","w":215},"\u00f3":{"d":"14,-68r0,-10v0,-13,4,-28,10,-44v6,-16,15,-31,26,-42v23,-23,49,-35,77,-35r7,0v11,0,22,3,31,7v27,12,42,35,42,68r0,0r0,6v0,15,-4,31,-10,46v-6,15,-15,29,-26,41v-11,12,-24,19,-38,25v-14,6,-29,9,-45,9v-21,0,-39,-6,-52,-19v-7,-7,-12,-15,-16,-25v-4,-10,-6,-18,-6,-27xm69,-66v0,11,2,20,7,27v5,7,11,10,18,10r4,0v13,0,25,-9,36,-28v11,-19,17,-40,17,-62r1,-3r0,-10v0,-2,-1,-4,-1,-5v0,-9,-2,-17,-7,-22v-5,-5,-10,-8,-17,-8r-3,0v-14,0,-27,10,-38,30v-11,20,-17,41,-17,62r0,9xm115,-242v12,-18,23,-30,33,-39v10,-9,20,-13,32,-13v5,0,10,1,14,4v4,3,6,5,6,6r0,3v0,7,-7,15,-23,25v-36,23,-55,35,-56,35r-3,0v-6,0,-10,-2,-10,-6v0,-3,2,-9,7,-15","w":215},"\u00f4":{"d":"14,-75v0,-16,3,-32,10,-48v12,-30,33,-51,61,-65v14,-7,28,-11,43,-11r10,0v9,0,18,3,28,7v10,4,17,10,23,17v11,13,17,29,17,48r0,13v0,15,-3,30,-10,45v-15,32,-36,53,-64,64v-14,5,-27,8,-41,8v-25,0,-44,-7,-57,-21v-13,-14,-20,-33,-20,-57xm69,-66v0,12,2,21,7,28v5,7,12,9,21,9v13,0,24,-7,34,-23v14,-23,20,-46,20,-70r0,-10v0,-11,-2,-20,-7,-26v-5,-6,-10,-9,-17,-9r-5,0v-12,0,-24,10,-35,29v-11,19,-17,39,-17,59r-1,4r0,9xm74,-227v0,-7,16,-25,48,-55v8,-8,16,-11,24,-11r4,0v8,0,15,3,20,9v2,3,7,12,15,27v8,15,12,25,12,28v0,5,-5,8,-17,8v-5,0,-12,-7,-22,-18v-10,-11,-15,-17,-16,-17v-1,0,-8,6,-22,17v-14,11,-24,18,-33,18v-9,0,-13,-2,-13,-6","w":215},"\u00f5":{"d":"14,-68r0,-10v0,-16,4,-32,11,-48v14,-30,34,-51,60,-62v15,-7,30,-11,43,-11r6,0v10,0,20,2,30,6v10,4,17,9,23,15v13,14,20,32,20,54r0,6v0,14,-4,30,-10,45v-6,15,-14,29,-25,40v-11,11,-22,20,-36,26v-14,6,-27,9,-41,9r-10,0v-9,0,-18,-1,-28,-5v-10,-4,-18,-10,-25,-18v-12,-13,-18,-28,-18,-47xm69,-64v0,10,2,18,7,25v5,7,11,10,18,10r5,0v5,0,10,-2,16,-6v6,-4,13,-11,18,-21v12,-22,19,-44,19,-68r0,-6v0,-11,-3,-20,-7,-27v-4,-7,-10,-10,-18,-10r-3,0v-13,0,-25,8,-36,26v-13,21,-19,44,-19,66r0,11xm73,-234r0,-3v0,-11,4,-21,14,-30v10,-9,18,-13,27,-13v9,0,18,3,30,9v12,6,21,8,25,8v4,0,9,-3,15,-9v6,-6,10,-8,14,-8v7,0,10,2,10,7v0,9,-3,19,-12,29v-9,10,-19,15,-32,15v-7,0,-16,-2,-28,-8v-12,-6,-20,-8,-24,-8v-4,0,-9,2,-15,8v-6,6,-12,9,-17,9v-5,0,-7,-2,-7,-6","w":215},"\u00f6":{"d":"14,-68r0,-10v0,-13,3,-27,9,-43v6,-16,14,-30,25,-41v23,-24,50,-36,79,-36r0,0r10,0v9,0,18,2,27,6v27,12,42,35,42,68r0,1r0,6v0,17,-4,34,-11,49v-15,31,-36,52,-64,63v-14,5,-28,8,-44,8v-22,0,-40,-7,-53,-20v-13,-13,-20,-30,-20,-51xm68,-64v0,10,2,19,7,26v5,7,12,10,22,10v13,0,24,-10,36,-29v12,-19,18,-42,18,-67r0,-6v0,-11,-3,-19,-7,-26v-4,-7,-9,-11,-17,-11r-6,0v-12,0,-23,10,-35,29v-12,19,-18,41,-18,63r0,11xm72,-253r0,0r1,-5v0,-4,2,-8,7,-14v5,-6,10,-9,15,-9r5,0r4,0v5,0,10,2,15,6v5,4,7,8,7,14r0,6v0,6,-2,12,-7,18v-5,6,-10,9,-16,9r-5,0v-9,0,-16,-2,-20,-6v-4,-4,-6,-11,-6,-19xm154,-249r0,-5v0,-6,3,-12,8,-18v5,-6,11,-9,18,-9r6,0v7,0,12,2,16,7v4,5,6,10,6,17v0,7,-3,14,-8,20v-5,6,-11,9,-19,9r-4,0r-7,0v0,0,-6,-2,-10,-6v-4,-4,-6,-9,-6,-15","w":215},"\u00f7":{"d":"28,-105r0,-7r0,-3r1,-9r0,-5v0,-5,4,-8,12,-9r91,0r40,0v35,0,53,2,53,5r0,6r0,3v0,12,-2,19,-4,21v-2,2,-14,3,-35,3r-122,0v-24,0,-36,-2,-36,-5xm96,-40r0,-6v0,-6,2,-12,7,-17v5,-5,9,-8,15,-8r4,-1v8,0,15,2,20,6v5,4,7,8,7,14r1,4r0,5v0,5,-3,10,-7,16v-4,6,-11,9,-19,9r-5,0v-6,0,-11,-1,-16,-5v-5,-4,-7,-9,-7,-15r0,-2xm103,-191r0,-4v0,-2,1,-4,1,-5v0,-6,3,-11,8,-15v5,-4,11,-6,18,-6v7,0,14,1,19,5v5,4,8,10,8,18r0,5v0,2,-1,4,-1,5v0,5,-2,9,-7,14v-5,5,-10,7,-17,7r-7,0r-2,0v-5,0,-9,-2,-13,-6v-4,-4,-6,-9,-6,-13","w":238},"\u00f8":{"d":"11,5v0,-2,2,-6,7,-13v5,-7,7,-12,7,-15v0,-3,-1,-6,-3,-11v-5,-14,-8,-27,-8,-41v0,-16,3,-32,10,-49v6,-15,15,-28,26,-39v22,-23,49,-34,82,-34r39,3v3,0,7,-3,13,-8v6,-5,11,-8,14,-8v6,0,9,3,9,10v0,4,-1,9,-5,15v-4,6,-6,11,-6,16r7,22v2,9,3,18,3,27v0,16,-3,31,-9,47v-6,16,-16,30,-27,41v-22,23,-48,35,-79,35v-8,0,-18,-1,-26,-2v-8,-1,-13,-2,-14,-2v-5,0,-9,3,-16,9v-7,6,-11,9,-14,9v-6,0,-10,-3,-10,-9r0,-3xm67,-70v0,5,0,7,1,7r0,0v1,0,4,-2,7,-7v7,-10,15,-19,23,-28v30,-33,45,-53,45,-60v0,-7,-7,-10,-19,-10r-1,0v-13,0,-26,9,-38,28v-12,19,-18,41,-18,65r0,5xm78,-36v0,7,5,10,16,10v17,0,29,-8,39,-25v13,-22,20,-41,20,-58r0,-4r0,-8r0,-5r0,-6v-1,0,-5,4,-11,12r-1,1r-1,1r-1,2r-9,10r-8,10v-30,33,-44,53,-44,60","w":217},"\u00f9":{"d":"23,-44r0,-6v0,-10,3,-28,9,-53v6,-25,9,-42,9,-49v0,-3,-1,-6,-5,-11v-4,-4,-6,-8,-6,-11v0,-2,2,-4,4,-6v12,-8,27,-12,46,-12v12,0,18,11,18,31v0,7,-3,23,-9,49v-6,26,-10,44,-10,53v0,13,6,19,16,19v4,0,9,-2,16,-7v7,-5,15,-13,22,-25v7,-12,13,-26,17,-42v4,-16,7,-29,10,-40v3,-11,4,-19,5,-21v5,-11,13,-16,24,-16v6,0,11,2,15,6v4,4,7,10,7,17r0,5v0,3,-2,15,-7,36v-5,21,-7,37,-7,45v0,8,2,14,6,18v4,4,7,10,7,16v0,13,-5,23,-15,31v-10,8,-21,12,-34,12v-8,0,-14,-3,-18,-8v-2,-2,-3,-7,-4,-13v-1,-6,-3,-9,-6,-9v-1,0,-7,2,-16,8v-9,6,-15,10,-19,12v-12,6,-23,9,-35,9v-12,0,-22,-4,-29,-11v-7,-7,-11,-16,-11,-27xm88,-279v0,-4,2,-8,6,-11v4,-3,9,-4,14,-4r5,0v9,0,18,4,25,12v2,3,8,11,16,25v8,14,13,22,13,24r0,4v0,5,-5,7,-14,7v-5,0,-13,-4,-22,-11v-29,-23,-43,-38,-43,-46"},"\u00fa":{"d":"23,-46v0,-10,3,-30,9,-57v6,-27,9,-44,9,-48v0,-4,-2,-9,-7,-15v-3,-3,-4,-6,-4,-8v0,-2,1,-4,4,-6v12,-8,27,-12,46,-12v7,0,11,3,14,8v3,5,4,13,4,22v0,9,-3,26,-9,50v-6,24,-9,42,-9,54v0,12,5,18,15,18v3,0,9,-3,16,-8v17,-12,30,-35,40,-72v3,-12,7,-24,9,-35v2,-11,4,-17,5,-20v5,-11,13,-16,24,-16v7,0,12,3,16,8v4,5,6,10,6,16v0,6,-2,19,-7,39v-4,19,-6,34,-6,45v0,9,2,16,5,19v5,5,7,9,7,15v0,13,-5,24,-15,32v-10,8,-21,12,-34,12v-12,0,-20,-7,-22,-20v-1,-7,-3,-10,-6,-10v-1,0,-7,3,-16,9v-9,6,-16,9,-19,11v-13,6,-25,9,-37,9v-12,0,-22,-4,-28,-12v-6,-8,-10,-18,-10,-28xm116,-226r0,-3v0,-8,14,-26,40,-52v8,-8,19,-13,30,-13r2,0v6,0,11,2,17,6v2,2,3,3,3,6v0,7,-7,16,-23,26v-36,23,-55,35,-57,35v-8,0,-12,-2,-12,-5"},"\u00fb":{"d":"23,-44r0,-6v0,-10,3,-28,9,-53v6,-25,9,-41,9,-46v0,-5,-1,-9,-5,-14v-4,-5,-6,-8,-6,-9v0,-4,3,-8,8,-10v16,-7,28,-10,37,-10v9,0,15,3,18,7v3,4,5,11,5,20v0,9,-3,27,-9,53v-6,26,-10,43,-10,53v0,12,6,19,16,19v4,0,9,-2,16,-7v17,-12,31,-36,40,-73v3,-12,7,-24,9,-35v2,-11,4,-18,5,-20v5,-11,13,-16,24,-16v5,0,11,2,15,6v4,4,7,10,7,17r0,5v0,3,-2,15,-7,36v-5,21,-7,37,-7,45v0,8,2,15,6,19v4,4,7,9,7,15v0,13,-5,23,-15,31v-10,8,-21,12,-34,12v-12,0,-20,-7,-22,-20v-1,-7,-4,-10,-7,-10v-1,0,-6,3,-16,9v-10,6,-16,10,-18,11v-12,6,-24,9,-35,9v-11,0,-21,-4,-29,-11v-8,-7,-11,-16,-11,-27xm80,-227v0,-7,17,-27,51,-58v7,-6,15,-9,24,-9v9,0,15,3,20,9v5,6,11,16,18,30v7,14,10,23,10,26v0,5,-5,8,-16,8v-6,0,-13,-6,-23,-18v-10,-12,-15,-17,-16,-17v-1,0,-9,7,-26,21v-11,9,-20,13,-29,13v-9,0,-13,-1,-13,-5"},"\u00fc":{"d":"22,-47v0,-11,4,-29,10,-56v6,-27,9,-43,9,-47v0,-4,-3,-10,-8,-16v-2,-3,-3,-6,-3,-8v0,-2,1,-4,3,-6v12,-8,27,-12,46,-12v7,0,12,3,15,8v3,5,3,13,3,21v0,8,-3,25,-9,51v-6,26,-9,43,-9,53v0,13,5,19,15,19v4,0,10,-3,17,-8v17,-11,30,-35,40,-72v3,-11,5,-22,8,-34v3,-12,5,-18,6,-21v5,-11,13,-16,24,-16v7,0,12,3,16,8v4,5,5,10,5,16v0,6,-1,19,-6,39v-4,19,-7,34,-7,45v0,9,2,15,5,18v5,4,7,9,7,16v0,13,-5,24,-15,32v-10,8,-21,12,-34,12v-12,0,-20,-7,-22,-20v-1,-7,-3,-10,-6,-10v-1,0,-6,2,-15,8v-9,6,-16,10,-20,12v-12,6,-24,9,-37,9v-13,0,-22,-5,-28,-13v-6,-8,-10,-17,-10,-28xm77,-251v0,-8,2,-15,7,-21v5,-6,12,-10,20,-10r5,0v2,0,3,1,6,1v3,0,6,2,10,6v4,4,6,8,6,14r0,5v0,9,-3,15,-9,20v-6,5,-12,7,-20,7v-8,0,-14,-2,-18,-6v-4,-4,-6,-7,-6,-11xm159,-252r0,-1r0,-1v0,-6,2,-12,7,-18v5,-6,11,-10,19,-10r6,0v5,0,10,2,15,6v5,4,7,9,7,15r0,5v0,2,-1,4,-1,5v0,7,-3,12,-9,16v-6,4,-13,6,-20,6v-7,0,-13,-1,-17,-5v-4,-4,-6,-8,-6,-13"},"\u00fd":{"d":"5,72v0,-3,7,-9,21,-17v33,-19,50,-42,50,-68v0,-6,-3,-18,-10,-35v-7,-17,-12,-36,-17,-55v-5,-19,-8,-31,-10,-34v-9,-18,-13,-29,-13,-34v0,-5,4,-9,11,-14v7,-5,16,-7,28,-7v12,0,20,8,25,22v5,14,9,35,13,63v4,28,7,42,9,42v6,0,15,-12,27,-37v8,-16,13,-29,15,-37v2,-8,4,-17,5,-26v1,-9,3,-15,5,-18v5,-8,13,-11,25,-11v12,0,19,5,19,14r0,5v0,11,-9,36,-27,76v-18,40,-37,71,-55,97v-18,26,-36,47,-55,63v-19,16,-33,24,-44,24r-4,0v-12,0,-18,-4,-18,-11r0,-2xm108,-227v0,-5,2,-11,8,-18v18,-23,29,-36,32,-38v10,-8,20,-11,29,-11r2,0v6,0,11,1,17,5v2,2,4,4,4,6r0,1v0,7,-12,18,-36,35v-24,17,-39,25,-46,25v-7,0,-10,-2,-10,-5","w":207},"\u00fe":{"d":"-5,90v-3,-2,-5,-5,-5,-10v0,-5,1,-13,5,-21v9,-20,17,-45,23,-74v26,-121,39,-193,39,-216r-2,-33v0,-8,4,-15,12,-19v8,-4,20,-6,32,-6r4,0v7,0,11,2,14,5v3,3,4,8,4,15v0,7,-1,17,-3,31v-2,14,-4,23,-5,28v-2,9,-3,16,-3,22v0,6,1,9,3,9v1,0,6,-3,18,-7v12,-5,23,-7,33,-7v15,0,28,6,38,17v11,12,16,26,16,44v0,18,-4,36,-11,54v-15,36,-37,59,-68,71v-13,5,-29,8,-49,8v-8,0,-14,2,-19,6v-5,4,-8,14,-8,27r4,33v0,9,-6,16,-17,22v-6,3,-18,5,-34,5r-6,0v-7,0,-11,-2,-15,-4xm80,-50v0,4,2,9,6,13v4,4,9,6,16,6r5,0v13,0,24,-8,35,-24v14,-21,21,-42,21,-61r0,-3r0,-11v0,-9,-2,-16,-6,-22v-4,-6,-9,-8,-17,-8v-8,0,-16,4,-25,11v-4,3,-9,10,-15,20v-6,10,-11,22,-15,38v-4,16,-5,29,-5,41","w":225},"\u00ff":{"d":"3,71v0,-3,7,-8,21,-16v14,-8,25,-16,33,-25v12,-14,18,-29,18,-44v0,-5,-3,-17,-10,-36v-7,-19,-13,-37,-18,-55v-5,-18,-7,-29,-9,-33v-9,-18,-13,-28,-13,-33v0,-5,2,-9,8,-13v9,-6,20,-8,31,-8v11,0,20,7,25,21v5,14,10,36,13,64v3,28,6,42,8,42v7,0,17,-14,30,-43v10,-22,16,-41,18,-59v1,-7,2,-13,4,-16v5,-8,14,-12,27,-12r6,0v8,0,12,5,12,14r0,5v0,10,-8,34,-26,73v-18,39,-36,72,-53,97v-17,25,-36,47,-56,64v-20,17,-35,26,-46,26r-4,0v-12,0,-19,-3,-19,-10r0,-3xm68,-251r0,-5v0,-6,3,-12,8,-18v5,-6,10,-9,18,-9r6,0v5,0,10,2,15,6v5,4,7,9,7,15r0,5v0,2,-1,3,-1,4v0,4,-2,8,-7,14v-5,6,-10,9,-15,9r-4,0r-5,0r-5,-1v-3,0,-6,-1,-10,-5v-4,-4,-7,-9,-7,-15xm150,-253v0,-8,2,-15,7,-21v5,-6,12,-9,20,-9r4,0v6,0,11,2,16,6v5,4,7,9,7,15r0,5v0,6,-3,12,-8,18v-5,6,-11,9,-19,9r-5,0v-6,0,-10,-2,-15,-6v-5,-4,-7,-9,-7,-17","w":207},"\u0131":{"d":"21,-16r0,-8v0,-4,3,-23,11,-55v8,-32,11,-52,11,-58v0,-6,-2,-11,-7,-15v-5,-4,-7,-7,-7,-11v0,-9,4,-17,14,-22v10,-5,24,-8,42,-8r5,0v11,0,16,5,16,15v0,6,-4,26,-12,60v-8,34,-12,56,-12,63v0,7,3,11,10,13v7,2,11,5,11,13v0,8,-5,15,-15,20v-14,8,-30,11,-48,11v-6,0,-11,-1,-14,-5v-3,-4,-5,-8,-5,-13","w":123},"\u0141":{"d":"13,-14v0,-4,0,-8,2,-10v2,-2,4,-6,7,-10v3,-4,6,-7,8,-10v8,-16,12,-31,12,-46v0,-7,-2,-10,-6,-10v-5,1,-8,1,-11,1v-6,0,-9,-4,-9,-11v0,-7,4,-15,13,-21v15,-10,24,-18,27,-24v3,-6,6,-19,11,-39v5,-20,7,-35,7,-45v0,-3,-2,-8,-6,-14v-4,-6,-6,-12,-6,-16v0,-4,2,-7,5,-9v6,-5,16,-7,29,-7r21,0v17,0,29,1,36,3v7,2,10,5,10,10v0,5,-3,11,-10,18v-14,15,-21,32,-21,52v0,9,2,13,6,13v1,0,6,-2,15,-6v9,-4,15,-6,20,-6v5,0,7,2,7,6v0,7,-3,13,-10,19r-27,17v-11,7,-19,14,-23,20v-4,6,-8,18,-13,37v-5,19,-7,34,-7,46v0,7,3,12,9,15v6,3,16,4,28,4v12,0,26,-5,43,-16v17,-11,28,-16,34,-16v4,0,6,4,6,10v0,7,-3,18,-8,33v-3,10,-7,17,-11,21v-4,4,-16,5,-35,5r-19,0r-7,0r-27,0v-41,0,-68,-1,-81,-3v-13,-2,-19,-5,-19,-11","w":230},"\u0142":{"d":"17,-123v0,-7,6,-15,17,-24v11,-9,19,-19,23,-29v9,-25,14,-49,14,-72v0,-5,-2,-11,-5,-17v-3,-6,-5,-11,-5,-16v0,-12,19,-18,57,-18v9,0,13,4,13,14v0,3,-1,9,-3,17v-7,29,-11,50,-11,62v0,4,1,7,5,7r15,-2v4,0,6,2,6,6v0,9,-5,17,-15,26v-16,15,-26,25,-28,30v-9,22,-13,48,-13,76v0,9,2,17,7,23v5,6,7,11,7,15v0,6,-4,11,-12,15v-13,7,-28,10,-43,10v-13,0,-19,-9,-19,-28v0,-6,2,-19,7,-39v5,-20,7,-32,7,-37v0,-5,-5,-8,-15,-8v-6,0,-9,-4,-9,-11","w":134},"\u0152":{"d":"33,-110v0,-23,4,-46,14,-68v10,-22,23,-42,38,-59v15,-17,32,-29,50,-36v18,-7,37,-10,57,-10v9,0,18,1,28,2v8,1,19,1,31,1v17,0,38,-1,63,-3v10,-1,20,-1,28,-1v19,0,31,2,38,7v10,7,15,13,15,20r1,0v0,7,-5,11,-13,11r-5,-1r-12,-1v-7,-1,-13,-1,-19,-1v-23,0,-39,5,-49,16v-5,5,-9,12,-13,22v-4,10,-6,17,-6,21v0,4,2,8,6,10v4,2,8,3,13,3v4,0,10,0,15,-2v11,-4,16,-6,17,-6v8,0,13,1,16,4v3,3,4,7,4,12v0,14,-3,28,-10,41v-3,7,-9,10,-17,10v-3,0,-9,-1,-17,-5v-8,-4,-14,-6,-20,-6v-13,0,-22,3,-28,10v-6,7,-8,26,-8,55v0,12,3,19,8,22v5,3,15,5,30,5v15,0,29,-1,42,-4v13,-3,21,-4,24,-4v3,0,5,2,5,6v0,9,-8,18,-25,28v-11,7,-25,10,-41,10r-8,0v-2,0,-9,0,-19,-1v-10,-1,-19,-1,-27,-1r-42,-3r-7,0r-16,3v-12,1,-25,2,-38,2v-13,0,-26,-3,-41,-8v-15,-5,-26,-12,-35,-21v-18,-19,-27,-46,-27,-80xm88,-101v0,21,4,37,13,49v9,12,21,18,35,18r5,0v20,0,34,-10,43,-31v6,-13,13,-37,22,-73v9,-36,13,-63,13,-81r0,-7v0,-9,-4,-16,-10,-20v-6,-4,-15,-7,-27,-7v-12,0,-24,4,-35,12v-22,15,-39,41,-50,78v-6,19,-9,38,-9,56r0,6","w":398},"\u0153":{"d":"18,-80v0,-13,3,-27,8,-41v11,-28,30,-49,57,-62v16,-8,31,-11,46,-11v15,0,27,1,34,4v7,3,13,7,19,11v6,4,10,7,13,7v3,0,8,-3,16,-7v8,-4,16,-7,24,-10v8,-3,21,-5,36,-5v15,0,29,4,40,13v11,9,16,20,16,35v0,9,-2,17,-5,25v-3,8,-8,13,-13,17v-13,8,-36,14,-70,17v-14,1,-23,2,-26,3v-6,2,-10,7,-10,15v0,8,4,15,10,21v6,6,14,10,24,10v9,0,20,-2,32,-7r33,-14v5,0,8,3,8,7v0,11,-9,21,-28,31v-19,10,-39,15,-61,15v-13,0,-24,-2,-33,-7v-3,-2,-8,-4,-13,-8v-5,-4,-9,-6,-11,-6v-2,0,-6,2,-12,5v-18,11,-37,16,-56,16r-6,0v-20,0,-37,-6,-51,-19v-6,-6,-11,-13,-15,-22v-4,-9,-6,-20,-6,-33xm75,-65v0,9,2,17,6,24v4,7,9,10,16,10r5,0v4,0,9,-2,15,-6v6,-4,12,-12,18,-23v12,-23,18,-46,18,-71r0,-5v0,-11,-2,-20,-6,-25v-4,-5,-9,-8,-15,-8r-5,0v-12,0,-22,10,-34,31v-12,21,-18,42,-18,65r0,8xm210,-121v0,3,2,6,7,6r1,-1r1,0r7,0v17,0,31,-5,42,-13v7,-5,10,-10,10,-17r0,-5v0,-5,-2,-9,-6,-13v-4,-4,-9,-5,-18,-5v-9,0,-18,4,-26,14v-12,14,-18,25,-18,32r0,2","w":327},"\u0160":{"d":"10,-33r0,-6v0,-13,2,-23,6,-30v4,-7,8,-11,12,-11v2,0,8,5,17,16v9,11,16,18,20,21v10,7,21,11,35,11v14,0,24,-4,32,-12v8,-8,12,-17,12,-27v0,-10,-3,-19,-10,-26v-7,-7,-18,-15,-35,-26v-17,-11,-29,-21,-37,-30v-12,-14,-19,-29,-19,-47v0,-26,10,-47,29,-64v19,-17,40,-25,66,-25r7,0v2,0,9,2,20,3v11,1,21,2,29,2v8,0,15,1,19,5v4,4,5,12,5,22v0,10,-2,20,-5,29v-3,9,-8,13,-14,13v-2,0,-6,-5,-14,-14v-8,-9,-14,-15,-20,-19v-6,-4,-14,-5,-25,-5v-11,0,-20,3,-28,9v-8,6,-12,16,-12,26v0,10,4,19,11,27v4,4,15,12,35,25v20,13,33,23,40,32v10,12,15,29,15,49v0,10,-2,22,-7,33v-5,11,-13,21,-23,30v-20,17,-44,25,-73,25v-8,0,-17,-1,-28,-3v-11,-2,-24,-3,-36,-3v-16,0,-24,-10,-24,-30xm94,-366v0,-5,4,-8,13,-8v9,0,19,5,29,15v10,10,16,15,17,15v1,0,9,-5,23,-15v14,-10,25,-15,32,-15r5,0v8,0,11,1,11,5r0,2v0,5,-17,21,-51,50v-8,7,-16,10,-25,10v-9,0,-18,-3,-24,-10v-20,-22,-30,-39,-30,-49","w":220},"\u0161":{"d":"6,-26v0,-10,3,-18,8,-24v3,-3,6,-5,10,-5v4,0,11,4,20,13v9,9,17,13,27,13v10,0,17,-2,21,-6v4,-4,7,-10,7,-16v0,-6,-3,-11,-9,-16v-2,-2,-9,-7,-22,-15v-13,-8,-23,-16,-29,-24v-6,-8,-9,-18,-9,-33v0,-15,7,-28,21,-41v14,-13,33,-19,54,-19r10,0v33,0,49,7,49,22r0,5v0,7,-2,12,-6,18v-4,6,-8,9,-12,9v-4,0,-10,-4,-18,-11v-8,-7,-15,-11,-23,-11v-8,0,-14,2,-18,6v-4,4,-6,9,-6,15v0,6,8,15,25,25v17,10,27,18,32,23v8,9,13,21,13,36v0,8,-3,17,-7,25v-4,8,-10,15,-17,21v-16,13,-36,19,-59,19v-23,0,-40,-2,-49,-7v-9,-5,-13,-12,-13,-22xm60,-288v0,-5,6,-8,18,-8v6,0,14,6,23,18v9,12,14,18,15,18v1,0,8,-6,22,-18v14,-12,25,-18,34,-18v9,0,13,2,13,7v0,2,-2,5,-6,9v-26,28,-42,45,-48,50v-6,5,-12,7,-21,7v-9,0,-16,-2,-21,-9v-2,-2,-7,-12,-16,-28v-9,-16,-13,-25,-13,-28","w":170},"\u0178":{"d":"48,-268v0,-11,19,-17,57,-17r6,0v14,0,21,5,21,15v0,1,0,0,-2,7v-1,4,-1,8,-1,13v0,17,6,43,17,76v2,4,3,6,4,6v6,0,22,-23,49,-71v5,-10,9,-18,10,-26v1,-8,3,-12,5,-14v4,-4,15,-6,33,-6v18,0,27,4,27,11v0,5,-8,13,-23,27v-7,6,-21,25,-42,56v-21,31,-34,51,-39,60v-13,24,-20,51,-20,80v0,4,2,9,5,16v3,7,5,10,5,12v0,6,-3,11,-10,15v-7,4,-16,6,-26,6r-5,0r-35,0v-11,0,-17,-4,-17,-11v0,-5,3,-12,10,-20v7,-8,12,-16,14,-24v7,-23,10,-41,10,-54v0,-21,-8,-55,-24,-102v-5,-13,-10,-24,-18,-33v-8,-9,-11,-16,-11,-22xm107,-334v0,-8,3,-15,8,-21v5,-6,13,-9,22,-9r5,0r4,0v10,0,15,6,15,19v0,7,-4,15,-10,24v-4,5,-12,7,-24,7r-1,0r-4,0v-10,0,-15,-7,-15,-20xm192,-332v0,-8,2,-15,7,-22v5,-7,11,-10,18,-10r4,0r5,0r5,0v9,0,14,5,14,15r0,6v0,2,-1,4,-1,5v0,5,-2,9,-7,15v-5,6,-9,8,-15,8r-4,1r-4,0r-3,0v-13,0,-19,-4,-19,-13r0,-5","w":254},"\u017d":{"d":"6,-15v0,-7,7,-19,20,-36v6,-8,33,-41,81,-99v48,-58,72,-88,72,-92v0,-5,-8,-8,-25,-8v-17,0,-30,1,-40,4v-10,3,-20,7,-31,12v-11,5,-17,7,-20,7v-7,0,-11,-4,-11,-12v0,-14,4,-26,13,-36v6,-7,15,-11,26,-11r7,1v11,1,23,1,37,1r46,0r67,0v8,1,11,5,11,10v0,9,-6,22,-18,38v-7,9,-18,22,-33,40r-71,87v-32,40,-49,62,-49,64v0,6,10,9,29,9v19,0,38,-3,55,-8v3,-1,11,-4,23,-9v12,-5,19,-8,22,-8v7,0,10,5,10,13v0,15,-6,28,-18,39v-6,6,-14,8,-27,8r-21,0r-69,-1v-48,0,-73,1,-76,0v-7,-1,-10,-6,-10,-13xm110,-368v0,-4,5,-6,14,-6v9,0,17,4,25,12v13,13,20,19,21,19v1,0,6,-3,15,-9v9,-6,13,-10,13,-10v12,-8,23,-12,31,-12r3,0v7,0,11,1,11,5v0,4,-16,20,-49,47v-10,8,-20,13,-29,13v-9,0,-17,-4,-23,-11v-21,-23,-32,-39,-32,-48","w":250},"\u017e":{"d":"7,-11r0,-5v0,-9,20,-33,59,-72v39,-39,58,-61,58,-67v0,-3,-7,-4,-22,-4v-15,0,-28,2,-39,6v-11,4,-18,6,-20,6v-6,0,-9,-6,-9,-16v0,-10,4,-19,10,-25v6,-6,16,-10,29,-10r5,0r3,0v10,0,21,0,34,2v14,2,27,3,36,3v6,0,12,0,16,-1v9,-2,15,-3,17,-3r0,0v7,0,11,3,11,9v0,9,-4,18,-12,28v-8,10,-27,30,-56,59v-29,29,-44,47,-44,53v0,8,12,11,37,11v7,0,16,-2,25,-7v9,-5,18,-6,24,-6v5,0,8,4,8,11v0,15,-3,25,-10,30v-8,7,-22,10,-41,10v-11,0,-22,-1,-36,-3v-19,-3,-32,-4,-37,-4v-8,0,-17,0,-24,1v-7,1,-11,2,-12,2v-7,0,-10,-2,-10,-8xm73,-289v0,-4,6,-6,18,-6v6,0,14,6,23,17v9,11,14,17,16,17v2,0,12,-7,27,-21v10,-9,20,-14,30,-14v10,0,14,2,14,5v0,7,-17,26,-54,57v-6,5,-13,8,-22,8v-9,0,-16,-3,-22,-10v-1,-2,-7,-10,-16,-26v-9,-16,-14,-24,-14,-27","w":199},"\u0192":{"d":"-13,62v-2,-2,-3,-5,-3,-8v0,-5,3,-12,9,-20v4,-4,8,-6,12,-6r21,3v12,0,23,-10,30,-28v5,-12,11,-34,19,-66v8,-32,12,-54,12,-63v0,-9,-2,-16,-7,-21v-7,-8,-11,-12,-11,-14v0,-6,6,-12,16,-19v10,-7,17,-13,20,-18v3,-5,6,-9,8,-14r4,-12v8,-20,18,-35,29,-46v16,-16,34,-23,54,-23r6,0v14,0,26,2,33,8v3,2,4,6,4,11v0,5,-2,9,-7,15v-5,6,-11,8,-17,8v-1,0,-4,0,-9,-2v-5,-2,-9,-3,-13,-3v-10,0,-18,5,-24,14v-6,9,-8,21,-8,35v0,6,4,13,13,22v9,9,13,14,13,16v0,6,-7,12,-20,18v-13,6,-22,13,-27,21v-2,4,-9,28,-21,73v-12,45,-24,75,-34,89v-18,25,-40,38,-66,38r-5,0v-14,0,-25,-3,-31,-8","w":228},"\u02c6":{"d":"50,-232v0,-2,2,-5,6,-9v20,-21,35,-37,48,-47v7,-5,14,-8,23,-8v9,0,16,4,21,11v19,25,29,42,29,51v0,4,-6,7,-19,7v-5,0,-11,-6,-21,-17v-10,-11,-15,-17,-17,-17r-19,14r-7,6v-12,10,-22,14,-31,14v-9,0,-13,-1,-13,-5","w":175},"\u02c7":{"d":"61,-289v0,-4,6,-6,18,-6v6,0,13,6,23,17v10,11,15,17,16,17v2,0,9,-5,23,-17v14,-12,25,-18,34,-18v9,0,14,2,14,5r0,1v0,7,-18,25,-54,56v-6,5,-13,7,-22,7v-9,0,-17,-3,-22,-9v-2,-2,-7,-11,-16,-26v-9,-15,-14,-24,-14,-27","w":175},"\u02c9":{"d":"55,-242v0,-17,2,-26,7,-28v1,-1,22,-1,61,-1r56,0v3,0,5,0,5,2v0,20,-4,30,-13,30r-111,0v-3,0,-5,-1,-5,-3","w":176},"\u02d8":{"d":"59,-274r0,-5v0,-5,4,-7,11,-7v7,0,12,4,17,12v5,8,9,13,13,15v4,2,11,4,22,4v11,0,21,-5,29,-15v8,-10,18,-15,29,-15v3,0,5,1,5,3v0,13,-10,26,-28,42v-11,9,-25,14,-41,14r-6,0v-14,0,-26,-5,-36,-15v-10,-10,-15,-21,-15,-33","w":175},"\u02d9":{"d":"87,-252r0,-4r0,-1r0,-2v0,-2,1,-3,1,-3v0,-7,2,-13,8,-18v6,-5,13,-7,21,-7r5,0v2,0,3,1,5,1v10,0,15,3,15,11r1,6v0,9,-3,18,-9,26v-4,5,-9,8,-17,8r-5,0r-6,0v-12,0,-19,-4,-19,-13r0,-4","w":166},"\u02da":{"d":"76,-263v0,-10,5,-21,14,-30v9,-9,20,-14,32,-14r9,0v9,0,16,3,23,9v7,6,10,13,10,21r0,4v0,11,-5,21,-15,30v-10,9,-20,13,-31,13r-9,0v-9,0,-16,-3,-23,-9v-7,-6,-10,-14,-10,-24xm102,-266v0,6,1,11,4,14v3,3,7,5,12,5v5,0,9,-2,13,-6v4,-4,7,-8,7,-12r0,-2r1,-5v0,-11,-4,-17,-11,-17v-2,-1,-3,-1,-5,-1r-1,0v-5,0,-9,3,-13,7v-4,4,-7,9,-7,13r0,4","w":168},"\u02db":{"d":"40,49v0,-11,6,-23,18,-35v12,-12,22,-18,31,-18r6,0v5,0,8,1,8,4r-17,17v-6,8,-9,16,-9,22v0,6,2,11,6,13v4,2,10,3,19,3v9,0,14,3,14,8v0,5,-2,10,-6,12v-7,5,-16,7,-26,7r-6,0v-11,0,-20,-2,-27,-8v-7,-6,-11,-13,-11,-21r0,-4","w":166},"\u02dc":{"d":"50,-240r0,-4v0,-10,7,-20,20,-31v7,-6,14,-9,22,-9v8,0,19,3,32,9v13,6,20,8,24,8v4,0,9,-3,15,-9v6,-6,11,-8,17,-8v6,0,8,1,8,5v0,11,-4,21,-14,30v-10,9,-20,14,-29,14v-9,0,-19,-3,-30,-9v-11,-6,-18,-8,-23,-8v-5,0,-11,3,-17,9v-6,6,-11,8,-17,8v-6,0,-8,-1,-8,-5","w":175},"\u02dd":{"d":"52,-235v0,-6,12,-24,35,-54v7,-9,16,-13,26,-13r2,0v13,0,20,1,20,6r0,2v0,6,-17,24,-49,52v-9,8,-16,11,-23,11v-7,0,-11,-1,-11,-4xm124,-235r0,-2v0,-8,13,-26,37,-53v7,-8,17,-12,29,-12v12,0,18,3,18,8v0,9,-16,27,-48,52v-10,8,-18,12,-23,12r-4,0v-5,0,-9,-2,-9,-5","w":178},"\u03a9":{"d":"9,-22v0,-11,1,-19,3,-23v2,-4,6,-6,11,-6r14,5v10,3,18,4,23,4v8,0,12,-2,12,-8v0,-3,-3,-9,-10,-19v-7,-10,-12,-20,-17,-32v-5,-12,-7,-27,-7,-46v0,-19,4,-38,12,-56v8,-18,20,-33,34,-47v28,-27,64,-40,107,-40v17,0,31,3,44,8v24,10,43,25,53,47v7,14,10,29,10,43r0,9v0,37,-16,72,-48,106v-17,18,-25,28,-25,31v0,3,3,4,10,4v7,0,15,-2,25,-4v10,-2,16,-3,18,-3v4,0,6,3,6,8v0,14,-6,25,-18,31v-12,6,-31,9,-57,9r-9,0v-11,0,-20,-1,-25,-3v-5,-2,-8,-7,-8,-13v0,-9,8,-24,25,-45v17,-21,29,-40,37,-58v8,-18,12,-38,12,-60v0,-22,-5,-40,-15,-54v-10,-14,-24,-21,-43,-21v-26,0,-47,12,-64,36v-17,24,-26,54,-26,91v0,15,4,34,13,59v9,25,13,41,13,48v0,7,-3,12,-9,15v-6,3,-18,5,-34,5r-36,0v-8,0,-14,-1,-21,-5v-7,-4,-10,-9,-10,-16","w":307},"\u03bc":{"d":"-1,66v0,-14,6,-46,17,-96v11,-50,17,-79,18,-87v1,-8,2,-18,3,-32v1,-14,3,-25,5,-31v2,-6,6,-10,12,-13v6,-3,16,-4,30,-4v6,0,10,1,12,4v2,3,3,9,3,17v0,8,-4,27,-10,59v-6,32,-9,50,-9,54v0,15,6,23,19,23v6,0,12,-2,19,-7v7,-5,15,-12,21,-23v6,-11,13,-31,20,-60v7,-29,11,-45,12,-46v7,-13,16,-19,27,-19v6,0,11,2,15,8v4,6,5,12,5,20v0,1,-2,13,-6,35v-4,21,-6,38,-6,50v0,7,0,13,2,16v3,6,4,14,4,23v0,9,-4,19,-13,28v-9,9,-17,14,-27,14v-10,0,-17,-3,-22,-9v-8,-9,-13,-15,-14,-15v-5,0,-14,4,-25,10v-11,6,-20,11,-27,12v-7,1,-11,3,-14,6v-6,6,-13,19,-19,39v-6,20,-10,31,-12,34v-6,7,-13,11,-23,11r-5,0v-8,0,-12,-7,-12,-21","w":237},"\u03c0":{"d":"22,-10v0,-2,3,-10,9,-22v6,-12,11,-25,16,-39v12,-34,18,-58,18,-71v0,-5,-2,-8,-5,-10v-3,-2,-10,-3,-19,-3v-9,0,-13,-4,-13,-11v0,-14,10,-24,31,-30v15,-4,53,-6,112,-6r38,-1r19,0r18,-1v9,0,13,3,13,9v0,10,-3,17,-9,24v-1,1,-5,4,-14,9v-9,5,-15,11,-18,18v-3,7,-6,20,-10,40v-4,20,-6,36,-6,46v0,10,2,17,7,24v5,7,7,13,7,16v0,3,-4,6,-12,10v-8,4,-17,6,-28,6v-11,0,-18,-5,-22,-14v-4,-8,-6,-18,-6,-30v0,-13,3,-30,7,-49v8,-37,11,-54,11,-55v0,-5,-1,-8,-5,-10v-4,-2,-14,-2,-29,-2v-9,0,-16,4,-19,14v-1,2,-2,7,-4,13r-5,20v-14,50,-25,81,-32,94v-7,13,-18,19,-31,19v-13,0,-19,-3,-19,-8","w":253},"\u2013":{"d":"11,-98v0,-14,1,-23,4,-26v3,-3,11,-5,22,-5r168,0v6,0,10,1,10,5v0,13,-2,22,-6,27v-2,3,-8,5,-18,5r-166,0v-9,0,-14,-2,-14,-6","w":216},"\u2014":{"d":"18,-96v0,-11,2,-19,4,-23v2,-4,6,-6,12,-7v6,-1,65,-1,178,-1r159,-1v6,0,9,2,9,5v0,11,-1,19,-3,23v-2,4,-6,7,-11,8v-5,1,-63,1,-176,1r-132,0r-31,0v-6,0,-9,-2,-9,-5","w":390},"\u2018":{"d":"50,-197v0,-19,8,-40,22,-62v7,-11,15,-19,25,-25v10,-6,18,-10,25,-10v4,0,6,3,6,9v0,1,-3,5,-9,11v-6,6,-9,8,-9,9v-8,11,-13,20,-13,26v0,1,2,5,5,12v3,8,5,15,5,22v0,8,-2,15,-7,21v-5,6,-13,9,-24,9r-5,0v-8,0,-14,-2,-18,-6v-2,-2,-3,-8,-3,-16","w":118},"\u2019":{"d":"45,-182v0,-1,5,-6,16,-18v11,-12,16,-21,16,-29v0,-1,-1,-5,-4,-12v-3,-7,-4,-16,-4,-24v0,-8,3,-15,9,-20v6,-5,15,-8,28,-8v13,0,19,3,19,11r0,3r0,9v0,7,-2,16,-6,28v-4,12,-11,24,-20,36v-9,12,-19,20,-27,25v-8,5,-15,7,-21,7v-4,0,-6,-3,-6,-8","w":117},"\u201a":{"d":"2,51v0,-2,3,-6,8,-11r11,-11v8,-10,13,-18,13,-26v0,0,-2,-4,-4,-12v-2,-8,-4,-15,-4,-21v0,-9,3,-16,8,-21v6,-6,13,-9,22,-9r5,0v14,0,21,5,21,14r0,5v0,18,-7,38,-21,60v-7,11,-15,20,-25,28v-10,8,-19,12,-27,12v-5,0,-7,-3,-7,-8","w":119},"\u201c":{"d":"45,-194r0,-7v0,-21,7,-41,22,-60v10,-13,19,-21,27,-26v8,-5,15,-7,20,-7v5,0,7,2,7,7v0,1,-5,8,-15,19v-10,11,-15,20,-15,28v0,2,0,5,2,8v5,8,7,16,7,25v0,9,-2,16,-7,22v-5,6,-12,9,-21,9r-8,0v-7,0,-12,-2,-15,-5v-3,-3,-4,-7,-4,-13xm132,-198r0,-1v0,-18,7,-38,20,-59v8,-12,16,-21,26,-27v10,-6,18,-9,25,-9v4,0,6,2,6,7r-18,22v-8,10,-13,18,-13,25v0,2,0,4,2,7v5,9,7,18,7,27v0,9,-3,17,-8,22v-5,5,-13,8,-23,8v-10,0,-16,-2,-21,-6v-2,-2,-3,-7,-3,-16","w":195},"\u201d":{"d":"41,-184v0,-2,2,-5,7,-10v16,-14,24,-26,24,-36v0,0,-1,-4,-4,-11v-3,-7,-4,-15,-4,-23v0,-8,3,-15,8,-21v5,-6,13,-9,22,-9r6,0v7,0,14,2,18,6v2,1,2,5,2,13r0,2v0,31,-16,60,-48,87v-8,7,-16,10,-25,10v-4,0,-6,-2,-6,-8xm128,-182r0,-2v0,-2,2,-5,7,-9v16,-14,24,-27,24,-38v0,-1,-1,-3,-2,-7r-1,-1v-4,-7,-5,-15,-5,-24v0,-9,3,-16,8,-22v5,-6,13,-9,22,-9r6,0v7,0,14,2,18,6v2,1,2,5,2,13r0,2v0,21,-7,40,-20,57v-13,17,-23,28,-32,33v-9,5,-15,7,-20,7v-5,0,-7,-2,-7,-6","w":195},"\u201e":{"d":"62,50r16,-18v0,0,16,-20,16,-28v0,-2,-1,-5,-3,-9v-4,9,-8,18,-15,27v-9,13,-19,23,-30,30v-7,4,-13,6,-18,6v-5,0,-8,-2,-8,-6r0,-2v0,-2,2,-5,7,-9v16,-15,24,-27,24,-37v0,-3,-1,-6,-2,-8v-4,-9,-6,-18,-6,-25v0,-8,2,-15,7,-21v5,-6,13,-9,23,-9r5,0v9,0,15,1,18,4r0,1v5,-4,11,-5,19,-5r5,0v14,0,21,4,21,12r0,10v0,8,-2,18,-7,30v-5,12,-11,24,-20,35v-9,11,-17,18,-25,23v-8,5,-15,7,-20,7v-5,0,-7,-2,-7,-6r0,-2","w":196},"\u2020":{"d":"39,-180v0,-14,10,-21,29,-21r31,2v7,0,13,-4,15,-13v2,-6,2,-18,3,-35v1,-17,3,-29,7,-34v4,-5,13,-8,28,-8v7,0,13,1,16,3v3,2,4,5,4,11v0,6,-2,18,-9,35v-7,17,-10,29,-10,36v0,4,3,6,12,6r37,-4v12,0,18,6,18,16v0,17,-11,25,-32,25r-20,0v-11,0,-19,4,-23,14v-2,5,-4,14,-6,28v-2,14,-6,32,-11,55r-22,97v-3,9,-6,15,-10,19v-4,4,-8,5,-15,5v-7,0,-10,-1,-12,-4v-2,-3,-3,-6,-3,-11v0,-5,2,-17,6,-36r19,-113v5,-25,7,-38,7,-41v0,-6,-2,-10,-7,-12v-5,-2,-16,-3,-34,-3v-12,0,-18,-6,-18,-17","w":221},"\u2021":{"d":"20,-51r0,-4v0,-5,4,-10,12,-13v2,-1,4,-1,9,-2r6,-1v18,-1,29,-5,34,-11v5,-6,8,-16,11,-29v1,-4,4,-12,7,-23v3,-11,5,-19,5,-24v0,-5,-2,-8,-5,-10v-3,-2,-9,-4,-20,-4r-7,1r-16,0v-9,0,-13,-7,-13,-22v0,-6,3,-9,8,-12v5,-3,14,-4,26,-4r13,1r14,0v0,0,8,-3,11,-9v3,-6,4,-17,4,-34v0,-17,2,-27,7,-32v5,-5,13,-7,24,-7v11,0,17,1,19,4v2,3,3,6,3,11v0,5,-3,15,-9,30v-6,15,-8,25,-8,29v0,6,4,10,14,10r7,-1r7,-1v8,-1,14,-1,21,-1v7,0,12,2,15,6r2,5r0,6v0,5,-2,10,-7,15v-5,5,-11,8,-17,8r-33,-3v-9,0,-15,4,-18,11v-7,15,-10,37,-10,67v0,8,2,13,6,16v6,5,13,8,23,10v10,2,15,2,16,3v3,2,4,4,4,9v0,8,-4,15,-12,18v-8,3,-17,6,-30,7v-13,1,-22,4,-25,9v-3,5,-5,15,-6,33v-1,18,-1,29,-3,33v-4,10,-12,15,-26,15v-10,0,-16,-1,-18,-4v-2,-3,-4,-6,-4,-11v0,-5,3,-16,9,-33v6,-17,10,-28,10,-34v0,-8,-4,-12,-11,-12v-3,0,-5,1,-8,2v0,0,-4,0,-12,-1v-19,-2,-29,-8,-29,-17r0,0r0,0","w":221},"\u2022":{"d":"40,-126r0,-9v0,-15,5,-28,17,-41v12,-13,26,-19,42,-19r6,0v16,0,29,5,40,16v11,11,16,24,16,39r0,8v0,16,-6,30,-18,42v-12,12,-25,18,-41,18r-6,0v-15,0,-29,-5,-40,-15v-11,-10,-16,-23,-16,-39","w":184},"\u2026":{"d":"28,-24r0,-1r0,-1v0,-11,4,-20,12,-29v5,-5,12,-8,22,-8v10,0,18,2,24,6v3,2,5,9,5,20v0,11,-4,21,-12,29v-5,5,-13,7,-23,7r-5,0v-6,0,-12,-1,-18,-5v-3,-2,-5,-6,-5,-12r0,-6xm153,-21r0,-6v0,-11,3,-19,10,-26v7,-7,15,-10,25,-10r6,0r3,0v13,0,20,7,20,22v0,14,-4,24,-10,30v-6,6,-14,10,-21,10r-5,0r-5,0v-15,0,-23,-6,-23,-20xm279,-21r0,-6v0,-11,3,-19,10,-26v7,-7,15,-10,25,-10r5,0v8,0,13,2,17,5v4,3,5,7,5,12r1,3r0,7v0,9,-4,18,-10,25v-6,7,-14,10,-25,10r-6,0r-3,0v-13,0,-19,-7,-19,-20","w":378},"\u2030":{"d":"47,-186r0,-9v0,-22,8,-43,23,-63v6,-8,13,-15,23,-21v10,-6,19,-9,29,-9r7,0v12,0,22,4,30,13v8,9,12,21,12,35r0,5v0,23,-8,45,-23,65v-8,10,-17,17,-27,22v-10,5,-19,8,-28,8r-5,0v-12,0,-21,-5,-29,-14v-8,-9,-12,-19,-12,-32xm60,-2v0,-2,2,-7,6,-12v42,-60,107,-146,195,-257v7,-8,14,-13,23,-13v9,0,14,1,14,3v0,2,-2,6,-6,12v-37,54,-101,138,-191,251v-10,12,-19,19,-26,19v-10,0,-15,-1,-15,-3xm83,-195v0,12,2,21,5,24v3,3,7,4,12,4v7,0,15,-6,22,-20v7,-14,11,-27,11,-40r0,-1r1,-1r0,-5r0,-7v0,-7,-2,-13,-5,-16v-3,-3,-5,-5,-8,-5r-4,0v-9,0,-17,9,-24,25v-7,16,-10,30,-10,42xm181,-41r0,-7v0,-22,8,-43,24,-64v7,-9,15,-17,25,-22v10,-5,19,-7,28,-7r7,0v12,0,22,5,29,14v8,9,12,21,12,35v0,11,-2,24,-7,38v-4,12,-9,22,-17,31v-16,19,-34,29,-53,29r-1,0r-4,0v-12,0,-23,-4,-31,-12v-8,-8,-12,-20,-12,-35xm218,-49v0,13,2,21,5,24v3,3,6,5,10,5v9,0,17,-6,23,-19v8,-17,12,-34,12,-50r0,-4v0,-7,-1,-12,-4,-16v-3,-4,-6,-6,-9,-6r-3,0v-9,0,-17,7,-24,23v-7,16,-10,30,-10,43xm329,-41r0,-7v0,-10,2,-22,7,-34v10,-26,25,-43,46,-53v8,-4,16,-6,24,-6r5,0v12,0,22,4,30,12v8,8,13,20,13,35r0,7v0,22,-8,43,-24,64v-6,8,-14,15,-24,21v-10,6,-20,8,-30,8r-4,0v-13,0,-23,-4,-31,-13v-8,-9,-12,-20,-12,-34xm366,-41v0,7,1,13,4,16v3,3,7,5,12,5v7,0,15,-7,23,-21v8,-14,11,-27,11,-40r0,-2r1,-5r0,-6v0,-6,-2,-12,-5,-16v-3,-4,-6,-5,-9,-5r-3,0v-8,0,-13,6,-19,16v-9,17,-14,31,-14,43r-1,7r0,8","w":457},"\u2039":{"d":"25,-105v0,-6,13,-21,39,-45v26,-24,42,-36,46,-36v7,0,10,2,10,7v0,5,-8,18,-26,40v-18,22,-27,34,-27,37v0,3,4,12,13,29v9,17,14,29,14,37v0,8,-5,11,-14,11v-5,0,-12,-8,-22,-22v-22,-33,-33,-52,-33,-58","w":129},"\u203a":{"d":"18,-32v0,-5,8,-18,26,-40v18,-22,27,-33,27,-35v0,-2,-5,-11,-14,-30v-9,-19,-13,-32,-13,-40v0,-6,5,-9,13,-9v6,0,11,5,18,15v25,38,38,59,38,64v0,5,-13,20,-38,45v-25,25,-41,37,-46,37v-8,0,-11,-2,-11,-7","w":129},"\u2044":{"d":"-60,1v0,-2,4,-10,13,-22v112,-160,173,-245,182,-257v5,-6,12,-10,20,-10v8,0,13,2,13,6v0,2,-6,11,-18,28v-88,129,-147,213,-178,252v-5,6,-12,9,-20,9v-8,0,-12,-2,-12,-6","w":88},"\u20ac":{"d":"23,-114v0,-4,2,-8,7,-12v9,-7,14,-11,14,-13v0,-8,-1,-13,-5,-15v-6,-4,-9,-6,-9,-7v0,-4,4,-9,10,-16v1,-1,5,-4,14,-10v9,-6,16,-14,22,-23v14,-21,27,-35,38,-44v21,-17,47,-25,75,-25r7,0v14,0,26,2,34,6v11,5,17,12,17,22r0,7v0,8,-2,13,-7,18v-2,2,-3,3,-5,3v-2,0,-4,-1,-8,-3r-15,-8v-8,-4,-19,-7,-31,-7v-12,0,-24,4,-34,13v-10,9,-15,18,-15,28v0,5,5,10,15,13v1,0,6,1,15,3v9,2,15,4,18,6v3,2,4,5,4,10v0,6,-6,10,-17,12r-7,1r-23,1v-15,1,-24,3,-29,5v-5,2,-7,6,-7,11v0,7,11,11,33,12v22,1,32,5,32,12v0,6,-4,10,-12,14r-6,2r-12,3v-9,3,-15,6,-20,9v-5,3,-7,8,-7,15v0,7,5,15,14,21v9,6,20,9,33,9v6,0,13,-1,20,-2v14,-3,22,-4,23,-4v9,0,12,3,12,8v0,11,-7,20,-21,28v-14,8,-33,12,-57,12v-26,0,-46,-8,-62,-24r-28,-64v-2,-5,-6,-10,-12,-14v-6,-4,-8,-9,-8,-13","w":236},"\u2122":{"d":"35,-259v0,-15,2,-23,6,-25v4,-2,25,-2,61,-2r46,-1v7,0,10,4,10,13r0,10v0,6,-2,9,-6,9v-1,0,-5,-2,-13,-5v-8,-3,-13,-5,-16,-5v-5,0,-9,3,-10,9v-4,21,-5,45,-5,74v0,6,1,11,4,15v3,4,4,8,4,10v0,6,-6,10,-19,10v-2,0,-4,-1,-6,-1r-6,0v-16,0,-24,-3,-24,-8v0,-2,1,-4,5,-9v4,-5,5,-10,6,-13v4,-20,6,-45,6,-74v0,-8,-2,-13,-6,-13v-6,0,-14,3,-24,9v-4,2,-7,3,-8,3v-3,0,-5,-2,-5,-6xm168,-155r0,-4r8,-17v1,-3,2,-15,4,-36v2,-21,3,-33,3,-38v0,-5,-1,-11,-3,-17v-2,-6,-3,-11,-3,-13v0,-5,4,-7,13,-7r6,0v19,0,30,4,35,10v2,3,6,16,13,40v7,24,10,36,11,36v2,0,9,-12,19,-36v10,-24,18,-37,23,-42v5,-5,16,-7,35,-7v8,0,13,1,13,3r0,2r-4,8v-3,9,-5,24,-7,44v-2,17,-2,31,-2,41v0,8,0,13,1,16r2,5v2,5,2,8,2,8v0,7,-7,11,-20,11v-9,0,-15,-2,-19,-5v-4,-3,-5,-6,-5,-8v0,-2,1,-5,2,-10v1,-5,3,-15,5,-30v2,-16,3,-27,3,-34v0,-5,-1,-8,-2,-8v-2,0,-8,13,-20,39r-20,42v-5,8,-11,12,-16,12v-5,0,-12,-15,-21,-46v-9,-31,-15,-47,-17,-47v-2,0,-4,13,-4,37r0,6r0,11r1,24v0,3,-1,6,-5,10v-4,4,-9,6,-14,6v-11,0,-17,-2,-17,-6","w":341},"\u2202":{"d":"22,-64r0,-6v0,-13,2,-27,8,-41v6,-14,13,-26,23,-37v10,-11,21,-19,34,-25v13,-6,25,-10,37,-10v12,0,21,3,30,6v9,3,15,5,18,5v7,0,9,-10,9,-29v0,-19,-5,-33,-14,-45v-10,-12,-22,-18,-37,-18v-6,0,-13,1,-20,3v-12,3,-20,5,-24,5v-4,0,-7,-1,-10,-5v-3,-4,-5,-8,-5,-12v0,-7,6,-12,16,-17v15,-7,31,-10,47,-10r6,0v11,0,22,3,33,8v22,11,38,30,46,58v4,15,6,30,6,45r0,6v0,24,-4,48,-12,73v-16,49,-40,83,-73,101v-15,8,-33,12,-52,12v-19,0,-34,-6,-47,-18v-13,-12,-19,-28,-19,-49xm73,-57v0,10,3,18,7,23v4,5,9,8,15,8v1,0,2,-1,3,-1v12,0,27,-12,45,-36v18,-24,26,-44,26,-61r0,-8v0,-7,-3,-13,-9,-18v-9,-7,-17,-11,-25,-11v-1,0,-2,1,-3,1v-13,0,-26,9,-39,29v-13,20,-20,41,-20,64r0,10","w":232},"\u2206":{"d":"7,-6v0,-7,3,-15,9,-27r75,-142r43,-84v9,-16,20,-23,33,-23r4,0v12,0,20,4,23,14v3,10,10,40,19,89v9,49,16,85,21,109v5,24,7,39,7,46r0,4v0,8,-3,12,-8,14v-5,2,-17,3,-35,3r-9,1r-162,0v-14,0,-20,-1,-20,-4xm58,-37v0,2,7,3,19,3r62,0r3,0r16,-1v17,0,26,-4,26,-11v0,-13,-10,-70,-29,-174v-1,-4,-1,-6,-2,-6v-2,0,-8,11,-18,33v-27,62,-50,108,-68,138v-6,9,-9,16,-9,18","w":270},"\u220f":{"d":"36,26r2,-8r8,-14v2,-5,4,-15,6,-26v9,-65,13,-123,13,-172v0,-13,-1,-23,-3,-33v-2,-10,-4,-20,-7,-29r-2,-7v-2,-8,-4,-12,-4,-13v0,-8,7,-12,21,-13v14,-1,56,-2,128,-2r59,0v23,0,38,1,46,2v8,1,12,5,12,11v0,1,-2,9,-7,21v-5,12,-9,24,-14,34v-5,10,-8,20,-10,28v-2,8,-5,25,-7,53v-2,28,-4,55,-7,82v-2,16,-3,28,-3,37v0,7,1,14,2,18r2,7r5,15v0,8,-3,16,-9,21v-12,11,-22,16,-30,16v-8,0,-15,-2,-22,-5v-7,-3,-11,-8,-11,-14r1,-6r2,-7r2,-8v3,-16,7,-44,10,-84v3,-40,7,-72,9,-98v2,-26,4,-42,4,-48v0,-22,-3,-33,-9,-36v-3,-2,-17,-3,-42,-3v-25,0,-40,1,-43,2v-6,2,-11,9,-14,20v-3,11,-6,31,-8,63r-13,165r0,17r1,15v0,8,-2,15,-8,20v-6,5,-14,7,-24,7v-10,0,-19,-3,-26,-9v-7,-6,-10,-12,-10,-19","w":318},"\u2211":{"d":"18,36v0,-7,18,-32,55,-76v37,-44,55,-67,55,-71v0,-10,-14,-37,-41,-80v-27,-43,-40,-69,-40,-80v0,-8,6,-14,17,-18v4,-1,11,-1,23,-1r42,0r8,0r41,0r8,1r25,-1v17,0,28,2,33,6v9,6,14,14,14,24v0,10,-5,15,-13,15v-2,0,-8,-1,-18,-3v-10,-2,-17,-4,-22,-5v-5,-1,-21,-2,-48,-2v-27,0,-41,2,-41,7v0,5,12,25,34,60v22,35,33,56,33,62v0,6,-16,28,-48,66v-32,38,-47,59,-47,64v0,6,14,9,42,9v40,0,67,-1,81,-4v14,-3,21,-5,22,-5v8,0,12,4,12,12v0,8,-1,15,-5,20v-4,5,-12,10,-23,14v-11,4,-38,7,-81,7r-84,0v-15,0,-24,-3,-28,-6v-4,-3,-6,-8,-6,-15","w":266},"\u2212":{"d":"27,-104r0,-6r0,-2r1,-9r0,-5v0,-6,4,-8,11,-8r182,-1v6,0,9,2,9,7r0,3r-1,2r0,2r0,9v0,9,-4,13,-13,13r-183,0v-4,0,-6,-2,-6,-5","w":245},"\u2219":{"d":"38,-111r0,-7v0,-10,3,-19,9,-25v6,-6,14,-9,23,-9r7,0v7,0,14,2,19,6v5,4,8,10,8,19r0,7r0,4v0,7,-3,14,-9,20v-6,6,-12,9,-19,9r-3,1r-7,0v-9,0,-16,-2,-21,-6v-5,-4,-7,-11,-7,-19","w":126},"\u221a":{"d":"32,-153v0,-4,4,-7,10,-11v18,-10,33,-15,45,-15v8,0,16,6,21,18v1,3,8,23,19,60v11,37,18,54,20,54v2,0,18,-44,45,-132v27,-88,43,-139,49,-153v6,-14,14,-20,23,-20v9,0,14,3,14,8v0,1,-5,14,-14,38v-9,24,-28,82,-56,173r-43,137v-5,15,-12,23,-19,23v-9,0,-16,-4,-21,-11v-5,-7,-13,-31,-26,-72v-13,-41,-22,-67,-26,-77v-3,-7,-8,-10,-15,-10r-5,1v-4,1,-7,2,-10,2v-7,0,-11,-5,-11,-13","w":255},"\u221e":{"d":"30,-117r0,-4v0,-19,6,-35,19,-48v13,-13,30,-19,50,-19v19,0,37,8,55,24v9,9,15,13,16,13v1,0,6,-4,14,-12v19,-18,38,-27,57,-27r0,0r4,0v18,0,33,6,45,18v12,12,18,27,18,45r0,4v0,17,-6,33,-18,46v-6,7,-13,12,-22,16v-9,4,-19,6,-31,6v-21,0,-41,-10,-60,-31v-5,-6,-9,-8,-9,-8v-2,0,-7,3,-17,12v-10,9,-19,16,-28,20v-9,4,-20,7,-35,7v-15,0,-28,-6,-40,-18v-12,-12,-18,-26,-18,-44xm56,-119v0,10,3,17,11,23v8,6,17,9,26,9r6,0v8,0,19,-4,32,-15v13,-11,19,-18,19,-21v0,-6,-9,-15,-28,-27v-9,-5,-18,-8,-28,-8v-10,0,-18,4,-26,12v-8,8,-12,17,-12,27xm184,-122v0,8,8,18,25,31v8,6,16,10,26,10v10,0,19,-5,26,-13v7,-8,11,-19,11,-31r0,-1v0,-11,-4,-20,-11,-27v-7,-7,-14,-10,-22,-10r-5,0v-8,0,-15,3,-23,9v-18,14,-27,24,-27,32","w":324},"\u222b":{"d":"3,59v0,-7,2,-14,6,-20v4,-6,9,-9,14,-9v2,0,5,1,10,3v5,2,9,3,11,3v11,0,18,-11,22,-34v2,-14,5,-59,9,-133v4,-74,10,-122,17,-145v7,-23,15,-40,27,-50v12,-10,24,-16,38,-16r5,0v10,0,18,2,23,5v5,3,7,6,7,8v0,7,-2,14,-6,20v-4,6,-8,8,-14,8v-1,0,-4,0,-9,-2v-5,-2,-9,-3,-12,-3v-3,0,-6,2,-10,6v-4,4,-7,12,-9,24v-2,12,-6,56,-10,133v-4,77,-10,127,-17,150v-13,44,-36,66,-67,66r-5,0v-10,0,-17,-2,-22,-6v-5,-4,-8,-6,-8,-8","w":174},"\u2248":{"d":"24,-68v0,-3,3,-7,7,-14v4,-7,11,-14,21,-20v10,-6,21,-9,33,-9v14,0,30,4,47,13v20,10,35,15,43,15v8,0,16,-3,23,-9v13,-10,19,-15,20,-15v2,0,5,2,9,6v3,4,5,8,5,12v0,8,-6,17,-19,27v-12,10,-25,14,-39,14r-5,0v-9,0,-24,-5,-44,-14v-20,-9,-33,-14,-42,-14v-9,0,-17,3,-25,9r-20,16v-2,0,-5,-3,-8,-7v-3,-4,-6,-7,-6,-10xm33,-140v-3,-4,-5,-8,-5,-12v0,-9,8,-19,23,-30v11,-8,23,-12,36,-12r5,0v10,0,25,5,44,14v19,9,33,14,41,14v8,0,17,-4,28,-12v11,-8,17,-12,18,-12v1,0,4,2,7,6v3,4,5,8,5,13v0,8,-6,16,-19,26v-13,10,-25,15,-37,15r-5,0v-11,0,-27,-5,-46,-14v-19,-9,-33,-14,-42,-14v-9,0,-19,4,-29,12v-10,8,-15,12,-17,12v-2,0,-4,-2,-7,-6","w":247},"\u2260":{"d":"33,-78v0,-6,1,-8,5,-10v4,-2,15,-3,32,-3v17,0,28,-2,32,-6v2,-3,7,-10,12,-20v5,-10,7,-17,7,-19v0,-2,-13,-3,-39,-3v-26,0,-40,0,-42,-1v-4,-1,-6,-7,-6,-16v0,-9,2,-15,7,-16r47,0v0,0,48,-2,53,-6v2,-2,7,-10,14,-23v7,-13,12,-20,16,-20v15,0,22,2,22,8v0,3,-2,8,-4,14r-2,5v-3,5,-4,8,-4,9v0,5,2,8,6,10v4,2,13,3,25,3v8,0,12,7,12,21v0,6,-4,9,-11,11v-4,1,-13,1,-29,1v-16,0,-26,2,-29,5v-3,3,-7,10,-12,21v-5,11,-8,17,-8,19v0,2,14,3,41,3v27,0,42,1,44,3v2,2,4,6,4,15v0,9,-3,14,-7,15v-2,1,-18,1,-48,1v-30,0,-47,1,-51,4v-4,3,-9,10,-16,23v-7,13,-12,21,-15,21r-5,0v-11,0,-17,-4,-17,-11v0,-3,1,-7,4,-14v3,-7,5,-12,5,-14v0,-6,-10,-9,-30,-9v-9,0,-13,-7,-13,-21","w":245},"\u2264":{"d":"35,-7r0,-7r0,-2r0,-9v0,-4,1,-7,2,-8v1,-1,8,-2,20,-2r9,0r2,0r66,1v62,0,93,3,93,7r0,9r0,2v0,8,-1,13,-2,14v-1,1,-7,2,-19,2r-13,0r-32,0r-33,0v-62,0,-93,-3,-93,-7xm41,-147v0,-14,2,-22,6,-25v1,-1,30,-13,86,-40v56,-27,85,-40,87,-40v3,0,5,5,5,18v0,8,-5,16,-16,22v-5,3,-28,13,-66,31v-38,18,-57,27,-57,28v0,1,9,5,26,13r41,19v2,1,2,2,7,4r8,4v23,10,37,18,44,22v7,4,11,12,11,22v0,10,-2,15,-6,15v-1,0,-26,-11,-75,-34v-49,-23,-80,-39,-94,-47v-5,-3,-7,-7,-7,-12","w":248},"\u2265":{"d":"35,-6r0,-7r1,-3r0,-9v0,-5,1,-7,4,-8v3,-1,34,-1,95,-1r70,-1v15,0,22,2,22,7r0,7r0,2r0,10v0,5,-1,7,-4,8v-3,1,-35,1,-96,1r-16,0r-23,0r-20,0r-9,1v-16,0,-24,-2,-24,-7xm42,-73v0,-8,6,-15,17,-21v1,-1,11,-5,29,-14r8,-4v4,-2,4,-1,7,-3r8,-4r41,-19v20,-9,30,-14,30,-15v0,-1,-20,-11,-60,-30r-63,-30v-9,-5,-14,-13,-14,-24v0,-11,3,-16,7,-16r70,33r7,4r29,14r37,18v21,10,32,17,32,21r0,8v0,11,-2,17,-7,20r-141,67v-18,9,-28,14,-29,14r-3,0v-3,0,-5,-6,-5,-19","w":248},"\u25ca":{"d":"40,-142v0,-2,3,-9,11,-21v8,-12,20,-33,38,-64v18,-31,29,-49,35,-58v6,-9,14,-13,23,-13r4,0v8,0,15,5,20,15v12,24,24,53,38,87v14,34,20,52,20,53r-9,16v-49,82,-74,124,-75,126v-6,9,-14,13,-23,13r-7,0v-7,0,-12,-6,-18,-17v-6,-11,-17,-37,-33,-76v-16,-39,-24,-59,-24,-61xm79,-141v0,3,4,13,11,30v7,17,15,41,26,70v4,10,7,15,9,15v1,0,5,-6,10,-16r17,-32r39,-71r-10,-25r-9,-25r-11,-27r-3,-7r-3,-8r-1,-2r-1,-5v-4,-10,-7,-15,-9,-15r-33,57v0,0,-32,58,-32,59r0,2","w":248}}}); diff --git a/src/blankwin.js b/src/blankwin.js new file mode 100644 index 0000000..efb56f7 --- /dev/null +++ b/src/blankwin.js @@ -0,0 +1,19 @@ + +this.blankwin = function(){ + var hostname = window.location.hostname; + hostname = hostname.replace("www","").toLowerCase(); + var a = document.getElementsByTagName("a"); + this.check = function(obj){ + var href = obj.href.toLowerCase(); + return ((href.indexOf("http://")!=-1 || href.indexOf("https://")!=-1) && href.indexOf(hostname)==-1) ? true : false; + }; + this.set = function(obj){ + obj.target = "_blank"; + obj.className = "external"; + }; + for (var i=0; i 0) word = ' ' + word; + } + else if (position < wordCount - 1) word += ' '; + return word; + }, + + textShadow: cached(function(value) { + if (value == 'none') return null; + var shadows = [], currentShadow = {}, result, offCount = 0; + var re = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig; + while (result = re.exec(value)) { + if (result[0] == ',') { + shadows.push(currentShadow); + currentShadow = {}; + offCount = 0; + } + else if (result[1]) { + currentShadow.color = result[1]; + } + else { + currentShadow[[ 'offX', 'offY', 'blur' ][offCount++]] = result[2]; + } + } + shadows.push(currentShadow); + return shadows; + }), + + textTransform: (function() { + var map = { + uppercase: function(s) { + return s.toUpperCase(); + }, + lowercase: function(s) { + return s.toLowerCase(); + }, + capitalize: function(s) { + return s.replace(/(?:^|\s)./g, function($0) { + return $0.toUpperCase(); + }); + } + }; + return function(text, style) { + var transform = map[style.get('textTransform')]; + return transform ? transform(text) : text; + }; + })(), + + whiteSpace: (function() { + var ignore = { + inline: 1, + 'inline-block': 1, + 'run-in': 1 + }; + var wsStart = /^\s+/, wsEnd = /\s+$/; + return function(text, style, node, previousElement, simple) { + if (simple) return text.replace(wsStart, '').replace(wsEnd, ''); // @fixme too simple + if (previousElement) { + if (previousElement.nodeName.toLowerCase() == 'br') { + text = text.replace(wsStart, ''); + } + } + if (ignore[style.get('display')]) return text; + if (!node.previousSibling) text = text.replace(wsStart, ''); + if (!node.nextSibling) text = text.replace(wsEnd, ''); + return text; + }; + })() + + }; + + CSS.ready = (function() { + + // don't do anything in Safari 2 (it doesn't recognize any media type) + var complete = !CSS.recognizesMedia('all'), hasLayout = false; + + var queue = [], perform = function() { + complete = true; + for (var fn; fn = queue.shift(); fn()); + }; + + var links = elementsByTagName('link'), styles = elementsByTagName('style'); + + var checkTypes = { + '': 1, + 'text/css': 1 + }; + + function isContainerReady(el) { + if (!checkTypes[el.type.toLowerCase()]) return true; + return el.disabled || isSheetReady(el.sheet, el.media || 'screen'); + } + + function isSheetReady(sheet, media) { + // in Opera sheet.disabled is true when it's still loading, + // even though link.disabled is false. they stay in sync if + // set manually. + if (!CSS.recognizesMedia(media || 'all')) return true; + if (!sheet || sheet.disabled) return false; + try { + var rules = sheet.cssRules, rule; + if (rules) { + // needed for Safari 3 and Chrome 1.0. + // in standards-conforming browsers cssRules contains @-rules. + // Chrome 1.0 weirdness: rules[] + // returns the last rule, so a for loop is the only option. + search: for (var i = 0, l = rules.length; rule = rules[i], i < l; ++i) { + switch (rule.type) { + case 2: // @charset + break; + case 3: // @import + if (!isSheetReady(rule.styleSheet, rule.media.mediaText)) return false; + break; + default: + // only @charset can precede @import + break search; + } + } + } + } + catch (e) {} // probably a style sheet from another domain + return true; + } + + function allStylesLoaded() { + // Internet Explorer's style sheet model, there's no need to do anything + if (document.createStyleSheet) return true; + // standards-compliant browsers + var el, i; + for (i = 0; el = links[i]; ++i) { + if (el.rel.toLowerCase() == 'stylesheet' && !isContainerReady(el)) return false; + } + for (i = 0; el = styles[i]; ++i) { + if (!isContainerReady(el)) return false; + } + return true; + } + + DOM.ready(function() { + // getComputedStyle returns null in Gecko if used in an iframe with display: none + if (!hasLayout) hasLayout = CSS.getStyle(document.body).isUsable(); + if (complete || (hasLayout && allStylesLoaded())) perform(); + else setTimeout(arguments.callee, 10); + }); + + return function(listener) { + if (complete) listener(); + else queue.push(listener); + }; + + })(); + + function Font(data) { + + var face = this.face = data.face, ligatureCache = [], wordSeparators = { + '\u0020': 1, + '\u00a0': 1, + '\u3000': 1 + }; + + this.glyphs = (function(glyphs) { + var key, fallbacks = { + '\u2011': '\u002d', + '\u00ad': '\u2011' + }; + for (key in fallbacks) { + if (!hasOwnProperty(fallbacks, key)) continue; + if (!glyphs[key]) glyphs[key] = glyphs[fallbacks[key]]; + } + return glyphs; + })(data.glyphs); + + this.w = data.w; + this.baseSize = parseInt(face['units-per-em'], 10); + + this.family = face['font-family'].toLowerCase(); + this.weight = face['font-weight']; + this.style = face['font-style'] || 'normal'; + + this.viewBox = (function () { + var parts = face.bbox.split(/\s+/); + var box = { + minX: parseInt(parts[0], 10), + minY: parseInt(parts[1], 10), + maxX: parseInt(parts[2], 10), + maxY: parseInt(parts[3], 10) + }; + box.width = box.maxX - box.minX; + box.height = box.maxY - box.minY; + box.toString = function() { + return [ this.minX, this.minY, this.width, this.height ].join(' '); + }; + return box; + })(); + + this.ascent = -parseInt(face.ascent, 10); + this.descent = -parseInt(face.descent, 10); + + this.height = -this.ascent + this.descent; + + this.spacing = function(chars, letterSpacing, wordSpacing) { + var glyphs = this.glyphs, glyph, + kerning, k, + jumps = [], + width = 0, w, + i = -1, j = -1, chr; + while (chr = chars[++i]) { + glyph = glyphs[chr] || this.missingGlyph; + if (!glyph) continue; + if (kerning) { + width -= k = kerning[chr] || 0; + jumps[j] -= k; + } + w = glyph.w; + if (isNaN(w)) w = +this.w; // may have been a String in old fonts + if (w > 0) { + w += letterSpacing; + if (wordSeparators[chr]) w += wordSpacing; + } + width += jumps[++j] = ~~w; // get rid of decimals + kerning = glyph.k; + } + jumps.total = width; + return jumps; + }; + + this.applyLigatures = function(text, ligatures) { + // find cached ligature configuration for this font + for (var i=0, ligatureConfig; i b; + }).join('|'); + + ligatureCache.push(ligatureConfig = { + ligatures: ligatures, + // create regular expression for matching desired ligatures that are present in the font + regexp: regexpText.length > 0 + ? regexpCache[regexpText] || (regexpCache[regexpText] = new RegExp(regexpText, 'g')) + : null + }); + } + + // return applied ligatures or original text if none exist for given configuration + return ligatureConfig.regexp + ? text.replace(ligatureConfig.regexp, function(match) { + return ligatures[match] || match; + }) + : text; + }; + } + + function FontFamily() { + + var styles = {}, mapping = { + oblique: 'italic', + italic: 'oblique' + }; + + this.add = function(font) { + (styles[font.style] || (styles[font.style] = {}))[font.weight] = font; + }; + + this.get = function(style, weight) { + var weights = styles[style] || styles[mapping[style]] + || styles.normal || styles.italic || styles.oblique; + if (!weights) return null; + // we don't have to worry about "bolder" and "lighter" + // because IE's currentStyle returns a numeric value for it, + // and other browsers use the computed value anyway + weight = { + normal: 400, + bold: 700 + }[weight] || parseInt(weight, 10); + if (weights[weight]) return weights[weight]; + // http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight + // Gecko uses x99/x01 for lighter/bolder + var up = { + 1: 1, + 99: 0 + }[weight % 100], alts = [], min, max; + if (up === undefined) up = weight > 400; + if (weight == 500) weight = 400; + for (var alt in weights) { + if (!hasOwnProperty(weights, alt)) continue; + alt = parseInt(alt, 10); + if (!min || alt < min) min = alt; + if (!max || alt > max) max = alt; + alts.push(alt); + } + if (weight < min) weight = min; + if (weight > max) weight = max; + alts.sort(function(a, b) { + return (up + ? (a >= weight && b >= weight) ? a < b : a > b + : (a <= weight && b <= weight) ? a > b : a < b) ? -1 : 1; + }); + return weights[alts[0]]; + }; + + } + + function HoverHandler() { + + function contains(node, anotherNode) { + try { + if (node.contains) return node.contains(anotherNode); + return node.compareDocumentPosition(anotherNode) & 16; + } + catch(e) {} // probably a XUL element such as a scrollbar + return false; + } + + // mouseover/mouseout (standards) mode + function onOverOut(e) { + var related = e.relatedTarget; + // there might be no relatedTarget if the element is right next + // to the window frame + if (related && contains(this, related)) return; + trigger(this, e.type == 'mouseover'); + } + + // mouseenter/mouseleave (probably ie) mode + function onEnterLeave(e) { + if (!e) e = window.event; + // ie model, we don't have access to "this", but + // mouseenter/leave doesn't bubble so it's fine. + trigger(e.target || e.srcElement, e.type == 'mouseenter'); + } + + function trigger(el, hoverState) { + // A timeout is needed so that the event can actually "happen" + // before replace is triggered. This ensures that styles are up + // to date. + setTimeout(function() { + var options = sharedStorage.get(el).options; + if (hoverState) { + options = merge(options, options.hover); + options._mediatorMode = 1; + } + api.replace(el, options, true); + }, 10); + } + + this.attach = function(el) { + if (el.onmouseenter === undefined) { + addEvent(el, 'mouseover', onOverOut); + addEvent(el, 'mouseout', onOverOut); + } + else { + addEvent(el, 'mouseenter', onEnterLeave); + addEvent(el, 'mouseleave', onEnterLeave); + } + }; + + this.detach = function(el) { + if (el.onmouseenter === undefined) { + removeEvent(el, 'mouseover', onOverOut); + removeEvent(el, 'mouseout', onOverOut); + } + else { + removeEvent(el, 'mouseenter', onEnterLeave); + removeEvent(el, 'mouseleave', onEnterLeave); + } + }; + + } + + function ReplaceHistory() { + + var list = [], map = {}; + + function filter(keys) { + var values = [], key; + for (var i = 0; key = keys[i]; ++i) values[i] = list[map[key]]; + return values; + } + + this.add = function(key, args) { + map[key] = list.push(args) - 1; + }; + + this.repeat = function() { + var snapshot = arguments.length ? filter(arguments) : list, args; + for (var i = 0; args = snapshot[i++];) api.replace(args[0], args[1], true); + }; + + } + + function Storage() { + + var map = {}, at = 0; + + function identify(el) { + return el.cufid || (el.cufid = ++at); + } + + this.get = function(el) { + var id = identify(el); + return map[id] || (map[id] = {}); + }; + + } + + function Style(style) { + + var custom = {}, sizes = {}; + + this.extend = function(styles) { + for (var property in styles) { + if (hasOwnProperty(styles, property)) custom[property] = styles[property]; + } + return this; + }; + + this.get = function(property) { + return custom[property] != undefined ? custom[property] : style[property]; + }; + + this.getSize = function(property, base) { + return sizes[property] || (sizes[property] = new CSS.Size(this.get(property), base)); + }; + + this.isUsable = function() { + return !!style; + }; + + } + + function addEvent(el, type, listener) { + if (el.addEventListener) { + el.addEventListener(type, listener, false); + } + else if (el.attachEvent) { + // we don't really need "this" right now, saves code + el.attachEvent('on' + type, listener); + } + } + + function attach(el, options) { + if (options._mediatorMode) return el; + var storage = sharedStorage.get(el); + var oldOptions = storage.options; + if (oldOptions) { + if (oldOptions === options) return el; + if (oldOptions.hover) hoverHandler.detach(el); + } + if (options.hover && options.hoverables[el.nodeName.toLowerCase()]) { + hoverHandler.attach(el); + } + storage.options = options; + return el; + } + + function cached(fun) { + var cache = {}; + return function(key) { + if (!hasOwnProperty(cache, key)) cache[key] = fun.apply(null, arguments); + return cache[key]; + }; + } + + function getFont(el, style) { + var families = CSS.quotedList(style.get('fontFamily').toLowerCase()), family; + for (var i = 0; family = families[i]; ++i) { + if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight')); + } + return null; + } + + function elementsByTagName(query) { + return document.getElementsByTagName(query); + } + + function hasOwnProperty(obj, property) { + return obj.hasOwnProperty(property); + } + + function merge() { + var merged = {}, arg, key; + for (var i = 0, l = arguments.length; arg = arguments[i], i < l; ++i) { + for (key in arg) { + if (hasOwnProperty(arg, key)) merged[key] = arg[key]; + } + } + return merged; + } + + function process(font, text, style, options, node, el) { + var fragment = document.createDocumentFragment(), processed; + if (text === '') return fragment; + var separate = options.separate; + var parts = text.split(separators[separate]), needsAligning = (separate == 'words'); + if (needsAligning && HAS_BROKEN_REGEXP) { + // @todo figure out a better way to do this + if (/^\s/.test(text)) parts.unshift(''); + if (/\s$/.test(text)) parts.push(''); + } + for (var i = 0, l = parts.length; i < l; ++i) { + processed = engines[options.engine](font, + needsAligning ? CSS.textAlign(parts[i], style, i, l) : parts[i], + style, options, node, el, i < l - 1); + if (processed) fragment.appendChild(processed); + } + return fragment; + } + + function removeEvent(el, type, listener) { + if (el.removeEventListener) { + el.removeEventListener(type, listener, false); + } + else if (el.detachEvent) { + el.detachEvent('on' + type, listener); + } + } + + function replaceElement(el, options) { + var name = el.nodeName.toLowerCase(); + if (options.ignore[name]) return; + if (options.ignoreClass && options.ignoreClass.test(el.className)) return; + if (options.onBeforeReplace) options.onBeforeReplace(el, options); + var replace = !options.textless[name], simple = (options.trim === 'simple'); + var style = CSS.getStyle(attach(el, options)).extend(options); + // may cause issues if the element contains other elements + // with larger fontSize, however such cases are rare and can + // be fixed by using a more specific selector + if (parseFloat(style.get('fontSize')) === 0) return; + var font = getFont(el, style), node, type, next, anchor, text, lastElement; + var isShy = options.softHyphens, anyShy = false, pos, shy, reShy = /\u00ad/g; + var modifyText = options.modifyText; + if (!font) return; + for (node = el.firstChild; node; node = next) { + type = node.nodeType; + next = node.nextSibling; + if (replace && type == 3) { + if (isShy && el.nodeName.toLowerCase() != TAG_SHY) { + pos = node.data.indexOf('\u00ad'); + if (pos >= 0) { + node.splitText(pos); + next = node.nextSibling; + next.deleteData(0, 1); + shy = document.createElement(TAG_SHY); + shy.appendChild(document.createTextNode('\u00ad')); + el.insertBefore(shy, next); + next = shy; + anyShy = true; + } + } + // Node.normalize() is broken in IE 6, 7, 8 + if (anchor) { + anchor.appendData(node.data); + el.removeChild(node); + } + else anchor = node; + if (next) continue; + } + if (anchor) { + text = anchor.data; + if (!isShy) text = text.replace(reShy, ''); + text = CSS.whiteSpace(text, style, anchor, lastElement, simple); + // modify text only on the first replace + if (modifyText) text = modifyText(text, anchor, el, options); + el.replaceChild(process(font, text, style, options, node, el), anchor); + anchor = null; + } + if (type == 1) { + if (node.firstChild) { + if (node.nodeName.toLowerCase() == 'cufon') { + engines[options.engine](font, null, style, options, node, el); + } + else arguments.callee(node, options); + } + lastElement = node; + } + } + if (isShy && anyShy) { + updateShy(el); + if (!trackingShy) addEvent(window, 'resize', updateShyOnResize); + trackingShy = true; + } + if (options.onAfterReplace) options.onAfterReplace(el, options); + } + + function updateShy(context) { + var shys, shy, parent, glue, newGlue, next, prev, i; + shys = context.getElementsByTagName(TAG_SHY); + // unfortunately there doesn't seem to be any easy + // way to avoid having to loop through the shys twice. + for (i = 0; shy = shys[i]; ++i) { + shy.className = C_SHY_DISABLED; + glue = parent = shy.parentNode; + if (glue.nodeName.toLowerCase() != TAG_GLUE) { + newGlue = document.createElement(TAG_GLUE); + newGlue.appendChild(shy.previousSibling); + parent.insertBefore(newGlue, shy); + newGlue.appendChild(shy); + } + else { + // get rid of double glue (edge case fix) + glue = glue.parentNode; + if (glue.nodeName.toLowerCase() == TAG_GLUE) { + parent = glue.parentNode; + while (glue.firstChild) { + parent.insertBefore(glue.firstChild, glue); + } + parent.removeChild(glue); + } + } + } + for (i = 0; shy = shys[i]; ++i) { + shy.className = ''; + glue = shy.parentNode; + parent = glue.parentNode; + next = glue.nextSibling || parent.nextSibling; + // make sure we're comparing same types + prev = (next.nodeName.toLowerCase() == TAG_GLUE) ? glue : shy.previousSibling; + if (prev.offsetTop >= next.offsetTop) { + shy.className = C_SHY_DISABLED; + if (prev.offsetTop < next.offsetTop) { + // we have an annoying edge case, double the glue + newGlue = document.createElement(TAG_GLUE); + parent.insertBefore(newGlue, glue); + newGlue.appendChild(glue); + newGlue.appendChild(next); + } + } + } + } + + function updateShyOnResize() { + if (ignoreResize) return; // needed for IE + CSS.addClass(DOM.root(), C_VIEWPORT_RESIZING); + clearTimeout(shyTimer); + shyTimer = setTimeout(function() { + ignoreResize = true; + CSS.removeClass(DOM.root(), C_VIEWPORT_RESIZING); + updateShy(document); + ignoreResize = false; + }, 100); + } + + var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0; + var TAG_GLUE = 'cufonglue'; + var TAG_SHY = 'cufonshy'; + var C_SHY_DISABLED = 'cufon-shy-disabled'; + var C_VIEWPORT_RESIZING = 'cufon-viewport-resizing'; + + var regexpCache = {}; + var sharedStorage = new Storage(); + var hoverHandler = new HoverHandler(); + var replaceHistory = new ReplaceHistory(); + var initialized = false; + var trackingShy = false; + var shyTimer; + var ignoreResize = false; + + var engines = {}, fonts = {}, defaultOptions = { + autoDetect: false, + engine: null, + forceHitArea: false, + hover: false, + hoverables: { + a: true + }, + ignore: { + applet: 1, + canvas: 1, + col: 1, + colgroup: 1, + head: 1, + iframe: 1, + map: 1, + noscript: 1, + optgroup: 1, + option: 1, + script: 1, + select: 1, + style: 1, + textarea: 1, + title: 1, + pre: 1 + }, + ignoreClass: null, + modifyText: null, + onAfterReplace: null, + onBeforeReplace: null, + printable: true, + selector: ( + window.Sizzle + || (window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues + || (window.dojo && dojo.query) + || (window.glow && glow.dom && glow.dom.get) + || (window.Ext && Ext.query) + || (window.YAHOO && YAHOO.util && YAHOO.util.Selector && YAHOO.util.Selector.query) + || (window.$$ && function(query) { return $$(query); }) + || (window.$ && function(query) { return $(query); }) + || (document.querySelectorAll && function(query) { return document.querySelectorAll(query); }) + || elementsByTagName + ), + separate: 'words', // 'none' and 'characters' are also accepted + softHyphens: true, + textless: { + dl: 1, + html: 1, + ol: 1, + table: 1, + tbody: 1, + thead: 1, + tfoot: 1, + tr: 1, + ul: 1 + }, + textShadow: 'none', + trim: 'advanced', + ligatures: { + 'ff': '\ufb00', + 'fi': '\ufb01', + 'fl': '\ufb02', + 'ffi': '\ufb03', + 'ffl': '\ufb04', + '\u017ft': '\ufb05', + 'st': '\ufb06' + } + }; + + var separators = { + // The first pattern may cause unicode characters above + // code point 255 to be removed in Safari 3.0. Luckily enough + // Safari 3.0 does not include non-breaking spaces in \s, so + // we can just use a simple alternative pattern. + words: /\s/.test('\u00a0') ? /[^\S\u00a0]+/ : /\s+/, + characters: '', + none: /^/ + }; + + api.now = function() { + DOM.ready(); + return api; + }; + + api.refresh = function() { + replaceHistory.repeat.apply(replaceHistory, arguments); + return api; + }; + + api.registerEngine = function(id, engine) { + if (!engine) return api; + engines[id] = engine; + return api.set('engine', id); + }; + + api.registerFont = function(data) { + if (!data) return api; + var font = new Font(data), family = font.family; + if (!fonts[family]) fonts[family] = new FontFamily(); + fonts[family].add(font); + return api.set('fontFamily', '"' + family + '"'); + }; + + api.replace = function(elements, options, ignoreHistory) { + options = merge(defaultOptions, options); + if (!options.engine) return api; // there's no browser support so we'll just stop here + if (!initialized) { + CSS.addClass(DOM.root(), 'cufon-active cufon-loading'); + CSS.ready(function() { + // fires before any replace() calls, but it doesn't really matter + CSS.addClass(CSS.removeClass(DOM.root(), 'cufon-loading'), 'cufon-ready'); + }); + initialized = true; + } + if (options.hover) options.forceHitArea = true; + if (options.autoDetect) delete options.fontFamily; + if (typeof options.ignoreClass == 'string') { + options.ignoreClass = new RegExp('(?:^|\\s)(?:' + options.ignoreClass.replace(/\s+/g, '|') + ')(?:\\s|$)'); + } + if (typeof options.textShadow == 'string') { + options.textShadow = CSS.textShadow(options.textShadow); + } + if (typeof options.color == 'string' && /^-/.test(options.color)) { + options.textGradient = CSS.gradient(options.color); + } + else delete options.textGradient; + if (typeof elements == 'string') { + if (!ignoreHistory) replaceHistory.add(elements, arguments); + elements = [ elements ]; + } + else if (elements.nodeType) elements = [ elements ]; + CSS.ready(function() { + for (var i = 0, l = elements.length; i < l; ++i) { + var el = elements[i]; + if (typeof el == 'string') api.replace(options.selector(el), options, true); + else replaceElement(el, options); + } + }); + return api; + }; + + api.set = function(option, value) { + defaultOptions[option] = value; + return api; + }; + + return api; + +})(); + +Cufon.registerEngine('vml', (function() { + + var ns = document.namespaces; + if (!ns) return; + ns.add('cvml', 'urn:schemas-microsoft-com:vml'); + ns = null; + + var check = document.createElement('cvml:shape'); + check.style.behavior = 'url(#default#VML)'; + if (!check.coordsize) return; // VML isn't supported + check = null; + + var HAS_BROKEN_LINEHEIGHT = (document.documentMode || 0) < 8; + + var styleSheet = document.createElement('style'); + styleSheet.type = 'text/css'; + styleSheet.styleSheet.cssText = ( + 'cufoncanvas{text-indent:0;}' + + '@media screen{' + + 'cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}' + + 'cufoncanvas{position:absolute;text-align:left;}' + + 'cufon{display:inline-block;position:relative;vertical-align:' + + (HAS_BROKEN_LINEHEIGHT + ? 'middle' + : 'text-bottom') + + ';}' + + 'cufon cufontext{position:absolute;left:-10000in;font-size:1px;text-align:left;}' + + 'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' + + 'cufonglue{white-space:nowrap;display:inline-block;}' + + '.cufon-viewport-resizing cufonglue{white-space:normal;}' + + 'a cufon{cursor:pointer}' + // ignore !important here + '}' + + '@media print{' + + 'cufon cufoncanvas{display:none;}' + + '}' + ).replace(/;/g, '!important;'); + document.getElementsByTagName('head')[0].appendChild(styleSheet); + + function getFontSizeInPixels(el, value) { + return getSizeInPixels(el, /(?:em|ex|%)$|^[a-z-]+$/i.test(value) ? '1em' : value); + } + + // Original by Dead Edwards. + // Combined with getFontSizeInPixels it also works with relative units. + function getSizeInPixels(el, value) { + if (!isNaN(value) || /px$/i.test(value)) return parseFloat(value); + var style = el.style.left, runtimeStyle = el.runtimeStyle.left; + el.runtimeStyle.left = el.currentStyle.left; + el.style.left = value.replace('%', 'em'); + var result = el.style.pixelLeft; + el.style.left = style; + el.runtimeStyle.left = runtimeStyle; + return result; + } + + function getSpacingValue(el, style, size, property) { + var key = 'computed' + property, value = style[key]; + if (isNaN(value)) { + value = style.get(property); + style[key] = value = (value == 'normal') ? 0 : ~~size.convertFrom(getSizeInPixels(el, value)); + } + return value; + } + + var fills = {}; + + function gradientFill(gradient) { + var id = gradient.id; + if (!fills[id]) { + var stops = gradient.stops, fill = document.createElement('cvml:fill'), colors = []; + fill.type = 'gradient'; + fill.angle = 180; + fill.focus = '0'; + fill.method = 'none'; + fill.color = stops[0][1]; + for (var j = 1, k = stops.length - 1; j < k; ++j) { + colors.push(stops[j][0] * 100 + '% ' + stops[j][1]); + } + fill.colors = colors.join(','); + fill.color2 = stops[k][1]; + fills[id] = fill; + } + return fills[id]; + } + + return function(font, text, style, options, node, el, hasNext) { + + var redraw = (text === null); + + if (redraw) text = node.alt; + + var viewBox = font.viewBox; + + var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize)); + + var wrapper, canvas; + + if (redraw) { + wrapper = node; + canvas = node.firstChild; + } + else { + wrapper = document.createElement('cufon'); + wrapper.className = 'cufon cufon-vml'; + wrapper.alt = text; + + canvas = document.createElement('cufoncanvas'); + wrapper.appendChild(canvas); + + if (options.printable) { + var print = document.createElement('cufontext'); + print.appendChild(document.createTextNode(text)); + wrapper.appendChild(print); + } + + // ie6, for some reason, has trouble rendering the last VML element in the document. + // we can work around this by injecting a dummy element where needed. + // @todo find a better solution + if (!hasNext) wrapper.appendChild(document.createElement('cvml:shape')); + } + + var wStyle = wrapper.style; + var cStyle = canvas.style; + + var height = size.convert(viewBox.height), roundedHeight = Math.ceil(height); + var roundingFactor = roundedHeight / height; + var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch')); + var minX = viewBox.minX, minY = viewBox.minY; + + cStyle.height = roundedHeight; + cStyle.top = Math.round(size.convert(minY - font.ascent)); + cStyle.left = Math.round(size.convert(minX)); + + wStyle.height = size.convert(font.height) + 'px'; + + var color = style.get('color'); + var chars = Cufon.CSS.textTransform(options.ligatures ? font.applyLigatures(text, options.ligatures) : text, style).split(''); + + var jumps = font.spacing(chars, + getSpacingValue(el, style, size, 'letterSpacing'), + getSpacingValue(el, style, size, 'wordSpacing') + ); + + if (!jumps.length) return null; + + var width = jumps.total; + var fullWidth = -minX + width + (viewBox.width - jumps[jumps.length - 1]); + + var shapeWidth = size.convert(fullWidth * stretchFactor), roundedShapeWidth = Math.round(shapeWidth); + + var coordSize = fullWidth + ',' + viewBox.height, coordOrigin; + var stretch = 'r' + coordSize + 'ns'; + + var fill = options.textGradient && gradientFill(options.textGradient); + + var glyphs = font.glyphs, offsetX = 0; + var shadows = options.textShadow; + var i = -1, j = 0, chr; + + while (chr = chars[++i]) { + + var glyph = glyphs[chars[i]] || font.missingGlyph, shape; + if (!glyph) continue; + + if (redraw) { + // some glyphs may be missing so we can't use i + shape = canvas.childNodes[j]; + while (shape.firstChild) shape.removeChild(shape.firstChild); // shadow, fill + } + else { + shape = document.createElement('cvml:shape'); + canvas.appendChild(shape); + } + + shape.stroked = 'f'; + shape.coordsize = coordSize; + shape.coordorigin = coordOrigin = (minX - offsetX) + ',' + minY; + shape.path = (glyph.d ? 'm' + glyph.d + 'xe' : '') + 'm' + coordOrigin + stretch; + shape.fillcolor = color; + + if (fill) shape.appendChild(fill.cloneNode(false)); + + // it's important to not set top/left or IE8 will grind to a halt + var sStyle = shape.style; + sStyle.width = roundedShapeWidth; + sStyle.height = roundedHeight; + + if (shadows) { + // due to the limitations of the VML shadow element there + // can only be two visible shadows. opacity is shared + // for all shadows. + var shadow1 = shadows[0], shadow2 = shadows[1]; + var color1 = Cufon.CSS.color(shadow1.color), color2; + var shadow = document.createElement('cvml:shadow'); + shadow.on = 't'; + shadow.color = color1.color; + shadow.offset = shadow1.offX + ',' + shadow1.offY; + if (shadow2) { + color2 = Cufon.CSS.color(shadow2.color); + shadow.type = 'double'; + shadow.color2 = color2.color; + shadow.offset2 = shadow2.offX + ',' + shadow2.offY; + } + shadow.opacity = color1.opacity || (color2 && color2.opacity) || 1; + shape.appendChild(shadow); + } + + offsetX += jumps[j++]; + } + + // addresses flickering issues on :hover + + var cover = shape.nextSibling, coverFill, vStyle; + + if (options.forceHitArea) { + + if (!cover) { + cover = document.createElement('cvml:rect'); + cover.stroked = 'f'; + cover.className = 'cufon-vml-cover'; + coverFill = document.createElement('cvml:fill'); + coverFill.opacity = 0; + cover.appendChild(coverFill); + canvas.appendChild(cover); + } + + vStyle = cover.style; + + vStyle.width = roundedShapeWidth; + vStyle.height = roundedHeight; + + } + else if (cover) canvas.removeChild(cover); + + wStyle.width = Math.max(Math.ceil(size.convert(width * stretchFactor)), 0); + + if (HAS_BROKEN_LINEHEIGHT) { + + var yAdjust = style.computedYAdjust; + + if (yAdjust === undefined) { + var lineHeight = style.get('lineHeight'); + if (lineHeight == 'normal') lineHeight = '1em'; + else if (!isNaN(lineHeight)) lineHeight += 'em'; // no unit + style.computedYAdjust = yAdjust = 0.5 * (getSizeInPixels(el, lineHeight) - parseFloat(wStyle.height)); + } + + if (yAdjust) { + wStyle.marginTop = Math.ceil(yAdjust) + 'px'; + wStyle.marginBottom = yAdjust + 'px'; + } + + } + + return wrapper; + + }; + +})()); + +Cufon.registerEngine('canvas', (function() { + + // Safari 2 doesn't support .apply() on native methods + + var check = document.createElement('canvas'); + if (!check || !check.getContext || !check.getContext.apply) return; + check = null; + + var HAS_INLINE_BLOCK = Cufon.CSS.supports('display', 'inline-block'); + + // Firefox 2 w/ non-strict doctype (almost standards mode) + var HAS_BROKEN_LINEHEIGHT = !HAS_INLINE_BLOCK && (document.compatMode == 'BackCompat' || /frameset|transitional/i.test(document.doctype.publicId)); + + var styleSheet = document.createElement('style'); + styleSheet.type = 'text/css'; + styleSheet.appendChild(document.createTextNode(( + 'cufon{text-indent:0;}' + + '@media screen,projection{' + + 'cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;' + + (HAS_BROKEN_LINEHEIGHT + ? '' + : 'font-size:1px;line-height:1px;') + + '}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;text-align:left;text-indent:-10000in;}' + + (HAS_INLINE_BLOCK + ? 'cufon canvas{position:relative;}' + : 'cufon canvas{position:absolute;}') + + 'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' + + 'cufonglue{white-space:nowrap;display:inline-block;}' + + '.cufon-viewport-resizing cufonglue{white-space:normal;}' + + '}' + + '@media print{' + + 'cufon{padding:0;}' + // Firefox 2 + 'cufon canvas{display:none;}' + + '}' + ).replace(/;/g, '!important;'))); + document.getElementsByTagName('head')[0].appendChild(styleSheet); + + function generateFromVML(path, context) { + var atX = 0, atY = 0; + var code = [], re = /([mrvxe])([^a-z]*)/g, match; + generate: for (var i = 0; match = re.exec(path); ++i) { + var c = match[2].split(','); + switch (match[1]) { + case 'v': + code[i] = { m: 'bezierCurveTo', a: [ atX + ~~c[0], atY + ~~c[1], atX + ~~c[2], atY + ~~c[3], atX += ~~c[4], atY += ~~c[5] ] }; + break; + case 'r': + code[i] = { m: 'lineTo', a: [ atX += ~~c[0], atY += ~~c[1] ] }; + break; + case 'm': + code[i] = { m: 'moveTo', a: [ atX = ~~c[0], atY = ~~c[1] ] }; + break; + case 'x': + code[i] = { m: 'closePath' }; + break; + case 'e': + break generate; + } + context[code[i].m].apply(context, code[i].a); + } + return code; + } + + function interpret(code, context) { + for (var i = 0, l = code.length; i < l; ++i) { + var line = code[i]; + context[line.m].apply(context, line.a); + } + } + + return function(font, text, style, options, node, el) { + + var redraw = (text === null); + + if (redraw) text = node.getAttribute('alt'); + + var viewBox = font.viewBox; + + var size = style.getSize('fontSize', font.baseSize); + + var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0; + var shadows = options.textShadow, shadowOffsets = []; + if (shadows) { + for (var i = shadows.length; i--;) { + var shadow = shadows[i]; + var x = size.convertFrom(parseFloat(shadow.offX)); + var y = size.convertFrom(parseFloat(shadow.offY)); + shadowOffsets[i] = [ x, y ]; + if (y < expandTop) expandTop = y; + if (x > expandRight) expandRight = x; + if (y > expandBottom) expandBottom = y; + if (x < expandLeft) expandLeft = x; + } + } + + var chars = Cufon.CSS.textTransform(options.ligatures ? font.applyLigatures(text, options.ligatures) : text, style).split(''); + + var jumps = font.spacing(chars, + ~~size.convertFrom(parseFloat(style.get('letterSpacing')) || 0), + ~~size.convertFrom(parseFloat(style.get('wordSpacing')) || 0) + ); + + if (!jumps.length) return null; // there's nothing to render + + var width = jumps.total; + + expandRight += viewBox.width - jumps[jumps.length - 1]; + expandLeft += viewBox.minX; + + var wrapper, canvas; + + if (redraw) { + wrapper = node; + canvas = node.firstChild; + } + else { + wrapper = document.createElement('cufon'); + wrapper.className = 'cufon cufon-canvas'; + wrapper.setAttribute('alt', text); + + canvas = document.createElement('canvas'); + wrapper.appendChild(canvas); + + if (options.printable) { + var print = document.createElement('cufontext'); + print.appendChild(document.createTextNode(text)); + wrapper.appendChild(print); + } + } + + var wStyle = wrapper.style; + var cStyle = canvas.style; + + var height = size.convert(viewBox.height); + var roundedHeight = Math.ceil(height); + var roundingFactor = roundedHeight / height; + var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch')); + var stretchedWidth = width * stretchFactor; + + var canvasWidth = Math.ceil(size.convert(stretchedWidth + expandRight - expandLeft)); + var canvasHeight = Math.ceil(size.convert(viewBox.height - expandTop + expandBottom)); + + canvas.width = canvasWidth; + canvas.height = canvasHeight; + + // needed for WebKit and full page zoom + cStyle.width = canvasWidth + 'px'; + cStyle.height = canvasHeight + 'px'; + + // minY has no part in canvas.height + expandTop += viewBox.minY; + + cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px'; + cStyle.left = Math.round(size.convert(expandLeft)) + 'px'; + + var wrapperWidth = Math.max(Math.ceil(size.convert(stretchedWidth)), 0) + 'px'; + + if (HAS_INLINE_BLOCK) { + wStyle.width = wrapperWidth; + wStyle.height = size.convert(font.height) + 'px'; + } + else { + wStyle.paddingLeft = wrapperWidth; + wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px'; + } + + var g = canvas.getContext('2d'), scale = height / viewBox.height; + var pixelRatio = window.devicePixelRatio || 1; + if (pixelRatio != 1) { + canvas.width = canvasWidth * pixelRatio; + canvas.height = canvasHeight * pixelRatio; + g.scale(pixelRatio, pixelRatio); + } + + // proper horizontal scaling is performed later + g.scale(scale, scale * roundingFactor); + g.translate(-expandLeft, -expandTop); + g.save(); + + function renderText() { + var glyphs = font.glyphs, glyph, i = -1, j = -1, chr; + g.scale(stretchFactor, 1); + while (chr = chars[++i]) { + var glyph = glyphs[chars[i]] || font.missingGlyph; + if (!glyph) continue; + if (glyph.d) { + g.beginPath(); + // the following moveTo is for Opera 9.2. if we don't + // do this, it won't forget the previous path which + // results in garbled text. + g.moveTo(0, 0); + if (glyph.code) interpret(glyph.code, g); + else glyph.code = generateFromVML('m' + glyph.d, g); + g.fill(); + } + g.translate(jumps[++j], 0); + } + g.restore(); + } + + if (shadows) { + for (var i = shadows.length; i--;) { + var shadow = shadows[i]; + g.save(); + g.fillStyle = shadow.color; + g.translate.apply(g, shadowOffsets[i]); + renderText(); + } + } + + var gradient = options.textGradient; + if (gradient) { + var stops = gradient.stops, fill = g.createLinearGradient(0, viewBox.minY, 0, viewBox.maxY); + for (var i = 0, l = stops.length; i < l; ++i) { + fill.addColorStop.apply(fill, stops[i]); + } + g.fillStyle = fill; + } + else g.fillStyle = style.get('color'); + + renderText(); + + return wrapper; + + }; + +})()); diff --git a/src/cufon-yui2.js b/src/cufon-yui2.js new file mode 100644 index 0000000..935614e --- /dev/null +++ b/src/cufon-yui2.js @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2009 Simo Kinnunen. + * Licensed under the MIT license. + * + * @version 1.09i + */ +var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E0){E=" "+E}}else{if(B400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||JD){D=J}K.push(J)}if(ID){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?ML:(M<=I&&L<=I)?M>L:Mcufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;mO){O=K}if(I>N){N=I}if(K + + + + + + + + + + + +DejaVu Serif Book Specimen + + + + + + +
+ + + +
+ + +
+ +
+
+
AaBb
+
+
+ +
+
A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;
+
+
+
+ + + + + + + + + + + + + + + + +
10abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
11abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
12abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
13abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
14abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
16abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
18abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
20abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
24abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
30abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
36abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
48abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
60abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
72abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
90abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
+ +
+ +
+ + + +
+ + +
+
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body
body
body
body
+
+ bodyDejaVu Serif Book +
+
+ bodyArial +
+
+ bodyVerdana +
+
+ bodyGeorgia +
+ + + +
+ + +
+ +
+

10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+ +
+
+
+

14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+ +
+ +
+ +
+
+

20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+
+
+

24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+
+ +
+ +
+ +
+
+

30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+
+
+ +
+ + + +
+
+

10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+ +
+ +
+
+

14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+

18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+ +
+
+ +
+ +
+
+

20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+
+
+

24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+
+ +
+ +
+ +
+
+

30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

+
+
+ +
+ + + + +
+ +
+ +
+ +
+

Lorem Ipsum Dolor

+

Etiam porta sem malesuada magna mollis euismod

+ + +
+
+
+
+

Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

+ + +

Pellentesque ornare sem

+ +

Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.

+ +

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

+ +

Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur.

+ +

Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla.

+ +

Cras mattis consectetur

+ +

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum.

+ +

Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.

+
+ + +
+ +
+ + + + + + + + + +
+ +
+ +
+
+
+

Installing Webfonts

+ +

Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.

+ +

1. Upload your webfonts

+

You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.

+ +

2. Include the webfont stylesheet

+

A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the Fontspring blog post about it. The code for it is as follows:

+ + + +@font-face{ + font-family: 'MyWebFont'; + src: url('WebFont.eot'); + src: url('WebFont.eot?iefix') format('eot'), + url('WebFont.woff') format('woff'), + url('WebFont.ttf') format('truetype'), + url('WebFont.svg#webfont') format('svg'); +} + + +

We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:

+ <link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /> + +

3. Modify your own stylesheet

+

To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:

+p { font-family: 'MyWebFont', Arial, sans-serif; } + +

4. Test

+

Getting webfonts to work cross-browser can be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.

+
+ + +
+ +
+ +
+ +
+ + diff --git a/src/fonts/dejavuserif/DejaVuSerif-webfont.eot b/src/fonts/dejavuserif/DejaVuSerif-webfont.eot new file mode 100755 index 0000000..eab0e96 Binary files /dev/null and b/src/fonts/dejavuserif/DejaVuSerif-webfont.eot differ diff --git a/src/fonts/dejavuserif/DejaVuSerif-webfont.svg b/src/fonts/dejavuserif/DejaVuSerif-webfont.svg new file mode 100755 index 0000000..b3efd06 --- /dev/null +++ b/src/fonts/dejavuserif/DejaVuSerif-webfont.svg @@ -0,0 +1,3404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/fonts/dejavuserif/DejaVuSerif-webfont.ttf b/src/fonts/dejavuserif/DejaVuSerif-webfont.ttf new file mode 100755 index 0000000..982f217 Binary files /dev/null and b/src/fonts/dejavuserif/DejaVuSerif-webfont.ttf differ diff --git a/src/fonts/dejavuserif/DejaVuSerif-webfont.woff b/src/fonts/dejavuserif/DejaVuSerif-webfont.woff new file mode 100755 index 0000000..7a311af Binary files /dev/null and b/src/fonts/dejavuserif/DejaVuSerif-webfont.woff differ diff --git a/src/fonts/dejavuserif/specimen_files/DejaVuSerif-cleartype.png b/src/fonts/dejavuserif/specimen_files/DejaVuSerif-cleartype.png new file mode 100755 index 0000000..bfc5f29 Binary files /dev/null and b/src/fonts/dejavuserif/specimen_files/DejaVuSerif-cleartype.png differ diff --git a/src/fonts/dejavuserif/specimen_files/easytabs.js b/src/fonts/dejavuserif/specimen_files/easytabs.js new file mode 100755 index 0000000..167f53b --- /dev/null +++ b/src/fonts/dejavuserif/specimen_files/easytabs.js @@ -0,0 +1,7 @@ +(function($){$.fn.easyTabs=function(option){var param=jQuery.extend({fadeSpeed:"fast",defaultContent:1,activeClass:'active'},option);$(this).each(function(){var thisId="#"+this.id;if(param.defaultContent==''){param.defaultContent=1;} +if(typeof param.defaultContent=="number") +{var defaultTab=$(thisId+" .tabs li:eq("+(param.defaultContent-1)+") a").attr('href').substr(1);}else{var defaultTab=param.defaultContent;} +$(thisId+" .tabs li a").each(function(){var tabToHide=$(this).attr('href').substr(1);$("#"+tabToHide).addClass('easytabs-tab-content');});hideAll();changeContent(defaultTab);function hideAll(){$(thisId+" .easytabs-tab-content").hide();} +function changeContent(tabId){hideAll();$(thisId+" .tabs li").removeClass(param.activeClass);$(thisId+" .tabs li a[href=#"+tabId+"]").closest('li').addClass(param.activeClass);if(param.fadeSpeed!="none") +{$(thisId+" #"+tabId).fadeIn(param.fadeSpeed);}else{$(thisId+" #"+tabId).show();}} +$(thisId+" .tabs li").click(function(){var tabId=$(this).find('a').attr('href').substr(1);changeContent(tabId);return false;});});}})(jQuery); \ No newline at end of file diff --git a/src/fonts/dejavuserif/specimen_files/grid_12-825-55-15.css b/src/fonts/dejavuserif/specimen_files/grid_12-825-55-15.css new file mode 100755 index 0000000..3d6aef7 --- /dev/null +++ b/src/fonts/dejavuserif/specimen_files/grid_12-825-55-15.css @@ -0,0 +1,129 @@ +/*Notes about grid: +Columns: 12 +Grid Width: 825px +Column Width: 55px +Gutter Width: 15px +-------------------------------*/ + + + +.section {margin-bottom: 18px; +} +.section:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;} +.section {*zoom: 1;} + +.section .firstcolumn, +.section .firstcol {margin-left: 0;} + + +/* Border on left hand side of a column. */ +.border { + padding-left: 7px; + margin-left: 7px; + border-left: 1px solid #eee; +} + +/* Border with more whitespace, spans one column. */ +.colborder { + padding-left: 42px; + margin-left: 42px; + border-left: 1px solid #eee; +} + + + +/* The Grid Classes */ +.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12 +{margin-left: 15px;float: left;display: inline; overflow: hidden;} + + +.width1, .grid1, .span-1 {width: 55px;} +.width1_2cols,.grid1_2cols {width: 20px;} +.width1_3cols,.grid1_3cols {width: 8px;} +.width1_4cols,.grid1_4cols {width: 2px;} +.input_width1 {width: 49px;} + +.width2, .grid2, .span-2 {width: 125px;} +.width2_3cols,.grid2_3cols {width: 31px;} +.width2_4cols,.grid2_4cols {width: 20px;} +.input_width2 {width: 119px;} + +.width3, .grid3, .span-3 {width: 195px;} +.width3_2cols,.grid3_2cols {width: 90px;} +.width3_4cols,.grid3_4cols {width: 37px;} +.input_width3 {width: 189px;} + +.width4, .grid4, .span-4 {width: 265px;} +.width4_3cols,.grid4_3cols {width: 78px;} +.input_width4 {width: 259px;} + +.width5, .grid5, .span-5 {width: 335px;} +.width5_2cols,.grid5_2cols {width: 160px;} +.width5_3cols,.grid5_3cols {width: 101px;} +.width5_4cols,.grid5_4cols {width: 72px;} +.input_width5 {width: 329px;} + +.width6, .grid6, .span-6 {width: 405px;} +.width6_4cols,.grid6_4cols {width: 90px;} +.input_width6 {width: 399px;} + +.width7, .grid7, .span-7 {width: 475px;} +.width7_2cols,.grid7_2cols {width: 230px;} +.width7_3cols,.grid7_3cols {width: 148px;} +.width7_4cols,.grid7_4cols {width: 107px;} +.input_width7 {width: 469px;} + +.width8, .grid8, .span-8 {width: 545px;} +.width8_3cols,.grid8_3cols {width: 171px;} +.input_width8 {width: 539px;} + +.width9, .grid9, .span-9 {width: 615px;} +.width9_2cols,.grid9_2cols {width: 300px;} +.width9_4cols,.grid9_4cols {width: 142px;} +.input_width9 {width: 609px;} + +.width10, .grid10, .span-10 {width: 685px;} +.width10_3cols,.grid10_3cols {width: 218px;} +.width10_4cols,.grid10_4cols {width: 160px;} +.input_width10 {width: 679px;} + +.width11, .grid11, .span-11 {width: 755px;} +.width11_2cols,.grid11_2cols {width: 370px;} +.width11_3cols,.grid11_3cols {width: 241px;} +.width11_4cols,.grid11_4cols {width: 177px;} +.input_width11 {width: 749px;} + +.width12, .grid12, .span-12 {width: 825px;} +.input_width12 {width: 819px;} + +/* Subdivided grid spaces */ +.emptycols_left1, .prepend-1 {padding-left: 70px;} +.emptycols_right1, .append-1 {padding-right: 70px;} +.emptycols_left2, .prepend-2 {padding-left: 140px;} +.emptycols_right2, .append-2 {padding-right: 140px;} +.emptycols_left3, .prepend-3 {padding-left: 210px;} +.emptycols_right3, .append-3 {padding-right: 210px;} +.emptycols_left4, .prepend-4 {padding-left: 280px;} +.emptycols_right4, .append-4 {padding-right: 280px;} +.emptycols_left5, .prepend-5 {padding-left: 350px;} +.emptycols_right5, .append-5 {padding-right: 350px;} +.emptycols_left6, .prepend-6 {padding-left: 420px;} +.emptycols_right6, .append-6 {padding-right: 420px;} +.emptycols_left7, .prepend-7 {padding-left: 490px;} +.emptycols_right7, .append-7 {padding-right: 490px;} +.emptycols_left8, .prepend-8 {padding-left: 560px;} +.emptycols_right8, .append-8 {padding-right: 560px;} +.emptycols_left9, .prepend-9 {padding-left: 630px;} +.emptycols_right9, .append-9 {padding-right: 630px;} +.emptycols_left10, .prepend-10 {padding-left: 700px;} +.emptycols_right10, .append-10 {padding-right: 700px;} +.emptycols_left11, .prepend-11 {padding-left: 770px;} +.emptycols_right11, .append-11 {padding-right: 770px;} +.pull-1 {margin-left: -70px;} +.push-1 {margin-right: -70px;margin-left: 18px;float: right;} +.pull-2 {margin-left: -140px;} +.push-2 {margin-right: -140px;margin-left: 18px;float: right;} +.pull-3 {margin-left: -210px;} +.push-3 {margin-right: -210px;margin-left: 18px;float: right;} +.pull-4 {margin-left: -280px;} +.push-4 {margin-right: -280px;margin-left: 18px;float: right;} \ No newline at end of file diff --git a/src/fonts/dejavuserif/specimen_files/specimen_stylesheet.css b/src/fonts/dejavuserif/specimen_files/specimen_stylesheet.css new file mode 100755 index 0000000..aecc43c --- /dev/null +++ b/src/fonts/dejavuserif/specimen_files/specimen_stylesheet.css @@ -0,0 +1,396 @@ +@import url('grid_12-825-55-15.css'); + +/* + CSS Reset by Eric Meyer - Released under Public Domain + http://meyerweb.com/eric/tools/css/reset/ +*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, table, +caption, tbody, tfoot, thead, tr, th, td + {margin: 0;padding: 0;border: 0;outline: 0; + font-size: 100%;vertical-align: baseline; + background: transparent;} +body {line-height: 1;} +ol, ul {list-style: none;} +blockquote, q {quotes: none;} +blockquote:before, blockquote:after, +q:before, q:after {content: ''; content: none;} +:focus {outline: 0;} +ins {text-decoration: none;} +del {text-decoration: line-through;} +table {border-collapse: collapse;border-spacing: 0;} + + + + +body { + color: #000; + background-color: #dcdcdc; +} + +a { + text-decoration: none; + color: #1883ba; +} + +h1{ + font-size: 32px; + font-weight: normal; + font-style: normal; + margin-bottom: 18px; +} + +h2{ + font-size: 18px; +} + +#container { + width: 865px; + margin: 0px auto; +} + + +#header { + padding: 20px; + font-size: 36px; + background-color: #000; + color: #fff; +} + +#header span { + color: #666; +} +#main_content { + background-color: #fff; + padding: 60px 20px 20px; +} + + +#footer p { + margin: 0; + padding-top: 10px; + padding-bottom: 50px; + color: #333; + font: 10px Arial, sans-serif; +} + +.tabs { + width: 100%; + height: 31px; + background-color: #444; +} +.tabs li { + float: left; + margin: 0; + overflow: hidden; + background-color: #444; +} +.tabs li a { + display: block; + color: #fff; + text-decoration: none; + font: bold 11px/11px 'Arial'; + text-transform: uppercase; + padding: 10px 15px; + border-right: 1px solid #fff; +} + +.tabs li a:hover { + background-color: #00b3ff; + +} + +.tabs li.active a { + color: #000; + background-color: #fff; +} + + + +div.huge { + + font-size: 300px; + line-height: 1em; + padding: 0; + letter-spacing: -.02em; + overflow: hidden; +} +div.glyph_range { + font-size: 72px; + line-height: 1.1em; +} + +.size10{ font-size: 10px; } +.size11{ font-size: 11px; } +.size12{ font-size: 12px; } +.size13{ font-size: 13px; } +.size14{ font-size: 14px; } +.size16{ font-size: 16px; } +.size18{ font-size: 18px; } +.size20{ font-size: 20px; } +.size24{ font-size: 24px; } +.size30{ font-size: 30px; } +.size36{ font-size: 36px; } +.size48{ font-size: 48px; } +.size60{ font-size: 60px; } +.size72{ font-size: 72px; } +.size90{ font-size: 90px; } + + +.psample_row1 { height: 120px;} +.psample_row1 { height: 120px;} +.psample_row2 { height: 160px;} +.psample_row3 { height: 160px;} +.psample_row4 { height: 160px;} + +.psample { + overflow: hidden; + position: relative; +} +.psample p { + line-height: 1.3em; + display: block; + overflow: hidden; + margin: 0; +} + +.psample span { + margin-right: .5em; +} + +.white_blend { + width: 100%; + height: 61px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==); + position: absolute; + bottom: 0; +} +.black_blend { + width: 100%; + height: 61px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC); + position: absolute; + bottom: 0; +} +.fullreverse { + background: #000 !important; + color: #fff !important; + margin-left: -20px; + padding-left: 20px; + margin-right: -20px; + padding-right: 20px; + padding: 20px; + margin-bottom:0; +} + + +.sample_table td { + padding-top: 3px; + padding-bottom:5px; + padding-left: 5px; + vertical-align: middle; + line-height: 1.2em; +} + +.sample_table td:first-child { + background-color: #eee; + text-align: right; + padding-right: 5px; + padding-left: 0; + padding: 5px; + font: 11px/12px "Courier New", Courier, mono; +} + +code { + white-space: pre; + background-color: #eee; + display: block; + padding: 10px; + margin-bottom: 18px; + overflow: auto; +} + + +.bottom,.last {margin-bottom:0 !important; padding-bottom:0 !important;} + +.box { + padding: 18px; + margin-bottom: 18px; + background: #eee; +} + +.reverse,.reversed { background: #000 !important;color: #fff !important; border: none !important;} + +#bodycomparison { + position: relative; + overflow: hidden; + font-size: 72px; + height: 90px; + white-space: nowrap; +} + +#bodycomparison div{ + font-size: 72px; + line-height: 90px; + display: inline; + margin: 0 15px 0 0; + padding: 0; +} + +#bodycomparison div span{ + font: 10px Arial; + position: absolute; + left: 0; +} +#xheight { + float: none; + position: absolute; + color: #d9f3ff; + font-size: 72px; + line-height: 90px; +} + +.fontbody { + position: relative; +} +.arialbody{ + font-family: Arial; + position: relative; +} +.verdanabody{ + font-family: Verdana; + position: relative; +} +.georgiabody{ + font-family: Georgia; + position: relative; +} + +/* @group Layout page + */ + +#layout h1 { + font-size: 36px; + line-height: 42px; + font-weight: normal; + font-style: normal; +} + +#layout h2 { + font-size: 24px; + line-height: 23px; + font-weight: normal; + font-style: normal; +} + +#layout h3 { + font-size: 22px; + line-height: 1.4em; + margin-top: 1em; + font-weight: normal; + font-style: normal; +} + + +#layout p.byline { + font-size: 12px; + margin-top: 18px; + line-height: 12px; + margin-bottom: 0; +} +#layout p { + font-size: 14px; + line-height: 21px; + margin-bottom: .5em; +} + +#layout p.large{ + font-size: 18px; + line-height: 26px; +} + +#layout .sidebar p{ + font-size: 12px; + line-height: 1.4em; +} + +#layout p.caption { + font-size: 10px; + margin-top: -16px; + margin-bottom: 18px; +} + +/* @end */ + +/* @group Glyphs */ + +#glyph_chart div{ + background-color: #d9f3ff; + color: black; + float: left; + font-size: 36px; + height: 1.2em; + line-height: 1.2em; + margin-bottom: 1px; + margin-right: 1px; + text-align: center; + width: 1.2em; + position: relative; + padding: .6em .2em .2em; +} + +#glyph_chart div p { + position: absolute; + left: 0; + top: 0; + display: block; + text-align: center; + font: bold 9px Arial, sans-serif; + background-color: #3a768f; + width: 100%; + color: #fff; + padding: 2px 0; +} + + +#glyphs h1 { + font-family: Arial, sans-serif; +} +/* @end */ + +/* @group Installing */ + +#installing { + font: 13px Arial, sans-serif; +} + +#installing p, +#glyphs p{ + line-height: 1.2em; + margin-bottom: 18px; + font: 13px Arial, sans-serif; +} + + + +#installing h3{ + font-size: 15px; + margin-top: 18px; +} + +/* @end */ + +#rendering h1 { + font-family: Arial, sans-serif; +} +.render_table td { + font: 11px "Courier New", Courier, mono; + vertical-align: middle; +} + + diff --git a/src/fonts/dejavuserif/stylesheet.css b/src/fonts/dejavuserif/stylesheet.css new file mode 100755 index 0000000..766c2d7 --- /dev/null +++ b/src/fonts/dejavuserif/stylesheet.css @@ -0,0 +1,12 @@ +@font-face { + font-family: 'dejavu_serifbook'; + src: url('/src/fonts/dejavuserif/DejaVuSerif-webfont.eot'); + src: url('/src/fonts/dejavuserif/DejaVuSerif-webfont.eot?#iefix') format('embedded-opentype'), + url('/src/fonts/dejavuserif/DejaVuSerif-webfont.woff') format('woff'), + url('/src/fonts/dejavuserif/DejaVuSerif-webfont.ttf') format('truetype'), + url('/src/fonts/dejavuserif/DejaVuSerif-webfont.svg#dejavu_serifbook') format('svg'); + font-weight: normal; + font-style: normal; + +} + diff --git a/src/lang-apollo.js b/src/lang-apollo.js new file mode 100644 index 0000000..c218210 --- /dev/null +++ b/src/lang-apollo.js @@ -0,0 +1,51 @@ +// Copyright (C) 2009 Onno Hommes. +// +// 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. + + +/** + * @fileoverview + * Registers a language handler for the AGC/AEA Assembly Language as described + * at http://virtualagc.googlecode.com + *

+ * This file could be used by goodle code to allow syntax highlight for + * Virtual AGC SVN repository or if you don't want to commonize + * the header for the agc/aea html assembly listing. + * + * @author ohommes@alumni.cmu.edu + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // A line comment that starts with ; + [PR.PR_COMMENT, /^#[^\r\n]*/, null, '#'], + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double quoted, possibly multi-line, string. + [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] + ], + [ + [PR.PR_KEYWORD, /^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,null], + [PR.PR_TYPE, /^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null], + // A single quote possibly followed by a word that optionally ends with + // = ! or ?. + [PR.PR_LITERAL, + /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], + // Any word including labels that optionally ends with = ! or ?. + [PR.PR_PLAIN, + /^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], + // A printable non-space non-special character + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] + ]), + ['apollo', 'agc', 'aea']); diff --git a/src/lang-betyg.js b/src/lang-betyg.js new file mode 100644 index 0000000..9d0a739 --- /dev/null +++ b/src/lang-betyg.js @@ -0,0 +1,20 @@ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // A line comment that starts with ; + [PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'], + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'] + ], + [ + [PR.PR_KEYWORD, /^\[[\w\s]+\]/], + [PR.PR_KEYWORD, /^\%\w+/], + [PR.PR_KEYWORD, + /[0-9]+(,5)?hp/], + [PR.PR_TYPE, + /^[A-Z]{3,4}[0-9]{2,3}/], + [PR.PR_LITERAL, /^0x[0-9A-F]*/] + + ]), + ['betyg']); diff --git a/src/lang-css.js b/src/lang-css.js new file mode 100644 index 0000000..44013d2 --- /dev/null +++ b/src/lang-css.js @@ -0,0 +1,78 @@ +// Copyright (C) 2009 Google Inc. +// +// 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. + + + +/** + * @fileoverview + * Registers a language handler for CSS. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *


+ *
+ *
+ * http://www.w3.org/TR/CSS21/grammar.html Section G2 defines the lexical
+ * grammar.  This scheme does not recognize keywords containing escapes.
+ *
+ * @author mikesamuel@gmail.com
+ */
+
+PR.registerLangHandler(
+    PR.createSimpleLexer(
+        [
+         // The space production 
+         [PR.PR_PLAIN,       /^[ \t\r\n\f]+/, null, ' \t\r\n\f']
+        ],
+        [
+         // Quoted strings.   and 
+         [PR.PR_STRING,
+          /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null],
+         [PR.PR_STRING,
+          /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null],
+         ['lang-css-str', /^url\(([^\)\"\']*)\)/i],
+         [PR.PR_KEYWORD,
+          /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,
+          null],
+         // A property name -- an identifier followed by a colon.
+         ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],
+         // A C style block comment.  The  production.
+         [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
+         // Escaping text spans
+         [PR.PR_COMMENT, /^(?:)/],
+         // A number possibly containing a suffix.
+         [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
+         // A hex color
+         [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i],
+         // An identifier
+         [PR.PR_PLAIN,
+          /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],
+         // A run of punctuation
+         [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/]
+        ]),
+    ['css']);
+PR.registerLangHandler(
+    PR.createSimpleLexer([],
+        [
+         [PR.PR_KEYWORD,
+          /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]
+        ]),
+    ['css-kw']);
+PR.registerLangHandler(
+    PR.createSimpleLexer([],
+        [
+         [PR.PR_STRING, /^[^\)\"\']+/]
+        ]),
+    ['css-str']);
diff --git a/src/lang-hs.js b/src/lang-hs.js
new file mode 100644
index 0000000..91157b9
--- /dev/null
+++ b/src/lang-hs.js
@@ -0,0 +1,101 @@
+// Copyright (C) 2009 Google Inc.
+//
+// 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.
+
+
+
+/**
+ * @fileoverview
+ * Registers a language handler for Haskell.
+ *
+ *
+ * To use, include prettify.js and this file in your HTML page.
+ * Then put your code in an HTML tag like
+ *      
(my lisp code)
+ * The lang-cl class identifies the language as common lisp. + * This file supports the following language extensions: + * lang-cl - Common Lisp + * lang-el - Emacs Lisp + * lang-lisp - Lisp + * lang-scm - Scheme + * + * + * I used http://www.informatik.uni-freiburg.de/~thiemann/haskell/haskell98-report-html/syntax-iso.html + * as the basis, but ignore the way the ncomment production nests since this + * makes the lexical grammar irregular. It might be possible to support + * ncomments using the lookbehind filter. + * + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + // whitechar -> newline | vertab | space | tab | uniWhite + // newline -> return linefeed | return | linefeed | formfeed + [PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, '\t\n\x0B\x0C\r '], + // Single line double and single-quoted strings. + // char -> ' (graphic<' | \> | space | escape<\&>) ' + // string -> " {graphic<" | \> | space | escape | gap}" + // escape -> \ ( charesc | ascii | decimal | o octal + // | x hexadecimal ) + // charesc -> a | b | f | n | r | t | v | \ | " | ' | & + [PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/, + null, '"'], + [PR.PR_STRING, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/, + null, "'"], + // decimal -> digit{digit} + // octal -> octit{octit} + // hexadecimal -> hexit{hexit} + // integer -> decimal + // | 0o octal | 0O octal + // | 0x hexadecimal | 0X hexadecimal + // float -> decimal . decimal [exponent] + // | decimal exponent + // exponent -> (e | E) [+ | -] decimal + [PR.PR_LITERAL, + /^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i, + null, '0123456789'] + ], + [ + // Haskell does not have a regular lexical grammar due to the nested + // ncomment. + // comment -> dashes [ any {any}] newline + // ncomment -> opencom ANYseq {ncomment ANYseq}closecom + // dashes -> '--' {'-'} + // opencom -> '{-' + // closecom -> '-}' + [PR.PR_COMMENT, /^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/], + // reservedid -> case | class | data | default | deriving | do + // | else | if | import | in | infix | infixl | infixr + // | instance | let | module | newtype | of | then + // | type | where | _ + [PR.PR_KEYWORD, /^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, null], + // qvarid -> [ modid . ] varid + // qconid -> [ modid . ] conid + // varid -> (small {small | large | digit | ' }) + // conid -> large {small | large | digit | ' } + // modid -> conid + // small -> ascSmall | uniSmall | _ + // ascSmall -> a | b | ... | z + // uniSmall -> any Unicode lowercase letter + // large -> ascLarge | uniLarge + // ascLarge -> A | B | ... | Z + // uniLarge -> any uppercase or titlecase Unicode letter + [PR.PR_PLAIN, /^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/], + // matches the symbol production + [PR.PR_PUNCTUATION, /^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/] + ]), + ['hs']); diff --git a/src/lang-lisp.js b/src/lang-lisp.js new file mode 100644 index 0000000..14e4f3c --- /dev/null +++ b/src/lang-lisp.js @@ -0,0 +1,93 @@ +// Copyright (C) 2008 Google Inc. +// +// 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. + + + +/** + * @fileoverview + * Registers a language handler for Common Lisp and related languages. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *
(my lisp code)
+ * The lang-cl class identifies the language as common lisp. + * This file supports the following language extensions: + * lang-cl - Common Lisp + * lang-el - Emacs Lisp + * lang-lisp - Lisp + * lang-scm - Scheme + * + * + * I used http://www.devincook.com/goldparser/doc/meta-language/grammar-LISP.htm + * as the basis, but added line comments that start with ; and changed the atom + * production to disallow unquoted semicolons. + * + * "Name" = 'LISP' + * "Author" = 'John McCarthy' + * "Version" = 'Minimal' + * "About" = 'LISP is an abstract language that organizes ALL' + * | 'data around "lists".' + * + * "Start Symbol" = [s-Expression] + * + * {Atom Char} = {Printable} - {Whitespace} - [()"\''] + * + * Atom = ( {Atom Char} | '\'{Printable} )+ + * + * [s-Expression] ::= [Quote] Atom + * | [Quote] '(' [Series] ')' + * | [Quote] '(' [s-Expression] '.' [s-Expression] ')' + * + * [Series] ::= [s-Expression] [Series] + * | + * + * [Quote] ::= '' !Quote = do not evaluate + * | + * + * + * I used Practical Common Lisp as + * the basis for the reserved word list. + * + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + ['opn', /^\(/, null, '('], + ['clo', /^\)/, null, ')'], + // A line comment that starts with ; + [PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'], + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double quoted, possibly multi-line, string. + [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] + ], + [ + [PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, null], + [PR.PR_LITERAL, + /^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], + // A single quote possibly followed by a word that optionally ends with + // = ! or ?. + [PR.PR_LITERAL, + /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], + // A word that optionally ends with = ! or ?. + [PR.PR_PLAIN, + /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], + // A printable non-space non-special character + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] + ]), + ['cl', 'el', 'lisp', 'scm']); diff --git a/src/lang-lua.js b/src/lang-lua.js new file mode 100644 index 0000000..68bb30b --- /dev/null +++ b/src/lang-lua.js @@ -0,0 +1,59 @@ +// Copyright (C) 2008 Google Inc. +// +// 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. + + + +/** + * @fileoverview + * Registers a language handler for Lua. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *
(my Lua code)
+ * + * + * I used http://www.lua.org/manual/5.1/manual.html#2.1 + * Because of the long-bracket concept used in strings and comments, Lua does + * not have a regular lexical grammar, but luckily it fits within the space + * of irregular grammars supported by javascript regular expressions. + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double or single quoted, possibly multi-line, string. + [PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\''] + ], + [ + // A comment is either a line comment that starts with two dashes, or + // two dashes preceding a long bracketed block. + [PR.PR_COMMENT, /^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/], + // A long bracketed block not preceded by -- is a string. + [PR.PR_STRING, /^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/], + [PR.PR_KEYWORD, /^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, null], + // A number is a hex integer literal, a decimal real literal, or in + // scientific notation. + [PR.PR_LITERAL, + /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], + // An identifier + [PR.PR_PLAIN, /^[a-z_]\w*/i], + // A run of punctuation + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/] + ]), + ['lua']); diff --git a/src/lang-ml.js b/src/lang-ml.js new file mode 100644 index 0000000..c5a3db7 --- /dev/null +++ b/src/lang-ml.js @@ -0,0 +1,56 @@ +// Copyright (C) 2008 Google Inc. +// +// 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. + + + +/** + * @fileoverview + * Registers a language handler for OCaml, SML, F# and similar languages. + * + * Based on the lexical grammar at + * http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715 + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace is made up of spaces, tabs and newline characters. + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // #if ident/#else/#endif directives delimit conditional compilation + // sections + [PR.PR_COMMENT, + /^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i, + null, '#'], + // A double or single quoted, possibly multi-line, string. + // F# allows escaped newlines in strings. + [PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\''] + ], + [ + // Block comments are delimited by (* and *) and may be + // nested. Single-line comments begin with // and extend to + // the end of a line. + // TODO: (*...*) comments can be nested. This does not handle that. + [PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/], + [PR.PR_KEYWORD, /^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], + // A number is a hex integer literal, a decimal real literal, or in + // scientific notation. + [PR.PR_LITERAL, + /^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], + [PR.PR_PLAIN, /^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i], + // A printable non-space non-special character + [PR.PR_PUNCTUATION, /^[^\t\n\r \xA0\"\'\w]+/] + ]), + ['fs', 'ml']); diff --git a/src/lang-nasm.js b/src/lang-nasm.js new file mode 100644 index 0000000..965ead6 --- /dev/null +++ b/src/lang-nasm.js @@ -0,0 +1,48 @@ +// Copyright (C) 2009 Onno Hommes. +// +// 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. + + +/** + * @fileoverview + * Registers a language handler for the AGC/AEA Assembly Language as described + * at http://virtualagc.googlecode.com + *

+ * This file could be used by goodle code to allow syntax highlight for + * Virtual AGC SVN repository or if you don't want to commonize + * the header for the agc/aea html assembly listing. + * + * @author ohommes@alumni.cmu.edu + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // A line comment that starts with ; + [PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'], + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'] + ], + [ + [PR.PR_KEYWORD, /^\[[\w\s]+\]/], + [PR.PR_KEYWORD, /^\%\w+/], + [PR.PR_KEYWORD, + /^\b(align|cli|sti|mov|equ|dd|dw|times|or|lgdt|xor|invlpg|add|pusha|push|call|jmp|popa|pop|int|ret)\b/], + [PR.PR_TYPE, + /^\b(eax|ax|ah|al|ebx|bx|bh|bl|ecx|cx|ch|cl|edx|dx|dh|dl|esi|edi|ebp|eip|esp|eflags|cs|ds|es|fs|gs|ss|cr0|cr1|cr2|cr3|cr4)\b/], + [PR.PR_DECLARATION, /^#.*/, null, '#'], + [PR.PR_LITERAL, /^0x[0-9A-F]*/], + [PR.PR_LITERAL, /^\d+/] + + ]), + ['nasm', 'asm', 'as', 's']); diff --git a/src/lang-proto.js b/src/lang-proto.js new file mode 100644 index 0000000..d6531fd --- /dev/null +++ b/src/lang-proto.js @@ -0,0 +1,35 @@ +// Copyright (C) 2006 Google Inc. +// +// 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. + + +/** + * @fileoverview + * Registers a language handler for Protocol Buffers as described at + * http://code.google.com/p/protobuf/. + * + * Based on the lexical grammar at + * http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715 + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler(PR.sourceDecorator({ + keywords: ( + 'bool bytes default double enum extend extensions false fixed32 ' + + 'fixed64 float group import int32 int64 max message option ' + + 'optional package repeated required returns rpc service ' + + 'sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 ' + + 'uint64'), + cStyleComments: true + }), ['proto']); diff --git a/src/lang-scala.js b/src/lang-scala.js new file mode 100644 index 0000000..e0d675a --- /dev/null +++ b/src/lang-scala.js @@ -0,0 +1,54 @@ +// Copyright (C) 2010 Google Inc. +// +// 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. + + +/** + * @fileoverview + * Registers a language handler for Scala. + * + * Derived from http://lampsvn.epfl.ch/svn-repos/scala/scala-documentation/trunk/src/reference/SyntaxSummary.tex + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double or single quoted string + // or a triple double-quoted multi-line string. + [PR.PR_STRING, + /^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/, + null, '"'], + [PR.PR_LITERAL, /^`(?:[^\r\n\\`]|\\.)*`?/, null, '`'], + [PR.PR_PUNCTUATION, /^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/, null, + '!#%&()*+,-:;<=>?@[\\]^{|}~'] + ], + [ + // A symbol literal is a single quote followed by an identifier with no + // single quote following + // A character literal has single quotes on either side + [PR.PR_STRING, /^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/], + [PR.PR_LITERAL, /^'[a-zA-Z_$][\w$]*(?!['$\w])/], + [PR.PR_KEYWORD, /^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], + [PR.PR_LITERAL, /^(?:true|false|null|this)\b/], + [PR.PR_LITERAL, /^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i], + // Treat upper camel case identifiers as types. + [PR.PR_TYPE, /^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/], + [PR.PR_PLAIN, /^[$a-zA-Z_][\w$]*/], + [PR.PR_COMMENT, /^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/], + [PR.PR_PUNCTUATION, /^(?:\.+|\/)/] + ]), + ['scala']); diff --git a/src/lang-sql.js b/src/lang-sql.js new file mode 100644 index 0000000..7a58097 --- /dev/null +++ b/src/lang-sql.js @@ -0,0 +1,57 @@ +// Copyright (C) 2008 Google Inc. +// +// 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. + + + +/** + * @fileoverview + * Registers a language handler for SQL. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *

(my SQL code)
+ * + * + * http://savage.net.au/SQL/sql-99.bnf.html is the basis for the grammar, and + * http://msdn.microsoft.com/en-us/library/aa238507(SQL.80).aspx as the basis + * for the keyword list. + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double or single quoted, possibly multi-line, string. + [PR.PR_STRING, /^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/, null, + '"\''] + ], + [ + // A comment is either a line comment that starts with two dashes, or + // two dashes preceding a long bracketed block. + [PR.PR_COMMENT, /^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/], + [PR.PR_KEYWORD, /^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i, null], + // A number is a hex integer literal, a decimal real literal, or in + // scientific notation. + [PR.PR_LITERAL, + /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], + // An identifier + [PR.PR_PLAIN, /^[a-z_][\w-]*/i], + // A run of punctuation + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/] + ]), + ['sql']); diff --git a/src/lang-tex.js b/src/lang-tex.js new file mode 100644 index 0000000..57d0ac4 --- /dev/null +++ b/src/lang-tex.js @@ -0,0 +1,46 @@ +// Copyright (C) 2011 Martin S. +// +// 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. + +/** + * @fileoverview + * Support for tex highlighting as discussed on + * meta.tex.stackexchange.com. + * + * @author Martin S. + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // all comments begin with '%' + [PR.PR_COMMENT, /^%[^\r\n]*/, null, '%'] + ], + [ + //[PR.PR_DECLARATION, /^\\([egx]?def|(new|renew|provide)(command|environment))\b/], + // any command starting with a \ and contains + // either only letters (a-z,A-Z), '@' (internal macros) + [PR.PR_KEYWORD, /^\\[a-zA-Z@]+/], + // or contains only one character + [PR.PR_KEYWORD, /^\\./], + // Highlight dollar for math mode and ampersam for tabular + [PR.PR_TYPE, /^[$&]/], + // numeric measurement values with attached units + [PR.PR_LITERAL, + /[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i], + // punctuation usually occurring within commands + [PR.PR_PUNCTUATION, /^[{}()\[\]=]+/] + ]), + ['latex', 'tex']); diff --git a/src/lang-vb.js b/src/lang-vb.js new file mode 100644 index 0000000..a38db45 --- /dev/null +++ b/src/lang-vb.js @@ -0,0 +1,61 @@ +// Copyright (C) 2009 Google Inc. +// +// 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. + + + +/** + * @fileoverview + * Registers a language handler for various flavors of basic. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *

+ *
+ *
+ * http://msdn.microsoft.com/en-us/library/aa711638(VS.71).aspx defines the
+ * visual basic grammar lexical grammar.
+ *
+ * @author mikesamuel@gmail.com
+ */
+
+PR.registerLangHandler(
+    PR.createSimpleLexer(
+        [
+         // Whitespace
+         [PR.PR_PLAIN,       /^[\t\n\r \xA0\u2028\u2029]+/, null, '\t\n\r \xA0\u2028\u2029'],
+         // A double quoted string with quotes escaped by doubling them.
+         // A single character can be suffixed with C.
+         [PR.PR_STRING,      /^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i, null,
+          '"\u201C\u201D'],
+         // A comment starts with a single quote and runs until the end of the
+         // line.
+         [PR.PR_COMMENT,     /^[\'\u2018\u2019][^\r\n\u2028\u2029]*/, null, '\'\u2018\u2019']
+        ],
+        [
+         [PR.PR_KEYWORD, /^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, null],
+         // A second comment form
+         [PR.PR_COMMENT, /^REM[^\r\n\u2028\u2029]*/i],
+         // A boolean, numeric, or date literal.
+         [PR.PR_LITERAL,
+          /^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],
+         // An identifier?
+         [PR.PR_PLAIN, /^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],
+         // A run of punctuation
+         [PR.PR_PUNCTUATION,
+          /^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],
+         // Square brackets
+         [PR.PR_PUNCTUATION, /^(?:\[|\])/]
+        ]),
+    ['vb', 'vbs']);
diff --git a/src/lang-vhdl.js b/src/lang-vhdl.js
new file mode 100644
index 0000000..9c4921c
--- /dev/null
+++ b/src/lang-vhdl.js
@@ -0,0 +1,34 @@
+/**
+ * @fileoverview
+ * Registers a language handler for VHDL '93.
+ *
+ * Based on the lexical grammar and keywords at
+ * http://www.iis.ee.ethz.ch/~zimmi/download/vhdl93_syntax.html
+ *
+ * @author benoit@ryder.fr
+ */
+
+PR.registerLangHandler(
+    PR.createSimpleLexer(
+        [
+         // Whitespace
+         [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0']
+        ],
+        [
+         // String, character or bit string
+         [PR.PR_STRING, /^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],
+         // Comment, from two dashes until end of line.
+         [PR.PR_COMMENT, /^--[^\r\n]*/],
+         [PR.PR_KEYWORD, /^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, null],
+         // Type, predefined or standard
+         [PR.PR_TYPE, /^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i, null],
+         // Predefined attributes
+         [PR.PR_TYPE, /^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i, null],
+         // Number, decimal or based literal
+         [PR.PR_LITERAL, /^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i],
+         // Identifier, basic or extended
+         [PR.PR_PLAIN, /^(?:[a-z]\w*|\\[^\\]*\\)/i],
+         // Punctuation
+         [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]
+        ]),
+    ['vhdl', 'vhd']);
diff --git a/src/lang-wiki.js b/src/lang-wiki.js
new file mode 100644
index 0000000..d4aa350
--- /dev/null
+++ b/src/lang-wiki.js
@@ -0,0 +1,53 @@
+// Copyright (C) 2009 Google Inc.
+//
+// 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.
+
+
+/**
+ * @fileoverview
+ * Registers a language handler for Wiki pages.
+ *
+ * Based on WikiSyntax at http://code.google.com/p/support/wiki/WikiSyntax
+ *
+ * @author mikesamuel@gmail.com
+ */
+
+PR.registerLangHandler(
+    PR.createSimpleLexer(
+        [
+         // Whitespace
+         [PR.PR_PLAIN,       /^[\t \xA0a-gi-z0-9]+/, null,
+          '\t \xA0abcdefgijklmnopqrstuvwxyz0123456789'],
+         // Wiki formatting
+         [PR.PR_PUNCTUATION, /^[=*~\^\[\]]+/, null, '=*~^[]']
+        ],
+        [
+         // Meta-info like #summary, #labels, etc.
+         ['lang-wiki.meta',  /(?:^^|\r\n?|\n)(#[a-z]+)\b/],
+         // A WikiWord
+         [PR.PR_LITERAL,     /^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/
+          ],
+         // A preformatted block in an unknown language
+         ['lang-',           /^\{\{\{([\s\S]+?)\}\}\}/],
+         // A block of source code in an unknown language
+         ['lang-',           /^`([^\r\n`]+)`/],
+         // An inline URL.
+         [PR.PR_STRING,
+          /^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],
+         [PR.PR_PLAIN,       /^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]
+        ]),
+    ['wiki']);
+
+PR.registerLangHandler(
+    PR.createSimpleLexer([[PR.PR_KEYWORD, /^#[a-z]+/i, null, '#']], []),
+    ['wiki.meta']);
diff --git a/src/lang-yaml.js b/src/lang-yaml.js
new file mode 100644
index 0000000..271139f
--- /dev/null
+++ b/src/lang-yaml.js
@@ -0,0 +1,27 @@
+// Contributed by ribrdb @ code.google.com
+
+/**
+ * @fileoverview
+ * Registers a language handler for YAML.
+ *
+ * @author ribrdb
+ */
+
+PR.registerLangHandler(
+  PR.createSimpleLexer(
+    [
+      [PR.PR_PUNCTUATION, /^[:|>?]+/, null, ':|>?'],
+      [PR.PR_DECLARATION,  /^%(?:YAML|TAG)[^#\r\n]+/, null, '%'],
+      [PR.PR_TYPE, /^[&]\S+/, null, '&'],
+      [PR.PR_TYPE, /^!\S*/, null, '!'],
+      [PR.PR_STRING, /^"(?:[^\\"]|\\.)*(?:"|$)/, null, '"'],
+      [PR.PR_STRING, /^'(?:[^']|'')*(?:'|$)/, null, "'"],
+      [PR.PR_COMMENT, /^#[^\r\n]*/, null, '#'],
+      [PR.PR_PLAIN, /^\s+/, null, ' \t\r\n']
+    ],
+    [
+      [PR.PR_DECLARATION, /^(?:---|\.\.\.)(?:[\r\n]|$)/],
+      [PR.PR_PUNCTUATION, /^-/],
+      [PR.PR_KEYWORD, /^\w+:[ \r\n]/],
+      [PR.PR_PLAIN, /^\w+/]
+    ]), ['yaml', 'yml']);
diff --git a/src/openid.php b/src/openid.php
new file mode 100644
index 0000000..19e5e7d
--- /dev/null
+++ b/src/openid.php
@@ -0,0 +1,765 @@
+
+ * $openid = new LightOpenID;
+ * $openid->identity = 'ID supplied by user';
+ * header('Location: ' . $openid->authUrl());
+ * 
+ * The provider then sends various parameters via GET, one of them is openid_mode.
+ * Step two is verification:
+ * 
+ * if ($this->data['openid_mode']) {
+ *     $openid = new LightOpenID;
+ *     echo $openid->validate() ? 'Logged in.' : 'Failed';
+ * }
+ * 
+ *
+ * Optionally, you can set $returnUrl and $realm (or $trustRoot, which is an alias).
+ * The default values for those are:
+ * $openid->realm     = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
+ * $openid->returnUrl = $openid->realm . $_SERVER['REQUEST_URI'];
+ * If you don't know their meaning, refer to any openid tutorial, or specification. Or just guess.
+ *
+ * AX and SREG extensions are supported.
+ * To use them, specify $openid->required and/or $openid->optional before calling $openid->authUrl().
+ * These are arrays, with values being AX schema paths (the 'path' part of the URL).
+ * For example:
+ *   $openid->required = array('namePerson/friendly', 'contact/email');
+ *   $openid->optional = array('namePerson/first');
+ * If the server supports only SREG or OpenID 1.1, these are automaticaly
+ * mapped to SREG names, so that user doesn't have to know anything about the server.
+ *
+ * To get the values, use $openid->getAttributes().
+ *
+ *
+ * The library requires PHP >= 5.1.2 with curl or http/https stream wrappers enabled.
+ * @author Mewp
+ * @copyright Copyright (c) 2010, Mewp
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ */
+class LightOpenID
+{
+    public $returnUrl
+         , $required = array()
+         , $optional = array()
+         , $verify_peer = null
+         , $capath = null
+         , $cainfo = null;
+    private $identity, $claimed_id;
+    protected $server, $version, $trustRoot, $aliases, $identifier_select = false
+            , $ax = false, $sreg = false, $data, $setup_url = null;
+    static protected $ax_to_sreg = array(
+        'namePerson/friendly'     => 'nickname',
+        'contact/email'           => 'email',
+        'namePerson'              => 'fullname',
+        'birthDate'               => 'dob',
+        'person/gender'           => 'gender',
+        'contact/postalCode/home' => 'postcode',
+        'contact/country/home'    => 'country',
+        'pref/language'           => 'language',
+        'pref/timezone'           => 'timezone',
+	'namePerson/first'	=> 'firstname',
+	'namePerson/last'	=> 'lastname',
+        );
+
+    function __construct()
+    {
+        $this->trustRoot = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
+        $uri = rtrim(preg_replace('#((?<=\?)|&)openid\.[^&]+#', '', $_SERVER['REQUEST_URI']), '?');
+        $this->returnUrl = $this->trustRoot . $uri;
+
+        $this->data = $_POST + $_GET; # OPs may send data as POST or GET.
+
+        if(!function_exists('curl_init') && !in_array('https', stream_get_wrappers())) {
+            throw new ErrorException('You must have either https wrappers or curl enabled.');
+        }
+    }
+
+    function __set($name, $value)
+    {
+        switch ($name) {
+        case 'identity':
+            if (strlen($value = trim((String) $value))) {
+                if (preg_match('#^xri:/*#i', $value, $m)) {
+                    $value = substr($value, strlen($m[0]));
+                } elseif (!preg_match('/^(?:[=@+\$!\(]|https?:)/i', $value)) {
+                    $value = "http://$value";
+                }
+                if (preg_match('#^https?://[^/]+$#i', $value, $m)) {
+                    $value .= '/';
+                }
+            }
+            $this->$name = $this->claimed_id = $value;
+            break;
+        case 'trustRoot':
+        case 'realm':
+            $this->trustRoot = trim($value);
+        }
+    }
+
+    function __get($name)
+    {
+        switch ($name) {
+        case 'identity':
+            # We return claimed_id instead of identity,
+            # because the developer should see the claimed identifier,
+            # i.e. what he set as identity, not the op-local identifier (which is what we verify)
+            return $this->claimed_id;
+        case 'trustRoot':
+        case 'realm':
+            return $this->trustRoot;
+        case 'mode':
+            return empty($this->data['openid_mode']) ? null : $this->data['openid_mode'];
+        }
+    }
+
+    /**
+     * Checks if the server specified in the url exists.
+     *
+     * @param $url url to check
+     * @return true, if the server exists; false otherwise
+     */
+    function hostExists($url)
+    {
+        if (strpos($url, '/') === false) {
+            $server = $url;
+        } else {
+            $server = @parse_url($url, PHP_URL_HOST);
+        }
+
+        if (!$server) {
+            return false;
+        }
+
+        return !!gethostbynamel($server);
+    }
+
+    protected function request_curl($url, $method='GET', $params=array())
+    {
+        $params = http_build_query($params, '', '&');
+        $curl = curl_init($url . ($method == 'GET' && $params ? '?' . $params : ''));
+        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
+        curl_setopt($curl, CURLOPT_HEADER, false);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/xrds+xml, */*'));
+
+        if($this->verify_peer !== null) {
+            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verify_peer);
+            if($this->capath) {
+                curl_setopt($curl, CURLOPT_CAPATH, $this->capath);
+            }
+
+            if($this->cainfo) {
+                curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
+            }
+        }
+
+        if ($method == 'POST') {
+            curl_setopt($curl, CURLOPT_POST, true);
+            curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
+        } elseif ($method == 'HEAD') {
+            curl_setopt($curl, CURLOPT_HEADER, true);
+            curl_setopt($curl, CURLOPT_NOBODY, true);
+        } else {
+            curl_setopt($curl, CURLOPT_HTTPGET, true);
+        }
+        $response = curl_exec($curl);
+
+        if($method == 'HEAD') {
+            $headers = array();
+            foreach(explode("\n", $response) as $header) {
+                $pos = strpos($header,':');
+                $name = strtolower(trim(substr($header, 0, $pos)));
+                $headers[$name] = trim(substr($header, $pos+1));
+            }
+
+            # Updating claimed_id in case of redirections.
+            $effective_url = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
+            if($effective_url != $url) {
+                $this->identity = $this->claimed_id = $effective_url;
+            }
+
+            return $headers;
+        }
+
+        if (curl_errno($curl)) {
+            throw new ErrorException(curl_error($curl), curl_errno($curl));
+        }
+
+        return $response;
+    }
+
+    protected function request_streams($url, $method='GET', $params=array())
+    {
+        if(!$this->hostExists($url)) {
+            throw new ErrorException('Invalid request.');
+        }
+
+        $params = http_build_query($params, '', '&');
+        switch($method) {
+        case 'GET':
+            $opts = array(
+                'http' => array(
+                    'method' => 'GET',
+                    'header' => 'Accept: application/xrds+xml, */*',
+                    'ignore_errors' => true,
+                )
+            );
+            $url = $url . ($params ? '?' . $params : '');
+            break;
+        case 'POST':
+            $opts = array(
+                'http' => array(
+                    'method' => 'POST',
+                    'header'  => 'Content-type: application/x-www-form-urlencoded',
+                    'content' => $params,
+                    'ignore_errors' => true,
+                )
+            );
+            break;
+        case 'HEAD':
+            # We want to send a HEAD request,
+            # but since get_headers doesn't accept $context parameter,
+            # we have to change the defaults.
+            $default = stream_context_get_options(stream_context_get_default());
+            stream_context_get_default(
+                array('http' => array(
+                    'method' => 'HEAD',
+                    'header' => 'Accept: application/xrds+xml, */*',
+                    'ignore_errors' => true,
+                ))
+            );
+
+            $url = $url . ($params ? '?' . $params : '');
+            $headers_tmp = get_headers ($url);
+            if(!$headers_tmp) {
+                return array();
+            }
+
+            # Parsing headers.
+            $headers = array();
+            foreach($headers_tmp as $header) {
+                $pos = strpos($header,':');
+                $name = strtolower(trim(substr($header, 0, $pos)));
+                $headers[$name] = trim(substr($header, $pos+1));
+
+                # Following possible redirections. The point is just to have
+                # claimed_id change with them, because get_headers() will
+                # follow redirections automatically.
+                # We ignore redirections with relative paths.
+                # If any known provider uses them, file a bug report.
+                if($name == 'location') {
+                    if(strpos($headers[$name], 'http') === 0) {
+                        $this->identity = $this->claimed_id = $headers[$name];
+                    } elseif($headers[$name][0] == '/') {
+                        $parsed_url = parse_url($this->claimed_id);
+                        $this->identity =
+                        $this->claimed_id = $parsed_url['scheme'] . '://'
+                                          . $parsed_url['host']
+                                          . $headers[$name];
+                    }
+                }
+            }
+
+            # And restore them.
+            stream_context_get_default($default);
+            return $headers;
+        }
+
+        if($this->verify_peer) {
+            $opts += array('ssl' => array(
+                'verify_peer' => true,
+                'capath'      => $this->capath,
+                'cafile'      => $this->cainfo,
+            ));
+        }
+
+        $context = stream_context_create ($opts);
+
+        return file_get_contents($url, false, $context);
+    }
+
+    protected function request($url, $method='GET', $params=array())
+    {
+        if(function_exists('curl_init') && !ini_get('safe_mode') && !ini_get('open_basedir')) {
+            return $this->request_curl($url, $method, $params);
+        }
+        return $this->request_streams($url, $method, $params);
+    }
+
+    protected function build_url($url, $parts)
+    {
+        if (isset($url['query'], $parts['query'])) {
+            $parts['query'] = $url['query'] . '&' . $parts['query'];
+        }
+
+        $url = $parts + $url;
+        $url = $url['scheme'] . '://'
+             . (empty($url['username'])?''
+                 :(empty($url['password'])? "{$url['username']}@"
+                 :"{$url['username']}:{$url['password']}@"))
+             . $url['host']
+             . (empty($url['port'])?'':":{$url['port']}")
+             . (empty($url['path'])?'':$url['path'])
+             . (empty($url['query'])?'':"?{$url['query']}")
+             . (empty($url['fragment'])?'':"#{$url['fragment']}");
+        return $url;
+    }
+
+    /**
+     * Helper function used to scan for / tags and extract information
+     * from them
+     */
+    protected function htmlTag($content, $tag, $attrName, $attrValue, $valueName)
+    {
+        preg_match_all("#<{$tag}[^>]*$attrName=['\"].*?$attrValue.*?['\"][^>]*$valueName=['\"](.+?)['\"][^>]*/?>#i", $content, $matches1);
+        preg_match_all("#<{$tag}[^>]*$valueName=['\"](.+?)['\"][^>]*$attrName=['\"].*?$attrValue.*?['\"][^>]*/?>#i", $content, $matches2);
+
+        $result = array_merge($matches1[1], $matches2[1]);
+        return empty($result)?false:$result[0];
+    }
+
+    /**
+     * Performs Yadis and HTML discovery. Normally not used.
+     * @param $url Identity URL.
+     * @return String OP Endpoint (i.e. OpenID provider address).
+     * @throws ErrorException
+     */
+    function discover($url)
+    {
+        if (!$url) throw new ErrorException('No identity supplied.');
+        # Use xri.net proxy to resolve i-name identities
+        if (!preg_match('#^https?:#', $url)) {
+            $url = "https://xri.net/$url";
+        }
+
+        # We save the original url in case of Yadis discovery failure.
+        # It can happen when we'll be lead to an XRDS document
+        # which does not have any OpenID2 services.
+        $originalUrl = $url;
+
+        # A flag to disable yadis discovery in case of failure in headers.
+        $yadis = true;
+
+        # We'll jump a maximum of 5 times, to avoid endless redirections.
+        for ($i = 0; $i < 5; $i ++) {
+            if ($yadis) {
+                $headers = $this->request($url, 'HEAD');
+
+                $next = false;
+                if (isset($headers['x-xrds-location'])) {
+                    $url = $this->build_url(parse_url($url), parse_url(trim($headers['x-xrds-location'])));
+                    $next = true;
+                }
+
+                if (isset($headers['content-type'])
+                    && (strpos($headers['content-type'], 'application/xrds+xml') !== false
+                        || strpos($headers['content-type'], 'text/xml') !== false)
+                ) {
+                    # Apparently, some providers return XRDS documents as text/html.
+                    # While it is against the spec, allowing this here shouldn't break
+                    # compatibility with anything.
+                    # ---
+                    # Found an XRDS document, now let's find the server, and optionally delegate.
+                    $content = $this->request($url, 'GET');
+
+                    preg_match_all('#(.*?)#s', $content, $m);
+                    foreach($m[1] as $content) {
+                        $content = ' ' . $content; # The space is added, so that strpos doesn't return 0.
+
+                        # OpenID 2
+                        $ns = preg_quote('http://specs.openid.net/auth/2.0/');
+                        if(preg_match('#\s*'.$ns.'(server|signon)\s*#s', $content, $type)) {
+                            if ($type[1] == 'server') $this->identifier_select = true;
+
+                            preg_match('#(.*)#', $content, $server);
+                            preg_match('#<(Local|Canonical)ID>(.*)#', $content, $delegate);
+                            if (empty($server)) {
+                                return false;
+                            }
+                            # Does the server advertise support for either AX or SREG?
+                            $this->ax   = (bool) strpos($content, 'http://openid.net/srv/ax/1.0');
+                            $this->sreg = strpos($content, 'http://openid.net/sreg/1.0')
+                                       || strpos($content, 'http://openid.net/extensions/sreg/1.1');
+
+                            $server = $server[1];
+                            if (isset($delegate[2])) $this->identity = trim($delegate[2]);
+                            $this->version = 2;
+
+                            $this->server = $server;
+                            return $server;
+                        }
+
+                        # OpenID 1.1
+                        $ns = preg_quote('http://openid.net/signon/1.1');
+                        if (preg_match('#\s*'.$ns.'\s*#s', $content)) {
+
+                            preg_match('#(.*)#', $content, $server);
+                            preg_match('#<.*?Delegate>(.*)#', $content, $delegate);
+                            if (empty($server)) {
+                                return false;
+                            }
+                            # AX can be used only with OpenID 2.0, so checking only SREG
+                            $this->sreg = strpos($content, 'http://openid.net/sreg/1.0')
+                                       || strpos($content, 'http://openid.net/extensions/sreg/1.1');
+
+                            $server = $server[1];
+                            if (isset($delegate[1])) $this->identity = $delegate[1];
+                            $this->version = 1;
+
+                            $this->server = $server;
+                            return $server;
+                        }
+                    }
+
+                    $next = true;
+                    $yadis = false;
+                    $url = $originalUrl;
+                    $content = null;
+                    break;
+                }
+                if ($next) continue;
+
+                # There are no relevant information in headers, so we search the body.
+                $content = $this->request($url, 'GET');
+                $location = $this->htmlTag($content, 'meta', 'http-equiv', 'X-XRDS-Location', 'content');
+                if ($location) {
+                    $url = $this->build_url(parse_url($url), parse_url($location));
+                    continue;
+                }
+            }
+
+            if (!$content) $content = $this->request($url, 'GET');
+
+            # At this point, the YADIS Discovery has failed, so we'll switch
+            # to openid2 HTML discovery, then fallback to openid 1.1 discovery.
+            $server   = $this->htmlTag($content, 'link', 'rel', 'openid2.provider', 'href');
+            $delegate = $this->htmlTag($content, 'link', 'rel', 'openid2.local_id', 'href');
+            $this->version = 2;
+
+            if (!$server) {
+                # The same with openid 1.1
+                $server   = $this->htmlTag($content, 'link', 'rel', 'openid.server', 'href');
+                $delegate = $this->htmlTag($content, 'link', 'rel', 'openid.delegate', 'href');
+                $this->version = 1;
+            }
+
+            if ($server) {
+                # We found an OpenID2 OP Endpoint
+                if ($delegate) {
+                    # We have also found an OP-Local ID.
+                    $this->identity = $delegate;
+                }
+                $this->server = $server;
+                return $server;
+            }
+
+            throw new ErrorException('No servers found!');
+        }
+        throw new ErrorException('Endless redirection!');
+    }
+
+    protected function papeParams()
+    {
+	$params = array();
+	$params['openid.ns.pape'] = 'http://specs.openid.net/extensions/pape/1.0';
+	$params['openid.pape.max_auth_age'] = '0';
+	$params['openid.ns.ui'] = 'http://specs.openid.net/extensions/ui/1.0';
+	$params['openid.ui.mode'] = 'popup';
+	return $params;
+    }
+    protected function sregParams()
+    {
+        $params = array();
+        # We always use SREG 1.1, even if the server is advertising only support for 1.0.
+        # That's because it's fully backwards compatibile with 1.0, and some providers
+        # advertise 1.0 even if they accept only 1.1. One such provider is myopenid.com
+        $params['openid.ns.sreg'] = 'http://openid.net/extensions/sreg/1.1';
+        if ($this->required) {
+            $params['openid.sreg.required'] = array();
+            foreach ($this->required as $required) {
+                if (!isset(self::$ax_to_sreg[$required])) continue;
+                $params['openid.sreg.required'][] = self::$ax_to_sreg[$required];
+            }
+            $params['openid.sreg.required'] = implode(',', $params['openid.sreg.required']);
+        }
+
+        if ($this->optional) {
+            $params['openid.sreg.optional'] = array();
+            foreach ($this->optional as $optional) {
+                if (!isset(self::$ax_to_sreg[$optional])) continue;
+                $params['openid.sreg.optional'][] = self::$ax_to_sreg[$optional];
+            }
+            $params['openid.sreg.optional'] = implode(',', $params['openid.sreg.optional']);
+        }
+        return $params;
+    }
+
+    protected function axParams()
+    {
+        $params = array();
+        if ($this->required || $this->optional) {
+            $params['openid.ns.ax'] = 'http://openid.net/srv/ax/1.0';
+            $params['openid.ax.mode'] = 'fetch_request';
+            $this->aliases  = array();
+            $counts   = array();
+            $required = array();
+            $optional = array();
+            foreach (array('required','optional') as $type) {
+                foreach ($this->$type as $alias => $field) {
+                    if (is_int($alias)) $alias = strtr($field, '/', '_');
+                    $this->aliases[$alias] = 'http://axschema.org/' . $field;
+                    if (empty($counts[$alias])) $counts[$alias] = 0;
+                    $counts[$alias] += 1;
+                    ${$type}[] = $alias;
+                }
+            }
+            foreach ($this->aliases as $alias => $ns) {
+                $params['openid.ax.type.' . $alias] = $ns;
+            }
+            foreach ($counts as $alias => $count) {
+                if ($count == 1) continue;
+                $params['openid.ax.count.' . $alias] = $count;
+            }
+
+            # Don't send empty ax.requied and ax.if_available.
+            # Google and possibly other providers refuse to support ax when one of these is empty.
+            if($required) {
+                $params['openid.ax.required'] = implode(',', $required);
+            }
+            if($optional) {
+                $params['openid.ax.if_available'] = implode(',', $optional);
+            }
+        }
+        return $params;
+    }
+
+    protected function authUrl_v1($immediate)
+    {
+	$returnUrl = $this->returnUrl;
+        # If we have an openid.delegate that is different from our claimed id,
+        # we need to somehow preserve the claimed id between requests.
+        # The simplest way is to just send it along with the return_to url.
+        if($this->identity != $this->claimed_id) {
+            $returnUrl .= (strpos($returnUrl, '?') ? '&' : '?') . 'openid.claimed_id=' . $this->claimed_id;
+        }
+
+        $params = array(
+            'openid.return_to'  => $returnUrl,
+            'openid.mode'       => $immediate ? 'checkid_immediate' : 'checkid_setup',
+            'openid.identity'   => $this->identity,
+            'openid.trust_root' => $this->trustRoot,
+            ) + $this->sregParams() + $this->papeParams();
+
+        return $this->build_url(parse_url($this->server)
+                               , array('query' => http_build_query($params, '', '&')));
+    }
+
+    protected function authUrl_v2($immediate)
+    {
+        $params = array(
+            'openid.ns'          => 'http://specs.openid.net/auth/2.0',
+            'openid.mode'        => $immediate ? 'checkid_immediate' : 'checkid_setup',
+            'openid.return_to'   => $this->returnUrl,
+            'openid.realm'       => $this->trustRoot,
+        );
+        if ($this->ax) {
+            $params += $this->axParams();
+        }
+        if ($this->sreg) {
+            $params += $this->sregParams();
+        }
+        if (!$this->ax && !$this->sreg) {
+            # If OP doesn't advertise either SREG, nor AX, let's send them both
+            # in worst case we don't get anything in return.
+            $params += $this->axParams() + $this->sregParams();
+        }
+	$params = $params + $this->papeParams();
+        if ($this->identifier_select) {
+            $params['openid.identity'] = $params['openid.claimed_id']
+                 = 'http://specs.openid.net/auth/2.0/identifier_select';
+        } else {
+            $params['openid.identity'] = $this->identity;
+            $params['openid.claimed_id'] = $this->claimed_id;
+        }
+
+        return $this->build_url(parse_url($this->server)
+                               , array('query' => http_build_query($params, '', '&')));
+    }
+
+    /**
+     * Returns authentication url. Usually, you want to redirect your user to it.
+     * @return String The authentication url.
+     * @param String $select_identifier Whether to request OP to select identity for an user in OpenID 2. Does not affect OpenID 1.
+     * @throws ErrorException
+     */
+    function authUrl($immediate = false)
+    {
+        if ($this->setup_url && !$immediate) return $this->setup_url;
+        if (!$this->server) $this->discover($this->identity);
+
+        if ($this->version == 2) {
+            return $this->authUrl_v2($immediate);
+        }
+        return $this->authUrl_v1($immediate);
+    }
+
+    /**
+     * Performs OpenID verification with the OP.
+     * @return Bool Whether the verification was successful.
+     * @throws ErrorException
+     */
+    function validate()
+    {
+        # If the request was using immediate mode, a failure may be reported
+        # by presenting user_setup_url (for 1.1) or reporting
+        # mode 'setup_needed' (for 2.0). Also catching all modes other than
+        # id_res, in order to avoid throwing errors.
+        if(isset($this->data['openid_user_setup_url'])) {
+            $this->setup_url = $this->data['openid_user_setup_url'];
+            return false;
+        }
+        if($this->mode != 'id_res') {
+            return false;
+        }
+
+        $this->claimed_id = isset($this->data['openid_claimed_id'])?$this->data['openid_claimed_id']:$this->data['openid_identity'];
+        $params = array(
+            'openid.assoc_handle' => $this->data['openid_assoc_handle'],
+            'openid.signed'       => $this->data['openid_signed'],
+            'openid.sig'          => $this->data['openid_sig'],
+            );
+
+        if (isset($this->data['openid_ns'])) {
+            # We're dealing with an OpenID 2.0 server, so let's set an ns
+            # Even though we should know location of the endpoint,
+            # we still need to verify it by discovery, so $server is not set here
+            $params['openid.ns'] = 'http://specs.openid.net/auth/2.0';
+        } elseif (isset($this->data['openid_claimed_id'])
+            && $this->data['openid_claimed_id'] != $this->data['openid_identity']
+        ) {
+            # If it's an OpenID 1 provider, and we've got claimed_id,
+            # we have to append it to the returnUrl, like authUrl_v1 does.
+            $this->returnUrl .= (strpos($this->returnUrl, '?') ? '&' : '?')
+                             .  'openid.claimed_id=' . $this->claimed_id;
+        }
+
+        if ($this->data['openid_return_to'] != $this->returnUrl) {
+            # The return_to url must match the url of current request.
+            # I'm assuing that noone will set the returnUrl to something that doesn't make sense.
+            return false;
+        }
+
+        $server = $this->discover($this->claimed_id);
+
+        foreach (explode(',', $this->data['openid_signed']) as $item) {
+            # Checking whether magic_quotes_gpc is turned on, because
+            # the function may fail if it is. For example, when fetching
+            # AX namePerson, it might containg an apostrophe, which will be escaped.
+            # In such case, validation would fail, since we'd send different data than OP
+            # wants to verify. stripslashes() should solve that problem, but we can't
+            # use it when magic_quotes is off.
+            $value = $this->data['openid_' . str_replace('.','_',$item)];
+            $params['openid.' . $item] = get_magic_quotes_gpc() ? stripslashes($value) : $value;
+
+        }
+
+        $params['openid.mode'] = 'check_authentication';
+
+        $response = $this->request($server, 'POST', $params);
+
+        return preg_match('/is_valid\s*:\s*true/i', $response);
+    }
+
+    protected function getAxAttributes()
+    {
+        $alias = null;
+        if (isset($this->data['openid_ns_ax'])
+            && $this->data['openid_ns_ax'] != 'http://openid.net/srv/ax/1.0'
+        ) { # It's the most likely case, so we'll check it before
+            $alias = 'ax';
+        } else {
+            # 'ax' prefix is either undefined, or points to another extension,
+            # so we search for another prefix
+            foreach ($this->data as $key => $val) {
+                if (substr($key, 0, strlen('openid_ns_')) == 'openid_ns_'
+                    && $val == 'http://openid.net/srv/ax/1.0'
+                ) {
+                    $alias = substr($key, strlen('openid_ns_'));
+                    break;
+                }
+            }
+        }
+        if (!$alias) {
+            # An alias for AX schema has not been found,
+            # so there is no AX data in the OP's response
+            return array();
+        }
+
+        $attributes = array();
+        foreach ($this->data as $key => $value) {
+            $keyMatch = 'openid_' . $alias . '_value_';
+            if (substr($key, 0, strlen($keyMatch)) != $keyMatch) {
+                continue;
+            }
+            $key = substr($key, strlen($keyMatch));
+            if (!isset($this->data['openid_' . $alias . '_type_' . $key])) {
+                # OP is breaking the spec by returning a field without
+                # associated ns. This shouldn't happen, but it's better
+                # to check, than cause an E_NOTICE.
+                continue;
+            }
+            $key = substr($this->data['openid_' . $alias . '_type_' . $key],
+                          strlen('http://axschema.org/'));
+            $attributes[$key] = $value;
+        }
+        return $attributes;
+    }
+
+    protected function getSregAttributes()
+    {
+        $attributes = array();
+        $sreg_to_ax = array_flip(self::$ax_to_sreg);
+        foreach ($this->data as $key => $value) {
+            $keyMatch = 'openid_sreg_';
+            if (substr($key, 0, strlen($keyMatch)) != $keyMatch) {
+                continue;
+            }
+            $key = substr($key, strlen($keyMatch));
+            if (!isset($sreg_to_ax[$key])) {
+                # The field name isn't part of the SREG spec, so we ignore it.
+                continue;
+            }
+            $attributes[$sreg_to_ax[$key]] = $value;
+        }
+        return $attributes;
+    }
+
+    /**
+     * Gets AX/SREG attributes provided by OP. should be used only after successful validaton.
+     * Note that it does not guarantee that any of the required/optional parameters will be present,
+     * or that there will be no other attributes besides those specified.
+     * In other words. OP may provide whatever information it wants to.
+     *     * SREG names will be mapped to AX names.
+     *     * @return Array Array of attributes with keys being the AX schema names, e.g. 'contact/email'
+     * @see http://www.axschema.org/types/
+     */
+    function getAttributes()
+    {
+        if (isset($this->data['openid_ns'])
+            && $this->data['openid_ns'] == 'http://specs.openid.net/auth/2.0'
+        ) { # OpenID 2.0
+            # We search for both AX and SREG attributes, with AX taking precedence.
+            return $this->getAxAttributes() + $this->getSregAttributes();
+        }
+        return $this->getSregAttributes();
+    }
+}
diff --git a/src/prettify.css b/src/prettify.css
new file mode 100644
index 0000000..9d0fbe2
--- /dev/null
+++ b/src/prettify.css
@@ -0,0 +1,44 @@
+/* Pretty printing styles. Used with prettify.js. */
+
+.str { color: #080; }
+.kwd { color: #008; }
+.com { color: #800; }
+.typ { color: #606; }
+.lit { color: #066; }
+.pun { color: #660; }
+.pln { color: #000; }
+.tag { color: #008; }
+.atn { color: #606; }
+.atv { color: #080; }
+.dec { color: #606; }
+pre.prettyprint { padding: 0px; border: 1px solid #888; clear: both; }
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums { margin-top: 0; margin-bottom: 0; margin-left: 30px} /* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L5,
+li.L6,
+li.L7,
+li.L8 { list-style-type: none }
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 { background: #eee }
+
+@media print {
+  .str { color: #060; }
+  .kwd { color: #006; font-weight: bold; }
+  .com { color: #600; font-style: italic; }
+  .typ { color: #404; font-weight: bold; }
+  .lit { color: #044; }
+  .pun { color: #440; }
+  .pln { color: #000; }
+  .tag { color: #006; font-weight: bold; }
+  .atn { color: #404; }
+  .atv { color: #060; }
+}
diff --git a/src/prettify.js b/src/prettify.js
new file mode 100644
index 0000000..9df7ade
--- /dev/null
+++ b/src/prettify.js
@@ -0,0 +1,1408 @@
+// Copyright (C) 2006 Google Inc.
+//
+// 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.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ *
+ * 

+ * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/** the number of characters between tab columns */
    +window['PR_TAB_WIDTH'] = 2;
    +
    +/** Contains functions for creating and registering new language handlers.
    +  * @type {Object}
    +  */
    +window['PR']
    +
    +/** Pretty print a chunk of code.
    +  *
    +  * @param {string} sourceCodeHtml code as html
    +  * @return {string} code as html, but prettier
    +  */
    +  = window['prettyPrintOne']
    +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +  * {@code class=prettyprint} and prettify them.
    +  * @param {Function?} opt_whenDone if specified, called when the last entry
    +  *     has been finished.
    +  */
    +  = window['prettyPrint'] = void 0;
    +
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  var FLOW_CONTROL_KEYWORDS =
    +      "break continue do else for if return while ";
    +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    +      "double enum extern float goto int long register short signed sizeof " +
    +      "static struct switch typedef union unsigned void volatile uint8_t uint16_t uint32_t ";
    +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    +      "new operator private protected public this throw true try typeof ";
    +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    +      "concept concept_map const_cast constexpr decltype " +
    +      "dynamic_cast explicit export friend inline late_check " +
    +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    +      "template typeid typename using virtual wchar_t where ";
    +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    +      "abstract boolean byte extends final finally implements import " +
    +      "instanceof null native package strictfp super synchronized throws " +
    +      "transient ";
    +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    +      "as base by checked decimal delegate descending dynamic event " +
    +      "fixed foreach from group implicit in interface internal into is lock " +
    +      "object out override orderby params partial readonly ref sbyte sealed " +
    +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    +  var COFFEE_KEYWORDS = "all and by catch class else extends false finally " +
    +      "for if in is isnt loop new no not null of off on or return super then " +
    +      "true try unless until when while yes ";
    +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    +      "debugger eval export function get null set undefined var with " +
    +      "Infinity NaN ";
    +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    +      "goto if import last local my next no our print package redo require " +
    +      "sub undef unless until use wantarray while BEGIN END ";
    +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    +      "elif except exec finally from global import in is lambda " +
    +      "nonlocal not or pass print raise try with yield " +
    +      "False True None ";
    +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    +      " defined elsif end ensure false in module next nil not or redo rescue " +
    +      "retry self super then true undef unless until when yield BEGIN END ";
    +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    +      "function in local set then until ";
    +  var ALL_KEYWORDS = (
    +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    +  var ALL_TYPES = "signed unsigned char int short long float double extern const volatile uint8_t int8_t uint16_t int16_t uint32_t int32_t union struct typedef void";
    +
    +  // token style names.  correspond to css classes
    +  /** token style for a string literal */
    +  var PR_STRING = 'str';
    +  /** token style for a keyword */
    +  var PR_KEYWORD = 'kwd';
    +  /** token style for a comment */
    +  var PR_COMMENT = 'com';
    +  /** token style for a type */
    +  var PR_TYPE = 'typ';
    +  /** token style for a literal value.  e.g. 1, null, true. */
    +  var PR_LITERAL = 'lit';
    +  /** token style for a punctuation string. */
    +  var PR_PUNCTUATION = 'pun';
    +  /** token style for a punctuation string. */
    +  var PR_PLAIN = 'pln';
    +
    +  /** token style for an sgml tag. */
    +  var PR_TAG = 'tag';
    +  /** token style for a markup declaration such as a DOCTYPE. */
    +  var PR_DECLARATION = 'dec';
    +  /** token style for embedded source. */
    +  var PR_SOURCE = 'src';
    +  /** token style for an sgml attribute name. */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /** token style for an sgml attribute value. */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  /** A set of tokens that can precede a regular expression literal in
    +    * javascript.
    +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    +    * list, but I've removed ones that might be problematic when seen in
    +    * languages that don't support regular expression literals.
    +    *
    +    * <p>Specifically, I've removed any keywords that can't precede a regexp
    +    * literal in a syntactically legal javascript program, and I've removed the
    +    * "in" keyword since it's not a keyword in many languages, and might be used
    +    * as a count of inches.
    +    *
    +    * <p>The link a above does not accurately describe EcmaScript rules since
    +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +    * very well in practice.
    +    *
    +    * @private
    +    */
    +  var REGEXP_PRECEDER_PATTERN = function () {
    +      var preceders = [
    +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    +          "||=", "~" /* handles =~ and !~ */,
    +          "break", "case", "continue", "delete",
    +          "do", "else", "finally", "instanceof",
    +          "return", "throw", "try", "typeof"
    +          ];
    +      var pattern = '(?:^^|[+-]';
    +      for (var i = 0; i < preceders.length; ++i) {
    +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    +      }
    +      pattern += ')\\s*';  // matches at end, and matches empty string
    +      return pattern;
    +      // CAVEAT: this does not properly handle the case where a regular
    +      // expression immediately follows another since a regular expression may
    +      // have flags for case-sensitivity and the like.  Having regexp tokens
    +      // adjacent is not valid in any language I'm aware of, so I'm punting.
    +      // TODO: maybe style special characters inside a regexp as punctuation.
    +    }();
    +
    +  
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union of the sets of strings matched by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +  
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +  
    +    function decodeEscape(charsetPart) {
    +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    +      switch (charsetPart.charAt(1)) {
    +        case 'b': return 8;
    +        case 't': return 9;
    +        case 'n': return 0xa;
    +        case 'v': return 0xb;
    +        case 'f': return 0xc;
    +        case 'r': return 0xd;
    +        case 'u': case 'x':
    +          return parseInt(charsetPart.substring(2), 16)
    +              || charsetPart.charCodeAt(1);
    +        case '0': case '1': case '2': case '3': case '4':
    +        case '5': case '6': case '7':
    +          return parseInt(charsetPart.substring(1), 8);
    +        default: return charsetPart.charCodeAt(1);
    +      }
    +    }
    +  
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +  
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        switch (p) {
    +          case '\\B': case '\\b':
    +          case '\\D': case '\\d':
    +          case '\\S': case '\\s':
    +          case '\\W': case '\\w':
    +            groups.push(p);
    +            continue;
    +        }
    +        var start = decodeEscape(p);
    +        var end;
    +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +          end = decodeEscape(charsetParts[i + 2]);
    +          i += 2;
    +        } else {
    +          end = start;
    +        }
    +        ranges.push([start, end]);
    +        // If the range might intersect letters, then expand it.
    +        if (!(end < 65 || start > 122)) {
    +          if (!(end < 65 || start > 90)) {
    +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +          }
    +          if (!(end < 97 || start > 122)) {
    +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +          }
    +        }
    +      }
    +  
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +  
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +  
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +  
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +  
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +  
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +  
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +  
    +      // Expand letters to groups to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +  
    +      return parts.join('');
    +    }
    +  
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +  
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +
    +  /**
    +   * Split markup into a string of source code and an array mapping ranges in
    +   * that string to the text nodes in which they appear.
    +   *
    +   * <p>
    +   * The HTML DOM structure:</p>
    +   * <pre>
    +   * (Element   "p"
    +   *   (Element "b"
    +   *     (Text  "print "))       ; #1
    +   *   (Text    "'Hello '")      ; #2
    +   *   (Element "br")            ; #3
    +   *   (Text    "  + 'World';")) ; #4
    +   * </pre>
    +   * <p>
    +   * corresponds to the HTML
    +   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>
    +   *
    +   * <p>
    +   * It will produce the output:</p>
    +   * <pre>
    +   * {
    +   *   source: "print 'Hello '\n  + 'World';",
    +   *   //                 1         2
    +   *   //       012345678901234 5678901234567
    +   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]
    +   * }
    +   * </pre>
    +   * <p>
    +   * where #1 is a reference to the {@code "print "} text node above, and so
    +   * on for the other text nodes.
    +   * </p>
    +   *
    +   * <p>
    +   * The {@code} spans array is an array of pairs.  Even elements are the start
    +   * indices of substrings, and odd elements are the text nodes (or BR elements)
    +   * that contain the text for those substrings.
    +   * Substrings continue until the next index or the end of the source.
    +   * </p>
    +   *
    +   * @param {Node} node an HTML DOM subtree containing source-code.
    +   * @return {Object} source code and the text nodes in which they occur.
    +   */
    +  function extractSourceSpans(node) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +  
    +    var chunks = [];
    +    var length = 0;
    +    var spans = [];
    +    var k = 0;
    +  
    +    var whitespace;
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      whitespace = document.defaultView.getComputedStyle(node, null)
    +          .getPropertyValue('white-space');
    +    }
    +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
    +  
    +    function walk(node) {
    +      switch (node.nodeType) {
    +        case 1:  // Element
    +          if (nocode.test(node.className)) { return; }
    +          for (var child = node.firstChild; child; child = child.nextSibling) {
    +            walk(child);
    +          }
    +          var nodeName = node.nodeName;
    +          if ('BR' === nodeName || 'LI' === nodeName) {
    +            chunks[k] = '\n';
    +            spans[k << 1] = length++;
    +            spans[(k++ << 1) | 1] = node;
    +          }
    +          break;
    +        case 3: case 4:  // Text
    +          var text = node.nodeValue;
    +          if (text.length) {
    +            if (!isPreformatted) {
    +              text = text.replace(/[ \t\r\n]+/g, ' ');
    +            } else {
    +              text = text.replace(/\r\n?/g, '\n');  // Normalize newlines.
    +            }
    +            // TODO: handle tabs here?
    +            chunks[k] = text;
    +            spans[k << 1] = length;
    +            length += text.length;
    +            spans[(k++ << 1) | 1] = node;
    +          }
    +          break;
    +      }
    +    }
    +  
    +    walk(node);
    +  
    +    return {
    +      source: chunks.join('').replace(/\n$/, ''),
    +      spans: spans
    +    };
    +  }
    +
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      source: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +    var notWs = /\S/;
    +
    +    /**
    +     * Lexes job.source and produces an output array job.decorations of style
    +     * classes preceded by the position at which they start in job.source in
    +     * order.
    +     *
    +     * @param {Object} job an object like {@code
    +     *    source: {string} sourceText plain text,
    +     *    basePos: {int} position of job.source in the larger chunk of
    +     *        sourceCode.
    +     * }
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.source, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    var hc = options['hashComments'];
    +    if (hc) {
    +      if (options['cStyleComments']) {
    +        if (hc > 1) {  // multiline hash comments
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
    +        } else {
    +          // Stop C preprocessor declarations at an unclosed open comment
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +               null, '#']);
    +        }
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    if(options['types']) {
    +    var types = options['types'].replace(/^\s+|\s+$/g, '');
    +    if (types.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_TYPE,
    +           new RegExp('^(?:' + types.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +    }
    +    if(options['decl']) {
    +      fallthroughStylePatterns.push(
    +        // [PR_DECLARATION, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
    +        [PR_DECLARATION, /^#/, null, '#']);
    +    }
    +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        // [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        // Don't treat escaped quotes in bash as starting strings.  See issue 144.
    +        [PR_PLAIN,       /^\\[\s\S]?/, null],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'types': ALL_TYPES,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /**
    +   * Given a DOM subtree, wraps it in a list, and puts each line into its own
    +   * list item.
    +   *
    +   * @param {Node} node modified in place.  Its content is pulled into an
    +   *     HTMLOListElement, and each line is moved into a separate list item.
    +   *     This requires cloning elements, so the input might not have unique
    +   *     IDs after numbering.
    +   */
    +  function numberLines(node, opt_startLineNum) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +    var lineBreak = /\r\n?|\n/;
    +  
    +    var document = node.ownerDocument;
    +  
    +    var whitespace;
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      whitespace = document.defaultView.getComputedStyle(node, null)
    +          .getPropertyValue('white-space');
    +    }
    +    // If it's preformatted, then we need to split lines on line breaks
    +    // in addition to <BR>s.
    +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
    +  
    +    var li = document.createElement('LI');
    +    while (node.firstChild) {
    +      li.appendChild(node.firstChild);
    +    }
    +    // An array of lines.  We split below, so this is initialized to one
    +    // un-split line.
    +    var listItems = [li];
    +  
    +    function walk(node) {
    +      switch (node.nodeType) {
    +        case 1:  // Element
    +          if (nocode.test(node.className)) { break; }
    +          if ('BR' === node.nodeName) {
    +            breakAfter(node);
    +            // Discard the <BR> since it is now flush against a </LI>.
    +            if (node.parentNode) {
    +              node.parentNode.removeChild(node);
    +            }
    +          } else {
    +            for (var child = node.firstChild; child; child = child.nextSibling) {
    +              walk(child);
    +            }
    +          }
    +          break;
    +        case 3: case 4:  // Text
    +          if (isPreformatted) {
    +            var text = node.nodeValue;
    +            var match = text.match(lineBreak);
    +            if (match) {
    +              var firstLine = text.substring(0, match.index);
    +              node.nodeValue = firstLine;
    +              var tail = text.substring(match.index + match[0].length);
    +              if (tail) {
    +                var parent = node.parentNode;
    +                parent.insertBefore(
    +                    document.createTextNode(tail), node.nextSibling);
    +              }
    +              breakAfter(node);
    +              if (!firstLine) {
    +                // Don't leave blank text nodes in the DOM.
    +                node.parentNode.removeChild(node);
    +              }
    +            }
    +          }
    +          break;
    +      }
    +    }
    +  
    +    // Split a line after the given node.
    +    function breakAfter(lineEndNode) {
    +      // If there's nothing to the right, then we can skip ending the line
    +      // here, and move root-wards since splitting just before an end-tag
    +      // would require us to create a bunch of empty copies.
    +      while (!lineEndNode.nextSibling) {
    +        lineEndNode = lineEndNode.parentNode;
    +        if (!lineEndNode) { return; }
    +      }
    +  
    +      function breakLeftOf(limit, copy) {
    +        // Clone shallowly if this node needs to be on both sides of the break.
    +        var rightSide = copy ? limit.cloneNode(false) : limit;
    +        var parent = limit.parentNode;
    +        if (parent) {
    +          // We clone the parent chain.
    +          // This helps us resurrect important styling elements that cross lines.
    +          // E.g. in <i>Foo<br>Bar</i>
    +          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.
    +          var parentClone = breakLeftOf(parent, 1);
    +          // Move the clone and everything to the right of the original
    +          // onto the cloned parent.
    +          var next = limit.nextSibling;
    +          parentClone.appendChild(rightSide);
    +          for (var sibling = next; sibling; sibling = next) {
    +            next = sibling.nextSibling;
    +            parentClone.appendChild(sibling);
    +          }
    +        }
    +        return rightSide;
    +      }
    +  
    +      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0);
    +  
    +      // Walk the parent chain until we reach an unattached LI.
    +      for (var parent;
    +           // Check nodeType since IE invents document fragments.
    +           (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {
    +        copiedListItem = parent;
    +      }
    +      // Put it on the list of lines for later processing.
    +      listItems.push(copiedListItem);
    +    }
    +  
    +    // Split lines while there are lines left to split.
    +    for (var i = 0;  // Number of lines that have been split so far.
    +         i < listItems.length;  // length updated by breakAfter calls.
    +         ++i) {
    +      walk(listItems[i]);
    +    }
    +  
    +    // Make sure numeric indices show correctly.
    +    if (opt_startLineNum === (opt_startLineNum|0)) {
    +      listItems[0].setAttribute('value', opt_startLineNum);
    +    }
    +  
    +    var ol = document.createElement('OL');
    +    ol.className = 'linenums';
    +    var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0;
    +    for (var i = 0, n = listItems.length; i < n; ++i) {
    +      li = listItems[i];
    +      // Stick a class on the LIs so that stylesheets can
    +      // color odd/even rows, or any other row pattern that
    +      // is co-prime with 10.
    +      li.className = 'L' + ((i + offset) % 10);
    +      if (!li.firstChild) {
    +        li.appendChild(document.createTextNode('\xA0'));
    +      }
    +      ol.appendChild(li);
    +    }
    +  
    +    node.appendChild(ol);
    +  }
    +
    +  /**
    +   * Breaks {@code job.source} around style boundaries in {@code job.decorations}
    +   * and modifies {@code job.sourceNode} in place.
    +   * @param {Object} job like <pre>{
    +   *    source: {string} source as plain text,
    +   *    spans: {Array.<number|Node>} alternating span start indices into source
    +   *       and the text node or element (e.g. {@code <BR>}) corresponding to that
    +   *       span.
    +   *    decorations: {Array.<number|string} an array of style classes preceded
    +   *       by the position at which they start in job.source in order
    +   * }</pre>
    +   * @private
    +   */
    +  function recombineTagsAndDecorations(job) {
    +    var isIE = /\bMSIE\b/.test(navigator.userAgent);
    +    var newlineRe = /\n/g;
    +  
    +    var source = job.source;
    +    var sourceLength = source.length;
    +    // Index into source after the last code-unit recombined.
    +    var sourceIndex = 0;
    +  
    +    var spans = job.spans;
    +    var nSpans = spans.length;
    +    // Index into spans after the last span which ends at or before sourceIndex.
    +    var spanIndex = 0;
    +  
    +    var decorations = job.decorations;
    +    var nDecorations = decorations.length;
    +    // Index into decorations after the last decoration which ends at or before sourceIndex.
    +    var decorationIndex = 0;
    +  
    +    // Simplify decorations.
    +    var decPos = 0;
    +    for (var i = 0; i < nDecorations;) {
    +      // Skip over any zero-length decorations.
    +      var startPos = decorations[i];
    +      var start = i;
    +      while (start + 2 < nDecorations && decorations[start + 2] === startPos) {
    +        start += 2;
    +      }
    +      // Conflate all adjacent decorations that use the same style.
    +      var startDec = decorations[start + 1];
    +      var end = start + 2;
    +      while (end + 2 <= nDecorations
    +             && (decorations[end + 1] === startDec
    +                 || decorations[end] === decorations[end + 2])) {
    +        end += 2;
    +      }
    +      decorations[decPos++] = startPos;
    +      decorations[decPos++] = startDec;
    +      i = end;
    +    }
    +  
    +    // Strip any zero-length decoration at the end.
    +    if (decPos && decorations[decPos - 2] === sourceLength) { decPos -= 2; }
    +    nDecorations = decorations.length = decPos;
    +  
    +    var decoration = null;
    +    while (spanIndex < nSpans) {
    +      var spanStart = spans[spanIndex];
    +      var spanEnd = spans[spanIndex + 2] || sourceLength;
    +  
    +      var decStart = decorations[decorationIndex];
    +      var decEnd = decorations[decorationIndex + 2] || sourceLength;
    +  
    +      var end = Math.min(spanEnd, decEnd);
    +  
    +      var textNode = spans[spanIndex + 1];
    +      if (textNode.nodeType !== 1) {  // Don't muck with <BR>s or <LI>s
    +        var styledText = source.substring(sourceIndex, end);
    +        // This may seem bizarre, and it is.  Emitting LF on IE causes the
    +        // code to display with spaces instead of line breaks.
    +        // Emitting Windows standard issue linebreaks (CRLF) causes a blank
    +        // space to appear at the beginning of every line but the first.
    +        // Emitting an old Mac OS 9 line separator makes everything spiffy.
    +        if (isIE) { styledText = styledText.replace(newlineRe, '\r'); }
    +        textNode.nodeValue = styledText;
    +        var document = textNode.ownerDocument;
    +        var span = document.createElement('SPAN');
    +        span.className = decorations[decorationIndex + 1];
    +        var parentNode = textNode.parentNode;
    +        parentNode.replaceChild(span, textNode);
    +        span.appendChild(textNode);
    +        if (sourceIndex < spanEnd) {  // Split off a text node.
    +          spans[spanIndex + 1] = textNode
    +              // TODO: Possibly optimize by using '' if there's no flicker.
    +              = document.createTextNode(source.substring(end, spanEnd));
    +          parentNode.insertBefore(textNode, span.nextSibling);
    +        }
    +      }
    +  
    +      sourceIndex = end;
    +  
    +      if (sourceIndex >= spanEnd) {
    +        spanIndex += 2;
    +      }
    +      if (sourceIndex >= decEnd) {
    +        decorationIndex += 2;
    +      }
    +    }
    +  }
    +
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        source: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.source in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if ('console' in window) {
    +        console['warn']('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +        'types': ALL_TYPES,
    +          'decl': true,
    +          'hashComments': true,
    +          'cStyleComments': true
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null true false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': COFFEE_KEYWORDS,
    +          'hashComments': 3,  // ### style block comments
    +          'cStyleComments': true,
    +          'multilineStrings': true,
    +          'tripleQuotedStrings': true,
    +          'regexLiterals': true
    +        }), ['coffee']);
    +  registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var opt_langExtension = job.langExtension;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndSpans = extractSourceSpans(job.sourceNode);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndSpans.source;
    +      job.source = source;
    +      job.spans = sourceAndSpans.spans;
    +      job.basePos = 0;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +
    +      // Integrate the decorations and tags back into the source code,
    +      // modifying the sourceNode in place.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console['log'](e && e['stack'] ? e['stack'] : e);
    +      }
    +    }
    +  }
    +
    +  /**
    +   * @param sourceCodeHtml {string} The HTML to pretty print.
    +   * @param opt_langExtension {string} The language name to use.
    +   *     Typically, a filename extension like 'cpp' or 'java'.
    +   * @param opt_numberLines {number|boolean} True to number lines,
    +   *     or the 1-indexed number of the first line in sourceCodeHtml.
    +   */
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {
    +    var container = document.createElement('PRE');
    +    // This could cause images to load and onload listeners to fire.
    +    // E.g. <img onerror="alert(1337)" src="nosuchimage.png">.
    +    // We assume that the inner HTML is from a trusted source.
    +    container.innerHTML = sourceCodeHtml;
    +    if (opt_numberLines) {
    +      numberLines(container, opt_numberLines);
    +    }
    +
    +    var job = {
    +      langExtension: opt_langExtension,
    +      numberLines: opt_numberLines,
    +      sourceNode: container
    +    };
    +    applyDecorator(job);
    +    return container.innerHTML;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    function byTagName(tn) { return document.getElementsByTagName(tn); }
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return (new Date).getTime(); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock.now() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock.now() < endTime; k++) {
    +        var cs = elements[k];
    +        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR.registerLangHandler.
    +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    +          if (langExtension) { langExtension = langExtension[1]; }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp') &&
    +                p.className && p.className.indexOf('prettyprint') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // Look for a class like linenums or linenums:<n> where <n> is the
    +            // 1-indexed number of the first line.
    +            var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/);
    +            lineNums = lineNums
    +                  ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true
    +                  : false;
    +            if (lineNums) { numberLines(cs, lineNums); }
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              langExtension: langExtension,
    +              sourceNode: cs,
    +              numberLines: lineNums
    +            };
    +            applyDecorator(prettyPrintingJob);
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  window['prettyPrintOne'] = prettyPrintOne;
    +  window['prettyPrint'] = prettyPrint;
    +  window['PR'] = {
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    diff --git a/src/site-solarized.css b/src/site-solarized.css
    new file mode 100644
    index 0000000..41aa9c1
    --- /dev/null
    +++ b/src/site-solarized.css
    @@ -0,0 +1,46 @@
    +/*Note to self: Look up sass to get this running if needed*/
    +/* light is default mode, so pair with general html definition */
    +html, .light {
    +  /*background-color:$rebase03;*/
    +  color: #657b83; }
    +  html *, .light * {
    +    color: #657b83; }
    +  html *, .light code {
    +    color: #93a1a1; }
    +  html *, .kwd {
    +    color: #cb4b16; }
    +  html h1, html h2, html h3, html h4, html h5, html h6, .light h1, .light h2, .light h3, .light h4, .light h5, .light h6 {
    +    color: #586e75;
    +    border-color: #657b83; }
    +  html a, html a:active, html a:visited, .light a, .light a:active, .light a:visited {
    +    color: #586e75; }
    +  html body #wrap, .light body #wrap {
    +    background-color: #fdf6e3; }
    +
    +.dark {
    +  /*background-color:$rebase03;*/
    +  color: #839496; }
    +  .dark * {
    +    color: #839496; }
    +  .dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6 {
    +    color: #93a1a1;
    +    border-color: #839496; }
    +  .dark a, .dark a:active, .dark a:visited {
    +    color: #93a1a1; }
    +  .dark body #wrap {
    +    background-color: #002b36; }
    +
    +html.red a, html.red a:active, html.red a:visited, html.red code.url, .red a, .red a:active, .red a:visited, .red code.url {
    +  color: #268bd2; }
    +html.red h1, html.red h2, html.red h3, html.red h4, html.red h5, html.red h6, .red h1, .red h2, .red h3, .red h4, .red h5, .red h6 {
    +  color: #cb4b16; }
    +html.red strong, .red strong {
    +  color: #6c71c4; }
    +html.red em, .red em {
    +  color: #2aa198; }
    +html.red p code, html.red li code, .red p code, .red li code {
    +  color: #2aa198; }
    +
    +html * {
    +  color-profile: sRGB;
    +  rendering-intent: auto; }
    diff --git a/src/site-solarized.scss b/src/site-solarized.scss
    new file mode 100644
    index 0000000..1e0a8a8
    --- /dev/null
    +++ b/src/site-solarized.scss
    @@ -0,0 +1,45 @@
    +/*Note to self: Look up sass to get this running if needed*/
    +$base03:    #002b36;
    +$base02:    #073642;
    +$base01:    #586e75;
    +$base00:    #657b83;
    +$base0:     #839496;
    +$base1:     #93a1a1;
    +$base2:     #eee8d5;
    +$base3:     #fdf6e3;
    +$yellow:    #b58900;
    +$orange:    #cb4b16;
    +$red:       #dc322f;
    +$magenta:   #d33682;
    +$violet:    #6c71c4;
    +$blue:      #268bd2;
    +$cyan:      #2aa198;
    +$green:     #859900;
    +
    +@mixin rebase($rebase03,$rebase02,$rebase01,$rebase00,$rebase0,$rebase1,$rebase2,$rebase3)
    +{
    +    /*background-color:$rebase03;*/
    +    color:$rebase0;
    +    * { color:$rebase0; }
    +    h1,h2,h3,h4,h5,h6 { color:$rebase1; border-color: $rebase0; }
    +    a, a:active, a:visited { color: $rebase1; }
    +		body #wrap { background-color: $rebase03; }
    +}
    +
    +@mixin accentize($accent1, $accent2, $accent3, $accent4) {
    +    a, a:active, a:visited, code.url { color: $accent2; }
    +    h1,h2,h3,h4,h5,h6 {color:$accent1}
    +    strong { color: $accent3 }
    +    em { color: $accent4 }
    +    p code, li code { color: $accent4 }
    +}
    +
    +/* light is default mode, so pair with general html definition */
    +html, .light{ @include rebase($base3,$base2,$base1,$base0,$base00,$base01,$base02,$base03)}
    +
    +.dark { @include rebase($base03,$base02,$base01,$base00,$base0,$base1,$base2,$base3)}
    +html.red, .red { @include accentize($orange, $blue, $violet, $cyan); }
    +html * {
    +    color-profile: sRGB;
    +    rendering-intent: auto;
    +}
    diff --git a/src/solarized.css b/src/solarized.css
    new file mode 100644
    index 0000000..8a6b748
    --- /dev/null
    +++ b/src/solarized.css
    @@ -0,0 +1,53 @@
    +div pre , .prettyprint {
    +  color: #839496;
    +	background-color: #002b36;
    +}
    +
    +.prettyprint .pln {
    +  color: inherit;
    +}
    +
    +.prettyprint .str,
    +.prettyprint .lit,
    +.prettyprint .atv {
    +  color: #2aa198;
    +}
    +
    +.prettyprint .kwd {
    +  /* color: #268bd2; */
    +  color: #859900;
    +}
    +
    +.prettyprint .com {
    +  color: #586e75;
    +  font-style: italic;
    +}
    +
    +.prettyprint .dec {
    +  color: #cb4b16;
    +}
    +
    +.prettyprint .typ {
    +  color: #b58900;
    +}
    +
    +.prettyprint .pun {
    +  color: inherit;
    +}
    +
    +.prettyprint .opn {
    +  color: inherit;
    +}
    +
    +.prettyprint .clo {
    +  color: inherit;
    +}
    +
    +.prettyprint .tag {
    +  color: #268bd2;
    +  font-weight: bold;
    +}
    +
    +.prettyprint .atn {
    +  color: inherit;
    +}
    diff --git a/src/style.css b/src/style.css
    new file mode 100644
    index 0000000..867586d
    --- /dev/null
    +++ b/src/style.css
    @@ -0,0 +1,211 @@
    +@font-face {
    +    font-family: "Averia";
    +    /*src: url('Averia-Regular.ttf');*/
    +  src: local('Averia Gruesa Libre'), local('AveriaGruesaLibre-Regular'), url(http://themes.googleusercontent.com/static/fonts/averiagruesalibre/v1/10vbZTOoN6T8D-nvDzwRF52VtiXDaDJux1YX1Y0t1wM.ttf) format('truetype');
    +    font-weight: normal;
    +    font-style: normal;
    +}
    +
    +
    +html
    +{
    +    height: 100%;
    +}
    +
    +body
    +{
    +    margin: 0;
    +    margin-top: 0;
    +    font-size: 16px;
    +    line-height: 25px;
    +    font-family: "dejavu_serifbook", consolas, "Averia","Georgia", "Helvetica Neue", "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
    +		background: #002b36;
    +		background-color: #002b36;
    +}
    +
    +html
    +{
    +	background-color: #002b36;
    +}
    +
    +
    +body #wrap {
    +    width: 712px;
    +    margin: auto;
    +    margin-bottom: 0;
    +    margin-top: 0;
    +    padding: 10px;
    +    padding-top: 10px;
    +    border: 1px solid #000;
    +    border-top: 0px;
    +}
    +
    +body #wrap #header {
    +    border-bottom: solid 1px black;
    +}
    +
    +body #wrap #header::after {
    +    content:".";
    +    display: block;
    +    height: 0;
    +    clear: both;
    +    visibility: hidden;
    +}
    +
    +body #wrap #header #title {
    +    float: left;
    +}
    +
    +body #wrap #header #title h2 {
    +    margin: 0;
    +}
    +
    +body #wrap #header #links {
    +    float: right;
    +}
    +
    +body #bottom {
    +    margin: auto;
    +    width: 712px;
    +}
    +
    +body #wrap #categories {
    +    border-bottom: solid 1px black;
    +
    +}
    +
    +em {
    +	color: #006;
    +}
    +
    +a {
    +    color: #800;
    +    text-decoration: none;
    +    font-style: italic;
    +}
    +
    +a.external {
    +	padding-right: 12px;
    +	background: url(/media/img/ico_external.gif) no-repeat 100% 50%;
    +}
    +
    +cufontext:hover, a:hover {
    +    text-decoration: underline;
    +	color: green;
    +}
    +
    +h1 {
    +    font-size: 45px;
    +    line-height 50px;
    +    margin: 25px, 0;
    +}
    +
    +img {
    +    border: 1px solid #000;
    +}
    +
    +img.left {
    +    float: left;
    +    margin-right: 10px;
    +}
    +
    +img.right {
    +    float: right;
    +    margin-left: 10px;
    +}
    +
    +img.center {
    +  display: block;
    +  margin-left: auto;
    +  margin-right: auto;
    +}
    +
    +img.noborder {
    +  border: 0px;
    +}
    +
    +#subtitle p {
    +    color: #666;
    +    margin-top: -22px;
    +    margin-bottom: 22px;
    +}
    +
    +
    +div pre {
    +    border: 1px solid #000;
    +    padding: 10px;
    +}
    +
    +pre, pre.prettyprint {
    +	width: 80%;
    +    border: 1px solid #888;
    +    font-size: 14px;
    +    white-space: pre-wrap;
    +    line-height: 18px;
    +    padding: 5px;
    +    margin-right: 50px;
    +    margin-left: 50px;
    +    tab-size: 2;
    +}
    +
    +code {
    +  font-family: inconsolata, Consolas, Courier;
    +	font-size: 14px;
    +}
    +
    +blockquote {
    +	font-style: italic;
    +	border-left: 4px solid #CCC;
    +	margin-left: 0px;
    +	padding-left: 1.5em;
    +}
    +
    +.content {
    +}
    +
    +.content .contentItem {
    +    margin: auto;
    +    width: 400px;
    +    text-align: center;
    +    border-bottom: 1px solid black;
    +}
    +
    +.content .contentItem:last-child {
    +    border-bottom: 0;
    +}
    +
    +.content ol {
    +    list-style-type: none;
    +}
    +
    +.content li.content {
    +    float: left;
    +    width: 330px;
    +    text-align: center;
    +    margin-bottom: 25px;
    +}
    +
    +.content-list::after {
    +    content: ".";
    +    display: block;
    +    height: 0;
    +    clear: both;
    +    visibility: hidden;
    +}
    +
    +.post-text::first-letter {
    +   font-size: 45px;
    +}
    +.content-list .content .postTitle,
    +.content-list .content .postDate,
    +.content-list .content .postSubTitle {
    +    margin: 0;
    +}
    +
    +.postSubTitle {
    +	font-size: 90%;
    +}
    +
    +.content-list .content .postDate {
    +    color: #666;
    +}
    diff --git a/src/sunburst.css b/src/sunburst.css
    new file mode 100644
    index 0000000..03b040b
    --- /dev/null
    +++ b/src/sunburst.css
    @@ -0,0 +1,51 @@
    +/* Pretty printing styles. Used with prettify.js. */
    +/* Vim sunburst theme by David Leibovic */
    +
    +pre .str, code .str { color: #65B042; } /* string  - green */
    +pre .kwd, code .kwd { color: #E28964; } /* keyword - dark pink */
    +pre .com, code .com { color: #AEAEAE; font-style: italic; } /* comment - gray */
    +pre .typ, code .typ { color: #89bdff; } /* type - light blue */
    +pre .lit, code .lit { color: #3387CC; } /* literal - blue */
    +pre .pun, code .pun { color: #fff; } /* punctuation - white */
    +pre .pln, code .pln { color: #fff; } /* plaintext - white */
    +pre .tag, code .tag { color: #89bdff; } /* html/xml tag    - light blue */
    +pre .atn, code .atn { color: #bdb76b; } /* html/xml attribute name  - khaki */
    +pre .atv, code .atv { color: #65B042; } /* html/xml attribute value - green */
    +pre .dec, code .dec { color: #3387CC; } /* decimal - blue */ 
    +
    +pre.prettyprint, code.prettyprint{
    +        background-color: #000; 
    +        -moz-border-radius: 8px;
    +        -webkit-border-radius: 8px;
    +        -o-border-radius: 8px;
    +        -ms-border-radius: 8px;
    +        -khtml-border-radius: 8px;
    +        border-radius: 8px;
    +}
    +
    +pre.prettyprint { 
    +        width: 95%;
    +        margin: 1em auto;
    +        padding: 1em; 
    +	clear: both
    +}
    +
    +
    +/* Specify class=linenums on a pre to get line numbering */
    +ol.linenums { margin-top: 0; margin-bottom: 0; color: #AEAEAE; } /* IE indents via margin-left */
    +li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none }
    +/* Alternate shading for lines */
    +li.L1,li.L3,li.L5,li.L7,li.L9 { }
    +
    +@media print {
    +  pre .str, code .str { color: #060; }
    +  pre .kwd, code .kwd { color: #006; font-weight: bold; }
    +  pre .com, code .com { color: #600; font-style: italic; }
    +  pre .typ, code .typ { color: #404; font-weight: bold; }
    +  pre .lit, code .lit { color: #044; }
    +  pre .pun, code .pun { color: #440; }
    +  pre .pln, code .pln { color: #000; }
    +  pre .tag, code .tag { color: #006; font-weight: bold; }
    +  pre .atn, code .atn { color: #404; }
    +  pre .atv, code .atv { color: #060; }
    +}
    diff --git a/templates/base.html b/templates/base.html
    new file mode 100644
    index 0000000..0da6687
    --- /dev/null
    +++ b/templates/base.html
    @@ -0,0 +1,80 @@
    +<!DOCTYPE html>
    +<html class="light red">
    +    <head>
    +        <meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
    +        <title>
    +          Thomas Lovén - {% if page %}{{ page.title }}{% endif %}
    +        </title>
    +        <link rel="stylesheet" type="text/css" href="/src/solarized.css">
    +        <link rel="stylesheet" type="text/css" href="/src/fonts/dejavuserif/stylesheet.css">
    +        <link rel="stylesheet" type="text/css" href="/src/style.css">
    +        <link rel="stylesheet" type="text/css" href="/src/site-solarized.css">
    +        <link rel="stylesheet" type="text/css" href="/src/codestyle.css">
    +
    +        <!-- <script type="text/javascript" src="/src/prettify.js"></script> -->
    +        <!-- <script type="text/javascript" src="/src/lang-tex.js"></script> -->
    +        <!-- <script type="text/javascript" src="/src/lang-nasm.js"></script> -->
    +        <!-- <script type="text/javascript" src="/src/lang-betyg.js"></script> -->
    +
    +        <!-- <script type="text/x-mathjax-config"> -->
    +        <!--     MathJax.Hub.Config({ -->
    +        <!--         tex2jax: { -->
    +        <!--             skipTags: ["script","noscript","style","textarea","code"], -->
    +        <!--             ignoreClass: ".*", --> 
    +        <!--             processClass: "latex" -->
    +        <!--         } -->
    +        <!--     }); -->
    +        <!--     MathJax.Hub.Queue( function() { -->
    +        <!--         var all = MathJax.Hub.getAllJax(), i; -->
    +        <!--         for(i=0; i < all.length; i += 1) { -->
    +        <!--             all[i].SourceElement().parentNode.className += ' has-jax'; -->
    +        <!--         } -->
    +        <!--     }); -->
    +        <!-- </script> -->
    +        <!-- <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> -->
    +
    +        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    +
    +        <script src="/src/blankwin.js" type="text/javascript"></script>
    +
    +    </head>
    +
    +<!-- <body onload="$('pre').not('.nopretty').not('.latex').addClass('prettyprint'); prettyPrint(); blankwin(); $('body').width($('body').width()+1).width('auto')"> -->
    +<body>
    +
    +        <div id="wrap">
    +            <div id="header">
    +                <div id="title">
    +                    <h2>ThomasLovén.com</h2>
    +                </div><!--title-->
    +                <div id="links">
    +                    <a href="/">Home</a>
    +                    -
    +                    <a href="/blog/">Blog</a>
    +                    -
    +                    <a href="/photos/">Photos</a>
    +                    -
    +                    <a href="/about/">About</a>
    +                </div><!--links-->
    +            </div><!--header-->
    +
    +            <div id="contents">
    +                {% block page %}
    +                {% endblock page %}
    +
    +            </div><!--contents-->
    +
    +        </div><!--wrap-->
    +
    +        <div id="bottom">
    +            &copy; 2012 
    +            <a href="mailto:thomasloven@gmail.com">Thomas Lovén</a> 
    +			-
    +            <a href="http://twitter.com/thomasloven">@thomasloven</a>
    +			-
    +			<a href="http://github.com/thomasloven">GitHub</a>
    +        </div><!--bottom-->
    +
    +
    +</body>
    +</html>
    diff --git a/templates/blog.html b/templates/blog.html
    new file mode 100644
    index 0000000..0d156ad
    --- /dev/null
    +++ b/templates/blog.html
    @@ -0,0 +1,37 @@
    +{% extends "base.html" %}
    +
    +{% block page %}
    +<div id="categories">
    +  <a href="{{url_for("blog_default")}}">All</a>
    +  {% for tag in tags %}
    +    -
    +    <a href="{{url_for("tag", tag=tag)}}">{{ tag }}</a>
    +  {% endfor %}
    +{% if title %}
    +  {{ title }}
    +{% endif %}
    +</div>
    +<div class="content">
    +    <ol class="content-list">
    +        {% for post in posts %}
    +        <li class="content">
    +            <h3 class="postTitle"><a href="{{ post.url }}">{{ post.title }}</a></h3><p class="postDate">{{ post.datestr }}</p><p class="postSubTitle">{{ post.subtitle }}<br>
    +<a href="{{ post.url }}#disqus_thread" data-disqus-identifier="{{ post.url[:-1] }}"></a></p>
    +        </li>
    +        {% endfor %}
    +    </ol>
    +</div>
    +
    +<script type="text/javascript">
    +    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    +    var disqus_shortname = 'thomasloven'; // required: replace example with your forum shortname
    +
    +    /* * * DON'T EDIT BELOW THIS LINE * * */
    +    (function () {
    +        var s = document.createElement('script'); s.async = true;
    +        s.type = 'text/javascript';
    +        s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
    +        (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
    +    }());
    +    </script>
    +{% endblock page %}
    diff --git a/templates/page.html b/templates/page.html
    new file mode 100644
    index 0000000..35a36af
    --- /dev/null
    +++ b/templates/page.html
    @@ -0,0 +1,8 @@
    +{% extends "base.html" %}
    +
    +{% block page %}
    +<h1> {{ page.title }} </h1>
    +
    +{{ page }}
    +
    +{% endblock page %}
    diff --git a/templates/post.html b/templates/post.html
    new file mode 100644
    index 0000000..f21192a
    --- /dev/null
    +++ b/templates/post.html
    @@ -0,0 +1,28 @@
    +{% extends "base.html" %}
    +
    +{% block page %}
    +    <h1> {{ page.title }} </h1>
    +    <div id="subtitle">
    +    <p>{{ page.datestr }}</p>
    +    </div>
    +    <div id="post-text">
    +    {{ page }}
    +		<h2 id="comment">Comments</h2>
    +		<div id="disqus_thread"></div>
    +		<script type="text/javascript">
    +        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    +        var disqus_shortname = 'thomasloven'; // required: replace example with your forum shortname
    +				var disqus_identifier = '{{ page.url[:-1] }}';
    +
    +        /* * * DON'T EDIT BELOW THIS LINE * * */
    +        (function() {
    +            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
    +            dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
    +            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    +        })();
    +    </script>
    +    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    +    <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
    +    
    +    </div>
    +{% endblock page %}