untested cleanup

This commit is contained in:
Lukas Cremer
2026-02-03 21:28:22 +01:00
parent 9fe02d248f
commit b421b199ca
327 changed files with 373 additions and 6683 deletions

19
.gitignore vendored Normal file
View File

@@ -0,0 +1,19 @@
# Byte-compiled / optimized
*.pyc
*.pyo
__pycache__/
# Virtual environments
venv/
.venv/
env/
# IDE
.idea/
.vscode/
*.swp
*~
# OS
.DS_Store
Thumbs.db

View File

@@ -1,67 +1,59 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import math
class Command: class Command:
inicoms = ("IN", "SP", "LT") # nicht benutzt inicoms = ("IN", "SP", "LT") # nicht benutzt
scalecoms = ("PA", "PD", "PR", "PU", "CI") # Liste skalierbarer HPGL-Befehle scalecoms = ("PA", "PD", "PR", "PU", "CI") # Liste skalierbarer HPGL-Befehle
movecoms = ("PA", "PD", "PU") # Liste verschiebbarer HPGL-Befehle movecoms = ("PA", "PD", "PU") # Liste verschiebbarer HPGL-Befehle
abscoms = ("PA", "PD", "PU")
relcoms = ("PR")
arccoms = ("CI", "AA")
def __init__(self, name, *args): def __init__(self, name, *args):
self.name = name # Befehlname self.name = name
self.args = args # Argsliste self.args = args
@property @property
def scalable(self): def scalable(self):
return True \ return self.name in Command.scalecoms and self.args
if self.name in Command.scalecoms and self.args else \
False
@property @property
def movable(self): def movable(self):
return True \ return self.name in Command.movecoms and self.args
if self.name in Command.movecoms and self.args else \
False
@property @property
def x(self): def x(self):
#Baustelle da es Befehle gibt die mehrere Args haben return self.args[0] if self.args else None
return self.args[0] \
if self.movable else\
None
@property @property
def y(self): def y(self):
if len(self.args)<2 : return self.args[-1] if self.args else None
return None
return self.args[1] \
if self.movable else\
None
def __trunc__(self): def __trunc__(self):
return Command(self.name, *[int(arg) for arg in self.args]) return Command(self.name, *[int(arg) for arg in self.args])
def __len__(self): def __len__(self):
return len(str(self)) # Byte-L<>nge des Befehls return len(str(self))
def __str__(self): def __str__(self):
return self.name + ",".join(str(int(arg)) for arg in self.args) + ";" return self.name + ",".join(str(int(arg)) for arg in self.args) + ";"
def __mul__(self, factor): # multipliziert falls skalable mit factor def __mul__(self, factor):
if not self.scalable: if not self.scalable:
return self return self
if type(factor) == type(0) or type(factor) == type(0.0): if type(factor) == type(0) or type(factor) == type(0.0):
# Faktor kann skalar oder Tuple sein
factor = (factor, factor) factor = (factor, factor)
return Command(self.name, (self.args[0] * factor[0]), (self.args[1] * factor[1])) \ return Command(self.name, (self.args[0] * factor[0]), (self.args[1] * factor[1])) \
if len(self.args) > 1 else \ if len(self.args) > 1 else \
Command(self.name,(self.args[0]*factor[0]) ) # wichtig f<>r Befehle mit nur einem Argument Command(self.name, (self.args[0] * factor[0]))
def __add__(self, addend): def __add__(self, addend):
if not self.movable: if not self.movable:
return self return self
if type(addend) == type(0) or type(addend) == type(0.0): if type(addend) == type(0) or type(addend) == type(0.0):
addend = (addend, addend) addend = (addend, addend)
#print( "ADD ", self.name )
return Command(self.name, (self.x + addend[0]), (self.y + addend[1])) return Command(self.name, (self.x + addend[0]), (self.y + addend[1]))
def __sub__(self, addend): def __sub__(self, addend):
@@ -69,14 +61,14 @@ class Command:
addend = (addend, addend) addend = (addend, addend)
return self + (-addend[0], -addend[1]) return self + (-addend[0], -addend[1])
def rotate(self, angl): # multiplikation mit Rot-Matrix def rotate(self, angl):
if not self.movable: if not self.movable:
return self return self
cosa = math.cos(angl * math.pi / 180) cosa = math.cos(angl * math.pi / 180)
sina = math.sin(angl * math.pi / 180) sina = math.sin(angl * math.pi / 180)
return Command((self.name,self.x*cosa-self.y*sina),(self.y*cosa+self.x*sina)) return Command(self.name, (self.x * cosa - self.y * sina), (self.y * cosa + self.x * sina))
def flip(self): # Spiegelung def flip(self):
if not self.movable: if not self.movable:
return self return self
return Command(self.name,self.y,-self.x) return Command(self.name, self.x, -self.y)

Binary file not shown.

View File

@@ -1,18 +1,19 @@
from __future__ import division from __future__ import division
import pyserial import serial
class Plotter: class Plotter:
def __init__(self, boundaries=None): def __init__(self, boundaries=None):
self.__boundaries=boundaries self.boundaries = boundaries
self.p0incenter = True self.p0incenter = False
if not boundaries: if not boundaries:
s=self.getoutput('OW;') s = self.getoutput(b'OW;')
print(s) print(s)
if not s: if not s:
self.ser = None self.ser = None
else: else:
self.__boundaries = tuple(int(x) for x in "".join(s).split(",")) self.boundaries = tuple(int(x) for x in "".join(s).split(","))
def getoutput(self, outstr): def getoutput(self, outstr):
try: try:
@@ -26,64 +27,60 @@ class Plotter:
s = [] s = []
while True: while True:
x = self.ser.read() x = self.ser.read()
if x == b"\x0d" or not x:
if x == "\x0d" or not x:
break break
s.append(x) s.append(x)
return ''.join(s) return b''.join(s).decode()
except OSError: except OSError:
return None return None
@property @property
def xmin(self): def xmin(self):
return self.__boundaries[0] return self.boundaries[0]
@property @property
def ymin(self): def ymin(self):
return self.__boundaries[1] return self.boundaries[1]
@property @property
def xmax(self): def xmax(self):
return self.__boundaries[2] return self.boundaries[2]
@property @property
def ymax(self): def ymax(self):
return self.__boundaries[3] return self.boundaries[3]
@property @property
def center(self): def center(self):
return (self.xmin + self.xmax) / 2, (self.ymin + self.ymax) / 2 return (self.xmin + self.xmax) / 2, (self.ymin + self.ymax) / 2
def write(self, programm): def write(self, programm):
self.ser.write(str(programm)) self.ser.write(str(programm).encode())
@property @property
def winsize(self): def winsize(self):
return self.xmax - self.xmin, self.ymax - self.ymin return self.xmax - self.xmin, self.ymax - self.ymin
def oob(self, prog): def oob(self, prog):
return (prog.xmax > self.xmax or prog.xmin < self.xmin or prog.ymin < self.ymin or prog.ymax > self.ymax) return (prog.xmax > self.xmax or prog.xmin < self.xmin or
prog.ymin < self.ymin or prog.ymax > self.ymax)
def full(self, prog): def full(self, prog):
"""Scale program to fit plotter bounds."""
arg = min(self.winsize[0] / prog.winsize[0], self.winsize[1] / prog.winsize[1]) arg = min(self.winsize[0] / prog.winsize[0], self.winsize[1] / prog.winsize[1])
#print self.winsize[0]/prog.winsize[0],self.winsize[1]/prog.winsize[1])
print('Scale Factor', arg)
return prog * arg return prog * arg
def plot(self, prog): def plot(self, prog):
if self.ready and (not self.oob(prog)): if self.ready and (not self.oob(prog)):
self.write(prog) self.write(prog)
if self.oob(prog): if self.oob(prog):
print('programm out of bound') print('programm out of bound')
if not self.ready: if not self.ready:
print('device not ready') print('device not ready')
def centralize(self, prog): def centralize(self, prog):
return prog-prog.center \ return prog - prog.center if self.p0incenter else prog - (prog.xmin, prog.ymin)
if self.p0incenter else \
prog-(prog.xmin,prog.ymin)
@property @property
def ready(self): def ready(self):
return bool(self.getoutput('OS;')) return bool(self.getoutput('OS;'))

View File

@@ -1,35 +1,75 @@
import math import math
from Command import * from Command import *
import tkinter as tk
class Program: class Program:
def __init__(self, commands=None): def __init__(self, commands=None):
self.commands = commands or [] self.commands = commands if commands is not None else []
self.active = True self.active = True
self.visible = False self.visible = False
self.filename = '' self.filename = ''
if self.commands:
self.xmin, self.ymin, self.xmax, self.ymax = self.__simulate()
else:
self.xmin = self.ymin = self.xmax = self.ymax = 0
def __simulate(self):
(x, y) = (0, 0)
xy = []
for command in self.commands:
if not command.args:
continue
elif command.name in command.abscoms:
x, y = command.x, command.y
xy.append((x, y))
elif command.name in command.relcoms:
x, y = x + command.x, y + command.y
xy.append((x, y))
elif command.name in command.arccoms:
xy += [(x + command.x, y + command.x), (x - command.x, y - command.x)]
if not xy:
return [0, 0, 0, 0]
return [m([v[i] for v in xy]) for m, i in ((min, 0), (min, 1), (max, 0), (max, 1))]
def parsefile(self, filename): @staticmethod
def parsefile(filename):
with open(filename) as file: with open(filename) as file:
self.parse( file.read()) return Program.parse(file.read())
def parse(self, code): @staticmethod
def parse(code):
commands = []
for command in code.strip().split(";")[:-1]: for command in code.strip().split(";")[:-1]:
name, args = command[:2], command[2:] name, args = command[:2], command[2:]
args = [float(arg) for arg in args.split(",")] if args else [] args = [float(arg) for arg in args.split(",")] if args else []
# Experimental if name in Command.movecoms and len(args) > 2:
#if name=='CI': for i in range(0, len(args), 2):
#self.commands.append(Command('PR',args[0])) commands.append(Command(name, args[i], args[i + 1]))
#self.commands.append(Command('PR',args[0])) else:
#self.commands.append(Command('PR',args[0])) commands.append(Command(name, *args))
return Program(commands)
self.commands.append(Command(name, *args)) def show(self, w=None):
p = self.flip()
p = p.rotate(270)
def __trunc__ (self): p = p.fitin((0, 0, 1024, 600), (0, 0))
return Program([int(command) for command in self.commands]) win = tk.Tk()
win.title('HPGLPLOTTER')
canvas = tk.Canvas(win, width=p.winsize[0], height=p.winsize[1])
canvas.grid(row=0, column=0)
x = y = 0
for command in p.commands:
if command.name == 'PU':
x, y = command.x, command.y
elif command.name == 'PD':
canvas.create_line(x, y, command.x, command.y)
x, y = command.x, command.y
elif command.name == 'CI':
r = command.args[0]
canvas.create_oval(x - r, y - r, x + r, y + r)
win.mainloop()
def __str__(self): def __str__(self):
return "".join(str(command) for command in self.commands) return "".join(str(command) for command in self.commands)
@@ -54,18 +94,33 @@ class Program:
def flip(self): def flip(self):
return Program([command.flip() for command in self.commands if command]) return Program([command.flip() for command in self.commands if command])
@property def scaleto(self, ab):
def xmax(self): a, b = ab
return max(command.x for command in self.commands if command.x and command.movable) w, h = self.winsize
@property if w == 0 or h == 0:
def xmin(self): return self
return min(command.x for command in self.commands if command.x and command.movable) return self * min(a / w, b / h)
@property
def ymax(self): def moveto(self, ab):
return max(command.y for command in self.commands if command.y and command.movable) a, b = ab
@property return self - (self.xmin - a, self.ymin - b)
def ymin(self):
return min(command.y for command in self.commands if command.y and command.movable) def fitin(self, xys, fxy):
(x1, y1, x2, y2) = xys
(fx, fy) = fxy
p = self.scaleto((x2 - x1, y2 - y1))
return p.moveto((x1 + fx * (x2 - x1 - p.winsize[0]), y1 + fy * (y2 - y1 - p.winsize[1])))
def multi(self, w, h):
dist = 40
out = self
p = self.winsize
for i in range(w):
for j in range(h):
if w != 0 and h != 0:
out = out + (self + (i * p[0] + i * dist, j * p[1] + j * dist))
return out
@property @property
def center(self): def center(self):
return ((self.xmin + self.xmax) / 2), ((self.ymin + self.ymax) / 2) return ((self.xmin + self.xmax) / 2), ((self.ymin + self.ymax) / 2)

42
README.md Normal file
View File

@@ -0,0 +1,42 @@
# HPGL Plotter Manager
Manage HPGL files and send them to a plotter. Single core library (refac version at root), generators, and unified output folder for all graphics.
## Folder structure
```
mimaki/
├── Command.py, Program.py, Plotter.py # Core HPGL library (parse, scale, send to plotter)
├── main.py # Main entry: load HPGL, scale, send to plotter
├── maintk.py, hpglView.py # Tk-based viewer / GUI
├── output/ # All HPGL and SVG files
│ ├── hpgl/ # HPGL plot files
│ └── svg/ # SVG and related assets
├── generators/ # Scripts that generate HPGL (or related graphics)
│ ├── hilbert.py, koche.py, koch.py, kochger.py
│ ├── mandelbrot.py, moebius.py, potter.py
│ ├── refac/ # hilbert, lorenz, K18650, Kleber
│ └── apollon/ # Apollonian gasket → SVG/HPGL
└── docs/ # HPGL / plotter documentation (PDFs)
```
## Usage
- **Run main (load file and send to plotter):**
From project root: `python main.py`
Edit `main.py` to change the file (default: `output/hpgl/kreis.hpgl`).
- **Load HPGL and show in window:**
`python show_hpgl.py`
- **Run a generator:**
From project root, e.g.
`python generators/potter.py`
- **Open/save files in GUI:**
`python maintk.py` — use File → Open and point to files under `output/hpgl/` or `output/svg/`.
## Paths
- All HPGL and SVG live under **`output/hpgl/`** and **`output/svg/`**.
- Run scripts from the project root so paths like `output/hpgl/...` resolve correctly.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -1,4 +0,0 @@
*~
*pyc
__pycache__/
html/

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,63 @@
# refac vs root (historical)
**The refac version is now the main version** (root Command.py, Program.py, Plotter.py). This doc is kept for reference.
Original comparison of the core modules: **Command.py**, **Program.py**, **Plotter.py**.
---
## Command.py
| Aspect | Root | refac |
|--------|------|--------|
| **import math** | ❌ Missing (bug: `rotate()` uses `math.cos`/`math.sin`) | ✅ Present |
| **Class attributes** | `inicoms`, `scalecoms`, `movecoms` only | Same + **`abscoms`**, **`relcoms`**, **`arccoms`** (for PA/PD/PU, PR, CI/AA) |
| **scalable / movable** | `return True if ... else False` | `return self.name in ... and self.args` (shorter, same meaning) |
| **x** | `self.args[0] if self.movable else None` | `self.args[0] if self.args else None` |
| **y** | `self.args[1] if self.movable else None` (and `len(self.args)<2` check with wrong indent) | `self.args[-1] if self.args else None` (works for single-arg commands like CI) |
| **rotate()** | `Command((self.name, ...), (...))`**bug**: first arg is a tuple, not name | ✅ `Command(self.name, ...)` |
| **flip()** | `Command(self.name, self.y, -self.x)`**wrong**: swaps x/y | ✅ `Command(self.name, self.x, -self.y)` (mirror in y) |
**Summary:** refac fixes missing `math`, corrects `rotate()` and `flip()`, and adds command-type sets used by Program parsing/simulation.
---
## Program.py
| Aspect | Root | refac |
|--------|------|--------|
| **__init__** | `commands or []`; no bounds | `commands` (can be None); if commands given, **computes bounds once** via `__simulate()` |
| **Bounds (xmin, xmax, …)** | **@property** computed from commands each time | Set once in **__init__** from `__simulate()` (no property; no update if commands change) |
| **parsefile / parse** | **Instance methods**: `p.parsefile(f)` mutates `self.commands` | **@staticmethod**: `Program.parsefile(f)` / `Program.parse(code)` **return new Program** |
| **Parsing** | One Command per semicolon; all args in one list | **Multi-point PA/PD/PU**: if `len(args)>2`, splits into (x,y) pairs and creates one Command per point |
| **show()** | ❌ Not in Program (show in main.py) | ✅ **Program.show()**: flip, rotate 270°, fitin to 1024×600, Tk canvas |
| **fitin(), scaleto(), moveto()** | ❌ Not in root | ✅ Present (scale/move to rectangle with alignment fx, fy) |
| **multi(w, h)** | ❌ Not in root | ✅ Tile program in w×h grid with spacing |
| **Program.parse() return** | N/A (mutates self) | Returns **Program(commands)** |
**Summary:** refac adds static parsing (return new Program), multi-point parsing, simulation for bounds, and helpers: show(), fitin(), scaleto(), moveto(), multi().
---
## Plotter.py
| Aspect | Root | refac |
|--------|------|--------|
| **Import** | `import pyserial` (wrong name; should be `serial`) | `import serial` |
| **Boundaries storage** | `self.__boundaries` (private) | `self.boundaries` (public) |
| **p0incenter** | `True` | `False` |
| **getoutput()** | `self.ser.read()` → str; returns `''.join(s)` | **Bytes**: `outstr` used as-is; `x == b"\x0d"`; returns `b''.join(s).decode()` |
| **write()** | `self.ser.write(str(programm))` (str) | `self.ser.write(str(programm).encode())` (bytes) |
| **full(prog)** | ✅ Scale prog to fit plotter bounds | ❌ **Removed** (scaling done elsewhere, e.g. Program.fitin) |
| **centralize()** | Same logic | Same logic (behavior differs only if p0incenter differs) |
**Summary:** refac uses proper `serial` and bytes for Python 3; drops `full()`; different default for `p0incenter`.
---
## Overall
- **refac** = cleaned-up, Python3friendly version: correct Command (math, rotate, flip), static Program parsing, multi-point parsing, bounds simulation, fitin/show/multi, and serial over bytes.
- **Root** = older version: Command has bugs (no math, wrong rotate/flip), instance-method parsing only, no fitin/show/multi, and broken `pyserial` import.
Recommendation: use **refac** as the main implementation and, if needed, replace root with it (or make root a thin wrapper around refac).

View File

@@ -1,4 +1,7 @@
import math import math
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from hilbertcurve.hilbertcurve import HilbertCurve from hilbertcurve.hilbertcurve import HilbertCurve
penthickness = 28 penthickness = 28
import Program import Program

View File

@@ -1,4 +1,9 @@
import math import math
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import Program
import Command
C = math.sqrt(3) C = math.sqrt(3)

View File

@@ -1,3 +1,6 @@
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from Plotter import * from Plotter import *
from Command import * from Command import *
from Program import * from Program import *
@@ -26,8 +29,7 @@ def show(p):
win.mainloop() win.mainloop()
plt = Plotter() plt = Plotter()
p=Program() p = Program.parsefile('output/hpgl/Lars.plt')
p.parsefile('hpgl/Lars.plt')
p=p.flip() p=p.flip()
p=plt.full(p) p=plt.full(p)
p=plt.centralize(p) p=plt.centralize(p)

View File

@@ -1,3 +1,6 @@
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from Command import * from Command import *
from Program import * from Program import *
import math import math

View File

@@ -1,3 +1,6 @@
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from Command import * from Command import *
from Program import * from Program import *

View File

@@ -1,4 +1,7 @@
import math import math
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from Program import Program from Program import Program
from Command import Command from Command import Command

View File

@@ -1,4 +1,7 @@
import numpy as np import numpy as np
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from scipy.integrate import odeint from scipy.integrate import odeint
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D from mpl_toolkits.mplot3d import Axes3D

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
IN;SP1;PU0,0;PD0,90;PU736,445;PD739,444,745,465,746,465,759,499,761,498,776,520,777,519,794,539,794,538,813,557,814,556,836,571,837,569,858,577,858,575,880,578,880,576,901,575,900,573,910,571,909,569,919,565,917,562,929,552,927,550,936,536,934,535,942,512,940,511,943,486,940,486,938,468,937,468,933,448,932,448,926,425,921,428,919,433,919,435,726,435,728,440,732,444,737,445,739,444,745,465,746,465,753,482;PU945,276;PD940,277,935,275,932,270,931,265,934,260,936,259,927,244,910,221,909,222,890,200,889,201,868,182,867,183,845,170,845,171,822,161,821,162,798,154,798,156,774,152,774,154,751,156,751,157,740,160,741,162,731,166,731,167,722,174,723,175,714,182,715,184,701,202,703,203,692,226,694,227,689,251,691,251,692,276,693,276,696,303,697,303,703,333,707,331,710,327,711,324,1136,323,1134,329,1131,332,1128,333,1143,387,1142,387,1152,434,1151,434,1154,457,1155,477,1154,477,1152,513,1151,513,1147,550,1146,549,1136,584,1135,584,1129,600,1128,600,1119,616,1118,615,1099,641,1097,640,1073,663,1072,662,1045,681,1045,680,1016,696,1015,695,986,706,986,705,956,712,955,711,924,715,924,714,893,715,893,714,859,712,859,711,826,706,794,698,794,697,762,686,762,685,727,670,727,669,694,651,694,650,662,629,662,628,632,605,633,604,604,576,577,545,578,545,554,512,533,478,533,477,513,439,514,438,496,398,497,398,483,356,484,356,473,314,474,314,468,275,469,275,465,235,466,235,467,196,469,196,476,158,477,158,487,131,488,132,501,106,503,106,519,82,520,83,540,62,541,63,560,48,560,49,581,37,582,38,604,28,604,29,626,21,627,21,650,15,650,16,674,12,674,13,722,10,722,11,775,13,775,14,802,18,828,24,827,25,853,33,878,43,878,44,926,68,925,69,971,98,971,99,1013,133,1012,134,1033,155,1054,180,1054,181,1078,210,1073,212,1067,211,1063,208,1062,207,932,272,931,266,933,261,936,259,927,244,913,226;PU1796,241;PD1796,241,1769,197,1768,197,1743,161,1742,161,1717,130,1716,131,1692,107,1691,107,1665,85,1665,86,1637,65,1637,66,1608,48,1608,49,1586,38,1586,39,1564,30,1564,31,1518,18,1517,19,1468,11,1468,12,1418,10,1418,11,1363,15,1363,16,1335,20,1336,22,1309,29,1309,30,1289,39,1289,40,1269,50,1270,51,1251,64,1252,65,1235,80,1237,81,1220,102,1221,103,1207,127,1208,127,1197,153,1198,153,1190,179,1191,179,1188,197,1189,197,1187,217,1188,217,1187,259,1188,259,1190,308,1195,306,1198,302,1199,298,1428,298,1427,293,1423,289,1418,288,1416,288,1413,270,1414,270,1410,240,1412,240,1414,213,1415,213,1418,200,1420,201,1424,188,1426,189,1438,171,1440,173,1456,159,1458,161,1477,153,1478,155,1499,152,1499,155,1519,157,1518,159,1538,165,1537,166,1561,179,1560,180,1581,196,1580,198,1600,220,1599,221,1617,246,1616,246,1643,291,1647,287,1648,282,1648,281,1812,247,1809,242,1805,239,1799,239,1796,241,1775,207;PU1636,431;PD1632,435,1631,441,1633,446,1637,449,1642,450,1644,468,1643,468,1644,498,1643,498,1642,519,1641,519,1639,529,1638,529,1634,538,1632,537,1623,549,1621,547,1609,555,1608,553,1594,558,1593,555,1578,557,1578,555,1557,553,1558,551,1538,545,1539,542,1527,535,1528,534,1517,525,1518,524,1500,503,1501,502,1490,485,1480,467,1481,466,1463,429,1464,428,1437,357,1422,314,1418,317,1416,322,1415,324,1187,324,1188,329,1192,332,1197,334,1200,333,1223,399,1224,399,1247,455,1260,482,1260,481,1273,504,1274,504,1295,535,1319,565,1320,564,1346,593,1346,592,1374,618,1375,618,1401,639,1402,639,1430,659,1430,658,1460,676,1460,675,1492,689,1492,688,1528,701,1529,700,1566,709,1566,708,1605,714,1605,713,1643,715,1667,714,1667,713,1691,711,1691,710,1714,705,1714,704,1737,698,1737,697,1756,690,1756,689,1775,680,1775,679,1793,668,1792,667,1808,654,1807,653,1824,635,1823,635,1837,615,1836,614,1847,593,1846,592,1855,570,1854,569,1857,554,1856,554,1859,536,1858,536,1860,499,1859,499,1858,455,1853,457,1849,461,1848,464,1631,439,1632,444,1636,448,1641,450,1642,450,1644,468,1643,468,1644,490;PU203,21;PD198,19,194,16,193,11,127,10,127,12,95,15,95,17,79,20,80,21,65,27,65,28,49,37,50,38,35,50,36,51,23,64,24,65,14,81,15,82,10,95,12,96,9,110,11,110,10,139,12,139,18,167,19,167,24,184,23,184,124,535,118,535,114,533,111,528,111,526,17,526,18,531,22,535,27,536,29,535,77,702,81,699,84,695,84,693,178,693,177,698,173,701,172,702,236,857,241,854,243,849,243,848,452,848,450,843,446,839,441,838,439,838,395,683,400,683,404,686,407,690,407,693,550,693,549,687,545,684,540,683,538,683,490,516,485,519,483,524,483,526,340,526,341,521,345,517,347,516,282,288,282,289,273,262,273,261,267,238,268,237,265,216,266,215,267,203,269,203,273,191,276,192,288,178,290,180,306,170,307,173,330,168,330,170,354,170,354,171,403,175,402,170,398,166,393,164,390,165,348,19,344,22,341,27,286,18,286,19,237,13,193,10,193,11,153,11;SP0;PU0,0;IN;

View File

@@ -1,326 +0,0 @@
##sK1 1 2
document()
layout('A4',(595.276,841.89),0)
grid((0,0,2.83465,2.83465),0,("RGB",0.0,0.0,1.0),'Gitter')
page('','A4',(595.276,841.89),0)
layer('PLT_objects',1,1,0,0,("RGB",0.196,0.314,0.635))
lw(0.85)
lc(2)
lj(1)
b()
bs(172.984,382.535,0)
bs(173.693,381.827,0)
bs(173.976,381.827,0)
bs(174.543,382.039,0)
bs(174.969,381.898,0)
bs(175.11,381.26,0)
bs(175.11,376.299,0)
bs(175.323,376.087,0)
bs(176.669,376.087,0)
bs(176.811,376.299,0)
bs(176.811,381.26,0)
bs(176.669,382.252,0)
bs(176.173,382.961,0)
bs(175.465,383.457,0)
bs(174.543,383.598,0)
bs(173.48,383.315,0)
bs(172.913,382.819,0)
bs(172.984,382.535,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(180.709,382.535,0)
bs(181.063,382.394,0)
bs(181.205,382.11,0)
bs(181.063,381.756,0)
bs(180.709,381.614,0)
bs(180.425,381.756,0)
bs(180.283,382.11,0)
bs(180.425,382.394,0)
bs(180.709,382.535,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(179.929,378,0)
bs(179.646,377.504,0)
bs(179.717,377.291,0)
bs(181.559,376.228,0)
bs(181.843,376.228,0)
bs(182.197,376.866,0)
bs(182.126,377.22,0)
bs(180.213,378.071,0)
bs(179.929,378,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(180.496,380.764,0)
bs(181.276,380.976,0)
bs(181.205,380.48,0)
bs(180.709,380.339,0)
bs(179.646,380.48,0)
bs(179.362,380.268,0)
bs(179.291,379.559,0)
bs(179.433,379.276,0)
bs(180.85,379.134,0)
bs(181.701,379.276,0)
bs(182.268,379.559,0)
bs(182.551,380.126,0)
bs(182.693,380.976,0)
bs(182.693,383.315,0)
bs(182.48,383.528,0)
bs(181.984,383.528,0)
bs(181.772,383.386,0)
bs(181.63,383.102,0)
bs(181.205,383.386,0)
bs(180.354,383.598,0)
bs(179.291,383.244,0)
bs(178.937,382.181,0)
bs(179.291,381.189,0)
bs(179.787,380.906,0)
bs(180.496,380.764,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(184.819,379.488,0)
bs(185.031,379.276,0)
bs(185.528,379.276,0)
bs(185.669,379.346,0)
bs(185.882,379.772,0)
bs(186.378,379.346,0)
bs(187.37,379.134,0)
bs(188.22,379.346,0)
bs(188.858,379.772,0)
bs(189.213,380.48,0)
bs(189.354,381.331,0)
bs(189.354,383.315,0)
bs(189.142,383.528,0)
bs(188.008,383.528,0)
bs(187.866,383.315,0)
bs(187.866,381.331,0)
bs(187.654,380.764,0)
bs(187.087,380.551,0)
bs(186.52,380.693,0)
bs(186.307,381.26,0)
bs(186.307,383.315,0)
bs(186.094,383.528,0)
bs(185.031,383.528,0)
bs(184.819,383.315,0)
bs(184.819,379.488,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(193.323,382.252,0)
bs(193.961,381.969,0)
bs(194.173,381.331,0)
bs(193.961,380.764,0)
bs(193.323,380.48,0)
bs(192.756,380.764,0)
bs(192.543,381.331,0)
bs(192.756,381.969,0)
bs(193.323,382.252,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(193.323,379.134,0)
bs(194.173,379.346,0)
bs(194.882,379.772,0)
bs(195.378,380.48,0)
bs(195.591,381.331,0)
bs(195.378,382.252,0)
bs(194.882,382.961,0)
bs(194.173,383.457,0)
bs(193.323,383.598,0)
bs(192.472,383.457,0)
bs(191.764,382.961,0)
bs(191.339,382.252,0)
bs(191.126,381.331,0)
bs(191.339,380.48,0)
bs(191.764,379.772,0)
bs(192.472,379.346,0)
bs(193.323,379.134,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(197.22,383.031,0)
bs(197.575,382.323,0)
bs(197.858,382.181,0)
bs(198.78,382.465,0)
bs(198.992,382.323,0)
bs(198.85,382.11,0)
bs(198.354,381.827,0)
bs(197.504,381.26,0)
bs(197.22,380.409,0)
bs(197.575,379.488,0)
bs(198.071,379.276,0)
bs(198.85,379.134,0)
bs(200.268,379.488,0)
bs(200.339,379.772,0)
bs(199.984,380.48,0)
bs(199.772,380.551,0)
bs(198.85,380.268,0)
bs(198.638,380.409,0)
bs(199.063,380.764,0)
bs(200.126,381.331,0)
bs(200.409,381.685,0)
bs(200.551,382.252,0)
bs(200.409,382.748,0)
bs(200.126,383.173,0)
bs(199.559,383.528,0)
bs(198.78,383.598,0)
bs(197.858,383.457,0)
bs(197.291,383.244,0)
bs(197.22,383.031,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(208.843,381.969,0)
bs(209.339,381.756,0)
bs(209.551,381.189,0)
bs(209.268,380.693,0)
bs(208.701,380.48,0)
bs(207.85,380.48,0)
bs(207.85,381.969,0)
bs(208.843,381.969,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(208.701,379.063,0)
bs(209.197,378.85,0)
bs(209.409,378.354,0)
bs(209.197,377.787,0)
bs(208.701,377.575,0)
bs(207.85,377.575,0)
bs(207.85,379.063,0)
bs(208.701,379.063,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(206.22,376.299,0)
bs(206.362,376.087,0)
bs(208.843,376.087,0)
bs(209.764,376.228,0)
bs(210.472,376.654,0)
bs(210.969,377.291,0)
bs(211.11,378.071,0)
bs(210.685,379.063,0)
bs(209.906,379.701,0)
bs(210.827,380.339,0)
bs(211.181,380.835,0)
bs(211.323,381.472,0)
bs(211.181,382.252,0)
bs(210.685,382.89,0)
bs(209.906,383.315,0)
bs(209.055,383.528,0)
bs(206.362,383.528,0)
bs(206.22,383.315,0)
bs(206.22,376.299,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(213.378,379.488,0)
bs(213.52,379.276,0)
bs(214.654,379.276,0)
bs(214.866,379.488,0)
bs(214.866,381.402,0)
bs(215.079,381.969,0)
bs(215.575,382.252,0)
bs(216,381.969,0)
bs(216.213,381.472,0)
bs(216.213,379.488,0)
bs(216.425,379.276,0)
bs(217.488,379.276,0)
bs(217.701,379.488,0)
bs(217.701,383.315,0)
bs(217.488,383.528,0)
bs(216.992,383.528,0)
bs(216.78,383.315,0)
bs(216.638,382.961,0)
bs(216.142,383.386,0)
bs(215.22,383.598,0)
bs(214.37,383.457,0)
bs(213.803,382.961,0)
bs(213.449,382.252,0)
bs(213.378,381.402,0)
bs(213.378,379.488,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(221.882,379.134,0)
bs(222.803,379.346,0)
bs(223.512,379.913,0)
bs(223.441,380.197,0)
bs(222.803,380.835,0)
bs(222.591,380.764,0)
bs(221.953,380.48,0)
bs(221.315,380.764,0)
bs(221.102,381.402,0)
bs(221.315,381.969,0)
bs(221.953,382.252,0)
bs(222.661,381.898,0)
bs(222.874,381.827,0)
bs(223.512,382.394,0)
bs(223.583,382.677,0)
bs(222.874,383.386,0)
bs(221.882,383.598,0)
bs(221.031,383.457,0)
bs(220.252,382.961,0)
bs(219.756,382.252,0)
bs(219.614,381.402,0)
bs(219.756,380.48,0)
bs(220.323,379.772,0)
bs(221.031,379.346,0)
bs(221.882,379.134,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(225.425,376.299,0)
bs(225.638,376.087,0)
bs(226.772,376.087,0)
bs(226.984,376.299,0)
bs(226.984,380.835,0)
bs(228.26,379.346,0)
bs(228.543,379.276,0)
bs(229.748,379.276,0)
bs(229.89,379.346,0)
bs(229.89,379.559,0)
bs(228.472,381.189,0)
bs(230.173,383.173,0)
bs(230.244,383.386,0)
bs(230.031,383.528,0)
bs(228.614,383.528,0)
bs(228.402,383.386,0)
bs(226.984,381.543,0)
bs(226.984,383.315,0)
bs(226.772,383.528,0)
bs(225.638,383.528,0)
bs(225.425,383.315,0)
bs(225.425,376.299,0)
bC()
masterlayer('MasterLayer 1',1,1,0,0,("RGB",0.196,0.314,0.635))
guidelayer('Hilfslinien',1,0,0,1,("RGB",0.0,0.3,1.0))

View File

@@ -1,326 +0,0 @@
##sK1 1 2
document()
layout('A4',(595.276,841.89),0)
grid((0,0,2.83465,2.83465),0,("RGB",0.0,0.0,1.0),'Gitter')
page('','A4',(595.276,841.89),0)
layer('PLT_objects',1,1,0,0,("RGB",0.196,0.314,0.635))
lw(0.85)
lc(2)
lj(1)
b()
bs(172.984,382.535,0)
bs(173.693,381.827,0)
bs(173.976,381.827,0)
bs(174.543,382.039,0)
bs(174.969,381.898,0)
bs(175.11,381.26,0)
bs(175.11,376.299,0)
bs(175.323,376.087,0)
bs(176.669,376.087,0)
bs(176.811,376.299,0)
bs(176.811,381.26,0)
bs(176.669,382.252,0)
bs(176.173,382.961,0)
bs(175.465,383.457,0)
bs(174.543,383.598,0)
bs(173.48,383.315,0)
bs(172.913,382.819,0)
bs(172.984,382.535,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(180.709,382.535,0)
bs(181.063,382.394,0)
bs(181.205,382.11,0)
bs(181.063,381.756,0)
bs(180.709,381.614,0)
bs(180.425,381.756,0)
bs(180.283,382.11,0)
bs(180.425,382.394,0)
bs(180.709,382.535,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(179.929,378,0)
bs(179.646,377.504,0)
bs(179.717,377.291,0)
bs(181.559,376.228,0)
bs(181.843,376.228,0)
bs(182.197,376.866,0)
bs(182.126,377.22,0)
bs(180.213,378.071,0)
bs(179.929,378,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(180.496,380.764,0)
bs(181.276,380.976,0)
bs(181.205,380.48,0)
bs(180.709,380.339,0)
bs(179.646,380.48,0)
bs(179.362,380.268,0)
bs(179.291,379.559,0)
bs(179.433,379.276,0)
bs(180.85,379.134,0)
bs(181.701,379.276,0)
bs(182.268,379.559,0)
bs(182.551,380.126,0)
bs(182.693,380.976,0)
bs(182.693,383.315,0)
bs(182.48,383.528,0)
bs(181.984,383.528,0)
bs(181.772,383.386,0)
bs(181.63,383.102,0)
bs(181.205,383.386,0)
bs(180.354,383.598,0)
bs(179.291,383.244,0)
bs(178.937,382.181,0)
bs(179.291,381.189,0)
bs(179.787,380.906,0)
bs(180.496,380.764,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(184.819,379.488,0)
bs(185.031,379.276,0)
bs(185.528,379.276,0)
bs(185.669,379.346,0)
bs(185.882,379.772,0)
bs(186.378,379.346,0)
bs(187.37,379.134,0)
bs(188.22,379.346,0)
bs(188.858,379.772,0)
bs(189.213,380.48,0)
bs(189.354,381.331,0)
bs(189.354,383.315,0)
bs(189.142,383.528,0)
bs(188.008,383.528,0)
bs(187.866,383.315,0)
bs(187.866,381.331,0)
bs(187.654,380.764,0)
bs(187.087,380.551,0)
bs(186.52,380.693,0)
bs(186.307,381.26,0)
bs(186.307,383.315,0)
bs(186.094,383.528,0)
bs(185.031,383.528,0)
bs(184.819,383.315,0)
bs(184.819,379.488,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(193.323,382.252,0)
bs(193.961,381.969,0)
bs(194.173,381.331,0)
bs(193.961,380.764,0)
bs(193.323,380.48,0)
bs(192.756,380.764,0)
bs(192.543,381.331,0)
bs(192.756,381.969,0)
bs(193.323,382.252,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(193.323,379.134,0)
bs(194.173,379.346,0)
bs(194.882,379.772,0)
bs(195.378,380.48,0)
bs(195.591,381.331,0)
bs(195.378,382.252,0)
bs(194.882,382.961,0)
bs(194.173,383.457,0)
bs(193.323,383.598,0)
bs(192.472,383.457,0)
bs(191.764,382.961,0)
bs(191.339,382.252,0)
bs(191.126,381.331,0)
bs(191.339,380.48,0)
bs(191.764,379.772,0)
bs(192.472,379.346,0)
bs(193.323,379.134,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(197.22,383.031,0)
bs(197.575,382.323,0)
bs(197.858,382.181,0)
bs(198.78,382.465,0)
bs(198.992,382.323,0)
bs(198.85,382.11,0)
bs(198.354,381.827,0)
bs(197.504,381.26,0)
bs(197.22,380.409,0)
bs(197.575,379.488,0)
bs(198.071,379.276,0)
bs(198.85,379.134,0)
bs(200.268,379.488,0)
bs(200.339,379.772,0)
bs(199.984,380.48,0)
bs(199.772,380.551,0)
bs(198.85,380.268,0)
bs(198.638,380.409,0)
bs(199.063,380.764,0)
bs(200.126,381.331,0)
bs(200.409,381.685,0)
bs(200.551,382.252,0)
bs(200.409,382.748,0)
bs(200.126,383.173,0)
bs(199.559,383.528,0)
bs(198.78,383.598,0)
bs(197.858,383.457,0)
bs(197.291,383.244,0)
bs(197.22,383.031,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(208.843,381.969,0)
bs(209.339,381.756,0)
bs(209.551,381.189,0)
bs(209.268,380.693,0)
bs(208.701,380.48,0)
bs(207.85,380.48,0)
bs(207.85,381.969,0)
bs(208.843,381.969,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(208.701,379.063,0)
bs(209.197,378.85,0)
bs(209.409,378.354,0)
bs(209.197,377.787,0)
bs(208.701,377.575,0)
bs(207.85,377.575,0)
bs(207.85,379.063,0)
bs(208.701,379.063,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(206.22,376.299,0)
bs(206.362,376.087,0)
bs(208.843,376.087,0)
bs(209.764,376.228,0)
bs(210.472,376.654,0)
bs(210.969,377.291,0)
bs(211.11,378.071,0)
bs(210.685,379.063,0)
bs(209.906,379.701,0)
bs(210.827,380.339,0)
bs(211.181,380.835,0)
bs(211.323,381.472,0)
bs(211.181,382.252,0)
bs(210.685,382.89,0)
bs(209.906,383.315,0)
bs(209.055,383.528,0)
bs(206.362,383.528,0)
bs(206.22,383.315,0)
bs(206.22,376.299,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(213.378,379.488,0)
bs(213.52,379.276,0)
bs(214.654,379.276,0)
bs(214.866,379.488,0)
bs(214.866,381.402,0)
bs(215.079,381.969,0)
bs(215.575,382.252,0)
bs(216,381.969,0)
bs(216.213,381.472,0)
bs(216.213,379.488,0)
bs(216.425,379.276,0)
bs(217.488,379.276,0)
bs(217.701,379.488,0)
bs(217.701,383.315,0)
bs(217.488,383.528,0)
bs(216.992,383.528,0)
bs(216.78,383.315,0)
bs(216.638,382.961,0)
bs(216.142,383.386,0)
bs(215.22,383.598,0)
bs(214.37,383.457,0)
bs(213.803,382.961,0)
bs(213.449,382.252,0)
bs(213.378,381.402,0)
bs(213.378,379.488,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(221.882,379.134,0)
bs(222.803,379.346,0)
bs(223.512,379.913,0)
bs(223.441,380.197,0)
bs(222.803,380.835,0)
bs(222.591,380.764,0)
bs(221.953,380.48,0)
bs(221.315,380.764,0)
bs(221.102,381.402,0)
bs(221.315,381.969,0)
bs(221.953,382.252,0)
bs(222.661,381.898,0)
bs(222.874,381.827,0)
bs(223.512,382.394,0)
bs(223.583,382.677,0)
bs(222.874,383.386,0)
bs(221.882,383.598,0)
bs(221.031,383.457,0)
bs(220.252,382.961,0)
bs(219.756,382.252,0)
bs(219.614,381.402,0)
bs(219.756,380.48,0)
bs(220.323,379.772,0)
bs(221.031,379.346,0)
bs(221.882,379.134,0)
bC()
lw(0.85)
lc(2)
lj(1)
b()
bs(225.425,376.299,0)
bs(225.638,376.087,0)
bs(226.772,376.087,0)
bs(226.984,376.299,0)
bs(226.984,380.835,0)
bs(228.26,379.346,0)
bs(228.543,379.276,0)
bs(229.748,379.276,0)
bs(229.89,379.346,0)
bs(229.89,379.559,0)
bs(228.472,381.189,0)
bs(230.173,383.173,0)
bs(230.244,383.386,0)
bs(230.031,383.528,0)
bs(228.614,383.528,0)
bs(228.402,383.386,0)
bs(226.984,381.543,0)
bs(226.984,383.315,0)
bs(226.772,383.528,0)
bs(225.638,383.528,0)
bs(225.425,383.315,0)
bs(225.425,376.299,0)
bC()
masterlayer('MasterLayer 1',1,1,0,0,("RGB",0.196,0.314,0.635))
guidelayer('Hilfslinien',1,0,0,1,("RGB",0.0,0.3,1.0))

BIN
koche.pyc

Binary file not shown.

BIN
m2/r0.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
m2/r1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

BIN
m2/r2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

BIN
m2/r3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

BIN
m2/r4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

BIN
m2/r5.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

BIN
m2/r6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

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